В каких случаях нужен флаг u? Он необходим, когда шаблон содержит юникод символ, когда шаблон должен захватить юникод символы, когда провряемая строка содержит юникод символы? Нужно ли ставить флаг u, если в строке с юникод символами ищется не юникод символ? Например: preg_match( '#abc\s+#u', $string );
или достаточно preg_match( '#abc\s+#', $string );
В случае с ASCII-only символами в регулярке - нет смысла, т.к. в UTF-8 все символы с кодом < 128 кодируются ровно также, как и в однобайтной кодировке, а символы с кодами >= 128 кодируются последовательностью байт с кодами >= 128. Случайно пересечься между собой и быть ложно интерпретированы эти оба диапазона в UTF-8 не могут. К другим многобайтным кодировкам это не относится.