Правило первое: никогда не пытайтесь применять правила к именам людей. всегда будет кем-то, кого вы исключаете, просто потому, что его имя не соответствует вашему ожиданию.
А как насчет людей, которые не имеют (или не хотят) приветствия? Или те, у кого их больше одного? «Профессор сэр» - это вполне допустимая комбинация в Великобритании, а в Германии люди с несколькими степенями обычно называют себя «Доктор Доктор» или что-то подобное.
А потом есть настоящие имена. Ваше регулярное выражение потерпит неудачу даже для относительно распространенных имен в западном стиле, таких как «Мэри-Джейн О'Брайен» или «Андре ван ден Берг», не говоря уже о более необычных случаях.
Короче говоря, практически невозможно точно проверить поле имени.
Вот ссылка на страницу, которая описывает некоторые очевидные (и не очень очевидные) вещи, которые люди пытаются проверить по именам, что может сбить вас с толку:
http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/
(я уже публиковал подобный комментарий здесь: Как «проверить» человеческие имена в CakePHP? )