lo que sucede, es que no estás leyendo el manual otra ves...
http://php.net/preg_match $matches es un array, entonces no puedes imprimirlo así... es normal que salga textualmente
Array Código PHP:
echo $matches; // Array - MAL
var_dump($matches); // OK!!!