I will answer the second part of your question:
{3,30}in regular expression means quantifierfor a minof 3and max 30 repetitions.
a* means zero or more aa+ means one or more aa? means zero or one aa{1} means exactly the same one as simple aa{1,} means one or more of the same as
a+a{1,3} means min one and max 3 a's
a. : [a-zA-Z]{3,30} 3 30 .