Regexp = RFactor / "\\|" ["$"]; RFactor = RExtAtom + ; RExtAtom = RAtom ["*" | "+" | "?"] ; RAtom = character | "\\" character | "." | "\\(" Regexp "\\)" ;