Simply mapping [a-z] to [A-Z] works for most simple ASCII-only text documents. However, it begins to break down as we explore other languages that use additional characters. It also doesn't take into account the fact that case mappings in some languages are not always algorithmic or static.
For example, if you case folded [a-z] -> [A-Z], a string like "Dürst" or "résumé" might end up looking a bit odd: "DüRST" or "RéSUMé".
Você pode aumentar a velocidade persuadindo o grep de que o mundo é ASCII mais uma vez, usando um grep antigo ou tocando com locales (LC_ALL = C?).
Esta conversa menciona "grandes lentidões em locais UTF8", mas não ajuda.