为什么这个 return 是 regex-group(1) 的值?

Why does this return a value for regex-group(1)?

我希望以下代码中的前两个正则表达式组值为空(排除其他人的代码故障):

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl"
  exclude-result-prefixes="xs xd"
  version="2.0">

  <xsl:output method="text"/>

  <xsl:template match="/">
    <xsl:analyze-string select="'1949'" regex="([0-9]{{1,2}})?\s?([A-Z]{{1}}[a-z]{{1,8}}\.?)?\s?([0-9]{{4}})">
      <xsl:matching-substring>
        <xsl:text>regex-group(1)=</xsl:text><xsl:value-of select="regex-group(1)"/><xsl:text>&#xd;</xsl:text>
        <xsl:text>regex-group(2)=</xsl:text><xsl:value-of select="regex-group(2)"/><xsl:text>&#xd;</xsl:text>
        <xsl:text>regex-group(3)=</xsl:text><xsl:value-of select="regex-group(3)"/><xsl:text>&#xd;</xsl:text>
      </xsl:matching-substring>
    </xsl:analyze-string>
  </xsl:template>

</xsl:stylesheet>

而是(使用 saxon 9.6.0.5 [更新 - 也是 saxon 9.6.0.7])我得到:

regex-group(1)=1
regex-group(2)=
regex-group(3)=1949

我正在调试以前运行的其他人的代码:这是 saxon 中的错误吗?还是我遗漏了导致返回“1”的内容?

因为这在 saxon 9.5.1.7 中给出了预期的结果,我认为这是一个错误,所以我已经打开了 Saxonica 的报告。

该错误也存在于 Saxon-HE 版本 9.7.0-5 中。我必须降级到版本 9.6.0-7 才能使代码正常工作。我使用的是 9.6.0-7 版本,因为氧气中的嵌入式 xslt 引擎(代码运行良好)使用的正是这个版本。