The escape character is a tilde ~. With this you can escape metacharacters to
use them in their plain character form.
In the following examples literal E and F
denote any expression, whether a pattern or a character.
(Start a capturing subexpression.
)End a capturing subexpression.
{Start an anonymous, noncapturing subexpression.
}End an anonymous, noncapturing subexpression.
E|FDisjunction, match either E or F (inclusive). E is preferred if both match.
E*Act as Kleene star, match E zero or more times.
E*?Act as Kleene star, but match nongreedily (lazy match).
E+Closure, match E one or more times.
E+?Closure, but match non-greedily (lazy match).
E?Option, match E optionally once.
E??Option, but match non-greedily (lazy match).
.Match ANY character, including possibly the NULL byte and the newline characters.
E/
n /Match E exactly
n times.
E/
n ,/
or E/
n ,0/Match E
n or more times.
E/,
n / or
E/0, n
/Match E at most
n times.
E/
n ,
m /Match E no less than
n times and no more than
m times.
E/n,/?, E/ n ,0/?, E/, n /?, E/0, n /?, E/
n ,
m /?The lazy versions of above.
[Start a character set. See the section "Escaped Tokens for Regex Syntax SSH.”
>COne-character lookahead. ‘C’ must be either a literal character or parse as a character set. Match the empty string anywhere provided that the next character is ‘C’ or belongs to it.
<COne-character lookback. As above, but examine the previous character instead of the next character.
$Match the empty string at the end of the input.
^Match the empty string at the start of the input.
The following list describes the tokens:
~0
n ..
nThe literal byte with octal value
n ..
n.
~0The NULL byte.
~[1-9]..
xThe literal byte with decimal value ~[1-9]..
x.
~
xn .. n or
~0
xn .. nThe literal byte with hexadecimal value
n ..
n.
~<Match the empty string at the beginning of a word.
~>Match the empty string at the end of a word.
~bMatch the empty string at a word boundary.
~BMatch the empty string provided it is not at a word boundary.
~dMatch any digit, equivalent to [0:9].
~DMatch any character except a digit.
~sMatch a whitespace character (matches space, newline, line feed, carriage return, tab, and vertical tab).
~SMatch a nonwhitespace character.
~wMatch a word-constituent character, equivalent to [a:zA:Z0:9-].
~WMatch a non-word-constituent character.
~aLiteral alarm character.
~eLiteral escape character.
~fLiteral line feed.
~nLiteral newline, equivalent to C’s \n so that it can be more than one
character long.
~rLiteral carriage return.
~tLiteral tab.
All other escaped characters denote the literal character itself.
A character set starts with '[' and ends at non-escaped ]' that is not part of a POSIX character set
specifier and that does not follow immediately after '['.
The following characters have a special meaning and need to be escaped if meant literally:
:A range operator, except immediately after [, where it loses its special
meaning.
- (minus sign)Until next +, the characters, ranges, and sets will be
subtracted from the current set instead of being added. If
appears as the first character after [, start subtracting from a set
containing all characters instead of the empty set.
Until next -, the characters, ranges, and sets will be added to the current set. This is the default.
[:alnum:]Characters for which isalnum returns true (see ctype.h).
[:alpha:]Characters for which isalpha returns true (see ctype.h).
[:cntrl:]Characters for which iscntrl returns true (see ctype.h).
[:digit:]Characters for which isdigit returns true (see ctype.h).
[:graph:]Characters for which isgraph returns true (see ctype.h).
[:lower:]Characters for which islower returns true (see ctype.h).
[:print:]Characters for which isprint returns true (see ctype.h).
[:punct:]Characters for which ispunct returns true (see ctype.h).
[:space:]Characters for which isspace returns true (see ctype.h).
[:upper:]Characters for which isupper returns true (see ctype.h).
[:xdigit:]Characters for which isxdigit returns true (see ctype.h).
It is also possible to include the predefined escaped character sets into a newly defined one, so:
[~d~s]
matches digits and whitespace characters.
Also, escape sequences resulting in literals work inside character sets.