move Pattern to regex
move Empty into regex
move Literal regex
move Concatenate to regex
move choose to regex
move repeat to regex