You need to make it clear whether you need an XSLT 1.0 or 2.0 solution.
In 2.0 you can do it using regular expressions:
replace($in, '.*?([\d]+$)', '$1')
In 1.0 you need a recursive template along the lines:
Code:
<xsl:template name="strip">
<xsl:param name="in"/>
<xsl:when test="translate($in, '0123456789', '')">
<xsl:call-template name="strip">
<xsl:with-param name="in" select="substring($in, 2)"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$in"/>
</xsl:otherwise>
</xsl:template>
(The translate() call removes all digits and returns true if the result is non-zero-length, that is, if the string contained a non-digit).