$re = '/(?:soy|almond)\s?[\w\(\)]+\s?(milk)/m';
$str = '...almondmilk n
...almond milk n
...almond word(s) milk... y
...almondword(s)milk... y
...soymilk... n
...soy milk... n
...soy word(s) milk... y
...soyword(s)milk... y
(The Ys and Ns at the end are just a reminder of which ones should match)';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php