Hey,

I am trying to use analyze-string. I have this query:

declare namespace str = 'str.analysis';
declare function str:analyze-string($string as xs:string, $regex as xs:string,$n as xs:integer ) as xs:string {
 xslt:transform(<item />, (
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> 
   <xsl:template match='/' >  
      <xsl:analyze-string regex="{$regex}" select="'{$string}'" > 
         <xsl:matching-substring>
            <xsl:for-each select="1 to {$n}"> 
               <match>  
                   <xsl:value-of select="regex-group(.)"/>  
                </match>  
             </xsl:for-each> 
          </xsl:matching-substring> 
      </xsl:analyze-string>  
   </xsl:template> 
</xsl:stylesheet>))
}; 
let $item as xs:string := 'test MM23423 junk MM11111 junkagain man'
let $result := str:analyze-string($item, 'MM', 10)
return $result

However I am getting an error that this is unsupported. Upon further investigation I found that this is only available in Saxon EE. I'm guessing this is my problem. Is there anything of similar functionality included in basex? 

Any help would be appreciated. thanks.

- james