$re = '~(?<![a-zA-Z0-9])mini(?![a-zA-Z0-9])~';
$str = 'mini
mini abc
mini-abc (- could be anything else but not [a-zA-Z0-9])
abc mini
abc-mini (- could be anything else but [a-zA-Z0-9])
abc mini abc
abcminiabc-mini (- could be anything else but not [a-zA-Z0-9])
mini-abcminiabc (- could be anything else but not [a-zA-Z0-9])
miniabc-mini (- could be anything else but not [a-zA-Z0-9])
mini-miniabc (- could be anything else but not [a-zA-Z0-9])
abcmin-mini (- could be anything else but not [a-zA-Z0-9])
mini-abcmini (- could be anything else but not [a-zA-Z0-9])
miniabc
abcmini
abcminiabc';
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