Добрый день.
Имеется код, который удаляет в строке все что расположено между ретроспективной и опережающей проверках.
$str = "Lorem Ipsum - это текст-рыба, часто используемый в печати и вэб-дизайне.
Lorem Ipsum является стандартной рыбой для текстов на латинице с начала XVI века.
В то время некий безымянный печатник создал большую коллекцию размеров
и форм шрифтов, используя Lorem Ipsum для распечатки образцов.
<!--Tbegin-->something.jpg</!--Tbegin-->
Lorem Ipsum не только успешно пережил без заметных изменений пять веков,
но и перешагнул в электронный дизайн. Его популяризации в новое время послужили
публикация листов Letraset с образцами Lorem Ipsum в 60-х годах и, в более
недавнее время, программы электронной вёрстки типа Aldus PageMaker, в
шаблонах которых используется Lorem Ipsum.";
preg_filter('/(?<=<!--Tbegin-->).*(?=<\/!--Tbegin-->)/', '', $str);
Но, как удалить полностью строку:
something.jpg!--Tbegin-->
Учитывая то что вместо лорема может быть любой текст.
upd: заменил \S на .* по совету
Александр Павлюк