Почему следующий код:
<?php echo preg_replace("/(.*)/", "$1.def", "abc");
Вывод abc.def.def вместо abc.def?
Мне интересно понять, почему происходит повторение.
Использование /(.+)/ или /^(.*)$/ работает так, как ожидалось, но я не ищу решение, просто задавая вопрос (хотя эти шаблоны могут быть связаны с ответом).
Tinker с живой версией здесь.