dan,
even though html is not consistently well-formed, every tag itself still has a consistent form: it starts with "<" and ends with ">". so why not just look for an image tag, regardless of its content?
$string = preg_replace("/<img [>]*>/i", "", $string);
Merrick