$re = '/^\p{L}[\p{L}\p{M}\h().\'&-]*$/mu';
$str = 'first-second
first second
first\'second
first & second
first&second
first(second)
first (second)
first-second-third
first second third
first second third(fourth)
first-second-third(fourth)
word Castaٌeda
Word Word (Word)
Alfonso Lista (Potia)
Bacolod-Kalawi (Bacolod-Grande)
Balindong (Watu)
President Manuel A. Roxas
Enrique B. Magalona (Saravia)
Bacolod-Kalawi (Bacolod-Grande)
Datu Blah T. Sinsuat
Don Victoriano Chiongbian (Don Mariano Marcos)
Bulalacao (San Pedro)
Hinoba-an (Asia)';
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