Esatto, con la preg_match() riesci a fare lavori migliori, solo che la sintassi è un pò difficle agli inizi
ecco un piccolo esempioCodice PHP:
$pattern = "/[0-9]*/"; //Cosa deve prendere e salvare in $array_di_ritorno la funzione ha una sintassi POSIX
$variabile_da_valutare = "0939as9d94";
preg_match($pattern,$variabile_da_valutare,$array_di_ritorno);
echo "<pre>";
print_r($array_di_ritorno);