Prawidłowe sortowanie nazw z numerami

Aby sortować nazwy przedmiotów, chcę poprawnie obsługiwać numery. to znaczy:

1 Hamlet
2 Ophelia
...
10 Laertes

zamiast

1 Hamlet
10 Laertes
2 Ophelia
...

Czy ktoś wie o funktorze porównawczym, który już to obsługuje?
(tj. predykat, który można przekazaćstd::sort)

Zasadniczo mam dwa wzorce do obsługi: Numer wiodący (jak wyżej) i numer na końcu, podobny do eksploratora:

Dolly
Dolly (2)
Dolly (3)

(Myślę, że mógłbym to rozpracować: porównać według znaków i traktować wartości numeryczne w inny sposób. Jednak to prawdopodobnie złamałoby kolizję Unicode i cokolwiek)

questionAnswers(2)

yourAnswerToTheQuestion