+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
+"\".