$1 is what was matched by the first set of
parenthesis of the last succesful regular
expression. It will therefore never refer to (parts of)
the current match in progress (ignoring (?{ })
and (??{ }) issues). $1 is a variable - it interpolates just like any other variable;
it doesn't have a special meaning inside a regular expression.
\1 does have a special meaning inside a regular
expression: it matches exactly the same (sub)string as was
matched by the first set of parenthesis in the current regular expression. It's not a variable, it's a special
construct. In other interpolative contexts, it means
something else: \NNN means the character with
octal value NNN. It's a construct, just like
\xNN or \n.
There's one exception, inside the replacement part of a
substitution, \1 .. \9 (so, that's only 9
exceptions, it doesn't work for higher numbers) are
equivalent to $1 .. $9, but their use does
trigger a warning.
Abigail | [reply] [d/l] [select] |