Y prueba si a ver:
Código PHP:
//modo 1
// $patron = '/<td>(.*?)<\/td>/is';
//modo 2
$patron = '/<td>((?:(?!td>).)*)<\/td>/isU';
preg_match_all($patron, $texto, $matches, PREG_SET_ORDER);
//preg_match_all($patron, $texto, $matches);
echo count($matches);