Back-references and Subexpressions (GNU Grep 3.7)
Next: Basic vs Extended Regular Expressions, Previous: Anchoring, Up: Regular Expressions [Contents][Index]
3.5 Back-references and Subexpressions
The back-reference ‘\n
’, where n
is a single nonzero digit, matches the substring previously matched by the n
th parenthesized subexpression of the regular expression. For example, ‘(a)\1
’ matches ‘aa
’. If the parenthesized subexpression does not participate in the match, the back-reference makes the whole match fail; for example, ‘(a)*\1
’ fails to match ‘a
’. If the parenthesized subexpression matches more than one substring, the back-reference refers to the last matched substring; for example, ‘^(ab*)*\1$
’ matches ‘ababbabb
’ but not ‘ababbab
’. When multiple regular expressions are given with -e
or from a file (‘-f file
’), back-references are local to each expression.
See Known Bugs, for some known problems with back-references.