Обработка текста в PHP регулярным выражением
Попробуйте модификатор u:
$text = preg_replace('#\s#u', ' +$1', $text);
www.php.net/manual/ru/reference.pcre.pattern.modifiers.php
1. Для использования юникода нужен соответствующий модификатор.
2. Символы, попадающие под действие \w зависят от локали. Проверьте локаль, а лучше — замените \w на [a-zа-яё].