event log
>  0   (sequence :thing -1)
>  1   :thing
>  2   (choice (unref (sequence :open :thing :close)) (capture (any (if-not "[" 1))))
>  3   (unref (sequence :open :thing :close))
>  4   (sequence :open :thing :close)
>  5   :open
>  6   (capture (sequence "[" (some "_") "]") :delim)
>  7   (sequence "[" (some "_") "]")
>  8   "["
   8 > "["
>  9   (some "_")
> 10   "_"
  10 > "_"
> 11   "_"
  11 > "_"
> 12   "_"
  12 > "_"
   9 > (some "_")
> 13   "]"
  13 > "]"
   7 > (sequence "[" (some "_") "]")
   6 > (capture (sequence "[" (some "_") "]") :delim)
   5 > :open
> 14   :thing
> 15   (choice (unref (sequence :open :thing :close)) (capture (any (if-not "[" 1))))
> 16   (unref (sequence :open :thing :close))
> 17   (sequence :open :thing :close)
> 18   :open
> 19   (capture (sequence "[" (some "_") "]") :delim)
> 20   (sequence "[" (some "_") "]")
> 21   "["
  21 > "["
> 22   (some "_")
> 23   "_"
  23 > "_"
> 24   "_"
  24 > "_"
  22 > (some "_")
> 25   "]"
  25 > "]"
  20 > (sequence "[" (some "_") "]")
  19 > (capture (sequence "[" (some "_") "]") :delim)
  18 > :open
> 26   :thing
> 27   (choice (unref (sequence :open :thing :close)) (capture (any (if-not "[" 1))))
> 28   (unref (sequence :open :thing :close))
> 29   (sequence :open :thing :close)
> 30   :open
> 31   (capture (sequence "[" (some "_") "]") :delim)
> 32   (sequence "[" (some "_") "]")
> 33   "["
  33 > "["
  32 > (sequence "[" (some "_") "]")
  31 > (capture (sequence "[" (some "_") "]") :delim)
  30 > :open
  29 > (sequence :open :thing :close)
  28 > (unref (sequence :open :thing :close))
> 34   (capture (any (if-not "[" 1)))
> 35   (any (if-not "[" 1))
> 36   (if-not "[" 1)
> 37   "["
  37 > "["
> 38   1
  38 > 1
  36 > (if-not "[" 1)
> 39   (if-not "[" 1)
> 40   "["
  40 > "["
  39 > (if-not "[" 1)
  35 > (any (if-not "[" 1))
  34 > (capture (any (if-not "[" 1)))
  27 > (choice (unref (sequence :open :thing :close)) (capture (any (if-not "[" 1))))
  26 > :thing
> 41   :close
> 42   (capture (backmatch :delim))
> 43   (backmatch :delim)
  43 > (backmatch :delim)
  42 > (capture (backmatch :delim))
  41 > :close
  17 > (sequence :open :thing :close)
  16 > (unref (sequence :open :thing :close))
  15 > (choice (unref (sequence :open :thing :close)) (capture (any (if-not "[" 1))))
  14 > :thing
> 44   :close
> 45   (capture (backmatch :delim))
> 46   (backmatch :delim)
  46 > (backmatch :delim)
  45 > (capture (backmatch :delim))
  44 > :close
   4 > (sequence :open :thing :close)
   3 > (unref (sequence :open :thing :close))
   2 > (choice (unref (sequence :open :thing :close)) (capture (any (if-not "[" 1))))
   1 > :thing
> 47   -1
  47 > -1
   0 > (sequence :thing -1)