В вашем регулярном выражении .
трактуется буквально, а не как метасимвол, чтобы соответствовать любому символу, кроме новой строки.
Попробуйте:
<code><pre>(.|\n)*?
Поскольку ОС не указана, символ новой строки может быть представлен либо \n
(Unixes), либо \r\n
(windows).В любом случае вы можете использовать:
<code><pre>(.|\r?\n)*?