Как говорили многие люди, вы не должны делать это с регулярным выражением. Большинство примеров, которые вы видели для замены тегов изображений, наивны и не будут работать в любой ситуации. Регулярное выражение, учитывающее все (при условии, что у вас в первую очередь правильно сформированный XHTML), будет очень длинным, очень сложным и очень трудным для понимания или редактирования позже. И даже если вы думаете, что это работает правильно, скорее всего, это не так. Вы действительно должны использовать парсер, созданный специально для парсинга (X) HTML.
Вот как это сделать правильно без регулярного выражения с использованием расширения DOM PHP:
// add a root node to the XHTML and load it
$doc = new DOMDocument;
$doc->loadXML('<root>'.$str.'</root>');
// create a xpath query to find and delete all img elements
$xpath = new DOMXPath($doc);
foreach ($xpath->query('//img') as $node) {
$node->parentNode->removeChild($node);
}
// save the result
$str = $doc->saveXML($doc->documentElement);
// remove the root node
$str = substr($str, strlen('<root>'), -strlen('</root>'));