O Bash está sendo sensível a maiúsculas e minúsculas aqui. O problema está na ordem de classificação dos caracteres no intervalo. Do manual do Bash ( info bash
):
The sorting order of characters in range expressions is determined by the current locale and the value of the 'LC_COLLATE' shell variable, if set.
For example, in the default C locale, '[a-dx-z]' is equivalent to '[abcdxyz]'. Many locales sort characters in dictionary order, and in these locales '[a-dx-z]' is typically not equivalent to '[abcdxyz]'; it might be equivalent to '[aBbCcDdxXyYz]', for example. To obtain the traditional interpretation of ranges in bracket expressions, you can force the use of the C locale by setting the 'LC_COLLATE' or 'LC_ALL' environment variable to the value 'C'.
Tente fazer
export LC_COLLATE=C