正規表現全体で大文字と小文字を区別しないようにする例をたくさん見てきました。私が疑問に思っているのは、式の一部だけで大文字と小文字を区別しないことです。
たとえば、次のような文字列があるとします。
fooFOOfOoFoOBARBARbarbarbAr
大文字と小文字に関係なく、出現するすべての「foo」を一致させたいが、大文字の「BAR」のみを一致させたい場合はどうなりますか?
理想的な解決策は、正規表現のフレーバー全体で機能するものですが、言語固有のフレーバーも聞くことに興味があります(Thanks Espo)
編集
Espoが提供したリンクは非常に役に立ちました。式内で修飾子のオンとオフを切り替える良い例があります。
私の不自然な例では、次のようなことができます。
(?i)foo*(?-i)|BAR
これにより、一致のfoo部分についてのみ、一致で大文字と小文字が区別されなくなります。
これは、Javascript、Python、およびその他のいくつか(Espoが述べたように)を除くほとんどの正規表現実装で機能するように見えました。
私が疑問に思っていた大きなもの(Perl、PHP、.NET)はすべて、インラインモードの変更をサポートしています。