Não conheço nenhum local que, por padrão, classifique nessa ordem. A solução é criar um código de idioma personalizado com uma ordem de classificação personalizada. Se alguém, quatro anos depois, quiser classificar de maneira personalizada, aqui está o truque.
A grande maioria dos códigos de idioma não especifica sua própria ordem de classificação, mas copia a ordem de classificação definida em, /usr/share/i18n/locales/iso14651_t1_commone é isso que você deseja editar. Em vez de alterar a ordem de classificação para quase todos os locais, modificando o original iso14651_t1_common, sugiro que você faça uma cópia. Detalhes sobre como a ordem de classificação funciona e como criar um código de idioma personalizado em seu $HOMEdiretório sem acesso root são encontrados nesta resposta a uma pergunta semelhante .
Veja como ae Asão ordenados com base em suas entradas em iso14651_t1_common:
<U0061> <a>;<BAS>;<MIN>;IGNORE # 198 a
<U0041> <a>;<BAS>;<CAP>;IGNORE # 517 A
be Bsão semelhantes:
<U0062> <b>;<BAS>;<MIN>;IGNORE # 233 b
<U0042> <b>;<BAS>;<CAP>;IGNORE # 550 B
Vemos que, na primeira passagem, ambos ae Atêm o símbolo de intercalação <a>, enquanto ambos be Btêm o símbolo de intercalação <b>. Desde <a>aparece antes <b>em iso14651_t1_common, ae Aestá empatado antes be B. A segunda passagem não quebra os empates porque todos os quatro caracteres têm o símbolo de intercalação <BAS>, mas durante a terceira passagem os empates são resolvidos porque o símbolo de intercalação para letras minúsculas <MIN>aparece na linha 3467, antes do símbolo de intercalação para letras maiúsculas <CAP>(linha 3488) . Assim, a ordem de classificação termina como a, A, b, B.
Trocar o primeiro e o terceiro símbolos de ordenação classificaria as letras primeiro por maiúsculas e minúsculas (mais baixo e mais alto), depois por sotaque ( <BAS>significa sem sotaque) e depois por ordem alfabética. No entanto , ambos <MIN>e <CAP>vêm antes dos dígitos numéricos, portanto, isso teria o efeito indesejado de colocar dígitos após as letras.
A maneira mais fácil de manter os dígitos primeiro e fazer todas as letras minúsculas aparecerem antes de todas as letras maiúsculas é forçar todas as letras a serem amarradas durante a primeira comparação, definindo todas iguais <a>. Para garantir que eles ordenem alfabeticamente dentro de maiúsculas e minúsculas, altere o último símbolo de intercalação de IGNOREpara o atual primeiro símbolo de intercalação. Seguindo esse padrão, aseria:
<U0061> <a>;<BAS>;<MIN>;<a> # 198 a
A se tornaria:
<U0041> <a>;<BAS>;<CAP>;<a> # 517 A
b se tornaria:
<U0062> <a>;<BAS>;<MIN>;<b> # 233 b
B se tornaria:
<U0042> <a>;<BAS>;<CAP>;<b> # 550 B
e assim por diante pelo resto das cartas.
Depois de criar uma versão personalizada iso14651_t1_common, siga as instruções na resposta vinculada acima para compilar seu código de idioma personalizado.