Widziałem wiele przykładów rozróżniania wielkości liter w całym wyrażeniu regularnym. Zastanawiam się, czy tylko część wyrażenia nie rozróżnia wielkości liter.
Na przykład, powiedzmy, że mam taki ciąg:
fooFOOfOoFoOBARBARbarbarbAr
A jeśli chcę dopasować wszystkie wystąpienia „foo” niezależnie od wielkości liter, ale chcę dopasować tylko wielkie litery „BAR”?
Idealnym rozwiązaniem byłoby coś, co działa w różnych odmianach wyrażeń regularnych, ale interesuje mnie również słyszenie specyficznych dla języka (dzięki, Espo )
Edytować
Link podany przez Espo był bardzo pomocny. Jest tam dobry przykład włączania i wyłączania modyfikatorów w wyrażeniu.
W moim wymyślonym przykładzie mogę zrobić coś takiego:
(?i)foo*(?-i)|BAR
co sprawia, że dopasowywanie nie rozróżnia wielkości liter tylko dla części foo dopasowania.
Wydawało się, że działa to w większości implementacji regexów z wyjątkiem Javascript, Python i kilku innych (jak wspomniano w Espo).
Te duże, nad którymi się zastanawiałem (Perl, PHP, .NET) obsługują zmiany w trybie inline.