@@ -392,7 +392,7 @@ int re_comp(rcode *prog, const char *re, int nsubs)
392392if (res < 0 )return res ;
393393// If unparsed chars left
394394if (* re )return RE_SYNTAX_ERROR ;
395- int icnt = 0 ,scnt = SPLIT ;
395+ int icnt = 0 ,scnt = SPLIT + 1 ;
396396for (int i = 0 ;i < prog -> unilen ;i ++ )
397397switch (prog -> insts [i ]) {
398398case CLASS :
@@ -439,10 +439,10 @@ if (--csub->ref == 0) { \
439439
440440#define onclist (nn )
441441#define onnlist (nn ) \
442- if (sdense[spc+1 ] < sparsesz) \
443- if (sdense[sdense[spc+1 ]] == (unsigned int)spc) \
442+ if (sdense[spc] < sparsesz) \
443+ if (sdense[sdense[spc]] == (unsigned int)spc) \
444444deccheck(nn) \
445- sdense[spc+1 ] = sparsesz; \
445+ sdense[spc] = sparsesz; \
446446sdense[sparsesz] = spc; \
447447sparsesz += 2; \
448448
@@ -484,7 +484,7 @@ else if (spc == JMP) { \
484484
485485#define clistmatch ()
486486#define nlistmatch () \
487- if (*npc == MATCH) \
487+ if (spc == MATCH) \
488488for (i++; i < clistidx; i++) { \
489489npc = clist[i].pc; \
490490nsub = clist[i].sub; \