From 1ea4eef62d24f4f0574afba646c635f677eeb7cc Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Wed, 26 Apr 2023 03:02:07 +0000
Subject: CTAN sync 202304260302

---
 .../glossaries-extra/glossaries-extra-manual.tex   | 443 ++++++++++++++++++++-
 1 file changed, 425 insertions(+), 18 deletions(-)

(limited to 'macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex')

diff --git a/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex b/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex
index af8ee2c81c..f800c94165 100644
--- a/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex
+++ b/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex
@@ -5576,6 +5576,22 @@ unless you have reverted \gls{newacronym} back to the base
       \gls{glossentryname}\margm{entry-label}, but it can be something
       else}
   }
+  % \glsxtrtarget
+  \gcmd{gls\-xtr\-target}
+  {
+    \providedby{\sty{glossaries-extra} v1.51+}
+    \syntax{\margm{entry-label}\margm{text}}
+    \desc{like \gls{glstarget} but only creates the target if the
+    field given by \gls{glsxtrtarget} field hasn't been set (if
+    hyperlinks are supported). If that field hasn't been set, the
+    target is created and the field is set to the target name}
+  }
+  % \glsxtrtargetfield
+  \gcmd{gls\-xtr\-target\-field}
+  {
+    \providedby{\sty{glossaries-extra} v1.51+}
+    \desc{expands to the field label used by \gls{glsxtrtarget}}
+  }
   % \setentrycounter
   \gcmd{set\-entry\-counter}
   {
@@ -12170,6 +12186,15 @@ from \gls{theHcounter}}%
     \gls{ref}. As with \gls{glsrefentry}, this will use \gls{gls}
      instead if the corresponding entry counter is disabled}
   }
+  % \glsxtrpInit
+  \gcmd{gls\-xtr\-p\-Init}
+  {
+    \providedby{\sty{glossaries-extra} v1.51+}
+    \syntax{\margm{cs-name}\margm{entry-label}}
+    \desc{hook implemented at the start of \gls{glsxtrp} (and
+    case-changing variants) inside the added scoping. By default
+    this disables the \idx{postlinkhook} and ignores its arguments}
+  }
   % \glsxtrp
   \gcmd{gls\-xtrp}
   {
@@ -12179,7 +12204,7 @@ from \gls{theHcounter}}%
      \gls{glslike} or \gls{glstextlike} commands). This command is
       designed to expand to the field value if used in a PDF
       bookmark and can also expand to a more appropriate command if
-      it ends up in the page header. Note that there's no option
+      it ends up in the page header. Note that there's no optional
       argument. Options should be set beforehand using
       \gls{glsxtrsetpopts}, which is done automatically in the
       glossary with \gls{glossxtrsetpopts}}
@@ -12214,6 +12239,34 @@ from \gls{theHcounter}}%
     \syntax{\margm{entry-label}}
     \desc{shortcut for \code{\gls{glsxtrp}\marg{text}\margm{entry-label}}}
   }
