Como tornar o grep [A-Z] independente da localidade?

Eu estava fazendo alguns grepping todos os dias e de repente descobri que algo aparentemente trivial não funciona:

$ echo T | grep [A-Z]

Nenhuma correspondência.

Por que T não está dentro da faixa A-Z?

Alterei um pouco a regex:

$ echo T | grep [A-Y]

Uma partida

Uau! Como está T dentro de A-Y, mas não dentro de A-Z?

Aparentemente, isso ocorre porque meu ambiente está definido como localidade estoniana, onde Y está no final do alfabeto, mas Z está em algum lugar no meio: ABCDEFGHIJKLMNOPQRSŠZŽTUVWÕÄÖÜXY

$ echo $LANG
et_EE.UTF-8

Isso tudo foi um choque para mim. 99% das vezes eu escrevo código de computador, não literatura da Estônia. Eu tenho usado grep da maneira errada o tempo todo? Que tipo de erros eu cometi por causa disso no passado?

Depois de tentar várias coisas, cheguei à seguinte solução:

$ echo T | LANG=C grep [A-Z]

Essa é a maneira recomendada de tornar o grep independente do loca

Mais ainda ... seria seguro definir um apelido como esse:

$ alias grep="LANG=C grep"

PS. Também estou me perguntando por que os intervalos de caracteres são como[A-Z] locale dependente em primeiro lugar enquanto\w parece não ser afetado pela localidade (embora o manual diga\w é equivalente a[[:alnum:]] - mas descobri que o último depende da localidade enquanto\w não)

questionAnswers(1)

yourAnswerToTheQuestion