1) Первый и последный символ должны быть БУКВЫ
2) В названиях могут присутствовать символы: - и пробел
^[a-zA-Z]+([ -]*)+[ a-zA-Z]+$
Не проходит проверку для Ростов-на-Дону :(
И еще регулярка для имен людей:
1) Может состоять из одной буквы
2) В именах могут присутствовать символы: ` - и пробел
^[a-zA-Z]+([ `-]+[ a-zA-Z]*)+$