Прежде всего, вы пропустили начало привязки строки ^
.
Во-вторых, обратный класс символов [^-\s]
является хорошей попыткой не допустить пробелов, но в то же время он позволяет другим специальным символам находиться в начале строки, чего мы не хотим. Вместо этого мы могли бы просто что-то очень похожее на второй класс символов, просто без \s
: [a-zA-Z]
.
Полное регулярное выражение:
^[a-zA-Z][a-zA-Z\s]*$