Specifications
Appendix C: Regular Expression Format
168 Equalizer Installation and Administration Guide
• A regular expression enclosed in parentheses, which matches a match for the regular
expression.
• An empty set of parentheses, which matches the null string.
• A bracket expression.
• A period (.), which matches any single character.
• A carat (^), which matches the null string at the beginning of a line.
• A dollar sign ($), which matches the null string at the end of a line.
• A backslash (\) followed by one of the following characters: ^.[$()|*+?{\, which matches that
character taken as an ordinary character.
• A backslash (\) followed by any other character, which matches that character taken as an
ordinary character (as if the \ had not been present).
• A single character with no other significance, which simply matches that character. Note that
regular expressions are case-insensitive.
• An open brace ({) followed by a character other than a digit is an ordinary character, not the
beginning of a bound. It is illegal to end a real expression with a backslash (\).
Creating a Bracket Expression
A bracket expression is a list of characters enclosed in brackets ( [...] ). It normally matches any
single character from the list. If the list begins with ^, it matches any single character not from the
rest of the list. Two characters in a list that are separated by '-' indicates the full range of characters
between those two (inclusive) in the collating sequence; for example, '[0-9]' in ASCII matches any
decimal digit. It is illegal for two ranges to share an endpoint; for example, 'a-c-e'. Ranges are very
collating-sequence-dependent, and portable programs should avoid relying on them.
• To include a literal ']' in the list, make it the first character (following an optional '^').
• To include a literal '-', make it the first or last character, or the second endpoint of a range.
• To use a literal '-' as the first endpoint of a range, enclose it in '[.' and '.]' to make it a collating
element (see below).
With the exception of these and some combinations using '[' (see next paragraphs), all other special
characters, including '\', lose their special significance within a bracket expression.
Within a bracket expression, a collating element (a character, a multi-character sequence that
collates as if it were a single character, or a collating-sequence name for either) enclosed in '[.' and
'.]' stands for the sequence of characters of that collating element. The sequence is a single element
of the bracket expression's list. A bracket expression containing a multi-character collating element
can thus match more than one character; e.g., if the collating sequence includes a 'ch' collating
element, then the real expression '[[.ch.]]*c' matches the first five characters of 'chchcc'.
Within a bracket expression, a collating element enclosed in '[' and `]' is an equivalence class,
representing the sequences of characters of all collating elements equivalent to that one, including
itself. (If there are no other equivalent collating elements, the treatment is as if the enclosing
delimiters were '[.' and '.]'.) For example, if 'x' and 'y' are the members of an equivalence class, then
'[[x]]', '[[y]]', and '[xy]' are all synonymous. An equivalence class may not be an end-point of a
range.