Of all the clones,
`vim` provides the richest set of regular expression matching
facilities.
Much of the descriptive text in the list below is borrowed from
the `vim` documentation:

`\|`

`\+`

`\=`

`\{`

*n*`,`

*m*`}`

Matches

*n*to*m*of the preceding regular expression, as much as possible.*n*and*m*are numbers between 0 and 32000;`vim`requires only the left brace to be preceded by a backslash, not the right brace.`\{`

*n*`}`

Matches

*n*of the preceding regular expression.`\{`

*n*`,}`

Matches at least

*n*of the preceding regular expression, as much as possible.`\{,`

*m*`}`

Matches 0 to

*m*of the preceding regular expression, as much as possible.`\{}`

Matches 0 or more of the preceding regular expression, as much as possible (same as

`*`

).`\{-`

*n*`,`

*m*`}`

Matches

*n*to*m*of the preceding regular expression, as few as possible.`\{-`

*n*`}`

Matches

*n*of the preceding regular expression.`\{-`

*n*`,}`

Matches at least

*n*of the preceding regular expression, as few as possible.`\{-,`

*m*`}`

Matches 0 to

*m*of the preceding regular expression, as few as possible.`\i`

Matches any identifier character, as defined by the

`isident`

option.`\I`

Like

`\i`

, but excluding digits.`\k`

Matches any keyword character, as defined by the

`iskeyword`

option.`\K`

Like

`\k`

, but excluding digits.`\f`

Matches any filename character, as defined by the

`isfname`

option.`\F`

Like

`\f`

, but excluding digits.`\p`

Matches any printable character, as defined by the

`isprint`

option.`\P`

Like

`\p`

, but excluding digits.`\s`

`\S`

Matches anything that isn't a space or a tab.

`\b`

`\e`

`\r`

`\t`

`\n`

Reserved for future use. Eventually, it will be used for matching multi-line patterns. See the

`vim`documentation for more details.`~`

Matches the last given substitute (i.e., replacement) string.

`\(...\)`

Provides grouping for

`*`

,`\+`

, and`\=`

, as well as making matched sub-texts available in the replacement part of a substitute command (`\1`

,`\2`

, etc.).`\1`

Matches the same string that was matched by the first sub-expression in

`\(`

and`\)`

. For example:`\([a-z]\).\1`

matches*ata*,*ehe*,*tot*, etc.`\2`

,`\3`

, and so on may be used to represent the second, third, and so forth subexpressions.

The
`isident`

,
`iskeyword`

,
`isfname`

, and
`isprint`

options define the characters that appear in
identifiers, keywords, and filenames, and that are printable.
Use of these options makes regular expression matching very flexible.