The fundamental building blocks are the regular expressions that match a single character. Most characters, including all letters and digits, are regular expressions that match themselves. Any meta-character with special meaning may be quoted by preceding it with a backslash.

A regular expression may be followed by one of several repetition operators:

- ‘
`.`’ - The period ‘
`.`’ matches any single character. - ‘
`?`’ - The preceding item is optional and will be matched at most once.
- ‘
`*`’ - The preceding item will be matched zero or more times.
- ‘
`+`’ - The preceding item will be matched one or more times.
- ‘
`{`’`n`} - The preceding item is matched exactly
`n`times. - ‘
`{`’`n`,} - The preceding item is matched
`n`or more times. - ‘
`{,`’`m`} - The preceding item is matched at most
`m`times. This is a GNU extension. - ‘
`{`’`n`,`m`} - 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 alternate expression.

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.