Bash чувствителен к регистру. Проблема заключается в порядке сортировки символов в диапазоне. Из руководства Bash ( info bash
):
Порядок сортировки символов в выражениях диапазона определяется текущей локалью и значением переменной оболочки «LC_COLLATE», если она установлена.
Например, в языковом стандарте C по умолчанию «[a-dx-z]» эквивалентно «[abcdxyz]». Многие локали сортируют символы в порядке словаря, и в этих локалях «[a-dx-z]» обычно не эквивалентно «[abcdxyz]»; например, это может быть эквивалентно '[aBbCcDdxXyYz]'. Чтобы получить традиционную интерпретацию диапазонов в выражениях в скобках, вы можете принудительно использовать локаль C, установив для переменной окружения 'LC_COLLATE' или 'LC_ALL' значение 'C'.
Попробуй сделать
export LC_COLLATE=C