[xsl] Regex in @select Escaping Puzzle

Subject: [xsl] Regex in @select Escaping Puzzle
From: "Eliot Kimber ekimber@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 16 Aug 2020 15:42:04 -0000
I have this element as my context element:

<p>{{image_100}}GEO_AS_MC_M01_T02_05.eps{{/image}}</p>

And I want to get the "GEO_AS_MC_M01_T02_05.eps" using analyze-string, where
the value "image_100" could have any value where "100" is in this example.

I can't work out the way to escape the curly braces in the @regex value so my
match works (or I can't work out what else I might be doing wrong).

Oxygen's regex search gives me the correct result with this:

\{\{image_.+}}([^{]+)\{\{/image}}

But this attempt in XSLT 3 does not work:

<xsl:analyze-string select="." regex="\{{\{{image_.+}}(.+)\{{\{{/image}}}}">

In that the non-matching substring is the entire selected string,
o;?
What regex or escaping detail am I missing?

Thanks,

E.

--
Eliot Kimber
http://contrext.com

Current Thread