Для этого конкретного соответствия вам не нужна поддержка Unicode. Любое простое прямое сопоставление строк будет работать для двух строк UTF-8 - это была преднамеренная особенность проектирования UTF-8 - но тогда вы не будете использовать регулярное выражение, если все, что вам нужно, - это прямое сопоставление строк: для вашего примера вы ' лучше бы с strpos
.
Многие другие функции регулярного выражения будут работать неожиданно без поддержки Unicode. Например:
/€*/
с поддержкой Unicode, это несколько знаков € (\xE2\x82\xAC\xE2\x82\xAC\xE2\x82\xAC...
). Без него это первые два байта символа €, а затем любое число байтов 0xAC (\xE2\x82\xAC\xAC\xAC\xAC...
), поэтому единственной допустимой последовательностью UTF-8, которой она будет соответствовать, будет один €.
/[x€]/
с поддержкой Unicode, соответствует x
или евро. Без поддержки Unicode, сопоставление x
или байта 0xE2 или байта 0x82 или байта 0xAC.
и т. Д.