Подскажите, почему данное регулярное выражение \b(\w+)\b \b\1\b выделяет two two и five five, но не выделяет six, six и seven. seven. с разделителями в виде запятой и точки, несмотря на присутствие символа границы слова \b.
Ссылка на regexp: https://regex101.com/r/bGKAtL/1
Пробел не может найти запятую или точку.
Используйте
preg_match('~\b(\w+)\W+\1\b~u', $text, $matches)
См. пример работы регулярного выражения.
Главное отличие — шаблон \W+, который находит 1 и более символов, отличных от букв, цифр и некоторых других символов. Поддержка кириллицы осуществляется с помощью модификатора u.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей