Actually the documentation about escape sequences in PHP is wrong. When you use \xc2\xa0
syntax, it searches for UTF-8 character. But with \x{c2a0}
syntax, it tries to convert the Unicode sequence to UTF-8 encoded character.
A non breaking space is U+00A0
(Unicode) but encoded as C2A0
in UTF-8. So if you try with the pattern ~\x{00a0}~siu
, it will work as expected.