В matches у вас массив с содержимым всех pre найденных на странице, а вы используете только первый.
Но даже если вы обработаете весь список - это проблему не решит, т.к. потерятется тот код, который не попал в pre, например.
И вообще, парсить большие куски HTML регулярками -
Лучше взять какой-нибудь html sanitizer, или Zend_DOM_Query, или
DOMDocument, или другой инструмент, который предназначен для обработки HTML.