title: Is it possible to capture values from a repeating regex group in xsl:analyze-string?
body: <p>I want to do something like this:</p>
  
  <pre><code>&lt;xsl:analyze-string select="'ABCD'" regex="(A|B|C|D)+"&gt;
    &lt;xsl:matching-substring&gt;
       &lt;xsl:for-each select="regex-group(1)"&gt;
           &lt;letter&gt;&lt;xsl:value-of select="." /&gt;&lt;/letter&gt;
       &lt;/xsl:for-each&gt;                    
    &lt;/xsl:matching-substring&gt;
  &lt;/xsl:analyze-string&gt;
  </code></pre>
  
  <p>=></p>
  
  <pre><code>&lt;letter&gt;A&lt;/letter&gt;
  &lt;letter&gt;B&lt;/letter&gt;
  &lt;letter&gt;C&lt;/letter&gt;
  &lt;letter&gt;D&lt;/letter&gt;
  </code></pre>
  
  <p>But it doesn't appear to be possible because <code>xsl:analyze-string</code> only keeps the last value captured in a group, so the actual output is just:</p>
  
  <pre><code>&lt;letter&gt;D&lt;/letter&gt;    
  </code></pre>
  
  <p>The general problem is dealing with known values that may appear in unknown orders.</p>