Вы проверяете, содержит ли комментарий только один символ из-за интервала между ^
и $
. Просто удалите их, и если я правильно помню, что делает Regex.IsMatch, он должен работать.
Regex.IsMatch(comments.Text,@"[^a-zA-Z''-'\s]")
Кстати, возможно, вам следует разрешить и цифры.
О, и я должен отметить, что он вернет истину, если будет найден любой другой символ, кроме указанных.