J'ai vu de nombreux exemples permettant de rendre toute une expression régulière insensible à la casse. Ce que je me demande, c'est qu'une partie de l'expression ne soit pas sensible à la casse.
Par exemple, disons que j'ai une chaîne comme celle-ci:
fooFOOfOoFoOBARBARbarbarbAr
Que faire si je veux faire correspondre toutes les occurrences de "foo" quelle que soit la casse mais que je veux seulement faire correspondre les "BAR" majuscules?
La solution idéale serait quelque chose qui fonctionne avec les saveurs de regex, mais je suis également intéressé à entendre celles spécifiques à une langue (merci Espo )
Éditer
Le lien fourni par Espo a été très utile. Il y a un bon exemple d'activation et de désactivation des modificateurs dans l'expression.
Pour mon exemple artificiel, je peux faire quelque chose comme ceci:
(?i)foo*(?-i)|BAR
ce qui rend la correspondance insensible à la casse uniquement pour la partie toto de la correspondance.
Cela semblait fonctionner dans la plupart des implémentations de regex, sauf Javascript, Python et quelques autres (comme Espo l'a mentionné).
Les grands sur lesquels je m'interrogeais (Perl, PHP, .NET) supportent tous les changements de mode en ligne.