On this page:
<MetaCharacters>
<Perl-MetaCharacters_requires>
<Perl-MetaCharacters_provide>
7.1 "Grepish" Meta  Characters
<quoteNextMetaCharacter>
<matchBeginningOfLine>
<matchAnyCharacter>
<matchEndOfLine>
<alternation>
<startGrouping>
<endGrouping>
<StartBracketedCharacterClass>
<endBracketedCharacterClass>
<startArgument>
<endArgument>
7.2 Greedy Quantifiers
<matchZeroOrMoreTimes>
<matchOneOrMoreTimes>
<matchOneOrZeroTimes>
7.2.1 Greedy Quantifiers Requiring Over Ride
<matchExactlyNTimes>
<matchAtLeastNTimes>
<matchAtLeastNTimesNotMoreThanMTimes>
7.3 Non-Greedy Quantifiers
<nonGreedyMatchZeroOrMoreTimes>
<nonGreedyMatchOneOrMOreTimes>
<nonGreedyMatchOneOrZeroTimes>
7.3.1 Non-Greedy Quantifiers Requiring Over Ride
<nonGreedyMatchExactlyNTimes>
<nonGreedyMatchAtLeastNTimes>
<nonGreedyMatchAtLeastNTimesNotMoreThanMTimes>

7 Metacharacter Definitions

From the Racket Documentaiton:

When we want a literal \ inside a Racket string or regexp literal, we must escape it so that it shows up in the string at all. Racket strings use \ as the escape character, so we end up with two \s: one Racket-string \ to escape the regexp \, which then escapes the .. Another character that would need escaping inside a Racket string is ".

(require "Lexp-structures.rkt")

(provide (all-defined-out))
(provide
 (all-from-out  "Lexp-structures.rkt"))

7.1 "Grepish" MetaCharacters

(perl
"quoteNextMetaCharacter"
"\\"
"Quote the next metaCharacter. May require over riding to escape the slash character in a higher level use. Rendered as a double in base racket source code.")

(perl
"matchBeginningOfLine"
"^"
"Match the beginning of the line.")

(perl
"matchAnyCharacter"
"."
"Match any charcter (except NewLine)")

(perl
"matchEndOfLine"
"$"
"Match the end of the line (or before Newline at the end)")

(perl
"alternation"
"|"
"Alternation - may require over riding for higher level constructs")

(perl
"startGrouping"
"("
"Starts Grouping - may require over riding for higher level constructs")

(perl
"endGrouping"
")"
"Ends Grouping - may require over riding for higher level constructs")

(perl
"StartBracketedCharacterClass"
"["
"Starts Bracketed Charcter Class - may require over riding for higher level constructs")

(perl
"endBracketedCharacterClass"
"]"
"Ends Bracketed Charcter Class - may require over riding for higher level constructs")

(perl
"startArgument"
"{"
"Starts Argument - may require over riding for higher level constructs")

(perl
"endArgument"
"}"
"Ends Argument - may require over riding for higher level constructs")

7.2 Greedy Quantifiers

(perl
"matchZeroOrMoreTimes"
"*"
"Match Zero (0) or more times - the Kleene star.")

(perl
"matchOneOrMOreTimes"
"+"
"Match one (1) or more times.")

(perl
"matchOneOrZeroTimes"
"?"
"Match One (1) or Zero (0) times.")

7.2.1 Greedy Quantifiers Requiring Over Ride

(perl
"matchExactlyNTimes"
"{n}"
"Match exactly n times. Implementation must over-ride")

(perl
"matchAtLeastNTimes"
"{n,}"
"Match at least n times. Implementation must over-ride")

(perl
"matchAtLeastNTimesNotMorThanMTimes"
"{n,m}"
"Match at least n times, but not more than m times. Implementation must over-ride")

7.3 Non-Greedy Quantifiers

(perl
"nonGreedyMatchZeroOrMoreTimes"
"*?"
"Non Greedy Match Zero (0) or more times - the Kleene star.")

(perl
"nonGreedyMatchOneOrMOreTimes"
"+?"
"Non Greedy Match one (1) or more times.")

(perl
"nonGreedyMatchOneOrZeroTimes"
"??"
"Non Greedy Match One (1) or Zero (0) times.")

7.3.1 Non-Greedy Quantifiers Requiring Over Ride

(perl
"nonGreedyMatchExactlyNTimes"
"{n}"
"Non Greedy Match exactly n times. Implementation must over-ride")

(perl
"nonGreedyMatchAtLeastNTimes"
"{n,}"
"Non Greedy Match at least n times. Implementation must over-ride")

(perl
"nonGreedyMatchAtLeastNTimesNotMorThanMTimes"
"{n,m}"
"Non Greedy Match at least n times, but not more than m times. Implementation must over-ride")