en el ejemplo usas id
Cita: <div id="nombre">Paco</div>
<div id="apellido">Martínez</div>
mientras que en la expresión regular utilizas class
Cita: preg_match_all ("'<div class=\"nombre\">(.*?)</div>'si", $buffer, $nombre);
revisa si era eso... yo probé con
Código PHP:
<?php
$texto = "<div id=\"nombre\">Paco</div><div id=\"apellido\">Martínez</div>";
preg_match_all ("/<div id=\"nombre\">(.*?)<\/div>/i", $texto, $coincidencias);
print $coincidencias[1][0];
?>
y $coincidencias[1][0] contenía "Paco" efectivamente
Saludos.