File: //proc/self/root/proc/thread-self/root/usr/local/modsecurity-crs/regex-assembly/932311.ra
##! Please refer to the documentation at
##! https://coreruleset.org/docs/development/regex_assembly/.
##! All IMAP4 commands start with a "tag"
##! TDB: representing charset and language (if needed)
##!+ is
##!^ \r\n\w{1,50}\b[ ]
##! - IMAP4 Commands - PL3
##! - IMAP4Rev1 Commands - with params
CREATE [\w\"\.\-\x5c\/%\*&#]+
COPY [0-9,:\*]+ [\w\"\.\-\x5c\/%\*&#]+
DELETE [\w\"\.\-\x5c%\*&#]+
EXAMINE [\w\"\.\-\x5c%\*&#]+
FETCH [0-9,:\*]+
LIST [\w\"~\-\x5c\/\*#\.]+? [\w\"\.\-\x5c\/%\*&#]+
LOGIN [a-z0-9-_\.\@]{1,40} .*?
RENAME [\w\"\.\-\x5c\/%\*&#]+? [\w\"\.\-\x5c\/%\*&#]+
SELECT [\w\"\.\-\x5c\/%\*&#]+
STORE [0-9,:\*]+? [+-]?FLAGS(?:\.SILENT)? (?:\(\x5c[a-z]{1,20}\))?
SUBSCRIBE [\w\"\.\-\x5c\/%\*&#]+
UNSUBSCRIBE [\w\"\.\-\x5c\/%\*&#]+
##! Search has plenty of variants
SEARCH(?: CHARSET [\w\-_\.]{1,40})? (KEYWORD \x5c)?(?:ALL|ANSWERED|BCC|DELETED|DRAFT|FLAGGED|RECENT|SEEN|UNANSWERED|UNDELETED|UNDRAFT|UNFLAGGED|UNSEEN|NEW|OLD)
SEARCH(?: CHARSET [\w\-_\.]{1,40})? (?:BODY|CC|FROM) .{1,255}
SEARCH(?: CHARSET [\w\-_\.]{1,40})? HEADER .{1,100} .{1,255}
SEARCH(?: CHARSET [\w\-_\.]{1,40})? (?:LARGER \d{1,20}|NOT .{1,255}|[0-9,:\*]+)
SEARCH(?: CHARSET [\w\-_\.]{1,40})? (?:BEFORE|ON|SENTBEFORE|SENTON|SENTSINCE|SINCE) \"?\d{1,2}-\w{3}-\d{4}\"?
SEARCH(?: CHARSET [\w\-_\.]{1,40})? (?:OR .{1,255} .{1,255}|SMALLER \d{1,20}|SUBJECT .{1,255})
SEARCH(?: CHARSET [\w\-_\.]{1,40})? (?:TEXT .{1,255}|TO .{1,255}|UID [0-9,:\*]+?|UNKEYWORD (?:\x5c(Seen|Answered|Flagged|Deleted|Draft|Recent)))
##! - IMAP4rev1 Commands - without params
CAPABILITY
CHECK
CLOSE
EXPUNGE
LOGOUT
NOOP
STARTTLS
UNAUTHENTICATE
##! Not covered - X<atom> Command (client extensions)