Cuando armes una expresión regular debes pensar en lo siguiente:
Que la especificidad sea mínima, mientras menos indicaciones debas dar es mejor, de otra forma terminarás con una expresión tan inerte que no funcionará con otros casos.
Por eso se llaman
expresiones regulares, debes observar la regularidad, pero sin ser religioso con los detalles.
¿A qué me refiero?
Básicamente a que "crees" que buscar por la clase "imageprod" es parte de la solución, y por eso te pregunto, ¿de verdad es el único patrón convincente para analizar?
Yo confiaría más en la ruta de la imagen, si es regular entonces no hace falta más:
Código PHP:
Ver original$resultado = <<<HTML
<!DOCTYPE ...
<html>
...
<img class="imageprod" src="http://www.pagina.com/recursos/imagenes/XXXXXXXXXX.jpg" alt="descripcion" border="0">
...
</html>
HTML;
preg_match('#http://www.pagina.com/recursos/imagenes/(.+?).jpg#', $resultado, $matches);
¿Se entiende lo que te trato de explicar?