Ok, so our ls |grep ^[A-Z] example is equivalent to ls |grep ^[[:upper:]]
And: ls |grep ^[a-z] is the same as: ls |grep ^[[:lower:]]
Hmm, that goes quite well for sinister Black magic
I'll try stick to the metaclass ones since they are locale-independent. Thanks Dtsazza!
For more classes see: man grep