Another pattern that
requires a special mechanism is searching for repeated words. The expression
[a-z][a-z]
will match any two lowercase
letters. If you wanted to search for lines that had two adjoining identical
letters, the above pattern wouldn't help. You need a way to remember what you
found and see if the same pattern occurs again. In some programs, you can mark
part of a pattern using \(
and \)
. You can recall the remembered pattern with
\
followed by a single digit.[4] Therefore, to search for two identical letters, use \([a-z]\)\1
. You can have nine different
remembered patterns. Each occurrence of \(
starts a new pattern. The regular expression to match a five-letter palindrome
(e.g., "radar") is: \([a-z]\)\([a-z]\)[a-z]\2\1
. [Some versions of some programs
can't handle \( \)
in the same regular
expression as \1
, etc. In all versions of
sed, you're safe if you use \( \)
on the pattern side of an
s command — and \1
,
etc., on the replacement side (Section
34.11). — JP]
— BB
[4] In Perl, you can also use $1
through $9
and even beyond, with the
right switches, in addition to the backslash mechanism.