$re = '/(^|\s)(#\w+)/m';
$str = 'test
Take this #test
#test <- take this
take this #test another word
take this #Mest another word
Don\'t take this -> l\'#09
Don\'t take this -> » or '';
$subst = "$1<a href=\"/hash/$2\" class='hash_tag'>$2</a>";
$result = preg_replace($re, $subst, $str);
echo "The result of the substitution is ".$result;
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