Saxon has an option for this:
<xsl:sort select="Pin" collation="http://saxon.sf.net/collation?alphanumeric=yes"
Further info at
http://www.saxonica.com/documentatio...collation.html
If the alpha part of the sort key is always one character, you can do
<xsl:sort select="substring(Pin,1,1)" data-type="text"/>
<xsl:sort select="substring(Pin,2)" data-type="number"/>
If the alpha part is always [A-Z], you could try
<xsl:sort select="translate(Pin,'0123456789','')" data-type="text"/>
<xsl:sort select="translate(Pin,'ABCDE...','')" data-type="number"/>
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference