$re = '/(?<=\G|>)([^<>]*?<?)(?:(?<=[^\w&#]|^)(?=[\w#]*)micro(?=[\w#]*;)|micro(?![\w#]*;))(?(?<=<micro)(?!>))/';
$str = 'µ
&crazymicroentity;
&#micro;
µ65_4#654;
micro;
<micro µ micro;
µtest;
&testmicro;
µ_micro;
micro
micro
<micro
micro micro micro
nicemicro;
&crazymicroentity;
<micro
<micro>
<a micro>
<a href="micro">
nano micro tiny
<a micro tag> fsdgd g
fg & micro ;
fg µ
df sdf df a gdfg sdfg dg sdfg s
df sdf df a microgdfg sdfg dg sdfg s micro
<a href="micro"> ';
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