$res = preg_match('/[^a-zA-Z0-9]/', $what, $results);

Uso questo per vedere se mi trova caratteri non alfanumerici... Solo che quando devo sostiuire questi ultimi in rosso non accade nulla, anzi non mi mostra neanche i caratteri incriminati:

$what = preg_replace('/[^a-zA-Z0-9]/', '<font color="red">\\1</font>', $what);

Come posso fare? Mi sapete dire se la regex che uso va bene?