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.
\iMatches any identifier character, as defined by the isident
option.
\ILike \i, but excluding digits.
\kMatches any keyword character, as defined by the iskeyword
option.
\KLike \k, but excluding digits.
\fMatches any filename character, as defined by the isfname
option.
\FLike \f, but excluding digits.
\pMatches any printable character, as defined by the isprint
option.
\PLike \p, but excluding digits.
\s\SMatches anything that isn't a space or a tab.
\b\e\r\t\nReserved 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.).
\1Matches 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.