grep: Basic vs Extended
3.6 Basic vs Extended Regular Expressions
=========================================
Basic regular expressions differ from extended regular expressions in
the following ways:
• The characters ‘?’, ‘+’, ‘{’, ‘|’, ‘(’, and ‘)’ lose their special
meaning; instead use the backslashed versions ‘\?’, ‘\+’, ‘\{’,
‘\|’, ‘\(’, and ‘\)’. Also, a backslash is needed before an
interval expression's closing ‘}’.
• An unmatched ‘\)’ is invalid.
• If an unescaped ‘^’ appears neither first, nor directly after ‘\(’
or ‘\|’, it is treated like an ordinary character and is not an
anchor.
• If an unescaped ‘$’ appears neither last, nor directly before ‘\|’
or ‘\)’, it is treated like an ordinary character and is not an
anchor.
• If an unescaped ‘*’ appears first, or appears directly after ‘\(’
or ‘\|’ or anchoring ‘^’, it is treated like an ordinary character
and is not a repetition operator.