I\'ve noticed for a while now that, on some of the Unix-based systems I use at least, ls [A-Z]* has been giving me the results I would anticipate from ls [A-Z
ls [A-Z]*
ls [A-Z
It depends on your locale. If you want that [A..Z] only matches capital letters, you could use C locale: set LC_COLLATE or LC_ALL to C.
[A..Z]
LC_COLLATE
LC_ALL
C
LC_ALL=C ls [A..Z]*
bash manual, pattern matching