Я уже знаю, что \w
в PCRE (в частности, реализация PHP) иногда может сопоставляться с некоторыми символами, отличными от ASCII, в зависимости от языка системы, но как насчет [a-z]
?
Я бы так не думал, но я заметил эти строки в одном из файлов ядра Drupal (включая/theme.inc, упрощенное):
// To avoid illegal characters in the class,
// we're removing everything disallowed. We are not using 'a-z' as that might leave
// in certain international characters (e.g. German umlauts).
$body_classes[] = preg_replace('![^abcdefghijklmnopqrstuvwxyz0-9-_]+!s', '', $class);
Это правда, или кто-то просто путал [a-z]
с \w
?