In regular expressions, the characters ‘.?*+{|()[\^$’ are special characters and have uses described below. All other characters are ordinary characters, and each ordinary character is a regular expression that matches itself.
The period ‘.’ matches any single character. It is unspecified whether ‘.’ matches an encoding error.
A regular expression may be followed by one of several repetition operators; the operators beginning with ‘{’ are called interval expressions.
The preceding item is optional and is matched at most once.
The preceding item is matched zero or more times.
The preceding item is matched one or more times.
The preceding item is matched exactly n times.
The preceding item is matched n or more times.
The preceding item is matched at most m times. This is a GNU extension.
The preceding item is matched at least n times, but not more than m times.
The empty regular expression matches the empty string. Two regular expressions may be concatenated; the resulting regular expression matches any string formed by concatenating two substrings that respectively match the concatenated expressions.
Two regular expressions may be joined by the infix operator ‘|’. The resulting regular expression matches any string matching either of the two expressions, which are called alternatives.
Repetition takes precedence over concatenation, which in turn takes precedence over alternation. A whole expression may be enclosed in parentheses to override these precedence rules and form a subexpression. An unmatched ‘)’ matches just itself.
Not every character string is a valid regular expression. See Problematic Regular Expressions.