PHP正则表达式使用组来匹配单词(preg_match)

I'm trying to match 2 words in a regular expression using preg_match. This is a simplified version of my statement with the actual code below. The expression doesn't work when I use 2 groups in the expression. Please help.

If preg_match(string or string) and (string or string) { do this }

$subject = 'over £200 and under £300';

$minPrice = 0;
$maxPrice = 10000;

if (preg_match_all( '#£.*?([0-9]+)#i', $subject, $priceMatches)) {
    foreach ($priceMatches as $price) {}
     if (preg_match('/(over|above)(under|below|beneath)/i',$subject)) {
        $minPrice = $price[0];
        $maxPrice = $price[1];
        $priceOrder = "#!No=0&Nf=P_Price|BTWN+".$minPrice."+".$maxPrice."&N=&side=&Ns=P-SYSTEM_Price_Revenue|1&perPage=12";
        echo 'MIN PRICE ' . $minPrice . "
";
        echo 'MAX PRICE ' . $maxPrice . "
";

    } else {
   echo "no e found";
    }
} else {
   echo "no e found";
}

?>

If the order of what you are always matching will always be the same, you simply need to change your regular expression to:

/(over|above).*(under|below|beneath)/i

This will allow for anything between the two words. Previously, your regular expression was expecting the words to be back-to-back (which wasn't the case).