[^\n\r]{80,}
не обязательно соответствует строке в элементе PRE, где он начинает поиск..*
может соответствовать закрывающему тегу </PRE>
и далее, поэтому длинная строка может быть в другом элементе PRE, если он есть, или даже в тексте между элементами PRE.
Я недумаю, что в MySQL есть пуленепробиваемый способ сделать то, что вы хотите, но вы можете попробовать это:
<PRE>[^<]*[\n\r][^\n\r<]{80,}
Вы сказали, что внутри элемента PRE не будет никакой другой разметки, так что под любым угломСкобка в ее содержимом должна быть в виде escape-последовательности, такой как <
, а первая <
, с которой встречается регулярное выражение, должна быть в теге </PRE>
.
Это взлом, но без опозданий, это единственный способ ограничить совпадение одним и тем же элементом PRE.Чтобы сделать эту работу правильно , вы должны делать это вне MySQL.