Allora non devi usare preg_replace, ma preg_match.
Inoltre non devi usare i delimitatori ^ e $
Comunque secondo me fai molto prima a usare un array e un semplice controllo con strpos, come questo:

Codice PHP:
function strpos_arr($haystack$needle) {
    if(!
is_array($needle)) $needle = array($needle);
    foreach(
$needle as $what) {
        if((
$pos strpos($haystack$what))!==false) return $pos;
    }
    return 
false;