preg_replaceでマルチバイトを扱う場合は、パターン修飾子uを常に使用した方が良い?
前提
・preg_replaceでマルチバイトを扱っているのですが、「文字化けする場合」と「文字化けしない場合」があります
・何れもutf-8ですが、違いが生じる理由が不明
試したこと
・パターン修飾子uを付与したら文字化け解消されました
質問
・preg_replaceでマルチバイトを扱う際は、常にパターン修飾子uを付与した方が良いですか?
・「文字化けしない」のに、パターン修飾子uを付与して不具合が発生することはない??
A.(修飾子uを付与しないと)文字化けする例
echo preg_replace("/[a-z0-9]*/", "○","あ");
B.文字化けしない例
echo preg_replace("/^(aa)$/i", "○","あ");