Я видел много примеров создания целого регулярного выражения без учета регистра. Что меня интересует, так это то, что только часть выражения нечувствительна к регистру.
Например, допустим, у меня есть такая строка:
fooFOOfOoFoOBARBARbarbarbAr
Что если я хочу сопоставить все вхождения "foo" независимо от регистра, но я хочу сопоставить только прописные буквы "BAR"?
Идеальным решением было бы то, что работает с различными типами регулярных выражений, но я также заинтересован в том, чтобы услышать и языковые (спасибо Espo )
Редактировать
Ссылка, предоставленная Espo, была очень полезной. Там есть хороший пример включения и выключения модификаторов в выражении.
Для моего надуманного примера я могу сделать что-то вроде этого:
(?i)foo*(?-i)|BAR
, что делает регистр нечувствительным к регистру только для части foo матча.
Это, похоже, работало в большинстве реализаций регулярных выражений, кроме Javascript, Python и некоторых других (как упоминал Эспо).
Большие из них, о которых мне было интересно (Perl, PHP, .NET), все поддерживают изменения в встроенном режиме.