+  % \Glsps
+  \gcmd{Gls\-ps}
+  {
+    \providedby{\sty{glossaries-extra} v1.51+}
+    \syntax{\margm{entry-label}}
+    \desc{shortcut for \code{\gls{Glsxtrp}\marg{short}\margm{entry-label}}}
+  }
+  % \Glspt
+  \gcmd{Gls\-pt}
+  {%
+    \providedby{\sty{glossaries-extra} v1.51+}
+    \syntax{\margm{entry-label}}
+    \desc{shortcut for \code{\gls{Glsxtrp}\marg{text}\margm{entry-label}}}
+  }
+  % \GLSps
+  \gcmd{GLS\-ps}
+  {
+    \providedby{\sty{glossaries-extra} v1.51+}
+    \syntax{\margm{entry-label}}
+    \desc{shortcut for \code{\gls{GLSxtrp}\marg{short}\margm{entry-label}}}
+  }
+  % \GLSpt
+  \gcmd{GLS\-pt}
+  {%
+    \providedby{\sty{glossaries-extra} v1.51+}
+    \syntax{\margm{entry-label}}
+    \desc{shortcut for \code{\gls{GLSxtrp}\marg{text}\margm{entry-label}}}
+  }
   % \glsxtrsetpopts
   \gcmd{gls\-xtr\-set\-p\-opts}
   {%
@@ -18337,6 +18390,16 @@ category, but no commands are provided that set the
     \desc{may be defined to temporarily change command definitions
     before information is written to the \ext{aux} file by the protected
     write used by \gls{glsxtrresourcefile}}
+    \field{seealso}{GlsXtrResourceInitEscSequences}
+  }
+  % \GlsXtrResourceInitEscSequences
+  \gcmd{Gls\-Xtr\-Resource\-Init\-Esc\-Sequences}
+  {
+    \providedby{\sty{glossaries-extra-bib2gls} v1.51+}
+    \desc{may be added to the definition of \gls{glsxtrresourceinit}
+    to temporarily change the definitions of commands that may be used
+    in regular expressions or within the \resourceopt{assign-fields}
+    resource option}
   }
   % \GlsXtrDefaultResourceOptions
   \gcmd{Gls\-Xtr\-Default\-Resource\-Options}%
@@ -18404,6 +18467,7 @@ category, but no commands are provided that set the
     \providedby{\sty{glossaries-extra-bib2gls} v1.21+}
     \syntax{\meta{hex}}
     \desc{expands to \code{\gls{string}\gls{u}\meta{hex}}}
+    \field{seealso}{GlsXtrResourceInitEscSequences}
   }
   % \u
   \gcmd{u}
@@ -18411,17 +18475,18 @@ category, but no commands are provided that set the
     \syntax{\meta{hex}}
     \desc{recognised by \app{bib2gls} within some \idxpl{resourceopt}
     as identifying the Unicode character given by \meta{hex}. Since
-    \csfmt{u} is defined by the \LaTeX\ kernel, you need to protect
-    it from expansion while the options are written to the \ext{aux} file
-    (\code{\gls{string}\csfmt{u}\meta{hex}})}
-    \field{seealso}{glshex}
+    \csfmt{u} is defined by the \LaTeX\ kernel as an accent
+    command, you need to protect it from expansion while the options 
+    are written to the \ext{aux} file (\code{\gls{string}\csfmt{u}\meta{hex}})}
+    \field{seealso}{glshex,GlsXtrResourceInitEscSequences}
   }
   % \glscapturedgroup
   \gcmd{gls\-captured\-group}
   {
     \providedby{\sty{glossaries-extra-bib2gls} v1.31+}
     \syntax{\meta{n}}
-    \desc{expands to \code{\gls{string}\gls{dollar}\meta{n}}}
+    \desc{expands to \code{\gls{string}\gls{dollar}\meta{n}}. Note
+    that this isn't the same as \gls{MGP}}
   }
   % \glshashchar
   \gcmd{gls\-hash\-char}
@@ -18429,6 +18494,134 @@ category, but no commands are provided that set the
     \providedby{\sty{glossaries-extra-bib2gls} v1.49+}
     \desc{expands to a literal hash \idx{sym.hash}}
   }
