Дополнительное примечание: ваше регулярное выражение не выполняет то, что вы описываете. Вы говорите максимум 1 пробел между словами. Для этого вам нужно убрать «\ s» из списка символов. Шаблон, который вы используете в настоящее время, допускает «любой алфавитно-цифровой или пробел от 1 до 40 раз», что позволяет использовать несколько последовательных пробелов. Вам понадобится что-то похожее на следующее:
string regex = @"^(?:[A-Za-z]+\s?)+$";
Это означает «любой буквенно-цифровой 1 или более раз, за которым следует дополнительный пробел, все это один или более раз». Я не знаю, как ограничить всю строку до 40 символов, если вы не знаете заранее размер первого выражения. Может быть, этого можно добиться с помощью выражения «оглянуться назад», но я не уверен. Возможно, вам придется сделать это в два этапа.