## Regular expressions

Regular expressions are enclosed in double quotes. Within them, the following are supported:

`a`

for character`a`

, for any`a`

(special characters need escaping).`\n`

for the new line character (Unicode U+0A).`\r`

for the carriage return character (Unicode U+0D).`\t`

for the tab character (Unicode U+09).`\a`

for character`a`

, for any`a`

(especially useful for escaping special characters).`\\`

for character`\`

(escaped).`\"`

for character`"`

(escaped).`(x)`

for regular expression`x`

(allows for grouping).`xy`

for regular expression`x`

followed by regular expression`y`

.`x*`

for zero or more times regular expression`x`

.`x+`

for one or more times regular expression`x`

.`x?`

for zero or one times regular expression`x`

.`.`

for any ASCII character except`\n`

(new line, Unicode U+0A).`x|y`

for either regular expression`x`

or regular expression`y`

(but not both).`[abc]`

for exactly one of the characters`a`

,`b`

or`c`

.`[a-z]`

for exactly one of the characters`a`

,`b`

, …, or`z`

. This notation is called a character class. Note that the ranges of characters are based on their ASCII character codes.`[^a]`

for any ASCII character except for character`a`

. This notation is called a negated character class.`{s}`

for the regular expression defined by shortcut`s`

.

To include special characters, they must always be escaped, wherever they occur in the regular expression. For instance, regular expression `[a\^]`

recognizes either character `a`

or character `^`

(but not both). Here the `^`

character is escaped, as it is a special character (it may be used at the beginning of a character class to invert the character class).

New lines are not allowed in the regular expressions themselves. Obviously, it is possible to detect new lines using regular expressions.