+  % \cs
+  \gcmd{cs}
+  {
+     \syntax{\margm{csname}}
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{csname}}
+  }
+  % \CS
+  \gcmd{CS}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{CS}}
+  }
+  % \NULL
+  \gcmd{NULL}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{NULL}}
+  }
+  % \IN
+  \gcmd{IN}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{IN}}
+  }
+  % \NIN
+  \gcmd{NIN}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{NIN}}
+  }
+  % \PREFIXOF
+  \gcmd{PREFIX\-OF}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{PREFIXOF}}
+  }
+  % \NOTPREFIXOF
+  \gcmd{NOT\-PREFIX\-OF}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{NOTPREFIXOF}}
+  }
+  % \SUFFIXOF
+  \gcmd{SUFFIX\-OF}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{SUFFIXOF}}
+  }
+  % \NOTSUFFIXOF
+  \gcmd{NOT\-SUFFIX\-OF}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{NOTSUFFIXOF}}
+  }
+  % \LC
+  \gcmd{LC}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{LC}}
+  }
+  % \UC
+  \gcmd{UC}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{UC}}
+  }
+  % \TITLE
+  \gcmd{TITLE}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{TITLE}}
+  }
+  % \FIRSTLC
+  \gcmd{FIRSTLC}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{FIRSTLC}}
+  }
+  % \FIRSTUC
+  \gcmd{FIRSTUC}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{FIRSTUC}}
+  }
+  % \MGP
+  \gcmd{MGP}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{MGP}. Note that this isn't the same as
+    \gls{glscapturedgroup}}
+  }
+  % \LEN
+  \gcmd{LEN}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{LEN}}
+  }
+  % \CAT
+  \gcmd{CAT}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{CAT}}
+  }
+  % \TRIM
+  \gcmd{TRIM}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{TRIM}}
+  }
+  % \INTERPRET
+  \gcmd{INTERPRET}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{INTERPRET}}
+  }
+  % \LABELIFY
+  \gcmd{LABELIFY}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{LABELIFY}}
+  }
+  % \LABELIFYLIST
+  \gcmd{LABELIFYLIST}
+  {
+     \desc{defined by \gls{GlsXtrResourceInitEscSequences} to expand
+     to detokenized \csfmt{LABELIFYLIST}}
+  }
   % \GlsXtrBibTeXEntryAliases
   \gcmd{Gls\-Xtr\-Bib\-TeX\-Entry\-Aliases}
   {
@@ -20059,6 +20252,16 @@ now takes additional values}
      this copies the value of the field identified by \meta{src-field} to 
      each field in the comma-separated \meta{dest-field list}}
   }
+  % resource option assign-fields
+  \gresourceopt{assign\dhyphen fields}
+  {
+    \syntax{\margm{key=value list}}
+    \desc{where each element in the \meta{key=value list} is in the
+     form \code{\meta{dest-field}\dequals\meta{expression}} that
+     assigns the value of \meta{dest-field} to the value obtained
+     from \meta{expression}, providing a more complex alternative to 
+     \resourceopt{replicate-fields}}
+  }
   % resource option interpret-fields
   \gresourceopt{interpret\dhyphen fields}
   {
@@ -20928,6 +21131,13 @@ now takes additional values}
      corresponding line number. The \opt{nowarn}
     option redefines this command to do nothing}
   }
+  % \GlossariesExtraInfo
+  \gcmd{Glossaries\-Extra\-Info}
+  {
+    \providedby{\sty{glossaries-extra} v1.51+}
+    \syntax{\margm{message}}
+    \desc{writes an information message to the transcript}
+  }
   % \GlsXtrWarnDeprecatedAbbrStyle
   \gcmd{Gls\-Xtr\-Warn\-Deprecated\-Abbr\-Style}
   {
@@ -21066,6 +21276,24 @@ now takes additional values}
   \gpunccmd{amp}{\&}{}% \&
   \gpunccmd{dollar}{\$}{}% \$
   \gpunccmd{bksl}{\glsbackslash}{}% \\
