前提
・preg_replaceでマルチバイトを扱っているのですが、「文字化けする場合」と「文字化けしない場合」があります
・何れもutf-8ですが、違いが生じる理由が不明


試したこと
・パターン修飾子uを付与したら文字化け解消されました


質問
・preg_replaceでマルチバイトを扱う際は、常にパターン修飾子uを付与した方が良いですか?
・「文字化けしない」のに、パターン修飾子uを付与して不具合が発生することはない??


A.(修飾子uを付与しないと)文字化けする例

echo  preg_replace("/[a-z0-9]*/", "○","あ");

B.文字化けしない例

echo  preg_replace("/^(aa)$/i", "○","あ");