-struct subre
-{
-       char            op;                             /* '|', '.' (concat), 'b' (backref), '(',
-                                                                * '=' */
-       char            flags;
-#define  LONGER  01                            /* prefers longer match */
-#define  SHORTER 02                            /* prefers shorter match */
-#define  MIXED  04                             /* mixed preference below */
-#define  CAP 010                               /* capturing parens below */
-#define  BACKR  020                    /* back reference below */
-#define  INUSE  0100                   /* in use in final tree */
-#define  LOCAL  03                             /* bits which may not propagate up */
-#define  LMIX(f) ((f)<<2)              /* LONGER -> MIXED */
-#define  SMIX(f) ((f)<<1)              /* SHORTER -> MIXED */
-#define  UP(f)  (((f)&~LOCAL) | (LMIX(f) & SMIX(f) & MIXED))
-#define  MESSY(f)       ((f)&(MIXED|CAP|BACKR))
-#define  PREF(f) ((f)&LOCAL)
-#define  PREF2(f1, f2)  ((PREF(f1) != 0) ? PREF(f1) : PREF(f2))
-#define  COMBINE(f1, f2) (UP((f1)|(f2)) | PREF2(f1, f2))
-       short           retry;                  /* index into retry memory */
-       int                     subno;                  /* subexpression number (for 'b' and '(') */
-       short           min;                    /* min repetitions, for backref only */
-       short           max;                    /* max repetitions, for backref only */
-       struct subre *left;                     /* left child, if any (also freelist
-                                                                * chain) */
-       struct subre *right;            /* right child, if any */
-       struct state *begin;            /* outarcs from here... */
-       struct state *end;                      /* ...ending in inarcs here */
-       struct cnfa cnfa;                       /* compacted NFA, if any */
-       struct subre *chain;            /* for bookkeeping and error cleanup */
+struct subre {
+       char op;                /* '|', '.' (concat), 'b' (backref), '(', '=' */
+       char flags;
+#              define  LONGER  01      /* prefers longer match */
+#              define  SHORTER 02      /* prefers shorter match */
+#              define  MIXED   04      /* mixed preference below */
+#              define  CAP     010     /* capturing parens below */
+#              define  BACKR   020     /* back reference below */
+#              define  INUSE   0100    /* in use in final tree */
+#              define  LOCAL   03      /* bits which may not propagate up */
+#              define  LMIX(f) ((f)<<2)        /* LONGER -> MIXED */
+#              define  SMIX(f) ((f)<<1)        /* SHORTER -> MIXED */
+#              define  UP(f)   (((f)&~LOCAL) | (LMIX(f) & SMIX(f) & MIXED))
+#              define  MESSY(f)        ((f)&(MIXED|CAP|BACKR))
+#              define  PREF(f) ((f)&LOCAL)
+#              define  PREF2(f1, f2)   ((PREF(f1) != 0) ? PREF(f1) : PREF(f2))
+#              define  COMBINE(f1, f2) (UP((f1)|(f2)) | PREF2(f1, f2))
+       short retry;            /* index into retry memory */
+       int subno;              /* subexpression number (for 'b' and '(') */
+       short min;              /* min repetitions, for backref only */
+       short max;              /* max repetitions, for backref only */
+       struct subre *left;     /* left child, if any (also freelist chain) */
+       struct subre *right;    /* right child, if any */
+       struct state *begin;    /* outarcs from here... */
+       struct state *end;      /* ...ending in inarcs here */
+       struct cnfa cnfa;       /* compacted NFA, if any */
+       struct subre *chain;    /* for bookkeeping and error cleanup */