+  \gpunccmd{cs.dot}{.}{}% \.
+  \gpunccmd{cs.slash}{/}{}% \/
+  \gpunccmd{cs.pipe}{|}{}% \|
+  \gpunccmd{cs.plus}{+}{}% \+
+  \gpunccmd{cs.lt}{<}{}% \<
+  \gpunccmd{cs.gt}{<}{}% \>
+  \gpunccmd{cs.star}{*}{}% \*
+  \gpunccmd{cs.circum}{\textasciicircum}{}% \^
+  \gpunccmd{cs.openparen}{(}{}% \(
+  \gpunccmd{cs.closeparen}{)}{}% \)
+  \gpunccmd{cs.opensq}{[}{}% \[
+  \gpunccmd{cs.closesq}{]}{}% \]
+  \gpunccmd{cs.quote}{"}{}% \"
+  \gpunccmd{cs.tilde}{\textasciitilde}{}% \~
+  \gpunccmd{cs.hyphen}{-}{}% \-
+  \gpunccmd{cs.question}{?}{}% \?
+  \gpunccmd{cs.hash}{\#}{}% \#
+  \gpunccmd{cs.colon}{:}{}% \:
   \gcmd{new\-command}{}% \newcommand
   \gcmd{re\-new\-command}{}% \renewcommand
   \gcmd{provide\-command}{}% \providecommand
@@ -21563,13 +21791,13 @@ now takes additional values}
   } 
 }
 
