正規表現にUTF-8を使うには/uオプションをつける。

正規表現を組んでいて、なんだか思い通りの挙動をしないなーと思った時、思い出してください。

マニュアル:パターン修飾子

u (PCRE_UTF8)
この修正子は、Perl 非互換な PCRE の機能を有効にします。パターン 文字列は、UTF-8 エンコードされた文字列として処理されます。 この修正子は、UNIX では PHP 4.1.0 以降、Win32 では PHP 4.2.3 以降で 使用可能です。 また、PHP 4.3.5 以降では、パターンの UTF-8 としての妥当性も確認されます。

UTF-8な文字列をpreg系で使っている時は、uオプションを有効にしましょう!