www.php.net/preg_match
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
si te fijas en el manual.. dice que el segundo argumento debe ser un STRING
por lo cual si le pasas una variable.. obviamente leera lo que hay dentro de esta !