Сравните ваш код с:
if (preg_match('/^\w$/', "啊"))
echo "Match";
regex /\w/
работает, потому что ваш многобайтовый символ содержит 2 байта: 0x53 и 0x1D. И первый, 0x53 выглядит как действительный однобайтовый символ S
PS: это правильный способ сопоставления одной многобайтовой буквы:
var_dump(preg_match('/^\p{L}$/u', "匝", $matches));