Já vi muitos exemplos de como tornar uma expressão regular inteira sem distinção entre maiúsculas e minúsculas. O que estou pensando é que apenas parte da expressão não faz distinção entre maiúsculas e minúsculas.
Por exemplo, digamos que eu tenha uma string como esta:
fooFOOfOoFoOBARBARbarbarbAr
E se eu quiser fazer a correspondência de todas as ocorrências de "foo", independentemente da caixa, mas só quiser corresponder as "BAR" maiúsculas?
A solução ideal seria algo que funcionasse em todos os tipos de regex, mas também estou interessado em ouvir aqueles específicos de linguagem (Obrigado, Espo )
Editar
O link fornecido pelo Espo foi muito útil. Há um bom exemplo sobre como ativar e desativar modificadores na expressão.
Para meu exemplo inventado, posso fazer algo assim:
(?i)foo*(?-i)|BAR
o que torna a correspondência insensível a maiúsculas e minúsculas apenas para a parte foo da correspondência.
Isso pareceu funcionar na maioria das implementações de regex, exceto Javascript, Python e alguns outros (como o Espo mencionou).
Todos os grandes sobre os quais eu estava pensando (Perl, PHP, .NET) oferecem suporte a alterações de modo embutido.