Next: Character Encoding, Previous: Back-references and Subexpressions, Up: Regular Expressions [Contents][Index]
In basic regular expressions the meta-characters ‘?’, ‘+’, ‘{’, ‘|’, ‘(’, and ‘)’ lose their special meaning; instead use the backslashed versions ‘\?’, ‘\+’, ‘\{’, ‘\|’, ‘\(’, and ‘\)’.
Traditional egrep
did not support the ‘{’ meta-character,
and some egrep
implementations support ‘\{’ instead, so
portable scripts should avoid ‘{’ in ‘grep -E’ patterns and
should use ‘[{]’ to match a literal ‘{’.
GNU grep -E
attempts to support traditional usage by
assuming that ‘{’ is not special if it would be the start of an
invalid interval specification.
For example, the command
‘grep -E '{1'’ searches for the two-character string ‘{1’
instead of reporting a syntax error in the regular expression.
POSIX allows this behavior as an extension, but portable scripts
should avoid it.