Регулярное определение распознавания идентификаторов на языке программирования C задается
letter -> a|b|...z|A|B|...|Z|_
digit -> 0|1|...|9
identifier -> letter(letter|digit)*
Это определение будет генерировать идентификаторы формы
идентификатор: [_a-zA-Z][_a-zA-Z0-9]*
Теперь мой вопрос заключается в том, как ограничить длину идентификатора, который может быть сгенерирован не более чем до 31 символа. Какие изменения необходимо внести в регулярное определение или как написать регулярное выражение, чтобы ограничить его не более указанной длины. Может ли кто-нибудь помочь. Спасибо.