Это XSLT-преобразование :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/*">
<xsl:variable name="v1stchar" select=
"substring(translate(s[2],translate(s[2],'ABCDEFGHIJKLMNOPQRSTUVWXYZ', ''),''),1,1)"/>
<xsl:value-of select=
"concat(s[1],
' ',
substring-before(s[2], $v1stchar),
translate($v1stchar,'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),
substring-after(s[2], $v1stchar)
)
"/>
</xsl:template>
</xsl:stylesheet>
при применении к этому XML-документу :
<t>
<s>Name</s>
<s>*R*eturns the something of the something.</s>
</t>
создает искомый, правильный результат :
Name *r*eturns the something of the something.
Это можно сделать даже в одном выражении XPath , но это выглядело бы действительно громоздким.