The power of regular expressions comes from the ability to include alternatives and repetitions in the pattern. These are encoded in the pattern by the use of meta-characters, which do not stand for themselves but instead are interpreted in some special way.

There are two different sets of meta-characters: those that are recognized anywhere in the pattern except within square brackets, and those that are recognized in square brackets. Outside square brackets, the meta-characters are as follows:

general escape character with several uses
assert start of subject (or line, in multiline mode)
assert end of subject or before a terminating newline (or end of line, in multiline mode)
match any character except newline (by default)
start character class definition
end character class definition
start of alternative branch
start subpattern
end subpattern
extends the meaning of (, also 0 or 1 quantifier, also makes greedy quantifiers lazy (see repetition)
0 or more quantifier
1 or more quantifier
start min/max quantifier
end min/max quantifier
Part of a pattern that is in square brackets is called a "character class". In a character class the only meta-characters are:
general escape character
negate the class, but only if the first character
indicates character range
terminates the character class
The following sections describe the use of each of the meta-characters.