The xsl:analyze-string element is new in XSLT 2.0. It applies a regular expression to
a supplied string value. The string is split into a sequence of substrings, each of which is
classified as either a matching substring (if it matches the regular expression) or a non-matching
substring (if it doesn't). The substrings are then processed individually: the matching substrings by
a xsl:matching-substring element that appears as a child of the xsl:analyze-string
instruction, the non-matching substrings by a similar xsl:non-matching-substring element.
If either of these is omitted, the relevant substrings are not processed.
The element has three attributes: select is an XPath expression whose value is the string
to be analyzed; regex is the regular expression (which may be given as an attribute value
template), and flags provides one or more Perl-like flags to control the way in which
regular expression matching is performed, for example the value "m" indicates multi-line mode.
When processing matching substrings, it is possible to call the regex-group() function
to find the parts of the matching substring that matched particular parenthesized groups within the
regular expression.
There are examples of this element in the XSLT 2.0 Working Draft.