[Редактировать: как уже упоминалось в комментариях, это регулярное выражение имеет ограничения. Пожалуйста, используйте решение, предлагаемое в принятом ответе.]
Попробуйте это: ^(?:[\b\w\b;:,\.]+[\s\r\n]*){0,100}$
При необходимости добавьте другие возможные знаки препинания и не алфавитно-цифровые символы, где вы видите ;:,\.
.
Редактировать: осталось 4 в регулярном выражении, когда я тестировал с меньшим количеством слов. Заменено на 100, как указано в вопросе.