<start> -> <regularSystem> eof
<regularSystem> -> <auxStmt> <auxTail>
<regularSystem> -> <regExp> eol
<auxStmt> -> auxiliary = <regExp> eol
<auxTail> -> <auxStmt> <auxTail>
<auxTail> -> <regExp> eol
<auxTail> -> lambda
<regExp> -> <orOperand> <orTail>
<orOperand> -> <catOperand> <catTail>
<orTail> -> | <orOperand> <orTail>
<orTail> -> lambda
<catOperand> -> <starOperand> <starTail>
<catTail> -> . <catOperand> <catTail>
<catTail> -> lambda
<starOperand> -> <regUnit>
<starTail> -> * <starTail>
<starTail> -> lambda
<regUnit> -> alph
<regUnit> -> e             // empty string
<regUnit> -> ~             // empt set
<regUnit> -> auxiliary     // auxiliary expression 
<regUnit> -> ( <regExp> )