+These regular expressions are implemented using the package written by Henry
+Spencer, based on the 1003.2 spec and some (not quite all) of the Perl5
+extensions (thanks, Henry!). Much of the description of regular expressions
+below is copied verbatim from his manual entry.
+
+An ARE is one or more @e branches, separated by "|", matching anything that
+matches any of the branches.
+
+A branch is zero or more @e constraints or @e quantified atoms, concatenated.
+It matches a match for the first, followed by a match for the second, etc; an
+empty branch matches the empty string.
+
+A quantified atom is an @e atom possibly followed by a single @e quantifier.
+Without a quantifier, it matches a match for the atom. The quantifiers, and
+what a so-quantified atom matches, are:
+
+@beginTable
+@row2col{ <tt>*</tt> ,
+ A sequence of 0 or more matches of the atom. }
+@row2col{ <tt>+</tt> ,
+ A sequence of 1 or more matches of the atom. }
+@row2col{ <tt>?</tt> ,
+ A sequence of 0 or 1 matches of the atom. }
+@row2col{ <tt>{m}</tt> ,
+ A sequence of exactly @e m matches of the atom. }
+@row2col{ <tt>{m\,}</tt> ,
+ A sequence of @e m or more matches of the atom. }
+@row2col{ <tt>{m\,n}</tt> ,
+ A sequence of @e m through @e n (inclusive) matches of the atom; @e m may
+ not exceed @e n. }
+@row2col{ <tt>*? +? ?? {m}? {m\,}? {m\,n}?</tt> ,
+ @e Non-greedy quantifiers, which match the same possibilities, but prefer
+ the smallest number rather than the largest number of matches (see
+ @ref overview_resyntax_matching). }
+@endTable
+
+The forms using @b { and @b } are known as @e bounds. The numbers @e m and
+@e n are unsigned decimal integers with permissible values from 0 to 255
+inclusive. An atom is one of:
+
+@beginTable
+@row2col{ <tt>(re)</tt> ,
+ Where @e re is any regular expression, matches for @e re, with the match
+ captured for possible reporting. }
+@row2col{ <tt>(?:re)</tt> ,
+ As previous, but does no reporting (a "non-capturing" set of
+ parentheses). }
+@row2col{ <tt>()</tt> ,
+ Matches an empty string, captured for possible reporting. }
+@row2col{ <tt>(?:)</tt> ,
+ Matches an empty string, without reporting. }
+@row2col{ <tt>[chars]</tt> ,
+ A <em>bracket expression</em>, matching any one of the @e chars (see
+ @ref overview_resyntax_bracket for more details). }
+@row2col{ <tt>.</tt> ,
+ Matches any single character. }
+@row2col{ <tt>@\k</tt> ,
+ Where @e k is a non-alphanumeric character, matches that character taken
+ as an ordinary character, e.g. @\@\ matches a backslash character. }
+@row2col{ <tt>@\c</tt> ,
+ Where @e c is alphanumeric (possibly followed by other characters), an
+ @e escape (AREs only), see @ref overview_resyntax_escapes below. }
+@row2col{ <tt>@leftCurly</tt> ,
+ When followed by a character other than a digit, matches the left-brace
+ character "@leftCurly"; when followed by a digit, it is the beginning of a
+ @e bound (see above). }
+@row2col{ <tt>x</tt> ,
+ Where @e x is a single character with no other significance, matches that
+ character. }
+@endTable
+
+A @e constraint matches an empty string when specific conditions are met. A
+constraint may not be followed by a quantifier. The simple constraints are as
+follows; some more constraints are described later, under
+@ref overview_resyntax_escapes.
+
+@beginTable
+@row2col{ <tt>^</tt> ,
+ Matches at the beginning of a line. }
+@row2col{ <tt>@$</tt> ,
+ Matches at the end of a line. }
+@row2col{ <tt>(?=re)</tt> ,
+ @e Positive lookahead (AREs only), matches at any point where a substring
+ matching @e re begins. }
+@row2col{ <tt>(?!re)</tt> ,
+ @e Negative lookahead (AREs only), matches at any point where no substring
+ matching @e re begins. }
+@endTable
+
+The lookahead constraints may not contain back references (see later), and all
+parentheses within them are considered non-capturing. A RE may not end with
+"\".