diff --git a/Doc/lib/libregex.tex b/Doc/lib/libregex.tex
index dd82ff4..6843594 100644
--- a/Doc/lib/libregex.tex
+++ b/Doc/lib/libregex.tex
@@ -1,19 +1,20 @@
 \section{Built-in Module \sectcode{regex}}
 \label{module-regex}
-
 \bimodindex{regex}
+
 This module provides regular expression matching operations similar to
 those found in Emacs.
 
 \strong{Obsolescence note:}
 This module is obsolete as of Python version 1.5; it is still being
 maintained because much existing code still uses it.  All new code in
-need of regular expressions should use the new \code{re} module, which
-supports the more powerful and regular Perl-style regular expressions.
-Existing code should be converted.  The standard library module
-\code{reconvert} helps in converting \code{regex} style regular
-expressions to \code{re} style regular expressions.  (For more
-conversion help, see the URL
+need of regular expressions should use the new
+\code{re}\refstmodindex{re} module, which supports the more powerful
+and regular Perl-style regular expressions.  Existing code should be
+converted.  The standard library module
+\code{reconvert}\refstmodindex{reconvert} helps in converting
+\code{regex} style regular expressions to \code{re}\refstmodindex{re}
+style regular expressions.  (For more conversion help, see the URL
 \file{http://starship.skyport.net/crew/amk/regex/regex-to-re.html}.)
 
 By default the patterns are Emacs-style regular expressions
@@ -154,7 +155,8 @@
 beginning or end of a word.
 %
 \item[\code{\e v}] Must be followed by a two digit decimal number, and
-matches the contents of the group of the same number.  The group number must be between 1 and 99, inclusive.
+matches the contents of the group of the same number.  The group
+number must be between 1 and 99, inclusive.
 %
 \item[\code{\e w}]Matches any alphanumeric character; this is
 equivalent to the set \code{[a-zA-Z0-9]}.
@@ -174,8 +176,8 @@
 % Python they seem to be synonyms for ^$.
 \item[\code{\e `}] Like \code{\^}, this only matches at the start of the
 string.
-\item[\code{\e \e '}] Like \code{\$}, this only matches at the end of the
-string.
+\item[\code{\e \e '}] Like \code{\$}, this only matches at the end of
+the string.
 % end of buffer
 \end{itemize}
 
@@ -201,13 +203,13 @@
 
 \begin{funcdesc}{compile}{pattern\optional{\, translate}}
   Compile a regular expression pattern into a regular expression
-  object, which can be used for matching using its \code{match} and
-  \code{search} methods, described below.  The optional argument
+  object, which can be used for matching using its \code{match()} and
+  \code{search()} methods, described below.  The optional argument
   \var{translate}, if present, must be a 256-character string
   indicating how characters (both of the pattern and of the strings to
-  be matched) are translated before comparing them; the \code{i}-th
+  be matched) are translated before comparing them; the \var{i}-th
   element of the string gives the translation for the character with
-  \ASCII{} code \code{i}.  This can be used to implement
+  \ASCII{} code \var{i}.  This can be used to implement
   case-insensitive matching; see the \code{casefold} data item below.
 
   The sequence
@@ -222,7 +224,7 @@
 \bcode\begin{verbatim}
 result = regex.match(pat, str)
 \end{verbatim}\ecode
-%
+
 but the version using \code{compile()} is more efficient when multiple
 regular expressions are used concurrently in a single program.  (The
 compiled version of the last pattern passed to \code{regex.match()} or
@@ -232,13 +234,13 @@
 \end{funcdesc}
 
 \begin{funcdesc}{set_syntax}{flags}
-  Set the syntax to be used by future calls to \code{compile},
-  \code{match} and \code{search}.  (Already compiled expression objects
-  are not affected.)  The argument is an integer which is the OR of
-  several flag bits.  The return value is the previous value of
-  the syntax flags.  Names for the flags are defined in the standard
-  module \code{regex_syntax}; read the file \file{regex_syntax.py} for
-  more information.
+  Set the syntax to be used by future calls to \code{compile()},
+  \code{match()} and \code{search()}.  (Already compiled expression
+  objects are not affected.)  The argument is an integer which is the
+  OR of several flag bits.  The return value is the previous value of
+  the syntax flags.  Names for the flags are defined in the standard 
+  module \code{regex_syntax}\refstmodindex{regex_syntax}; read the
+  file \file{regex_syntax.py} for more information.
 \end{funcdesc}
 
 \begin{funcdesc}{get_syntax}{}
@@ -246,10 +248,10 @@
 \end{funcdesc}
 
 \begin{funcdesc}{symcomp}{pattern\optional{\, translate}}
-This is like \code{compile}, but supports symbolic group names: if a
+This is like \code{compile()}, but supports symbolic group names: if a
 parenthesis-enclosed group begins with a group name in angular
 brackets, e.g. \code{'\e(<id>[a-z][a-z0-9]*\e)'}, the group can
-be referenced by its name in arguments to the \code{group} method of
+be referenced by its name in arguments to the \code{group()} method of
 the resulting compiled regular expression object, like this:
 \code{p.group('id')}.  Group names may contain alphanumeric characters
 and \code{'_'} only.
@@ -263,8 +265,8 @@
 \end{excdesc}
 
 \begin{datadesc}{casefold}
-A string suitable to pass as \var{translate} argument to
-\code{compile} to map all upper case characters to their lowercase
+A string suitable to pass as the \var{translate} argument to
+\code{compile()} to map all upper case characters to their lowercase
 equivalents.
 \end{datadesc}
 
@@ -278,7 +280,7 @@
   does not match the pattern (this is different from a zero-length
   match!).
   
-  The optional second parameter \var{pos} gives an index in the string
+  The optional second parameter, \var{pos}, gives an index in the string
   where the search is to start; it defaults to \code{0}.  This is not
   completely equivalent to slicing the string; the \code{'\^'} pattern
   character matches at the real begin of the string and at positions
@@ -293,12 +295,12 @@
   match anywhere!).
   
   The optional second parameter has the same meaning as for the
-  \code{match} method.
+  \code{match()} method.
 \end{funcdesc}
 
 \begin{funcdesc}{group}{index\, index\, ...}
-This method is only valid when the last call to the \code{match}
-or \code{search} method found a match.  It returns one or more
+This method is only valid when the last call to the \code{match()}
+or \code{search()} method found a match.  It returns one or more
 groups of the match.  If there is a single \var{index} argument,
 the result is a single string; if there are multiple arguments, the
 result is a tuple with one item per argument.  If the \var{index} is
@@ -308,8 +310,8 @@
 groups are parenthesized using \code{{\e}(} and \code{{\e})}).  If no
 such group exists, the corresponding result is \code{None}.
 
-If the regular expression was compiled by \code{symcomp} instead of
-\code{compile}, the \var{index} arguments may also be strings
+If the regular expression was compiled by \code{symcomp()} instead of
+\code{compile()}, the \var{index} arguments may also be strings
 identifying groups by their group name.
 \end{funcdesc}
 
@@ -319,41 +321,41 @@
 \renewcommand{\indexsubitem}{(regex attribute)}
 
 \begin{datadesc}{regs}
-When the last call to the \code{match} or \code{search} method found a
-match, this is a tuple of pairs of indices corresponding to the
+When the last call to the \code{match()} or \code{search()} method found a
+match, this is a tuple of pairs of indexes corresponding to the
 beginning and end of all parenthesized groups in the pattern.  Indices
-are relative to the string argument passed to \code{match} or
-\code{search}.  The 0-th tuple gives the beginning and end or the
+are relative to the string argument passed to \code{match()} or
+\code{search()}.  The 0-th tuple gives the beginning and end or the
 whole pattern.  When the last match or search failed, this is
 \code{None}.
 \end{datadesc}
 
 \begin{datadesc}{last}
-When the last call to the \code{match} or \code{search} method found a
+When the last call to the \code{match()} or \code{search()} method found a
 match, this is the string argument passed to that method.  When the
 last match or search failed, this is \code{None}.
 \end{datadesc}
 
 \begin{datadesc}{translate}
 This is the value of the \var{translate} argument to
-\code{regex.compile} that created this regular expression object.  If
-the \var{translate} argument was omitted in the \code{regex.compile}
+\code{regex.compile()} that created this regular expression object.  If
+the \var{translate} argument was omitted in the \code{regex.compile()}
 call, this is \code{None}.
 \end{datadesc}
 
 \begin{datadesc}{givenpat}
-The regular expression pattern as passed to \code{compile} or
-\code{symcomp}.
+The regular expression pattern as passed to \code{compile()} or
+\code{symcomp()}.
 \end{datadesc}
 
 \begin{datadesc}{realpat}
 The regular expression after stripping the group names for regular
-expressions compiled with \code{symcomp}.  Same as \code{givenpat}
+expressions compiled with \code{symcomp()}.  Same as \code{givenpat}
 otherwise.
 \end{datadesc}
 
 \begin{datadesc}{groupindex}
 A dictionary giving the mapping from symbolic group names to numerical
-group indices for regular expressions compiled with \code{symcomp}.
+group indexes for regular expressions compiled with \code{symcomp()}.
 \code{None} otherwise.
 \end{datadesc}
diff --git a/Doc/libregex.tex b/Doc/libregex.tex
index dd82ff4..6843594 100644
--- a/Doc/libregex.tex
+++ b/Doc/libregex.tex
@@ -1,19 +1,20 @@
 \section{Built-in Module \sectcode{regex}}
 \label{module-regex}
-
 \bimodindex{regex}
+
 This module provides regular expression matching operations similar to
 those found in Emacs.
 
 \strong{Obsolescence note:}
 This module is obsolete as of Python version 1.5; it is still being
 maintained because much existing code still uses it.  All new code in
-need of regular expressions should use the new \code{re} module, which
-supports the more powerful and regular Perl-style regular expressions.
-Existing code should be converted.  The standard library module
-\code{reconvert} helps in converting \code{regex} style regular
-expressions to \code{re} style regular expressions.  (For more
-conversion help, see the URL
+need of regular expressions should use the new
+\code{re}\refstmodindex{re} module, which supports the more powerful
+and regular Perl-style regular expressions.  Existing code should be
+converted.  The standard library module
+\code{reconvert}\refstmodindex{reconvert} helps in converting
+\code{regex} style regular expressions to \code{re}\refstmodindex{re}
+style regular expressions.  (For more conversion help, see the URL
 \file{http://starship.skyport.net/crew/amk/regex/regex-to-re.html}.)
 
 By default the patterns are Emacs-style regular expressions
@@ -154,7 +155,8 @@
 beginning or end of a word.
 %
 \item[\code{\e v}] Must be followed by a two digit decimal number, and
-matches the contents of the group of the same number.  The group number must be between 1 and 99, inclusive.
+matches the contents of the group of the same number.  The group
+number must be between 1 and 99, inclusive.
 %
 \item[\code{\e w}]Matches any alphanumeric character; this is
 equivalent to the set \code{[a-zA-Z0-9]}.
@@ -174,8 +176,8 @@
 % Python they seem to be synonyms for ^$.
 \item[\code{\e `}] Like \code{\^}, this only matches at the start of the
 string.
-\item[\code{\e \e '}] Like \code{\$}, this only matches at the end of the
-string.
+\item[\code{\e \e '}] Like \code{\$}, this only matches at the end of
+the string.
 % end of buffer
 \end{itemize}
 
@@ -201,13 +203,13 @@
 
 \begin{funcdesc}{compile}{pattern\optional{\, translate}}
   Compile a regular expression pattern into a regular expression
-  object, which can be used for matching using its \code{match} and
-  \code{search} methods, described below.  The optional argument
+  object, which can be used for matching using its \code{match()} and
+  \code{search()} methods, described below.  The optional argument
   \var{translate}, if present, must be a 256-character string
   indicating how characters (both of the pattern and of the strings to
-  be matched) are translated before comparing them; the \code{i}-th
+  be matched) are translated before comparing them; the \var{i}-th
   element of the string gives the translation for the character with
-  \ASCII{} code \code{i}.  This can be used to implement
+  \ASCII{} code \var{i}.  This can be used to implement
   case-insensitive matching; see the \code{casefold} data item below.
 
   The sequence
@@ -222,7 +224,7 @@
 \bcode\begin{verbatim}
 result = regex.match(pat, str)
 \end{verbatim}\ecode
-%
+
 but the version using \code{compile()} is more efficient when multiple
 regular expressions are used concurrently in a single program.  (The
 compiled version of the last pattern passed to \code{regex.match()} or
@@ -232,13 +234,13 @@
 \end{funcdesc}
 
 \begin{funcdesc}{set_syntax}{flags}
-  Set the syntax to be used by future calls to \code{compile},
-  \code{match} and \code{search}.  (Already compiled expression objects
-  are not affected.)  The argument is an integer which is the OR of
-  several flag bits.  The return value is the previous value of
-  the syntax flags.  Names for the flags are defined in the standard
-  module \code{regex_syntax}; read the file \file{regex_syntax.py} for
-  more information.
+  Set the syntax to be used by future calls to \code{compile()},
+  \code{match()} and \code{search()}.  (Already compiled expression
+  objects are not affected.)  The argument is an integer which is the
+  OR of several flag bits.  The return value is the previous value of
+  the syntax flags.  Names for the flags are defined in the standard 
+  module \code{regex_syntax}\refstmodindex{regex_syntax}; read the
+  file \file{regex_syntax.py} for more information.
 \end{funcdesc}
 
 \begin{funcdesc}{get_syntax}{}
@@ -246,10 +248,10 @@
 \end{funcdesc}
 
 \begin{funcdesc}{symcomp}{pattern\optional{\, translate}}
-This is like \code{compile}, but supports symbolic group names: if a
+This is like \code{compile()}, but supports symbolic group names: if a
 parenthesis-enclosed group begins with a group name in angular
 brackets, e.g. \code{'\e(<id>[a-z][a-z0-9]*\e)'}, the group can
-be referenced by its name in arguments to the \code{group} method of
+be referenced by its name in arguments to the \code{group()} method of
 the resulting compiled regular expression object, like this:
 \code{p.group('id')}.  Group names may contain alphanumeric characters
 and \code{'_'} only.
@@ -263,8 +265,8 @@
 \end{excdesc}
 
 \begin{datadesc}{casefold}
-A string suitable to pass as \var{translate} argument to
-\code{compile} to map all upper case characters to their lowercase
+A string suitable to pass as the \var{translate} argument to
+\code{compile()} to map all upper case characters to their lowercase
 equivalents.
 \end{datadesc}
 
@@ -278,7 +280,7 @@
   does not match the pattern (this is different from a zero-length
   match!).
   
-  The optional second parameter \var{pos} gives an index in the string
+  The optional second parameter, \var{pos}, gives an index in the string
   where the search is to start; it defaults to \code{0}.  This is not
   completely equivalent to slicing the string; the \code{'\^'} pattern
   character matches at the real begin of the string and at positions
@@ -293,12 +295,12 @@
   match anywhere!).
   
   The optional second parameter has the same meaning as for the
-  \code{match} method.
+  \code{match()} method.
 \end{funcdesc}
 
 \begin{funcdesc}{group}{index\, index\, ...}
-This method is only valid when the last call to the \code{match}
-or \code{search} method found a match.  It returns one or more
+This method is only valid when the last call to the \code{match()}
+or \code{search()} method found a match.  It returns one or more
 groups of the match.  If there is a single \var{index} argument,
 the result is a single string; if there are multiple arguments, the
 result is a tuple with one item per argument.  If the \var{index} is
@@ -308,8 +310,8 @@
 groups are parenthesized using \code{{\e}(} and \code{{\e})}).  If no
 such group exists, the corresponding result is \code{None}.
 
-If the regular expression was compiled by \code{symcomp} instead of
-\code{compile}, the \var{index} arguments may also be strings
+If the regular expression was compiled by \code{symcomp()} instead of
+\code{compile()}, the \var{index} arguments may also be strings
 identifying groups by their group name.
 \end{funcdesc}
 
@@ -319,41 +321,41 @@
 \renewcommand{\indexsubitem}{(regex attribute)}
 
 \begin{datadesc}{regs}
-When the last call to the \code{match} or \code{search} method found a
-match, this is a tuple of pairs of indices corresponding to the
+When the last call to the \code{match()} or \code{search()} method found a
+match, this is a tuple of pairs of indexes corresponding to the
 beginning and end of all parenthesized groups in the pattern.  Indices
-are relative to the string argument passed to \code{match} or
-\code{search}.  The 0-th tuple gives the beginning and end or the
+are relative to the string argument passed to \code{match()} or
+\code{search()}.  The 0-th tuple gives the beginning and end or the
 whole pattern.  When the last match or search failed, this is
 \code{None}.
 \end{datadesc}
 
 \begin{datadesc}{last}
-When the last call to the \code{match} or \code{search} method found a
+When the last call to the \code{match()} or \code{search()} method found a
 match, this is the string argument passed to that method.  When the
 last match or search failed, this is \code{None}.
 \end{datadesc}
 
 \begin{datadesc}{translate}
 This is the value of the \var{translate} argument to
-\code{regex.compile} that created this regular expression object.  If
-the \var{translate} argument was omitted in the \code{regex.compile}
+\code{regex.compile()} that created this regular expression object.  If
+the \var{translate} argument was omitted in the \code{regex.compile()}
 call, this is \code{None}.
 \end{datadesc}
 
 \begin{datadesc}{givenpat}
-The regular expression pattern as passed to \code{compile} or
-\code{symcomp}.
+The regular expression pattern as passed to \code{compile()} or
+\code{symcomp()}.
 \end{datadesc}
 
 \begin{datadesc}{realpat}
 The regular expression after stripping the group names for regular
-expressions compiled with \code{symcomp}.  Same as \code{givenpat}
+expressions compiled with \code{symcomp()}.  Same as \code{givenpat}
 otherwise.
 \end{datadesc}
 
 \begin{datadesc}{groupindex}
 A dictionary giving the mapping from symbolic group names to numerical
-group indices for regular expressions compiled with \code{symcomp}.
+group indexes for regular expressions compiled with \code{symcomp()}.
 \code{None} otherwise.
 \end{datadesc}
