/ Inspired by [[http://nsl.com/papers/re.htm]] by Raul Miller / Expanded to J at [[https://code.jsoftware.com/wiki/Essays/RegularExpressions/NondeterministicFiniteAutomata]] pr:{r:@[;;|;]\[(!0)@&1+|/x;x;!#x];(!#x)^'r@'x-1} exp:{@[@/r;&=':*|r:1(&1+x<"("=)\y/,'"()";:;"|"]} msk:{-1_0,<\"\\"=x} dp:{d:(-x<"|"=y)+2*(-*t)++\-/t:x#x;x |/0>r:-/i:x@-1 0++1_,':&~|':<\"-"=x," ";`err@"bad class" ,/`c$i[1]+!'1+r]} prs:{ t:dp[m:msk e] e:exp[0,msk[x],0;x] (e;t;m):(e;t;m)@\:&~|/m