[clug] Circumflex

Scott Ferguson scott.ferguson.clug at gmail.com
Thu Aug 17 14:20:06 UTC 2017

On 17/08/17 22:43, Bryan Kilgallin (iiNet) via linux wrote:
> Thanks, Eyal:
>> In a regular expression the '^' (at the start) indicates that the
>> matching expression must be at the
>> beginning of the examined string:
> {
> More special characters ^$
> Used outside of the square brackets the ^ and $ sign will have new
> meanings. And yes, this is a big part of why Regex is a bit confusing to
> start up with. Instead of the ^ meaning “not these characters” it means
> “start of the string”.
> }
> http://webagility.com/posts/the-basics-of-regex-explained
> I could use drill and practice exercises.

I can highly recommend "Mastering Regular Expressions" by Jeffrey E. F.

You'll probably find your text editor includes RegEx support for Find
and Replace (KWrite certainly does) - which is a good place to practise.

Here's a list of basic RegEx Special Characters, Quantifiers and
Metacharacters. Note that the formatting is lost when I copied it from
my personal wiki; and that there is more than one type of RegEx.... :)
See man regex for that!
(if the following is unreadable there's a PDF version of the original at
https://scottferguson.com.au/uploads/files/regex.pdf for a short time)


A regular expression, regex or regexp (sometimes called a rational
expression) is, in theoretical computer science and formal language
theory, a sequence of characters that define a search pattern, mainly
for use in pattern matching with strings, or using a string searching
algorithm, i.e. “find and replace”-like operations. The concept arose in
the 1950s, when the American mathematician Stephen Cole Kleene
formalised the description of a regular language, and came into common
use with the Unix text processing utilities ed, an editor, and grep, a
abc… 	Letters
123… 	Digits
\d 	Any Digit
\D 	Any Non-digit character
. 	Any Character
\. 	Period
[abc] 	Only a, b, or c
[^abc] 	Not a, b, nor c
[a-z] 	Characters a to z
[0-9] 	Numbers 0 to 9
\w 	Any Alphanumeric character
\W 	Any Non-alphanumeric character
{m} 	m Repetitions
{m,n} 	m to n Repetitions
* 	Zero or more repetitions
+ 	One or more repetitions
? 	Optional character
\s 	Any Whitespace
\S 	Any Non-whitespace character
^…$ 	Starts and ends
(…) 	Capture Group
(a(bc)) 	Capture Sub-group
(.*) 	Capture all
(abc|def) 	Matches abc or def
Metacharacter	Name	Matches
.	dot	any one character
[…]	character class	any character listed
[^…]	negated character class	any character not listed
^	caret	the position at the start of the line
$	dollar	the position at the end of the line
\<	backslash less-than	1)the position at the start of a word
\>	backslash greater-than	2)the position at the end of a word
|	or, bar	matches either expression it separates
(…)	parentheses	used to limit scope of |, plus additional uses
	Minimum required	Maximum to try	Meaning
?	none	1	one allowed; none required (“one optional”)
*	none	no limit	unlimited allowed; none required (“any amount OK”)
+	1	no limit	unlimited allowed; one required (“at least one”)

Kind regards

    A: Because we read from top to bottom, left to right.
    Q: Why should I start my reply below the quoted text?

    A: Because it messes up the order in which people normally read text.
    Q: Why is top-posting such a bad thing?

    A: The lost context.
    Q: What makes top-posted replies harder to read than bottom-posted?

    A: Yes.
    Q: Should I trim down the quoted part of an email to which I'm reply


More information about the linux mailing list