Veja http://vim.wikia.com/wiki/Changing_case_with_regular_expressions
Explica os modificadores \ U, \ L, \ u, \ l de maneira bastante clara e sucinta!
Sua essência é a seguinte:
Há momentos em que você pode consultar um arquivo e alterar as letras maiúsculas e minúsculas de caracteres que correspondem a alguns critérios arbitrários. Se você entende bem expressões regulares, pode fazer isso com bastante facilidade.
É tão simples quanto colocar \ U ou \ L na frente das referências anteriores das quais você deseja alterar o caso e \ E no final. O Vim fará o texto na referência posterior em maiúsculas ou minúsculas (respectivamente). Use \ u e \ l (sem o \ E no final) para alterar apenas o caso do primeiro caractere na referência anterior.
(Uma "referência anterior" é parte de uma expressão regular que se refere a uma parte anterior de uma expressão regular. As referências anteriores mais comuns são &, \ 1, \ 2, \ 3, ..., \ 9).
Alguns exemplos que demonstram o poder dessa técnica:
Minúscula o arquivo inteiro
:% s /.*/ \ L & / g
(& é uma referência prática útil que se refere ao texto completo da partida.)
Coloque em maiúsculas todas as palavras precedidas por um <(ou seja, abrir nomes de tags HTML):
:%s/<\(\w*\)/<\U\1/g
Observe também os comandos gu e gU.
Por exemplo, o ggguG irá minúscula o arquivo inteiro. (gg = vá para o topo, gu = minúscula, G = vá para EOF).
Usando o \ 0 backref geral em vez do nome ones (\ 1, \ 2 etc), você pode salvar algumas digitações na sub-rotina substituir do regex.
Essa regex maiúscula um conjunto explícito de palavras para maiúsculas em um arquivo:
:%s/\(select\)\|\(order)\|\(by\)\|\(from\)\|\(where\)/\U\0/g
Não é ciência de foguetes, mas, caso contrário, você teria que fazer isso:
:%s/\(select\)\|\(order)\|\(by\)\|\(from\)\|\(where\)/\U\1\U\2\U\3\U\4\U\5/g