Это как бы показывает подсветку синтаксиса. Апостроф в регулярном выражении не избежал, это должно быть так:
forms.RegexField('^[a-zA-Z0-9\\-\' ]$',max_length=30, min_length=3)
Редактировать: При экранировании вещей в регулярном выражении вам нужны двойные обратные слеши. Я удвоил обратную косую черту перед дефисом (в этом конкретном случае его нельзя экранировать).
Во-вторых, ваше регулярное выражение допускает только один символ. Вам нужно использовать квантификатор. + означает один или более, * означает 0 или более, {2,} означает два или более, {3,6} означает три-шесть. Вы, вероятно, хотите это:
forms.RegexField('^[a-zA-Z0-9\\-\' ]+$',max_length=30, min_length=3)
Позаботьтесь о том, чтобы указанное выше регулярное выражение также оставляло пробелы в начале и конце поля. Чтобы избежать этого, вам нужно более сложное регулярное выражение.