Classificando nomes com números corretamente

Para classificação de nomes de item, quero dar suporte a números corretamente. isto é:

1 Hamlet
2 Ophelia
...
10 Laertes

ao invés de

1 Hamlet
10 Laertes
2 Ophelia
...

Alguém sabe de um functor de comparação que já suporta isso?
(ou seja, um predicado que pode ser passado parastd::sort)

Eu basicamente tenho dois padrões para suportar: Número principal (como acima) e número no final, semelhante ao explorador:

Dolly
Dolly (2)
Dolly (3)

(Eu acho que eu poderia resolver isso: comparar por caractere e tratar os valores numéricos de forma diferente. No entanto, isso provavelmente quebraria o collaiton unicode e outros enfeites)

questionAnswers(2)

yourAnswerToTheQuestion