Justement, ça s'appelle le "natural sort" (tu devrais trouver des algo sur le net)
Le principe n'est pas très compliqué.
A l'aide d'expressions régulières, tu sépares, dans un tableau, les éléments suivants, toujours dans cet ordre :
ponctuation
chiffres
lettres
ponctuation
chiffres
lettres
etc.
ainsi :
QQ20a ça donne :
""
""
QQ
""
20
a
Pour "WTC-11/09/2001" :
""
""
WTC
-
11
""
/
09
""
/
2001
voilà.
maintenant que t'as des tableaux contenant tes blocs séprarés et toujours dans cet ordre, tu fais un tri selon ces éléments, dans l'ordre alphabétique pour les lettres et les ponctuations, et numérique pour les nombres.