Experimente este comando em vim
:
:%s/\s([^)]*)\s/\U&/g
Usar .*
é 'ganancioso': ele corresponderá a todos os caracteres, incluindo o primeiro )
na primeira linha, e continuará até o último )
, capitalizando assim tudo entre os dois.
O uso de [^)]*
diz ao mecanismo de expressão regular que procure quaisquer caracteres que não sejam não a )
em ()
e os coloque em maiúscula. Basicamente, isso força a partida a ser 'preguiçosa' ao invés de 'gananciosa'.
Veja as seções "Preguiça versus ganância" e "Uma alternativa à preguiça" no Tutorial do Regex .