preg_match_all - запишет в $result (в случаии нахождения соответствия регулярному выражению) двухмерный(е) массив(ы), ты же прошодишься по нему как по одномерному :
foreach ($result as $value)
тогда уже например так
if(is_array($result[0]) ){
foreach ($result[0] as $value) {
echo "Value: $value<br>\n";
$r=$r."\r\n".$value;
}
}