Não sei de nenhuma localidade que, por padrão, classifique nessa ordem. A solução é criar uma localidade personalizada com uma ordem de classificação personalizada. Se alguém, quatro anos depois, quiser classificar de forma personalizada, aqui está o truque.
A grande maioria das localidades 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_common , então é isso que você deseja editar. Em vez de alterar a ordem de classificação para quase todas as localidades, 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 uma localidade personalizada no diretório $HOME sem acesso à raiz são encontrados nesta resposta a uma pergunta semelhante .
Veja como a e A sã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
b e B são semelhantes:
<U0062> <b>;<BAS>;<MIN>;IGNORE # 233 b
<U0042> <b>;<BAS>;<CAP>;IGNORE # 550 B
Vemos que na primeira passagem, tanto a como A têm o símbolo de intercalação <a> , enquanto que b e B têm o símbolo de intercalação <b> . Como <a> aparece antes de <b> em iso14651_t1_common , a e A são vinculados antes de b e B . A segunda passagem não quebra os empates porque todos os quatro caracteres têm o símbolo de agrupamento <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 letras maiúsculas <CAP> (linha 3488). Assim, a ordem de classificação acaba em a , A , b , B .
Trocar o primeiro e terceiro símbolos de ordenação ordenaria letras primeiro a maiúsculas (maiúsculas e minúsculas), depois por acentuação ( <BAS> significa sem acentuação) e depois por ordem alfabética. No entanto, , tanto <MIN> quanto <CAP> vêm antes dos dígitos numéricos, então isso teria o efeito indesejado de colocar dígitos após as letras.
A maneira mais fácil de manter os dígitos antes de fazer todas letras minúsculas virem antes todas letras maiúsculas é forçar todas as letras a se ligarem durante a primeira comparação, definindo-as todas iguais codificar%. Para certificar-se de que eles estejam ordenados alfabeticamente no caso, altere o último símbolo de intercalação de <a> para o primeiro símbolo de intercalação atual. Seguindo esse padrão, IGNORE se tornaria:
<U0061> <a>;<BAS>;<MIN>;<a> # 198 a
a se tornaria:
<U0041> <a>;<BAS>;<CAP>;<a> # 517 A
A se tornaria:
<U0062> <a>;<BAS>;<MIN>;<b> # 233 b
b se tornaria:
<U0042> <a>;<BAS>;<CAP>;<b> # 550 B
e assim por diante para o resto das letras.
Depois de criar uma versão personalizada de B , siga as instruções em a resposta acima para compilar sua localidade personalizada.