Regex regression (repeat) ========================= Factorisation of (a{n,p}){x,y}: ------------------------------- >>> from hachoir_regex import parse >>> parse("(a{2,3}){4,5}") >>> parse("(a{2,}){3,4}") >>> parse("(a{2,3})+") >>> parse("(a*){2,3}") >>> parse("(a+){2,3}") Factorisation of (a|b)*: ------------------------ >>> parse("(a*|b)*") >>> parse("(a+|b)*") >>> parse("(a{2,}|b)*") Factorisation of (a|b)+: ------------------------ >>> parse("(a*|b)+") >>> parse("(a+|b|)+") >>> parse("(a+|b)+") >>> parse("(a{5,}|b)+") Factorisation of (a|b){x,}: --------------------------- >>> parse("(a+|b){3,}") >>> parse("(a{2,}|b){3,}") Factorisation of (a|b){x,y}: ---------------------------- >>> parse("(a*|b|){4,5}") >>> parse("(a+|b|){4,5}") >>> parse("(a*|b){4,5}") Do not optimize: ---------------- >>> parse('(a*|b){3,}') >>> parse("(a{2,3}|b){3,}") >>> parse("(a{2,3}|b)*") >>> parse("(a{2,3}|b)+") >>> parse("(a+|b){4,5}") >>> parse("(a{2,}|b){4,5}") >>> parse("(a{2,3}|b){4,5}") Regex regression (b) ==================== >>> from hachoir_regex import parse >>> parse("(M(SCF|Thd)|B(MP4|Zh))") >>> parse("(FWS1|CWS1|FWS2|CWS2)") >>> parse("(abcdeZ|abZ)") >>> parse("(00t003|10t003|00[12]0[1-9].abc\0|1CD001)")