¿Cómo hacer que grep [A-Z] sea independiente de la configuración regional?

Estaba haciendo algunas tareas diarias y de repente descubrí que algo aparentemente trivial no funciona:

$ echo T | grep [A-Z]

Sin coincidencia

¿Cómo es que T no está dentro del rango A-Z?

Cambié un poco la expresión regular:

$ echo T | grep [A-Y]

¡Un partido

Whoa! ¿Cómo es T dentro de A-Y pero no dentro de A-Z?

Aparentemente esto se debe a que mi entorno está configurado en la configuración regional de Estonia, donde Y está al final del alfabeto pero Z está en algún lugar en el medio: ABCDEFGHIJKLMNOPQRSŠZŽTUVWÕÄÖÜXY

$ echo $LANG
et_EE.UTF-8

Todo esto me sorprendió un poco. El 99% de las veces utilizo código de computadora, no literatura estonia. ¿He estado usando grep de forma incorrecta todo el tiempo? ¿Qué tipo de errores he cometido debido a esto en el pasado?

Después de probar varias cosas, llegué a la siguiente solución:

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

Es esta la forma recomendada de hacer grep independiente de la configuración regional?

Más adelante ... ¿sería seguro definir un alias como ese:

$ alias grep="LANG=C grep"

PD También me pregunto por qué los rangos de caracteres son como[A-Z] locale dependiente en primer lugar mientras que\warece que @ no se ve afectado por la configuración regional (aunque el manual dice\w es equivalente a[[:alnum:]] - pero descubrí que esto último depende de la configuración regional mientras que\w no)

Respuestas a la pregunta(1)

Su respuesta a la pregunta