6 Grouping
value
group-repeat/c : contract?
TBD
procedure
expr : string?
procedure
expr : string? repeat : group-repeat/c = 'one
TBD
Examples:
procedure
(rx/and-group expr ...+ [#:repeat repeat]) → string?
expr : string? repeat : group-repeat/c = 'one
TBD
Examples:
> (rx/and-group "cat" "dog") "(catdog)"
> (rx/and-group "cat" "dog" #:repeat 'optional) "(catdog)?"
procedure
(rx/or-group expr ...+ [#:repeat repeat]) → string?
expr : string? repeat : group-repeat/c = 'one
TBD
Examples:
> (rx/or-group "cat" "dog") "(cat|dog)"
> (rx/or-group "cat" "dog" #:repeat 'optional) "(cat|dog)?"
procedure
(rx/special-group? expr) → boolean?
expr : string?
TBD
Examples:
> (rx/special-group? (rx/group "cat")) #f
> (rx/special-group? (rx/non-capture-group "cat")) #t
procedure
(rx/non-capture-group? expr) → boolean?
expr : string?
procedure
(rx/non-capture-group expr ...+ [ #:repeat repeat]) → string? expr : string? repeat : group-repeat/c = 'one
procedure
(rx/nc-group expr ...+ [#:repeat repeat]) → string?
expr : string? repeat : group-repeat/c = 'one
TBD
Examples:
> (rx/non-capture-group "cat") "(?:cat)"
> (rx/non-capture-group "cat" #:repeat 'optional) "(?:cat)?"
> (rx/non-capture-group? (rx/non-capture-group "cat")) #t
procedure
(rx/named-group? expr) → boolean?
expr : string?
procedure
(rx/named-group expr ...+ #:name name [ #:repeat repeat]) → string? expr : string? name : string? repeat : group-repeat/c = 'one
TBD
Examples:
> (rx/named-group (rx/or "cat" "dog") #:name "animal") "(?cat|dog)"
> (rx/named-group (rx/or "cat" "dog") #:name "animal" #:repeat 'optional) "(?cat|dog)?"
> (rx/named-group? (rx/named-group (rx/or "cat" "dog") #:name "animal")) #f
> (rx/special-group? (rx/named-group (rx/or "cat" "dog") #:name "animal")) #t
6.1 Modes
value
mode/c : contract?
TBD
procedure
(rx/with-mode expr ...+ #:mode modes) → string?
expr : string? modes : (or/c mode/c (listof mode/c))
TBD
Example:
> (rx/with-mode (rx/or "cat" "dog") #:mode 'case-insensitive) "(?i:cat|dog)"