grammar Regexp::Common::ws { regex crop { [ ^ \s+ ] | [ \s+ $ ] } } grammar Regexp::Common::lingua { regex palindrome (Regex :$chars = //) { <$chars> | [ <$chars> <~~>? $0 ] # XXX not quite certain this is right :-) } } grammar Regexp::Common::list { regex list (Regex :$pat = /.*? \S/, Str|Regex :$sep = /\s* ',' \s*/, Str|Regex :$lsep = $sep) { [ [ <$pet> <$sep> ]* <$pat> <$lsep> <$pat> ] } regex conj (Regex :$pat, Str|Regex :$sep, Regex :$word = /and | or/) { \s*/))> } regex and (Regex :$pat, Str|Regex :$sep) { } regex or (Regex :$pat, Str|Regex :$sep) { } }