$re = '/(?m)\b[A-ZÀ-Ü][A-ZÀ-Ü ’\']{2,}(?= |$)/m';
$str = 'DEL ?PRATO
DEL !PRATO
DEL PRATO!
DEL PRATO1
+DEL PRATO!
DEL? P!RATO
DEL? PRaTO
DEL aPRATO
DEL PRATOb
MARIO’APICELLA
MARIO’ APICELLA
MARIO ’ APICELLA
MARIO ’ \' APICELLA
ÒÌFÚ\'\'\' CIAOÙÜÒÌ\'",
abcÒÌFÚ\'
ÒÌFÚ\' abcCIAOÙÜÒÌ\'
abcÒÌFÚ\' CIAOÙÜÒÌ
ÒÌFÚ\'abc\' CIAOÙÜÒÌ’
ÒÌFÚ\' CIAOÙÜÒÌabc\'
ÒÌFÚ\' CIAOÙÜÒÌabc\' ÒÌFÚ\' CIAOÙÜÒÌabc\'';
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