\lstdefinelanguage{lRegex}{ number suffixes={}, moredelim=[s][{\xlstGetStyle{literals}}]{[}{]}, moredelim=**[is][{\xlsthlboxd{\xlstcustom}}]{&custom&}{&custom&}, add to literate=% % anchors {$}{{{\xlstGet{keywordA}{\$}}}}1 {\\$}{{\textbackslash\$}}2 {^}{{{\xlstGet{keywordA}{\textasciicircum}}}}1 {\\^}{{\textbackslash\textasciicircum}}2 % predef classes {\\d}{{{\xlstGet{keywordA}{\textbackslash d}}}}2 {\\D}{{{\xlstGet{keywordA}{\textbackslash D}}}}2 {\\w}{{{\xlstGet{keywordA}{\textbackslash w}}}}2 {\\W}{{{\xlstGet{keywordA}{\textbackslash W}}}}2 {\\s}{{{\xlstGet{keywordA}{\textbackslash s}}}}2 {\\S}{{{\xlstGet{keywordA}{\textbackslash S}}}}2 {\\b}{{{\xlstGet{keywordA}{\textbackslash b}}}}2 {\\B}{{{\xlstGet{keywordA}{\textbackslash B}}}}2 {\\A}{{{\xlstGet{keywordA}{\textbackslash A}}}}2 {\\Z}{{{\xlstGet{keywordA}{\textbackslash Z}}}}2 {\\z}{{{\xlstGet{keywordA}{\textbackslash z}}}}2 % escape sequences {\\n}{{{\xlstGet{keywordB}{\textbackslash n}}}}2 {\\t}{{{\xlstGet{keywordB}{\textbackslash t}}}}2 {\\r}{{{\xlstGet{keywordB}{\textbackslash r}}}}2 {\\\\}{{{\textbackslash\textbackslash}}}2 % quantifiers {*}{{{\xlstGet{keywordB}{*}}}}1 {+}{{{\xlstGet{keywordB}{+}}}}1 {?}{{{\xlstGet{keywordB}{?}}}}1 {\\*}{{{\textbackslash*}}}2 {\\+}{{{\textbackslash+}}}2 {\\?}{{{\textbackslash?}}}2 {.}{{{\xlstGet{keywordC}{.}}}}1 {\\.}{{{\textbackslash.}}}2 % option {|}{{{\xlstGet{keywordC}{\textbf{|}}}}}1 {\\|}{{{\textbackslash|}}}2% % escaped groups {\\(}{{{\textbackslash(}}}2 {\\)}{{{\textbackslash)}}}2 {\\[}{{{\textbackslash[}}}2 {\\]}{{{\textbackslash]}}}2 } \RegisterLanguage{regex}{lRegex}