-\title{\styfmt{glossaries-extra.sty} v1.50:
+\title{\styfmt{glossaries-extra.sty} v1.51:
  an extension to the \styfmt{glossaries} package}
 \author{Nicola L.C. Talbot\\[10pt]
 Dickimaw Books\\
 \href{https://www.dickimaw-books.com/}{\nolinkurl{dickimaw-books.com}}}
 
-\date{2022-11-08
+\date{2023-04-24
 }
 \begin{document}
  \maketitle
@@ -27660,6 +27888,10 @@ outer group. For example,
 \marg{\gls{let}\gls{glspostlinkhook}\gls{relax}
  \gls{glsxtrshort}\oarg{noindex,nohyper}\marg{html}}
 \end{compactcodebox}
+Note that the code to suppress the \idx{postlinkhook} has been moved
+to \gls{glsxtrpInit}, so it is now possible to allow the
+\idx{postlinkhook} but it won't be able to lookahead beyond the
+added outer group.
 
 Depending on the settings (the \glsopt{wrgloss} option or the
 \catattr{wrgloss} attribute), the indexing may come before the text:
@@ -29737,6 +29969,22 @@ field, this tests the existence of \csfmt{gls\meta{field}} or
 the \meta{field} argument is set to something that isn't a field but
 happens to match either of those command names (such as \code{full}).
 
+The \idx{postlinkhook} is suppressed by the initialisation command:
+\cmddef{glsxtrpInit}
+This is used inside the added outer scoping and is simply defined
+as:
+\begin{compactcodebox}
+\cmd{newcommand}{\gls{glsxtrpInit}}[2]\marg{\cmd{let}\gls{glspostlinkhook}\cmd{relax}}
+\end{compactcodebox}
+It is possible to redefine this command to allow the
+\idx{glspostlinkhook} to be used, but any look-ahead (such as
+checking for a following punctuation character) won't work because
+of the added grouping. The arguments are ignored by default. If you
+want to redefine \gls{glsxtrpInit} the first argument is the name of
+the control sequence that will be used, without the leading
+backslash (for example, \code{glstext} or \code{glsxtrshort}) and
+the second argument is the entry's label.
+
 Note that, as with commands like \gls{glsfmtshort}, there's no
 optional argument.  The default settings are \glsopt{noindex} and
 \glsoptval{hyper}{false}. You can change this with:
@@ -29755,14 +30003,6 @@ This is defined as:
 This allows hyperlinks for any instance of \gls{glsxtrp} that occurs
 in the name or description, where it shouldn't be problematic.
 
-There are some shortcut commands for the most common fields:
-\cmddef{glsps}
-which is equivalent to
-\code{\gls{glsxtrp}\marg{short}\margm{entry-label}}, and
-\cmddef{glspt}
-which is equivalent to
-\code{\gls{glsxtrp}\marg{text}\margm{entry-label}}.
-
 There are also \idx{sentencecase} and \idx{allcaps} versions.
 \cmddef{Glsxtrp}
 This uses the corresponding \idx{sentencecase} command
@@ -29772,6 +30012,27 @@ This uses the corresponding \idx{sentencecase} command
 This uses the corresponding \idx{allcaps} command
 \csfmt{GLS\meta{field}} or \csfmt{GLSxtr\meta{field}}.
 
+There are some shortcut commands for the most common fields:
+\cmddef{glsps}
+which is equivalent to
+\code{\gls{glsxtrp}\marg{short}\margm{entry-label}}, and
+\cmddef{glspt}
+which is equivalent to
+\code{\gls{glsxtrp}\marg{text}\margm{entry-label}}.
+As well as \idx{sentencecase} and \idx{allcaps} versions:
+\cmddef{Glsps}
+which is equivalent to
+\code{\gls{Glsxtrp}\marg{short}\margm{entry-label}}, 
+\cmddef{Glspt}
+which is equivalent to
+\code{\gls{Glsxtrp}\marg{text}\margm{entry-label}},
+\cmddef{GLSps}
+which is equivalent to
+\code{\gls{GLSxtrp}\marg{short}\margm{entry-label}}, and
+\cmddef{GLSpt}
+which is equivalent to
+\code{\gls{GLSxtrp}\marg{text}\margm{entry-label}}.
+
 For example:
 \begin{codebox}
 \cmd{documentclass}\marg{article}
@@ -31002,7 +31263,26 @@ the hyperlink should be inside or outside of the outer formatting.
 
 The hyperlink target is usually created by \gls{glstarget} which is
 used by all the predefined \idxpl{glossarystyle} by the standalone
-commands, such as \gls{GlsXtrStandaloneEntryName}.
+commands, such as \gls{GlsXtrStandaloneEntryName}. This can result
+in duplicate targets if you have multiple \idxpl{glossary} or both
+standalone entries and a \idx{glossary}. There are ways of getting
+around this, such as changing the target prefix or using 
+\printglossoptval{target}{false} when displaying the \idx{glossary}.
+However, the simplest method is to redefine \gls{glstarget} to use:
+\cmddef{glsxtrtarget}
+This behaves in a similar manner to \gls{glstarget} but first tests
+the field obtained by expanding:
+\cmddef{glsxtrtargetfield}
+By default, this expands to \fieldfmt{target}. If this field is
+undefined (according to \gls{GlsXtrIfFieldUndef}) the target will be
+created in the way that \gls{glstarget} would ordinarily create it
+(if hyperlinks are enabled). The field will then be set to the
+target. If the field has been defined then the target won't be
+created and the \meta{text} is simply displayed. In order to use
+this feature just redefine \gls{glstarget}:
+\begin{codebox}
+\cmd{renewcommand}\marg{\gls{glstarget}}\marg{\gls{glsxtrtarget}}
+\end{codebox}
 
 The target for an entry with the label \meta{entry-label} is in the
 form \meta{prefix}\meta{entry-label}. The \meta{prefix} is normally
@@ -36735,6 +37015,31 @@ won't show up in the other \idxpl{glossary}, but will be found when
 using an iterative command, such as \gls{glsaddall}, over the target
 \idx{glossary}.
 
+You can test if an entry has already been added to a \idx{glossary}
+with:
+\cmddef{GlsXtrIfInGlossary}
+This does \meta{true} if the entry given by \meta{entry-label}
+is in the internal list of the \idx{glossary} identified by
+\meta{glossary-type}, otherwise it does \meta{false}. If the
+\idx{glossary} doesn't exist, this does \meta{false} and
+will either generate an error (\opteqvalref{undefaction}{error})
+or a warning (\opteqvalref{undefaction}{warn}). This command
+considers \idxpl{ignoredglossary} as existing.
+
+You can test if a \idx{glossary} is empty with:
+\cmddef{glsxtrifemptyglossary}
+This does \meta{true} if the glossary identified by
+\meta{glossary-type} is empty, otherwise does \meta{false}.
+If the \idx{glossary} doesn't exist, this does \meta{true} and
+will either generate an error (\opteqvalref{undefaction}{error})
+or a warning (\opteqvalref{undefaction}{warn}). This command
+considers \idxpl{ignoredglossary} as existing.
+
+To test for the existence of a \idx{glossary}, you can use
+\gls{ifglossaryexists} and \gls{doifglossarynoexistsordo}, which are
+documented in the \qt{Conditionals} section of the \sty{glossaries}
+user manual.
+
 The base \sty{glossaries} package provides \gls{forallglossaries} to
 iterate over a list of \idxpl{glossary} labels (all
 non-\idxpl{ignoredglossary} by default). This can also be used with
@@ -36880,6 +37185,8 @@ is obtained from \code{\gls{glolinkprefix}\meta{entry-label}}. If
 you are displaying multiple \idxpl{glossary} with shared entries (for
 example, using the \resourceopt{secondary} resource option with
 \app{bib2gls}), then changing the prefix can avoid duplicate targets.
+Alternatively, you can redefine \gls{glstarget} to use
+\gls{glsxtrtarget}.
 
 Note that this option will also affect the targets used by the
 \idx{glslike} and \idx{glstextlike} commands. This means that if you
@@ -38629,6 +38936,11 @@ by default.
 Remember that \gls{glossentryname} uses \gls{glsnamefont} or picks up
 the style from category attributes such as
 \catattr{glossnamefont}.
+This can result in duplicate targets if you use both standalone
+commands and display the \idx{glossary}. In which case, 
+you can redefine \gls{glstarget} to use \gls{glsxtrtarget}, which
+will ensure that the first target will be the one that takes
+precedence.
 \end{itemize}
 If you have used \gls{nopostdesc} or \gls{glsxtrnopostpunc}
 in any of your description fields, you can use:
@@ -43134,6 +43446,11 @@ you can just use, for example, \code{\gls{u} E6} instead of
 \code{\gls{string}\gls{u}E6} in the custom rule. This redefinition of \gls{u}
 is scoped so its original definition is restored after the write operation.
 
+If you have complex regular expressions or use
+\resourceopt{assign-fields} (\app{bib2gls} v3.3+), you may find it more convenient to
+redefine \gls{glsxtrresourceinit} to use 
+\gls{GlsXtrResourceInitEscSequences}.
+
 \cmddef{glsxtrMFUsave}
 If you have \sty{mfirstuc} v2.08+, this command will be used on the
 first instance of \gls{glsxtrresourcefile}, and will add
@@ -44251,11 +44568,96 @@ which is used to indicate the \meta{n}th captured group in a regular expression
 replacement in the value of some \idxpl{resourceopt} (requires
 \app{bib2gls} v1.5+), such as \resourceopt{sort-replace}. For example:
 \begin{codebox}
-\resourceoptvalm{sort-replace}{\marg{([a-zA-Z])\gls{string}\cmd{.}}\marg{\gls{glscapturedgroup}1}}
+\resourceoptvalm{sort-replace}{\marg{([a-zA-Z])\gls{string}\gls{cs.dot}}\marg{\gls{glscapturedgroup}1}}
 \end{codebox}
 This removes a full stop that follows any of the characters
 a,\ldots,z or A,\ldots,Z.
 
+\begin{important}
+Note that \gls{glscapturedgroup} isn't the same as the match group
+identifier \gls{MGP}.
+\end{important}
+
+If you have complex regular expressions or use
+\resourceopt{assign-fields}, you may find it more convenient to
+redefine \gls{glsxtrresourceinit} to use the following command:
+\cmddef{GlsXtrResourceInitEscSequences}
+
+\begin{important}
+\gls{GlsXtrResourceInitEscSequences} should not be used outside of
+the definition of \gls{glsxtrresourceinit} as the definitions will likely cause
+interference and are only intended as resource option instructions 
+for \app{bib2gls}.
+\end{important}
+
+This command locally redefines escape sequences used in regular
+expressions so that they detokenize when they expand. This means
+that you won't need to use \gls{string} or \gls{protect} in front of
+them. The following commands are defined:
+
+\begin{itemize}
+\item \cmddefsyntax{}{u} (Unicode character);
+\item General use: \cmddefsyntax{}{cs} (expands to detokenized
+\csfmt{csname} when writing to the \ext{aux} file);
+\item For literal characters in regular expressions:
+\cmddefsyntax{}{cs.dot} 
+\cmddefsyntax{}{bksl}
+\cmddefsyntax{}{cs.slash}
+\cmddefsyntax{}{cs.pipe}
+\cmddefsyntax{}{amp}
+\cmddefsyntax{}{cs.plus}
+\cmddefsyntax{}{cs.lt}
+\cmddefsyntax{}{cs.gt}
+\cmddefsyntax{}{cs.star}
+\cmddefsyntax{}{dollar}
+\cmddefsyntax{}{cs.circum}
+\cmddefsyntax{}{cs.tilde}
+\cmddefsyntax{}{cs.openparen}
+\cmddefsyntax{}{cs.closeparen}
+\cmddefsyntax{}{cs.opensq}
+\cmddefsyntax{}{cs.closesq}
+\cmddefsyntax{}{cs.quote}
+\cmddefsyntax{}{cs.hyphen}
+\cmddefsyntax{}{cs.question}
+\cmddefsyntax{}{cs.colon}
+\cmddefsyntax{}{cs.hash}
+
+\item Special markup for use as instructions or keywords in
+\resourceopt{assign-fields}:
+\cmddefsyntax{}{MGP}
+\cmddefsyntax{}{LEN}
+\cmddefsyntax{}{CAT}
+\cmddefsyntax{}{TRIM}
+\cmddefsyntax{}{CS}
+\cmddefsyntax{}{INTERPRET}
+\cmddefsyntax{}{LABELIFY}
+\cmddefsyntax{}{LABELIFYLIST}
+\cmddefsyntax{}{NULL}
+\cmddefsyntax{}{IN}
+\cmddefsyntax{}{NIN}
+\cmddefsyntax{}{PREFIXOF}
+\cmddefsyntax{}{NOTPREFIXOF}
+\cmddefsyntax{}{SUFFIXOF}
+\cmddefsyntax{}{NOTSUFFIXOF}
+\cmddefsyntax{}{LC}
+\cmddefsyntax{}{UC}
+\cmddefsyntax{}{FIRSTLC}
+\cmddefsyntax{}{FIRSTUC}
+\cmddefsyntax{}{TITLE}.
+
+\end{itemize}
+
+For example, with
+\begin{codebox}
+\cmd{renewcommand}\marg{\gls{glsxtrresourceinit}}\marg{\comment{}
+  \cmddef{GlsXtrResourceInitEscSequences}
+}
+\end{codebox}
+then the earlier example can be written more compactly as:
+\begin{codebox}
+\resourceoptvalm{sort-replace}{\marg{([a-zA-Z])\gls{cs.dot}}\marg{\gls{cs.dollar}1}}
+\end{codebox}
+
 A convenient shortcut for use in the \resourceopt{entry-type-aliases}
 setting:
 \cmddef{GlsXtrBibTeXEntryAliases}
@@ -45579,6 +45981,11 @@ No expansion is performed on \meta{default-options} or \meta{field}
 while the new commands are being defined.
 \end{information}
 
+Information is written to the transcript file with \gls{GlossariesExtraInfo}
+if a fallback is considered. Note that this shouldn't be considered
+a warning as the fallback might be desired, but if the wrong output
+is produced this information may explain the selection.
+
 This family of \gls{dglsfield} commands all define:
 \cmddef{dglsfieldcurrentfieldlabel}
 This expands to the given field label.
-- 
cgit v1.2.3

