[svn:parrot] r48545 - trunk/ext/nqp-rx/src/stage0

pmichaud at svn.parrot.org pmichaud at svn.parrot.org
Tue Aug 17 04:29:29 UTC 2010


Author: pmichaud
Date: Tue Aug 17 04:29:27 2010
New Revision: 48545
URL: https://trac.parrot.org/parrot/changeset/48545

Log:
[nqp-rx]:  Avoid calls to !cursor_debug when debugging isn't enabled.

Modified:
   trunk/ext/nqp-rx/src/stage0/HLL-s0.pir
   trunk/ext/nqp-rx/src/stage0/NQP-s0.pir
   trunk/ext/nqp-rx/src/stage0/P6Regex-s0.pir
   trunk/ext/nqp-rx/src/stage0/Regex-s0.pir

Modified: trunk/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- trunk/ext/nqp-rx/src/stage0/HLL-s0.pir	Tue Aug 17 03:02:21 2010	(r48544)
+++ trunk/ext/nqp-rx/src/stage0/HLL-s0.pir	Tue Aug 17 04:29:27 2010	(r48545)
@@ -902,7 +902,7 @@
 ### .include 'gen/hllgrammar-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467467.13603")
+.sub "_block11"  :anon :subid("10_1282016519.8364")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Grammar"], "_block13" 
     capture_lex $P14
@@ -919,15 +919,15 @@
     $P332 = $P14()
 .annotate 'line', 1
     .return ($P332)
-    .const 'Sub' $P334 = "106_1280467467.13603" 
+    .const 'Sub' $P334 = "106_1282016519.8364" 
     .return ($P334)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post107") :outer("10_1280467467.13603")
+.sub "" :load :init :subid("post107") :outer("10_1282016519.8364")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467467.13603" 
+    .const 'Sub' $P12 = "10_1282016519.8364" 
     .local pmc block
     set block, $P12
     $P337 = get_root_global ["parrot"], "P6metaclass"
@@ -936,83 +936,83 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block13"  :subid("11_1280467467.13603") :outer("10_1280467467.13603")
+.sub "_block13"  :subid("11_1282016519.8364") :outer("10_1282016519.8364")
 .annotate 'line', 5
-    .const 'Sub' $P319 = "103_1280467467.13603" 
+    .const 'Sub' $P319 = "103_1282016519.8364" 
     capture_lex $P319
-    .const 'Sub' $P313 = "101_1280467467.13603" 
+    .const 'Sub' $P313 = "101_1282016519.8364" 
     capture_lex $P313
-    .const 'Sub' $P300 = "98_1280467467.13603" 
+    .const 'Sub' $P300 = "98_1282016519.8364" 
     capture_lex $P300
-    .const 'Sub' $P268 = "93_1280467467.13603" 
+    .const 'Sub' $P268 = "93_1282016519.8364" 
     capture_lex $P268
-    .const 'Sub' $P262 = "91_1280467467.13603" 
+    .const 'Sub' $P262 = "91_1282016519.8364" 
     capture_lex $P262
-    .const 'Sub' $P257 = "89_1280467467.13603" 
+    .const 'Sub' $P257 = "89_1282016519.8364" 
     capture_lex $P257
-    .const 'Sub' $P251 = "87_1280467467.13603" 
+    .const 'Sub' $P251 = "87_1282016519.8364" 
     capture_lex $P251
-    .const 'Sub' $P245 = "85_1280467467.13603" 
+    .const 'Sub' $P245 = "85_1282016519.8364" 
     capture_lex $P245
-    .const 'Sub' $P240 = "83_1280467467.13603" 
+    .const 'Sub' $P240 = "83_1282016519.8364" 
     capture_lex $P240
-    .const 'Sub' $P235 = "81_1280467467.13603" 
+    .const 'Sub' $P235 = "81_1282016519.8364" 
     capture_lex $P235
-    .const 'Sub' $P230 = "79_1280467467.13603" 
+    .const 'Sub' $P230 = "79_1282016519.8364" 
     capture_lex $P230
-    .const 'Sub' $P225 = "77_1280467467.13603" 
+    .const 'Sub' $P225 = "77_1282016519.8364" 
     capture_lex $P225
-    .const 'Sub' $P220 = "75_1280467467.13603" 
+    .const 'Sub' $P220 = "75_1282016519.8364" 
     capture_lex $P220
-    .const 'Sub' $P215 = "73_1280467467.13603" 
+    .const 'Sub' $P215 = "73_1282016519.8364" 
     capture_lex $P215
-    .const 'Sub' $P210 = "71_1280467467.13603" 
+    .const 'Sub' $P210 = "71_1282016519.8364" 
     capture_lex $P210
-    .const 'Sub' $P205 = "69_1280467467.13603" 
+    .const 'Sub' $P205 = "69_1282016519.8364" 
     capture_lex $P205
-    .const 'Sub' $P195 = "65_1280467467.13603" 
+    .const 'Sub' $P195 = "65_1282016519.8364" 
     capture_lex $P195
-    .const 'Sub' $P182 = "63_1280467467.13603" 
+    .const 'Sub' $P182 = "63_1282016519.8364" 
     capture_lex $P182
-    .const 'Sub' $P170 = "61_1280467467.13603" 
+    .const 'Sub' $P170 = "61_1282016519.8364" 
     capture_lex $P170
-    .const 'Sub' $P164 = "59_1280467467.13603" 
+    .const 'Sub' $P164 = "59_1282016519.8364" 
     capture_lex $P164
-    .const 'Sub' $P157 = "57_1280467467.13603" 
+    .const 'Sub' $P157 = "57_1282016519.8364" 
     capture_lex $P157
-    .const 'Sub' $P151 = "55_1280467467.13603" 
+    .const 'Sub' $P151 = "55_1282016519.8364" 
     capture_lex $P151
-    .const 'Sub' $P144 = "53_1280467467.13603" 
+    .const 'Sub' $P144 = "53_1282016519.8364" 
     capture_lex $P144
-    .const 'Sub' $P138 = "51_1280467467.13603" 
+    .const 'Sub' $P138 = "51_1282016519.8364" 
     capture_lex $P138
-    .const 'Sub' $P131 = "49_1280467467.13603" 
+    .const 'Sub' $P131 = "49_1282016519.8364" 
     capture_lex $P131
-    .const 'Sub' $P125 = "47_1280467467.13603" 
+    .const 'Sub' $P125 = "47_1282016519.8364" 
     capture_lex $P125
-    .const 'Sub' $P119 = "45_1280467467.13603" 
+    .const 'Sub' $P119 = "45_1282016519.8364" 
     capture_lex $P119
-    .const 'Sub' $P110 = "43_1280467467.13603" 
+    .const 'Sub' $P110 = "43_1282016519.8364" 
     capture_lex $P110
-    .const 'Sub' $P102 = "41_1280467467.13603" 
+    .const 'Sub' $P102 = "41_1282016519.8364" 
     capture_lex $P102
-    .const 'Sub' $P92 = "40_1280467467.13603" 
+    .const 'Sub' $P92 = "40_1282016519.8364" 
     capture_lex $P92
-    .const 'Sub' $P86 = "38_1280467467.13603" 
+    .const 'Sub' $P86 = "38_1282016519.8364" 
     capture_lex $P86
-    .const 'Sub' $P81 = "36_1280467467.13603" 
+    .const 'Sub' $P81 = "36_1282016519.8364" 
     capture_lex $P81
-    .const 'Sub' $P73 = "34_1280467467.13603" 
+    .const 'Sub' $P73 = "34_1282016519.8364" 
     capture_lex $P73
-    .const 'Sub' $P67 = "32_1280467467.13603" 
+    .const 'Sub' $P67 = "32_1282016519.8364" 
     capture_lex $P67
-    .const 'Sub' $P61 = "30_1280467467.13603" 
+    .const 'Sub' $P61 = "30_1282016519.8364" 
     capture_lex $P61
-    .const 'Sub' $P55 = "28_1280467467.13603" 
+    .const 'Sub' $P55 = "28_1282016519.8364" 
     capture_lex $P55
-    .const 'Sub' $P22 = "14_1280467467.13603" 
+    .const 'Sub' $P22 = "14_1282016519.8364" 
     capture_lex $P22
-    .const 'Sub' $P15 = "12_1280467467.13603" 
+    .const 'Sub' $P15 = "12_1282016519.8364" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -1021,17 +1021,17 @@
     $P0."ctxsave"()
   ctxsave_done:
 .annotate 'line', 33
-    .const 'Sub' $P319 = "103_1280467467.13603" 
+    .const 'Sub' $P319 = "103_1282016519.8364" 
     capture_lex $P319
 .annotate 'line', 5
     .return ($P319)
-    .const 'Sub' $P329 = "105_1280467467.13603" 
+    .const 'Sub' $P329 = "105_1282016519.8364" 
     .return ($P329)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "ws"  :subid("12_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "ws"  :subid("12_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 5
     .local string rx16_tgt
     .local int rx16_pos
@@ -1039,7 +1039,9 @@
     .local int rx16_eos
     .local int rx16_rep
     .local pmc rx16_cur
+    .local pmc rx16_debug
     (rx16_cur, rx16_pos, rx16_tgt, $I10) = self."!cursor_start"()
+    getattribute rx16_debug, rx16_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx16_cur
     .local pmc match
     .lex "$/", match
@@ -1051,7 +1053,9 @@
     substr rx16_tgt, rx16_tgt, rx16_off
   rx16_start:
     eq $I10, 1, rx16_restart
+    if_null rx16_debug, debug_108
     rx16_cur."!cursor_debug"("START ", "ws")
+  debug_108:
     $I10 = self.'from'()
     ne $I10, -1, rxscan19_done
     goto rxscan19_scan
@@ -1087,8 +1091,8 @@
     add $I11, rx16_pos, 1
     gt $I11, rx16_eos, rx16_fail
     sub $I11, rx16_pos, rx16_off
-    substr $S10, rx16_tgt, $I11, 1
-    ne $S10, "#", rx16_fail
+    ord $I11, rx16_tgt, $I11
+    ne $I11, 35, rx16_fail
     add rx16_pos, 1
   # rx charclass_q N r 0..-1
     sub $I10, rx16_pos, rx16_off
@@ -1103,10 +1107,14 @@
   rxquantr20_done:
   # rx pass
     rx16_cur."!cursor_pass"(rx16_pos, "ws")
+    if_null rx16_debug, debug_109
     rx16_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx16_pos)
+  debug_109:
     .return (rx16_cur)
   rx16_restart:
+    if_null rx16_debug, debug_110
     rx16_cur."!cursor_debug"("NEXT ", "ws")
+  debug_110:
   rx16_fail:
     (rx16_rep, rx16_pos, $I10, $P10) = rx16_cur."!mark_fail"(0)
     lt rx16_pos, -1, rx16_done
@@ -1114,14 +1122,16 @@
     jump $I10
   rx16_done:
     rx16_cur."!cursor_fail"()
+    if_null rx16_debug, debug_111
     rx16_cur."!cursor_debug"("FAIL  ", "ws")
+  debug_111:
     .return (rx16_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws"  :subid("13_1280467467.13603") :method
+.sub "!PREFIX__ws"  :subid("13_1282016519.8364") :method
 .annotate 'line', 5
     new $P18, "ResizablePMCArray"
     push $P18, ""
@@ -1130,7 +1140,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "termish"  :subid("14_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "termish"  :subid("14_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 5
     .local string rx23_tgt
     .local int rx23_pos
@@ -1138,8 +1148,10 @@
     .local int rx23_eos
     .local int rx23_rep
     .local pmc rx23_cur
+    .local pmc rx23_debug
     (rx23_cur, rx23_pos, rx23_tgt, $I10) = self."!cursor_start"()
-    rx23_cur."!cursor_caparray"("prefixish", "postfixish")
+    rx23_cur."!cursor_caparray"("postfixish", "prefixish")
+    getattribute rx23_debug, rx23_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx23_cur
     .local pmc match
     .lex "$/", match
@@ -1151,7 +1163,9 @@
     substr rx23_tgt, rx23_tgt, rx23_off
   rx23_start:
     eq $I10, 1, rx23_restart
+    if_null rx23_debug, debug_112
     rx23_cur."!cursor_debug"("START ", "termish")
+  debug_112:
     $I10 = self.'from'()
     ne $I10, -1, rxscan26_done
     goto rxscan26_scan
@@ -1223,11 +1237,15 @@
 .annotate 'line', 7
   # rx pass
     rx23_cur."!cursor_pass"(rx23_pos, "termish")
+    if_null rx23_debug, debug_113
     rx23_cur."!cursor_debug"("PASS  ", "termish", " at pos=", rx23_pos)
+  debug_113:
     .return (rx23_cur)
   rx23_restart:
 .annotate 'line', 5
+    if_null rx23_debug, debug_114
     rx23_cur."!cursor_debug"("NEXT ", "termish")
+  debug_114:
   rx23_fail:
     (rx23_rep, rx23_pos, $I10, $P10) = rx23_cur."!mark_fail"(0)
     lt rx23_pos, -1, rx23_done
@@ -1235,14 +1253,16 @@
     jump $I10
   rx23_done:
     rx23_cur."!cursor_fail"()
+    if_null rx23_debug, debug_115
     rx23_cur."!cursor_debug"("FAIL  ", "termish")
+  debug_115:
     .return (rx23_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish"  :subid("15_1280467467.13603") :method
+.sub "!PREFIX__termish"  :subid("15_1282016519.8364") :method
 .annotate 'line', 5
     new $P25, "ResizablePMCArray"
     push $P25, ""
@@ -1251,7 +1271,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term"  :subid("16_1280467467.13603") :method
+.sub "term"  :subid("16_1282016519.8364") :method
 .annotate 'line', 13
     $P32 = self."!protoregex"("term")
     .return ($P32)
@@ -1259,7 +1279,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term"  :subid("17_1280467467.13603") :method
+.sub "!PREFIX__term"  :subid("17_1282016519.8364") :method
 .annotate 'line', 13
     $P34 = self."!PREFIX__!protoregex"("term")
     .return ($P34)
@@ -1267,7 +1287,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infix"  :subid("18_1280467467.13603") :method
+.sub "infix"  :subid("18_1282016519.8364") :method
 .annotate 'line', 14
     $P36 = self."!protoregex"("infix")
     .return ($P36)
@@ -1275,7 +1295,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix"  :subid("19_1280467467.13603") :method
+.sub "!PREFIX__infix"  :subid("19_1282016519.8364") :method
 .annotate 'line', 14
     $P38 = self."!PREFIX__!protoregex"("infix")
     .return ($P38)
@@ -1283,7 +1303,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefix"  :subid("20_1280467467.13603") :method
+.sub "prefix"  :subid("20_1282016519.8364") :method
 .annotate 'line', 15
     $P40 = self."!protoregex"("prefix")
     .return ($P40)
@@ -1291,7 +1311,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix"  :subid("21_1280467467.13603") :method
+.sub "!PREFIX__prefix"  :subid("21_1282016519.8364") :method
 .annotate 'line', 15
     $P42 = self."!PREFIX__!protoregex"("prefix")
     .return ($P42)
@@ -1299,7 +1319,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfix"  :subid("22_1280467467.13603") :method
+.sub "postfix"  :subid("22_1282016519.8364") :method
 .annotate 'line', 16
     $P44 = self."!protoregex"("postfix")
     .return ($P44)
@@ -1307,7 +1327,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix"  :subid("23_1280467467.13603") :method
+.sub "!PREFIX__postfix"  :subid("23_1282016519.8364") :method
 .annotate 'line', 16
     $P46 = self."!PREFIX__!protoregex"("postfix")
     .return ($P46)
@@ -1315,7 +1335,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "circumfix"  :subid("24_1280467467.13603") :method
+.sub "circumfix"  :subid("24_1282016519.8364") :method
 .annotate 'line', 17
     $P48 = self."!protoregex"("circumfix")
     .return ($P48)
@@ -1323,7 +1343,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix"  :subid("25_1280467467.13603") :method
+.sub "!PREFIX__circumfix"  :subid("25_1282016519.8364") :method
 .annotate 'line', 17
     $P50 = self."!PREFIX__!protoregex"("circumfix")
     .return ($P50)
@@ -1331,7 +1351,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postcircumfix"  :subid("26_1280467467.13603") :method
+.sub "postcircumfix"  :subid("26_1282016519.8364") :method
 .annotate 'line', 18
     $P52 = self."!protoregex"("postcircumfix")
     .return ($P52)
@@ -1339,7 +1359,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix"  :subid("27_1280467467.13603") :method
+.sub "!PREFIX__postcircumfix"  :subid("27_1282016519.8364") :method
 .annotate 'line', 18
     $P54 = self."!PREFIX__!protoregex"("postcircumfix")
     .return ($P54)
@@ -1347,7 +1367,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>"  :subid("28_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "term:sym<circumfix>"  :subid("28_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 5
     .local string rx56_tgt
     .local int rx56_pos
@@ -1355,7 +1375,9 @@
     .local int rx56_eos
     .local int rx56_rep
     .local pmc rx56_cur
+    .local pmc rx56_debug
     (rx56_cur, rx56_pos, rx56_tgt, $I10) = self."!cursor_start"()
+    getattribute rx56_debug, rx56_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx56_cur
     .local pmc match
     .lex "$/", match
@@ -1367,7 +1389,9 @@
     substr rx56_tgt, rx56_tgt, rx56_off
   rx56_start:
     eq $I10, 1, rx56_restart
+    if_null rx56_debug, debug_116
     rx56_cur."!cursor_debug"("START ", "term:sym<circumfix>")
+  debug_116:
     $I10 = self.'from'()
     ne $I10, -1, rxscan60_done
     goto rxscan60_scan
@@ -1390,11 +1414,15 @@
     rx56_pos = $P10."pos"()
   # rx pass
     rx56_cur."!cursor_pass"(rx56_pos, "term:sym<circumfix>")
+    if_null rx56_debug, debug_117
     rx56_cur."!cursor_debug"("PASS  ", "term:sym<circumfix>", " at pos=", rx56_pos)
+  debug_117:
     .return (rx56_cur)
   rx56_restart:
 .annotate 'line', 5
+    if_null rx56_debug, debug_118
     rx56_cur."!cursor_debug"("NEXT ", "term:sym<circumfix>")
+  debug_118:
   rx56_fail:
     (rx56_rep, rx56_pos, $I10, $P10) = rx56_cur."!mark_fail"(0)
     lt rx56_pos, -1, rx56_done
@@ -1402,14 +1430,16 @@
     jump $I10
   rx56_done:
     rx56_cur."!cursor_fail"()
+    if_null rx56_debug, debug_119
     rx56_cur."!cursor_debug"("FAIL  ", "term:sym<circumfix>")
+  debug_119:
     .return (rx56_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1280467467.13603") :method
+.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1282016519.8364") :method
 .annotate 'line', 5
     $P58 = self."!PREFIX__!subrule"("circumfix", "")
     new $P59, "ResizablePMCArray"
@@ -1419,7 +1449,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infixish"  :subid("30_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "infixish"  :subid("30_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 5
     .local string rx62_tgt
     .local int rx62_pos
@@ -1427,7 +1457,9 @@
     .local int rx62_eos
     .local int rx62_rep
     .local pmc rx62_cur
+    .local pmc rx62_debug
     (rx62_cur, rx62_pos, rx62_tgt, $I10) = self."!cursor_start"()
+    getattribute rx62_debug, rx62_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx62_cur
     .local pmc match
     .lex "$/", match
@@ -1439,7 +1471,9 @@
     substr rx62_tgt, rx62_tgt, rx62_off
   rx62_start:
     eq $I10, 1, rx62_restart
+    if_null rx62_debug, debug_120
     rx62_cur."!cursor_debug"("START ", "infixish")
+  debug_120:
     $I10 = self.'from'()
     ne $I10, -1, rxscan66_done
     goto rxscan66_scan
@@ -1462,11 +1496,15 @@
     rx62_pos = $P10."pos"()
   # rx pass
     rx62_cur."!cursor_pass"(rx62_pos, "infixish")
+    if_null rx62_debug, debug_121
     rx62_cur."!cursor_debug"("PASS  ", "infixish", " at pos=", rx62_pos)
+  debug_121:
     .return (rx62_cur)
   rx62_restart:
 .annotate 'line', 5
+    if_null rx62_debug, debug_122
     rx62_cur."!cursor_debug"("NEXT ", "infixish")
+  debug_122:
   rx62_fail:
     (rx62_rep, rx62_pos, $I10, $P10) = rx62_cur."!mark_fail"(0)
     lt rx62_pos, -1, rx62_done
@@ -1474,14 +1512,16 @@
     jump $I10
   rx62_done:
     rx62_cur."!cursor_fail"()
+    if_null rx62_debug, debug_123
     rx62_cur."!cursor_debug"("FAIL  ", "infixish")
+  debug_123:
     .return (rx62_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("31_1280467467.13603") :method
+.sub "!PREFIX__infixish"  :subid("31_1282016519.8364") :method
 .annotate 'line', 5
     $P64 = self."!PREFIX__!subrule"("infix", "")
     new $P65, "ResizablePMCArray"
@@ -1491,7 +1531,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefixish"  :subid("32_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "prefixish"  :subid("32_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 5
     .local string rx68_tgt
     .local int rx68_pos
@@ -1499,7 +1539,9 @@
     .local int rx68_eos
     .local int rx68_rep
     .local pmc rx68_cur
+    .local pmc rx68_debug
     (rx68_cur, rx68_pos, rx68_tgt, $I10) = self."!cursor_start"()
+    getattribute rx68_debug, rx68_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx68_cur
     .local pmc match
     .lex "$/", match
@@ -1511,7 +1553,9 @@
     substr rx68_tgt, rx68_tgt, rx68_off
   rx68_start:
     eq $I10, 1, rx68_restart
+    if_null rx68_debug, debug_124
     rx68_cur."!cursor_debug"("START ", "prefixish")
+  debug_124:
     $I10 = self.'from'()
     ne $I10, -1, rxscan72_done
     goto rxscan72_scan
@@ -1539,11 +1583,15 @@
     rx68_pos = $P10."pos"()
   # rx pass
     rx68_cur."!cursor_pass"(rx68_pos, "prefixish")
+    if_null rx68_debug, debug_125
     rx68_cur."!cursor_debug"("PASS  ", "prefixish", " at pos=", rx68_pos)
+  debug_125:
     .return (rx68_cur)
   rx68_restart:
 .annotate 'line', 5
+    if_null rx68_debug, debug_126
     rx68_cur."!cursor_debug"("NEXT ", "prefixish")
+  debug_126:
   rx68_fail:
     (rx68_rep, rx68_pos, $I10, $P10) = rx68_cur."!mark_fail"(0)
     lt rx68_pos, -1, rx68_done
@@ -1551,14 +1599,16 @@
     jump $I10
   rx68_done:
     rx68_cur."!cursor_fail"()
+    if_null rx68_debug, debug_127
     rx68_cur."!cursor_debug"("FAIL  ", "prefixish")
+  debug_127:
     .return (rx68_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish"  :subid("33_1280467467.13603") :method
+.sub "!PREFIX__prefixish"  :subid("33_1282016519.8364") :method
 .annotate 'line', 5
     $P70 = self."!PREFIX__!subrule"("prefix", "")
     new $P71, "ResizablePMCArray"
@@ -1568,7 +1618,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfixish"  :subid("34_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "postfixish"  :subid("34_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 5
     .local string rx74_tgt
     .local int rx74_pos
@@ -1576,7 +1626,9 @@
     .local int rx74_eos
     .local int rx74_rep
     .local pmc rx74_cur
+    .local pmc rx74_debug
     (rx74_cur, rx74_pos, rx74_tgt, $I10) = self."!cursor_start"()
+    getattribute rx74_debug, rx74_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx74_cur
     .local pmc match
     .lex "$/", match
@@ -1588,7 +1640,9 @@
     substr rx74_tgt, rx74_tgt, rx74_off
   rx74_start:
     eq $I10, 1, rx74_restart
+    if_null rx74_debug, debug_128
     rx74_cur."!cursor_debug"("START ", "postfixish")
+  debug_128:
     $I10 = self.'from'()
     ne $I10, -1, rxscan79_done
     goto rxscan79_scan
@@ -1627,11 +1681,15 @@
 .annotate 'line', 24
   # rx pass
     rx74_cur."!cursor_pass"(rx74_pos, "postfixish")
+    if_null rx74_debug, debug_129
     rx74_cur."!cursor_debug"("PASS  ", "postfixish", " at pos=", rx74_pos)
+  debug_129:
     .return (rx74_cur)
   rx74_restart:
 .annotate 'line', 5
+    if_null rx74_debug, debug_130
     rx74_cur."!cursor_debug"("NEXT ", "postfixish")
+  debug_130:
   rx74_fail:
     (rx74_rep, rx74_pos, $I10, $P10) = rx74_cur."!mark_fail"(0)
     lt rx74_pos, -1, rx74_done
@@ -1639,14 +1697,16 @@
     jump $I10
   rx74_done:
     rx74_cur."!cursor_fail"()
+    if_null rx74_debug, debug_131
     rx74_cur."!cursor_debug"("FAIL  ", "postfixish")
+  debug_131:
     .return (rx74_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish"  :subid("35_1280467467.13603") :method
+.sub "!PREFIX__postfixish"  :subid("35_1282016519.8364") :method
 .annotate 'line', 5
     $P76 = self."!PREFIX__!subrule"("postcircumfix", "")
     $P77 = self."!PREFIX__!subrule"("postfix", "")
@@ -1658,7 +1718,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm"  :subid("36_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "nullterm"  :subid("36_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 5
     .local string rx82_tgt
     .local int rx82_pos
@@ -1666,7 +1726,9 @@
     .local int rx82_eos
     .local int rx82_rep
     .local pmc rx82_cur
+    .local pmc rx82_debug
     (rx82_cur, rx82_pos, rx82_tgt, $I10) = self."!cursor_start"()
+    getattribute rx82_debug, rx82_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx82_cur
     .local pmc match
     .lex "$/", match
@@ -1678,7 +1740,9 @@
     substr rx82_tgt, rx82_tgt, rx82_off
   rx82_start:
     eq $I10, 1, rx82_restart
+    if_null rx82_debug, debug_132
     rx82_cur."!cursor_debug"("START ", "nullterm")
+  debug_132:
     $I10 = self.'from'()
     ne $I10, -1, rxscan85_done
     goto rxscan85_scan
@@ -1694,11 +1758,15 @@
 .annotate 'line', 29
   # rx pass
     rx82_cur."!cursor_pass"(rx82_pos, "nullterm")
+    if_null rx82_debug, debug_133
     rx82_cur."!cursor_debug"("PASS  ", "nullterm", " at pos=", rx82_pos)
+  debug_133:
     .return (rx82_cur)
   rx82_restart:
 .annotate 'line', 5
+    if_null rx82_debug, debug_134
     rx82_cur."!cursor_debug"("NEXT ", "nullterm")
+  debug_134:
   rx82_fail:
     (rx82_rep, rx82_pos, $I10, $P10) = rx82_cur."!mark_fail"(0)
     lt rx82_pos, -1, rx82_done
@@ -1706,14 +1774,16 @@
     jump $I10
   rx82_done:
     rx82_cur."!cursor_fail"()
+    if_null rx82_debug, debug_135
     rx82_cur."!cursor_debug"("FAIL  ", "nullterm")
+  debug_135:
     .return (rx82_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm"  :subid("37_1280467467.13603") :method
+.sub "!PREFIX__nullterm"  :subid("37_1282016519.8364") :method
 .annotate 'line', 5
     new $P84, "ResizablePMCArray"
     push $P84, ""
@@ -1722,7 +1792,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm_alt"  :subid("38_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "nullterm_alt"  :subid("38_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 5
     .local string rx87_tgt
     .local int rx87_pos
@@ -1730,7 +1800,9 @@
     .local int rx87_eos
     .local int rx87_rep
     .local pmc rx87_cur
+    .local pmc rx87_debug
     (rx87_cur, rx87_pos, rx87_tgt, $I10) = self."!cursor_start"()
+    getattribute rx87_debug, rx87_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx87_cur
     .local pmc match
     .lex "$/", match
@@ -1742,7 +1814,9 @@
     substr rx87_tgt, rx87_tgt, rx87_off
   rx87_start:
     eq $I10, 1, rx87_restart
+    if_null rx87_debug, debug_136
     rx87_cur."!cursor_debug"("START ", "nullterm_alt")
+  debug_136:
     $I10 = self.'from'()
     ne $I10, -1, rxscan91_done
     goto rxscan91_scan
@@ -1765,11 +1839,15 @@
     rx87_pos = $P10."pos"()
   # rx pass
     rx87_cur."!cursor_pass"(rx87_pos, "nullterm_alt")
+    if_null rx87_debug, debug_137
     rx87_cur."!cursor_debug"("PASS  ", "nullterm_alt", " at pos=", rx87_pos)
+  debug_137:
     .return (rx87_cur)
   rx87_restart:
 .annotate 'line', 5
+    if_null rx87_debug, debug_138
     rx87_cur."!cursor_debug"("NEXT ", "nullterm_alt")
+  debug_138:
   rx87_fail:
     (rx87_rep, rx87_pos, $I10, $P10) = rx87_cur."!mark_fail"(0)
     lt rx87_pos, -1, rx87_done
@@ -1777,14 +1855,16 @@
     jump $I10
   rx87_done:
     rx87_cur."!cursor_fail"()
+    if_null rx87_debug, debug_139
     rx87_cur."!cursor_debug"("FAIL  ", "nullterm_alt")
+  debug_139:
     .return (rx87_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt"  :subid("39_1280467467.13603") :method
+.sub "!PREFIX__nullterm_alt"  :subid("39_1282016519.8364") :method
 .annotate 'line', 5
     $P89 = self."!PREFIX__!subrule"("nullterm", "")
     new $P90, "ResizablePMCArray"
@@ -1795,7 +1875,7 @@
 
 .namespace ["HLL";"Grammar"]
 .include "except_types.pasm"
-.sub "nulltermish"  :subid("40_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "nulltermish"  :subid("40_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     new $P94, 'ExceptionHandler'
     set_addr $P94, control_93
@@ -1822,7 +1902,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_delimited"  :subid("41_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_delimited"  :subid("41_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx103_tgt
     .local int rx103_pos
@@ -1830,8 +1910,10 @@
     .local int rx103_eos
     .local int rx103_rep
     .local pmc rx103_cur
+    .local pmc rx103_debug
     (rx103_cur, rx103_pos, rx103_tgt, $I10) = self."!cursor_start"()
     rx103_cur."!cursor_caparray"("quote_atom")
+    getattribute rx103_debug, rx103_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx103_cur
     .local pmc match
     .lex "$/", match
@@ -1843,7 +1925,9 @@
     substr rx103_tgt, rx103_tgt, rx103_off
   rx103_start:
     eq $I10, 1, rx103_restart
+    if_null rx103_debug, debug_140
     rx103_cur."!cursor_debug"("START ", "quote_delimited")
+  debug_140:
     $I10 = self.'from'()
     ne $I10, -1, rxscan107_done
     goto rxscan107_scan
@@ -1897,11 +1981,15 @@
 .annotate 'line', 36
   # rx pass
     rx103_cur."!cursor_pass"(rx103_pos, "quote_delimited")
+    if_null rx103_debug, debug_141
     rx103_cur."!cursor_debug"("PASS  ", "quote_delimited", " at pos=", rx103_pos)
+  debug_141:
     .return (rx103_cur)
   rx103_restart:
 .annotate 'line', 33
+    if_null rx103_debug, debug_142
     rx103_cur."!cursor_debug"("NEXT ", "quote_delimited")
+  debug_142:
   rx103_fail:
     (rx103_rep, rx103_pos, $I10, $P10) = rx103_cur."!mark_fail"(0)
     lt rx103_pos, -1, rx103_done
@@ -1909,14 +1997,16 @@
     jump $I10
   rx103_done:
     rx103_cur."!cursor_fail"()
+    if_null rx103_debug, debug_143
     rx103_cur."!cursor_debug"("FAIL  ", "quote_delimited")
+  debug_143:
     .return (rx103_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited"  :subid("42_1280467467.13603") :method
+.sub "!PREFIX__quote_delimited"  :subid("42_1282016519.8364") :method
 .annotate 'line', 33
     $P105 = self."!PREFIX__!subrule"("starter", "")
     new $P106, "ResizablePMCArray"
@@ -1926,7 +2016,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_atom"  :subid("43_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_atom"  :subid("43_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx111_tgt
     .local int rx111_pos
@@ -1934,7 +2024,9 @@
     .local int rx111_eos
     .local int rx111_rep
     .local pmc rx111_cur
+    .local pmc rx111_debug
     (rx111_cur, rx111_pos, rx111_tgt, $I10) = self."!cursor_start"()
+    getattribute rx111_debug, rx111_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx111_cur
     .local pmc match
     .lex "$/", match
@@ -1946,7 +2038,9 @@
     substr rx111_tgt, rx111_tgt, rx111_off
   rx111_start:
     eq $I10, 1, rx111_restart
+    if_null rx111_debug, debug_144
     rx111_cur."!cursor_debug"("START ", "quote_atom")
+  debug_144:
     $I10 = self.'from'()
     ne $I10, -1, rxscan114_done
     goto rxscan114_scan
@@ -2004,11 +2098,15 @@
 .annotate 'line', 40
   # rx pass
     rx111_cur."!cursor_pass"(rx111_pos, "quote_atom")
+    if_null rx111_debug, debug_145
     rx111_cur."!cursor_debug"("PASS  ", "quote_atom", " at pos=", rx111_pos)
+  debug_145:
     .return (rx111_cur)
   rx111_restart:
 .annotate 'line', 33
+    if_null rx111_debug, debug_146
     rx111_cur."!cursor_debug"("NEXT ", "quote_atom")
+  debug_146:
   rx111_fail:
     (rx111_rep, rx111_pos, $I10, $P10) = rx111_cur."!mark_fail"(0)
     lt rx111_pos, -1, rx111_done
@@ -2016,14 +2114,16 @@
     jump $I10
   rx111_done:
     rx111_cur."!cursor_fail"()
+    if_null rx111_debug, debug_147
     rx111_cur."!cursor_debug"("FAIL  ", "quote_atom")
+  debug_147:
     .return (rx111_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom"  :subid("44_1280467467.13603") :method
+.sub "!PREFIX__quote_atom"  :subid("44_1282016519.8364") :method
 .annotate 'line', 33
     new $P113, "ResizablePMCArray"
     push $P113, ""
@@ -2032,7 +2132,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decint"  :subid("45_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "decint"  :subid("45_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx120_tgt
     .local int rx120_pos
@@ -2040,7 +2140,9 @@
     .local int rx120_eos
     .local int rx120_rep
     .local pmc rx120_cur
+    .local pmc rx120_debug
     (rx120_cur, rx120_pos, rx120_tgt, $I10) = self."!cursor_start"()
+    getattribute rx120_debug, rx120_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx120_cur
     .local pmc match
     .lex "$/", match
@@ -2052,7 +2154,9 @@
     substr rx120_tgt, rx120_tgt, rx120_off
   rx120_start:
     eq $I10, 1, rx120_restart
+    if_null rx120_debug, debug_148
     rx120_cur."!cursor_debug"("START ", "decint")
+  debug_148:
     $I10 = self.'from'()
     ne $I10, -1, rxscan123_done
     goto rxscan123_scan
@@ -2084,18 +2188,22 @@
     add $I11, rx120_pos, 1
     gt $I11, rx120_eos, rx120_fail
     sub $I11, rx120_pos, rx120_off
-    substr $S10, rx120_tgt, $I11, 1
-    ne $S10, "_", rx120_fail
+    ord $I11, rx120_tgt, $I11
+    ne $I11, 95, rx120_fail
     add rx120_pos, 1
     goto rxquantr124_loop
   rxquantr124_done:
   # rx pass
     rx120_cur."!cursor_pass"(rx120_pos, "decint")
+    if_null rx120_debug, debug_149
     rx120_cur."!cursor_debug"("PASS  ", "decint", " at pos=", rx120_pos)
+  debug_149:
     .return (rx120_cur)
   rx120_restart:
 .annotate 'line', 33
+    if_null rx120_debug, debug_150
     rx120_cur."!cursor_debug"("NEXT ", "decint")
+  debug_150:
   rx120_fail:
     (rx120_rep, rx120_pos, $I10, $P10) = rx120_cur."!mark_fail"(0)
     lt rx120_pos, -1, rx120_done
@@ -2103,14 +2211,16 @@
     jump $I10
   rx120_done:
     rx120_cur."!cursor_fail"()
+    if_null rx120_debug, debug_151
     rx120_cur."!cursor_debug"("FAIL  ", "decint")
+  debug_151:
     .return (rx120_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint"  :subid("46_1280467467.13603") :method
+.sub "!PREFIX__decint"  :subid("46_1282016519.8364") :method
 .annotate 'line', 33
     new $P122, "ResizablePMCArray"
     push $P122, ""
@@ -2119,7 +2229,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decints"  :subid("47_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "decints"  :subid("47_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx126_tgt
     .local int rx126_pos
@@ -2127,8 +2237,10 @@
     .local int rx126_eos
     .local int rx126_rep
     .local pmc rx126_cur
+    .local pmc rx126_debug
     (rx126_cur, rx126_pos, rx126_tgt, $I10) = self."!cursor_start"()
     rx126_cur."!cursor_caparray"("decint")
+    getattribute rx126_debug, rx126_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx126_cur
     .local pmc match
     .lex "$/", match
@@ -2140,7 +2252,9 @@
     substr rx126_tgt, rx126_tgt, rx126_off
   rx126_start:
     eq $I10, 1, rx126_restart
+    if_null rx126_debug, debug_152
     rx126_cur."!cursor_debug"("START ", "decints")
+  debug_152:
     $I10 = self.'from'()
     ne $I10, -1, rxscan129_done
     goto rxscan129_scan
@@ -2183,18 +2297,22 @@
     add $I11, rx126_pos, 1
     gt $I11, rx126_eos, rx126_fail
     sub $I11, rx126_pos, rx126_off
-    substr $S10, rx126_tgt, $I11, 1
-    ne $S10, ",", rx126_fail
+    ord $I11, rx126_tgt, $I11
+    ne $I11, 44, rx126_fail
     add rx126_pos, 1
     goto rxquantr130_loop
   rxquantr130_done:
   # rx pass
     rx126_cur."!cursor_pass"(rx126_pos, "decints")
+    if_null rx126_debug, debug_153
     rx126_cur."!cursor_debug"("PASS  ", "decints", " at pos=", rx126_pos)
+  debug_153:
     .return (rx126_cur)
   rx126_restart:
 .annotate 'line', 33
+    if_null rx126_debug, debug_154
     rx126_cur."!cursor_debug"("NEXT ", "decints")
+  debug_154:
   rx126_fail:
     (rx126_rep, rx126_pos, $I10, $P10) = rx126_cur."!mark_fail"(0)
     lt rx126_pos, -1, rx126_done
@@ -2202,14 +2320,16 @@
     jump $I10
   rx126_done:
     rx126_cur."!cursor_fail"()
+    if_null rx126_debug, debug_155
     rx126_cur."!cursor_debug"("FAIL  ", "decints")
+  debug_155:
     .return (rx126_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decints"  :subid("48_1280467467.13603") :method
+.sub "!PREFIX__decints"  :subid("48_1282016519.8364") :method
 .annotate 'line', 33
     new $P128, "ResizablePMCArray"
     push $P128, ""
@@ -2218,7 +2338,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexint"  :subid("49_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "hexint"  :subid("49_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx132_tgt
     .local int rx132_pos
@@ -2226,7 +2346,9 @@
     .local int rx132_eos
     .local int rx132_rep
     .local pmc rx132_cur
+    .local pmc rx132_debug
     (rx132_cur, rx132_pos, rx132_tgt, $I10) = self."!cursor_start"()
+    getattribute rx132_debug, rx132_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx132_cur
     .local pmc match
     .lex "$/", match
@@ -2238,7 +2360,9 @@
     substr rx132_tgt, rx132_tgt, rx132_off
   rx132_start:
     eq $I10, 1, rx132_restart
+    if_null rx132_debug, debug_156
     rx132_cur."!cursor_debug"("START ", "hexint")
+  debug_156:
     $I10 = self.'from'()
     ne $I10, -1, rxscan135_done
     goto rxscan135_scan
@@ -2281,18 +2405,22 @@
     add $I11, rx132_pos, 1
     gt $I11, rx132_eos, rx132_fail
     sub $I11, rx132_pos, rx132_off
-    substr $S10, rx132_tgt, $I11, 1
-    ne $S10, "_", rx132_fail
+    ord $I11, rx132_tgt, $I11
+    ne $I11, 95, rx132_fail
     add rx132_pos, 1
     goto rxquantr136_loop
   rxquantr136_done:
   # rx pass
     rx132_cur."!cursor_pass"(rx132_pos, "hexint")
+    if_null rx132_debug, debug_157
     rx132_cur."!cursor_debug"("PASS  ", "hexint", " at pos=", rx132_pos)
+  debug_157:
     .return (rx132_cur)
   rx132_restart:
 .annotate 'line', 33
+    if_null rx132_debug, debug_158
     rx132_cur."!cursor_debug"("NEXT ", "hexint")
+  debug_158:
   rx132_fail:
     (rx132_rep, rx132_pos, $I10, $P10) = rx132_cur."!mark_fail"(0)
     lt rx132_pos, -1, rx132_done
@@ -2300,14 +2428,16 @@
     jump $I10
   rx132_done:
     rx132_cur."!cursor_fail"()
+    if_null rx132_debug, debug_159
     rx132_cur."!cursor_debug"("FAIL  ", "hexint")
+  debug_159:
     .return (rx132_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint"  :subid("50_1280467467.13603") :method
+.sub "!PREFIX__hexint"  :subid("50_1282016519.8364") :method
 .annotate 'line', 33
     new $P134, "ResizablePMCArray"
     push $P134, ""
@@ -2316,7 +2446,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexints"  :subid("51_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "hexints"  :subid("51_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx139_tgt
     .local int rx139_pos
@@ -2324,8 +2454,10 @@
     .local int rx139_eos
     .local int rx139_rep
     .local pmc rx139_cur
+    .local pmc rx139_debug
     (rx139_cur, rx139_pos, rx139_tgt, $I10) = self."!cursor_start"()
     rx139_cur."!cursor_caparray"("hexint")
+    getattribute rx139_debug, rx139_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx139_cur
     .local pmc match
     .lex "$/", match
@@ -2337,7 +2469,9 @@
     substr rx139_tgt, rx139_tgt, rx139_off
   rx139_start:
     eq $I10, 1, rx139_restart
+    if_null rx139_debug, debug_160
     rx139_cur."!cursor_debug"("START ", "hexints")
+  debug_160:
     $I10 = self.'from'()
     ne $I10, -1, rxscan142_done
     goto rxscan142_scan
@@ -2380,18 +2514,22 @@
     add $I11, rx139_pos, 1
     gt $I11, rx139_eos, rx139_fail
     sub $I11, rx139_pos, rx139_off
-    substr $S10, rx139_tgt, $I11, 1
-    ne $S10, ",", rx139_fail
+    ord $I11, rx139_tgt, $I11
+    ne $I11, 44, rx139_fail
     add rx139_pos, 1
     goto rxquantr143_loop
   rxquantr143_done:
   # rx pass
     rx139_cur."!cursor_pass"(rx139_pos, "hexints")
+    if_null rx139_debug, debug_161
     rx139_cur."!cursor_debug"("PASS  ", "hexints", " at pos=", rx139_pos)
+  debug_161:
     .return (rx139_cur)
   rx139_restart:
 .annotate 'line', 33
+    if_null rx139_debug, debug_162
     rx139_cur."!cursor_debug"("NEXT ", "hexints")
+  debug_162:
   rx139_fail:
     (rx139_rep, rx139_pos, $I10, $P10) = rx139_cur."!mark_fail"(0)
     lt rx139_pos, -1, rx139_done
@@ -2399,14 +2537,16 @@
     jump $I10
   rx139_done:
     rx139_cur."!cursor_fail"()
+    if_null rx139_debug, debug_163
     rx139_cur."!cursor_debug"("FAIL  ", "hexints")
+  debug_163:
     .return (rx139_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints"  :subid("52_1280467467.13603") :method
+.sub "!PREFIX__hexints"  :subid("52_1282016519.8364") :method
 .annotate 'line', 33
     new $P141, "ResizablePMCArray"
     push $P141, ""
@@ -2415,7 +2555,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octint"  :subid("53_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "octint"  :subid("53_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx145_tgt
     .local int rx145_pos
@@ -2423,7 +2563,9 @@
     .local int rx145_eos
     .local int rx145_rep
     .local pmc rx145_cur
+    .local pmc rx145_debug
     (rx145_cur, rx145_pos, rx145_tgt, $I10) = self."!cursor_start"()
+    getattribute rx145_debug, rx145_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx145_cur
     .local pmc match
     .lex "$/", match
@@ -2435,7 +2577,9 @@
     substr rx145_tgt, rx145_tgt, rx145_off
   rx145_start:
     eq $I10, 1, rx145_restart
+    if_null rx145_debug, debug_164
     rx145_cur."!cursor_debug"("START ", "octint")
+  debug_164:
     $I10 = self.'from'()
     ne $I10, -1, rxscan148_done
     goto rxscan148_scan
@@ -2478,18 +2622,22 @@
     add $I11, rx145_pos, 1
     gt $I11, rx145_eos, rx145_fail
     sub $I11, rx145_pos, rx145_off
-    substr $S10, rx145_tgt, $I11, 1
-    ne $S10, "_", rx145_fail
+    ord $I11, rx145_tgt, $I11
+    ne $I11, 95, rx145_fail
     add rx145_pos, 1
     goto rxquantr149_loop
   rxquantr149_done:
   # rx pass
     rx145_cur."!cursor_pass"(rx145_pos, "octint")
+    if_null rx145_debug, debug_165
     rx145_cur."!cursor_debug"("PASS  ", "octint", " at pos=", rx145_pos)
+  debug_165:
     .return (rx145_cur)
   rx145_restart:
 .annotate 'line', 33
+    if_null rx145_debug, debug_166
     rx145_cur."!cursor_debug"("NEXT ", "octint")
+  debug_166:
   rx145_fail:
     (rx145_rep, rx145_pos, $I10, $P10) = rx145_cur."!mark_fail"(0)
     lt rx145_pos, -1, rx145_done
@@ -2497,14 +2645,16 @@
     jump $I10
   rx145_done:
     rx145_cur."!cursor_fail"()
+    if_null rx145_debug, debug_167
     rx145_cur."!cursor_debug"("FAIL  ", "octint")
+  debug_167:
     .return (rx145_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint"  :subid("54_1280467467.13603") :method
+.sub "!PREFIX__octint"  :subid("54_1282016519.8364") :method
 .annotate 'line', 33
     new $P147, "ResizablePMCArray"
     push $P147, ""
@@ -2513,7 +2663,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octints"  :subid("55_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "octints"  :subid("55_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx152_tgt
     .local int rx152_pos
@@ -2521,8 +2671,10 @@
     .local int rx152_eos
     .local int rx152_rep
     .local pmc rx152_cur
+    .local pmc rx152_debug
     (rx152_cur, rx152_pos, rx152_tgt, $I10) = self."!cursor_start"()
     rx152_cur."!cursor_caparray"("octint")
+    getattribute rx152_debug, rx152_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx152_cur
     .local pmc match
     .lex "$/", match
@@ -2534,7 +2686,9 @@
     substr rx152_tgt, rx152_tgt, rx152_off
   rx152_start:
     eq $I10, 1, rx152_restart
+    if_null rx152_debug, debug_168
     rx152_cur."!cursor_debug"("START ", "octints")
+  debug_168:
     $I10 = self.'from'()
     ne $I10, -1, rxscan155_done
     goto rxscan155_scan
@@ -2577,18 +2731,22 @@
     add $I11, rx152_pos, 1
     gt $I11, rx152_eos, rx152_fail
     sub $I11, rx152_pos, rx152_off
-    substr $S10, rx152_tgt, $I11, 1
-    ne $S10, ",", rx152_fail
+    ord $I11, rx152_tgt, $I11
+    ne $I11, 44, rx152_fail
     add rx152_pos, 1
     goto rxquantr156_loop
   rxquantr156_done:
   # rx pass
     rx152_cur."!cursor_pass"(rx152_pos, "octints")
+    if_null rx152_debug, debug_169
     rx152_cur."!cursor_debug"("PASS  ", "octints", " at pos=", rx152_pos)
+  debug_169:
     .return (rx152_cur)
   rx152_restart:
 .annotate 'line', 33
+    if_null rx152_debug, debug_170
     rx152_cur."!cursor_debug"("NEXT ", "octints")
+  debug_170:
   rx152_fail:
     (rx152_rep, rx152_pos, $I10, $P10) = rx152_cur."!mark_fail"(0)
     lt rx152_pos, -1, rx152_done
@@ -2596,14 +2754,16 @@
     jump $I10
   rx152_done:
     rx152_cur."!cursor_fail"()
+    if_null rx152_debug, debug_171
     rx152_cur."!cursor_debug"("FAIL  ", "octints")
+  debug_171:
     .return (rx152_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints"  :subid("56_1280467467.13603") :method
+.sub "!PREFIX__octints"  :subid("56_1282016519.8364") :method
 .annotate 'line', 33
     new $P154, "ResizablePMCArray"
     push $P154, ""
@@ -2612,7 +2772,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binint"  :subid("57_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "binint"  :subid("57_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx158_tgt
     .local int rx158_pos
@@ -2620,7 +2780,9 @@
     .local int rx158_eos
     .local int rx158_rep
     .local pmc rx158_cur
+    .local pmc rx158_debug
     (rx158_cur, rx158_pos, rx158_tgt, $I10) = self."!cursor_start"()
+    getattribute rx158_debug, rx158_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx158_cur
     .local pmc match
     .lex "$/", match
@@ -2632,7 +2794,9 @@
     substr rx158_tgt, rx158_tgt, rx158_off
   rx158_start:
     eq $I10, 1, rx158_restart
+    if_null rx158_debug, debug_172
     rx158_cur."!cursor_debug"("START ", "binint")
+  debug_172:
     $I10 = self.'from'()
     ne $I10, -1, rxscan161_done
     goto rxscan161_scan
@@ -2675,18 +2839,22 @@
     add $I11, rx158_pos, 1
     gt $I11, rx158_eos, rx158_fail
     sub $I11, rx158_pos, rx158_off
-    substr $S10, rx158_tgt, $I11, 1
-    ne $S10, "_", rx158_fail
+    ord $I11, rx158_tgt, $I11
+    ne $I11, 95, rx158_fail
     add rx158_pos, 1
     goto rxquantr162_loop
   rxquantr162_done:
   # rx pass
     rx158_cur."!cursor_pass"(rx158_pos, "binint")
+    if_null rx158_debug, debug_173
     rx158_cur."!cursor_debug"("PASS  ", "binint", " at pos=", rx158_pos)
+  debug_173:
     .return (rx158_cur)
   rx158_restart:
 .annotate 'line', 33
+    if_null rx158_debug, debug_174
     rx158_cur."!cursor_debug"("NEXT ", "binint")
+  debug_174:
   rx158_fail:
     (rx158_rep, rx158_pos, $I10, $P10) = rx158_cur."!mark_fail"(0)
     lt rx158_pos, -1, rx158_done
@@ -2694,14 +2862,16 @@
     jump $I10
   rx158_done:
     rx158_cur."!cursor_fail"()
+    if_null rx158_debug, debug_175
     rx158_cur."!cursor_debug"("FAIL  ", "binint")
+  debug_175:
     .return (rx158_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint"  :subid("58_1280467467.13603") :method
+.sub "!PREFIX__binint"  :subid("58_1282016519.8364") :method
 .annotate 'line', 33
     new $P160, "ResizablePMCArray"
     push $P160, ""
@@ -2710,7 +2880,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binints"  :subid("59_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "binints"  :subid("59_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx165_tgt
     .local int rx165_pos
@@ -2718,8 +2888,10 @@
     .local int rx165_eos
     .local int rx165_rep
     .local pmc rx165_cur
+    .local pmc rx165_debug
     (rx165_cur, rx165_pos, rx165_tgt, $I10) = self."!cursor_start"()
     rx165_cur."!cursor_caparray"("binint")
+    getattribute rx165_debug, rx165_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx165_cur
     .local pmc match
     .lex "$/", match
@@ -2731,7 +2903,9 @@
     substr rx165_tgt, rx165_tgt, rx165_off
   rx165_start:
     eq $I10, 1, rx165_restart
+    if_null rx165_debug, debug_176
     rx165_cur."!cursor_debug"("START ", "binints")
+  debug_176:
     $I10 = self.'from'()
     ne $I10, -1, rxscan168_done
     goto rxscan168_scan
@@ -2774,18 +2948,22 @@
     add $I11, rx165_pos, 1
     gt $I11, rx165_eos, rx165_fail
     sub $I11, rx165_pos, rx165_off
-    substr $S10, rx165_tgt, $I11, 1
-    ne $S10, ",", rx165_fail
+    ord $I11, rx165_tgt, $I11
+    ne $I11, 44, rx165_fail
     add rx165_pos, 1
     goto rxquantr169_loop
   rxquantr169_done:
   # rx pass
     rx165_cur."!cursor_pass"(rx165_pos, "binints")
+    if_null rx165_debug, debug_177
     rx165_cur."!cursor_debug"("PASS  ", "binints", " at pos=", rx165_pos)
+  debug_177:
     .return (rx165_cur)
   rx165_restart:
 .annotate 'line', 33
+    if_null rx165_debug, debug_178
     rx165_cur."!cursor_debug"("NEXT ", "binints")
+  debug_178:
   rx165_fail:
     (rx165_rep, rx165_pos, $I10, $P10) = rx165_cur."!mark_fail"(0)
     lt rx165_pos, -1, rx165_done
@@ -2793,14 +2971,16 @@
     jump $I10
   rx165_done:
     rx165_cur."!cursor_fail"()
+    if_null rx165_debug, debug_179
     rx165_cur."!cursor_debug"("FAIL  ", "binints")
+  debug_179:
     .return (rx165_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints"  :subid("60_1280467467.13603") :method
+.sub "!PREFIX__binints"  :subid("60_1282016519.8364") :method
 .annotate 'line', 33
     new $P167, "ResizablePMCArray"
     push $P167, ""
@@ -2809,7 +2989,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "integer"  :subid("61_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "integer"  :subid("61_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx171_tgt
     .local int rx171_pos
@@ -2817,7 +2997,9 @@
     .local int rx171_eos
     .local int rx171_rep
     .local pmc rx171_cur
+    .local pmc rx171_debug
     (rx171_cur, rx171_pos, rx171_tgt, $I10) = self."!cursor_start"()
+    getattribute rx171_debug, rx171_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx171_cur
     .local pmc match
     .lex "$/", match
@@ -2829,7 +3011,9 @@
     substr rx171_tgt, rx171_tgt, rx171_off
   rx171_start:
     eq $I10, 1, rx171_restart
+    if_null rx171_debug, debug_180
     rx171_cur."!cursor_debug"("START ", "integer")
+  debug_180:
     $I10 = self.'from'()
     ne $I10, -1, rxscan179_done
     goto rxscan179_scan
@@ -2851,8 +3035,8 @@
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
     sub $I11, rx171_pos, rx171_off
-    substr $S10, rx171_tgt, $I11, 1
-    ne $S10, "0", rx171_fail
+    ord $I11, rx171_tgt, $I11
+    ne $I11, 48, rx171_fail
     add rx171_pos, 1
   alt181_0:
     set_addr $I10, alt181_1
@@ -2861,8 +3045,8 @@
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
     sub $I11, rx171_pos, rx171_off
-    substr $S10, rx171_tgt, $I11, 1
-    ne $S10, "b", rx171_fail
+    ord $I11, rx171_tgt, $I11
+    ne $I11, 98, rx171_fail
     add rx171_pos, 1
   # rx subrule "binint" subtype=capture negate=
     rx171_cur."!cursor_pos"(rx171_pos)
@@ -2880,8 +3064,8 @@
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
     sub $I11, rx171_pos, rx171_off
-    substr $S10, rx171_tgt, $I11, 1
-    ne $S10, "o", rx171_fail
+    ord $I11, rx171_tgt, $I11
+    ne $I11, 111, rx171_fail
     add rx171_pos, 1
   # rx subrule "octint" subtype=capture negate=
     rx171_cur."!cursor_pos"(rx171_pos)
@@ -2899,8 +3083,8 @@
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
     sub $I11, rx171_pos, rx171_off
-    substr $S10, rx171_tgt, $I11, 1
-    ne $S10, "x", rx171_fail
+    ord $I11, rx171_tgt, $I11
+    ne $I11, 120, rx171_fail
     add rx171_pos, 1
   # rx subrule "hexint" subtype=capture negate=
     rx171_cur."!cursor_pos"(rx171_pos)
@@ -2916,8 +3100,8 @@
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
     sub $I11, rx171_pos, rx171_off
-    substr $S10, rx171_tgt, $I11, 1
-    ne $S10, "d", rx171_fail
+    ord $I11, rx171_tgt, $I11
+    ne $I11, 100, rx171_fail
     add rx171_pos, 1
   # rx subrule "decint" subtype=capture negate=
     rx171_cur."!cursor_pos"(rx171_pos)
@@ -2942,11 +3126,15 @@
 .annotate 'line', 60
   # rx pass
     rx171_cur."!cursor_pass"(rx171_pos, "integer")
+    if_null rx171_debug, debug_181
     rx171_cur."!cursor_debug"("PASS  ", "integer", " at pos=", rx171_pos)
+  debug_181:
     .return (rx171_cur)
   rx171_restart:
 .annotate 'line', 33
+    if_null rx171_debug, debug_182
     rx171_cur."!cursor_debug"("NEXT ", "integer")
+  debug_182:
   rx171_fail:
     (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0)
     lt rx171_pos, -1, rx171_done
@@ -2954,14 +3142,16 @@
     jump $I10
   rx171_done:
     rx171_cur."!cursor_fail"()
+    if_null rx171_debug, debug_183
     rx171_cur."!cursor_debug"("FAIL  ", "integer")
+  debug_183:
     .return (rx171_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer"  :subid("62_1280467467.13603") :method
+.sub "!PREFIX__integer"  :subid("62_1282016519.8364") :method
 .annotate 'line', 33
     $P173 = self."!PREFIX__!subrule"("decint", "")
     $P174 = self."!PREFIX__!subrule"("decint", "0d")
@@ -2979,7 +3169,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "dec_number"  :subid("63_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "dec_number"  :subid("63_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx183_tgt
     .local int rx183_pos
@@ -2987,8 +3177,10 @@
     .local int rx183_eos
     .local int rx183_rep
     .local pmc rx183_cur
+    .local pmc rx183_debug
     (rx183_cur, rx183_pos, rx183_tgt, $I10) = self."!cursor_start"()
     rx183_cur."!cursor_caparray"("escale")
+    getattribute rx183_debug, rx183_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx183_cur
     .local pmc match
     .lex "$/", match
@@ -3000,7 +3192,9 @@
     substr rx183_tgt, rx183_tgt, rx183_off
   rx183_start:
     eq $I10, 1, rx183_restart
+    if_null rx183_debug, debug_184
     rx183_cur."!cursor_debug"("START ", "dec_number")
+  debug_184:
     $I10 = self.'from'()
     ne $I10, -1, rxscan186_done
     goto rxscan186_scan
@@ -3025,8 +3219,8 @@
     add $I11, rx183_pos, 1
     gt $I11, rx183_eos, rx183_fail
     sub $I11, rx183_pos, rx183_off
-    substr $S10, rx183_tgt, $I11, 1
-    ne $S10, ".", rx183_fail
+    ord $I11, rx183_tgt, $I11
+    ne $I11, 46, rx183_fail
     add rx183_pos, 1
   # rx charclass_q d r 1..-1
     sub $I10, rx183_pos, rx183_off
@@ -3083,8 +3277,8 @@
     add $I11, rx183_pos, 1
     gt $I11, rx183_eos, rx183_fail
     sub $I11, rx183_pos, rx183_off
-    substr $S10, rx183_tgt, $I11, 1
-    ne $S10, ".", rx183_fail
+    ord $I11, rx183_tgt, $I11
+    ne $I11, 46, rx183_fail
     add rx183_pos, 1
   # rx charclass_q d r 1..-1
     sub $I10, rx183_pos, rx183_off
@@ -3157,11 +3351,15 @@
 .annotate 'line', 71
   # rx pass
     rx183_cur."!cursor_pass"(rx183_pos, "dec_number")
+    if_null rx183_debug, debug_185
     rx183_cur."!cursor_debug"("PASS  ", "dec_number", " at pos=", rx183_pos)
+  debug_185:
     .return (rx183_cur)
   rx183_restart:
 .annotate 'line', 33
+    if_null rx183_debug, debug_186
     rx183_cur."!cursor_debug"("NEXT ", "dec_number")
+  debug_186:
   rx183_fail:
     (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
     lt rx183_pos, -1, rx183_done
@@ -3169,14 +3367,16 @@
     jump $I10
   rx183_done:
     rx183_cur."!cursor_fail"()
+    if_null rx183_debug, debug_187
     rx183_cur."!cursor_debug"("FAIL  ", "dec_number")
+  debug_187:
     .return (rx183_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number"  :subid("64_1280467467.13603") :method
+.sub "!PREFIX__dec_number"  :subid("64_1282016519.8364") :method
 .annotate 'line', 33
     new $P185, "ResizablePMCArray"
     push $P185, ""
@@ -3187,7 +3387,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "escale"  :subid("65_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "escale"  :subid("65_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx196_tgt
     .local int rx196_pos
@@ -3195,7 +3395,9 @@
     .local int rx196_eos
     .local int rx196_rep
     .local pmc rx196_cur
+    .local pmc rx196_debug
     (rx196_cur, rx196_pos, rx196_tgt, $I10) = self."!cursor_start"()
+    getattribute rx196_debug, rx196_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx196_cur
     .local pmc match
     .lex "$/", match
@@ -3207,7 +3409,9 @@
     substr rx196_tgt, rx196_tgt, rx196_off
   rx196_start:
     eq $I10, 1, rx196_restart
+    if_null rx196_debug, debug_188
     rx196_cur."!cursor_debug"("START ", "escale")
+  debug_188:
     $I10 = self.'from'()
     ne $I10, -1, rxscan199_done
     goto rxscan199_scan
@@ -3250,11 +3454,15 @@
     add rx196_pos, rx196_off, $I11
   # rx pass
     rx196_cur."!cursor_pass"(rx196_pos, "escale")
+    if_null rx196_debug, debug_189
     rx196_cur."!cursor_debug"("PASS  ", "escale", " at pos=", rx196_pos)
+  debug_189:
     .return (rx196_cur)
   rx196_restart:
 .annotate 'line', 33
+    if_null rx196_debug, debug_190
     rx196_cur."!cursor_debug"("NEXT ", "escale")
+  debug_190:
   rx196_fail:
     (rx196_rep, rx196_pos, $I10, $P10) = rx196_cur."!mark_fail"(0)
     lt rx196_pos, -1, rx196_done
@@ -3262,14 +3470,16 @@
     jump $I10
   rx196_done:
     rx196_cur."!cursor_fail"()
+    if_null rx196_debug, debug_191
     rx196_cur."!cursor_debug"("FAIL  ", "escale")
+  debug_191:
     .return (rx196_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale"  :subid("66_1280467467.13603") :method
+.sub "!PREFIX__escale"  :subid("66_1282016519.8364") :method
 .annotate 'line', 33
     new $P198, "ResizablePMCArray"
     push $P198, "e"
@@ -3279,7 +3489,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape"  :subid("67_1280467467.13603") :method
+.sub "quote_escape"  :subid("67_1282016519.8364") :method
 .annotate 'line', 79
     $P202 = self."!protoregex"("quote_escape")
     .return ($P202)
@@ -3287,7 +3497,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape"  :subid("68_1280467467.13603") :method
+.sub "!PREFIX__quote_escape"  :subid("68_1282016519.8364") :method
 .annotate 'line', 79
     $P204 = self."!PREFIX__!protoregex"("quote_escape")
     .return ($P204)
@@ -3295,7 +3505,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>"  :subid("69_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<backslash>"  :subid("69_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx206_tgt
     .local int rx206_pos
@@ -3303,7 +3513,9 @@
     .local int rx206_eos
     .local int rx206_rep
     .local pmc rx206_cur
+    .local pmc rx206_debug
     (rx206_cur, rx206_pos, rx206_tgt, $I10) = self."!cursor_start"()
+    getattribute rx206_debug, rx206_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx206_cur
     .local pmc match
     .lex "$/", match
@@ -3315,7 +3527,9 @@
     substr rx206_tgt, rx206_tgt, rx206_off
   rx206_start:
     eq $I10, 1, rx206_restart
+    if_null rx206_debug, debug_192
     rx206_cur."!cursor_debug"("START ", "quote_escape:sym<backslash>")
+  debug_192:
     $I10 = self.'from'()
     ne $I10, -1, rxscan209_done
     goto rxscan209_scan
@@ -3342,11 +3556,15 @@
     unless $P10, rx206_fail
   # rx pass
     rx206_cur."!cursor_pass"(rx206_pos, "quote_escape:sym<backslash>")
+    if_null rx206_debug, debug_193
     rx206_cur."!cursor_debug"("PASS  ", "quote_escape:sym<backslash>", " at pos=", rx206_pos)
+  debug_193:
     .return (rx206_cur)
   rx206_restart:
 .annotate 'line', 33
+    if_null rx206_debug, debug_194
     rx206_cur."!cursor_debug"("NEXT ", "quote_escape:sym<backslash>")
+  debug_194:
   rx206_fail:
     (rx206_rep, rx206_pos, $I10, $P10) = rx206_cur."!mark_fail"(0)
     lt rx206_pos, -1, rx206_done
@@ -3354,14 +3572,16 @@
     jump $I10
   rx206_done:
     rx206_cur."!cursor_fail"()
+    if_null rx206_debug, debug_195
     rx206_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<backslash>")
+  debug_195:
     .return (rx206_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1282016519.8364") :method
 .annotate 'line', 33
     new $P208, "ResizablePMCArray"
     push $P208, "\\\\"
@@ -3370,7 +3590,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>"  :subid("71_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<stopper>"  :subid("71_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx211_tgt
     .local int rx211_pos
@@ -3378,7 +3598,9 @@
     .local int rx211_eos
     .local int rx211_rep
     .local pmc rx211_cur
+    .local pmc rx211_debug
     (rx211_cur, rx211_pos, rx211_tgt, $I10) = self."!cursor_start"()
+    getattribute rx211_debug, rx211_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx211_cur
     .local pmc match
     .lex "$/", match
@@ -3390,7 +3612,9 @@
     substr rx211_tgt, rx211_tgt, rx211_off
   rx211_start:
     eq $I10, 1, rx211_restart
+    if_null rx211_debug, debug_196
     rx211_cur."!cursor_debug"("START ", "quote_escape:sym<stopper>")
+  debug_196:
     $I10 = self.'from'()
     ne $I10, -1, rxscan214_done
     goto rxscan214_scan
@@ -3408,8 +3632,8 @@
     add $I11, rx211_pos, 1
     gt $I11, rx211_eos, rx211_fail
     sub $I11, rx211_pos, rx211_off
-    substr $S10, rx211_tgt, $I11, 1
-    ne $S10, "\\", rx211_fail
+    ord $I11, rx211_tgt, $I11
+    ne $I11, 92, rx211_fail
     add rx211_pos, 1
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx211_cur."!cursor_pos"(rx211_pos)
@@ -3424,11 +3648,15 @@
     rx211_pos = $P10."pos"()
   # rx pass
     rx211_cur."!cursor_pass"(rx211_pos, "quote_escape:sym<stopper>")
+    if_null rx211_debug, debug_197
     rx211_cur."!cursor_debug"("PASS  ", "quote_escape:sym<stopper>", " at pos=", rx211_pos)
+  debug_197:
     .return (rx211_cur)
   rx211_restart:
 .annotate 'line', 33
+    if_null rx211_debug, debug_198
     rx211_cur."!cursor_debug"("NEXT ", "quote_escape:sym<stopper>")
+  debug_198:
   rx211_fail:
     (rx211_rep, rx211_pos, $I10, $P10) = rx211_cur."!mark_fail"(0)
     lt rx211_pos, -1, rx211_done
@@ -3436,14 +3664,16 @@
     jump $I10
   rx211_done:
     rx211_cur."!cursor_fail"()
+    if_null rx211_debug, debug_199
     rx211_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<stopper>")
+  debug_199:
     .return (rx211_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1282016519.8364") :method
 .annotate 'line', 33
     new $P213, "ResizablePMCArray"
     push $P213, "\\"
@@ -3452,7 +3682,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>"  :subid("73_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<bs>"  :subid("73_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx216_tgt
     .local int rx216_pos
@@ -3460,7 +3690,9 @@
     .local int rx216_eos
     .local int rx216_rep
     .local pmc rx216_cur
+    .local pmc rx216_debug
     (rx216_cur, rx216_pos, rx216_tgt, $I10) = self."!cursor_start"()
+    getattribute rx216_debug, rx216_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx216_cur
     .local pmc match
     .lex "$/", match
@@ -3472,7 +3704,9 @@
     substr rx216_tgt, rx216_tgt, rx216_off
   rx216_start:
     eq $I10, 1, rx216_restart
+    if_null rx216_debug, debug_200
     rx216_cur."!cursor_debug"("START ", "quote_escape:sym<bs>")
+  debug_200:
     $I10 = self.'from'()
     ne $I10, -1, rxscan219_done
     goto rxscan219_scan
@@ -3499,11 +3733,15 @@
     unless $P10, rx216_fail
   # rx pass
     rx216_cur."!cursor_pass"(rx216_pos, "quote_escape:sym<bs>")
+    if_null rx216_debug, debug_201
     rx216_cur."!cursor_debug"("PASS  ", "quote_escape:sym<bs>", " at pos=", rx216_pos)
+  debug_201:
     .return (rx216_cur)
   rx216_restart:
 .annotate 'line', 33
+    if_null rx216_debug, debug_202
     rx216_cur."!cursor_debug"("NEXT ", "quote_escape:sym<bs>")
+  debug_202:
   rx216_fail:
     (rx216_rep, rx216_pos, $I10, $P10) = rx216_cur."!mark_fail"(0)
     lt rx216_pos, -1, rx216_done
@@ -3511,14 +3749,16 @@
     jump $I10
   rx216_done:
     rx216_cur."!cursor_fail"()
+    if_null rx216_debug, debug_203
     rx216_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<bs>")
+  debug_203:
     .return (rx216_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1282016519.8364") :method
 .annotate 'line', 33
     new $P218, "ResizablePMCArray"
     push $P218, "\\b"
@@ -3527,7 +3767,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>"  :subid("75_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<nl>"  :subid("75_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx221_tgt
     .local int rx221_pos
@@ -3535,7 +3775,9 @@
     .local int rx221_eos
     .local int rx221_rep
     .local pmc rx221_cur
+    .local pmc rx221_debug
     (rx221_cur, rx221_pos, rx221_tgt, $I10) = self."!cursor_start"()
+    getattribute rx221_debug, rx221_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx221_cur
     .local pmc match
     .lex "$/", match
@@ -3547,7 +3789,9 @@
     substr rx221_tgt, rx221_tgt, rx221_off
   rx221_start:
     eq $I10, 1, rx221_restart
+    if_null rx221_debug, debug_204
     rx221_cur."!cursor_debug"("START ", "quote_escape:sym<nl>")
+  debug_204:
     $I10 = self.'from'()
     ne $I10, -1, rxscan224_done
     goto rxscan224_scan
@@ -3574,11 +3818,15 @@
     unless $P10, rx221_fail
   # rx pass
     rx221_cur."!cursor_pass"(rx221_pos, "quote_escape:sym<nl>")
+    if_null rx221_debug, debug_205
     rx221_cur."!cursor_debug"("PASS  ", "quote_escape:sym<nl>", " at pos=", rx221_pos)
+  debug_205:
     .return (rx221_cur)
   rx221_restart:
 .annotate 'line', 33
+    if_null rx221_debug, debug_206
     rx221_cur."!cursor_debug"("NEXT ", "quote_escape:sym<nl>")
+  debug_206:
   rx221_fail:
     (rx221_rep, rx221_pos, $I10, $P10) = rx221_cur."!mark_fail"(0)
     lt rx221_pos, -1, rx221_done
@@ -3586,14 +3834,16 @@
     jump $I10
   rx221_done:
     rx221_cur."!cursor_fail"()
+    if_null rx221_debug, debug_207
     rx221_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<nl>")
+  debug_207:
     .return (rx221_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1282016519.8364") :method
 .annotate 'line', 33
     new $P223, "ResizablePMCArray"
     push $P223, "\\n"
@@ -3602,7 +3852,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>"  :subid("77_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<cr>"  :subid("77_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx226_tgt
     .local int rx226_pos
@@ -3610,7 +3860,9 @@
     .local int rx226_eos
     .local int rx226_rep
     .local pmc rx226_cur
+    .local pmc rx226_debug
     (rx226_cur, rx226_pos, rx226_tgt, $I10) = self."!cursor_start"()
+    getattribute rx226_debug, rx226_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx226_cur
     .local pmc match
     .lex "$/", match
@@ -3622,7 +3874,9 @@
     substr rx226_tgt, rx226_tgt, rx226_off
   rx226_start:
     eq $I10, 1, rx226_restart
+    if_null rx226_debug, debug_208
     rx226_cur."!cursor_debug"("START ", "quote_escape:sym<cr>")
+  debug_208:
     $I10 = self.'from'()
     ne $I10, -1, rxscan229_done
     goto rxscan229_scan
@@ -3649,11 +3903,15 @@
     unless $P10, rx226_fail
   # rx pass
     rx226_cur."!cursor_pass"(rx226_pos, "quote_escape:sym<cr>")
+    if_null rx226_debug, debug_209
     rx226_cur."!cursor_debug"("PASS  ", "quote_escape:sym<cr>", " at pos=", rx226_pos)
+  debug_209:
     .return (rx226_cur)
   rx226_restart:
 .annotate 'line', 33
+    if_null rx226_debug, debug_210
     rx226_cur."!cursor_debug"("NEXT ", "quote_escape:sym<cr>")
+  debug_210:
   rx226_fail:
     (rx226_rep, rx226_pos, $I10, $P10) = rx226_cur."!mark_fail"(0)
     lt rx226_pos, -1, rx226_done
@@ -3661,14 +3919,16 @@
     jump $I10
   rx226_done:
     rx226_cur."!cursor_fail"()
+    if_null rx226_debug, debug_211
     rx226_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<cr>")
+  debug_211:
     .return (rx226_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1282016519.8364") :method
 .annotate 'line', 33
     new $P228, "ResizablePMCArray"
     push $P228, "\\r"
@@ -3677,7 +3937,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>"  :subid("79_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<tab>"  :subid("79_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx231_tgt
     .local int rx231_pos
@@ -3685,7 +3945,9 @@
     .local int rx231_eos
     .local int rx231_rep
     .local pmc rx231_cur
+    .local pmc rx231_debug
     (rx231_cur, rx231_pos, rx231_tgt, $I10) = self."!cursor_start"()
+    getattribute rx231_debug, rx231_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx231_cur
     .local pmc match
     .lex "$/", match
@@ -3697,7 +3959,9 @@
     substr rx231_tgt, rx231_tgt, rx231_off
   rx231_start:
     eq $I10, 1, rx231_restart
+    if_null rx231_debug, debug_212
     rx231_cur."!cursor_debug"("START ", "quote_escape:sym<tab>")
+  debug_212:
     $I10 = self.'from'()
     ne $I10, -1, rxscan234_done
     goto rxscan234_scan
@@ -3724,11 +3988,15 @@
     unless $P10, rx231_fail
   # rx pass
     rx231_cur."!cursor_pass"(rx231_pos, "quote_escape:sym<tab>")
+    if_null rx231_debug, debug_213
     rx231_cur."!cursor_debug"("PASS  ", "quote_escape:sym<tab>", " at pos=", rx231_pos)
+  debug_213:
     .return (rx231_cur)
   rx231_restart:
 .annotate 'line', 33
+    if_null rx231_debug, debug_214
     rx231_cur."!cursor_debug"("NEXT ", "quote_escape:sym<tab>")
+  debug_214:
   rx231_fail:
     (rx231_rep, rx231_pos, $I10, $P10) = rx231_cur."!mark_fail"(0)
     lt rx231_pos, -1, rx231_done
@@ -3736,14 +4004,16 @@
     jump $I10
   rx231_done:
     rx231_cur."!cursor_fail"()
+    if_null rx231_debug, debug_215
     rx231_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<tab>")
+  debug_215:
     .return (rx231_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1282016519.8364") :method
 .annotate 'line', 33
     new $P233, "ResizablePMCArray"
     push $P233, "\\t"
@@ -3752,7 +4022,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<ff>"  :subid("81_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<ff>"  :subid("81_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx236_tgt
     .local int rx236_pos
@@ -3760,7 +4030,9 @@
     .local int rx236_eos
     .local int rx236_rep
     .local pmc rx236_cur
+    .local pmc rx236_debug
     (rx236_cur, rx236_pos, rx236_tgt, $I10) = self."!cursor_start"()
+    getattribute rx236_debug, rx236_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx236_cur
     .local pmc match
     .lex "$/", match
@@ -3772,7 +4044,9 @@
     substr rx236_tgt, rx236_tgt, rx236_off
   rx236_start:
     eq $I10, 1, rx236_restart
+    if_null rx236_debug, debug_216
     rx236_cur."!cursor_debug"("START ", "quote_escape:sym<ff>")
+  debug_216:
     $I10 = self.'from'()
     ne $I10, -1, rxscan239_done
     goto rxscan239_scan
@@ -3799,11 +4073,15 @@
     unless $P10, rx236_fail
   # rx pass
     rx236_cur."!cursor_pass"(rx236_pos, "quote_escape:sym<ff>")
+    if_null rx236_debug, debug_217
     rx236_cur."!cursor_debug"("PASS  ", "quote_escape:sym<ff>", " at pos=", rx236_pos)
+  debug_217:
     .return (rx236_cur)
   rx236_restart:
 .annotate 'line', 33
+    if_null rx236_debug, debug_218
     rx236_cur."!cursor_debug"("NEXT ", "quote_escape:sym<ff>")
+  debug_218:
   rx236_fail:
     (rx236_rep, rx236_pos, $I10, $P10) = rx236_cur."!mark_fail"(0)
     lt rx236_pos, -1, rx236_done
@@ -3811,14 +4089,16 @@
     jump $I10
   rx236_done:
     rx236_cur."!cursor_fail"()
+    if_null rx236_debug, debug_219
     rx236_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<ff>")
+  debug_219:
     .return (rx236_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1282016519.8364") :method
 .annotate 'line', 33
     new $P238, "ResizablePMCArray"
     push $P238, "\\f"
@@ -3827,7 +4107,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<esc>"  :subid("83_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<esc>"  :subid("83_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx241_tgt
     .local int rx241_pos
@@ -3835,7 +4115,9 @@
     .local int rx241_eos
     .local int rx241_rep
     .local pmc rx241_cur
+    .local pmc rx241_debug
     (rx241_cur, rx241_pos, rx241_tgt, $I10) = self."!cursor_start"()
+    getattribute rx241_debug, rx241_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx241_cur
     .local pmc match
     .lex "$/", match
@@ -3847,7 +4129,9 @@
     substr rx241_tgt, rx241_tgt, rx241_off
   rx241_start:
     eq $I10, 1, rx241_restart
+    if_null rx241_debug, debug_220
     rx241_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
+  debug_220:
     $I10 = self.'from'()
     ne $I10, -1, rxscan244_done
     goto rxscan244_scan
@@ -3874,11 +4158,15 @@
     unless $P10, rx241_fail
   # rx pass
     rx241_cur."!cursor_pass"(rx241_pos, "quote_escape:sym<esc>")
+    if_null rx241_debug, debug_221
     rx241_cur."!cursor_debug"("PASS  ", "quote_escape:sym<esc>", " at pos=", rx241_pos)
+  debug_221:
     .return (rx241_cur)
   rx241_restart:
 .annotate 'line', 33
+    if_null rx241_debug, debug_222
     rx241_cur."!cursor_debug"("NEXT ", "quote_escape:sym<esc>")
+  debug_222:
   rx241_fail:
     (rx241_rep, rx241_pos, $I10, $P10) = rx241_cur."!mark_fail"(0)
     lt rx241_pos, -1, rx241_done
@@ -3886,14 +4174,16 @@
     jump $I10
   rx241_done:
     rx241_cur."!cursor_fail"()
+    if_null rx241_debug, debug_223
     rx241_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<esc>")
+  debug_223:
     .return (rx241_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1282016519.8364") :method
 .annotate 'line', 33
     new $P243, "ResizablePMCArray"
     push $P243, "\\e"
@@ -3902,7 +4192,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>"  :subid("85_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<hex>"  :subid("85_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx246_tgt
     .local int rx246_pos
@@ -3910,7 +4200,9 @@
     .local int rx246_eos
     .local int rx246_rep
     .local pmc rx246_cur
+    .local pmc rx246_debug
     (rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"()
+    getattribute rx246_debug, rx246_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx246_cur
     .local pmc match
     .lex "$/", match
@@ -3922,7 +4214,9 @@
     substr rx246_tgt, rx246_tgt, rx246_off
   rx246_start:
     eq $I10, 1, rx246_restart
+    if_null rx246_debug, debug_224
     rx246_cur."!cursor_debug"("START ", "quote_escape:sym<hex>")
+  debug_224:
     $I10 = self.'from'()
     ne $I10, -1, rxscan249_done
     goto rxscan249_scan
@@ -3964,8 +4258,8 @@
     add $I11, rx246_pos, 1
     gt $I11, rx246_eos, rx246_fail
     sub $I11, rx246_pos, rx246_off
-    substr $S10, rx246_tgt, $I11, 1
-    ne $S10, "[", rx246_fail
+    ord $I11, rx246_tgt, $I11
+    ne $I11, 91, rx246_fail
     add rx246_pos, 1
   # rx subrule "hexints" subtype=capture negate=
     rx246_cur."!cursor_pos"(rx246_pos)
@@ -3978,18 +4272,22 @@
     add $I11, rx246_pos, 1
     gt $I11, rx246_eos, rx246_fail
     sub $I11, rx246_pos, rx246_off
-    substr $S10, rx246_tgt, $I11, 1
-    ne $S10, "]", rx246_fail
+    ord $I11, rx246_tgt, $I11
+    ne $I11, 93, rx246_fail
     add rx246_pos, 1
   alt250_end:
 .annotate 'line', 89
   # rx pass
     rx246_cur."!cursor_pass"(rx246_pos, "quote_escape:sym<hex>")
+    if_null rx246_debug, debug_225
     rx246_cur."!cursor_debug"("PASS  ", "quote_escape:sym<hex>", " at pos=", rx246_pos)
+  debug_225:
     .return (rx246_cur)
   rx246_restart:
 .annotate 'line', 33
+    if_null rx246_debug, debug_226
     rx246_cur."!cursor_debug"("NEXT ", "quote_escape:sym<hex>")
+  debug_226:
   rx246_fail:
     (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
     lt rx246_pos, -1, rx246_done
@@ -3997,14 +4295,16 @@
     jump $I10
   rx246_done:
     rx246_cur."!cursor_fail"()
+    if_null rx246_debug, debug_227
     rx246_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<hex>")
+  debug_227:
     .return (rx246_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1282016519.8364") :method
 .annotate 'line', 33
     new $P248, "ResizablePMCArray"
     push $P248, unicode:"\\x"
@@ -4013,7 +4313,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>"  :subid("87_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<oct>"  :subid("87_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx252_tgt
     .local int rx252_pos
@@ -4021,7 +4321,9 @@
     .local int rx252_eos
     .local int rx252_rep
     .local pmc rx252_cur
+    .local pmc rx252_debug
     (rx252_cur, rx252_pos, rx252_tgt, $I10) = self."!cursor_start"()
+    getattribute rx252_debug, rx252_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx252_cur
     .local pmc match
     .lex "$/", match
@@ -4033,7 +4335,9 @@
     substr rx252_tgt, rx252_tgt, rx252_off
   rx252_start:
     eq $I10, 1, rx252_restart
+    if_null rx252_debug, debug_228
     rx252_cur."!cursor_debug"("START ", "quote_escape:sym<oct>")
+  debug_228:
     $I10 = self.'from'()
     ne $I10, -1, rxscan255_done
     goto rxscan255_scan
@@ -4075,8 +4379,8 @@
     add $I11, rx252_pos, 1
     gt $I11, rx252_eos, rx252_fail
     sub $I11, rx252_pos, rx252_off
-    substr $S10, rx252_tgt, $I11, 1
-    ne $S10, "[", rx252_fail
+    ord $I11, rx252_tgt, $I11
+    ne $I11, 91, rx252_fail
     add rx252_pos, 1
   # rx subrule "octints" subtype=capture negate=
     rx252_cur."!cursor_pos"(rx252_pos)
@@ -4089,18 +4393,22 @@
     add $I11, rx252_pos, 1
     gt $I11, rx252_eos, rx252_fail
     sub $I11, rx252_pos, rx252_off
-    substr $S10, rx252_tgt, $I11, 1
-    ne $S10, "]", rx252_fail
+    ord $I11, rx252_tgt, $I11
+    ne $I11, 93, rx252_fail
     add rx252_pos, 1
   alt256_end:
 .annotate 'line', 93
   # rx pass
     rx252_cur."!cursor_pass"(rx252_pos, "quote_escape:sym<oct>")
+    if_null rx252_debug, debug_229
     rx252_cur."!cursor_debug"("PASS  ", "quote_escape:sym<oct>", " at pos=", rx252_pos)
+  debug_229:
     .return (rx252_cur)
   rx252_restart:
 .annotate 'line', 33
+    if_null rx252_debug, debug_230
     rx252_cur."!cursor_debug"("NEXT ", "quote_escape:sym<oct>")
+  debug_230:
   rx252_fail:
     (rx252_rep, rx252_pos, $I10, $P10) = rx252_cur."!mark_fail"(0)
     lt rx252_pos, -1, rx252_done
@@ -4108,14 +4416,16 @@
     jump $I10
   rx252_done:
     rx252_cur."!cursor_fail"()
+    if_null rx252_debug, debug_231
     rx252_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<oct>")
+  debug_231:
     .return (rx252_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1282016519.8364") :method
 .annotate 'line', 33
     new $P254, "ResizablePMCArray"
     push $P254, "\\o"
@@ -4124,7 +4434,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>"  :subid("89_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<chr>"  :subid("89_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx258_tgt
     .local int rx258_pos
@@ -4132,7 +4442,9 @@
     .local int rx258_eos
     .local int rx258_rep
     .local pmc rx258_cur
+    .local pmc rx258_debug
     (rx258_cur, rx258_pos, rx258_tgt, $I10) = self."!cursor_start"()
+    getattribute rx258_debug, rx258_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx258_cur
     .local pmc match
     .lex "$/", match
@@ -4144,7 +4456,9 @@
     substr rx258_tgt, rx258_tgt, rx258_off
   rx258_start:
     eq $I10, 1, rx258_restart
+    if_null rx258_debug, debug_232
     rx258_cur."!cursor_debug"("START ", "quote_escape:sym<chr>")
+  debug_232:
     $I10 = self.'from'()
     ne $I10, -1, rxscan261_done
     goto rxscan261_scan
@@ -4178,11 +4492,15 @@
     rx258_pos = $P10."pos"()
   # rx pass
     rx258_cur."!cursor_pass"(rx258_pos, "quote_escape:sym<chr>")
+    if_null rx258_debug, debug_233
     rx258_cur."!cursor_debug"("PASS  ", "quote_escape:sym<chr>", " at pos=", rx258_pos)
+  debug_233:
     .return (rx258_cur)
   rx258_restart:
 .annotate 'line', 33
+    if_null rx258_debug, debug_234
     rx258_cur."!cursor_debug"("NEXT ", "quote_escape:sym<chr>")
+  debug_234:
   rx258_fail:
     (rx258_rep, rx258_pos, $I10, $P10) = rx258_cur."!mark_fail"(0)
     lt rx258_pos, -1, rx258_done
@@ -4190,14 +4508,16 @@
     jump $I10
   rx258_done:
     rx258_cur."!cursor_fail"()
+    if_null rx258_debug, debug_235
     rx258_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<chr>")
+  debug_235:
     .return (rx258_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1282016519.8364") :method
 .annotate 'line', 33
     new $P260, "ResizablePMCArray"
     push $P260, "\\c"
@@ -4206,7 +4526,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<0>"  :subid("91_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<0>"  :subid("91_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx263_tgt
     .local int rx263_pos
@@ -4214,7 +4534,9 @@
     .local int rx263_eos
     .local int rx263_rep
     .local pmc rx263_cur
+    .local pmc rx263_debug
     (rx263_cur, rx263_pos, rx263_tgt, $I10) = self."!cursor_start"()
+    getattribute rx263_debug, rx263_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx263_cur
     .local pmc match
     .lex "$/", match
@@ -4226,7 +4548,9 @@
     substr rx263_tgt, rx263_tgt, rx263_off
   rx263_start:
     eq $I10, 1, rx263_restart
+    if_null rx263_debug, debug_236
     rx263_cur."!cursor_debug"("START ", "quote_escape:sym<0>")
+  debug_236:
     $I10 = self.'from'()
     ne $I10, -1, rxscan266_done
     goto rxscan266_scan
@@ -4244,8 +4568,8 @@
     add $I11, rx263_pos, 1
     gt $I11, rx263_eos, rx263_fail
     sub $I11, rx263_pos, rx263_off
-    substr $S10, rx263_tgt, $I11, 1
-    ne $S10, "\\", rx263_fail
+    ord $I11, rx263_tgt, $I11
+    ne $I11, 92, rx263_fail
     add rx263_pos, 1
   # rx subcapture "sym"
     set_addr $I10, rxcap_267_fail
@@ -4254,8 +4578,8 @@
     add $I11, rx263_pos, 1
     gt $I11, rx263_eos, rx263_fail
     sub $I11, rx263_pos, rx263_off
-    substr $S10, rx263_tgt, $I11, 1
-    ne $S10, "0", rx263_fail
+    ord $I11, rx263_tgt, $I11
+    ne $I11, 48, rx263_fail
     add rx263_pos, 1
     set_addr $I10, rxcap_267_fail
     ($I12, $I11) = rx263_cur."!mark_peek"($I10)
@@ -4274,11 +4598,15 @@
     unless $P10, rx263_fail
   # rx pass
     rx263_cur."!cursor_pass"(rx263_pos, "quote_escape:sym<0>")
+    if_null rx263_debug, debug_237
     rx263_cur."!cursor_debug"("PASS  ", "quote_escape:sym<0>", " at pos=", rx263_pos)
+  debug_237:
     .return (rx263_cur)
   rx263_restart:
 .annotate 'line', 33
+    if_null rx263_debug, debug_238
     rx263_cur."!cursor_debug"("NEXT ", "quote_escape:sym<0>")
+  debug_238:
   rx263_fail:
     (rx263_rep, rx263_pos, $I10, $P10) = rx263_cur."!mark_fail"(0)
     lt rx263_pos, -1, rx263_done
@@ -4286,14 +4614,16 @@
     jump $I10
   rx263_done:
     rx263_cur."!cursor_fail"()
+    if_null rx263_debug, debug_239
     rx263_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<0>")
+  debug_239:
     .return (rx263_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1282016519.8364") :method
 .annotate 'line', 33
     new $P265, "ResizablePMCArray"
     push $P265, "\\0"
@@ -4302,13 +4632,13 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<misc>"  :subid("93_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<misc>"  :subid("93_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
-    .const 'Sub' $P288 = "97_1280467467.13603" 
+    .const 'Sub' $P288 = "97_1282016519.8364" 
     capture_lex $P288
-    .const 'Sub' $P281 = "96_1280467467.13603" 
+    .const 'Sub' $P281 = "96_1282016519.8364" 
     capture_lex $P281
-    .const 'Sub' $P276 = "95_1280467467.13603" 
+    .const 'Sub' $P276 = "95_1282016519.8364" 
     capture_lex $P276
     .local string rx269_tgt
     .local int rx269_pos
@@ -4316,7 +4646,9 @@
     .local int rx269_eos
     .local int rx269_rep
     .local pmc rx269_cur
+    .local pmc rx269_debug
     (rx269_cur, rx269_pos, rx269_tgt, $I10) = self."!cursor_start"()
+    getattribute rx269_debug, rx269_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx269_cur
     .local pmc match
     .lex "$/", match
@@ -4328,7 +4660,9 @@
     substr rx269_tgt, rx269_tgt, rx269_off
   rx269_start:
     eq $I10, 1, rx269_restart
+    if_null rx269_debug, debug_240
     rx269_cur."!cursor_debug"("START ", "quote_escape:sym<misc>")
+  debug_240:
     $I10 = self.'from'()
     ne $I10, -1, rxscan272_done
     goto rxscan272_scan
@@ -4346,15 +4680,15 @@
     find_lex $P273, unicode:"$\x{a2}"
     $P274 = $P273."MATCH"()
     store_lex "$/", $P274
-    .const 'Sub' $P276 = "95_1280467467.13603" 
+    .const 'Sub' $P276 = "95_1282016519.8364" 
     capture_lex $P276
     $P277 = $P276()
   # rx literal  "\\"
     add $I11, rx269_pos, 1
     gt $I11, rx269_eos, rx269_fail
     sub $I11, rx269_pos, rx269_off
-    substr $S10, rx269_tgt, $I11, 1
-    ne $S10, "\\", rx269_fail
+    ord $I11, rx269_tgt, $I11
+    ne $I11, 92, rx269_fail
     add rx269_pos, 1
   alt278_0:
 .annotate 'line', 101
@@ -4372,7 +4706,7 @@
 .annotate 'line', 104
   # rx subrule $P281 subtype=capture negate=
     rx269_cur."!cursor_pos"(rx269_pos)
-    .const 'Sub' $P281 = "96_1280467467.13603" 
+    .const 'Sub' $P281 = "96_1282016519.8364" 
     capture_lex $P281
     $P10 = rx269_cur.$P281()
     unless $P10, rx269_fail
@@ -4406,7 +4740,7 @@
     find_lex $P285, unicode:"$\x{a2}"
     $P286 = $P285."MATCH"()
     store_lex "$/", $P286
-    .const 'Sub' $P288 = "97_1280467467.13603" 
+    .const 'Sub' $P288 = "97_1282016519.8364" 
     capture_lex $P288
     $P298 = $P288()
   alt279_end:
@@ -4435,11 +4769,15 @@
 .annotate 'line', 99
   # rx pass
     rx269_cur."!cursor_pass"(rx269_pos, "quote_escape:sym<misc>")
+    if_null rx269_debug, debug_247
     rx269_cur."!cursor_debug"("PASS  ", "quote_escape:sym<misc>", " at pos=", rx269_pos)
+  debug_247:
     .return (rx269_cur)
   rx269_restart:
 .annotate 'line', 33
+    if_null rx269_debug, debug_248
     rx269_cur."!cursor_debug"("NEXT ", "quote_escape:sym<misc>")
+  debug_248:
   rx269_fail:
     (rx269_rep, rx269_pos, $I10, $P10) = rx269_cur."!mark_fail"(0)
     lt rx269_pos, -1, rx269_done
@@ -4447,14 +4785,16 @@
     jump $I10
   rx269_done:
     rx269_cur."!cursor_fail"()
+    if_null rx269_debug, debug_249
     rx269_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<misc>")
+  debug_249:
     .return (rx269_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1282016519.8364") :method
 .annotate 'line', 33
     new $P271, "ResizablePMCArray"
     push $P271, ""
@@ -4463,14 +4803,14 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block275"  :anon :subid("95_1280467467.13603") :outer("93_1280467467.13603")
+.sub "_block275"  :anon :subid("95_1282016519.8364") :outer("93_1282016519.8364")
 .annotate 'line', 100
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block280"  :anon :subid("96_1280467467.13603") :method :outer("93_1280467467.13603")
+.sub "_block280"  :anon :subid("96_1282016519.8364") :method :outer("93_1282016519.8364")
 .annotate 'line', 104
     .local string rx282_tgt
     .local int rx282_pos
@@ -4478,7 +4818,9 @@
     .local int rx282_eos
     .local int rx282_rep
     .local pmc rx282_cur
+    .local pmc rx282_debug
     (rx282_cur, rx282_pos, rx282_tgt, $I10) = self."!cursor_start"()
+    getattribute rx282_debug, rx282_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx282_cur
     .local pmc match
     .lex "$/", match
@@ -4490,7 +4832,9 @@
     substr rx282_tgt, rx282_tgt, rx282_off
   rx282_start:
     eq $I10, 1, rx282_restart
+    if_null rx282_debug, debug_241
     rx282_cur."!cursor_debug"("START ", "")
+  debug_241:
     $I10 = self.'from'()
     ne $I10, -1, rxscan283_done
     goto rxscan283_scan
@@ -4511,10 +4855,14 @@
     inc rx282_pos
   # rx pass
     rx282_cur."!cursor_pass"(rx282_pos, "")
+    if_null rx282_debug, debug_242
     rx282_cur."!cursor_debug"("PASS  ", "", " at pos=", rx282_pos)
+  debug_242:
     .return (rx282_cur)
   rx282_restart:
+    if_null rx282_debug, debug_243
     rx282_cur."!cursor_debug"("NEXT ", "")
+  debug_243:
   rx282_fail:
     (rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0)
     lt rx282_pos, -1, rx282_done
@@ -4522,27 +4870,29 @@
     jump $I10
   rx282_done:
     rx282_cur."!cursor_fail"()
+    if_null rx282_debug, debug_244
     rx282_cur."!cursor_debug"("FAIL  ", "")
+  debug_244:
     .return (rx282_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block287"  :anon :subid("97_1280467467.13603") :outer("93_1280467467.13603")
+.sub "_block287"  :anon :subid("97_1282016519.8364") :outer("93_1282016519.8364")
 .annotate 'line', 105
     find_lex $P289, "$/"
     $P290 = $P289."CURSOR"()
     new $P291, "String"
     assign $P291, "Unrecognized backslash sequence: '\\"
     find_lex $P292, "$/"
-    unless_null $P292, vivify_108
+    unless_null $P292, vivify_245
     $P292 = root_new ['parrot';'Hash']
-  vivify_108:
+  vivify_245:
     set $P293, $P292["x"]
-    unless_null $P293, vivify_109
+    unless_null $P293, vivify_246
     new $P293, "Undef"
-  vivify_109:
+  vivify_246:
     $S294 = $P293."Str"()
     concat $P295, $P291, $S294
     concat $P296, $P295, "'"
@@ -4552,9 +4902,9 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charname"  :subid("98_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "charname"  :subid("98_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
-    .const 'Sub' $P310 = "100_1280467467.13603" 
+    .const 'Sub' $P310 = "100_1282016519.8364" 
     capture_lex $P310
     .local string rx301_tgt
     .local int rx301_pos
@@ -4562,7 +4912,9 @@
     .local int rx301_eos
     .local int rx301_rep
     .local pmc rx301_cur
+    .local pmc rx301_debug
     (rx301_cur, rx301_pos, rx301_tgt, $I10) = self."!cursor_start"()
+    getattribute rx301_debug, rx301_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx301_cur
     .local pmc match
     .lex "$/", match
@@ -4574,7 +4926,9 @@
     substr rx301_tgt, rx301_tgt, rx301_off
   rx301_start:
     eq $I10, 1, rx301_restart
+    if_null rx301_debug, debug_250
     rx301_cur."!cursor_debug"("START ", "charname")
+  debug_250:
     $I10 = self.'from'()
     ne $I10, -1, rxscan305_done
     goto rxscan305_scan
@@ -4634,7 +4988,7 @@
 .annotate 'line', 114
   # rx subrule "before" subtype=zerowidth negate=
     rx301_cur."!cursor_pos"(rx301_pos)
-    .const 'Sub' $P310 = "100_1280467467.13603" 
+    .const 'Sub' $P310 = "100_1282016519.8364" 
     capture_lex $P310
     $P10 = rx301_cur."before"($P310)
     unless $P10, rx301_fail
@@ -4642,11 +4996,15 @@
 .annotate 'line', 111
   # rx pass
     rx301_cur."!cursor_pass"(rx301_pos, "charname")
+    if_null rx301_debug, debug_255
     rx301_cur."!cursor_debug"("PASS  ", "charname", " at pos=", rx301_pos)
+  debug_255:
     .return (rx301_cur)
   rx301_restart:
 .annotate 'line', 33
+    if_null rx301_debug, debug_256
     rx301_cur."!cursor_debug"("NEXT ", "charname")
+  debug_256:
   rx301_fail:
     (rx301_rep, rx301_pos, $I10, $P10) = rx301_cur."!mark_fail"(0)
     lt rx301_pos, -1, rx301_done
@@ -4654,14 +5012,16 @@
     jump $I10
   rx301_done:
     rx301_cur."!cursor_fail"()
+    if_null rx301_debug, debug_257
     rx301_cur."!cursor_debug"("FAIL  ", "charname")
+  debug_257:
     .return (rx301_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname"  :subid("99_1280467467.13603") :method
+.sub "!PREFIX__charname"  :subid("99_1282016519.8364") :method
 .annotate 'line', 33
     $P303 = self."!PREFIX__!subrule"("integer", "")
     new $P304, "ResizablePMCArray"
@@ -4723,7 +5083,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block309"  :anon :subid("100_1280467467.13603") :method :outer("98_1280467467.13603")
+.sub "_block309"  :anon :subid("100_1282016519.8364") :method :outer("98_1282016519.8364")
 .annotate 'line', 114
     .local string rx311_tgt
     .local int rx311_pos
@@ -4731,7 +5091,9 @@
     .local int rx311_eos
     .local int rx311_rep
     .local pmc rx311_cur
+    .local pmc rx311_debug
     (rx311_cur, rx311_pos, rx311_tgt, $I10) = self."!cursor_start"()
+    getattribute rx311_debug, rx311_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx311_cur
     .local pmc match
     .lex "$/", match
@@ -4743,7 +5105,9 @@
     substr rx311_tgt, rx311_tgt, rx311_off
   rx311_start:
     eq $I10, 1, rx311_restart
+    if_null rx311_debug, debug_251
     rx311_cur."!cursor_debug"("START ", "")
+  debug_251:
     $I10 = self.'from'()
     ne $I10, -1, rxscan312_done
     goto rxscan312_scan
@@ -4769,10 +5133,14 @@
     inc rx311_pos
   # rx pass
     rx311_cur."!cursor_pass"(rx311_pos, "")
+    if_null rx311_debug, debug_252
     rx311_cur."!cursor_debug"("PASS  ", "", " at pos=", rx311_pos)
+  debug_252:
     .return (rx311_cur)
   rx311_restart:
+    if_null rx311_debug, debug_253
     rx311_cur."!cursor_debug"("NEXT ", "")
+  debug_253:
   rx311_fail:
     (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0)
     lt rx311_pos, -1, rx311_done
@@ -4780,14 +5148,16 @@
     jump $I10
   rx311_done:
     rx311_cur."!cursor_fail"()
+    if_null rx311_debug, debug_254
     rx311_cur."!cursor_debug"("FAIL  ", "")
+  debug_254:
     .return (rx311_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charnames"  :subid("101_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "charnames"  :subid("101_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx314_tgt
     .local int rx314_pos
@@ -4795,8 +5165,10 @@
     .local int rx314_eos
     .local int rx314_rep
     .local pmc rx314_cur
+    .local pmc rx314_debug
     (rx314_cur, rx314_pos, rx314_tgt, $I10) = self."!cursor_start"()
     rx314_cur."!cursor_caparray"("charname")
+    getattribute rx314_debug, rx314_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx314_cur
     .local pmc match
     .lex "$/", match
@@ -4808,7 +5180,9 @@
     substr rx314_tgt, rx314_tgt, rx314_off
   rx314_start:
     eq $I10, 1, rx314_restart
+    if_null rx314_debug, debug_258
     rx314_cur."!cursor_debug"("START ", "charnames")
+  debug_258:
     $I10 = self.'from'()
     ne $I10, -1, rxscan317_done
     goto rxscan317_scan
@@ -4851,18 +5225,22 @@
     add $I11, rx314_pos, 1
     gt $I11, rx314_eos, rx314_fail
     sub $I11, rx314_pos, rx314_off
-    substr $S10, rx314_tgt, $I11, 1
-    ne $S10, ",", rx314_fail
+    ord $I11, rx314_tgt, $I11
+    ne $I11, 44, rx314_fail
     add rx314_pos, 1
     goto rxquantr318_loop
   rxquantr318_done:
   # rx pass
     rx314_cur."!cursor_pass"(rx314_pos, "charnames")
+    if_null rx314_debug, debug_259
     rx314_cur."!cursor_debug"("PASS  ", "charnames", " at pos=", rx314_pos)
+  debug_259:
     .return (rx314_cur)
   rx314_restart:
 .annotate 'line', 33
+    if_null rx314_debug, debug_260
     rx314_cur."!cursor_debug"("NEXT ", "charnames")
+  debug_260:
   rx314_fail:
     (rx314_rep, rx314_pos, $I10, $P10) = rx314_cur."!mark_fail"(0)
     lt rx314_pos, -1, rx314_done
@@ -4870,14 +5248,16 @@
     jump $I10
   rx314_done:
     rx314_cur."!cursor_fail"()
+    if_null rx314_debug, debug_261
     rx314_cur."!cursor_debug"("FAIL  ", "charnames")
+  debug_261:
     .return (rx314_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames"  :subid("102_1280467467.13603") :method
+.sub "!PREFIX__charnames"  :subid("102_1282016519.8364") :method
 .annotate 'line', 33
     new $P316, "ResizablePMCArray"
     push $P316, ""
@@ -4886,7 +5266,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charspec"  :subid("103_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "charspec"  :subid("103_1282016519.8364") :method :outer("11_1282016519.8364")
 .annotate 'line', 33
     .local string rx320_tgt
     .local int rx320_pos
@@ -4894,7 +5274,9 @@
     .local int rx320_eos
     .local int rx320_rep
     .local pmc rx320_cur
+    .local pmc rx320_debug
     (rx320_cur, rx320_pos, rx320_tgt, $I10) = self."!cursor_start"()
+    getattribute rx320_debug, rx320_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx320_cur
     .local pmc match
     .lex "$/", match
@@ -4906,7 +5288,9 @@
     substr rx320_tgt, rx320_tgt, rx320_off
   rx320_start:
     eq $I10, 1, rx320_restart
+    if_null rx320_debug, debug_262
     rx320_cur."!cursor_debug"("START ", "charspec")
+  debug_262:
     $I10 = self.'from'()
     ne $I10, -1, rxscan325_done
     goto rxscan325_scan
@@ -4928,8 +5312,8 @@
     add $I11, rx320_pos, 1
     gt $I11, rx320_eos, rx320_fail
     sub $I11, rx320_pos, rx320_off
-    substr $S10, rx320_tgt, $I11, 1
-    ne $S10, "[", rx320_fail
+    ord $I11, rx320_tgt, $I11
+    ne $I11, 91, rx320_fail
     add rx320_pos, 1
   # rx subrule "charnames" subtype=capture negate=
     rx320_cur."!cursor_pos"(rx320_pos)
@@ -4942,8 +5326,8 @@
     add $I11, rx320_pos, 1
     gt $I11, rx320_eos, rx320_fail
     sub $I11, rx320_pos, rx320_off
-    substr $S10, rx320_tgt, $I11, 1
-    ne $S10, "]", rx320_fail
+    ord $I11, rx320_tgt, $I11
+    ne $I11, 93, rx320_fail
     add rx320_pos, 1
     goto alt326_end
   alt326_1:
@@ -4964,8 +5348,8 @@
     add $I11, rx320_pos, 1
     gt $I11, rx320_eos, rx320_fail
     sub $I11, rx320_pos, rx320_off
-    substr $S10, rx320_tgt, $I11, 1
-    ne $S10, "_", rx320_fail
+    ord $I11, rx320_tgt, $I11
+    ne $I11, 95, rx320_fail
     add rx320_pos, 1
   # rx charclass_q d r 1..-1
     sub $I10, rx320_pos, rx320_off
@@ -5003,11 +5387,15 @@
 .annotate 'line', 117
   # rx pass
     rx320_cur."!cursor_pass"(rx320_pos, "charspec")
+    if_null rx320_debug, debug_263
     rx320_cur."!cursor_debug"("PASS  ", "charspec", " at pos=", rx320_pos)
+  debug_263:
     .return (rx320_cur)
   rx320_restart:
 .annotate 'line', 33
+    if_null rx320_debug, debug_264
     rx320_cur."!cursor_debug"("NEXT ", "charspec")
+  debug_264:
   rx320_fail:
     (rx320_rep, rx320_pos, $I10, $P10) = rx320_cur."!mark_fail"(0)
     lt rx320_pos, -1, rx320_done
@@ -5015,14 +5403,16 @@
     jump $I10
   rx320_done:
     rx320_cur."!cursor_fail"()
+    if_null rx320_debug, debug_265
     rx320_cur."!cursor_debug"("FAIL  ", "charspec")
+  debug_265:
     .return (rx320_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec"  :subid("104_1280467467.13603") :method
+.sub "!PREFIX__charspec"  :subid("104_1282016519.8364") :method
 .annotate 'line', 33
     $P322 = self."!PREFIX__!subrule"("panic", "")
     $P323 = self."!PREFIX__!subrule"("charnames", "[")
@@ -5063,18 +5453,18 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block328" :load :anon :subid("105_1280467467.13603")
+.sub "_block328" :load :anon :subid("105_1282016519.8364")
 .annotate 'line', 5
-    .const 'Sub' $P330 = "11_1280467467.13603" 
+    .const 'Sub' $P330 = "11_1282016519.8364" 
     $P331 = $P330()
     .return ($P331)
 .end
 
 
 .namespace []
-.sub "_block333" :load :anon :subid("106_1280467467.13603")
+.sub "_block333" :load :anon :subid("106_1282016519.8364")
 .annotate 'line', 1
-    .const 'Sub' $P335 = "10_1280467467.13603" 
+    .const 'Sub' $P335 = "10_1282016519.8364" 
     $P336 = $P335()
     .return ($P336)
 .end
@@ -5082,7 +5472,7 @@
 ### .include 'gen/hllgrammar-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467468.44761")
+.sub "_block11"  :anon :subid("10_1282016521.02645")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Actions"], "_block13" 
     capture_lex $P14
@@ -5099,15 +5489,15 @@
     $P627 = $P14()
 .annotate 'line', 1
     .return ($P627)
-    .const 'Sub' $P629 = "55_1280467468.44761" 
+    .const 'Sub' $P629 = "55_1282016521.02645" 
     .return ($P629)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post56") :outer("10_1280467468.44761")
+.sub "" :load :init :subid("post56") :outer("10_1282016521.02645")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467468.44761" 
+    .const 'Sub' $P12 = "10_1282016521.02645" 
     .local pmc block
     set block, $P12
     $P632 = get_root_global ["parrot"], "P6metaclass"
@@ -5116,75 +5506,75 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block13"  :subid("11_1280467468.44761") :outer("10_1280467468.44761")
+.sub "_block13"  :subid("11_1282016521.02645") :outer("10_1282016521.02645")
 .annotate 'line', 3
-    .const 'Sub' $P605 = "53_1280467468.44761" 
+    .const 'Sub' $P605 = "53_1282016521.02645" 
     capture_lex $P605
-    .const 'Sub' $P580 = "51_1280467468.44761" 
+    .const 'Sub' $P580 = "51_1282016521.02645" 
     capture_lex $P580
-    .const 'Sub' $P550 = "50_1280467468.44761" 
+    .const 'Sub' $P550 = "50_1282016521.02645" 
     capture_lex $P550
-    .const 'Sub' $P531 = "49_1280467468.44761" 
+    .const 'Sub' $P531 = "49_1282016521.02645" 
     capture_lex $P531
-    .const 'Sub' $P524 = "48_1280467468.44761" 
+    .const 'Sub' $P524 = "48_1282016521.02645" 
     capture_lex $P524
-    .const 'Sub' $P514 = "47_1280467468.44761" 
+    .const 'Sub' $P514 = "47_1282016521.02645" 
     capture_lex $P514
-    .const 'Sub' $P497 = "46_1280467468.44761" 
+    .const 'Sub' $P497 = "46_1282016521.02645" 
     capture_lex $P497
-    .const 'Sub' $P480 = "45_1280467468.44761" 
+    .const 'Sub' $P480 = "45_1282016521.02645" 
     capture_lex $P480
-    .const 'Sub' $P473 = "44_1280467468.44761" 
+    .const 'Sub' $P473 = "44_1282016521.02645" 
     capture_lex $P473
-    .const 'Sub' $P466 = "43_1280467468.44761" 
+    .const 'Sub' $P466 = "43_1282016521.02645" 
     capture_lex $P466
-    .const 'Sub' $P459 = "42_1280467468.44761" 
+    .const 'Sub' $P459 = "42_1282016521.02645" 
     capture_lex $P459
-    .const 'Sub' $P452 = "41_1280467468.44761" 
+    .const 'Sub' $P452 = "41_1282016521.02645" 
     capture_lex $P452
-    .const 'Sub' $P445 = "40_1280467468.44761" 
+    .const 'Sub' $P445 = "40_1282016521.02645" 
     capture_lex $P445
-    .const 'Sub' $P438 = "39_1280467468.44761" 
+    .const 'Sub' $P438 = "39_1282016521.02645" 
     capture_lex $P438
-    .const 'Sub' $P428 = "38_1280467468.44761" 
+    .const 'Sub' $P428 = "38_1282016521.02645" 
     capture_lex $P428
-    .const 'Sub' $P421 = "37_1280467468.44761" 
+    .const 'Sub' $P421 = "37_1282016521.02645" 
     capture_lex $P421
-    .const 'Sub' $P405 = "36_1280467468.44761" 
+    .const 'Sub' $P405 = "36_1282016521.02645" 
     capture_lex $P405
-    .const 'Sub' $P330 = "34_1280467468.44761" 
+    .const 'Sub' $P330 = "34_1282016521.02645" 
     capture_lex $P330
-    .const 'Sub' $P267 = "31_1280467468.44761" 
+    .const 'Sub' $P267 = "31_1282016521.02645" 
     capture_lex $P267
-    .const 'Sub' $P258 = "30_1280467468.44761" 
+    .const 'Sub' $P258 = "30_1282016521.02645" 
     capture_lex $P258
-    .const 'Sub' $P249 = "29_1280467468.44761" 
+    .const 'Sub' $P249 = "29_1282016521.02645" 
     capture_lex $P249
-    .const 'Sub' $P240 = "28_1280467468.44761" 
+    .const 'Sub' $P240 = "28_1282016521.02645" 
     capture_lex $P240
-    .const 'Sub' $P231 = "27_1280467468.44761" 
+    .const 'Sub' $P231 = "27_1282016521.02645" 
     capture_lex $P231
-    .const 'Sub' $P222 = "26_1280467468.44761" 
+    .const 'Sub' $P222 = "26_1282016521.02645" 
     capture_lex $P222
-    .const 'Sub' $P212 = "25_1280467468.44761" 
+    .const 'Sub' $P212 = "25_1282016521.02645" 
     capture_lex $P212
-    .const 'Sub' $P202 = "24_1280467468.44761" 
+    .const 'Sub' $P202 = "24_1282016521.02645" 
     capture_lex $P202
-    .const 'Sub' $P194 = "23_1280467468.44761" 
+    .const 'Sub' $P194 = "23_1282016521.02645" 
     capture_lex $P194
-    .const 'Sub' $P184 = "22_1280467468.44761" 
+    .const 'Sub' $P184 = "22_1282016521.02645" 
     capture_lex $P184
-    .const 'Sub' $P174 = "21_1280467468.44761" 
+    .const 'Sub' $P174 = "21_1282016521.02645" 
     capture_lex $P174
-    .const 'Sub' $P73 = "18_1280467468.44761" 
+    .const 'Sub' $P73 = "18_1282016521.02645" 
     capture_lex $P73
-    .const 'Sub' $P35 = "15_1280467468.44761" 
+    .const 'Sub' $P35 = "15_1282016521.02645" 
     capture_lex $P35
-    .const 'Sub' $P28 = "14_1280467468.44761" 
+    .const 'Sub' $P28 = "14_1282016521.02645" 
     capture_lex $P28
-    .const 'Sub' $P22 = "13_1280467468.44761" 
+    .const 'Sub' $P22 = "13_1282016521.02645" 
     capture_lex $P22
-    .const 'Sub' $P15 = "12_1280467468.44761" 
+    .const 'Sub' $P15 = "12_1282016521.02645" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -5193,18 +5583,18 @@
     $P0."ctxsave"()
   ctxsave_done:
 .annotate 'line', 225
-    .const 'Sub' $P605 = "53_1280467468.44761" 
+    .const 'Sub' $P605 = "53_1282016521.02645" 
     newclosure $P622, $P605
 .annotate 'line', 3
     .return ($P622)
-    .const 'Sub' $P624 = "54_1280467468.44761" 
+    .const 'Sub' $P624 = "54_1282016521.02645" 
     .return ($P624)
 .end
 
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "string_to_int"  :subid("12_1280467468.44761") :outer("11_1280467468.44761")
+.sub "string_to_int"  :subid("12_1282016521.02645") :outer("11_1282016521.02645")
     .param pmc param_18
     .param pmc param_19
 .annotate 'line', 3
@@ -5258,7 +5648,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "ints_to_string"  :subid("13_1280467468.44761") :outer("11_1280467468.44761")
+.sub "ints_to_string"  :subid("13_1282016521.02645") :outer("11_1282016521.02645")
     .param pmc param_25
 .annotate 'line', 37
     new $P24, 'ExceptionHandler'
@@ -5300,7 +5690,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "CTXSAVE"  :subid("14_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "CTXSAVE"  :subid("14_1282016521.02645") :method :outer("11_1282016521.02645")
 .annotate 'line', 62
     new $P30, 'ExceptionHandler'
     set_addr $P30, control_29
@@ -5330,10 +5720,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "SET_BLOCK_OUTER_CTX"  :subid("15_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "SET_BLOCK_OUTER_CTX"  :subid("15_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_38
 .annotate 'line', 76
-    .const 'Sub' $P48 = "16_1280467468.44761" 
+    .const 'Sub' $P48 = "16_1282016521.02645" 
     capture_lex $P48
     new $P37, 'ExceptionHandler'
     set_addr $P37, control_36
@@ -5368,7 +5758,7 @@
     set $P43, $I46
     goto if_44_end
   if_44:
-    .const 'Sub' $P48 = "16_1280467468.44761" 
+    .const 'Sub' $P48 = "16_1282016521.02645" 
     capture_lex $P48
     $P71 = $P48()
     set $P43, $P71
@@ -5385,9 +5775,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "_block47"  :anon :subid("16_1280467468.44761") :outer("15_1280467468.44761")
+.sub "_block47"  :anon :subid("16_1282016521.02645") :outer("15_1282016521.02645")
 .annotate 'line', 78
-    .const 'Sub' $P62 = "17_1280467468.44761" 
+    .const 'Sub' $P62 = "17_1282016521.02645" 
     capture_lex $P62
 .annotate 'line', 79
     $P49 = root_new ['parrot';'ResizablePMCArray']
@@ -5417,7 +5807,7 @@
     unless $P56, loop68_done
     shift $P60, $P56
   loop68_redo:
-    .const 'Sub' $P62 = "17_1280467468.44761" 
+    .const 'Sub' $P62 = "17_1282016521.02645" 
     capture_lex $P62
     $P62($P60)
   loop68_next:
@@ -5437,7 +5827,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block61"  :anon :subid("17_1280467468.44761") :outer("16_1280467468.44761")
+.sub "_block61"  :anon :subid("17_1282016521.02645") :outer("16_1282016521.02645")
     .param pmc param_63
 .annotate 'line', 82
     .lex "$_", param_63
@@ -5453,14 +5843,14 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "EXPR"  :subid("18_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "EXPR"  :subid("18_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_76
     .param pmc param_77 :optional
     .param int has_param_77 :opt_flag
 .annotate 'line', 89
-    .const 'Sub' $P156 = "20_1280467468.44761" 
+    .const 'Sub' $P156 = "20_1282016521.02645" 
     capture_lex $P156
-    .const 'Sub' $P123 = "19_1280467468.44761" 
+    .const 'Sub' $P123 = "19_1282016521.02645" 
     capture_lex $P123
     new $P75, 'ExceptionHandler'
     set_addr $P75, control_74
@@ -5595,7 +5985,7 @@
     find_lex $P120, "$past"
     $P121 = $P120."name"()
     if $P121, unless_119_end
-    .const 'Sub' $P123 = "19_1280467468.44761" 
+    .const 'Sub' $P123 = "19_1282016521.02645" 
     capture_lex $P123
     $P123()
   unless_119_end:
@@ -5619,7 +6009,7 @@
     unless $P150, loop167_done
     shift $P154, $P150
   loop167_redo:
-    .const 'Sub' $P156 = "20_1280467468.44761" 
+    .const 'Sub' $P156 = "20_1282016521.02645" 
     capture_lex $P156
     $P156($P154)
   loop167_next:
@@ -5664,7 +6054,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block122"  :anon :subid("19_1280467468.44761") :outer("18_1280467468.44761")
+.sub "_block122"  :anon :subid("19_1282016521.02645") :outer("18_1282016521.02645")
 .annotate 'line', 98
     new $P124, "Undef"
     .lex "$name", $P124
@@ -5714,7 +6104,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block155"  :anon :subid("20_1280467468.44761") :outer("18_1280467468.44761")
+.sub "_block155"  :anon :subid("20_1282016521.02645") :outer("18_1282016521.02645")
     .param pmc param_157
 .annotate 'line', 109
     .lex "$_", param_157
@@ -5738,7 +6128,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<circumfix>"  :subid("21_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "term:sym<circumfix>"  :subid("21_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_177
 .annotate 'line', 114
     new $P176, 'ExceptionHandler'
@@ -5769,7 +6159,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "termish"  :subid("22_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "termish"  :subid("22_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_187
 .annotate 'line', 116
     new $P186, 'ExceptionHandler'
@@ -5800,7 +6190,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "nullterm"  :subid("23_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "nullterm"  :subid("23_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_197
 .annotate 'line', 117
     new $P196, 'ExceptionHandler'
@@ -5823,7 +6213,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "nullterm_alt"  :subid("24_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "nullterm_alt"  :subid("24_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_205
 .annotate 'line', 118
     new $P204, 'ExceptionHandler'
@@ -5854,7 +6244,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "integer"  :subid("25_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "integer"  :subid("25_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_215
 .annotate 'line', 120
     new $P214, 'ExceptionHandler'
@@ -5885,7 +6275,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "dec_number"  :subid("26_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "dec_number"  :subid("26_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_225
 .annotate 'line', 122
     new $P224, 'ExceptionHandler'
@@ -5909,7 +6299,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "decint"  :subid("27_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "decint"  :subid("27_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_234
 .annotate 'line', 124
     new $P233, 'ExceptionHandler'
@@ -5933,7 +6323,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "hexint"  :subid("28_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "hexint"  :subid("28_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_243
 .annotate 'line', 125
     new $P242, 'ExceptionHandler'
@@ -5957,7 +6347,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "octint"  :subid("29_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "octint"  :subid("29_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_252
 .annotate 'line', 126
     new $P251, 'ExceptionHandler'
@@ -5981,7 +6371,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "binint"  :subid("30_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "binint"  :subid("30_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_261
 .annotate 'line', 127
     new $P260, 'ExceptionHandler'
@@ -6005,10 +6395,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_EXPR"  :subid("31_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_EXPR"  :subid("31_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_270
 .annotate 'line', 129
-    .const 'Sub' $P286 = "32_1280467468.44761" 
+    .const 'Sub' $P286 = "32_1282016521.02645" 
     capture_lex $P286
     new $P269, 'ExceptionHandler'
     set_addr $P269, control_268
@@ -6040,7 +6430,7 @@
     $P282 = $P280."ACCEPTS"($P281)
     if $P282, if_279
 .annotate 'line', 135
-    .const 'Sub' $P286 = "32_1280467468.44761" 
+    .const 'Sub' $P286 = "32_1282016521.02645" 
     capture_lex $P286
     $P286()
     goto if_279_end
@@ -6080,9 +6470,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "_block285"  :anon :subid("32_1280467468.44761") :outer("31_1280467468.44761")
+.sub "_block285"  :anon :subid("32_1282016521.02645") :outer("31_1282016521.02645")
 .annotate 'line', 135
-    .const 'Sub' $P305 = "33_1280467468.44761" 
+    .const 'Sub' $P305 = "33_1282016521.02645" 
     capture_lex $P305
 .annotate 'line', 136
     $P287 = root_new ['parrot';'ResizablePMCArray']
@@ -6133,7 +6523,7 @@
     unless $P300, loop310_done
     shift $P303, $P300
   loop310_redo:
-    .const 'Sub' $P305 = "33_1280467468.44761" 
+    .const 'Sub' $P305 = "33_1282016521.02645" 
     capture_lex $P305
     $P305($P303)
   loop310_next:
@@ -6156,7 +6546,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block304"  :anon :subid("33_1280467468.44761") :outer("32_1280467468.44761")
+.sub "_block304"  :anon :subid("33_1282016521.02645") :outer("32_1282016521.02645")
     .param pmc param_306
 .annotate 'line', 139
     .lex "$_", param_306
@@ -6169,10 +6559,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_delimited"  :subid("34_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_delimited"  :subid("34_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_333
 .annotate 'line', 152
-    .const 'Sub' $P345 = "35_1280467468.44761" 
+    .const 'Sub' $P345 = "35_1282016521.02645" 
     capture_lex $P345
     new $P332, 'ExceptionHandler'
     set_addr $P332, control_331
@@ -6215,7 +6605,7 @@
     unless $P339, loop377_done
     shift $P343, $P339
   loop377_redo:
-    .const 'Sub' $P345 = "35_1280467468.44761" 
+    .const 'Sub' $P345 = "35_1282016521.02645" 
     capture_lex $P345
     $P345($P343)
   loop377_next:
@@ -6293,7 +6683,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block344"  :anon :subid("35_1280467468.44761") :outer("34_1280467468.44761")
+.sub "_block344"  :anon :subid("35_1282016521.02645") :outer("34_1282016521.02645")
     .param pmc param_347
 .annotate 'line', 156
     new $P346, "Undef"
@@ -6363,7 +6753,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_atom"  :subid("36_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_atom"  :subid("36_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_408
 .annotate 'line', 177
     new $P407, 'ExceptionHandler'
@@ -6413,7 +6803,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<backslash>"  :subid("37_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<backslash>"  :subid("37_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_424
 .annotate 'line', 181
     new $P423, 'ExceptionHandler'
@@ -6435,7 +6825,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<stopper>"  :subid("38_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<stopper>"  :subid("38_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_431
 .annotate 'line', 182
     new $P430, 'ExceptionHandler'
@@ -6466,7 +6856,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<bs>"  :subid("39_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<bs>"  :subid("39_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_441
 .annotate 'line', 184
     new $P440, 'ExceptionHandler'
@@ -6488,7 +6878,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<nl>"  :subid("40_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<nl>"  :subid("40_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_448
 .annotate 'line', 185
     new $P447, 'ExceptionHandler'
@@ -6510,7 +6900,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<cr>"  :subid("41_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<cr>"  :subid("41_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_455
 .annotate 'line', 186
     new $P454, 'ExceptionHandler'
@@ -6532,7 +6922,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<tab>"  :subid("42_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<tab>"  :subid("42_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_462
 .annotate 'line', 187
     new $P461, 'ExceptionHandler'
@@ -6554,7 +6944,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<ff>"  :subid("43_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<ff>"  :subid("43_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_469
 .annotate 'line', 188
     new $P468, 'ExceptionHandler'
@@ -6576,7 +6966,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<esc>"  :subid("44_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<esc>"  :subid("44_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_476
 .annotate 'line', 189
     new $P475, 'ExceptionHandler'
@@ -6598,7 +6988,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<hex>"  :subid("45_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<hex>"  :subid("45_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_483
 .annotate 'line', 191
     new $P482, 'ExceptionHandler'
@@ -6657,7 +7047,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<oct>"  :subid("46_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<oct>"  :subid("46_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_500
 .annotate 'line', 195
     new $P499, 'ExceptionHandler'
@@ -6716,7 +7106,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<chr>"  :subid("47_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<chr>"  :subid("47_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_517
 .annotate 'line', 199
     new $P516, 'ExceptionHandler'
@@ -6749,7 +7139,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<0>"  :subid("48_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<0>"  :subid("48_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_527
 .annotate 'line', 203
     new $P526, 'ExceptionHandler'
@@ -6773,7 +7163,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<misc>"  :subid("49_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<misc>"  :subid("49_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_534
 .annotate 'line', 207
     new $P533, 'ExceptionHandler'
@@ -6832,7 +7222,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charname"  :subid("50_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "charname"  :subid("50_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_553
 .annotate 'line', 211
     new $P552, 'ExceptionHandler'
@@ -6906,10 +7296,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charnames"  :subid("51_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "charnames"  :subid("51_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_583
 .annotate 'line', 219
-    .const 'Sub' $P592 = "52_1280467468.44761" 
+    .const 'Sub' $P592 = "52_1282016521.02645" 
     capture_lex $P592
     new $P582, 'ExceptionHandler'
     set_addr $P582, control_581
@@ -6943,7 +7333,7 @@
     unless $P586, loop598_done
     shift $P590, $P586
   loop598_redo:
-    .const 'Sub' $P592 = "52_1280467468.44761" 
+    .const 'Sub' $P592 = "52_1282016521.02645" 
     capture_lex $P592
     $P592($P590)
   loop598_next:
@@ -6972,7 +7362,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block591"  :anon :subid("52_1280467468.44761") :outer("51_1280467468.44761")
+.sub "_block591"  :anon :subid("52_1282016521.02645") :outer("51_1282016521.02645")
     .param pmc param_593
 .annotate 'line', 221
     .lex "$_", param_593
@@ -6987,7 +7377,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charspec"  :subid("53_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "charspec"  :subid("53_1282016521.02645") :method :outer("11_1282016521.02645")
     .param pmc param_608
 .annotate 'line', 225
     new $P607, 'ExceptionHandler'
@@ -7037,18 +7427,18 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block623" :load :anon :subid("54_1280467468.44761")
+.sub "_block623" :load :anon :subid("54_1282016521.02645")
 .annotate 'line', 3
-    .const 'Sub' $P625 = "11_1280467468.44761" 
+    .const 'Sub' $P625 = "11_1282016521.02645" 
     $P626 = $P625()
     .return ($P626)
 .end
 
 
 .namespace []
-.sub "_block628" :load :anon :subid("55_1280467468.44761")
+.sub "_block628" :load :anon :subid("55_1282016521.02645")
 .annotate 'line', 1
-    .const 'Sub' $P630 = "10_1280467468.44761" 
+    .const 'Sub' $P630 = "10_1282016521.02645" 
     $P631 = $P630()
     .return ($P631)
 .end
@@ -7056,7 +7446,7 @@
 ### .include 'gen/hllcompiler.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467469.30058")
+.sub "_block11"  :anon :subid("10_1282016521.80094")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     capture_lex $P14
@@ -7073,15 +7463,15 @@
     $P497 = $P14()
 .annotate 'line', 1
     .return ($P497)
-    .const 'Sub' $P499 = "36_1280467469.30058" 
+    .const 'Sub' $P499 = "36_1282016521.80094" 
     .return ($P499)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post37") :outer("10_1280467469.30058")
+.sub "" :load :init :subid("post37") :outer("10_1282016521.80094")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467469.30058" 
+    .const 'Sub' $P12 = "10_1282016521.80094" 
     .local pmc block
     set block, $P12
 .annotate 'line', 2
@@ -7095,36 +7485,36 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block13"  :subid("11_1280467469.30058") :outer("10_1280467469.30058")
+.sub "_block13"  :subid("11_1282016521.80094") :outer("10_1282016521.80094")
 .annotate 'line', 6
-    .const 'Sub' $P489 = "35_1280467469.30058" 
+    .const 'Sub' $P489 = "35_1282016521.80094" 
     capture_lex $P489
-    .const 'Sub' $P447 = "33_1280467469.30058" 
+    .const 'Sub' $P447 = "33_1282016521.80094" 
     capture_lex $P447
-    .const 'Sub' $P298 = "26_1280467469.30058" 
+    .const 'Sub' $P298 = "26_1282016521.80094" 
     capture_lex $P298
-    .const 'Sub' $P283 = "25_1280467469.30058" 
+    .const 'Sub' $P283 = "25_1282016521.80094" 
     capture_lex $P283
-    .const 'Sub' $P188 = "20_1280467469.30058" 
+    .const 'Sub' $P188 = "20_1282016521.80094" 
     capture_lex $P188
-    .const 'Sub' $P153 = "18_1280467469.30058" 
+    .const 'Sub' $P153 = "18_1282016521.80094" 
     capture_lex $P153
-    .const 'Sub' $P138 = "17_1280467469.30058" 
+    .const 'Sub' $P138 = "17_1282016521.80094" 
     capture_lex $P138
-    .const 'Sub' $P122 = "16_1280467469.30058" 
+    .const 'Sub' $P122 = "16_1282016521.80094" 
     capture_lex $P122
-    .const 'Sub' $P33 = "13_1280467469.30058" 
+    .const 'Sub' $P33 = "13_1282016521.80094" 
     capture_lex $P33
-    .const 'Sub' $P15 = "12_1280467469.30058" 
+    .const 'Sub' $P15 = "12_1282016521.80094" 
     capture_lex $P15
 .annotate 'line', 14
-    .const 'Sub' $P15 = "12_1280467469.30058" 
+    .const 'Sub' $P15 = "12_1282016521.80094" 
     newclosure $P31, $P15
     .lex "value_type", $P31
 .annotate 'line', 10
     find_lex $P32, "value_type"
 .annotate 'line', 165
-    .const 'Sub' $P489 = "35_1280467469.30058" 
+    .const 'Sub' $P489 = "35_1282016521.80094" 
     newclosure $P495, $P489
 .annotate 'line', 6
     .return ($P495)
@@ -7132,7 +7522,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post38") :outer("11_1280467469.30058")
+.sub "" :load :init :subid("post38") :outer("11_1282016521.80094")
 .annotate 'line', 6
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     .local pmc block
@@ -7145,7 +7535,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "value_type"  :subid("12_1280467469.30058") :outer("11_1280467469.30058")
+.sub "value_type"  :subid("12_1282016521.80094") :outer("11_1282016521.80094")
     .param pmc param_18
 .annotate 'line', 14
     new $P17, 'ExceptionHandler'
@@ -7190,15 +7580,15 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "get_exports"  :subid("13_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "get_exports"  :subid("13_1282016521.80094") :method :outer("11_1282016521.80094")
     .param pmc param_36
     .param pmc param_39 :slurpy
     .param pmc param_37 :optional :named("tagset")
     .param int has_param_37 :opt_flag
 .annotate 'line', 20
-    .const 'Sub' $P105 = "15_1280467469.30058" 
+    .const 'Sub' $P105 = "15_1282016521.80094" 
     capture_lex $P105
-    .const 'Sub' $P84 = "14_1280467469.30058" 
+    .const 'Sub' $P84 = "14_1282016521.80094" 
     capture_lex $P84
     new $P35, 'ExceptionHandler'
     set_addr $P35, control_34
@@ -7304,7 +7694,7 @@
     unless $P100, loop117_done
     shift $P103, $P100
   loop117_redo:
-    .const 'Sub' $P105 = "15_1280467469.30058" 
+    .const 'Sub' $P105 = "15_1282016521.80094" 
     capture_lex $P105
     $P105($P103)
   loop117_next:
@@ -7334,7 +7724,7 @@
     unless $P79, loop97_done
     shift $P82, $P79
   loop97_redo:
-    .const 'Sub' $P84 = "14_1280467469.30058" 
+    .const 'Sub' $P84 = "14_1282016521.80094" 
     capture_lex $P84
     $P84($P82)
   loop97_next:
@@ -7362,7 +7752,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block104"  :anon :subid("15_1280467469.30058") :outer("13_1280467469.30058")
+.sub "_block104"  :anon :subid("15_1282016521.80094") :outer("13_1282016521.80094")
     .param pmc param_107
 .annotate 'line', 40
     new $P106, "Undef"
@@ -7394,7 +7784,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block83"  :anon :subid("14_1280467469.30058") :outer("13_1280467469.30058")
+.sub "_block83"  :anon :subid("14_1282016521.80094") :outer("13_1282016521.80094")
     .param pmc param_86
 .annotate 'line', 34
     new $P85, "Undef"
@@ -7434,7 +7824,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "get_module"  :subid("16_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "get_module"  :subid("16_1282016521.80094") :method :outer("11_1282016521.80094")
     .param pmc param_125
 .annotate 'line', 47
     new $P124, 'ExceptionHandler'
@@ -7475,7 +7865,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "language"  :subid("17_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "language"  :subid("17_1282016521.80094") :method :outer("11_1282016521.80094")
     .param pmc param_141 :optional
     .param int has_param_141 :opt_flag
 .annotate 'line', 53
@@ -7520,10 +7910,10 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "load_module"  :subid("18_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "load_module"  :subid("18_1282016521.80094") :method :outer("11_1282016521.80094")
     .param pmc param_156
 .annotate 'line', 61
-    .const 'Sub' $P166 = "19_1280467469.30058" 
+    .const 'Sub' $P166 = "19_1282016521.80094" 
     capture_lex $P166
     new $P155, 'ExceptionHandler'
     set_addr $P155, control_154
@@ -7550,7 +7940,7 @@
     assign $P164, 0
     store_lex "$loaded", $P164
 .annotate 'line', 64
-    .const 'Sub' $P166 = "19_1280467469.30058" 
+    .const 'Sub' $P166 = "19_1282016521.80094" 
     capture_lex $P166
     $P166()
 .annotate 'line', 65
@@ -7580,7 +7970,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block165"  :anon :subid("19_1280467469.30058") :outer("18_1280467469.30058")
+.sub "_block165"  :anon :subid("19_1282016521.80094") :outer("18_1282016521.80094")
 .annotate 'line', 64
     new $P173, 'ExceptionHandler'
     set_addr $P173, control_172
@@ -7614,11 +8004,11 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "import"  :subid("20_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "import"  :subid("20_1282016521.80094") :method :outer("11_1282016521.80094")
     .param pmc param_191
     .param pmc param_192
 .annotate 'line', 69
-    .const 'Sub' $P198 = "21_1280467469.30058" 
+    .const 'Sub' $P198 = "21_1282016521.80094" 
     capture_lex $P198
     new $P190, 'ExceptionHandler'
     set_addr $P190, control_189
@@ -7640,7 +8030,7 @@
     unless $P193, loop279_done
     shift $P196, $P193
   loop279_redo:
-    .const 'Sub' $P198 = "21_1280467469.30058" 
+    .const 'Sub' $P198 = "21_1282016521.80094" 
     capture_lex $P198
     $P198($P196)
   loop279_next:
@@ -7666,14 +8056,14 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block197"  :anon :subid("21_1280467469.30058") :outer("20_1280467469.30058")
+.sub "_block197"  :anon :subid("21_1282016521.80094") :outer("20_1282016521.80094")
     .param pmc param_201
 .annotate 'line', 70
-    .const 'Sub' $P268 = "24_1280467469.30058" 
+    .const 'Sub' $P268 = "24_1282016521.80094" 
     capture_lex $P268
-    .const 'Sub' $P248 = "23_1280467469.30058" 
+    .const 'Sub' $P248 = "23_1282016521.80094" 
     capture_lex $P248
-    .const 'Sub' $P219 = "22_1280467469.30058" 
+    .const 'Sub' $P219 = "22_1282016521.80094" 
     capture_lex $P219
 .annotate 'line', 71
     new $P199, "Undef"
@@ -7721,7 +8111,7 @@
     unless $P263, loop276_done
     shift $P266, $P263
   loop276_redo:
-    .const 'Sub' $P268 = "24_1280467469.30058" 
+    .const 'Sub' $P268 = "24_1282016521.80094" 
     capture_lex $P268
     $P268($P266)
   loop276_next:
@@ -7753,7 +8143,7 @@
     unless $P243, loop260_done
     shift $P246, $P243
   loop260_redo:
-    .const 'Sub' $P248 = "23_1280467469.30058" 
+    .const 'Sub' $P248 = "23_1282016521.80094" 
     capture_lex $P248
     $P248($P246)
   loop260_next:
@@ -7787,7 +8177,7 @@
     unless $P214, loop232_done
     shift $P217, $P214
   loop232_redo:
-    .const 'Sub' $P219 = "22_1280467469.30058" 
+    .const 'Sub' $P219 = "22_1282016521.80094" 
     capture_lex $P219
     $P219($P217)
   loop232_next:
@@ -7810,7 +8200,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block267"  :anon :subid("24_1280467469.30058") :outer("21_1280467469.30058")
+.sub "_block267"  :anon :subid("24_1282016521.80094") :outer("21_1282016521.80094")
     .param pmc param_269
 .annotate 'line', 80
     .lex "$_", param_269
@@ -7830,7 +8220,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block247"  :anon :subid("23_1280467469.30058") :outer("21_1280467469.30058")
+.sub "_block247"  :anon :subid("23_1282016521.80094") :outer("21_1282016521.80094")
     .param pmc param_249
 .annotate 'line', 77
     .lex "$_", param_249
@@ -7850,7 +8240,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block218"  :anon :subid("22_1280467469.30058") :outer("21_1280467469.30058")
+.sub "_block218"  :anon :subid("22_1282016521.80094") :outer("21_1282016521.80094")
     .param pmc param_220
 .annotate 'line', 74
     .lex "$_", param_220
@@ -7872,7 +8262,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "autoprint"  :subid("25_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "autoprint"  :subid("25_1282016521.80094") :method :outer("11_1282016521.80094")
     .param pmc param_286
 .annotate 'line', 85
     new $P285, 'ExceptionHandler'
@@ -7916,10 +8306,10 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "interactive"  :subid("26_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "interactive"  :subid("26_1282016521.80094") :method :outer("11_1282016521.80094")
     .param pmc param_301 :slurpy :named
 .annotate 'line', 90
-    .const 'Sub' $P333 = "27_1280467469.30058" 
+    .const 'Sub' $P333 = "27_1282016521.80094" 
     capture_lex $P333
     new $P300, 'ExceptionHandler'
     set_addr $P300, control_299
@@ -8006,7 +8396,7 @@
     assign $P331, 1
     unless $P331, loop443_done
   loop443_redo:
-    .const 'Sub' $P333 = "27_1280467469.30058" 
+    .const 'Sub' $P333 = "27_1282016521.80094" 
     capture_lex $P333
     $P333()
   loop443_next:
@@ -8031,9 +8421,9 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block332"  :anon :subid("27_1280467469.30058") :outer("26_1280467469.30058")
+.sub "_block332"  :anon :subid("27_1282016521.80094") :outer("26_1282016521.80094")
 .annotate 'line', 102
-    .const 'Sub' $P365 = "28_1280467469.30058" 
+    .const 'Sub' $P365 = "28_1282016521.80094" 
     capture_lex $P365
 .annotate 'line', 105
     new $P334, "Undef"
@@ -8101,7 +8491,7 @@
     set $P361, $P363
     goto if_362_end
   if_362:
-    .const 'Sub' $P365 = "28_1280467469.30058" 
+    .const 'Sub' $P365 = "28_1282016521.80094" 
     capture_lex $P365
     $P442 = $P365()
     set $P361, $P442
@@ -8113,11 +8503,11 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block364"  :anon :subid("28_1280467469.30058") :outer("27_1280467469.30058")
+.sub "_block364"  :anon :subid("28_1282016521.80094") :outer("27_1282016521.80094")
 .annotate 'line', 115
-    .const 'Sub' $P398 = "31_1280467469.30058" 
+    .const 'Sub' $P398 = "31_1282016521.80094" 
     capture_lex $P398
-    .const 'Sub' $P371 = "29_1280467469.30058" 
+    .const 'Sub' $P371 = "29_1282016521.80094" 
     capture_lex $P371
 .annotate 'line', 117
     new $P366, "Undef"
@@ -8128,7 +8518,7 @@
     store_lex "$code", $P368
     find_lex $P369, "$output"
 .annotate 'line', 118
-    .const 'Sub' $P371 = "29_1280467469.30058" 
+    .const 'Sub' $P371 = "29_1282016521.80094" 
     capture_lex $P371
     $P371()
 .annotate 'line', 125
@@ -8141,7 +8531,7 @@
   vivify_67:
     defined $I396, $P395
     unless $I396, if_394_end
-    .const 'Sub' $P398 = "31_1280467469.30058" 
+    .const 'Sub' $P398 = "31_1282016521.80094" 
     capture_lex $P398
     $P398()
   if_394_end:
@@ -8195,9 +8585,9 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block370"  :anon :subid("29_1280467469.30058") :outer("28_1280467469.30058")
+.sub "_block370"  :anon :subid("29_1282016521.80094") :outer("28_1282016521.80094")
 .annotate 'line', 118
-    .const 'Sub' $P383 = "30_1280467469.30058" 
+    .const 'Sub' $P383 = "30_1282016521.80094" 
     capture_lex $P383
     new $P379, 'ExceptionHandler'
     set_addr $P379, control_378
@@ -8217,7 +8607,7 @@
 .annotate 'line', 120
     .local pmc exception 
     .get_results (exception) 
-    .const 'Sub' $P383 = "30_1280467469.30058" 
+    .const 'Sub' $P383 = "30_1282016521.80094" 
     newclosure $P391, $P383
     $P391(exception)
     new $P392, 'Integer'
@@ -8237,7 +8627,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block382"  :anon :subid("30_1280467469.30058") :outer("29_1280467469.30058")
+.sub "_block382"  :anon :subid("30_1282016521.80094") :outer("29_1282016521.80094")
     .param pmc param_384
 .annotate 'line', 120
     .lex "$_", param_384
@@ -8260,9 +8650,9 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block397"  :anon :subid("31_1280467469.30058") :outer("28_1280467469.30058")
+.sub "_block397"  :anon :subid("31_1282016521.80094") :outer("28_1282016521.80094")
 .annotate 'line', 125
-    .const 'Sub' $P409 = "32_1280467469.30058" 
+    .const 'Sub' $P409 = "32_1282016521.80094" 
     capture_lex $P409
 .annotate 'line', 126
     get_global $P399, "$interactive_ctx"
@@ -8299,7 +8689,7 @@
     unless $P403, loop416_done
     shift $P407, $P403
   loop416_redo:
-    .const 'Sub' $P409 = "32_1280467469.30058" 
+    .const 'Sub' $P409 = "32_1282016521.80094" 
     capture_lex $P409
     $P409($P407)
   loop416_next:
@@ -8322,7 +8712,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block408"  :anon :subid("32_1280467469.30058") :outer("31_1280467469.30058")
+.sub "_block408"  :anon :subid("32_1282016521.80094") :outer("31_1282016521.80094")
     .param pmc param_410
 .annotate 'line', 128
     .lex "$_", param_410
@@ -8344,12 +8734,12 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "eval"  :subid("33_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "eval"  :subid("33_1282016521.80094") :method :outer("11_1282016521.80094")
     .param pmc param_450
     .param pmc param_451 :slurpy
     .param pmc param_452 :slurpy :named
 .annotate 'line', 146
-    .const 'Sub' $P471 = "34_1280467469.30058" 
+    .const 'Sub' $P471 = "34_1282016521.80094" 
     capture_lex $P471
     new $P449, 'ExceptionHandler'
     set_addr $P449, control_448
@@ -8396,7 +8786,7 @@
     set $P460, $I469
   if_461_end:
     unless $P460, if_459_end
-    .const 'Sub' $P471 = "34_1280467469.30058" 
+    .const 'Sub' $P471 = "34_1282016521.80094" 
     capture_lex $P471
     $P471()
   if_459_end:
@@ -8413,7 +8803,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block470"  :anon :subid("34_1280467469.30058") :outer("33_1280467469.30058")
+.sub "_block470"  :anon :subid("34_1282016521.80094") :outer("33_1282016521.80094")
 .annotate 'line', 152
     new $P472, "Undef"
     .lex "$outer_ctx", $P472
@@ -8467,7 +8857,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "ctxsave"  :subid("35_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "ctxsave"  :subid("35_1282016521.80094") :method :outer("11_1282016521.80094")
 .annotate 'line', 165
     new $P491, 'ExceptionHandler'
     set_addr $P491, control_490
@@ -8495,9 +8885,9 @@
 
 
 .namespace []
-.sub "_block498" :load :anon :subid("36_1280467469.30058")
+.sub "_block498" :load :anon :subid("36_1282016521.80094")
 .annotate 'line', 1
-    .const 'Sub' $P500 = "10_1280467469.30058" 
+    .const 'Sub' $P500 = "10_1282016521.80094" 
     $P501 = $P500()
     .return ($P501)
 .end

Modified: trunk/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- trunk/ext/nqp-rx/src/stage0/NQP-s0.pir	Tue Aug 17 03:02:21 2010	(r48544)
+++ trunk/ext/nqp-rx/src/stage0/NQP-s0.pir	Tue Aug 17 04:29:27 2010	(r48545)
@@ -15,7 +15,7 @@
 ### .include 'gen/nqp-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467477.44751")
+.sub "_block11"  :anon :subid("10_1282016529.10767")
 .annotate 'line', 0
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
@@ -32,15 +32,15 @@
     $P1423 = $P14()
 .annotate 'line', 1
     .return ($P1423)
-    .const 'Sub' $P1425 = "371_1280467477.44751" 
+    .const 'Sub' $P1425 = "371_1282016529.10767" 
     .return ($P1425)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post372") :outer("10_1280467477.44751")
+.sub "" :load :init :subid("post372") :outer("10_1282016529.10767")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467477.44751" 
+    .const 'Sub' $P12 = "10_1282016529.10767" 
     .local pmc block
     set block, $P12
     $P1428 = get_root_global ["parrot"], "P6metaclass"
@@ -49,321 +49,321 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block13"  :subid("11_1280467477.44751") :outer("10_1280467477.44751")
+.sub "_block13"  :subid("11_1282016529.10767") :outer("10_1282016529.10767")
 .annotate 'line', 4
     get_hll_global $P1340, ["NQP";"Regex"], "_block1339" 
     capture_lex $P1340
-    .const 'Sub' $P1326 = "348_1280467477.44751" 
+    .const 'Sub' $P1326 = "348_1282016529.10767" 
     capture_lex $P1326
-    .const 'Sub' $P1320 = "346_1280467477.44751" 
+    .const 'Sub' $P1320 = "346_1282016529.10767" 
     capture_lex $P1320
-    .const 'Sub' $P1314 = "344_1280467477.44751" 
+    .const 'Sub' $P1314 = "344_1282016529.10767" 
     capture_lex $P1314
-    .const 'Sub' $P1308 = "342_1280467477.44751" 
+    .const 'Sub' $P1308 = "342_1282016529.10767" 
     capture_lex $P1308
-    .const 'Sub' $P1302 = "340_1280467477.44751" 
+    .const 'Sub' $P1302 = "340_1282016529.10767" 
     capture_lex $P1302
-    .const 'Sub' $P1296 = "338_1280467477.44751" 
+    .const 'Sub' $P1296 = "338_1282016529.10767" 
     capture_lex $P1296
-    .const 'Sub' $P1289 = "336_1280467477.44751" 
+    .const 'Sub' $P1289 = "336_1282016529.10767" 
     capture_lex $P1289
-    .const 'Sub' $P1282 = "334_1280467477.44751" 
+    .const 'Sub' $P1282 = "334_1282016529.10767" 
     capture_lex $P1282
-    .const 'Sub' $P1275 = "332_1280467477.44751" 
+    .const 'Sub' $P1275 = "332_1282016529.10767" 
     capture_lex $P1275
-    .const 'Sub' $P1268 = "330_1280467477.44751" 
+    .const 'Sub' $P1268 = "330_1282016529.10767" 
     capture_lex $P1268
-    .const 'Sub' $P1262 = "328_1280467477.44751" 
+    .const 'Sub' $P1262 = "328_1282016529.10767" 
     capture_lex $P1262
-    .const 'Sub' $P1255 = "326_1280467477.44751" 
+    .const 'Sub' $P1255 = "326_1282016529.10767" 
     capture_lex $P1255
-    .const 'Sub' $P1248 = "324_1280467477.44751" 
+    .const 'Sub' $P1248 = "324_1282016529.10767" 
     capture_lex $P1248
-    .const 'Sub' $P1241 = "322_1280467477.44751" 
+    .const 'Sub' $P1241 = "322_1282016529.10767" 
     capture_lex $P1241
-    .const 'Sub' $P1234 = "320_1280467477.44751" 
+    .const 'Sub' $P1234 = "320_1282016529.10767" 
     capture_lex $P1234
-    .const 'Sub' $P1227 = "318_1280467477.44751" 
+    .const 'Sub' $P1227 = "318_1282016529.10767" 
     capture_lex $P1227
-    .const 'Sub' $P1220 = "316_1280467477.44751" 
+    .const 'Sub' $P1220 = "316_1282016529.10767" 
     capture_lex $P1220
-    .const 'Sub' $P1213 = "314_1280467477.44751" 
+    .const 'Sub' $P1213 = "314_1282016529.10767" 
     capture_lex $P1213
-    .const 'Sub' $P1206 = "312_1280467477.44751" 
+    .const 'Sub' $P1206 = "312_1282016529.10767" 
     capture_lex $P1206
-    .const 'Sub' $P1199 = "310_1280467477.44751" 
+    .const 'Sub' $P1199 = "310_1282016529.10767" 
     capture_lex $P1199
-    .const 'Sub' $P1192 = "308_1280467477.44751" 
+    .const 'Sub' $P1192 = "308_1282016529.10767" 
     capture_lex $P1192
-    .const 'Sub' $P1185 = "306_1280467477.44751" 
+    .const 'Sub' $P1185 = "306_1282016529.10767" 
     capture_lex $P1185
-    .const 'Sub' $P1178 = "304_1280467477.44751" 
+    .const 'Sub' $P1178 = "304_1282016529.10767" 
     capture_lex $P1178
-    .const 'Sub' $P1171 = "302_1280467477.44751" 
+    .const 'Sub' $P1171 = "302_1282016529.10767" 
     capture_lex $P1171
-    .const 'Sub' $P1164 = "300_1280467477.44751" 
+    .const 'Sub' $P1164 = "300_1282016529.10767" 
     capture_lex $P1164
-    .const 'Sub' $P1157 = "298_1280467477.44751" 
+    .const 'Sub' $P1157 = "298_1282016529.10767" 
     capture_lex $P1157
-    .const 'Sub' $P1150 = "296_1280467477.44751" 
+    .const 'Sub' $P1150 = "296_1282016529.10767" 
     capture_lex $P1150
-    .const 'Sub' $P1143 = "294_1280467477.44751" 
+    .const 'Sub' $P1143 = "294_1282016529.10767" 
     capture_lex $P1143
-    .const 'Sub' $P1136 = "292_1280467477.44751" 
+    .const 'Sub' $P1136 = "292_1282016529.10767" 
     capture_lex $P1136
-    .const 'Sub' $P1129 = "290_1280467477.44751" 
+    .const 'Sub' $P1129 = "290_1282016529.10767" 
     capture_lex $P1129
-    .const 'Sub' $P1122 = "288_1280467477.44751" 
+    .const 'Sub' $P1122 = "288_1282016529.10767" 
     capture_lex $P1122
-    .const 'Sub' $P1115 = "286_1280467477.44751" 
+    .const 'Sub' $P1115 = "286_1282016529.10767" 
     capture_lex $P1115
-    .const 'Sub' $P1108 = "284_1280467477.44751" 
+    .const 'Sub' $P1108 = "284_1282016529.10767" 
     capture_lex $P1108
-    .const 'Sub' $P1101 = "282_1280467477.44751" 
+    .const 'Sub' $P1101 = "282_1282016529.10767" 
     capture_lex $P1101
-    .const 'Sub' $P1094 = "280_1280467477.44751" 
+    .const 'Sub' $P1094 = "280_1282016529.10767" 
     capture_lex $P1094
-    .const 'Sub' $P1087 = "278_1280467477.44751" 
+    .const 'Sub' $P1087 = "278_1282016529.10767" 
     capture_lex $P1087
-    .const 'Sub' $P1080 = "276_1280467477.44751" 
+    .const 'Sub' $P1080 = "276_1282016529.10767" 
     capture_lex $P1080
-    .const 'Sub' $P1073 = "274_1280467477.44751" 
+    .const 'Sub' $P1073 = "274_1282016529.10767" 
     capture_lex $P1073
-    .const 'Sub' $P1066 = "272_1280467477.44751" 
+    .const 'Sub' $P1066 = "272_1282016529.10767" 
     capture_lex $P1066
-    .const 'Sub' $P1059 = "270_1280467477.44751" 
+    .const 'Sub' $P1059 = "270_1282016529.10767" 
     capture_lex $P1059
-    .const 'Sub' $P1053 = "268_1280467477.44751" 
+    .const 'Sub' $P1053 = "268_1282016529.10767" 
     capture_lex $P1053
-    .const 'Sub' $P1046 = "266_1280467477.44751" 
+    .const 'Sub' $P1046 = "266_1282016529.10767" 
     capture_lex $P1046
-    .const 'Sub' $P1039 = "264_1280467477.44751" 
+    .const 'Sub' $P1039 = "264_1282016529.10767" 
     capture_lex $P1039
-    .const 'Sub' $P1032 = "262_1280467477.44751" 
+    .const 'Sub' $P1032 = "262_1282016529.10767" 
     capture_lex $P1032
-    .const 'Sub' $P1025 = "260_1280467477.44751" 
+    .const 'Sub' $P1025 = "260_1282016529.10767" 
     capture_lex $P1025
-    .const 'Sub' $P1018 = "258_1280467477.44751" 
+    .const 'Sub' $P1018 = "258_1282016529.10767" 
     capture_lex $P1018
-    .const 'Sub' $P1011 = "256_1280467477.44751" 
+    .const 'Sub' $P1011 = "256_1282016529.10767" 
     capture_lex $P1011
-    .const 'Sub' $P1004 = "254_1280467477.44751" 
+    .const 'Sub' $P1004 = "254_1282016529.10767" 
     capture_lex $P1004
-    .const 'Sub' $P998 = "252_1280467477.44751" 
+    .const 'Sub' $P998 = "252_1282016529.10767" 
     capture_lex $P998
-    .const 'Sub' $P992 = "250_1280467477.44751" 
+    .const 'Sub' $P992 = "250_1282016529.10767" 
     capture_lex $P992
-    .const 'Sub' $P987 = "248_1280467477.44751" 
+    .const 'Sub' $P987 = "248_1282016529.10767" 
     capture_lex $P987
-    .const 'Sub' $P981 = "246_1280467477.44751" 
+    .const 'Sub' $P981 = "246_1282016529.10767" 
     capture_lex $P981
-    .const 'Sub' $P975 = "244_1280467477.44751" 
+    .const 'Sub' $P975 = "244_1282016529.10767" 
     capture_lex $P975
-    .const 'Sub' $P970 = "242_1280467477.44751" 
+    .const 'Sub' $P970 = "242_1282016529.10767" 
     capture_lex $P970
-    .const 'Sub' $P965 = "240_1280467477.44751" 
+    .const 'Sub' $P965 = "240_1282016529.10767" 
     capture_lex $P965
-    .const 'Sub' $P957 = "238_1280467477.44751" 
+    .const 'Sub' $P957 = "238_1282016529.10767" 
     capture_lex $P957
-    .const 'Sub' $P948 = "236_1280467477.44751" 
+    .const 'Sub' $P948 = "236_1282016529.10767" 
     capture_lex $P948
-    .const 'Sub' $P943 = "234_1280467477.44751" 
+    .const 'Sub' $P943 = "234_1282016529.10767" 
     capture_lex $P943
-    .const 'Sub' $P938 = "232_1280467477.44751" 
+    .const 'Sub' $P938 = "232_1282016529.10767" 
     capture_lex $P938
-    .const 'Sub' $P933 = "230_1280467477.44751" 
+    .const 'Sub' $P933 = "230_1282016529.10767" 
     capture_lex $P933
-    .const 'Sub' $P925 = "228_1280467477.44751" 
+    .const 'Sub' $P925 = "228_1282016529.10767" 
     capture_lex $P925
-    .const 'Sub' $P917 = "226_1280467477.44751" 
+    .const 'Sub' $P917 = "226_1282016529.10767" 
     capture_lex $P917
-    .const 'Sub' $P912 = "224_1280467477.44751" 
+    .const 'Sub' $P912 = "224_1282016529.10767" 
     capture_lex $P912
-    .const 'Sub' $P907 = "222_1280467477.44751" 
+    .const 'Sub' $P907 = "222_1282016529.10767" 
     capture_lex $P907
-    .const 'Sub' $P902 = "220_1280467477.44751" 
+    .const 'Sub' $P902 = "220_1282016529.10767" 
     capture_lex $P902
-    .const 'Sub' $P896 = "218_1280467477.44751" 
+    .const 'Sub' $P896 = "218_1282016529.10767" 
     capture_lex $P896
-    .const 'Sub' $P890 = "216_1280467477.44751" 
+    .const 'Sub' $P890 = "216_1282016529.10767" 
     capture_lex $P890
-    .const 'Sub' $P884 = "214_1280467477.44751" 
+    .const 'Sub' $P884 = "214_1282016529.10767" 
     capture_lex $P884
-    .const 'Sub' $P878 = "212_1280467477.44751" 
+    .const 'Sub' $P878 = "212_1282016529.10767" 
     capture_lex $P878
-    .const 'Sub' $P872 = "210_1280467477.44751" 
+    .const 'Sub' $P872 = "210_1282016529.10767" 
     capture_lex $P872
-    .const 'Sub' $P867 = "208_1280467477.44751" 
+    .const 'Sub' $P867 = "208_1282016529.10767" 
     capture_lex $P867
-    .const 'Sub' $P862 = "206_1280467477.44751" 
+    .const 'Sub' $P862 = "206_1282016529.10767" 
     capture_lex $P862
-    .const 'Sub' $P850 = "202_1280467477.44751" 
+    .const 'Sub' $P850 = "202_1282016529.10767" 
     capture_lex $P850
-    .const 'Sub' $P842 = "200_1280467477.44751" 
+    .const 'Sub' $P842 = "200_1282016529.10767" 
     capture_lex $P842
-    .const 'Sub' $P836 = "198_1280467477.44751" 
+    .const 'Sub' $P836 = "198_1282016529.10767" 
     capture_lex $P836
-    .const 'Sub' $P829 = "196_1280467477.44751" 
+    .const 'Sub' $P829 = "196_1282016529.10767" 
     capture_lex $P829
-    .const 'Sub' $P823 = "194_1280467477.44751" 
+    .const 'Sub' $P823 = "194_1282016529.10767" 
     capture_lex $P823
-    .const 'Sub' $P815 = "192_1280467477.44751" 
+    .const 'Sub' $P815 = "192_1282016529.10767" 
     capture_lex $P815
-    .const 'Sub' $P807 = "190_1280467477.44751" 
+    .const 'Sub' $P807 = "190_1282016529.10767" 
     capture_lex $P807
-    .const 'Sub' $P801 = "188_1280467477.44751" 
+    .const 'Sub' $P801 = "188_1282016529.10767" 
     capture_lex $P801
-    .const 'Sub' $P795 = "186_1280467477.44751" 
+    .const 'Sub' $P795 = "186_1282016529.10767" 
     capture_lex $P795
-    .const 'Sub' $P781 = "182_1280467477.44751" 
+    .const 'Sub' $P781 = "182_1282016529.10767" 
     capture_lex $P781
-    .const 'Sub' $P744 = "180_1280467477.44751" 
+    .const 'Sub' $P744 = "180_1282016529.10767" 
     capture_lex $P744
-    .const 'Sub' $P735 = "178_1280467477.44751" 
+    .const 'Sub' $P735 = "178_1282016529.10767" 
     capture_lex $P735
-    .const 'Sub' $P729 = "176_1280467477.44751" 
+    .const 'Sub' $P729 = "176_1282016529.10767" 
     capture_lex $P729
-    .const 'Sub' $P719 = "174_1280467477.44751" 
+    .const 'Sub' $P719 = "174_1282016529.10767" 
     capture_lex $P719
-    .const 'Sub' $P706 = "172_1280467477.44751" 
+    .const 'Sub' $P706 = "172_1282016529.10767" 
     capture_lex $P706
-    .const 'Sub' $P699 = "170_1280467477.44751" 
+    .const 'Sub' $P699 = "170_1282016529.10767" 
     capture_lex $P699
-    .const 'Sub' $P691 = "168_1280467477.44751" 
+    .const 'Sub' $P691 = "168_1282016529.10767" 
     capture_lex $P691
-    .const 'Sub' $P681 = "166_1280467477.44751" 
+    .const 'Sub' $P681 = "166_1282016529.10767" 
     capture_lex $P681
-    .const 'Sub' $P657 = "162_1280467477.44751" 
+    .const 'Sub' $P657 = "162_1282016529.10767" 
     capture_lex $P657
-    .const 'Sub' $P634 = "160_1280467477.44751" 
+    .const 'Sub' $P634 = "160_1282016529.10767" 
     capture_lex $P634
-    .const 'Sub' $P627 = "158_1280467477.44751" 
+    .const 'Sub' $P627 = "158_1282016529.10767" 
     capture_lex $P627
-    .const 'Sub' $P620 = "156_1280467477.44751" 
+    .const 'Sub' $P620 = "156_1282016529.10767" 
     capture_lex $P620
-    .const 'Sub' $P610 = "152_1280467477.44751" 
+    .const 'Sub' $P610 = "152_1282016529.10767" 
     capture_lex $P610
-    .const 'Sub' $P602 = "150_1280467477.44751" 
+    .const 'Sub' $P602 = "150_1282016529.10767" 
     capture_lex $P602
-    .const 'Sub' $P596 = "148_1280467477.44751" 
+    .const 'Sub' $P596 = "148_1282016529.10767" 
     capture_lex $P596
-    .const 'Sub' $P583 = "146_1280467477.44751" 
+    .const 'Sub' $P583 = "146_1282016529.10767" 
     capture_lex $P583
-    .const 'Sub' $P576 = "144_1280467477.44751" 
+    .const 'Sub' $P576 = "144_1282016529.10767" 
     capture_lex $P576
-    .const 'Sub' $P569 = "142_1280467477.44751" 
+    .const 'Sub' $P569 = "142_1282016529.10767" 
     capture_lex $P569
-    .const 'Sub' $P562 = "140_1280467477.44751" 
+    .const 'Sub' $P562 = "140_1282016529.10767" 
     capture_lex $P562
-    .const 'Sub' $P535 = "136_1280467477.44751" 
+    .const 'Sub' $P535 = "136_1282016529.10767" 
     capture_lex $P535
-    .const 'Sub' $P526 = "134_1280467477.44751" 
+    .const 'Sub' $P526 = "134_1282016529.10767" 
     capture_lex $P526
-    .const 'Sub' $P519 = "132_1280467477.44751" 
+    .const 'Sub' $P519 = "132_1282016529.10767" 
     capture_lex $P519
-    .const 'Sub' $P510 = "128_1280467477.44751" 
+    .const 'Sub' $P510 = "128_1282016529.10767" 
     capture_lex $P510
-    .const 'Sub' $P505 = "126_1280467477.44751" 
+    .const 'Sub' $P505 = "126_1282016529.10767" 
     capture_lex $P505
-    .const 'Sub' $P493 = "124_1280467477.44751" 
+    .const 'Sub' $P493 = "124_1282016529.10767" 
     capture_lex $P493
-    .const 'Sub' $P481 = "122_1280467477.44751" 
+    .const 'Sub' $P481 = "122_1282016529.10767" 
     capture_lex $P481
-    .const 'Sub' $P474 = "120_1280467477.44751" 
+    .const 'Sub' $P474 = "120_1282016529.10767" 
     capture_lex $P474
-    .const 'Sub' $P469 = "118_1280467477.44751" 
+    .const 'Sub' $P469 = "118_1282016529.10767" 
     capture_lex $P469
-    .const 'Sub' $P463 = "116_1280467477.44751" 
+    .const 'Sub' $P463 = "116_1282016529.10767" 
     capture_lex $P463
-    .const 'Sub' $P457 = "114_1280467477.44751" 
+    .const 'Sub' $P457 = "114_1282016529.10767" 
     capture_lex $P457
-    .const 'Sub' $P447 = "111_1280467477.44751" 
+    .const 'Sub' $P447 = "111_1282016529.10767" 
     capture_lex $P447
-    .const 'Sub' $P441 = "109_1280467477.44751" 
+    .const 'Sub' $P441 = "109_1282016529.10767" 
     capture_lex $P441
-    .const 'Sub' $P435 = "107_1280467477.44751" 
+    .const 'Sub' $P435 = "107_1282016529.10767" 
     capture_lex $P435
-    .const 'Sub' $P429 = "105_1280467477.44751" 
+    .const 'Sub' $P429 = "105_1282016529.10767" 
     capture_lex $P429
-    .const 'Sub' $P423 = "103_1280467477.44751" 
+    .const 'Sub' $P423 = "103_1282016529.10767" 
     capture_lex $P423
-    .const 'Sub' $P417 = "101_1280467477.44751" 
+    .const 'Sub' $P417 = "101_1282016529.10767" 
     capture_lex $P417
-    .const 'Sub' $P411 = "99_1280467477.44751" 
+    .const 'Sub' $P411 = "99_1282016529.10767" 
     capture_lex $P411
-    .const 'Sub' $P402 = "97_1280467477.44751" 
+    .const 'Sub' $P402 = "97_1282016529.10767" 
     capture_lex $P402
-    .const 'Sub' $P393 = "95_1280467477.44751" 
+    .const 'Sub' $P393 = "95_1282016529.10767" 
     capture_lex $P393
-    .const 'Sub' $P384 = "93_1280467477.44751" 
+    .const 'Sub' $P384 = "93_1282016529.10767" 
     capture_lex $P384
-    .const 'Sub' $P371 = "89_1280467477.44751" 
+    .const 'Sub' $P371 = "89_1282016529.10767" 
     capture_lex $P371
-    .const 'Sub' $P362 = "87_1280467477.44751" 
+    .const 'Sub' $P362 = "87_1282016529.10767" 
     capture_lex $P362
-    .const 'Sub' $P352 = "83_1280467477.44751" 
+    .const 'Sub' $P352 = "83_1282016529.10767" 
     capture_lex $P352
-    .const 'Sub' $P345 = "81_1280467477.44751" 
+    .const 'Sub' $P345 = "81_1282016529.10767" 
     capture_lex $P345
-    .const 'Sub' $P338 = "79_1280467477.44751" 
+    .const 'Sub' $P338 = "79_1282016529.10767" 
     capture_lex $P338
-    .const 'Sub' $P326 = "75_1280467477.44751" 
+    .const 'Sub' $P326 = "75_1282016529.10767" 
     capture_lex $P326
-    .const 'Sub' $P318 = "73_1280467477.44751" 
+    .const 'Sub' $P318 = "73_1282016529.10767" 
     capture_lex $P318
-    .const 'Sub' $P310 = "71_1280467477.44751" 
+    .const 'Sub' $P310 = "71_1282016529.10767" 
     capture_lex $P310
-    .const 'Sub' $P290 = "69_1280467477.44751" 
+    .const 'Sub' $P290 = "69_1282016529.10767" 
     capture_lex $P290
-    .const 'Sub' $P281 = "67_1280467477.44751" 
+    .const 'Sub' $P281 = "67_1282016529.10767" 
     capture_lex $P281
-    .const 'Sub' $P263 = "64_1280467477.44751" 
+    .const 'Sub' $P263 = "64_1282016529.10767" 
     capture_lex $P263
-    .const 'Sub' $P245 = "62_1280467477.44751" 
+    .const 'Sub' $P245 = "62_1282016529.10767" 
     capture_lex $P245
-    .const 'Sub' $P236 = "58_1280467477.44751" 
+    .const 'Sub' $P236 = "58_1282016529.10767" 
     capture_lex $P236
-    .const 'Sub' $P231 = "56_1280467477.44751" 
+    .const 'Sub' $P231 = "56_1282016529.10767" 
     capture_lex $P231
-    .const 'Sub' $P222 = "52_1280467477.44751" 
+    .const 'Sub' $P222 = "52_1282016529.10767" 
     capture_lex $P222
-    .const 'Sub' $P217 = "50_1280467477.44751" 
+    .const 'Sub' $P217 = "50_1282016529.10767" 
     capture_lex $P217
-    .const 'Sub' $P212 = "48_1280467477.44751" 
+    .const 'Sub' $P212 = "48_1282016529.10767" 
     capture_lex $P212
-    .const 'Sub' $P203 = "46_1280467477.44751" 
+    .const 'Sub' $P203 = "46_1282016529.10767" 
     capture_lex $P203
-    .const 'Sub' $P196 = "44_1280467477.44751" 
+    .const 'Sub' $P196 = "44_1282016529.10767" 
     capture_lex $P196
-    .const 'Sub' $P190 = "42_1280467477.44751" 
+    .const 'Sub' $P190 = "42_1282016529.10767" 
     capture_lex $P190
-    .const 'Sub' $P182 = "40_1280467477.44751" 
+    .const 'Sub' $P182 = "40_1282016529.10767" 
     capture_lex $P182
-    .const 'Sub' $P176 = "38_1280467477.44751" 
+    .const 'Sub' $P176 = "38_1282016529.10767" 
     capture_lex $P176
-    .const 'Sub' $P170 = "36_1280467477.44751" 
+    .const 'Sub' $P170 = "36_1282016529.10767" 
     capture_lex $P170
-    .const 'Sub' $P155 = "33_1280467477.44751" 
+    .const 'Sub' $P155 = "33_1282016529.10767" 
     capture_lex $P155
-    .const 'Sub' $P141 = "31_1280467477.44751" 
+    .const 'Sub' $P141 = "31_1282016529.10767" 
     capture_lex $P141
-    .const 'Sub' $P134 = "29_1280467477.44751" 
+    .const 'Sub' $P134 = "29_1282016529.10767" 
     capture_lex $P134
-    .const 'Sub' $P95 = "26_1280467477.44751" 
+    .const 'Sub' $P95 = "26_1282016529.10767" 
     capture_lex $P95
-    .const 'Sub' $P80 = "23_1280467477.44751" 
+    .const 'Sub' $P80 = "23_1282016529.10767" 
     capture_lex $P80
-    .const 'Sub' $P69 = "21_1280467477.44751" 
+    .const 'Sub' $P69 = "21_1282016529.10767" 
     capture_lex $P69
-    .const 'Sub' $P57 = "19_1280467477.44751" 
+    .const 'Sub' $P57 = "19_1282016529.10767" 
     capture_lex $P57
-    .const 'Sub' $P49 = "17_1280467477.44751" 
+    .const 'Sub' $P49 = "17_1282016529.10767" 
     capture_lex $P49
-    .const 'Sub' $P42 = "15_1280467477.44751" 
+    .const 'Sub' $P42 = "15_1282016529.10767" 
     capture_lex $P42
-    .const 'Sub' $P35 = "13_1280467477.44751" 
+    .const 'Sub' $P35 = "13_1282016529.10767" 
     capture_lex $P35
-    .const 'Sub' $P15 = "12_1280467477.44751" 
+    .const 'Sub' $P15 = "12_1282016529.10767" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -377,13 +377,13 @@
     $P1402 = $P1340()
 .annotate 'line', 4
     .return ($P1402)
-    .const 'Sub' $P1404 = "370_1280467477.44751" 
+    .const 'Sub' $P1404 = "370_1282016529.10767" 
     .return ($P1404)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post373") :outer("11_1280467477.44751")
+.sub "" :load :init :subid("post373") :outer("11_1282016529.10767")
 .annotate 'line', 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     .local pmc block
@@ -441,7 +441,7 @@
 
 .namespace ["NQP";"Grammar"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("12_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "TOP"  :subid("12_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
@@ -531,7 +531,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "identifier"  :subid("13_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "identifier"  :subid("13_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx36_tgt
     .local int rx36_pos
@@ -539,7 +539,9 @@
     .local int rx36_eos
     .local int rx36_rep
     .local pmc rx36_cur
+    .local pmc rx36_debug
     (rx36_cur, rx36_pos, rx36_tgt, $I10) = self."!cursor_start"()
+    getattribute rx36_debug, rx36_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx36_cur
     .local pmc match
     .lex "$/", match
@@ -551,7 +553,9 @@
     substr rx36_tgt, rx36_tgt, rx36_off
   rx36_start:
     eq $I10, 1, rx36_restart
+    if_null rx36_debug, debug_384
     rx36_cur."!cursor_debug"("START ", "identifier")
+  debug_384:
     $I10 = self.'from'()
     ne $I10, -1, rxscan40_done
     goto rxscan40_scan
@@ -594,11 +598,15 @@
   rxquantr41_done:
   # rx pass
     rx36_cur."!cursor_pass"(rx36_pos, "identifier")
+    if_null rx36_debug, debug_385
     rx36_cur."!cursor_debug"("PASS  ", "identifier", " at pos=", rx36_pos)
+  debug_385:
     .return (rx36_cur)
   rx36_restart:
 .annotate 'line', 4
+    if_null rx36_debug, debug_386
     rx36_cur."!cursor_debug"("NEXT ", "identifier")
+  debug_386:
   rx36_fail:
     (rx36_rep, rx36_pos, $I10, $P10) = rx36_cur."!mark_fail"(0)
     lt rx36_pos, -1, rx36_done
@@ -606,14 +614,16 @@
     jump $I10
   rx36_done:
     rx36_cur."!cursor_fail"()
+    if_null rx36_debug, debug_387
     rx36_cur."!cursor_debug"("FAIL  ", "identifier")
+  debug_387:
     .return (rx36_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("14_1280467477.44751") :method
+.sub "!PREFIX__identifier"  :subid("14_1282016529.10767") :method
 .annotate 'line', 4
     $P38 = self."!PREFIX__!subrule"("ident", "")
     new $P39, "ResizablePMCArray"
@@ -623,7 +633,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "name"  :subid("15_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "name"  :subid("15_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx43_tgt
     .local int rx43_pos
@@ -631,8 +641,10 @@
     .local int rx43_eos
     .local int rx43_rep
     .local pmc rx43_cur
+    .local pmc rx43_debug
     (rx43_cur, rx43_pos, rx43_tgt, $I10) = self."!cursor_start"()
     rx43_cur."!cursor_caparray"("identifier")
+    getattribute rx43_debug, rx43_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx43_cur
     .local pmc match
     .lex "$/", match
@@ -644,7 +656,9 @@
     substr rx43_tgt, rx43_tgt, rx43_off
   rx43_start:
     eq $I10, 1, rx43_restart
+    if_null rx43_debug, debug_388
     rx43_cur."!cursor_debug"("START ", "name")
+  debug_388:
     $I10 = self.'from'()
     ne $I10, -1, rxscan46_done
     goto rxscan46_scan
@@ -690,11 +704,15 @@
   rxquantr47_done:
   # rx pass
     rx43_cur."!cursor_pass"(rx43_pos, "name")
+    if_null rx43_debug, debug_389
     rx43_cur."!cursor_debug"("PASS  ", "name", " at pos=", rx43_pos)
+  debug_389:
     .return (rx43_cur)
   rx43_restart:
 .annotate 'line', 4
+    if_null rx43_debug, debug_390
     rx43_cur."!cursor_debug"("NEXT ", "name")
+  debug_390:
   rx43_fail:
     (rx43_rep, rx43_pos, $I10, $P10) = rx43_cur."!mark_fail"(0)
     lt rx43_pos, -1, rx43_done
@@ -702,14 +720,16 @@
     jump $I10
   rx43_done:
     rx43_cur."!cursor_fail"()
+    if_null rx43_debug, debug_391
     rx43_cur."!cursor_debug"("FAIL  ", "name")
+  debug_391:
     .return (rx43_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name"  :subid("16_1280467477.44751") :method
+.sub "!PREFIX__name"  :subid("16_1282016529.10767") :method
 .annotate 'line', 4
     new $P45, "ResizablePMCArray"
     push $P45, ""
@@ -718,7 +738,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "deflongname"  :subid("17_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "deflongname"  :subid("17_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx50_tgt
     .local int rx50_pos
@@ -726,8 +746,10 @@
     .local int rx50_eos
     .local int rx50_rep
     .local pmc rx50_cur
+    .local pmc rx50_debug
     (rx50_cur, rx50_pos, rx50_tgt, $I10) = self."!cursor_start"()
     rx50_cur."!cursor_caparray"("colonpair")
+    getattribute rx50_debug, rx50_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx50_cur
     .local pmc match
     .lex "$/", match
@@ -739,7 +761,9 @@
     substr rx50_tgt, rx50_tgt, rx50_off
   rx50_start:
     eq $I10, 1, rx50_restart
+    if_null rx50_debug, debug_392
     rx50_cur."!cursor_debug"("START ", "deflongname")
+  debug_392:
     $I10 = self.'from'()
     ne $I10, -1, rxscan54_done
     goto rxscan54_scan
@@ -783,11 +807,15 @@
 .annotate 'line', 21
   # rx pass
     rx50_cur."!cursor_pass"(rx50_pos, "deflongname")
+    if_null rx50_debug, debug_393
     rx50_cur."!cursor_debug"("PASS  ", "deflongname", " at pos=", rx50_pos)
+  debug_393:
     .return (rx50_cur)
   rx50_restart:
 .annotate 'line', 4
+    if_null rx50_debug, debug_394
     rx50_cur."!cursor_debug"("NEXT ", "deflongname")
+  debug_394:
   rx50_fail:
     (rx50_rep, rx50_pos, $I10, $P10) = rx50_cur."!mark_fail"(0)
     lt rx50_pos, -1, rx50_done
@@ -795,14 +823,16 @@
     jump $I10
   rx50_done:
     rx50_cur."!cursor_fail"()
+    if_null rx50_debug, debug_395
     rx50_cur."!cursor_debug"("FAIL  ", "deflongname")
+  debug_395:
     .return (rx50_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname"  :subid("18_1280467477.44751") :method
+.sub "!PREFIX__deflongname"  :subid("18_1282016529.10767") :method
 .annotate 'line', 4
     $P52 = self."!PREFIX__!subrule"("identifier", "")
     new $P53, "ResizablePMCArray"
@@ -812,7 +842,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ENDSTMT"  :subid("19_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "ENDSTMT"  :subid("19_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx58_tgt
     .local int rx58_pos
@@ -820,7 +850,9 @@
     .local int rx58_eos
     .local int rx58_rep
     .local pmc rx58_cur
+    .local pmc rx58_debug
     (rx58_cur, rx58_pos, rx58_tgt, $I10) = self."!cursor_start"()
+    getattribute rx58_debug, rx58_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx58_cur
     .local pmc match
     .lex "$/", match
@@ -832,7 +864,9 @@
     substr rx58_tgt, rx58_tgt, rx58_off
   rx58_start:
     eq $I10, 1, rx58_restart
+    if_null rx58_debug, debug_396
     rx58_cur."!cursor_debug"("START ", "ENDSTMT")
+  debug_396:
     $I10 = self.'from'()
     ne $I10, -1, rxscan61_done
     goto rxscan61_scan
@@ -940,11 +974,15 @@
 .annotate 'line', 25
   # rx pass
     rx58_cur."!cursor_pass"(rx58_pos, "ENDSTMT")
+    if_null rx58_debug, debug_397
     rx58_cur."!cursor_debug"("PASS  ", "ENDSTMT", " at pos=", rx58_pos)
+  debug_397:
     .return (rx58_cur)
   rx58_restart:
 .annotate 'line', 4
+    if_null rx58_debug, debug_398
     rx58_cur."!cursor_debug"("NEXT ", "ENDSTMT")
+  debug_398:
   rx58_fail:
     (rx58_rep, rx58_pos, $I10, $P10) = rx58_cur."!mark_fail"(0)
     lt rx58_pos, -1, rx58_done
@@ -952,14 +990,16 @@
     jump $I10
   rx58_done:
     rx58_cur."!cursor_fail"()
+    if_null rx58_debug, debug_399
     rx58_cur."!cursor_debug"("FAIL  ", "ENDSTMT")
+  debug_399:
     .return (rx58_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT"  :subid("20_1280467477.44751") :method
+.sub "!PREFIX__ENDSTMT"  :subid("20_1282016529.10767") :method
 .annotate 'line', 4
     new $P60, "ResizablePMCArray"
     push $P60, ""
@@ -968,7 +1008,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ws"  :subid("21_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "ws"  :subid("21_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx70_tgt
     .local int rx70_pos
@@ -976,7 +1016,9 @@
     .local int rx70_eos
     .local int rx70_rep
     .local pmc rx70_cur
+    .local pmc rx70_debug
     (rx70_cur, rx70_pos, rx70_tgt, $I10) = self."!cursor_start"()
+    getattribute rx70_debug, rx70_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx70_cur
     .local pmc match
     .lex "$/", match
@@ -988,7 +1030,9 @@
     substr rx70_tgt, rx70_tgt, rx70_off
   rx70_start:
     eq $I10, 1, rx70_restart
+    if_null rx70_debug, debug_400
     rx70_cur."!cursor_debug"("START ", "ws")
+  debug_400:
     $I10 = self.'from'()
     ne $I10, -1, rxscan73_done
     goto rxscan73_scan
@@ -1052,8 +1096,8 @@
     add $I11, rx70_pos, 1
     gt $I11, rx70_eos, rx70_fail
     sub $I11, rx70_pos, rx70_off
-    substr $S10, rx70_tgt, $I11, 1
-    ne $S10, "#", rx70_fail
+    ord $I11, rx70_tgt, $I11
+    ne $I11, 35, rx70_fail
     add rx70_pos, 1
   # rx charclass_q N r 0..-1
     sub $I10, rx70_pos, rx70_off
@@ -1114,11 +1158,15 @@
 .annotate 'line', 32
   # rx pass
     rx70_cur."!cursor_pass"(rx70_pos, "ws")
+    if_null rx70_debug, debug_401
     rx70_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx70_pos)
+  debug_401:
     .return (rx70_cur)
   rx70_restart:
 .annotate 'line', 4
+    if_null rx70_debug, debug_402
     rx70_cur."!cursor_debug"("NEXT ", "ws")
+  debug_402:
   rx70_fail:
     (rx70_rep, rx70_pos, $I10, $P10) = rx70_cur."!mark_fail"(0)
     lt rx70_pos, -1, rx70_done
@@ -1126,14 +1174,16 @@
     jump $I10
   rx70_done:
     rx70_cur."!cursor_fail"()
+    if_null rx70_debug, debug_403
     rx70_cur."!cursor_debug"("FAIL  ", "ws")
+  debug_403:
     .return (rx70_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws"  :subid("22_1280467477.44751") :method
+.sub "!PREFIX__ws"  :subid("22_1282016529.10767") :method
 .annotate 'line', 4
     new $P72, "ResizablePMCArray"
     push $P72, ""
@@ -1143,9 +1193,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "unv"  :subid("23_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "unv"  :subid("23_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
-    .const 'Sub' $P88 = "25_1280467477.44751" 
+    .const 'Sub' $P88 = "25_1282016529.10767" 
     capture_lex $P88
     .local string rx81_tgt
     .local int rx81_pos
@@ -1153,7 +1203,9 @@
     .local int rx81_eos
     .local int rx81_rep
     .local pmc rx81_cur
+    .local pmc rx81_debug
     (rx81_cur, rx81_pos, rx81_tgt, $I10) = self."!cursor_start"()
+    getattribute rx81_debug, rx81_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx81_cur
     .local pmc match
     .lex "$/", match
@@ -1165,7 +1217,9 @@
     substr rx81_tgt, rx81_tgt, rx81_off
   rx81_start:
     eq $I10, 1, rx81_restart
+    if_null rx81_debug, debug_404
     rx81_cur."!cursor_debug"("START ", "unv")
+  debug_404:
     $I10 = self.'from'()
     ne $I10, -1, rxscan84_done
     goto rxscan84_scan
@@ -1193,7 +1247,7 @@
   rxanchor86_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx81_cur."!cursor_pos"(rx81_pos)
-    .const 'Sub' $P88 = "25_1280467477.44751" 
+    .const 'Sub' $P88 = "25_1282016529.10767" 
     capture_lex $P88
     $P10 = rx81_cur."before"($P88)
     unless $P10, rx81_fail
@@ -1228,8 +1282,8 @@
     add $I11, rx81_pos, 1
     gt $I11, rx81_eos, rx81_fail
     sub $I11, rx81_pos, rx81_off
-    substr $S10, rx81_tgt, $I11, 1
-    ne $S10, "#", rx81_fail
+    ord $I11, rx81_tgt, $I11
+    ne $I11, 35, rx81_fail
     add rx81_pos, 1
   # rx charclass_q N r 0..-1
     sub $I10, rx81_pos, rx81_off
@@ -1259,11 +1313,15 @@
 .annotate 'line', 43
   # rx pass
     rx81_cur."!cursor_pass"(rx81_pos, "unv")
+    if_null rx81_debug, debug_409
     rx81_cur."!cursor_debug"("PASS  ", "unv", " at pos=", rx81_pos)
+  debug_409:
     .return (rx81_cur)
   rx81_restart:
 .annotate 'line', 4
+    if_null rx81_debug, debug_410
     rx81_cur."!cursor_debug"("NEXT ", "unv")
+  debug_410:
   rx81_fail:
     (rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0)
     lt rx81_pos, -1, rx81_done
@@ -1271,14 +1329,16 @@
     jump $I10
   rx81_done:
     rx81_cur."!cursor_fail"()
+    if_null rx81_debug, debug_411
     rx81_cur."!cursor_debug"("FAIL  ", "unv")
+  debug_411:
     .return (rx81_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv"  :subid("24_1280467477.44751") :method
+.sub "!PREFIX__unv"  :subid("24_1282016529.10767") :method
 .annotate 'line', 4
     new $P83, "ResizablePMCArray"
     push $P83, ""
@@ -1289,7 +1349,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block87"  :anon :subid("25_1280467477.44751") :method :outer("23_1280467477.44751")
+.sub "_block87"  :anon :subid("25_1282016529.10767") :method :outer("23_1282016529.10767")
 .annotate 'line', 46
     .local string rx89_tgt
     .local int rx89_pos
@@ -1297,7 +1357,9 @@
     .local int rx89_eos
     .local int rx89_rep
     .local pmc rx89_cur
+    .local pmc rx89_debug
     (rx89_cur, rx89_pos, rx89_tgt, $I10) = self."!cursor_start"()
+    getattribute rx89_debug, rx89_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx89_cur
     .local pmc match
     .lex "$/", match
@@ -1309,7 +1371,9 @@
     substr rx89_tgt, rx89_tgt, rx89_off
   rx89_start:
     eq $I10, 1, rx89_restart
+    if_null rx89_debug, debug_405
     rx89_cur."!cursor_debug"("START ", "")
+  debug_405:
     $I10 = self.'from'()
     ne $I10, -1, rxscan90_done
     goto rxscan90_scan
@@ -1343,8 +1407,8 @@
     add $I11, rx89_pos, 1
     gt $I11, rx89_eos, rx89_fail
     sub $I11, rx89_pos, rx89_off
-    substr $S10, rx89_tgt, $I11, 1
-    ne $S10, "=", rx89_fail
+    ord $I11, rx89_tgt, $I11
+    ne $I11, 61, rx89_fail
     add rx89_pos, 1
   alt92_0:
     set_addr $I10, alt92_1
@@ -1361,16 +1425,20 @@
     add $I11, rx89_pos, 1
     gt $I11, rx89_eos, rx89_fail
     sub $I11, rx89_pos, rx89_off
-    substr $S10, rx89_tgt, $I11, 1
-    ne $S10, "\\", rx89_fail
+    ord $I11, rx89_tgt, $I11
+    ne $I11, 92, rx89_fail
     add rx89_pos, 1
   alt92_end:
   # rx pass
     rx89_cur."!cursor_pass"(rx89_pos, "")
+    if_null rx89_debug, debug_406
     rx89_cur."!cursor_debug"("PASS  ", "", " at pos=", rx89_pos)
+  debug_406:
     .return (rx89_cur)
   rx89_restart:
+    if_null rx89_debug, debug_407
     rx89_cur."!cursor_debug"("NEXT ", "")
+  debug_407:
   rx89_fail:
     (rx89_rep, rx89_pos, $I10, $P10) = rx89_cur."!mark_fail"(0)
     lt rx89_pos, -1, rx89_done
@@ -1378,16 +1446,18 @@
     jump $I10
   rx89_done:
     rx89_cur."!cursor_fail"()
+    if_null rx89_debug, debug_408
     rx89_cur."!cursor_debug"("FAIL  ", "")
+  debug_408:
     .return (rx89_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pod_comment"  :subid("26_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "pod_comment"  :subid("26_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
-    .const 'Sub' $P127 = "28_1280467477.44751" 
+    .const 'Sub' $P127 = "28_1282016529.10767" 
     capture_lex $P127
     .local string rx96_tgt
     .local int rx96_pos
@@ -1395,7 +1465,9 @@
     .local int rx96_eos
     .local int rx96_rep
     .local pmc rx96_cur
+    .local pmc rx96_debug
     (rx96_cur, rx96_pos, rx96_tgt, $I10) = self."!cursor_start"()
+    getattribute rx96_debug, rx96_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx96_cur
     .local pmc match
     .lex "$/", match
@@ -1407,7 +1479,9 @@
     substr rx96_tgt, rx96_tgt, rx96_off
   rx96_start:
     eq $I10, 1, rx96_restart
+    if_null rx96_debug, debug_412
     rx96_cur."!cursor_debug"("START ", "pod_comment")
+  debug_412:
     $I10 = self.'from'()
     ne $I10, -1, rxscan99_done
     goto rxscan99_scan
@@ -1450,8 +1524,8 @@
     add $I11, rx96_pos, 1
     gt $I11, rx96_eos, rx96_fail
     sub $I11, rx96_pos, rx96_off
-    substr $S10, rx96_tgt, $I11, 1
-    ne $S10, "=", rx96_fail
+    ord $I11, rx96_tgt, $I11
+    ne $I11, 61, rx96_fail
     add rx96_pos, 1
   alt102_0:
 .annotate 'line', 54
@@ -1777,8 +1851,8 @@
     add $I11, rx96_pos, 1
     gt $I11, rx96_eos, rx96_fail
     sub $I11, rx96_pos, rx96_off
-    substr $S10, rx96_tgt, $I11, 1
-    ne $S10, "#", rx96_fail
+    ord $I11, rx96_tgt, $I11
+    ne $I11, 35, rx96_fail
     add rx96_pos, 1
     goto alt117_end
   alt117_2:
@@ -1893,7 +1967,7 @@
   rxanchor125_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx96_cur."!cursor_pos"(rx96_pos)
-    .const 'Sub' $P127 = "28_1280467477.44751" 
+    .const 'Sub' $P127 = "28_1282016529.10767" 
     capture_lex $P127
     $P10 = rx96_cur."before"($P127)
     unless $P10, rx96_fail
@@ -1927,11 +2001,15 @@
 .annotate 'line', 52
   # rx pass
     rx96_cur."!cursor_pass"(rx96_pos, "pod_comment")
+    if_null rx96_debug, debug_417
     rx96_cur."!cursor_debug"("PASS  ", "pod_comment", " at pos=", rx96_pos)
+  debug_417:
     .return (rx96_cur)
   rx96_restart:
 .annotate 'line', 4
+    if_null rx96_debug, debug_418
     rx96_cur."!cursor_debug"("NEXT ", "pod_comment")
+  debug_418:
   rx96_fail:
     (rx96_rep, rx96_pos, $I10, $P10) = rx96_cur."!mark_fail"(0)
     lt rx96_pos, -1, rx96_done
@@ -1939,14 +2017,16 @@
     jump $I10
   rx96_done:
     rx96_cur."!cursor_fail"()
+    if_null rx96_debug, debug_419
     rx96_cur."!cursor_debug"("FAIL  ", "pod_comment")
+  debug_419:
     .return (rx96_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment"  :subid("27_1280467477.44751") :method
+.sub "!PREFIX__pod_comment"  :subid("27_1282016529.10767") :method
 .annotate 'line', 4
     new $P98, "ResizablePMCArray"
     push $P98, ""
@@ -1955,7 +2035,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block126"  :anon :subid("28_1280467477.44751") :method :outer("26_1280467477.44751")
+.sub "_block126"  :anon :subid("28_1282016529.10767") :method :outer("26_1282016529.10767")
 .annotate 'line', 69
     .local string rx128_tgt
     .local int rx128_pos
@@ -1963,7 +2043,9 @@
     .local int rx128_eos
     .local int rx128_rep
     .local pmc rx128_cur
+    .local pmc rx128_debug
     (rx128_cur, rx128_pos, rx128_tgt, $I10) = self."!cursor_start"()
+    getattribute rx128_debug, rx128_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx128_cur
     .local pmc match
     .lex "$/", match
@@ -1975,7 +2057,9 @@
     substr rx128_tgt, rx128_tgt, rx128_off
   rx128_start:
     eq $I10, 1, rx128_restart
+    if_null rx128_debug, debug_413
     rx128_cur."!cursor_debug"("START ", "")
+  debug_413:
     $I10 = self.'from'()
     ne $I10, -1, rxscan129_done
     goto rxscan129_scan
@@ -2013,8 +2097,8 @@
     add $I11, rx128_pos, 1
     gt $I11, rx128_eos, rx128_fail
     sub $I11, rx128_pos, rx128_off
-    substr $S10, rx128_tgt, $I11, 1
-    ne $S10, "=", rx128_fail
+    ord $I11, rx128_tgt, $I11
+    ne $I11, 61, rx128_fail
     add rx128_pos, 1
 .annotate 'line', 72
   # rx rxquantr132 ** 0..1
@@ -2063,10 +2147,14 @@
 .annotate 'line', 69
   # rx pass
     rx128_cur."!cursor_pass"(rx128_pos, "")
+    if_null rx128_debug, debug_414
     rx128_cur."!cursor_debug"("PASS  ", "", " at pos=", rx128_pos)
+  debug_414:
     .return (rx128_cur)
   rx128_restart:
+    if_null rx128_debug, debug_415
     rx128_cur."!cursor_debug"("NEXT ", "")
+  debug_415:
   rx128_fail:
     (rx128_rep, rx128_pos, $I10, $P10) = rx128_cur."!mark_fail"(0)
     lt rx128_pos, -1, rx128_done
@@ -2074,14 +2162,16 @@
     jump $I10
   rx128_done:
     rx128_cur."!cursor_fail"()
+    if_null rx128_debug, debug_416
     rx128_cur."!cursor_debug"("FAIL  ", "")
+  debug_416:
     .return (rx128_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "comp_unit"  :subid("29_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "comp_unit"  :subid("29_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx135_tgt
     .local int rx135_pos
@@ -2089,7 +2179,9 @@
     .local int rx135_eos
     .local int rx135_rep
     .local pmc rx135_cur
+    .local pmc rx135_debug
     (rx135_cur, rx135_pos, rx135_tgt, $I10) = self."!cursor_start"()
+    getattribute rx135_debug, rx135_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx135_cur
     .local pmc match
     .lex "$/", match
@@ -2101,7 +2193,9 @@
     substr rx135_tgt, rx135_tgt, rx135_off
   rx135_start:
     eq $I10, 1, rx135_restart
+    if_null rx135_debug, debug_420
     rx135_cur."!cursor_debug"("START ", "comp_unit")
+  debug_420:
     $I10 = self.'from'()
     ne $I10, -1, rxscan139_done
     goto rxscan139_scan
@@ -2151,11 +2245,15 @@
 .annotate 'line', 83
   # rx pass
     rx135_cur."!cursor_pass"(rx135_pos, "comp_unit")
+    if_null rx135_debug, debug_421
     rx135_cur."!cursor_debug"("PASS  ", "comp_unit", " at pos=", rx135_pos)
+  debug_421:
     .return (rx135_cur)
   rx135_restart:
 .annotate 'line', 4
+    if_null rx135_debug, debug_422
     rx135_cur."!cursor_debug"("NEXT ", "comp_unit")
+  debug_422:
   rx135_fail:
     (rx135_rep, rx135_pos, $I10, $P10) = rx135_cur."!mark_fail"(0)
     lt rx135_pos, -1, rx135_done
@@ -2163,14 +2261,16 @@
     jump $I10
   rx135_done:
     rx135_cur."!cursor_fail"()
+    if_null rx135_debug, debug_423
     rx135_cur."!cursor_debug"("FAIL  ", "comp_unit")
+  debug_423:
     .return (rx135_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit"  :subid("30_1280467477.44751") :method
+.sub "!PREFIX__comp_unit"  :subid("30_1282016529.10767") :method
 .annotate 'line', 4
     $P137 = self."!PREFIX__!subrule"("newpad", "")
     new $P138, "ResizablePMCArray"
@@ -2180,7 +2280,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statementlist"  :subid("31_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statementlist"  :subid("31_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx142_tgt
     .local int rx142_pos
@@ -2188,8 +2288,10 @@
     .local int rx142_eos
     .local int rx142_rep
     .local pmc rx142_cur
+    .local pmc rx142_debug
     (rx142_cur, rx142_pos, rx142_tgt, $I10) = self."!cursor_start"()
     rx142_cur."!cursor_caparray"("statement")
+    getattribute rx142_debug, rx142_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx142_cur
     .local pmc match
     .lex "$/", match
@@ -2201,7 +2303,9 @@
     substr rx142_tgt, rx142_tgt, rx142_off
   rx142_start:
     eq $I10, 1, rx142_restart
+    if_null rx142_debug, debug_424
     rx142_cur."!cursor_debug"("START ", "statementlist")
+  debug_424:
     $I10 = self.'from'()
     ne $I10, -1, rxscan147_done
     goto rxscan147_scan
@@ -2275,11 +2379,15 @@
 .annotate 'line', 90
   # rx pass
     rx142_cur."!cursor_pass"(rx142_pos, "statementlist")
+    if_null rx142_debug, debug_425
     rx142_cur."!cursor_debug"("PASS  ", "statementlist", " at pos=", rx142_pos)
+  debug_425:
     .return (rx142_cur)
   rx142_restart:
 .annotate 'line', 4
+    if_null rx142_debug, debug_426
     rx142_cur."!cursor_debug"("NEXT ", "statementlist")
+  debug_426:
   rx142_fail:
     (rx142_rep, rx142_pos, $I10, $P10) = rx142_cur."!mark_fail"(0)
     lt rx142_pos, -1, rx142_done
@@ -2287,14 +2395,16 @@
     jump $I10
   rx142_done:
     rx142_cur."!cursor_fail"()
+    if_null rx142_debug, debug_427
     rx142_cur."!cursor_debug"("FAIL  ", "statementlist")
+  debug_427:
     .return (rx142_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist"  :subid("32_1280467477.44751") :method
+.sub "!PREFIX__statementlist"  :subid("32_1282016529.10767") :method
 .annotate 'line', 4
     $P144 = self."!PREFIX__!subrule"("ws", "")
     $P145 = self."!PREFIX__!subrule"("ws", "")
@@ -2306,9 +2416,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement"  :subid("33_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement"  :subid("33_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
-    .const 'Sub' $P161 = "35_1280467477.44751" 
+    .const 'Sub' $P161 = "35_1282016529.10767" 
     capture_lex $P161
     .local string rx156_tgt
     .local int rx156_pos
@@ -2316,8 +2426,10 @@
     .local int rx156_eos
     .local int rx156_rep
     .local pmc rx156_cur
+    .local pmc rx156_debug
     (rx156_cur, rx156_pos, rx156_tgt, $I10) = self."!cursor_start"()
-    rx156_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
+    rx156_cur."!cursor_caparray"("statement_mod_cond", "statement_mod_loop")
+    getattribute rx156_debug, rx156_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx156_cur
     .local pmc match
     .lex "$/", match
@@ -2329,7 +2441,9 @@
     substr rx156_tgt, rx156_tgt, rx156_off
   rx156_start:
     eq $I10, 1, rx156_restart
+    if_null rx156_debug, debug_428
     rx156_cur."!cursor_debug"("START ", "statement")
+  debug_428:
     $I10 = self.'from'()
     ne $I10, -1, rxscan159_done
     goto rxscan159_scan
@@ -2345,7 +2459,7 @@
 .annotate 'line', 96
   # rx subrule "before" subtype=zerowidth negate=1
     rx156_cur."!cursor_pos"(rx156_pos)
-    .const 'Sub' $P161 = "35_1280467477.44751" 
+    .const 'Sub' $P161 = "35_1282016529.10767" 
     capture_lex $P161
     $P10 = rx156_cur."before"($P161)
     if $P10, rx156_fail
@@ -2441,11 +2555,15 @@
 .annotate 'line', 95
   # rx pass
     rx156_cur."!cursor_pass"(rx156_pos, "statement")
+    if_null rx156_debug, debug_433
     rx156_cur."!cursor_debug"("PASS  ", "statement", " at pos=", rx156_pos)
+  debug_433:
     .return (rx156_cur)
   rx156_restart:
 .annotate 'line', 4
+    if_null rx156_debug, debug_434
     rx156_cur."!cursor_debug"("NEXT ", "statement")
+  debug_434:
   rx156_fail:
     (rx156_rep, rx156_pos, $I10, $P10) = rx156_cur."!mark_fail"(0)
     lt rx156_pos, -1, rx156_done
@@ -2453,14 +2571,16 @@
     jump $I10
   rx156_done:
     rx156_cur."!cursor_fail"()
+    if_null rx156_debug, debug_435
     rx156_cur."!cursor_debug"("FAIL  ", "statement")
+  debug_435:
     .return (rx156_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement"  :subid("34_1280467477.44751") :method
+.sub "!PREFIX__statement"  :subid("34_1282016529.10767") :method
 .annotate 'line', 4
     new $P158, "ResizablePMCArray"
     push $P158, ""
@@ -2469,7 +2589,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block160"  :anon :subid("35_1280467477.44751") :method :outer("33_1280467477.44751")
+.sub "_block160"  :anon :subid("35_1282016529.10767") :method :outer("33_1282016529.10767")
 .annotate 'line', 96
     .local string rx162_tgt
     .local int rx162_pos
@@ -2477,7 +2597,9 @@
     .local int rx162_eos
     .local int rx162_rep
     .local pmc rx162_cur
+    .local pmc rx162_debug
     (rx162_cur, rx162_pos, rx162_tgt, $I10) = self."!cursor_start"()
+    getattribute rx162_debug, rx162_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx162_cur
     .local pmc match
     .lex "$/", match
@@ -2489,7 +2611,9 @@
     substr rx162_tgt, rx162_tgt, rx162_off
   rx162_start:
     eq $I10, 1, rx162_restart
+    if_null rx162_debug, debug_429
     rx162_cur."!cursor_debug"("START ", "")
+  debug_429:
     $I10 = self.'from'()
     ne $I10, -1, rxscan163_done
     goto rxscan163_scan
@@ -2519,10 +2643,14 @@
   alt164_end:
   # rx pass
     rx162_cur."!cursor_pass"(rx162_pos, "")
+    if_null rx162_debug, debug_430
     rx162_cur."!cursor_debug"("PASS  ", "", " at pos=", rx162_pos)
+  debug_430:
     .return (rx162_cur)
   rx162_restart:
+    if_null rx162_debug, debug_431
     rx162_cur."!cursor_debug"("NEXT ", "")
+  debug_431:
   rx162_fail:
     (rx162_rep, rx162_pos, $I10, $P10) = rx162_cur."!mark_fail"(0)
     lt rx162_pos, -1, rx162_done
@@ -2530,14 +2658,16 @@
     jump $I10
   rx162_done:
     rx162_cur."!cursor_fail"()
+    if_null rx162_debug, debug_432
     rx162_cur."!cursor_debug"("FAIL  ", "")
+  debug_432:
     .return (rx162_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "eat_terminator"  :subid("36_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "eat_terminator"  :subid("36_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx171_tgt
     .local int rx171_pos
@@ -2545,7 +2675,9 @@
     .local int rx171_eos
     .local int rx171_rep
     .local pmc rx171_cur
+    .local pmc rx171_debug
     (rx171_cur, rx171_pos, rx171_tgt, $I10) = self."!cursor_start"()
+    getattribute rx171_debug, rx171_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx171_cur
     .local pmc match
     .lex "$/", match
@@ -2557,7 +2689,9 @@
     substr rx171_tgt, rx171_tgt, rx171_off
   rx171_start:
     eq $I10, 1, rx171_restart
+    if_null rx171_debug, debug_436
     rx171_cur."!cursor_debug"("START ", "eat_terminator")
+  debug_436:
     $I10 = self.'from'()
     ne $I10, -1, rxscan174_done
     goto rxscan174_scan
@@ -2579,8 +2713,8 @@
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
     sub $I11, rx171_pos, rx171_off
-    substr $S10, rx171_tgt, $I11, 1
-    ne $S10, ";", rx171_fail
+    ord $I11, rx171_tgt, $I11
+    ne $I11, 59, rx171_fail
     add rx171_pos, 1
     goto alt175_end
   alt175_1:
@@ -2609,11 +2743,15 @@
 .annotate 'line', 108
   # rx pass
     rx171_cur."!cursor_pass"(rx171_pos, "eat_terminator")
+    if_null rx171_debug, debug_437
     rx171_cur."!cursor_debug"("PASS  ", "eat_terminator", " at pos=", rx171_pos)
+  debug_437:
     .return (rx171_cur)
   rx171_restart:
 .annotate 'line', 4
+    if_null rx171_debug, debug_438
     rx171_cur."!cursor_debug"("NEXT ", "eat_terminator")
+  debug_438:
   rx171_fail:
     (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0)
     lt rx171_pos, -1, rx171_done
@@ -2621,14 +2759,16 @@
     jump $I10
   rx171_done:
     rx171_cur."!cursor_fail"()
+    if_null rx171_debug, debug_439
     rx171_cur."!cursor_debug"("FAIL  ", "eat_terminator")
+  debug_439:
     .return (rx171_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator"  :subid("37_1280467477.44751") :method
+.sub "!PREFIX__eat_terminator"  :subid("37_1282016529.10767") :method
 .annotate 'line', 4
     new $P173, "ResizablePMCArray"
     push $P173, ""
@@ -2640,7 +2780,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "xblock"  :subid("38_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "xblock"  :subid("38_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx177_tgt
     .local int rx177_pos
@@ -2648,7 +2788,9 @@
     .local int rx177_eos
     .local int rx177_rep
     .local pmc rx177_cur
+    .local pmc rx177_debug
     (rx177_cur, rx177_pos, rx177_tgt, $I10) = self."!cursor_start"()
+    getattribute rx177_debug, rx177_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx177_cur
     .local pmc match
     .lex "$/", match
@@ -2660,7 +2802,9 @@
     substr rx177_tgt, rx177_tgt, rx177_off
   rx177_start:
     eq $I10, 1, rx177_restart
+    if_null rx177_debug, debug_440
     rx177_cur."!cursor_debug"("START ", "xblock")
+  debug_440:
     $I10 = self.'from'()
     ne $I10, -1, rxscan181_done
     goto rxscan181_scan
@@ -2696,11 +2840,15 @@
 .annotate 'line', 115
   # rx pass
     rx177_cur."!cursor_pass"(rx177_pos, "xblock")
+    if_null rx177_debug, debug_441
     rx177_cur."!cursor_debug"("PASS  ", "xblock", " at pos=", rx177_pos)
+  debug_441:
     .return (rx177_cur)
   rx177_restart:
 .annotate 'line', 4
+    if_null rx177_debug, debug_442
     rx177_cur."!cursor_debug"("NEXT ", "xblock")
+  debug_442:
   rx177_fail:
     (rx177_rep, rx177_pos, $I10, $P10) = rx177_cur."!mark_fail"(0)
     lt rx177_pos, -1, rx177_done
@@ -2708,14 +2856,16 @@
     jump $I10
   rx177_done:
     rx177_cur."!cursor_fail"()
+    if_null rx177_debug, debug_443
     rx177_cur."!cursor_debug"("FAIL  ", "xblock")
+  debug_443:
     .return (rx177_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__xblock"  :subid("39_1280467477.44751") :method
+.sub "!PREFIX__xblock"  :subid("39_1282016529.10767") :method
 .annotate 'line', 4
     $P179 = self."!PREFIX__!subrule"("EXPR", "")
     new $P180, "ResizablePMCArray"
@@ -2725,7 +2875,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pblock"  :subid("40_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "pblock"  :subid("40_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx183_tgt
     .local int rx183_pos
@@ -2733,7 +2883,9 @@
     .local int rx183_eos
     .local int rx183_rep
     .local pmc rx183_cur
+    .local pmc rx183_debug
     (rx183_cur, rx183_pos, rx183_tgt, $I10) = self."!cursor_start"()
+    getattribute rx183_debug, rx183_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx183_cur
     .local pmc match
     .lex "$/", match
@@ -2745,7 +2897,9 @@
     substr rx183_tgt, rx183_tgt, rx183_off
   rx183_start:
     eq $I10, 1, rx183_restart
+    if_null rx183_debug, debug_444
     rx183_cur."!cursor_debug"("START ", "pblock")
+  debug_444:
     $I10 = self.'from'()
     ne $I10, -1, rxscan188_done
     goto rxscan188_scan
@@ -2829,11 +2983,15 @@
 .annotate 'line', 119
   # rx pass
     rx183_cur."!cursor_pass"(rx183_pos, "pblock")
+    if_null rx183_debug, debug_445
     rx183_cur."!cursor_debug"("PASS  ", "pblock", " at pos=", rx183_pos)
+  debug_445:
     .return (rx183_cur)
   rx183_restart:
 .annotate 'line', 4
+    if_null rx183_debug, debug_446
     rx183_cur."!cursor_debug"("NEXT ", "pblock")
+  debug_446:
   rx183_fail:
     (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
     lt rx183_pos, -1, rx183_done
@@ -2841,14 +2999,16 @@
     jump $I10
   rx183_done:
     rx183_cur."!cursor_fail"()
+    if_null rx183_debug, debug_447
     rx183_cur."!cursor_debug"("FAIL  ", "pblock")
+  debug_447:
     .return (rx183_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock"  :subid("41_1280467477.44751") :method
+.sub "!PREFIX__pblock"  :subid("41_1282016529.10767") :method
 .annotate 'line', 4
     $P185 = self."!PREFIX__!subrule"("panic", "")
     $P186 = self."!PREFIX__!subrule"("lambda", "")
@@ -2861,7 +3021,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "lambda"  :subid("42_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "lambda"  :subid("42_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx191_tgt
     .local int rx191_pos
@@ -2869,7 +3029,9 @@
     .local int rx191_eos
     .local int rx191_rep
     .local pmc rx191_cur
+    .local pmc rx191_debug
     (rx191_cur, rx191_pos, rx191_tgt, $I10) = self."!cursor_start"()
+    getattribute rx191_debug, rx191_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx191_cur
     .local pmc match
     .lex "$/", match
@@ -2881,7 +3043,9 @@
     substr rx191_tgt, rx191_tgt, rx191_off
   rx191_start:
     eq $I10, 1, rx191_restart
+    if_null rx191_debug, debug_448
     rx191_cur."!cursor_debug"("START ", "lambda")
+  debug_448:
     $I10 = self.'from'()
     ne $I10, -1, rxscan194_done
     goto rxscan194_scan
@@ -2917,11 +3081,15 @@
   alt195_end:
   # rx pass
     rx191_cur."!cursor_pass"(rx191_pos, "lambda")
+    if_null rx191_debug, debug_449
     rx191_cur."!cursor_debug"("PASS  ", "lambda", " at pos=", rx191_pos)
+  debug_449:
     .return (rx191_cur)
   rx191_restart:
 .annotate 'line', 4
+    if_null rx191_debug, debug_450
     rx191_cur."!cursor_debug"("NEXT ", "lambda")
+  debug_450:
   rx191_fail:
     (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0)
     lt rx191_pos, -1, rx191_done
@@ -2929,14 +3097,16 @@
     jump $I10
   rx191_done:
     rx191_cur."!cursor_fail"()
+    if_null rx191_debug, debug_451
     rx191_cur."!cursor_debug"("FAIL  ", "lambda")
+  debug_451:
     .return (rx191_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda"  :subid("43_1280467477.44751") :method
+.sub "!PREFIX__lambda"  :subid("43_1282016529.10767") :method
 .annotate 'line', 4
     new $P193, "ResizablePMCArray"
     push $P193, "<->"
@@ -2946,7 +3116,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "block"  :subid("44_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "block"  :subid("44_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx197_tgt
     .local int rx197_pos
@@ -2954,7 +3124,9 @@
     .local int rx197_eos
     .local int rx197_rep
     .local pmc rx197_cur
+    .local pmc rx197_debug
     (rx197_cur, rx197_pos, rx197_tgt, $I10) = self."!cursor_start"()
+    getattribute rx197_debug, rx197_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx197_cur
     .local pmc match
     .lex "$/", match
@@ -2966,7 +3138,9 @@
     substr rx197_tgt, rx197_tgt, rx197_off
   rx197_start:
     eq $I10, 1, rx197_restart
+    if_null rx197_debug, debug_452
     rx197_cur."!cursor_debug"("START ", "block")
+  debug_452:
     $I10 = self.'from'()
     ne $I10, -1, rxscan201_done
     goto rxscan201_scan
@@ -3014,11 +3188,15 @@
 .annotate 'line', 132
   # rx pass
     rx197_cur."!cursor_pass"(rx197_pos, "block")
+    if_null rx197_debug, debug_453
     rx197_cur."!cursor_debug"("PASS  ", "block", " at pos=", rx197_pos)
+  debug_453:
     .return (rx197_cur)
   rx197_restart:
 .annotate 'line', 4
+    if_null rx197_debug, debug_454
     rx197_cur."!cursor_debug"("NEXT ", "block")
+  debug_454:
   rx197_fail:
     (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0)
     lt rx197_pos, -1, rx197_done
@@ -3026,14 +3204,16 @@
     jump $I10
   rx197_done:
     rx197_cur."!cursor_fail"()
+    if_null rx197_debug, debug_455
     rx197_cur."!cursor_debug"("FAIL  ", "block")
+  debug_455:
     .return (rx197_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block"  :subid("45_1280467477.44751") :method
+.sub "!PREFIX__block"  :subid("45_1282016529.10767") :method
 .annotate 'line', 4
     $P199 = self."!PREFIX__!subrule"("panic", "")
     new $P200, "ResizablePMCArray"
@@ -3044,7 +3224,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blockoid"  :subid("46_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "blockoid"  :subid("46_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx204_tgt
     .local int rx204_pos
@@ -3052,7 +3232,9 @@
     .local int rx204_eos
     .local int rx204_rep
     .local pmc rx204_cur
+    .local pmc rx204_debug
     (rx204_cur, rx204_pos, rx204_tgt, $I10) = self."!cursor_start"()
+    getattribute rx204_debug, rx204_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx204_cur
     .local pmc match
     .lex "$/", match
@@ -3064,7 +3246,9 @@
     substr rx204_tgt, rx204_tgt, rx204_off
   rx204_start:
     eq $I10, 1, rx204_restart
+    if_null rx204_debug, debug_456
     rx204_cur."!cursor_debug"("START ", "blockoid")
+  debug_456:
     $I10 = self.'from'()
     ne $I10, -1, rxscan208_done
     goto rxscan208_scan
@@ -3088,8 +3272,8 @@
     add $I11, rx204_pos, 1
     gt $I11, rx204_eos, rx204_fail
     sub $I11, rx204_pos, rx204_off
-    substr $S10, rx204_tgt, $I11, 1
-    ne $S10, "{", rx204_fail
+    ord $I11, rx204_tgt, $I11
+    ne $I11, 123, rx204_fail
     add rx204_pos, 1
   # rx subrule "statementlist" subtype=capture negate=
     rx204_cur."!cursor_pos"(rx204_pos)
@@ -3105,8 +3289,8 @@
     add $I11, rx204_pos, 1
     gt $I11, rx204_eos, rx204_fail
     sub $I11, rx204_pos, rx204_off
-    substr $S10, rx204_tgt, $I11, 1
-    ne $S10, "}", rx204_fail
+    ord $I11, rx204_tgt, $I11
+    ne $I11, 125, rx204_fail
     add rx204_pos, 1
     goto alt209_end
   alt209_1:
@@ -3131,11 +3315,15 @@
 .annotate 'line', 138
   # rx pass
     rx204_cur."!cursor_pass"(rx204_pos, "blockoid")
+    if_null rx204_debug, debug_457
     rx204_cur."!cursor_debug"("PASS  ", "blockoid", " at pos=", rx204_pos)
+  debug_457:
     .return (rx204_cur)
   rx204_restart:
 .annotate 'line', 4
+    if_null rx204_debug, debug_458
     rx204_cur."!cursor_debug"("NEXT ", "blockoid")
+  debug_458:
   rx204_fail:
     (rx204_rep, rx204_pos, $I10, $P10) = rx204_cur."!mark_fail"(0)
     lt rx204_pos, -1, rx204_done
@@ -3143,14 +3331,16 @@
     jump $I10
   rx204_done:
     rx204_cur."!cursor_fail"()
+    if_null rx204_debug, debug_459
     rx204_cur."!cursor_debug"("FAIL  ", "blockoid")
+  debug_459:
     .return (rx204_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid"  :subid("47_1280467477.44751") :method
+.sub "!PREFIX__blockoid"  :subid("47_1282016529.10767") :method
 .annotate 'line', 4
     $P206 = self."!PREFIX__!subrule"("finishpad", "")
     new $P207, "ResizablePMCArray"
@@ -3160,7 +3350,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "newpad"  :subid("48_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "newpad"  :subid("48_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx213_tgt
     .local int rx213_pos
@@ -3168,7 +3358,9 @@
     .local int rx213_eos
     .local int rx213_rep
     .local pmc rx213_cur
+    .local pmc rx213_debug
     (rx213_cur, rx213_pos, rx213_tgt, $I10) = self."!cursor_start"()
+    getattribute rx213_debug, rx213_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx213_cur
     .local pmc match
     .lex "$/", match
@@ -3180,7 +3372,9 @@
     substr rx213_tgt, rx213_tgt, rx213_off
   rx213_start:
     eq $I10, 1, rx213_restart
+    if_null rx213_debug, debug_460
     rx213_cur."!cursor_debug"("START ", "newpad")
+  debug_460:
     $I10 = self.'from'()
     ne $I10, -1, rxscan216_done
     goto rxscan216_scan
@@ -3196,11 +3390,15 @@
 .annotate 'line', 144
   # rx pass
     rx213_cur."!cursor_pass"(rx213_pos, "newpad")
+    if_null rx213_debug, debug_461
     rx213_cur."!cursor_debug"("PASS  ", "newpad", " at pos=", rx213_pos)
+  debug_461:
     .return (rx213_cur)
   rx213_restart:
 .annotate 'line', 4
+    if_null rx213_debug, debug_462
     rx213_cur."!cursor_debug"("NEXT ", "newpad")
+  debug_462:
   rx213_fail:
     (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0)
     lt rx213_pos, -1, rx213_done
@@ -3208,14 +3406,16 @@
     jump $I10
   rx213_done:
     rx213_cur."!cursor_fail"()
+    if_null rx213_debug, debug_463
     rx213_cur."!cursor_debug"("FAIL  ", "newpad")
+  debug_463:
     .return (rx213_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad"  :subid("49_1280467477.44751") :method
+.sub "!PREFIX__newpad"  :subid("49_1282016529.10767") :method
 .annotate 'line', 4
     new $P215, "ResizablePMCArray"
     push $P215, ""
@@ -3224,7 +3424,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "outerctx"  :subid("50_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "outerctx"  :subid("50_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx218_tgt
     .local int rx218_pos
@@ -3232,7 +3432,9 @@
     .local int rx218_eos
     .local int rx218_rep
     .local pmc rx218_cur
+    .local pmc rx218_debug
     (rx218_cur, rx218_pos, rx218_tgt, $I10) = self."!cursor_start"()
+    getattribute rx218_debug, rx218_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx218_cur
     .local pmc match
     .lex "$/", match
@@ -3244,7 +3446,9 @@
     substr rx218_tgt, rx218_tgt, rx218_off
   rx218_start:
     eq $I10, 1, rx218_restart
+    if_null rx218_debug, debug_464
     rx218_cur."!cursor_debug"("START ", "outerctx")
+  debug_464:
     $I10 = self.'from'()
     ne $I10, -1, rxscan221_done
     goto rxscan221_scan
@@ -3260,11 +3464,15 @@
 .annotate 'line', 145
   # rx pass
     rx218_cur."!cursor_pass"(rx218_pos, "outerctx")
+    if_null rx218_debug, debug_465
     rx218_cur."!cursor_debug"("PASS  ", "outerctx", " at pos=", rx218_pos)
+  debug_465:
     .return (rx218_cur)
   rx218_restart:
 .annotate 'line', 4
+    if_null rx218_debug, debug_466
     rx218_cur."!cursor_debug"("NEXT ", "outerctx")
+  debug_466:
   rx218_fail:
     (rx218_rep, rx218_pos, $I10, $P10) = rx218_cur."!mark_fail"(0)
     lt rx218_pos, -1, rx218_done
@@ -3272,14 +3480,16 @@
     jump $I10
   rx218_done:
     rx218_cur."!cursor_fail"()
+    if_null rx218_debug, debug_467
     rx218_cur."!cursor_debug"("FAIL  ", "outerctx")
+  debug_467:
     .return (rx218_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__outerctx"  :subid("51_1280467477.44751") :method
+.sub "!PREFIX__outerctx"  :subid("51_1282016529.10767") :method
 .annotate 'line', 4
     new $P220, "ResizablePMCArray"
     push $P220, ""
@@ -3288,7 +3498,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "finishpad"  :subid("52_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "finishpad"  :subid("52_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx223_tgt
     .local int rx223_pos
@@ -3296,7 +3506,9 @@
     .local int rx223_eos
     .local int rx223_rep
     .local pmc rx223_cur
+    .local pmc rx223_debug
     (rx223_cur, rx223_pos, rx223_tgt, $I10) = self."!cursor_start"()
+    getattribute rx223_debug, rx223_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx223_cur
     .local pmc match
     .lex "$/", match
@@ -3308,7 +3520,9 @@
     substr rx223_tgt, rx223_tgt, rx223_off
   rx223_start:
     eq $I10, 1, rx223_restart
+    if_null rx223_debug, debug_468
     rx223_cur."!cursor_debug"("START ", "finishpad")
+  debug_468:
     $I10 = self.'from'()
     ne $I10, -1, rxscan226_done
     goto rxscan226_scan
@@ -3324,11 +3538,15 @@
 .annotate 'line', 146
   # rx pass
     rx223_cur."!cursor_pass"(rx223_pos, "finishpad")
+    if_null rx223_debug, debug_469
     rx223_cur."!cursor_debug"("PASS  ", "finishpad", " at pos=", rx223_pos)
+  debug_469:
     .return (rx223_cur)
   rx223_restart:
 .annotate 'line', 4
+    if_null rx223_debug, debug_470
     rx223_cur."!cursor_debug"("NEXT ", "finishpad")
+  debug_470:
   rx223_fail:
     (rx223_rep, rx223_pos, $I10, $P10) = rx223_cur."!mark_fail"(0)
     lt rx223_pos, -1, rx223_done
@@ -3336,14 +3554,16 @@
     jump $I10
   rx223_done:
     rx223_cur."!cursor_fail"()
+    if_null rx223_debug, debug_471
     rx223_cur."!cursor_debug"("FAIL  ", "finishpad")
+  debug_471:
     .return (rx223_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad"  :subid("53_1280467477.44751") :method
+.sub "!PREFIX__finishpad"  :subid("53_1282016529.10767") :method
 .annotate 'line', 4
     new $P225, "ResizablePMCArray"
     push $P225, ""
@@ -3352,7 +3572,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator"  :subid("54_1280467477.44751") :method
+.sub "terminator"  :subid("54_1282016529.10767") :method
 .annotate 'line', 148
     $P228 = self."!protoregex"("terminator")
     .return ($P228)
@@ -3360,7 +3580,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator"  :subid("55_1280467477.44751") :method
+.sub "!PREFIX__terminator"  :subid("55_1282016529.10767") :method
 .annotate 'line', 148
     $P230 = self."!PREFIX__!protoregex"("terminator")
     .return ($P230)
@@ -3368,7 +3588,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>"  :subid("56_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "terminator:sym<;>"  :subid("56_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx232_tgt
     .local int rx232_pos
@@ -3376,7 +3596,9 @@
     .local int rx232_eos
     .local int rx232_rep
     .local pmc rx232_cur
+    .local pmc rx232_debug
     (rx232_cur, rx232_pos, rx232_tgt, $I10) = self."!cursor_start"()
+    getattribute rx232_debug, rx232_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx232_cur
     .local pmc match
     .lex "$/", match
@@ -3388,7 +3610,9 @@
     substr rx232_tgt, rx232_tgt, rx232_off
   rx232_start:
     eq $I10, 1, rx232_restart
+    if_null rx232_debug, debug_472
     rx232_cur."!cursor_debug"("START ", "terminator:sym<;>")
+  debug_472:
     $I10 = self.'from'()
     ne $I10, -1, rxscan235_done
     goto rxscan235_scan
@@ -3410,11 +3634,15 @@
     lt $I11, 0, rx232_fail
   # rx pass
     rx232_cur."!cursor_pass"(rx232_pos, "terminator:sym<;>")
+    if_null rx232_debug, debug_473
     rx232_cur."!cursor_debug"("PASS  ", "terminator:sym<;>", " at pos=", rx232_pos)
+  debug_473:
     .return (rx232_cur)
   rx232_restart:
 .annotate 'line', 4
+    if_null rx232_debug, debug_474
     rx232_cur."!cursor_debug"("NEXT ", "terminator:sym<;>")
+  debug_474:
   rx232_fail:
     (rx232_rep, rx232_pos, $I10, $P10) = rx232_cur."!mark_fail"(0)
     lt rx232_pos, -1, rx232_done
@@ -3422,14 +3650,16 @@
     jump $I10
   rx232_done:
     rx232_cur."!cursor_fail"()
+    if_null rx232_debug, debug_475
     rx232_cur."!cursor_debug"("FAIL  ", "terminator:sym<;>")
+  debug_475:
     .return (rx232_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>"  :subid("57_1280467477.44751") :method
+.sub "!PREFIX__terminator:sym<;>"  :subid("57_1282016529.10767") :method
 .annotate 'line', 4
     new $P234, "ResizablePMCArray"
     push $P234, ";"
@@ -3438,7 +3668,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>"  :subid("58_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "terminator:sym<}>"  :subid("58_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx237_tgt
     .local int rx237_pos
@@ -3446,7 +3676,9 @@
     .local int rx237_eos
     .local int rx237_rep
     .local pmc rx237_cur
+    .local pmc rx237_debug
     (rx237_cur, rx237_pos, rx237_tgt, $I10) = self."!cursor_start"()
+    getattribute rx237_debug, rx237_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx237_cur
     .local pmc match
     .lex "$/", match
@@ -3458,7 +3690,9 @@
     substr rx237_tgt, rx237_tgt, rx237_off
   rx237_start:
     eq $I10, 1, rx237_restart
+    if_null rx237_debug, debug_476
     rx237_cur."!cursor_debug"("START ", "terminator:sym<}>")
+  debug_476:
     $I10 = self.'from'()
     ne $I10, -1, rxscan240_done
     goto rxscan240_scan
@@ -3480,11 +3714,15 @@
     lt $I11, 0, rx237_fail
   # rx pass
     rx237_cur."!cursor_pass"(rx237_pos, "terminator:sym<}>")
+    if_null rx237_debug, debug_477
     rx237_cur."!cursor_debug"("PASS  ", "terminator:sym<}>", " at pos=", rx237_pos)
+  debug_477:
     .return (rx237_cur)
   rx237_restart:
 .annotate 'line', 4
+    if_null rx237_debug, debug_478
     rx237_cur."!cursor_debug"("NEXT ", "terminator:sym<}>")
+  debug_478:
   rx237_fail:
     (rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0)
     lt rx237_pos, -1, rx237_done
@@ -3492,14 +3730,16 @@
     jump $I10
   rx237_done:
     rx237_cur."!cursor_fail"()
+    if_null rx237_debug, debug_479
     rx237_cur."!cursor_debug"("FAIL  ", "terminator:sym<}>")
+  debug_479:
     .return (rx237_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>"  :subid("59_1280467477.44751") :method
+.sub "!PREFIX__terminator:sym<}>"  :subid("59_1282016529.10767") :method
 .annotate 'line', 4
     new $P239, "ResizablePMCArray"
     push $P239, "}"
@@ -3508,7 +3748,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control"  :subid("60_1280467477.44751") :method
+.sub "statement_control"  :subid("60_1282016529.10767") :method
 .annotate 'line', 155
     $P242 = self."!protoregex"("statement_control")
     .return ($P242)
@@ -3516,7 +3756,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control"  :subid("61_1280467477.44751") :method
+.sub "!PREFIX__statement_control"  :subid("61_1282016529.10767") :method
 .annotate 'line', 155
     $P244 = self."!PREFIX__!protoregex"("statement_control")
     .return ($P244)
@@ -3524,7 +3764,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<if>"  :subid("62_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<if>"  :subid("62_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx246_tgt
     .local int rx246_pos
@@ -3532,8 +3772,10 @@
     .local int rx246_eos
     .local int rx246_rep
     .local pmc rx246_cur
+    .local pmc rx246_debug
     (rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"()
-    rx246_cur."!cursor_caparray"("xblock", "else")
+    rx246_cur."!cursor_caparray"("else", "xblock")
+    getattribute rx246_debug, rx246_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx246_cur
     .local pmc match
     .lex "$/", match
@@ -3545,7 +3787,9 @@
     substr rx246_tgt, rx246_tgt, rx246_off
   rx246_start:
     eq $I10, 1, rx246_restart
+    if_null rx246_debug, debug_480
     rx246_cur."!cursor_debug"("START ", "statement_control:sym<if>")
+  debug_480:
     $I10 = self.'from'()
     ne $I10, -1, rxscan249_done
     goto rxscan249_scan
@@ -3706,11 +3950,15 @@
 .annotate 'line', 157
   # rx pass
     rx246_cur."!cursor_pass"(rx246_pos, "statement_control:sym<if>")
+    if_null rx246_debug, debug_481
     rx246_cur."!cursor_debug"("PASS  ", "statement_control:sym<if>", " at pos=", rx246_pos)
+  debug_481:
     .return (rx246_cur)
   rx246_restart:
 .annotate 'line', 4
+    if_null rx246_debug, debug_482
     rx246_cur."!cursor_debug"("NEXT ", "statement_control:sym<if>")
+  debug_482:
   rx246_fail:
     (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
     lt rx246_pos, -1, rx246_done
@@ -3718,14 +3966,16 @@
     jump $I10
   rx246_done:
     rx246_cur."!cursor_fail"()
+    if_null rx246_debug, debug_483
     rx246_cur."!cursor_debug"("FAIL  ", "statement_control:sym<if>")
+  debug_483:
     .return (rx246_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>"  :subid("63_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<if>"  :subid("63_1282016529.10767") :method
 .annotate 'line', 4
     new $P248, "ResizablePMCArray"
     push $P248, "if"
@@ -3734,9 +3984,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<unless>"  :subid("64_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<unless>"  :subid("64_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
-    .const 'Sub' $P274 = "66_1280467477.44751" 
+    .const 'Sub' $P274 = "66_1282016529.10767" 
     capture_lex $P274
     .local string rx264_tgt
     .local int rx264_pos
@@ -3744,7 +3994,9 @@
     .local int rx264_eos
     .local int rx264_rep
     .local pmc rx264_cur
+    .local pmc rx264_debug
     (rx264_cur, rx264_pos, rx264_tgt, $I10) = self."!cursor_start"()
+    getattribute rx264_debug, rx264_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx264_cur
     .local pmc match
     .lex "$/", match
@@ -3756,7 +4008,9 @@
     substr rx264_tgt, rx264_tgt, rx264_off
   rx264_start:
     eq $I10, 1, rx264_restart
+    if_null rx264_debug, debug_484
     rx264_cur."!cursor_debug"("START ", "statement_control:sym<unless>")
+  debug_484:
     $I10 = self.'from'()
     ne $I10, -1, rxscan267_done
     goto rxscan267_scan
@@ -3826,7 +4080,7 @@
     rx264_pos = $P10."pos"()
   # rx subrule "before" subtype=zerowidth negate=1
     rx264_cur."!cursor_pos"(rx264_pos)
-    .const 'Sub' $P274 = "66_1280467477.44751" 
+    .const 'Sub' $P274 = "66_1282016529.10767" 
     capture_lex $P274
     $P10 = rx264_cur."before"($P274)
     if $P10, rx264_fail
@@ -3861,11 +4115,15 @@
 .annotate 'line', 164
   # rx pass
     rx264_cur."!cursor_pass"(rx264_pos, "statement_control:sym<unless>")
+    if_null rx264_debug, debug_489
     rx264_cur."!cursor_debug"("PASS  ", "statement_control:sym<unless>", " at pos=", rx264_pos)
+  debug_489:
     .return (rx264_cur)
   rx264_restart:
 .annotate 'line', 4
+    if_null rx264_debug, debug_490
     rx264_cur."!cursor_debug"("NEXT ", "statement_control:sym<unless>")
+  debug_490:
   rx264_fail:
     (rx264_rep, rx264_pos, $I10, $P10) = rx264_cur."!mark_fail"(0)
     lt rx264_pos, -1, rx264_done
@@ -3873,14 +4131,16 @@
     jump $I10
   rx264_done:
     rx264_cur."!cursor_fail"()
+    if_null rx264_debug, debug_491
     rx264_cur."!cursor_debug"("FAIL  ", "statement_control:sym<unless>")
+  debug_491:
     .return (rx264_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>"  :subid("65_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<unless>"  :subid("65_1282016529.10767") :method
 .annotate 'line', 4
     new $P266, "ResizablePMCArray"
     push $P266, "unless"
@@ -3889,7 +4149,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block273"  :anon :subid("66_1280467477.44751") :method :outer("64_1280467477.44751")
+.sub "_block273"  :anon :subid("66_1282016529.10767") :method :outer("64_1282016529.10767")
 .annotate 'line', 167
     .local string rx275_tgt
     .local int rx275_pos
@@ -3897,7 +4157,9 @@
     .local int rx275_eos
     .local int rx275_rep
     .local pmc rx275_cur
+    .local pmc rx275_debug
     (rx275_cur, rx275_pos, rx275_tgt, $I10) = self."!cursor_start"()
+    getattribute rx275_debug, rx275_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx275_cur
     .local pmc match
     .lex "$/", match
@@ -3909,7 +4171,9 @@
     substr rx275_tgt, rx275_tgt, rx275_off
   rx275_start:
     eq $I10, 1, rx275_restart
+    if_null rx275_debug, debug_485
     rx275_cur."!cursor_debug"("START ", "")
+  debug_485:
     $I10 = self.'from'()
     ne $I10, -1, rxscan276_done
     goto rxscan276_scan
@@ -3931,10 +4195,14 @@
     add rx275_pos, 4
   # rx pass
     rx275_cur."!cursor_pass"(rx275_pos, "")
+    if_null rx275_debug, debug_486
     rx275_cur."!cursor_debug"("PASS  ", "", " at pos=", rx275_pos)
+  debug_486:
     .return (rx275_cur)
   rx275_restart:
+    if_null rx275_debug, debug_487
     rx275_cur."!cursor_debug"("NEXT ", "")
+  debug_487:
   rx275_fail:
     (rx275_rep, rx275_pos, $I10, $P10) = rx275_cur."!mark_fail"(0)
     lt rx275_pos, -1, rx275_done
@@ -3942,14 +4210,16 @@
     jump $I10
   rx275_done:
     rx275_cur."!cursor_fail"()
+    if_null rx275_debug, debug_488
     rx275_cur."!cursor_debug"("FAIL  ", "")
+  debug_488:
     .return (rx275_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>"  :subid("67_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<while>"  :subid("67_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx282_tgt
     .local int rx282_pos
@@ -3957,7 +4227,9 @@
     .local int rx282_eos
     .local int rx282_rep
     .local pmc rx282_cur
+    .local pmc rx282_debug
     (rx282_cur, rx282_pos, rx282_tgt, $I10) = self."!cursor_start"()
+    getattribute rx282_debug, rx282_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx282_cur
     .local pmc match
     .lex "$/", match
@@ -3969,7 +4241,9 @@
     substr rx282_tgt, rx282_tgt, rx282_off
   rx282_start:
     eq $I10, 1, rx282_restart
+    if_null rx282_debug, debug_492
     rx282_cur."!cursor_debug"("START ", "statement_control:sym<while>")
+  debug_492:
     $I10 = self.'from'()
     ne $I10, -1, rxscan285_done
     goto rxscan285_scan
@@ -4044,11 +4318,15 @@
 .annotate 'line', 170
   # rx pass
     rx282_cur."!cursor_pass"(rx282_pos, "statement_control:sym<while>")
+    if_null rx282_debug, debug_493
     rx282_cur."!cursor_debug"("PASS  ", "statement_control:sym<while>", " at pos=", rx282_pos)
+  debug_493:
     .return (rx282_cur)
   rx282_restart:
 .annotate 'line', 4
+    if_null rx282_debug, debug_494
     rx282_cur."!cursor_debug"("NEXT ", "statement_control:sym<while>")
+  debug_494:
   rx282_fail:
     (rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0)
     lt rx282_pos, -1, rx282_done
@@ -4056,14 +4334,16 @@
     jump $I10
   rx282_done:
     rx282_cur."!cursor_fail"()
+    if_null rx282_debug, debug_495
     rx282_cur."!cursor_debug"("FAIL  ", "statement_control:sym<while>")
+  debug_495:
     .return (rx282_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>"  :subid("68_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<while>"  :subid("68_1282016529.10767") :method
 .annotate 'line', 4
     new $P284, "ResizablePMCArray"
     push $P284, "until"
@@ -4073,7 +4353,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<repeat>"  :subid("69_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<repeat>"  :subid("69_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx291_tgt
     .local int rx291_pos
@@ -4081,7 +4361,9 @@
     .local int rx291_eos
     .local int rx291_rep
     .local pmc rx291_cur
+    .local pmc rx291_debug
     (rx291_cur, rx291_pos, rx291_tgt, $I10) = self."!cursor_start"()
+    getattribute rx291_debug, rx291_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx291_cur
     .local pmc match
     .lex "$/", match
@@ -4093,7 +4375,9 @@
     substr rx291_tgt, rx291_tgt, rx291_off
   rx291_start:
     eq $I10, 1, rx291_restart
+    if_null rx291_debug, debug_496
     rx291_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
+  debug_496:
     $I10 = self.'from'()
     ne $I10, -1, rxscan294_done
     goto rxscan294_scan
@@ -4293,11 +4577,15 @@
 .annotate 'line', 175
   # rx pass
     rx291_cur."!cursor_pass"(rx291_pos, "statement_control:sym<repeat>")
+    if_null rx291_debug, debug_497
     rx291_cur."!cursor_debug"("PASS  ", "statement_control:sym<repeat>", " at pos=", rx291_pos)
+  debug_497:
     .return (rx291_cur)
   rx291_restart:
 .annotate 'line', 4
+    if_null rx291_debug, debug_498
     rx291_cur."!cursor_debug"("NEXT ", "statement_control:sym<repeat>")
+  debug_498:
   rx291_fail:
     (rx291_rep, rx291_pos, $I10, $P10) = rx291_cur."!mark_fail"(0)
     lt rx291_pos, -1, rx291_done
@@ -4305,14 +4593,16 @@
     jump $I10
   rx291_done:
     rx291_cur."!cursor_fail"()
+    if_null rx291_debug, debug_499
     rx291_cur."!cursor_debug"("FAIL  ", "statement_control:sym<repeat>")
+  debug_499:
     .return (rx291_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>"  :subid("70_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<repeat>"  :subid("70_1282016529.10767") :method
 .annotate 'line', 4
     new $P293, "ResizablePMCArray"
     push $P293, "repeat"
@@ -4321,7 +4611,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<for>"  :subid("71_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<for>"  :subid("71_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx311_tgt
     .local int rx311_pos
@@ -4329,7 +4619,9 @@
     .local int rx311_eos
     .local int rx311_rep
     .local pmc rx311_cur
+    .local pmc rx311_debug
     (rx311_cur, rx311_pos, rx311_tgt, $I10) = self."!cursor_start"()
+    getattribute rx311_debug, rx311_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx311_cur
     .local pmc match
     .lex "$/", match
@@ -4341,7 +4633,9 @@
     substr rx311_tgt, rx311_tgt, rx311_off
   rx311_start:
     eq $I10, 1, rx311_restart
+    if_null rx311_debug, debug_500
     rx311_cur."!cursor_debug"("START ", "statement_control:sym<for>")
+  debug_500:
     $I10 = self.'from'()
     ne $I10, -1, rxscan314_done
     goto rxscan314_scan
@@ -4403,11 +4697,15 @@
 .annotate 'line', 183
   # rx pass
     rx311_cur."!cursor_pass"(rx311_pos, "statement_control:sym<for>")
+    if_null rx311_debug, debug_501
     rx311_cur."!cursor_debug"("PASS  ", "statement_control:sym<for>", " at pos=", rx311_pos)
+  debug_501:
     .return (rx311_cur)
   rx311_restart:
 .annotate 'line', 4
+    if_null rx311_debug, debug_502
     rx311_cur."!cursor_debug"("NEXT ", "statement_control:sym<for>")
+  debug_502:
   rx311_fail:
     (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0)
     lt rx311_pos, -1, rx311_done
@@ -4415,14 +4713,16 @@
     jump $I10
   rx311_done:
     rx311_cur."!cursor_fail"()
+    if_null rx311_debug, debug_503
     rx311_cur."!cursor_debug"("FAIL  ", "statement_control:sym<for>")
+  debug_503:
     .return (rx311_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>"  :subid("72_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<for>"  :subid("72_1282016529.10767") :method
 .annotate 'line', 4
     new $P313, "ResizablePMCArray"
     push $P313, "for"
@@ -4431,7 +4731,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CATCH>"  :subid("73_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<CATCH>"  :subid("73_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx319_tgt
     .local int rx319_pos
@@ -4439,7 +4739,9 @@
     .local int rx319_eos
     .local int rx319_rep
     .local pmc rx319_cur
+    .local pmc rx319_debug
     (rx319_cur, rx319_pos, rx319_tgt, $I10) = self."!cursor_start"()
+    getattribute rx319_debug, rx319_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx319_cur
     .local pmc match
     .lex "$/", match
@@ -4451,7 +4753,9 @@
     substr rx319_tgt, rx319_tgt, rx319_off
   rx319_start:
     eq $I10, 1, rx319_restart
+    if_null rx319_debug, debug_504
     rx319_cur."!cursor_debug"("START ", "statement_control:sym<CATCH>")
+  debug_504:
     $I10 = self.'from'()
     ne $I10, -1, rxscan322_done
     goto rxscan322_scan
@@ -4513,11 +4817,15 @@
 .annotate 'line', 188
   # rx pass
     rx319_cur."!cursor_pass"(rx319_pos, "statement_control:sym<CATCH>")
+    if_null rx319_debug, debug_505
     rx319_cur."!cursor_debug"("PASS  ", "statement_control:sym<CATCH>", " at pos=", rx319_pos)
+  debug_505:
     .return (rx319_cur)
   rx319_restart:
 .annotate 'line', 4
+    if_null rx319_debug, debug_506
     rx319_cur."!cursor_debug"("NEXT ", "statement_control:sym<CATCH>")
+  debug_506:
   rx319_fail:
     (rx319_rep, rx319_pos, $I10, $P10) = rx319_cur."!mark_fail"(0)
     lt rx319_pos, -1, rx319_done
@@ -4525,14 +4833,16 @@
     jump $I10
   rx319_done:
     rx319_cur."!cursor_fail"()
+    if_null rx319_debug, debug_507
     rx319_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CATCH>")
+  debug_507:
     .return (rx319_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("74_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("74_1282016529.10767") :method
 .annotate 'line', 4
     new $P321, "ResizablePMCArray"
     push $P321, "CATCH"
@@ -4541,7 +4851,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CONTROL>"  :subid("75_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<CONTROL>"  :subid("75_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx327_tgt
     .local int rx327_pos
@@ -4549,7 +4859,9 @@
     .local int rx327_eos
     .local int rx327_rep
     .local pmc rx327_cur
+    .local pmc rx327_debug
     (rx327_cur, rx327_pos, rx327_tgt, $I10) = self."!cursor_start"()
+    getattribute rx327_debug, rx327_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx327_cur
     .local pmc match
     .lex "$/", match
@@ -4561,7 +4873,9 @@
     substr rx327_tgt, rx327_tgt, rx327_off
   rx327_start:
     eq $I10, 1, rx327_restart
+    if_null rx327_debug, debug_508
     rx327_cur."!cursor_debug"("START ", "statement_control:sym<CONTROL>")
+  debug_508:
     $I10 = self.'from'()
     ne $I10, -1, rxscan330_done
     goto rxscan330_scan
@@ -4623,11 +4937,15 @@
 .annotate 'line', 193
   # rx pass
     rx327_cur."!cursor_pass"(rx327_pos, "statement_control:sym<CONTROL>")
+    if_null rx327_debug, debug_509
     rx327_cur."!cursor_debug"("PASS  ", "statement_control:sym<CONTROL>", " at pos=", rx327_pos)
+  debug_509:
     .return (rx327_cur)
   rx327_restart:
 .annotate 'line', 4
+    if_null rx327_debug, debug_510
     rx327_cur."!cursor_debug"("NEXT ", "statement_control:sym<CONTROL>")
+  debug_510:
   rx327_fail:
     (rx327_rep, rx327_pos, $I10, $P10) = rx327_cur."!mark_fail"(0)
     lt rx327_pos, -1, rx327_done
@@ -4635,14 +4953,16 @@
     jump $I10
   rx327_done:
     rx327_cur."!cursor_fail"()
+    if_null rx327_debug, debug_511
     rx327_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CONTROL>")
+  debug_511:
     .return (rx327_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("76_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("76_1282016529.10767") :method
 .annotate 'line', 4
     new $P329, "ResizablePMCArray"
     push $P329, "CONTROL"
@@ -4651,7 +4971,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix"  :subid("77_1280467477.44751") :method
+.sub "statement_prefix"  :subid("77_1282016529.10767") :method
 .annotate 'line', 198
     $P335 = self."!protoregex"("statement_prefix")
     .return ($P335)
@@ -4659,7 +4979,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix"  :subid("78_1280467477.44751") :method
+.sub "!PREFIX__statement_prefix"  :subid("78_1282016529.10767") :method
 .annotate 'line', 198
     $P337 = self."!PREFIX__!protoregex"("statement_prefix")
     .return ($P337)
@@ -4667,7 +4987,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<INIT>"  :subid("79_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_prefix:sym<INIT>"  :subid("79_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx339_tgt
     .local int rx339_pos
@@ -4675,7 +4995,9 @@
     .local int rx339_eos
     .local int rx339_rep
     .local pmc rx339_cur
+    .local pmc rx339_debug
     (rx339_cur, rx339_pos, rx339_tgt, $I10) = self."!cursor_start"()
+    getattribute rx339_debug, rx339_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx339_cur
     .local pmc match
     .lex "$/", match
@@ -4687,7 +5009,9 @@
     substr rx339_tgt, rx339_tgt, rx339_off
   rx339_start:
     eq $I10, 1, rx339_restart
+    if_null rx339_debug, debug_512
     rx339_cur."!cursor_debug"("START ", "statement_prefix:sym<INIT>")
+  debug_512:
     $I10 = self.'from'()
     ne $I10, -1, rxscan343_done
     goto rxscan343_scan
@@ -4731,11 +5055,15 @@
     rx339_pos = $P10."pos"()
   # rx pass
     rx339_cur."!cursor_pass"(rx339_pos, "statement_prefix:sym<INIT>")
+    if_null rx339_debug, debug_513
     rx339_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<INIT>", " at pos=", rx339_pos)
+  debug_513:
     .return (rx339_cur)
   rx339_restart:
 .annotate 'line', 4
+    if_null rx339_debug, debug_514
     rx339_cur."!cursor_debug"("NEXT ", "statement_prefix:sym<INIT>")
+  debug_514:
   rx339_fail:
     (rx339_rep, rx339_pos, $I10, $P10) = rx339_cur."!mark_fail"(0)
     lt rx339_pos, -1, rx339_done
@@ -4743,14 +5071,16 @@
     jump $I10
   rx339_done:
     rx339_cur."!cursor_fail"()
+    if_null rx339_debug, debug_515
     rx339_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<INIT>")
+  debug_515:
     .return (rx339_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("80_1280467477.44751") :method
+.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("80_1282016529.10767") :method
 .annotate 'line', 4
     $P341 = self."!PREFIX__!subrule"("blorst", "INIT")
     new $P342, "ResizablePMCArray"
@@ -4760,7 +5090,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<try>"  :subid("81_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_prefix:sym<try>"  :subid("81_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx346_tgt
     .local int rx346_pos
@@ -4768,7 +5098,9 @@
     .local int rx346_eos
     .local int rx346_rep
     .local pmc rx346_cur
+    .local pmc rx346_debug
     (rx346_cur, rx346_pos, rx346_tgt, $I10) = self."!cursor_start"()
+    getattribute rx346_debug, rx346_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx346_cur
     .local pmc match
     .lex "$/", match
@@ -4780,7 +5112,9 @@
     substr rx346_tgt, rx346_tgt, rx346_off
   rx346_start:
     eq $I10, 1, rx346_restart
+    if_null rx346_debug, debug_516
     rx346_cur."!cursor_debug"("START ", "statement_prefix:sym<try>")
+  debug_516:
     $I10 = self.'from'()
     ne $I10, -1, rxscan350_done
     goto rxscan350_scan
@@ -4826,11 +5160,15 @@
 .annotate 'line', 201
   # rx pass
     rx346_cur."!cursor_pass"(rx346_pos, "statement_prefix:sym<try>")
+    if_null rx346_debug, debug_517
     rx346_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<try>", " at pos=", rx346_pos)
+  debug_517:
     .return (rx346_cur)
   rx346_restart:
 .annotate 'line', 4
+    if_null rx346_debug, debug_518
     rx346_cur."!cursor_debug"("NEXT ", "statement_prefix:sym<try>")
+  debug_518:
   rx346_fail:
     (rx346_rep, rx346_pos, $I10, $P10) = rx346_cur."!mark_fail"(0)
     lt rx346_pos, -1, rx346_done
@@ -4838,14 +5176,16 @@
     jump $I10
   rx346_done:
     rx346_cur."!cursor_fail"()
+    if_null rx346_debug, debug_519
     rx346_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<try>")
+  debug_519:
     .return (rx346_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>"  :subid("82_1280467477.44751") :method
+.sub "!PREFIX__statement_prefix:sym<try>"  :subid("82_1282016529.10767") :method
 .annotate 'line', 4
     $P348 = self."!PREFIX__!subrule"("blorst", "try")
     new $P349, "ResizablePMCArray"
@@ -4855,7 +5195,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blorst"  :subid("83_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "blorst"  :subid("83_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx353_tgt
     .local int rx353_pos
@@ -4863,7 +5203,9 @@
     .local int rx353_eos
     .local int rx353_rep
     .local pmc rx353_cur
+    .local pmc rx353_debug
     (rx353_cur, rx353_pos, rx353_tgt, $I10) = self."!cursor_start"()
+    getattribute rx353_debug, rx353_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx353_cur
     .local pmc match
     .lex "$/", match
@@ -4875,7 +5217,9 @@
     substr rx353_tgt, rx353_tgt, rx353_off
   rx353_start:
     eq $I10, 1, rx353_restart
+    if_null rx353_debug, debug_520
     rx353_cur."!cursor_debug"("START ", "blorst")
+  debug_520:
     $I10 = self.'from'()
     ne $I10, -1, rxscan356_done
     goto rxscan356_scan
@@ -4929,11 +5273,15 @@
 .annotate 'line', 206
   # rx pass
     rx353_cur."!cursor_pass"(rx353_pos, "blorst")
+    if_null rx353_debug, debug_521
     rx353_cur."!cursor_debug"("PASS  ", "blorst", " at pos=", rx353_pos)
+  debug_521:
     .return (rx353_cur)
   rx353_restart:
 .annotate 'line', 4
+    if_null rx353_debug, debug_522
     rx353_cur."!cursor_debug"("NEXT ", "blorst")
+  debug_522:
   rx353_fail:
     (rx353_rep, rx353_pos, $I10, $P10) = rx353_cur."!mark_fail"(0)
     lt rx353_pos, -1, rx353_done
@@ -4941,14 +5289,16 @@
     jump $I10
   rx353_done:
     rx353_cur."!cursor_fail"()
+    if_null rx353_debug, debug_523
     rx353_cur."!cursor_debug"("FAIL  ", "blorst")
+  debug_523:
     .return (rx353_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst"  :subid("84_1280467477.44751") :method
+.sub "!PREFIX__blorst"  :subid("84_1282016529.10767") :method
 .annotate 'line', 4
     new $P355, "ResizablePMCArray"
     push $P355, ""
@@ -4957,7 +5307,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond"  :subid("85_1280467477.44751") :method
+.sub "statement_mod_cond"  :subid("85_1282016529.10767") :method
 .annotate 'line', 212
     $P359 = self."!protoregex"("statement_mod_cond")
     .return ($P359)
@@ -4965,7 +5315,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond"  :subid("86_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_cond"  :subid("86_1282016529.10767") :method
 .annotate 'line', 212
     $P361 = self."!PREFIX__!protoregex"("statement_mod_cond")
     .return ($P361)
@@ -4973,7 +5323,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<if>"  :subid("87_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_mod_cond:sym<if>"  :subid("87_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx363_tgt
     .local int rx363_pos
@@ -4981,7 +5331,9 @@
     .local int rx363_eos
     .local int rx363_rep
     .local pmc rx363_cur
+    .local pmc rx363_debug
     (rx363_cur, rx363_pos, rx363_tgt, $I10) = self."!cursor_start"()
+    getattribute rx363_debug, rx363_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx363_cur
     .local pmc match
     .lex "$/", match
@@ -4993,7 +5345,9 @@
     substr rx363_tgt, rx363_tgt, rx363_off
   rx363_start:
     eq $I10, 1, rx363_restart
+    if_null rx363_debug, debug_524
     rx363_cur."!cursor_debug"("START ", "statement_mod_cond:sym<if>")
+  debug_524:
     $I10 = self.'from'()
     ne $I10, -1, rxscan367_done
     goto rxscan367_scan
@@ -5047,11 +5401,15 @@
     rx363_pos = $P10."pos"()
   # rx pass
     rx363_cur."!cursor_pass"(rx363_pos, "statement_mod_cond:sym<if>")
+    if_null rx363_debug, debug_525
     rx363_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<if>", " at pos=", rx363_pos)
+  debug_525:
     .return (rx363_cur)
   rx363_restart:
 .annotate 'line', 4
+    if_null rx363_debug, debug_526
     rx363_cur."!cursor_debug"("NEXT ", "statement_mod_cond:sym<if>")
+  debug_526:
   rx363_fail:
     (rx363_rep, rx363_pos, $I10, $P10) = rx363_cur."!mark_fail"(0)
     lt rx363_pos, -1, rx363_done
@@ -5059,14 +5417,16 @@
     jump $I10
   rx363_done:
     rx363_cur."!cursor_fail"()
+    if_null rx363_debug, debug_527
     rx363_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<if>")
+  debug_527:
     .return (rx363_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("88_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("88_1282016529.10767") :method
 .annotate 'line', 4
     $P365 = self."!PREFIX__!subrule"("ws", "if")
     new $P366, "ResizablePMCArray"
@@ -5076,7 +5436,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<unless>"  :subid("89_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_mod_cond:sym<unless>"  :subid("89_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx372_tgt
     .local int rx372_pos
@@ -5084,7 +5444,9 @@
     .local int rx372_eos
     .local int rx372_rep
     .local pmc rx372_cur
+    .local pmc rx372_debug
     (rx372_cur, rx372_pos, rx372_tgt, $I10) = self."!cursor_start"()
+    getattribute rx372_debug, rx372_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx372_cur
     .local pmc match
     .lex "$/", match
@@ -5096,7 +5458,9 @@
     substr rx372_tgt, rx372_tgt, rx372_off
   rx372_start:
     eq $I10, 1, rx372_restart
+    if_null rx372_debug, debug_528
     rx372_cur."!cursor_debug"("START ", "statement_mod_cond:sym<unless>")
+  debug_528:
     $I10 = self.'from'()
     ne $I10, -1, rxscan376_done
     goto rxscan376_scan
@@ -5150,11 +5514,15 @@
     rx372_pos = $P10."pos"()
   # rx pass
     rx372_cur."!cursor_pass"(rx372_pos, "statement_mod_cond:sym<unless>")
+    if_null rx372_debug, debug_529
     rx372_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<unless>", " at pos=", rx372_pos)
+  debug_529:
     .return (rx372_cur)
   rx372_restart:
 .annotate 'line', 4
+    if_null rx372_debug, debug_530
     rx372_cur."!cursor_debug"("NEXT ", "statement_mod_cond:sym<unless>")
+  debug_530:
   rx372_fail:
     (rx372_rep, rx372_pos, $I10, $P10) = rx372_cur."!mark_fail"(0)
     lt rx372_pos, -1, rx372_done
@@ -5162,14 +5530,16 @@
     jump $I10
   rx372_done:
     rx372_cur."!cursor_fail"()
+    if_null rx372_debug, debug_531
     rx372_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<unless>")
+  debug_531:
     .return (rx372_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("90_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("90_1282016529.10767") :method
 .annotate 'line', 4
     $P374 = self."!PREFIX__!subrule"("ws", "unless")
     new $P375, "ResizablePMCArray"
@@ -5179,7 +5549,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop"  :subid("91_1280467477.44751") :method
+.sub "statement_mod_loop"  :subid("91_1282016529.10767") :method
 .annotate 'line', 217
     $P381 = self."!protoregex"("statement_mod_loop")
     .return ($P381)
@@ -5187,7 +5557,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop"  :subid("92_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_loop"  :subid("92_1282016529.10767") :method
 .annotate 'line', 217
     $P383 = self."!PREFIX__!protoregex"("statement_mod_loop")
     .return ($P383)
@@ -5195,7 +5565,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<while>"  :subid("93_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_mod_loop:sym<while>"  :subid("93_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx385_tgt
     .local int rx385_pos
@@ -5203,7 +5573,9 @@
     .local int rx385_eos
     .local int rx385_rep
     .local pmc rx385_cur
+    .local pmc rx385_debug
     (rx385_cur, rx385_pos, rx385_tgt, $I10) = self."!cursor_start"()
+    getattribute rx385_debug, rx385_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx385_cur
     .local pmc match
     .lex "$/", match
@@ -5215,7 +5587,9 @@
     substr rx385_tgt, rx385_tgt, rx385_off
   rx385_start:
     eq $I10, 1, rx385_restart
+    if_null rx385_debug, debug_532
     rx385_cur."!cursor_debug"("START ", "statement_mod_loop:sym<while>")
+  debug_532:
     $I10 = self.'from'()
     ne $I10, -1, rxscan389_done
     goto rxscan389_scan
@@ -5269,11 +5643,15 @@
     rx385_pos = $P10."pos"()
   # rx pass
     rx385_cur."!cursor_pass"(rx385_pos, "statement_mod_loop:sym<while>")
+    if_null rx385_debug, debug_533
     rx385_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<while>", " at pos=", rx385_pos)
+  debug_533:
     .return (rx385_cur)
   rx385_restart:
 .annotate 'line', 4
+    if_null rx385_debug, debug_534
     rx385_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<while>")
+  debug_534:
   rx385_fail:
     (rx385_rep, rx385_pos, $I10, $P10) = rx385_cur."!mark_fail"(0)
     lt rx385_pos, -1, rx385_done
@@ -5281,14 +5659,16 @@
     jump $I10
   rx385_done:
     rx385_cur."!cursor_fail"()
+    if_null rx385_debug, debug_535
     rx385_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<while>")
+  debug_535:
     .return (rx385_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("94_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("94_1282016529.10767") :method
 .annotate 'line', 4
     $P387 = self."!PREFIX__!subrule"("ws", "while")
     new $P388, "ResizablePMCArray"
@@ -5298,7 +5678,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<until>"  :subid("95_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_mod_loop:sym<until>"  :subid("95_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx394_tgt
     .local int rx394_pos
@@ -5306,7 +5686,9 @@
     .local int rx394_eos
     .local int rx394_rep
     .local pmc rx394_cur
+    .local pmc rx394_debug
     (rx394_cur, rx394_pos, rx394_tgt, $I10) = self."!cursor_start"()
+    getattribute rx394_debug, rx394_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx394_cur
     .local pmc match
     .lex "$/", match
@@ -5318,7 +5700,9 @@
     substr rx394_tgt, rx394_tgt, rx394_off
   rx394_start:
     eq $I10, 1, rx394_restart
+    if_null rx394_debug, debug_536
     rx394_cur."!cursor_debug"("START ", "statement_mod_loop:sym<until>")
+  debug_536:
     $I10 = self.'from'()
     ne $I10, -1, rxscan398_done
     goto rxscan398_scan
@@ -5372,11 +5756,15 @@
     rx394_pos = $P10."pos"()
   # rx pass
     rx394_cur."!cursor_pass"(rx394_pos, "statement_mod_loop:sym<until>")
+    if_null rx394_debug, debug_537
     rx394_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<until>", " at pos=", rx394_pos)
+  debug_537:
     .return (rx394_cur)
   rx394_restart:
 .annotate 'line', 4
+    if_null rx394_debug, debug_538
     rx394_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<until>")
+  debug_538:
   rx394_fail:
     (rx394_rep, rx394_pos, $I10, $P10) = rx394_cur."!mark_fail"(0)
     lt rx394_pos, -1, rx394_done
@@ -5384,14 +5772,16 @@
     jump $I10
   rx394_done:
     rx394_cur."!cursor_fail"()
+    if_null rx394_debug, debug_539
     rx394_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<until>")
+  debug_539:
     .return (rx394_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("96_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("96_1282016529.10767") :method
 .annotate 'line', 4
     $P396 = self."!PREFIX__!subrule"("ws", "until")
     new $P397, "ResizablePMCArray"
@@ -5401,7 +5791,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<for>"  :subid("97_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_mod_loop:sym<for>"  :subid("97_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx403_tgt
     .local int rx403_pos
@@ -5409,7 +5799,9 @@
     .local int rx403_eos
     .local int rx403_rep
     .local pmc rx403_cur
+    .local pmc rx403_debug
     (rx403_cur, rx403_pos, rx403_tgt, $I10) = self."!cursor_start"()
+    getattribute rx403_debug, rx403_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx403_cur
     .local pmc match
     .lex "$/", match
@@ -5421,7 +5813,9 @@
     substr rx403_tgt, rx403_tgt, rx403_off
   rx403_start:
     eq $I10, 1, rx403_restart
+    if_null rx403_debug, debug_540
     rx403_cur."!cursor_debug"("START ", "statement_mod_loop:sym<for>")
+  debug_540:
     $I10 = self.'from'()
     ne $I10, -1, rxscan407_done
     goto rxscan407_scan
@@ -5475,11 +5869,15 @@
     rx403_pos = $P10."pos"()
   # rx pass
     rx403_cur."!cursor_pass"(rx403_pos, "statement_mod_loop:sym<for>")
+    if_null rx403_debug, debug_541
     rx403_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<for>", " at pos=", rx403_pos)
+  debug_541:
     .return (rx403_cur)
   rx403_restart:
 .annotate 'line', 4
+    if_null rx403_debug, debug_542
     rx403_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<for>")
+  debug_542:
   rx403_fail:
     (rx403_rep, rx403_pos, $I10, $P10) = rx403_cur."!mark_fail"(0)
     lt rx403_pos, -1, rx403_done
@@ -5487,14 +5885,16 @@
     jump $I10
   rx403_done:
     rx403_cur."!cursor_fail"()
+    if_null rx403_debug, debug_543
     rx403_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<for>")
+  debug_543:
     .return (rx403_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<for>"  :subid("98_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_loop:sym<for>"  :subid("98_1282016529.10767") :method
 .annotate 'line', 4
     $P405 = self."!PREFIX__!subrule"("ws", "for")
     new $P406, "ResizablePMCArray"
@@ -5504,7 +5904,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>"  :subid("99_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<fatarrow>"  :subid("99_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx412_tgt
     .local int rx412_pos
@@ -5512,7 +5912,9 @@
     .local int rx412_eos
     .local int rx412_rep
     .local pmc rx412_cur
+    .local pmc rx412_debug
     (rx412_cur, rx412_pos, rx412_tgt, $I10) = self."!cursor_start"()
+    getattribute rx412_debug, rx412_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx412_cur
     .local pmc match
     .lex "$/", match
@@ -5524,7 +5926,9 @@
     substr rx412_tgt, rx412_tgt, rx412_off
   rx412_start:
     eq $I10, 1, rx412_restart
+    if_null rx412_debug, debug_544
     rx412_cur."!cursor_debug"("START ", "term:sym<fatarrow>")
+  debug_544:
     $I10 = self.'from'()
     ne $I10, -1, rxscan416_done
     goto rxscan416_scan
@@ -5547,11 +5951,15 @@
     rx412_pos = $P10."pos"()
   # rx pass
     rx412_cur."!cursor_pass"(rx412_pos, "term:sym<fatarrow>")
+    if_null rx412_debug, debug_545
     rx412_cur."!cursor_debug"("PASS  ", "term:sym<fatarrow>", " at pos=", rx412_pos)
+  debug_545:
     .return (rx412_cur)
   rx412_restart:
 .annotate 'line', 4
+    if_null rx412_debug, debug_546
     rx412_cur."!cursor_debug"("NEXT ", "term:sym<fatarrow>")
+  debug_546:
   rx412_fail:
     (rx412_rep, rx412_pos, $I10, $P10) = rx412_cur."!mark_fail"(0)
     lt rx412_pos, -1, rx412_done
@@ -5559,14 +5967,16 @@
     jump $I10
   rx412_done:
     rx412_cur."!cursor_fail"()
+    if_null rx412_debug, debug_547
     rx412_cur."!cursor_debug"("FAIL  ", "term:sym<fatarrow>")
+  debug_547:
     .return (rx412_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>"  :subid("100_1280467477.44751") :method
+.sub "!PREFIX__term:sym<fatarrow>"  :subid("100_1282016529.10767") :method
 .annotate 'line', 4
     $P414 = self."!PREFIX__!subrule"("fatarrow", "")
     new $P415, "ResizablePMCArray"
@@ -5576,7 +5986,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>"  :subid("101_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<colonpair>"  :subid("101_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx418_tgt
     .local int rx418_pos
@@ -5584,7 +5994,9 @@
     .local int rx418_eos
     .local int rx418_rep
     .local pmc rx418_cur
+    .local pmc rx418_debug
     (rx418_cur, rx418_pos, rx418_tgt, $I10) = self."!cursor_start"()
+    getattribute rx418_debug, rx418_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx418_cur
     .local pmc match
     .lex "$/", match
@@ -5596,7 +6008,9 @@
     substr rx418_tgt, rx418_tgt, rx418_off
   rx418_start:
     eq $I10, 1, rx418_restart
+    if_null rx418_debug, debug_548
     rx418_cur."!cursor_debug"("START ", "term:sym<colonpair>")
+  debug_548:
     $I10 = self.'from'()
     ne $I10, -1, rxscan422_done
     goto rxscan422_scan
@@ -5619,11 +6033,15 @@
     rx418_pos = $P10."pos"()
   # rx pass
     rx418_cur."!cursor_pass"(rx418_pos, "term:sym<colonpair>")
+    if_null rx418_debug, debug_549
     rx418_cur."!cursor_debug"("PASS  ", "term:sym<colonpair>", " at pos=", rx418_pos)
+  debug_549:
     .return (rx418_cur)
   rx418_restart:
 .annotate 'line', 4
+    if_null rx418_debug, debug_550
     rx418_cur."!cursor_debug"("NEXT ", "term:sym<colonpair>")
+  debug_550:
   rx418_fail:
     (rx418_rep, rx418_pos, $I10, $P10) = rx418_cur."!mark_fail"(0)
     lt rx418_pos, -1, rx418_done
@@ -5631,14 +6049,16 @@
     jump $I10
   rx418_done:
     rx418_cur."!cursor_fail"()
+    if_null rx418_debug, debug_551
     rx418_cur."!cursor_debug"("FAIL  ", "term:sym<colonpair>")
+  debug_551:
     .return (rx418_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>"  :subid("102_1280467477.44751") :method
+.sub "!PREFIX__term:sym<colonpair>"  :subid("102_1282016529.10767") :method
 .annotate 'line', 4
     $P420 = self."!PREFIX__!subrule"("colonpair", "")
     new $P421, "ResizablePMCArray"
@@ -5648,7 +6068,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>"  :subid("103_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<variable>"  :subid("103_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx424_tgt
     .local int rx424_pos
@@ -5656,7 +6076,9 @@
     .local int rx424_eos
     .local int rx424_rep
     .local pmc rx424_cur
+    .local pmc rx424_debug
     (rx424_cur, rx424_pos, rx424_tgt, $I10) = self."!cursor_start"()
+    getattribute rx424_debug, rx424_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx424_cur
     .local pmc match
     .lex "$/", match
@@ -5668,7 +6090,9 @@
     substr rx424_tgt, rx424_tgt, rx424_off
   rx424_start:
     eq $I10, 1, rx424_restart
+    if_null rx424_debug, debug_552
     rx424_cur."!cursor_debug"("START ", "term:sym<variable>")
+  debug_552:
     $I10 = self.'from'()
     ne $I10, -1, rxscan428_done
     goto rxscan428_scan
@@ -5691,11 +6115,15 @@
     rx424_pos = $P10."pos"()
   # rx pass
     rx424_cur."!cursor_pass"(rx424_pos, "term:sym<variable>")
+    if_null rx424_debug, debug_553
     rx424_cur."!cursor_debug"("PASS  ", "term:sym<variable>", " at pos=", rx424_pos)
+  debug_553:
     .return (rx424_cur)
   rx424_restart:
 .annotate 'line', 4
+    if_null rx424_debug, debug_554
     rx424_cur."!cursor_debug"("NEXT ", "term:sym<variable>")
+  debug_554:
   rx424_fail:
     (rx424_rep, rx424_pos, $I10, $P10) = rx424_cur."!mark_fail"(0)
     lt rx424_pos, -1, rx424_done
@@ -5703,14 +6131,16 @@
     jump $I10
   rx424_done:
     rx424_cur."!cursor_fail"()
+    if_null rx424_debug, debug_555
     rx424_cur."!cursor_debug"("FAIL  ", "term:sym<variable>")
+  debug_555:
     .return (rx424_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>"  :subid("104_1280467477.44751") :method
+.sub "!PREFIX__term:sym<variable>"  :subid("104_1282016529.10767") :method
 .annotate 'line', 4
     $P426 = self."!PREFIX__!subrule"("variable", "")
     new $P427, "ResizablePMCArray"
@@ -5720,7 +6150,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<package_declarator>"  :subid("105_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<package_declarator>"  :subid("105_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx430_tgt
     .local int rx430_pos
@@ -5728,7 +6158,9 @@
     .local int rx430_eos
     .local int rx430_rep
     .local pmc rx430_cur
+    .local pmc rx430_debug
     (rx430_cur, rx430_pos, rx430_tgt, $I10) = self."!cursor_start"()
+    getattribute rx430_debug, rx430_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx430_cur
     .local pmc match
     .lex "$/", match
@@ -5740,7 +6172,9 @@
     substr rx430_tgt, rx430_tgt, rx430_off
   rx430_start:
     eq $I10, 1, rx430_restart
+    if_null rx430_debug, debug_556
     rx430_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
+  debug_556:
     $I10 = self.'from'()
     ne $I10, -1, rxscan434_done
     goto rxscan434_scan
@@ -5763,11 +6197,15 @@
     rx430_pos = $P10."pos"()
   # rx pass
     rx430_cur."!cursor_pass"(rx430_pos, "term:sym<package_declarator>")
+    if_null rx430_debug, debug_557
     rx430_cur."!cursor_debug"("PASS  ", "term:sym<package_declarator>", " at pos=", rx430_pos)
+  debug_557:
     .return (rx430_cur)
   rx430_restart:
 .annotate 'line', 4
+    if_null rx430_debug, debug_558
     rx430_cur."!cursor_debug"("NEXT ", "term:sym<package_declarator>")
+  debug_558:
   rx430_fail:
     (rx430_rep, rx430_pos, $I10, $P10) = rx430_cur."!mark_fail"(0)
     lt rx430_pos, -1, rx430_done
@@ -5775,14 +6213,16 @@
     jump $I10
   rx430_done:
     rx430_cur."!cursor_fail"()
+    if_null rx430_debug, debug_559
     rx430_cur."!cursor_debug"("FAIL  ", "term:sym<package_declarator>")
+  debug_559:
     .return (rx430_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>"  :subid("106_1280467477.44751") :method
+.sub "!PREFIX__term:sym<package_declarator>"  :subid("106_1282016529.10767") :method
 .annotate 'line', 4
     $P432 = self."!PREFIX__!subrule"("package_declarator", "")
     new $P433, "ResizablePMCArray"
@@ -5792,7 +6232,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<scope_declarator>"  :subid("107_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<scope_declarator>"  :subid("107_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx436_tgt
     .local int rx436_pos
@@ -5800,7 +6240,9 @@
     .local int rx436_eos
     .local int rx436_rep
     .local pmc rx436_cur
+    .local pmc rx436_debug
     (rx436_cur, rx436_pos, rx436_tgt, $I10) = self."!cursor_start"()
+    getattribute rx436_debug, rx436_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx436_cur
     .local pmc match
     .lex "$/", match
@@ -5812,7 +6254,9 @@
     substr rx436_tgt, rx436_tgt, rx436_off
   rx436_start:
     eq $I10, 1, rx436_restart
+    if_null rx436_debug, debug_560
     rx436_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
+  debug_560:
     $I10 = self.'from'()
     ne $I10, -1, rxscan440_done
     goto rxscan440_scan
@@ -5835,11 +6279,15 @@
     rx436_pos = $P10."pos"()
   # rx pass
     rx436_cur."!cursor_pass"(rx436_pos, "term:sym<scope_declarator>")
+    if_null rx436_debug, debug_561
     rx436_cur."!cursor_debug"("PASS  ", "term:sym<scope_declarator>", " at pos=", rx436_pos)
+  debug_561:
     .return (rx436_cur)
   rx436_restart:
 .annotate 'line', 4
+    if_null rx436_debug, debug_562
     rx436_cur."!cursor_debug"("NEXT ", "term:sym<scope_declarator>")
+  debug_562:
   rx436_fail:
     (rx436_rep, rx436_pos, $I10, $P10) = rx436_cur."!mark_fail"(0)
     lt rx436_pos, -1, rx436_done
@@ -5847,14 +6295,16 @@
     jump $I10
   rx436_done:
     rx436_cur."!cursor_fail"()
+    if_null rx436_debug, debug_563
     rx436_cur."!cursor_debug"("FAIL  ", "term:sym<scope_declarator>")
+  debug_563:
     .return (rx436_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>"  :subid("108_1280467477.44751") :method
+.sub "!PREFIX__term:sym<scope_declarator>"  :subid("108_1282016529.10767") :method
 .annotate 'line', 4
     $P438 = self."!PREFIX__!subrule"("scope_declarator", "")
     new $P439, "ResizablePMCArray"
@@ -5864,7 +6314,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<routine_declarator>"  :subid("109_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<routine_declarator>"  :subid("109_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx442_tgt
     .local int rx442_pos
@@ -5872,7 +6322,9 @@
     .local int rx442_eos
     .local int rx442_rep
     .local pmc rx442_cur
+    .local pmc rx442_debug
     (rx442_cur, rx442_pos, rx442_tgt, $I10) = self."!cursor_start"()
+    getattribute rx442_debug, rx442_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx442_cur
     .local pmc match
     .lex "$/", match
@@ -5884,7 +6336,9 @@
     substr rx442_tgt, rx442_tgt, rx442_off
   rx442_start:
     eq $I10, 1, rx442_restart
+    if_null rx442_debug, debug_564
     rx442_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
+  debug_564:
     $I10 = self.'from'()
     ne $I10, -1, rxscan446_done
     goto rxscan446_scan
@@ -5907,11 +6361,15 @@
     rx442_pos = $P10."pos"()
   # rx pass
     rx442_cur."!cursor_pass"(rx442_pos, "term:sym<routine_declarator>")
+    if_null rx442_debug, debug_565
     rx442_cur."!cursor_debug"("PASS  ", "term:sym<routine_declarator>", " at pos=", rx442_pos)
+  debug_565:
     .return (rx442_cur)
   rx442_restart:
 .annotate 'line', 4
+    if_null rx442_debug, debug_566
     rx442_cur."!cursor_debug"("NEXT ", "term:sym<routine_declarator>")
+  debug_566:
   rx442_fail:
     (rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0)
     lt rx442_pos, -1, rx442_done
@@ -5919,14 +6377,16 @@
     jump $I10
   rx442_done:
     rx442_cur."!cursor_fail"()
+    if_null rx442_debug, debug_567
     rx442_cur."!cursor_debug"("FAIL  ", "term:sym<routine_declarator>")
+  debug_567:
     .return (rx442_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>"  :subid("110_1280467477.44751") :method
+.sub "!PREFIX__term:sym<routine_declarator>"  :subid("110_1282016529.10767") :method
 .annotate 'line', 4
     $P444 = self."!PREFIX__!subrule"("routine_declarator", "")
     new $P445, "ResizablePMCArray"
@@ -5936,9 +6396,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<multi_declarator>"  :subid("111_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<multi_declarator>"  :subid("111_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
-    .const 'Sub' $P453 = "113_1280467477.44751" 
+    .const 'Sub' $P453 = "113_1282016529.10767" 
     capture_lex $P453
     .local string rx448_tgt
     .local int rx448_pos
@@ -5946,7 +6406,9 @@
     .local int rx448_eos
     .local int rx448_rep
     .local pmc rx448_cur
+    .local pmc rx448_debug
     (rx448_cur, rx448_pos, rx448_tgt, $I10) = self."!cursor_start"()
+    getattribute rx448_debug, rx448_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx448_cur
     .local pmc match
     .lex "$/", match
@@ -5958,7 +6420,9 @@
     substr rx448_tgt, rx448_tgt, rx448_off
   rx448_start:
     eq $I10, 1, rx448_restart
+    if_null rx448_debug, debug_568
     rx448_cur."!cursor_debug"("START ", "term:sym<multi_declarator>")
+  debug_568:
     $I10 = self.'from'()
     ne $I10, -1, rxscan451_done
     goto rxscan451_scan
@@ -5974,7 +6438,7 @@
 .annotate 'line', 231
   # rx subrule "before" subtype=zerowidth negate=
     rx448_cur."!cursor_pos"(rx448_pos)
-    .const 'Sub' $P453 = "113_1280467477.44751" 
+    .const 'Sub' $P453 = "113_1282016529.10767" 
     capture_lex $P453
     $P10 = rx448_cur."before"($P453)
     unless $P10, rx448_fail
@@ -5987,11 +6451,15 @@
     rx448_pos = $P10."pos"()
   # rx pass
     rx448_cur."!cursor_pass"(rx448_pos, "term:sym<multi_declarator>")
+    if_null rx448_debug, debug_573
     rx448_cur."!cursor_debug"("PASS  ", "term:sym<multi_declarator>", " at pos=", rx448_pos)
+  debug_573:
     .return (rx448_cur)
   rx448_restart:
 .annotate 'line', 4
+    if_null rx448_debug, debug_574
     rx448_cur."!cursor_debug"("NEXT ", "term:sym<multi_declarator>")
+  debug_574:
   rx448_fail:
     (rx448_rep, rx448_pos, $I10, $P10) = rx448_cur."!mark_fail"(0)
     lt rx448_pos, -1, rx448_done
@@ -5999,14 +6467,16 @@
     jump $I10
   rx448_done:
     rx448_cur."!cursor_fail"()
+    if_null rx448_debug, debug_575
     rx448_cur."!cursor_debug"("FAIL  ", "term:sym<multi_declarator>")
+  debug_575:
     .return (rx448_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<multi_declarator>"  :subid("112_1280467477.44751") :method
+.sub "!PREFIX__term:sym<multi_declarator>"  :subid("112_1282016529.10767") :method
 .annotate 'line', 4
     new $P450, "ResizablePMCArray"
     push $P450, ""
@@ -6015,7 +6485,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block452"  :anon :subid("113_1280467477.44751") :method :outer("111_1280467477.44751")
+.sub "_block452"  :anon :subid("113_1282016529.10767") :method :outer("111_1282016529.10767")
 .annotate 'line', 231
     .local string rx454_tgt
     .local int rx454_pos
@@ -6023,7 +6493,9 @@
     .local int rx454_eos
     .local int rx454_rep
     .local pmc rx454_cur
+    .local pmc rx454_debug
     (rx454_cur, rx454_pos, rx454_tgt, $I10) = self."!cursor_start"()
+    getattribute rx454_debug, rx454_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx454_cur
     .local pmc match
     .lex "$/", match
@@ -6035,7 +6507,9 @@
     substr rx454_tgt, rx454_tgt, rx454_off
   rx454_start:
     eq $I10, 1, rx454_restart
+    if_null rx454_debug, debug_569
     rx454_cur."!cursor_debug"("START ", "")
+  debug_569:
     $I10 = self.'from'()
     ne $I10, -1, rxscan455_done
     goto rxscan455_scan
@@ -6081,10 +6555,14 @@
   alt456_end:
   # rx pass
     rx454_cur."!cursor_pass"(rx454_pos, "")
+    if_null rx454_debug, debug_570
     rx454_cur."!cursor_debug"("PASS  ", "", " at pos=", rx454_pos)
+  debug_570:
     .return (rx454_cur)
   rx454_restart:
+    if_null rx454_debug, debug_571
     rx454_cur."!cursor_debug"("NEXT ", "")
+  debug_571:
   rx454_fail:
     (rx454_rep, rx454_pos, $I10, $P10) = rx454_cur."!mark_fail"(0)
     lt rx454_pos, -1, rx454_done
@@ -6092,14 +6570,16 @@
     jump $I10
   rx454_done:
     rx454_cur."!cursor_fail"()
+    if_null rx454_debug, debug_572
     rx454_cur."!cursor_debug"("FAIL  ", "")
+  debug_572:
     .return (rx454_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>"  :subid("114_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<regex_declarator>"  :subid("114_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx458_tgt
     .local int rx458_pos
@@ -6107,7 +6587,9 @@
     .local int rx458_eos
     .local int rx458_rep
     .local pmc rx458_cur
+    .local pmc rx458_debug
     (rx458_cur, rx458_pos, rx458_tgt, $I10) = self."!cursor_start"()
+    getattribute rx458_debug, rx458_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx458_cur
     .local pmc match
     .lex "$/", match
@@ -6119,7 +6601,9 @@
     substr rx458_tgt, rx458_tgt, rx458_off
   rx458_start:
     eq $I10, 1, rx458_restart
+    if_null rx458_debug, debug_576
     rx458_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
+  debug_576:
     $I10 = self.'from'()
     ne $I10, -1, rxscan462_done
     goto rxscan462_scan
@@ -6142,11 +6626,15 @@
     rx458_pos = $P10."pos"()
   # rx pass
     rx458_cur."!cursor_pass"(rx458_pos, "term:sym<regex_declarator>")
+    if_null rx458_debug, debug_577
     rx458_cur."!cursor_debug"("PASS  ", "term:sym<regex_declarator>", " at pos=", rx458_pos)
+  debug_577:
     .return (rx458_cur)
   rx458_restart:
 .annotate 'line', 4
+    if_null rx458_debug, debug_578
     rx458_cur."!cursor_debug"("NEXT ", "term:sym<regex_declarator>")
+  debug_578:
   rx458_fail:
     (rx458_rep, rx458_pos, $I10, $P10) = rx458_cur."!mark_fail"(0)
     lt rx458_pos, -1, rx458_done
@@ -6154,14 +6642,16 @@
     jump $I10
   rx458_done:
     rx458_cur."!cursor_fail"()
+    if_null rx458_debug, debug_579
     rx458_cur."!cursor_debug"("FAIL  ", "term:sym<regex_declarator>")
+  debug_579:
     .return (rx458_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>"  :subid("115_1280467477.44751") :method
+.sub "!PREFIX__term:sym<regex_declarator>"  :subid("115_1282016529.10767") :method
 .annotate 'line', 4
     $P460 = self."!PREFIX__!subrule"("regex_declarator", "")
     new $P461, "ResizablePMCArray"
@@ -6171,7 +6661,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<statement_prefix>"  :subid("116_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<statement_prefix>"  :subid("116_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx464_tgt
     .local int rx464_pos
@@ -6179,7 +6669,9 @@
     .local int rx464_eos
     .local int rx464_rep
     .local pmc rx464_cur
+    .local pmc rx464_debug
     (rx464_cur, rx464_pos, rx464_tgt, $I10) = self."!cursor_start"()
+    getattribute rx464_debug, rx464_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx464_cur
     .local pmc match
     .lex "$/", match
@@ -6191,7 +6683,9 @@
     substr rx464_tgt, rx464_tgt, rx464_off
   rx464_start:
     eq $I10, 1, rx464_restart
+    if_null rx464_debug, debug_580
     rx464_cur."!cursor_debug"("START ", "term:sym<statement_prefix>")
+  debug_580:
     $I10 = self.'from'()
     ne $I10, -1, rxscan468_done
     goto rxscan468_scan
@@ -6214,11 +6708,15 @@
     rx464_pos = $P10."pos"()
   # rx pass
     rx464_cur."!cursor_pass"(rx464_pos, "term:sym<statement_prefix>")
+    if_null rx464_debug, debug_581
     rx464_cur."!cursor_debug"("PASS  ", "term:sym<statement_prefix>", " at pos=", rx464_pos)
+  debug_581:
     .return (rx464_cur)
   rx464_restart:
 .annotate 'line', 4
+    if_null rx464_debug, debug_582
     rx464_cur."!cursor_debug"("NEXT ", "term:sym<statement_prefix>")
+  debug_582:
   rx464_fail:
     (rx464_rep, rx464_pos, $I10, $P10) = rx464_cur."!mark_fail"(0)
     lt rx464_pos, -1, rx464_done
@@ -6226,14 +6724,16 @@
     jump $I10
   rx464_done:
     rx464_cur."!cursor_fail"()
+    if_null rx464_debug, debug_583
     rx464_cur."!cursor_debug"("FAIL  ", "term:sym<statement_prefix>")
+  debug_583:
     .return (rx464_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>"  :subid("117_1280467477.44751") :method
+.sub "!PREFIX__term:sym<statement_prefix>"  :subid("117_1282016529.10767") :method
 .annotate 'line', 4
     $P466 = self."!PREFIX__!subrule"("statement_prefix", "")
     new $P467, "ResizablePMCArray"
@@ -6243,7 +6743,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>"  :subid("118_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<lambda>"  :subid("118_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx470_tgt
     .local int rx470_pos
@@ -6251,7 +6751,9 @@
     .local int rx470_eos
     .local int rx470_rep
     .local pmc rx470_cur
+    .local pmc rx470_debug
     (rx470_cur, rx470_pos, rx470_tgt, $I10) = self."!cursor_start"()
+    getattribute rx470_debug, rx470_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx470_cur
     .local pmc match
     .lex "$/", match
@@ -6263,7 +6765,9 @@
     substr rx470_tgt, rx470_tgt, rx470_off
   rx470_start:
     eq $I10, 1, rx470_restart
+    if_null rx470_debug, debug_584
     rx470_cur."!cursor_debug"("START ", "term:sym<lambda>")
+  debug_584:
     $I10 = self.'from'()
     ne $I10, -1, rxscan473_done
     goto rxscan473_scan
@@ -6290,11 +6794,15 @@
     rx470_pos = $P10."pos"()
   # rx pass
     rx470_cur."!cursor_pass"(rx470_pos, "term:sym<lambda>")
+    if_null rx470_debug, debug_585
     rx470_cur."!cursor_debug"("PASS  ", "term:sym<lambda>", " at pos=", rx470_pos)
+  debug_585:
     .return (rx470_cur)
   rx470_restart:
 .annotate 'line', 4
+    if_null rx470_debug, debug_586
     rx470_cur."!cursor_debug"("NEXT ", "term:sym<lambda>")
+  debug_586:
   rx470_fail:
     (rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0)
     lt rx470_pos, -1, rx470_done
@@ -6302,14 +6810,16 @@
     jump $I10
   rx470_done:
     rx470_cur."!cursor_fail"()
+    if_null rx470_debug, debug_587
     rx470_cur."!cursor_debug"("FAIL  ", "term:sym<lambda>")
+  debug_587:
     .return (rx470_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>"  :subid("119_1280467477.44751") :method
+.sub "!PREFIX__term:sym<lambda>"  :subid("119_1282016529.10767") :method
 .annotate 'line', 4
     new $P472, "ResizablePMCArray"
     push $P472, ""
@@ -6318,7 +6828,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "fatarrow"  :subid("120_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "fatarrow"  :subid("120_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx475_tgt
     .local int rx475_pos
@@ -6326,7 +6836,9 @@
     .local int rx475_eos
     .local int rx475_rep
     .local pmc rx475_cur
+    .local pmc rx475_debug
     (rx475_cur, rx475_pos, rx475_tgt, $I10) = self."!cursor_start"()
+    getattribute rx475_debug, rx475_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx475_cur
     .local pmc match
     .lex "$/", match
@@ -6338,7 +6850,9 @@
     substr rx475_tgt, rx475_tgt, rx475_off
   rx475_start:
     eq $I10, 1, rx475_restart
+    if_null rx475_debug, debug_588
     rx475_cur."!cursor_debug"("START ", "fatarrow")
+  debug_588:
     $I10 = self.'from'()
     ne $I10, -1, rxscan479_done
     goto rxscan479_scan
@@ -6398,11 +6912,15 @@
 .annotate 'line', 236
   # rx pass
     rx475_cur."!cursor_pass"(rx475_pos, "fatarrow")
+    if_null rx475_debug, debug_589
     rx475_cur."!cursor_debug"("PASS  ", "fatarrow", " at pos=", rx475_pos)
+  debug_589:
     .return (rx475_cur)
   rx475_restart:
 .annotate 'line', 4
+    if_null rx475_debug, debug_590
     rx475_cur."!cursor_debug"("NEXT ", "fatarrow")
+  debug_590:
   rx475_fail:
     (rx475_rep, rx475_pos, $I10, $P10) = rx475_cur."!mark_fail"(0)
     lt rx475_pos, -1, rx475_done
@@ -6410,14 +6928,16 @@
     jump $I10
   rx475_done:
     rx475_cur."!cursor_fail"()
+    if_null rx475_debug, debug_591
     rx475_cur."!cursor_debug"("FAIL  ", "fatarrow")
+  debug_591:
     .return (rx475_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow"  :subid("121_1280467477.44751") :method
+.sub "!PREFIX__fatarrow"  :subid("121_1282016529.10767") :method
 .annotate 'line', 4
     $P477 = self."!PREFIX__!subrule"("identifier", "")
     new $P478, "ResizablePMCArray"
@@ -6427,7 +6947,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "colonpair"  :subid("122_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "colonpair"  :subid("122_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx482_tgt
     .local int rx482_pos
@@ -6435,8 +6955,10 @@
     .local int rx482_eos
     .local int rx482_rep
     .local pmc rx482_cur
+    .local pmc rx482_debug
     (rx482_cur, rx482_pos, rx482_tgt, $I10) = self."!cursor_start"()
     rx482_cur."!cursor_caparray"("circumfix")
+    getattribute rx482_debug, rx482_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx482_cur
     .local pmc match
     .lex "$/", match
@@ -6448,7 +6970,9 @@
     substr rx482_tgt, rx482_tgt, rx482_off
   rx482_start:
     eq $I10, 1, rx482_restart
+    if_null rx482_debug, debug_592
     rx482_cur."!cursor_debug"("START ", "colonpair")
+  debug_592:
     $I10 = self.'from'()
     ne $I10, -1, rxscan488_done
     goto rxscan488_scan
@@ -6466,8 +6990,8 @@
     add $I11, rx482_pos, 1
     gt $I11, rx482_eos, rx482_fail
     sub $I11, rx482_pos, rx482_off
-    substr $S10, rx482_tgt, $I11, 1
-    ne $S10, ":", rx482_fail
+    ord $I11, rx482_tgt, $I11
+    ne $I11, 58, rx482_fail
     add rx482_pos, 1
   alt489_0:
 .annotate 'line', 242
@@ -6481,8 +7005,8 @@
     add $I11, rx482_pos, 1
     gt $I11, rx482_eos, rx482_fail
     sub $I11, rx482_pos, rx482_off
-    substr $S10, rx482_tgt, $I11, 1
-    ne $S10, "!", rx482_fail
+    ord $I11, rx482_tgt, $I11
+    ne $I11, 33, rx482_fail
     add rx482_pos, 1
     set_addr $I10, rxcap_490_fail
     ($I12, $I11) = rx482_cur."!mark_peek"($I10)
@@ -6548,11 +7072,15 @@
 .annotate 'line', 240
   # rx pass
     rx482_cur."!cursor_pass"(rx482_pos, "colonpair")
+    if_null rx482_debug, debug_593
     rx482_cur."!cursor_debug"("PASS  ", "colonpair", " at pos=", rx482_pos)
+  debug_593:
     .return (rx482_cur)
   rx482_restart:
 .annotate 'line', 4
+    if_null rx482_debug, debug_594
     rx482_cur."!cursor_debug"("NEXT ", "colonpair")
+  debug_594:
   rx482_fail:
     (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0)
     lt rx482_pos, -1, rx482_done
@@ -6560,14 +7088,16 @@
     jump $I10
   rx482_done:
     rx482_cur."!cursor_fail"()
+    if_null rx482_debug, debug_595
     rx482_cur."!cursor_debug"("FAIL  ", "colonpair")
+  debug_595:
     .return (rx482_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair"  :subid("123_1280467477.44751") :method
+.sub "!PREFIX__colonpair"  :subid("123_1282016529.10767") :method
 .annotate 'line', 4
     $P484 = self."!PREFIX__!subrule"("circumfix", ":")
     $P485 = self."!PREFIX__!subrule"("identifier", ":")
@@ -6581,7 +7111,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable"  :subid("124_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "variable"  :subid("124_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx494_tgt
     .local int rx494_pos
@@ -6589,8 +7119,10 @@
     .local int rx494_eos
     .local int rx494_rep
     .local pmc rx494_cur
+    .local pmc rx494_debug
     (rx494_cur, rx494_pos, rx494_tgt, $I10) = self."!cursor_start"()
     rx494_cur."!cursor_caparray"("twigil")
+    getattribute rx494_debug, rx494_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx494_cur
     .local pmc match
     .lex "$/", match
@@ -6602,7 +7134,9 @@
     substr rx494_tgt, rx494_tgt, rx494_off
   rx494_start:
     eq $I10, 1, rx494_restart
+    if_null rx494_debug, debug_596
     rx494_cur."!cursor_debug"("START ", "variable")
+  debug_596:
     $I10 = self.'from'()
     ne $I10, -1, rxscan499_done
     goto rxscan499_scan
@@ -6689,8 +7223,8 @@
     add $I11, rx494_pos, 1
     gt $I11, rx494_eos, rx494_fail
     sub $I11, rx494_pos, rx494_off
-    substr $S10, rx494_tgt, $I11, 1
-    ne $S10, "$", rx494_fail
+    ord $I11, rx494_tgt, $I11
+    ne $I11, 36, rx494_fail
     add rx494_pos, 1
     set_addr $I10, rxcap_503_fail
     ($I12, $I11) = rx494_cur."!mark_peek"($I10)
@@ -6728,11 +7262,15 @@
 .annotate 'line', 249
   # rx pass
     rx494_cur."!cursor_pass"(rx494_pos, "variable")
+    if_null rx494_debug, debug_597
     rx494_cur."!cursor_debug"("PASS  ", "variable", " at pos=", rx494_pos)
+  debug_597:
     .return (rx494_cur)
   rx494_restart:
 .annotate 'line', 4
+    if_null rx494_debug, debug_598
     rx494_cur."!cursor_debug"("NEXT ", "variable")
+  debug_598:
   rx494_fail:
     (rx494_rep, rx494_pos, $I10, $P10) = rx494_cur."!mark_fail"(0)
     lt rx494_pos, -1, rx494_done
@@ -6740,14 +7278,16 @@
     jump $I10
   rx494_done:
     rx494_cur."!cursor_fail"()
+    if_null rx494_debug, debug_599
     rx494_cur."!cursor_debug"("FAIL  ", "variable")
+  debug_599:
     .return (rx494_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable"  :subid("125_1280467477.44751") :method
+.sub "!PREFIX__variable"  :subid("125_1282016529.10767") :method
 .annotate 'line', 4
     $P496 = self."!PREFIX__!subrule"("sigil", "")
     $P497 = self."!PREFIX__!subrule"("sigil", "")
@@ -6762,7 +7302,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "sigil"  :subid("126_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "sigil"  :subid("126_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx506_tgt
     .local int rx506_pos
@@ -6770,7 +7310,9 @@
     .local int rx506_eos
     .local int rx506_rep
     .local pmc rx506_cur
+    .local pmc rx506_debug
     (rx506_cur, rx506_pos, rx506_tgt, $I10) = self."!cursor_start"()
+    getattribute rx506_debug, rx506_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx506_cur
     .local pmc match
     .lex "$/", match
@@ -6782,7 +7324,9 @@
     substr rx506_tgt, rx506_tgt, rx506_off
   rx506_start:
     eq $I10, 1, rx506_restart
+    if_null rx506_debug, debug_600
     rx506_cur."!cursor_debug"("START ", "sigil")
+  debug_600:
     $I10 = self.'from'()
     ne $I10, -1, rxscan509_done
     goto rxscan509_scan
@@ -6805,11 +7349,15 @@
     inc rx506_pos
   # rx pass
     rx506_cur."!cursor_pass"(rx506_pos, "sigil")
+    if_null rx506_debug, debug_601
     rx506_cur."!cursor_debug"("PASS  ", "sigil", " at pos=", rx506_pos)
+  debug_601:
     .return (rx506_cur)
   rx506_restart:
 .annotate 'line', 4
+    if_null rx506_debug, debug_602
     rx506_cur."!cursor_debug"("NEXT ", "sigil")
+  debug_602:
   rx506_fail:
     (rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0)
     lt rx506_pos, -1, rx506_done
@@ -6817,14 +7365,16 @@
     jump $I10
   rx506_done:
     rx506_cur."!cursor_fail"()
+    if_null rx506_debug, debug_603
     rx506_cur."!cursor_debug"("FAIL  ", "sigil")
+  debug_603:
     .return (rx506_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil"  :subid("127_1280467477.44751") :method
+.sub "!PREFIX__sigil"  :subid("127_1282016529.10767") :method
 .annotate 'line', 4
     new $P508, "ResizablePMCArray"
     push $P508, "&"
@@ -6836,7 +7386,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "twigil"  :subid("128_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "twigil"  :subid("128_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx511_tgt
     .local int rx511_pos
@@ -6844,7 +7394,9 @@
     .local int rx511_eos
     .local int rx511_rep
     .local pmc rx511_cur
+    .local pmc rx511_debug
     (rx511_cur, rx511_pos, rx511_tgt, $I10) = self."!cursor_start"()
+    getattribute rx511_debug, rx511_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx511_cur
     .local pmc match
     .lex "$/", match
@@ -6856,7 +7408,9 @@
     substr rx511_tgt, rx511_tgt, rx511_off
   rx511_start:
     eq $I10, 1, rx511_restart
+    if_null rx511_debug, debug_604
     rx511_cur."!cursor_debug"("START ", "twigil")
+  debug_604:
     $I10 = self.'from'()
     ne $I10, -1, rxscan514_done
     goto rxscan514_scan
@@ -6879,11 +7433,15 @@
     inc rx511_pos
   # rx pass
     rx511_cur."!cursor_pass"(rx511_pos, "twigil")
+    if_null rx511_debug, debug_605
     rx511_cur."!cursor_debug"("PASS  ", "twigil", " at pos=", rx511_pos)
+  debug_605:
     .return (rx511_cur)
   rx511_restart:
 .annotate 'line', 4
+    if_null rx511_debug, debug_606
     rx511_cur."!cursor_debug"("NEXT ", "twigil")
+  debug_606:
   rx511_fail:
     (rx511_rep, rx511_pos, $I10, $P10) = rx511_cur."!mark_fail"(0)
     lt rx511_pos, -1, rx511_done
@@ -6891,14 +7449,16 @@
     jump $I10
   rx511_done:
     rx511_cur."!cursor_fail"()
+    if_null rx511_debug, debug_607
     rx511_cur."!cursor_debug"("FAIL  ", "twigil")
+  debug_607:
     .return (rx511_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil"  :subid("129_1280467477.44751") :method
+.sub "!PREFIX__twigil"  :subid("129_1282016529.10767") :method
 .annotate 'line', 4
     new $P513, "ResizablePMCArray"
     push $P513, "?"
@@ -6909,7 +7469,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator"  :subid("130_1280467477.44751") :method
+.sub "package_declarator"  :subid("130_1282016529.10767") :method
 .annotate 'line', 259
     $P516 = self."!protoregex"("package_declarator")
     .return ($P516)
@@ -6917,7 +7477,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator"  :subid("131_1280467477.44751") :method
+.sub "!PREFIX__package_declarator"  :subid("131_1282016529.10767") :method
 .annotate 'line', 259
     $P518 = self."!PREFIX__!protoregex"("package_declarator")
     .return ($P518)
@@ -6925,7 +7485,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<module>"  :subid("132_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "package_declarator:sym<module>"  :subid("132_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx520_tgt
     .local int rx520_pos
@@ -6933,7 +7493,9 @@
     .local int rx520_eos
     .local int rx520_rep
     .local pmc rx520_cur
+    .local pmc rx520_debug
     (rx520_cur, rx520_pos, rx520_tgt, $I10) = self."!cursor_start"()
+    getattribute rx520_debug, rx520_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx520_cur
     .local pmc match
     .lex "$/", match
@@ -6945,7 +7507,9 @@
     substr rx520_tgt, rx520_tgt, rx520_off
   rx520_start:
     eq $I10, 1, rx520_restart
+    if_null rx520_debug, debug_608
     rx520_cur."!cursor_debug"("START ", "package_declarator:sym<module>")
+  debug_608:
     $I10 = self.'from'()
     ne $I10, -1, rxscan524_done
     goto rxscan524_scan
@@ -6989,11 +7553,15 @@
     rx520_pos = $P10."pos"()
   # rx pass
     rx520_cur."!cursor_pass"(rx520_pos, "package_declarator:sym<module>")
+    if_null rx520_debug, debug_609
     rx520_cur."!cursor_debug"("PASS  ", "package_declarator:sym<module>", " at pos=", rx520_pos)
+  debug_609:
     .return (rx520_cur)
   rx520_restart:
 .annotate 'line', 4
+    if_null rx520_debug, debug_610
     rx520_cur."!cursor_debug"("NEXT ", "package_declarator:sym<module>")
+  debug_610:
   rx520_fail:
     (rx520_rep, rx520_pos, $I10, $P10) = rx520_cur."!mark_fail"(0)
     lt rx520_pos, -1, rx520_done
@@ -7001,14 +7569,16 @@
     jump $I10
   rx520_done:
     rx520_cur."!cursor_fail"()
+    if_null rx520_debug, debug_611
     rx520_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<module>")
+  debug_611:
     .return (rx520_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>"  :subid("133_1280467477.44751") :method
+.sub "!PREFIX__package_declarator:sym<module>"  :subid("133_1282016529.10767") :method
 .annotate 'line', 4
     $P522 = self."!PREFIX__!subrule"("package_def", "module")
     new $P523, "ResizablePMCArray"
@@ -7018,7 +7588,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<class>"  :subid("134_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "package_declarator:sym<class>"  :subid("134_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx527_tgt
     .local int rx527_pos
@@ -7026,7 +7596,9 @@
     .local int rx527_eos
     .local int rx527_rep
     .local pmc rx527_cur
+    .local pmc rx527_debug
     (rx527_cur, rx527_pos, rx527_tgt, $I10) = self."!cursor_start"()
+    getattribute rx527_debug, rx527_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx527_cur
     .local pmc match
     .lex "$/", match
@@ -7038,7 +7610,9 @@
     substr rx527_tgt, rx527_tgt, rx527_off
   rx527_start:
     eq $I10, 1, rx527_restart
+    if_null rx527_debug, debug_612
     rx527_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
+  debug_612:
     $I10 = self.'from'()
     ne $I10, -1, rxscan532_done
     goto rxscan532_scan
@@ -7095,11 +7669,15 @@
     rx527_pos = $P10."pos"()
   # rx pass
     rx527_cur."!cursor_pass"(rx527_pos, "package_declarator:sym<class>")
+    if_null rx527_debug, debug_613
     rx527_cur."!cursor_debug"("PASS  ", "package_declarator:sym<class>", " at pos=", rx527_pos)
+  debug_613:
     .return (rx527_cur)
   rx527_restart:
 .annotate 'line', 4
+    if_null rx527_debug, debug_614
     rx527_cur."!cursor_debug"("NEXT ", "package_declarator:sym<class>")
+  debug_614:
   rx527_fail:
     (rx527_rep, rx527_pos, $I10, $P10) = rx527_cur."!mark_fail"(0)
     lt rx527_pos, -1, rx527_done
@@ -7107,14 +7685,16 @@
     jump $I10
   rx527_done:
     rx527_cur."!cursor_fail"()
+    if_null rx527_debug, debug_615
     rx527_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<class>")
+  debug_615:
     .return (rx527_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>"  :subid("135_1280467477.44751") :method
+.sub "!PREFIX__package_declarator:sym<class>"  :subid("135_1282016529.10767") :method
 .annotate 'line', 4
     $P529 = self."!PREFIX__!subrule"("package_def", "grammar")
     $P530 = self."!PREFIX__!subrule"("package_def", "class")
@@ -7126,7 +7706,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_def"  :subid("136_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "package_def"  :subid("136_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx536_tgt
     .local int rx536_pos
@@ -7134,8 +7714,10 @@
     .local int rx536_eos
     .local int rx536_rep
     .local pmc rx536_cur
+    .local pmc rx536_debug
     (rx536_cur, rx536_pos, rx536_tgt, $I10) = self."!cursor_start"()
     rx536_cur."!cursor_caparray"("parent")
+    getattribute rx536_debug, rx536_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx536_cur
     .local pmc match
     .lex "$/", match
@@ -7147,7 +7729,9 @@
     substr rx536_tgt, rx536_tgt, rx536_off
   rx536_start:
     eq $I10, 1, rx536_restart
+    if_null rx536_debug, debug_616
     rx536_cur."!cursor_debug"("START ", "package_def")
+  debug_616:
     $I10 = self.'from'()
     ne $I10, -1, rxscan540_done
     goto rxscan540_scan
@@ -7235,8 +7819,8 @@
     add $I11, rx536_pos, 1
     gt $I11, rx536_eos, rx536_fail
     sub $I11, rx536_pos, rx536_off
-    substr $S10, rx536_tgt, $I11, 1
-    ne $S10, ";", rx536_fail
+    ord $I11, rx536_tgt, $I11
+    ne $I11, 59, rx536_fail
     add rx536_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx536_cur."!cursor_pos"(rx536_pos)
@@ -7316,11 +7900,15 @@
 .annotate 'line', 263
   # rx pass
     rx536_cur."!cursor_pass"(rx536_pos, "package_def")
+    if_null rx536_debug, debug_617
     rx536_cur."!cursor_debug"("PASS  ", "package_def", " at pos=", rx536_pos)
+  debug_617:
     .return (rx536_cur)
   rx536_restart:
 .annotate 'line', 4
+    if_null rx536_debug, debug_618
     rx536_cur."!cursor_debug"("NEXT ", "package_def")
+  debug_618:
   rx536_fail:
     (rx536_rep, rx536_pos, $I10, $P10) = rx536_cur."!mark_fail"(0)
     lt rx536_pos, -1, rx536_done
@@ -7328,14 +7916,16 @@
     jump $I10
   rx536_done:
     rx536_cur."!cursor_fail"()
+    if_null rx536_debug, debug_619
     rx536_cur."!cursor_debug"("FAIL  ", "package_def")
+  debug_619:
     .return (rx536_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def"  :subid("137_1280467477.44751") :method
+.sub "!PREFIX__package_def"  :subid("137_1282016529.10767") :method
 .annotate 'line', 4
     $P538 = self."!PREFIX__!subrule"("ws", "")
     new $P539, "ResizablePMCArray"
@@ -7345,7 +7935,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator"  :subid("138_1280467477.44751") :method
+.sub "scope_declarator"  :subid("138_1282016529.10767") :method
 .annotate 'line', 273
     $P559 = self."!protoregex"("scope_declarator")
     .return ($P559)
@@ -7353,7 +7943,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator"  :subid("139_1280467477.44751") :method
+.sub "!PREFIX__scope_declarator"  :subid("139_1282016529.10767") :method
 .annotate 'line', 273
     $P561 = self."!PREFIX__!protoregex"("scope_declarator")
     .return ($P561)
@@ -7361,7 +7951,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<my>"  :subid("140_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "scope_declarator:sym<my>"  :subid("140_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx563_tgt
     .local int rx563_pos
@@ -7369,7 +7959,9 @@
     .local int rx563_eos
     .local int rx563_rep
     .local pmc rx563_cur
+    .local pmc rx563_debug
     (rx563_cur, rx563_pos, rx563_tgt, $I10) = self."!cursor_start"()
+    getattribute rx563_debug, rx563_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx563_cur
     .local pmc match
     .lex "$/", match
@@ -7381,7 +7973,9 @@
     substr rx563_tgt, rx563_tgt, rx563_off
   rx563_start:
     eq $I10, 1, rx563_restart
+    if_null rx563_debug, debug_620
     rx563_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
+  debug_620:
     $I10 = self.'from'()
     ne $I10, -1, rxscan567_done
     goto rxscan567_scan
@@ -7425,11 +8019,15 @@
     rx563_pos = $P10."pos"()
   # rx pass
     rx563_cur."!cursor_pass"(rx563_pos, "scope_declarator:sym<my>")
+    if_null rx563_debug, debug_621
     rx563_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<my>", " at pos=", rx563_pos)
+  debug_621:
     .return (rx563_cur)
   rx563_restart:
 .annotate 'line', 4
+    if_null rx563_debug, debug_622
     rx563_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<my>")
+  debug_622:
   rx563_fail:
     (rx563_rep, rx563_pos, $I10, $P10) = rx563_cur."!mark_fail"(0)
     lt rx563_pos, -1, rx563_done
@@ -7437,14 +8035,16 @@
     jump $I10
   rx563_done:
     rx563_cur."!cursor_fail"()
+    if_null rx563_debug, debug_623
     rx563_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<my>")
+  debug_623:
     .return (rx563_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>"  :subid("141_1280467477.44751") :method
+.sub "!PREFIX__scope_declarator:sym<my>"  :subid("141_1282016529.10767") :method
 .annotate 'line', 4
     $P565 = self."!PREFIX__!subrule"("scoped", "my")
     new $P566, "ResizablePMCArray"
@@ -7454,7 +8054,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<our>"  :subid("142_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "scope_declarator:sym<our>"  :subid("142_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx570_tgt
     .local int rx570_pos
@@ -7462,7 +8062,9 @@
     .local int rx570_eos
     .local int rx570_rep
     .local pmc rx570_cur
+    .local pmc rx570_debug
     (rx570_cur, rx570_pos, rx570_tgt, $I10) = self."!cursor_start"()
+    getattribute rx570_debug, rx570_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx570_cur
     .local pmc match
     .lex "$/", match
@@ -7474,7 +8076,9 @@
     substr rx570_tgt, rx570_tgt, rx570_off
   rx570_start:
     eq $I10, 1, rx570_restart
+    if_null rx570_debug, debug_624
     rx570_cur."!cursor_debug"("START ", "scope_declarator:sym<our>")
+  debug_624:
     $I10 = self.'from'()
     ne $I10, -1, rxscan574_done
     goto rxscan574_scan
@@ -7518,11 +8122,15 @@
     rx570_pos = $P10."pos"()
   # rx pass
     rx570_cur."!cursor_pass"(rx570_pos, "scope_declarator:sym<our>")
+    if_null rx570_debug, debug_625
     rx570_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<our>", " at pos=", rx570_pos)
+  debug_625:
     .return (rx570_cur)
   rx570_restart:
 .annotate 'line', 4
+    if_null rx570_debug, debug_626
     rx570_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<our>")
+  debug_626:
   rx570_fail:
     (rx570_rep, rx570_pos, $I10, $P10) = rx570_cur."!mark_fail"(0)
     lt rx570_pos, -1, rx570_done
@@ -7530,14 +8138,16 @@
     jump $I10
   rx570_done:
     rx570_cur."!cursor_fail"()
+    if_null rx570_debug, debug_627
     rx570_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<our>")
+  debug_627:
     .return (rx570_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>"  :subid("143_1280467477.44751") :method
+.sub "!PREFIX__scope_declarator:sym<our>"  :subid("143_1282016529.10767") :method
 .annotate 'line', 4
     $P572 = self."!PREFIX__!subrule"("scoped", "our")
     new $P573, "ResizablePMCArray"
@@ -7547,7 +8157,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<has>"  :subid("144_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "scope_declarator:sym<has>"  :subid("144_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx577_tgt
     .local int rx577_pos
@@ -7555,7 +8165,9 @@
     .local int rx577_eos
     .local int rx577_rep
     .local pmc rx577_cur
+    .local pmc rx577_debug
     (rx577_cur, rx577_pos, rx577_tgt, $I10) = self."!cursor_start"()
+    getattribute rx577_debug, rx577_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx577_cur
     .local pmc match
     .lex "$/", match
@@ -7567,7 +8179,9 @@
     substr rx577_tgt, rx577_tgt, rx577_off
   rx577_start:
     eq $I10, 1, rx577_restart
+    if_null rx577_debug, debug_628
     rx577_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
+  debug_628:
     $I10 = self.'from'()
     ne $I10, -1, rxscan581_done
     goto rxscan581_scan
@@ -7611,11 +8225,15 @@
     rx577_pos = $P10."pos"()
   # rx pass
     rx577_cur."!cursor_pass"(rx577_pos, "scope_declarator:sym<has>")
+    if_null rx577_debug, debug_629
     rx577_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<has>", " at pos=", rx577_pos)
+  debug_629:
     .return (rx577_cur)
   rx577_restart:
 .annotate 'line', 4
+    if_null rx577_debug, debug_630
     rx577_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<has>")
+  debug_630:
   rx577_fail:
     (rx577_rep, rx577_pos, $I10, $P10) = rx577_cur."!mark_fail"(0)
     lt rx577_pos, -1, rx577_done
@@ -7623,14 +8241,16 @@
     jump $I10
   rx577_done:
     rx577_cur."!cursor_fail"()
+    if_null rx577_debug, debug_631
     rx577_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<has>")
+  debug_631:
     .return (rx577_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>"  :subid("145_1280467477.44751") :method
+.sub "!PREFIX__scope_declarator:sym<has>"  :subid("145_1282016529.10767") :method
 .annotate 'line', 4
     $P579 = self."!PREFIX__!subrule"("scoped", "has")
     new $P580, "ResizablePMCArray"
@@ -7640,7 +8260,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scoped"  :subid("146_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "scoped"  :subid("146_1282016529.10767") :method :outer("11_1282016529.10767")
     .param pmc param_584
 .annotate 'line', 278
     .lex "$*SCOPE", param_584
@@ -7651,7 +8271,9 @@
     .local int rx585_eos
     .local int rx585_rep
     .local pmc rx585_cur
+    .local pmc rx585_debug
     (rx585_cur, rx585_pos, rx585_tgt, $I10) = self."!cursor_start"()
+    getattribute rx585_debug, rx585_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx585_cur
     .local pmc match
     .lex "$/", match
@@ -7663,7 +8285,9 @@
     substr rx585_tgt, rx585_tgt, rx585_off
   rx585_start:
     eq $I10, 1, rx585_restart
+    if_null rx585_debug, debug_632
     rx585_cur."!cursor_debug"("START ", "scoped")
+  debug_632:
     $I10 = self.'from'()
     ne $I10, -1, rxscan590_done
     goto rxscan590_scan
@@ -7722,11 +8346,15 @@
 .annotate 'line', 278
   # rx pass
     rx585_cur."!cursor_pass"(rx585_pos, "scoped")
+    if_null rx585_debug, debug_633
     rx585_cur."!cursor_debug"("PASS  ", "scoped", " at pos=", rx585_pos)
+  debug_633:
     .return (rx585_cur)
   rx585_restart:
 .annotate 'line', 4
+    if_null rx585_debug, debug_634
     rx585_cur."!cursor_debug"("NEXT ", "scoped")
+  debug_634:
   rx585_fail:
     (rx585_rep, rx585_pos, $I10, $P10) = rx585_cur."!mark_fail"(0)
     lt rx585_pos, -1, rx585_done
@@ -7734,14 +8362,16 @@
     jump $I10
   rx585_done:
     rx585_cur."!cursor_fail"()
+    if_null rx585_debug, debug_635
     rx585_cur."!cursor_debug"("FAIL  ", "scoped")
+  debug_635:
     .return (rx585_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped"  :subid("147_1280467477.44751") :method
+.sub "!PREFIX__scoped"  :subid("147_1282016529.10767") :method
 .annotate 'line', 4
     $P587 = self."!PREFIX__!subrule"("ws", "")
     $P588 = self."!PREFIX__!subrule"("ws", "")
@@ -7753,7 +8383,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "typename"  :subid("148_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "typename"  :subid("148_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx597_tgt
     .local int rx597_pos
@@ -7761,7 +8391,9 @@
     .local int rx597_eos
     .local int rx597_rep
     .local pmc rx597_cur
+    .local pmc rx597_debug
     (rx597_cur, rx597_pos, rx597_tgt, $I10) = self."!cursor_start"()
+    getattribute rx597_debug, rx597_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx597_cur
     .local pmc match
     .lex "$/", match
@@ -7773,7 +8405,9 @@
     substr rx597_tgt, rx597_tgt, rx597_off
   rx597_start:
     eq $I10, 1, rx597_restart
+    if_null rx597_debug, debug_636
     rx597_cur."!cursor_debug"("START ", "typename")
+  debug_636:
     $I10 = self.'from'()
     ne $I10, -1, rxscan601_done
     goto rxscan601_scan
@@ -7796,11 +8430,15 @@
     rx597_pos = $P10."pos"()
   # rx pass
     rx597_cur."!cursor_pass"(rx597_pos, "typename")
+    if_null rx597_debug, debug_637
     rx597_cur."!cursor_debug"("PASS  ", "typename", " at pos=", rx597_pos)
+  debug_637:
     .return (rx597_cur)
   rx597_restart:
 .annotate 'line', 4
+    if_null rx597_debug, debug_638
     rx597_cur."!cursor_debug"("NEXT ", "typename")
+  debug_638:
   rx597_fail:
     (rx597_rep, rx597_pos, $I10, $P10) = rx597_cur."!mark_fail"(0)
     lt rx597_pos, -1, rx597_done
@@ -7808,14 +8446,16 @@
     jump $I10
   rx597_done:
     rx597_cur."!cursor_fail"()
+    if_null rx597_debug, debug_639
     rx597_cur."!cursor_debug"("FAIL  ", "typename")
+  debug_639:
     .return (rx597_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__typename"  :subid("149_1280467477.44751") :method
+.sub "!PREFIX__typename"  :subid("149_1282016529.10767") :method
 .annotate 'line', 4
     $P599 = self."!PREFIX__!subrule"("name", "")
     new $P600, "ResizablePMCArray"
@@ -7825,7 +8465,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "declarator"  :subid("150_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "declarator"  :subid("150_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx603_tgt
     .local int rx603_pos
@@ -7833,7 +8473,9 @@
     .local int rx603_eos
     .local int rx603_rep
     .local pmc rx603_cur
+    .local pmc rx603_debug
     (rx603_cur, rx603_pos, rx603_tgt, $I10) = self."!cursor_start"()
+    getattribute rx603_debug, rx603_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx603_cur
     .local pmc match
     .lex "$/", match
@@ -7845,7 +8487,9 @@
     substr rx603_tgt, rx603_tgt, rx603_off
   rx603_start:
     eq $I10, 1, rx603_restart
+    if_null rx603_debug, debug_640
     rx603_cur."!cursor_debug"("START ", "declarator")
+  debug_640:
     $I10 = self.'from'()
     ne $I10, -1, rxscan608_done
     goto rxscan608_scan
@@ -7884,11 +8528,15 @@
 .annotate 'line', 285
   # rx pass
     rx603_cur."!cursor_pass"(rx603_pos, "declarator")
+    if_null rx603_debug, debug_641
     rx603_cur."!cursor_debug"("PASS  ", "declarator", " at pos=", rx603_pos)
+  debug_641:
     .return (rx603_cur)
   rx603_restart:
 .annotate 'line', 4
+    if_null rx603_debug, debug_642
     rx603_cur."!cursor_debug"("NEXT ", "declarator")
+  debug_642:
   rx603_fail:
     (rx603_rep, rx603_pos, $I10, $P10) = rx603_cur."!mark_fail"(0)
     lt rx603_pos, -1, rx603_done
@@ -7896,14 +8544,16 @@
     jump $I10
   rx603_done:
     rx603_cur."!cursor_fail"()
+    if_null rx603_debug, debug_643
     rx603_cur."!cursor_debug"("FAIL  ", "declarator")
+  debug_643:
     .return (rx603_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__declarator"  :subid("151_1280467477.44751") :method
+.sub "!PREFIX__declarator"  :subid("151_1282016529.10767") :method
 .annotate 'line', 4
     $P605 = self."!PREFIX__!subrule"("routine_declarator", "")
     $P606 = self."!PREFIX__!subrule"("variable_declarator", "")
@@ -7915,7 +8565,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable_declarator"  :subid("152_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "variable_declarator"  :subid("152_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx611_tgt
     .local int rx611_pos
@@ -7923,7 +8573,9 @@
     .local int rx611_eos
     .local int rx611_rep
     .local pmc rx611_cur
+    .local pmc rx611_debug
     (rx611_cur, rx611_pos, rx611_tgt, $I10) = self."!cursor_start"()
+    getattribute rx611_debug, rx611_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx611_cur
     .local pmc match
     .lex "$/", match
@@ -7935,7 +8587,9 @@
     substr rx611_tgt, rx611_tgt, rx611_off
   rx611_start:
     eq $I10, 1, rx611_restart
+    if_null rx611_debug, debug_644
     rx611_cur."!cursor_debug"("START ", "variable_declarator")
+  debug_644:
     $I10 = self.'from'()
     ne $I10, -1, rxscan615_done
     goto rxscan615_scan
@@ -7958,11 +8612,15 @@
     rx611_pos = $P10."pos"()
   # rx pass
     rx611_cur."!cursor_pass"(rx611_pos, "variable_declarator")
+    if_null rx611_debug, debug_645
     rx611_cur."!cursor_debug"("PASS  ", "variable_declarator", " at pos=", rx611_pos)
+  debug_645:
     .return (rx611_cur)
   rx611_restart:
 .annotate 'line', 4
+    if_null rx611_debug, debug_646
     rx611_cur."!cursor_debug"("NEXT ", "variable_declarator")
+  debug_646:
   rx611_fail:
     (rx611_rep, rx611_pos, $I10, $P10) = rx611_cur."!mark_fail"(0)
     lt rx611_pos, -1, rx611_done
@@ -7970,14 +8628,16 @@
     jump $I10
   rx611_done:
     rx611_cur."!cursor_fail"()
+    if_null rx611_debug, debug_647
     rx611_cur."!cursor_debug"("FAIL  ", "variable_declarator")
+  debug_647:
     .return (rx611_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator"  :subid("153_1280467477.44751") :method
+.sub "!PREFIX__variable_declarator"  :subid("153_1282016529.10767") :method
 .annotate 'line', 4
     $P613 = self."!PREFIX__!subrule"("variable", "")
     new $P614, "ResizablePMCArray"
@@ -7987,7 +8647,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator"  :subid("154_1280467477.44751") :method
+.sub "routine_declarator"  :subid("154_1282016529.10767") :method
 .annotate 'line', 292
     $P617 = self."!protoregex"("routine_declarator")
     .return ($P617)
@@ -7995,7 +8655,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator"  :subid("155_1280467477.44751") :method
+.sub "!PREFIX__routine_declarator"  :subid("155_1282016529.10767") :method
 .annotate 'line', 292
     $P619 = self."!PREFIX__!protoregex"("routine_declarator")
     .return ($P619)
@@ -8003,7 +8663,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<sub>"  :subid("156_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "routine_declarator:sym<sub>"  :subid("156_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx621_tgt
     .local int rx621_pos
@@ -8011,7 +8671,9 @@
     .local int rx621_eos
     .local int rx621_rep
     .local pmc rx621_cur
+    .local pmc rx621_debug
     (rx621_cur, rx621_pos, rx621_tgt, $I10) = self."!cursor_start"()
+    getattribute rx621_debug, rx621_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx621_cur
     .local pmc match
     .lex "$/", match
@@ -8023,7 +8685,9 @@
     substr rx621_tgt, rx621_tgt, rx621_off
   rx621_start:
     eq $I10, 1, rx621_restart
+    if_null rx621_debug, debug_648
     rx621_cur."!cursor_debug"("START ", "routine_declarator:sym<sub>")
+  debug_648:
     $I10 = self.'from'()
     ne $I10, -1, rxscan625_done
     goto rxscan625_scan
@@ -8067,11 +8731,15 @@
     rx621_pos = $P10."pos"()
   # rx pass
     rx621_cur."!cursor_pass"(rx621_pos, "routine_declarator:sym<sub>")
+    if_null rx621_debug, debug_649
     rx621_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<sub>", " at pos=", rx621_pos)
+  debug_649:
     .return (rx621_cur)
   rx621_restart:
 .annotate 'line', 4
+    if_null rx621_debug, debug_650
     rx621_cur."!cursor_debug"("NEXT ", "routine_declarator:sym<sub>")
+  debug_650:
   rx621_fail:
     (rx621_rep, rx621_pos, $I10, $P10) = rx621_cur."!mark_fail"(0)
     lt rx621_pos, -1, rx621_done
@@ -8079,14 +8747,16 @@
     jump $I10
   rx621_done:
     rx621_cur."!cursor_fail"()
+    if_null rx621_debug, debug_651
     rx621_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<sub>")
+  debug_651:
     .return (rx621_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("157_1280467477.44751") :method
+.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("157_1282016529.10767") :method
 .annotate 'line', 4
     $P623 = self."!PREFIX__!subrule"("routine_def", "sub")
     new $P624, "ResizablePMCArray"
@@ -8096,7 +8766,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<method>"  :subid("158_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "routine_declarator:sym<method>"  :subid("158_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx628_tgt
     .local int rx628_pos
@@ -8104,7 +8774,9 @@
     .local int rx628_eos
     .local int rx628_rep
     .local pmc rx628_cur
+    .local pmc rx628_debug
     (rx628_cur, rx628_pos, rx628_tgt, $I10) = self."!cursor_start"()
+    getattribute rx628_debug, rx628_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx628_cur
     .local pmc match
     .lex "$/", match
@@ -8116,7 +8788,9 @@
     substr rx628_tgt, rx628_tgt, rx628_off
   rx628_start:
     eq $I10, 1, rx628_restart
+    if_null rx628_debug, debug_652
     rx628_cur."!cursor_debug"("START ", "routine_declarator:sym<method>")
+  debug_652:
     $I10 = self.'from'()
     ne $I10, -1, rxscan632_done
     goto rxscan632_scan
@@ -8160,11 +8834,15 @@
     rx628_pos = $P10."pos"()
   # rx pass
     rx628_cur."!cursor_pass"(rx628_pos, "routine_declarator:sym<method>")
+    if_null rx628_debug, debug_653
     rx628_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<method>", " at pos=", rx628_pos)
+  debug_653:
     .return (rx628_cur)
   rx628_restart:
 .annotate 'line', 4
+    if_null rx628_debug, debug_654
     rx628_cur."!cursor_debug"("NEXT ", "routine_declarator:sym<method>")
+  debug_654:
   rx628_fail:
     (rx628_rep, rx628_pos, $I10, $P10) = rx628_cur."!mark_fail"(0)
     lt rx628_pos, -1, rx628_done
@@ -8172,14 +8850,16 @@
     jump $I10
   rx628_done:
     rx628_cur."!cursor_fail"()
+    if_null rx628_debug, debug_655
     rx628_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<method>")
+  debug_655:
     .return (rx628_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>"  :subid("159_1280467477.44751") :method
+.sub "!PREFIX__routine_declarator:sym<method>"  :subid("159_1282016529.10767") :method
 .annotate 'line', 4
     $P630 = self."!PREFIX__!subrule"("method_def", "method")
     new $P631, "ResizablePMCArray"
@@ -8189,7 +8869,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_def"  :subid("160_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "routine_def"  :subid("160_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx635_tgt
     .local int rx635_pos
@@ -8197,8 +8877,10 @@
     .local int rx635_eos
     .local int rx635_rep
     .local pmc rx635_cur
+    .local pmc rx635_debug
     (rx635_cur, rx635_pos, rx635_tgt, $I10) = self."!cursor_start"()
-    rx635_cur."!cursor_caparray"("sigil", "deflongname")
+    rx635_cur."!cursor_caparray"("deflongname", "sigil")
+    getattribute rx635_debug, rx635_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx635_cur
     .local pmc match
     .lex "$/", match
@@ -8210,7 +8892,9 @@
     substr rx635_tgt, rx635_tgt, rx635_off
   rx635_start:
     eq $I10, 1, rx635_restart
+    if_null rx635_debug, debug_656
     rx635_cur."!cursor_debug"("START ", "routine_def")
+  debug_656:
     $I10 = self.'from'()
     ne $I10, -1, rxscan639_done
     goto rxscan639_scan
@@ -8250,8 +8934,8 @@
     add $I11, rx635_pos, 1
     gt $I11, rx635_eos, rx635_fail
     sub $I11, rx635_pos, rx635_off
-    substr $S10, rx635_tgt, $I11, 1
-    ne $S10, "&", rx635_fail
+    ord $I11, rx635_tgt, $I11
+    ne $I11, 38, rx635_fail
     add rx635_pos, 1
     set_addr $I10, rxquantr643_done
     (rx635_rep) = rx635_cur."!mark_commit"($I10)
@@ -8311,8 +8995,8 @@
     add $I11, rx635_pos, 1
     gt $I11, rx635_eos, rx635_fail
     sub $I11, rx635_pos, rx635_off
-    substr $S10, rx635_tgt, $I11, 1
-    ne $S10, "(", rx635_fail
+    ord $I11, rx635_tgt, $I11
+    ne $I11, 40, rx635_fail
     add rx635_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx635_cur."!cursor_pos"(rx635_pos)
@@ -8335,8 +9019,8 @@
     add $I11, rx635_pos, 1
     gt $I11, rx635_eos, rx635_fail
     sub $I11, rx635_pos, rx635_off
-    substr $S10, rx635_tgt, $I11, 1
-    ne $S10, ")", rx635_fail
+    ord $I11, rx635_tgt, $I11
+    ne $I11, 41, rx635_fail
     add rx635_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx635_cur."!cursor_pos"(rx635_pos)
@@ -8383,11 +9067,15 @@
 .annotate 'line', 296
   # rx pass
     rx635_cur."!cursor_pass"(rx635_pos, "routine_def")
+    if_null rx635_debug, debug_657
     rx635_cur."!cursor_debug"("PASS  ", "routine_def", " at pos=", rx635_pos)
+  debug_657:
     .return (rx635_cur)
   rx635_restart:
 .annotate 'line', 4
+    if_null rx635_debug, debug_658
     rx635_cur."!cursor_debug"("NEXT ", "routine_def")
+  debug_658:
   rx635_fail:
     (rx635_rep, rx635_pos, $I10, $P10) = rx635_cur."!mark_fail"(0)
     lt rx635_pos, -1, rx635_done
@@ -8395,14 +9083,16 @@
     jump $I10
   rx635_done:
     rx635_cur."!cursor_fail"()
+    if_null rx635_debug, debug_659
     rx635_cur."!cursor_debug"("FAIL  ", "routine_def")
+  debug_659:
     .return (rx635_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def"  :subid("161_1280467477.44751") :method
+.sub "!PREFIX__routine_def"  :subid("161_1282016529.10767") :method
 .annotate 'line', 4
     $P637 = self."!PREFIX__!subrule"("ws", "")
     new $P638, "ResizablePMCArray"
@@ -8412,7 +9102,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "method_def"  :subid("162_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "method_def"  :subid("162_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx658_tgt
     .local int rx658_pos
@@ -8420,8 +9110,10 @@
     .local int rx658_eos
     .local int rx658_rep
     .local pmc rx658_cur
+    .local pmc rx658_debug
     (rx658_cur, rx658_pos, rx658_tgt, $I10) = self."!cursor_start"()
     rx658_cur."!cursor_caparray"("deflongname")
+    getattribute rx658_debug, rx658_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx658_cur
     .local pmc match
     .lex "$/", match
@@ -8433,7 +9125,9 @@
     substr rx658_tgt, rx658_tgt, rx658_off
   rx658_start:
     eq $I10, 1, rx658_restart
+    if_null rx658_debug, debug_660
     rx658_cur."!cursor_debug"("START ", "method_def")
+  debug_660:
     $I10 = self.'from'()
     ne $I10, -1, rxscan662_done
     goto rxscan662_scan
@@ -8502,8 +9196,8 @@
     add $I11, rx658_pos, 1
     gt $I11, rx658_eos, rx658_fail
     sub $I11, rx658_pos, rx658_off
-    substr $S10, rx658_tgt, $I11, 1
-    ne $S10, "(", rx658_fail
+    ord $I11, rx658_tgt, $I11
+    ne $I11, 40, rx658_fail
     add rx658_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx658_cur."!cursor_pos"(rx658_pos)
@@ -8526,8 +9220,8 @@
     add $I11, rx658_pos, 1
     gt $I11, rx658_eos, rx658_fail
     sub $I11, rx658_pos, rx658_off
-    substr $S10, rx658_tgt, $I11, 1
-    ne $S10, ")", rx658_fail
+    ord $I11, rx658_tgt, $I11
+    ne $I11, 41, rx658_fail
     add rx658_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx658_cur."!cursor_pos"(rx658_pos)
@@ -8574,11 +9268,15 @@
 .annotate 'line', 304
   # rx pass
     rx658_cur."!cursor_pass"(rx658_pos, "method_def")
+    if_null rx658_debug, debug_661
     rx658_cur."!cursor_debug"("PASS  ", "method_def", " at pos=", rx658_pos)
+  debug_661:
     .return (rx658_cur)
   rx658_restart:
 .annotate 'line', 4
+    if_null rx658_debug, debug_662
     rx658_cur."!cursor_debug"("NEXT ", "method_def")
+  debug_662:
   rx658_fail:
     (rx658_rep, rx658_pos, $I10, $P10) = rx658_cur."!mark_fail"(0)
     lt rx658_pos, -1, rx658_done
@@ -8586,14 +9284,16 @@
     jump $I10
   rx658_done:
     rx658_cur."!cursor_fail"()
+    if_null rx658_debug, debug_663
     rx658_cur."!cursor_debug"("FAIL  ", "method_def")
+  debug_663:
     .return (rx658_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def"  :subid("163_1280467477.44751") :method
+.sub "!PREFIX__method_def"  :subid("163_1282016529.10767") :method
 .annotate 'line', 4
     $P660 = self."!PREFIX__!subrule"("ws", "")
     new $P661, "ResizablePMCArray"
@@ -8603,7 +9303,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator"  :subid("164_1280467477.44751") :method
+.sub "multi_declarator"  :subid("164_1282016529.10767") :method
 .annotate 'line', 312
     $P678 = self."!protoregex"("multi_declarator")
     .return ($P678)
@@ -8611,7 +9311,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator"  :subid("165_1280467477.44751") :method
+.sub "!PREFIX__multi_declarator"  :subid("165_1282016529.10767") :method
 .annotate 'line', 312
     $P680 = self."!PREFIX__!protoregex"("multi_declarator")
     .return ($P680)
@@ -8619,7 +9319,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator:sym<multi>"  :subid("166_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "multi_declarator:sym<multi>"  :subid("166_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 314
     new $P682, "Undef"
     .lex "$*MULTINESS", $P682
@@ -8630,7 +9330,9 @@
     .local int rx683_eos
     .local int rx683_rep
     .local pmc rx683_cur
+    .local pmc rx683_debug
     (rx683_cur, rx683_pos, rx683_tgt, $I10) = self."!cursor_start"()
+    getattribute rx683_debug, rx683_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx683_cur
     .local pmc match
     .lex "$/", match
@@ -8642,7 +9344,9 @@
     substr rx683_tgt, rx683_tgt, rx683_off
   rx683_start:
     eq $I10, 1, rx683_restart
+    if_null rx683_debug, debug_664
     rx683_cur."!cursor_debug"("START ", "multi_declarator:sym<multi>")
+  debug_664:
     $I10 = self.'from'()
     ne $I10, -1, rxscan687_done
     goto rxscan687_scan
@@ -8720,11 +9424,15 @@
 .annotate 'line', 313
   # rx pass
     rx683_cur."!cursor_pass"(rx683_pos, "multi_declarator:sym<multi>")
+    if_null rx683_debug, debug_665
     rx683_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<multi>", " at pos=", rx683_pos)
+  debug_665:
     .return (rx683_cur)
   rx683_restart:
 .annotate 'line', 4
+    if_null rx683_debug, debug_666
     rx683_cur."!cursor_debug"("NEXT ", "multi_declarator:sym<multi>")
+  debug_666:
   rx683_fail:
     (rx683_rep, rx683_pos, $I10, $P10) = rx683_cur."!mark_fail"(0)
     lt rx683_pos, -1, rx683_done
@@ -8732,14 +9440,16 @@
     jump $I10
   rx683_done:
     rx683_cur."!cursor_fail"()
+    if_null rx683_debug, debug_667
     rx683_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<multi>")
+  debug_667:
     .return (rx683_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<multi>"  :subid("167_1280467477.44751") :method
+.sub "!PREFIX__multi_declarator:sym<multi>"  :subid("167_1282016529.10767") :method
 .annotate 'line', 4
     $P685 = self."!PREFIX__!subrule"("ws", "multi")
     new $P686, "ResizablePMCArray"
@@ -8749,7 +9459,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator:sym<null>"  :subid("168_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "multi_declarator:sym<null>"  :subid("168_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 319
     new $P692, "Undef"
     .lex "$*MULTINESS", $P692
@@ -8760,7 +9470,9 @@
     .local int rx693_eos
     .local int rx693_rep
     .local pmc rx693_cur
+    .local pmc rx693_debug
     (rx693_cur, rx693_pos, rx693_tgt, $I10) = self."!cursor_start"()
+    getattribute rx693_debug, rx693_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx693_cur
     .local pmc match
     .lex "$/", match
@@ -8772,7 +9484,9 @@
     substr rx693_tgt, rx693_tgt, rx693_off
   rx693_start:
     eq $I10, 1, rx693_restart
+    if_null rx693_debug, debug_668
     rx693_cur."!cursor_debug"("START ", "multi_declarator:sym<null>")
+  debug_668:
     $I10 = self.'from'()
     ne $I10, -1, rxscan697_done
     goto rxscan697_scan
@@ -8801,11 +9515,15 @@
 .annotate 'line', 318
   # rx pass
     rx693_cur."!cursor_pass"(rx693_pos, "multi_declarator:sym<null>")
+    if_null rx693_debug, debug_669
     rx693_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<null>", " at pos=", rx693_pos)
+  debug_669:
     .return (rx693_cur)
   rx693_restart:
 .annotate 'line', 4
+    if_null rx693_debug, debug_670
     rx693_cur."!cursor_debug"("NEXT ", "multi_declarator:sym<null>")
+  debug_670:
   rx693_fail:
     (rx693_rep, rx693_pos, $I10, $P10) = rx693_cur."!mark_fail"(0)
     lt rx693_pos, -1, rx693_done
@@ -8813,14 +9531,16 @@
     jump $I10
   rx693_done:
     rx693_cur."!cursor_fail"()
+    if_null rx693_debug, debug_671
     rx693_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<null>")
+  debug_671:
     .return (rx693_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<null>"  :subid("169_1280467477.44751") :method
+.sub "!PREFIX__multi_declarator:sym<null>"  :subid("169_1282016529.10767") :method
 .annotate 'line', 4
     $P695 = self."!PREFIX__!subrule"("declarator", "")
     new $P696, "ResizablePMCArray"
@@ -8830,7 +9550,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "signature"  :subid("170_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "signature"  :subid("170_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx700_tgt
     .local int rx700_pos
@@ -8838,8 +9558,10 @@
     .local int rx700_eos
     .local int rx700_rep
     .local pmc rx700_cur
+    .local pmc rx700_debug
     (rx700_cur, rx700_pos, rx700_tgt, $I10) = self."!cursor_start"()
     rx700_cur."!cursor_caparray"("parameter")
+    getattribute rx700_debug, rx700_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx700_cur
     .local pmc match
     .lex "$/", match
@@ -8851,7 +9573,9 @@
     substr rx700_tgt, rx700_tgt, rx700_off
   rx700_start:
     eq $I10, 1, rx700_restart
+    if_null rx700_debug, debug_672
     rx700_cur."!cursor_debug"("START ", "signature")
+  debug_672:
     $I10 = self.'from'()
     ne $I10, -1, rxscan703_done
     goto rxscan703_scan
@@ -8898,8 +9622,8 @@
     add $I11, rx700_pos, 1
     gt $I11, rx700_eos, rx700_fail
     sub $I11, rx700_pos, rx700_off
-    substr $S10, rx700_tgt, $I11, 1
-    ne $S10, ",", rx700_fail
+    ord $I11, rx700_tgt, $I11
+    ne $I11, 44, rx700_fail
     add rx700_pos, 1
     goto rxquantr705_loop
   rxquantr705_done:
@@ -8908,11 +9632,15 @@
   rxquantr704_done:
   # rx pass
     rx700_cur."!cursor_pass"(rx700_pos, "signature")
+    if_null rx700_debug, debug_673
     rx700_cur."!cursor_debug"("PASS  ", "signature", " at pos=", rx700_pos)
+  debug_673:
     .return (rx700_cur)
   rx700_restart:
 .annotate 'line', 4
+    if_null rx700_debug, debug_674
     rx700_cur."!cursor_debug"("NEXT ", "signature")
+  debug_674:
   rx700_fail:
     (rx700_rep, rx700_pos, $I10, $P10) = rx700_cur."!mark_fail"(0)
     lt rx700_pos, -1, rx700_done
@@ -8920,14 +9648,16 @@
     jump $I10
   rx700_done:
     rx700_cur."!cursor_fail"()
+    if_null rx700_debug, debug_675
     rx700_cur."!cursor_debug"("FAIL  ", "signature")
+  debug_675:
     .return (rx700_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature"  :subid("171_1280467477.44751") :method
+.sub "!PREFIX__signature"  :subid("171_1282016529.10767") :method
 .annotate 'line', 4
     new $P702, "ResizablePMCArray"
     push $P702, ""
@@ -8936,7 +9666,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "parameter"  :subid("172_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "parameter"  :subid("172_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx707_tgt
     .local int rx707_pos
@@ -8944,8 +9674,10 @@
     .local int rx707_eos
     .local int rx707_rep
     .local pmc rx707_cur
+    .local pmc rx707_debug
     (rx707_cur, rx707_pos, rx707_tgt, $I10) = self."!cursor_start"()
-    rx707_cur."!cursor_caparray"("typename", "default_value")
+    rx707_cur."!cursor_caparray"("default_value", "typename")
+    getattribute rx707_debug, rx707_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx707_cur
     .local pmc match
     .lex "$/", match
@@ -8957,7 +9689,9 @@
     substr rx707_tgt, rx707_tgt, rx707_off
   rx707_start:
     eq $I10, 1, rx707_restart
+    if_null rx707_debug, debug_676
     rx707_cur."!cursor_debug"("START ", "parameter")
+  debug_676:
     $I10 = self.'from'()
     ne $I10, -1, rxscan710_done
     goto rxscan710_scan
@@ -9005,8 +9739,8 @@
     add $I11, rx707_pos, 1
     gt $I11, rx707_eos, rx707_fail
     sub $I11, rx707_pos, rx707_off
-    substr $S10, rx707_tgt, $I11, 1
-    ne $S10, "*", rx707_fail
+    ord $I11, rx707_tgt, $I11
+    ne $I11, 42, rx707_fail
     add rx707_pos, 1
     set_addr $I10, rxcap_713_fail
     ($I12, $I11) = rx707_cur."!mark_peek"($I10)
@@ -9059,8 +9793,8 @@
     add $I11, rx707_pos, 1
     gt $I11, rx707_eos, rx707_fail
     sub $I11, rx707_pos, rx707_off
-    substr $S10, rx707_tgt, $I11, 1
-    ne $S10, "?", rx707_fail
+    ord $I11, rx707_tgt, $I11
+    ne $I11, 63, rx707_fail
     add rx707_pos, 1
     goto alt715_end
   alt715_1:
@@ -9070,8 +9804,8 @@
     add $I11, rx707_pos, 1
     gt $I11, rx707_eos, rx707_fail
     sub $I11, rx707_pos, rx707_off
-    substr $S10, rx707_tgt, $I11, 1
-    ne $S10, "!", rx707_fail
+    ord $I11, rx707_tgt, $I11
+    ne $I11, 33, rx707_fail
     add rx707_pos, 1
     goto alt715_end
   alt715_2:
@@ -9112,11 +9846,15 @@
 .annotate 'line', 325
   # rx pass
     rx707_cur."!cursor_pass"(rx707_pos, "parameter")
+    if_null rx707_debug, debug_677
     rx707_cur."!cursor_debug"("PASS  ", "parameter", " at pos=", rx707_pos)
+  debug_677:
     .return (rx707_cur)
   rx707_restart:
 .annotate 'line', 4
+    if_null rx707_debug, debug_678
     rx707_cur."!cursor_debug"("NEXT ", "parameter")
+  debug_678:
   rx707_fail:
     (rx707_rep, rx707_pos, $I10, $P10) = rx707_cur."!mark_fail"(0)
     lt rx707_pos, -1, rx707_done
@@ -9124,14 +9862,16 @@
     jump $I10
   rx707_done:
     rx707_cur."!cursor_fail"()
+    if_null rx707_debug, debug_679
     rx707_cur."!cursor_debug"("FAIL  ", "parameter")
+  debug_679:
     .return (rx707_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter"  :subid("173_1280467477.44751") :method
+.sub "!PREFIX__parameter"  :subid("173_1282016529.10767") :method
 .annotate 'line', 4
     new $P709, "ResizablePMCArray"
     push $P709, ""
@@ -9140,7 +9880,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "param_var"  :subid("174_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "param_var"  :subid("174_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx720_tgt
     .local int rx720_pos
@@ -9148,8 +9888,10 @@
     .local int rx720_eos
     .local int rx720_rep
     .local pmc rx720_cur
+    .local pmc rx720_debug
     (rx720_cur, rx720_pos, rx720_tgt, $I10) = self."!cursor_start"()
     rx720_cur."!cursor_caparray"("twigil")
+    getattribute rx720_debug, rx720_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx720_cur
     .local pmc match
     .lex "$/", match
@@ -9161,7 +9903,9 @@
     substr rx720_tgt, rx720_tgt, rx720_off
   rx720_start:
     eq $I10, 1, rx720_restart
+    if_null rx720_debug, debug_680
     rx720_cur."!cursor_debug"("START ", "param_var")
+  debug_680:
     $I10 = self.'from'()
     ne $I10, -1, rxscan724_done
     goto rxscan724_scan
@@ -9240,11 +9984,15 @@
 .annotate 'line', 334
   # rx pass
     rx720_cur."!cursor_pass"(rx720_pos, "param_var")
+    if_null rx720_debug, debug_681
     rx720_cur."!cursor_debug"("PASS  ", "param_var", " at pos=", rx720_pos)
+  debug_681:
     .return (rx720_cur)
   rx720_restart:
 .annotate 'line', 4
+    if_null rx720_debug, debug_682
     rx720_cur."!cursor_debug"("NEXT ", "param_var")
+  debug_682:
   rx720_fail:
     (rx720_rep, rx720_pos, $I10, $P10) = rx720_cur."!mark_fail"(0)
     lt rx720_pos, -1, rx720_done
@@ -9252,14 +10000,16 @@
     jump $I10
   rx720_done:
     rx720_cur."!cursor_fail"()
+    if_null rx720_debug, debug_683
     rx720_cur."!cursor_debug"("FAIL  ", "param_var")
+  debug_683:
     .return (rx720_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var"  :subid("175_1280467477.44751") :method
+.sub "!PREFIX__param_var"  :subid("175_1282016529.10767") :method
 .annotate 'line', 4
     $P722 = self."!PREFIX__!subrule"("sigil", "")
     new $P723, "ResizablePMCArray"
@@ -9269,7 +10019,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "named_param"  :subid("176_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "named_param"  :subid("176_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx730_tgt
     .local int rx730_pos
@@ -9277,7 +10027,9 @@
     .local int rx730_eos
     .local int rx730_rep
     .local pmc rx730_cur
+    .local pmc rx730_debug
     (rx730_cur, rx730_pos, rx730_tgt, $I10) = self."!cursor_start"()
+    getattribute rx730_debug, rx730_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx730_cur
     .local pmc match
     .lex "$/", match
@@ -9289,7 +10041,9 @@
     substr rx730_tgt, rx730_tgt, rx730_off
   rx730_start:
     eq $I10, 1, rx730_restart
+    if_null rx730_debug, debug_684
     rx730_cur."!cursor_debug"("START ", "named_param")
+  debug_684:
     $I10 = self.'from'()
     ne $I10, -1, rxscan734_done
     goto rxscan734_scan
@@ -9307,8 +10061,8 @@
     add $I11, rx730_pos, 1
     gt $I11, rx730_eos, rx730_fail
     sub $I11, rx730_pos, rx730_off
-    substr $S10, rx730_tgt, $I11, 1
-    ne $S10, ":", rx730_fail
+    ord $I11, rx730_tgt, $I11
+    ne $I11, 58, rx730_fail
     add rx730_pos, 1
   # rx subrule "param_var" subtype=capture negate=
     rx730_cur."!cursor_pos"(rx730_pos)
@@ -9320,11 +10074,15 @@
 .annotate 'line', 339
   # rx pass
     rx730_cur."!cursor_pass"(rx730_pos, "named_param")
+    if_null rx730_debug, debug_685
     rx730_cur."!cursor_debug"("PASS  ", "named_param", " at pos=", rx730_pos)
+  debug_685:
     .return (rx730_cur)
   rx730_restart:
 .annotate 'line', 4
+    if_null rx730_debug, debug_686
     rx730_cur."!cursor_debug"("NEXT ", "named_param")
+  debug_686:
   rx730_fail:
     (rx730_rep, rx730_pos, $I10, $P10) = rx730_cur."!mark_fail"(0)
     lt rx730_pos, -1, rx730_done
@@ -9332,14 +10090,16 @@
     jump $I10
   rx730_done:
     rx730_cur."!cursor_fail"()
+    if_null rx730_debug, debug_687
     rx730_cur."!cursor_debug"("FAIL  ", "named_param")
+  debug_687:
     .return (rx730_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param"  :subid("177_1280467477.44751") :method
+.sub "!PREFIX__named_param"  :subid("177_1282016529.10767") :method
 .annotate 'line', 4
     $P732 = self."!PREFIX__!subrule"("param_var", ":")
     new $P733, "ResizablePMCArray"
@@ -9349,7 +10109,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "default_value"  :subid("178_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "default_value"  :subid("178_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx736_tgt
     .local int rx736_pos
@@ -9357,7 +10117,9 @@
     .local int rx736_eos
     .local int rx736_rep
     .local pmc rx736_cur
+    .local pmc rx736_debug
     (rx736_cur, rx736_pos, rx736_tgt, $I10) = self."!cursor_start"()
+    getattribute rx736_debug, rx736_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx736_cur
     .local pmc match
     .lex "$/", match
@@ -9369,7 +10131,9 @@
     substr rx736_tgt, rx736_tgt, rx736_off
   rx736_start:
     eq $I10, 1, rx736_restart
+    if_null rx736_debug, debug_688
     rx736_cur."!cursor_debug"("START ", "default_value")
+  debug_688:
     $I10 = self.'from'()
     ne $I10, -1, rxscan740_done
     goto rxscan740_scan
@@ -9392,8 +10156,8 @@
     add $I11, rx736_pos, 1
     gt $I11, rx736_eos, rx736_fail
     sub $I11, rx736_pos, rx736_off
-    substr $S10, rx736_tgt, $I11, 1
-    ne $S10, "=", rx736_fail
+    ord $I11, rx736_tgt, $I11
+    ne $I11, 61, rx736_fail
     add rx736_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx736_cur."!cursor_pos"(rx736_pos)
@@ -9414,11 +10178,15 @@
     rx736_pos = $P10."pos"()
   # rx pass
     rx736_cur."!cursor_pass"(rx736_pos, "default_value")
+    if_null rx736_debug, debug_689
     rx736_cur."!cursor_debug"("PASS  ", "default_value", " at pos=", rx736_pos)
+  debug_689:
     .return (rx736_cur)
   rx736_restart:
 .annotate 'line', 4
+    if_null rx736_debug, debug_690
     rx736_cur."!cursor_debug"("NEXT ", "default_value")
+  debug_690:
   rx736_fail:
     (rx736_rep, rx736_pos, $I10, $P10) = rx736_cur."!mark_fail"(0)
     lt rx736_pos, -1, rx736_done
@@ -9426,14 +10194,16 @@
     jump $I10
   rx736_done:
     rx736_cur."!cursor_fail"()
+    if_null rx736_debug, debug_691
     rx736_cur."!cursor_debug"("FAIL  ", "default_value")
+  debug_691:
     .return (rx736_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value"  :subid("179_1280467477.44751") :method
+.sub "!PREFIX__default_value"  :subid("179_1282016529.10767") :method
 .annotate 'line', 4
     $P738 = self."!PREFIX__!subrule"("ws", "")
     new $P739, "ResizablePMCArray"
@@ -9443,7 +10213,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "regex_declarator"  :subid("180_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "regex_declarator"  :subid("180_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx745_tgt
     .local int rx745_pos
@@ -9451,8 +10221,10 @@
     .local int rx745_eos
     .local int rx745_rep
     .local pmc rx745_cur
+    .local pmc rx745_debug
     (rx745_cur, rx745_pos, rx745_tgt, $I10) = self."!cursor_start"()
     rx745_cur."!cursor_caparray"("signature")
+    getattribute rx745_debug, rx745_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx745_cur
     .local pmc match
     .lex "$/", match
@@ -9464,7 +10236,9 @@
     substr rx745_tgt, rx745_tgt, rx745_off
   rx745_start:
     eq $I10, 1, rx745_restart
+    if_null rx745_debug, debug_692
     rx745_cur."!cursor_debug"("START ", "regex_declarator")
+  debug_692:
     $I10 = self.'from'()
     ne $I10, -1, rxscan749_done
     goto rxscan749_scan
@@ -9582,8 +10356,8 @@
     add $I11, rx745_pos, 1
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 1
-    ne $S10, "{", rx745_fail
+    ord $I11, rx745_tgt, $I11
+    ne $I11, 123, rx745_fail
     add rx745_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx745_cur."!cursor_pos"(rx745_pos)
@@ -9606,8 +10380,8 @@
     add $I11, rx745_pos, 1
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 1
-    ne $S10, "}", rx745_fail
+    ord $I11, rx745_tgt, $I11
+    ne $I11, 125, rx745_fail
     add rx745_pos, 1
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
     rx745_cur."!cursor_pos"(rx745_pos)
@@ -9740,8 +10514,8 @@
     add $I11, rx745_pos, 1
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 1
-    ne $S10, "(", rx745_fail
+    ord $I11, rx745_tgt, $I11
+    ne $I11, 40, rx745_fail
     add rx745_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx745_cur."!cursor_pos"(rx745_pos)
@@ -9764,8 +10538,8 @@
     add $I11, rx745_pos, 1
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 1
-    ne $S10, ")", rx745_fail
+    ord $I11, rx745_tgt, $I11
+    ne $I11, 41, rx745_fail
     add rx745_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx745_cur."!cursor_pos"(rx745_pos)
@@ -9794,8 +10568,8 @@
     add $I11, rx745_pos, 1
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 1
-    ne $S10, "{", rx745_fail
+    ord $I11, rx745_tgt, $I11
+    ne $I11, 123, rx745_fail
     add rx745_pos, 1
   # rx subrule "LANG" subtype=capture negate=
     rx745_cur."!cursor_pos"(rx745_pos)
@@ -9808,8 +10582,8 @@
     add $I11, rx745_pos, 1
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 1
-    ne $S10, "}", rx745_fail
+    ord $I11, rx745_tgt, $I11
+    ne $I11, 125, rx745_fail
     add rx745_pos, 1
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
     rx745_cur."!cursor_pos"(rx745_pos)
@@ -9830,11 +10604,15 @@
 .annotate 'line', 345
   # rx pass
     rx745_cur."!cursor_pass"(rx745_pos, "regex_declarator")
+    if_null rx745_debug, debug_693
     rx745_cur."!cursor_debug"("PASS  ", "regex_declarator", " at pos=", rx745_pos)
+  debug_693:
     .return (rx745_cur)
   rx745_restart:
 .annotate 'line', 4
+    if_null rx745_debug, debug_694
     rx745_cur."!cursor_debug"("NEXT ", "regex_declarator")
+  debug_694:
   rx745_fail:
     (rx745_rep, rx745_pos, $I10, $P10) = rx745_cur."!mark_fail"(0)
     lt rx745_pos, -1, rx745_done
@@ -9842,14 +10620,16 @@
     jump $I10
   rx745_done:
     rx745_cur."!cursor_fail"()
+    if_null rx745_debug, debug_695
     rx745_cur."!cursor_debug"("FAIL  ", "regex_declarator")
+  debug_695:
     .return (rx745_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator"  :subid("181_1280467477.44751") :method
+.sub "!PREFIX__regex_declarator"  :subid("181_1282016529.10767") :method
 .annotate 'line', 4
     $P747 = self."!PREFIX__!subrule"("ws", "")
     new $P748, "ResizablePMCArray"
@@ -9859,7 +10639,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "dotty"  :subid("182_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "dotty"  :subid("182_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx782_tgt
     .local int rx782_pos
@@ -9867,8 +10647,10 @@
     .local int rx782_eos
     .local int rx782_rep
     .local pmc rx782_cur
+    .local pmc rx782_debug
     (rx782_cur, rx782_pos, rx782_tgt, $I10) = self."!cursor_start"()
     rx782_cur."!cursor_caparray"("args")
+    getattribute rx782_debug, rx782_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx782_cur
     .local pmc match
     .lex "$/", match
@@ -9880,7 +10662,9 @@
     substr rx782_tgt, rx782_tgt, rx782_off
   rx782_start:
     eq $I10, 1, rx782_restart
+    if_null rx782_debug, debug_696
     rx782_cur."!cursor_debug"("START ", "dotty")
+  debug_696:
     $I10 = self.'from'()
     ne $I10, -1, rxscan786_done
     goto rxscan786_scan
@@ -9898,8 +10682,8 @@
     add $I11, rx782_pos, 1
     gt $I11, rx782_eos, rx782_fail
     sub $I11, rx782_pos, rx782_off
-    substr $S10, rx782_tgt, $I11, 1
-    ne $S10, ".", rx782_fail
+    ord $I11, rx782_tgt, $I11
+    ne $I11, 46, rx782_fail
     add rx782_pos, 1
   alt787_0:
 .annotate 'line', 364
@@ -9977,8 +10761,8 @@
     add $I11, rx782_pos, 1
     gt $I11, rx782_eos, rx782_fail
     sub $I11, rx782_pos, rx782_off
-    substr $S10, rx782_tgt, $I11, 1
-    ne $S10, ":", rx782_fail
+    ord $I11, rx782_tgt, $I11
+    ne $I11, 58, rx782_fail
     add rx782_pos, 1
   # rx charclass s
     ge rx782_pos, rx782_eos, rx782_fail
@@ -10001,11 +10785,15 @@
 .annotate 'line', 362
   # rx pass
     rx782_cur."!cursor_pass"(rx782_pos, "dotty")
+    if_null rx782_debug, debug_697
     rx782_cur."!cursor_debug"("PASS  ", "dotty", " at pos=", rx782_pos)
+  debug_697:
     .return (rx782_cur)
   rx782_restart:
 .annotate 'line', 4
+    if_null rx782_debug, debug_698
     rx782_cur."!cursor_debug"("NEXT ", "dotty")
+  debug_698:
   rx782_fail:
     (rx782_rep, rx782_pos, $I10, $P10) = rx782_cur."!mark_fail"(0)
     lt rx782_pos, -1, rx782_done
@@ -10013,14 +10801,16 @@
     jump $I10
   rx782_done:
     rx782_cur."!cursor_fail"()
+    if_null rx782_debug, debug_699
     rx782_cur."!cursor_debug"("FAIL  ", "dotty")
+  debug_699:
     .return (rx782_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty"  :subid("183_1280467477.44751") :method
+.sub "!PREFIX__dotty"  :subid("183_1282016529.10767") :method
 .annotate 'line', 4
     $P784 = self."!PREFIX__!subrule"("deflongname", ".")
     new $P785, "ResizablePMCArray"
@@ -10032,7 +10822,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term"  :subid("184_1280467477.44751") :method
+.sub "term"  :subid("184_1282016529.10767") :method
 .annotate 'line', 376
     $P792 = self."!protoregex"("term")
     .return ($P792)
@@ -10040,7 +10830,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term"  :subid("185_1280467477.44751") :method
+.sub "!PREFIX__term"  :subid("185_1282016529.10767") :method
 .annotate 'line', 376
     $P794 = self."!PREFIX__!protoregex"("term")
     .return ($P794)
@@ -10048,7 +10838,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<self>"  :subid("186_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<self>"  :subid("186_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx796_tgt
     .local int rx796_pos
@@ -10056,7 +10846,9 @@
     .local int rx796_eos
     .local int rx796_rep
     .local pmc rx796_cur
+    .local pmc rx796_debug
     (rx796_cur, rx796_pos, rx796_tgt, $I10) = self."!cursor_start"()
+    getattribute rx796_debug, rx796_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx796_cur
     .local pmc match
     .lex "$/", match
@@ -10068,7 +10860,9 @@
     substr rx796_tgt, rx796_tgt, rx796_off
   rx796_start:
     eq $I10, 1, rx796_restart
+    if_null rx796_debug, debug_700
     rx796_cur."!cursor_debug"("START ", "term:sym<self>")
+  debug_700:
     $I10 = self.'from'()
     ne $I10, -1, rxscan799_done
     goto rxscan799_scan
@@ -10113,11 +10907,15 @@
     unless $I11, rx796_fail
   # rx pass
     rx796_cur."!cursor_pass"(rx796_pos, "term:sym<self>")
+    if_null rx796_debug, debug_701
     rx796_cur."!cursor_debug"("PASS  ", "term:sym<self>", " at pos=", rx796_pos)
+  debug_701:
     .return (rx796_cur)
   rx796_restart:
 .annotate 'line', 4
+    if_null rx796_debug, debug_702
     rx796_cur."!cursor_debug"("NEXT ", "term:sym<self>")
+  debug_702:
   rx796_fail:
     (rx796_rep, rx796_pos, $I10, $P10) = rx796_cur."!mark_fail"(0)
     lt rx796_pos, -1, rx796_done
@@ -10125,14 +10923,16 @@
     jump $I10
   rx796_done:
     rx796_cur."!cursor_fail"()
+    if_null rx796_debug, debug_703
     rx796_cur."!cursor_debug"("FAIL  ", "term:sym<self>")
+  debug_703:
     .return (rx796_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>"  :subid("187_1280467477.44751") :method
+.sub "!PREFIX__term:sym<self>"  :subid("187_1282016529.10767") :method
 .annotate 'line', 4
     new $P798, "ResizablePMCArray"
     push $P798, "self"
@@ -10141,7 +10941,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>"  :subid("188_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<identifier>"  :subid("188_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx802_tgt
     .local int rx802_pos
@@ -10149,7 +10949,9 @@
     .local int rx802_eos
     .local int rx802_rep
     .local pmc rx802_cur
+    .local pmc rx802_debug
     (rx802_cur, rx802_pos, rx802_tgt, $I10) = self."!cursor_start"()
+    getattribute rx802_debug, rx802_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx802_cur
     .local pmc match
     .lex "$/", match
@@ -10161,7 +10963,9 @@
     substr rx802_tgt, rx802_tgt, rx802_off
   rx802_start:
     eq $I10, 1, rx802_restart
+    if_null rx802_debug, debug_704
     rx802_cur."!cursor_debug"("START ", "term:sym<identifier>")
+  debug_704:
     $I10 = self.'from'()
     ne $I10, -1, rxscan806_done
     goto rxscan806_scan
@@ -10198,11 +11002,15 @@
 .annotate 'line', 380
   # rx pass
     rx802_cur."!cursor_pass"(rx802_pos, "term:sym<identifier>")
+    if_null rx802_debug, debug_705
     rx802_cur."!cursor_debug"("PASS  ", "term:sym<identifier>", " at pos=", rx802_pos)
+  debug_705:
     .return (rx802_cur)
   rx802_restart:
 .annotate 'line', 4
+    if_null rx802_debug, debug_706
     rx802_cur."!cursor_debug"("NEXT ", "term:sym<identifier>")
+  debug_706:
   rx802_fail:
     (rx802_rep, rx802_pos, $I10, $P10) = rx802_cur."!mark_fail"(0)
     lt rx802_pos, -1, rx802_done
@@ -10210,14 +11018,16 @@
     jump $I10
   rx802_done:
     rx802_cur."!cursor_fail"()
+    if_null rx802_debug, debug_707
     rx802_cur."!cursor_debug"("FAIL  ", "term:sym<identifier>")
+  debug_707:
     .return (rx802_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>"  :subid("189_1280467477.44751") :method
+.sub "!PREFIX__term:sym<identifier>"  :subid("189_1282016529.10767") :method
 .annotate 'line', 4
     $P804 = self."!PREFIX__!subrule"("deflongname", "")
     new $P805, "ResizablePMCArray"
@@ -10227,7 +11037,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<name>"  :subid("190_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<name>"  :subid("190_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx808_tgt
     .local int rx808_pos
@@ -10235,8 +11045,10 @@
     .local int rx808_eos
     .local int rx808_rep
     .local pmc rx808_cur
+    .local pmc rx808_debug
     (rx808_cur, rx808_pos, rx808_tgt, $I10) = self."!cursor_start"()
     rx808_cur."!cursor_caparray"("args")
+    getattribute rx808_debug, rx808_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx808_cur
     .local pmc match
     .lex "$/", match
@@ -10248,7 +11060,9 @@
     substr rx808_tgt, rx808_tgt, rx808_off
   rx808_start:
     eq $I10, 1, rx808_restart
+    if_null rx808_debug, debug_708
     rx808_cur."!cursor_debug"("START ", "term:sym<name>")
+  debug_708:
     $I10 = self.'from'()
     ne $I10, -1, rxscan812_done
     goto rxscan812_scan
@@ -10292,11 +11106,15 @@
 .annotate 'line', 384
   # rx pass
     rx808_cur."!cursor_pass"(rx808_pos, "term:sym<name>")
+    if_null rx808_debug, debug_709
     rx808_cur."!cursor_debug"("PASS  ", "term:sym<name>", " at pos=", rx808_pos)
+  debug_709:
     .return (rx808_cur)
   rx808_restart:
 .annotate 'line', 4
+    if_null rx808_debug, debug_710
     rx808_cur."!cursor_debug"("NEXT ", "term:sym<name>")
+  debug_710:
   rx808_fail:
     (rx808_rep, rx808_pos, $I10, $P10) = rx808_cur."!mark_fail"(0)
     lt rx808_pos, -1, rx808_done
@@ -10304,14 +11122,16 @@
     jump $I10
   rx808_done:
     rx808_cur."!cursor_fail"()
+    if_null rx808_debug, debug_711
     rx808_cur."!cursor_debug"("FAIL  ", "term:sym<name>")
+  debug_711:
     .return (rx808_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>"  :subid("191_1280467477.44751") :method
+.sub "!PREFIX__term:sym<name>"  :subid("191_1282016529.10767") :method
 .annotate 'line', 4
     $P810 = self."!PREFIX__!subrule"("name", "")
     new $P811, "ResizablePMCArray"
@@ -10321,7 +11141,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<pir::op>"  :subid("192_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<pir::op>"  :subid("192_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx816_tgt
     .local int rx816_pos
@@ -10329,8 +11149,10 @@
     .local int rx816_eos
     .local int rx816_rep
     .local pmc rx816_cur
+    .local pmc rx816_debug
     (rx816_cur, rx816_pos, rx816_tgt, $I10) = self."!cursor_start"()
     rx816_cur."!cursor_caparray"("args")
+    getattribute rx816_debug, rx816_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx816_cur
     .local pmc match
     .lex "$/", match
@@ -10342,7 +11164,9 @@
     substr rx816_tgt, rx816_tgt, rx816_off
   rx816_start:
     eq $I10, 1, rx816_restart
+    if_null rx816_debug, debug_712
     rx816_cur."!cursor_debug"("START ", "term:sym<pir::op>")
+  debug_712:
     $I10 = self.'from'()
     ne $I10, -1, rxscan819_done
     goto rxscan819_scan
@@ -10406,11 +11230,15 @@
 .annotate 'line', 388
   # rx pass
     rx816_cur."!cursor_pass"(rx816_pos, "term:sym<pir::op>")
+    if_null rx816_debug, debug_713
     rx816_cur."!cursor_debug"("PASS  ", "term:sym<pir::op>", " at pos=", rx816_pos)
+  debug_713:
     .return (rx816_cur)
   rx816_restart:
 .annotate 'line', 4
+    if_null rx816_debug, debug_714
     rx816_cur."!cursor_debug"("NEXT ", "term:sym<pir::op>")
+  debug_714:
   rx816_fail:
     (rx816_rep, rx816_pos, $I10, $P10) = rx816_cur."!mark_fail"(0)
     lt rx816_pos, -1, rx816_done
@@ -10418,14 +11246,16 @@
     jump $I10
   rx816_done:
     rx816_cur."!cursor_fail"()
+    if_null rx816_debug, debug_715
     rx816_cur."!cursor_debug"("FAIL  ", "term:sym<pir::op>")
+  debug_715:
     .return (rx816_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>"  :subid("193_1280467477.44751") :method
+.sub "!PREFIX__term:sym<pir::op>"  :subid("193_1282016529.10767") :method
 .annotate 'line', 4
     new $P818, "ResizablePMCArray"
     push $P818, "pir::"
@@ -10434,7 +11264,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "args"  :subid("194_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "args"  :subid("194_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx824_tgt
     .local int rx824_pos
@@ -10442,7 +11272,9 @@
     .local int rx824_eos
     .local int rx824_rep
     .local pmc rx824_cur
+    .local pmc rx824_debug
     (rx824_cur, rx824_pos, rx824_tgt, $I10) = self."!cursor_start"()
+    getattribute rx824_debug, rx824_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx824_cur
     .local pmc match
     .lex "$/", match
@@ -10454,7 +11286,9 @@
     substr rx824_tgt, rx824_tgt, rx824_off
   rx824_start:
     eq $I10, 1, rx824_restart
+    if_null rx824_debug, debug_716
     rx824_cur."!cursor_debug"("START ", "args")
+  debug_716:
     $I10 = self.'from'()
     ne $I10, -1, rxscan828_done
     goto rxscan828_scan
@@ -10472,8 +11306,8 @@
     add $I11, rx824_pos, 1
     gt $I11, rx824_eos, rx824_fail
     sub $I11, rx824_pos, rx824_off
-    substr $S10, rx824_tgt, $I11, 1
-    ne $S10, "(", rx824_fail
+    ord $I11, rx824_tgt, $I11
+    ne $I11, 40, rx824_fail
     add rx824_pos, 1
   # rx subrule "arglist" subtype=capture negate=
     rx824_cur."!cursor_pos"(rx824_pos)
@@ -10486,16 +11320,20 @@
     add $I11, rx824_pos, 1
     gt $I11, rx824_eos, rx824_fail
     sub $I11, rx824_pos, rx824_off
-    substr $S10, rx824_tgt, $I11, 1
-    ne $S10, ")", rx824_fail
+    ord $I11, rx824_tgt, $I11
+    ne $I11, 41, rx824_fail
     add rx824_pos, 1
   # rx pass
     rx824_cur."!cursor_pass"(rx824_pos, "args")
+    if_null rx824_debug, debug_717
     rx824_cur."!cursor_debug"("PASS  ", "args", " at pos=", rx824_pos)
+  debug_717:
     .return (rx824_cur)
   rx824_restart:
 .annotate 'line', 4
+    if_null rx824_debug, debug_718
     rx824_cur."!cursor_debug"("NEXT ", "args")
+  debug_718:
   rx824_fail:
     (rx824_rep, rx824_pos, $I10, $P10) = rx824_cur."!mark_fail"(0)
     lt rx824_pos, -1, rx824_done
@@ -10503,14 +11341,16 @@
     jump $I10
   rx824_done:
     rx824_cur."!cursor_fail"()
+    if_null rx824_debug, debug_719
     rx824_cur."!cursor_debug"("FAIL  ", "args")
+  debug_719:
     .return (rx824_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args"  :subid("195_1280467477.44751") :method
+.sub "!PREFIX__args"  :subid("195_1282016529.10767") :method
 .annotate 'line', 4
     $P826 = self."!PREFIX__!subrule"("arglist", "(")
     new $P827, "ResizablePMCArray"
@@ -10520,7 +11360,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "arglist"  :subid("196_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "arglist"  :subid("196_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx830_tgt
     .local int rx830_pos
@@ -10528,7 +11368,9 @@
     .local int rx830_eos
     .local int rx830_rep
     .local pmc rx830_cur
+    .local pmc rx830_debug
     (rx830_cur, rx830_pos, rx830_tgt, $I10) = self."!cursor_start"()
+    getattribute rx830_debug, rx830_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx830_cur
     .local pmc match
     .lex "$/", match
@@ -10540,7 +11382,9 @@
     substr rx830_tgt, rx830_tgt, rx830_off
   rx830_start:
     eq $I10, 1, rx830_restart
+    if_null rx830_debug, debug_720
     rx830_cur."!cursor_debug"("START ", "arglist")
+  debug_720:
     $I10 = self.'from'()
     ne $I10, -1, rxscan834_done
     goto rxscan834_scan
@@ -10577,11 +11421,15 @@
 .annotate 'line', 396
   # rx pass
     rx830_cur."!cursor_pass"(rx830_pos, "arglist")
+    if_null rx830_debug, debug_721
     rx830_cur."!cursor_debug"("PASS  ", "arglist", " at pos=", rx830_pos)
+  debug_721:
     .return (rx830_cur)
   rx830_restart:
 .annotate 'line', 4
+    if_null rx830_debug, debug_722
     rx830_cur."!cursor_debug"("NEXT ", "arglist")
+  debug_722:
   rx830_fail:
     (rx830_rep, rx830_pos, $I10, $P10) = rx830_cur."!mark_fail"(0)
     lt rx830_pos, -1, rx830_done
@@ -10589,14 +11437,16 @@
     jump $I10
   rx830_done:
     rx830_cur."!cursor_fail"()
+    if_null rx830_debug, debug_723
     rx830_cur."!cursor_debug"("FAIL  ", "arglist")
+  debug_723:
     .return (rx830_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("197_1280467477.44751") :method
+.sub "!PREFIX__arglist"  :subid("197_1282016529.10767") :method
 .annotate 'line', 4
     $P832 = self."!PREFIX__!subrule"("ws", "")
     new $P833, "ResizablePMCArray"
@@ -10606,7 +11456,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<value>"  :subid("198_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<value>"  :subid("198_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx837_tgt
     .local int rx837_pos
@@ -10614,7 +11464,9 @@
     .local int rx837_eos
     .local int rx837_rep
     .local pmc rx837_cur
+    .local pmc rx837_debug
     (rx837_cur, rx837_pos, rx837_tgt, $I10) = self."!cursor_start"()
+    getattribute rx837_debug, rx837_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx837_cur
     .local pmc match
     .lex "$/", match
@@ -10626,7 +11478,9 @@
     substr rx837_tgt, rx837_tgt, rx837_off
   rx837_start:
     eq $I10, 1, rx837_restart
+    if_null rx837_debug, debug_724
     rx837_cur."!cursor_debug"("START ", "term:sym<value>")
+  debug_724:
     $I10 = self.'from'()
     ne $I10, -1, rxscan841_done
     goto rxscan841_scan
@@ -10649,11 +11503,15 @@
     rx837_pos = $P10."pos"()
   # rx pass
     rx837_cur."!cursor_pass"(rx837_pos, "term:sym<value>")
+    if_null rx837_debug, debug_725
     rx837_cur."!cursor_debug"("PASS  ", "term:sym<value>", " at pos=", rx837_pos)
+  debug_725:
     .return (rx837_cur)
   rx837_restart:
 .annotate 'line', 4
+    if_null rx837_debug, debug_726
     rx837_cur."!cursor_debug"("NEXT ", "term:sym<value>")
+  debug_726:
   rx837_fail:
     (rx837_rep, rx837_pos, $I10, $P10) = rx837_cur."!mark_fail"(0)
     lt rx837_pos, -1, rx837_done
@@ -10661,14 +11519,16 @@
     jump $I10
   rx837_done:
     rx837_cur."!cursor_fail"()
+    if_null rx837_debug, debug_727
     rx837_cur."!cursor_debug"("FAIL  ", "term:sym<value>")
+  debug_727:
     .return (rx837_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>"  :subid("199_1280467477.44751") :method
+.sub "!PREFIX__term:sym<value>"  :subid("199_1282016529.10767") :method
 .annotate 'line', 4
     $P839 = self."!PREFIX__!subrule"("value", "")
     new $P840, "ResizablePMCArray"
@@ -10678,7 +11538,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "value"  :subid("200_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "value"  :subid("200_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx843_tgt
     .local int rx843_pos
@@ -10686,7 +11546,9 @@
     .local int rx843_eos
     .local int rx843_rep
     .local pmc rx843_cur
+    .local pmc rx843_debug
     (rx843_cur, rx843_pos, rx843_tgt, $I10) = self."!cursor_start"()
+    getattribute rx843_debug, rx843_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx843_cur
     .local pmc match
     .lex "$/", match
@@ -10698,7 +11560,9 @@
     substr rx843_tgt, rx843_tgt, rx843_off
   rx843_start:
     eq $I10, 1, rx843_restart
+    if_null rx843_debug, debug_728
     rx843_cur."!cursor_debug"("START ", "value")
+  debug_728:
     $I10 = self.'from'()
     ne $I10, -1, rxscan848_done
     goto rxscan848_scan
@@ -10737,11 +11601,15 @@
 .annotate 'line', 407
   # rx pass
     rx843_cur."!cursor_pass"(rx843_pos, "value")
+    if_null rx843_debug, debug_729
     rx843_cur."!cursor_debug"("PASS  ", "value", " at pos=", rx843_pos)
+  debug_729:
     .return (rx843_cur)
   rx843_restart:
 .annotate 'line', 4
+    if_null rx843_debug, debug_730
     rx843_cur."!cursor_debug"("NEXT ", "value")
+  debug_730:
   rx843_fail:
     (rx843_rep, rx843_pos, $I10, $P10) = rx843_cur."!mark_fail"(0)
     lt rx843_pos, -1, rx843_done
@@ -10749,14 +11617,16 @@
     jump $I10
   rx843_done:
     rx843_cur."!cursor_fail"()
+    if_null rx843_debug, debug_731
     rx843_cur."!cursor_debug"("FAIL  ", "value")
+  debug_731:
     .return (rx843_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value"  :subid("201_1280467477.44751") :method
+.sub "!PREFIX__value"  :subid("201_1282016529.10767") :method
 .annotate 'line', 4
     $P845 = self."!PREFIX__!subrule"("number", "")
     $P846 = self."!PREFIX__!subrule"("quote", "")
@@ -10768,7 +11638,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "number"  :subid("202_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "number"  :subid("202_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx851_tgt
     .local int rx851_pos
@@ -10776,7 +11646,9 @@
     .local int rx851_eos
     .local int rx851_rep
     .local pmc rx851_cur
+    .local pmc rx851_debug
     (rx851_cur, rx851_pos, rx851_tgt, $I10) = self."!cursor_start"()
+    getattribute rx851_debug, rx851_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx851_cur
     .local pmc match
     .lex "$/", match
@@ -10788,7 +11660,9 @@
     substr rx851_tgt, rx851_tgt, rx851_off
   rx851_start:
     eq $I10, 1, rx851_restart
+    if_null rx851_debug, debug_732
     rx851_cur."!cursor_debug"("START ", "number")
+  debug_732:
     $I10 = self.'from'()
     ne $I10, -1, rxscan854_done
     goto rxscan854_scan
@@ -10854,11 +11728,15 @@
 .annotate 'line', 412
   # rx pass
     rx851_cur."!cursor_pass"(rx851_pos, "number")
+    if_null rx851_debug, debug_733
     rx851_cur."!cursor_debug"("PASS  ", "number", " at pos=", rx851_pos)
+  debug_733:
     .return (rx851_cur)
   rx851_restart:
 .annotate 'line', 4
+    if_null rx851_debug, debug_734
     rx851_cur."!cursor_debug"("NEXT ", "number")
+  debug_734:
   rx851_fail:
     (rx851_rep, rx851_pos, $I10, $P10) = rx851_cur."!mark_fail"(0)
     lt rx851_pos, -1, rx851_done
@@ -10866,14 +11744,16 @@
     jump $I10
   rx851_done:
     rx851_cur."!cursor_fail"()
+    if_null rx851_debug, debug_735
     rx851_cur."!cursor_debug"("FAIL  ", "number")
+  debug_735:
     .return (rx851_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number"  :subid("203_1280467477.44751") :method
+.sub "!PREFIX__number"  :subid("203_1282016529.10767") :method
 .annotate 'line', 4
     new $P853, "ResizablePMCArray"
     push $P853, ""
@@ -10882,7 +11762,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote"  :subid("204_1280467477.44751") :method
+.sub "quote"  :subid("204_1282016529.10767") :method
 .annotate 'line', 417
     $P859 = self."!protoregex"("quote")
     .return ($P859)
@@ -10890,7 +11770,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote"  :subid("205_1280467477.44751") :method
+.sub "!PREFIX__quote"  :subid("205_1282016529.10767") :method
 .annotate 'line', 417
     $P861 = self."!PREFIX__!protoregex"("quote")
     .return ($P861)
@@ -10898,7 +11778,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>"  :subid("206_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<apos>"  :subid("206_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx863_tgt
     .local int rx863_pos
@@ -10906,7 +11786,9 @@
     .local int rx863_eos
     .local int rx863_rep
     .local pmc rx863_cur
+    .local pmc rx863_debug
     (rx863_cur, rx863_pos, rx863_tgt, $I10) = self."!cursor_start"()
+    getattribute rx863_debug, rx863_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx863_cur
     .local pmc match
     .lex "$/", match
@@ -10918,7 +11800,9 @@
     substr rx863_tgt, rx863_tgt, rx863_off
   rx863_start:
     eq $I10, 1, rx863_restart
+    if_null rx863_debug, debug_736
     rx863_cur."!cursor_debug"("START ", "quote:sym<apos>")
+  debug_736:
     $I10 = self.'from'()
     ne $I10, -1, rxscan866_done
     goto rxscan866_scan
@@ -10947,11 +11831,15 @@
     rx863_pos = $P10."pos"()
   # rx pass
     rx863_cur."!cursor_pass"(rx863_pos, "quote:sym<apos>")
+    if_null rx863_debug, debug_737
     rx863_cur."!cursor_debug"("PASS  ", "quote:sym<apos>", " at pos=", rx863_pos)
+  debug_737:
     .return (rx863_cur)
   rx863_restart:
 .annotate 'line', 4
+    if_null rx863_debug, debug_738
     rx863_cur."!cursor_debug"("NEXT ", "quote:sym<apos>")
+  debug_738:
   rx863_fail:
     (rx863_rep, rx863_pos, $I10, $P10) = rx863_cur."!mark_fail"(0)
     lt rx863_pos, -1, rx863_done
@@ -10959,14 +11847,16 @@
     jump $I10
   rx863_done:
     rx863_cur."!cursor_fail"()
+    if_null rx863_debug, debug_739
     rx863_cur."!cursor_debug"("FAIL  ", "quote:sym<apos>")
+  debug_739:
     .return (rx863_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>"  :subid("207_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<apos>"  :subid("207_1282016529.10767") :method
 .annotate 'line', 4
     new $P865, "ResizablePMCArray"
     push $P865, "'"
@@ -10975,7 +11865,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>"  :subid("208_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<dblq>"  :subid("208_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx868_tgt
     .local int rx868_pos
@@ -10983,7 +11873,9 @@
     .local int rx868_eos
     .local int rx868_rep
     .local pmc rx868_cur
+    .local pmc rx868_debug
     (rx868_cur, rx868_pos, rx868_tgt, $I10) = self."!cursor_start"()
+    getattribute rx868_debug, rx868_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx868_cur
     .local pmc match
     .lex "$/", match
@@ -10995,7 +11887,9 @@
     substr rx868_tgt, rx868_tgt, rx868_off
   rx868_start:
     eq $I10, 1, rx868_restart
+    if_null rx868_debug, debug_740
     rx868_cur."!cursor_debug"("START ", "quote:sym<dblq>")
+  debug_740:
     $I10 = self.'from'()
     ne $I10, -1, rxscan871_done
     goto rxscan871_scan
@@ -11024,11 +11918,15 @@
     rx868_pos = $P10."pos"()
   # rx pass
     rx868_cur."!cursor_pass"(rx868_pos, "quote:sym<dblq>")
+    if_null rx868_debug, debug_741
     rx868_cur."!cursor_debug"("PASS  ", "quote:sym<dblq>", " at pos=", rx868_pos)
+  debug_741:
     .return (rx868_cur)
   rx868_restart:
 .annotate 'line', 4
+    if_null rx868_debug, debug_742
     rx868_cur."!cursor_debug"("NEXT ", "quote:sym<dblq>")
+  debug_742:
   rx868_fail:
     (rx868_rep, rx868_pos, $I10, $P10) = rx868_cur."!mark_fail"(0)
     lt rx868_pos, -1, rx868_done
@@ -11036,14 +11934,16 @@
     jump $I10
   rx868_done:
     rx868_cur."!cursor_fail"()
+    if_null rx868_debug, debug_743
     rx868_cur."!cursor_debug"("FAIL  ", "quote:sym<dblq>")
+  debug_743:
     .return (rx868_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<dblq>"  :subid("209_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<dblq>"  :subid("209_1282016529.10767") :method
 .annotate 'line', 4
     new $P870, "ResizablePMCArray"
     push $P870, "\""
@@ -11052,7 +11952,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<q>"  :subid("210_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<q>"  :subid("210_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx873_tgt
     .local int rx873_pos
@@ -11060,7 +11960,9 @@
     .local int rx873_eos
     .local int rx873_rep
     .local pmc rx873_cur
+    .local pmc rx873_debug
     (rx873_cur, rx873_pos, rx873_tgt, $I10) = self."!cursor_start"()
+    getattribute rx873_debug, rx873_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx873_cur
     .local pmc match
     .lex "$/", match
@@ -11072,7 +11974,9 @@
     substr rx873_tgt, rx873_tgt, rx873_off
   rx873_start:
     eq $I10, 1, rx873_restart
+    if_null rx873_debug, debug_744
     rx873_cur."!cursor_debug"("START ", "quote:sym<q>")
+  debug_744:
     $I10 = self.'from'()
     ne $I10, -1, rxscan877_done
     goto rxscan877_scan
@@ -11090,8 +11994,8 @@
     add $I11, rx873_pos, 1
     gt $I11, rx873_eos, rx873_fail
     sub $I11, rx873_pos, rx873_off
-    substr $S10, rx873_tgt, $I11, 1
-    ne $S10, "q", rx873_fail
+    ord $I11, rx873_tgt, $I11
+    ne $I11, 113, rx873_fail
     add rx873_pos, 1
   # rxanchor rwb
     le rx873_pos, 0, rx873_fail
@@ -11121,11 +12025,15 @@
     rx873_pos = $P10."pos"()
   # rx pass
     rx873_cur."!cursor_pass"(rx873_pos, "quote:sym<q>")
+    if_null rx873_debug, debug_745
     rx873_cur."!cursor_debug"("PASS  ", "quote:sym<q>", " at pos=", rx873_pos)
+  debug_745:
     .return (rx873_cur)
   rx873_restart:
 .annotate 'line', 4
+    if_null rx873_debug, debug_746
     rx873_cur."!cursor_debug"("NEXT ", "quote:sym<q>")
+  debug_746:
   rx873_fail:
     (rx873_rep, rx873_pos, $I10, $P10) = rx873_cur."!mark_fail"(0)
     lt rx873_pos, -1, rx873_done
@@ -11133,14 +12041,16 @@
     jump $I10
   rx873_done:
     rx873_cur."!cursor_fail"()
+    if_null rx873_debug, debug_747
     rx873_cur."!cursor_debug"("FAIL  ", "quote:sym<q>")
+  debug_747:
     .return (rx873_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<q>"  :subid("211_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<q>"  :subid("211_1282016529.10767") :method
 .annotate 'line', 4
     $P875 = self."!PREFIX__!subrule"("ws", "q")
     new $P876, "ResizablePMCArray"
@@ -11150,7 +12060,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<qq>"  :subid("212_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<qq>"  :subid("212_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx879_tgt
     .local int rx879_pos
@@ -11158,7 +12068,9 @@
     .local int rx879_eos
     .local int rx879_rep
     .local pmc rx879_cur
+    .local pmc rx879_debug
     (rx879_cur, rx879_pos, rx879_tgt, $I10) = self."!cursor_start"()
+    getattribute rx879_debug, rx879_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx879_cur
     .local pmc match
     .lex "$/", match
@@ -11170,7 +12082,9 @@
     substr rx879_tgt, rx879_tgt, rx879_off
   rx879_start:
     eq $I10, 1, rx879_restart
+    if_null rx879_debug, debug_748
     rx879_cur."!cursor_debug"("START ", "quote:sym<qq>")
+  debug_748:
     $I10 = self.'from'()
     ne $I10, -1, rxscan883_done
     goto rxscan883_scan
@@ -11219,11 +12133,15 @@
     rx879_pos = $P10."pos"()
   # rx pass
     rx879_cur."!cursor_pass"(rx879_pos, "quote:sym<qq>")
+    if_null rx879_debug, debug_749
     rx879_cur."!cursor_debug"("PASS  ", "quote:sym<qq>", " at pos=", rx879_pos)
+  debug_749:
     .return (rx879_cur)
   rx879_restart:
 .annotate 'line', 4
+    if_null rx879_debug, debug_750
     rx879_cur."!cursor_debug"("NEXT ", "quote:sym<qq>")
+  debug_750:
   rx879_fail:
     (rx879_rep, rx879_pos, $I10, $P10) = rx879_cur."!mark_fail"(0)
     lt rx879_pos, -1, rx879_done
@@ -11231,14 +12149,16 @@
     jump $I10
   rx879_done:
     rx879_cur."!cursor_fail"()
+    if_null rx879_debug, debug_751
     rx879_cur."!cursor_debug"("FAIL  ", "quote:sym<qq>")
+  debug_751:
     .return (rx879_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<qq>"  :subid("213_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<qq>"  :subid("213_1282016529.10767") :method
 .annotate 'line', 4
     $P881 = self."!PREFIX__!subrule"("ws", "qq")
     new $P882, "ResizablePMCArray"
@@ -11248,7 +12168,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q>"  :subid("214_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<Q>"  :subid("214_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx885_tgt
     .local int rx885_pos
@@ -11256,7 +12176,9 @@
     .local int rx885_eos
     .local int rx885_rep
     .local pmc rx885_cur
+    .local pmc rx885_debug
     (rx885_cur, rx885_pos, rx885_tgt, $I10) = self."!cursor_start"()
+    getattribute rx885_debug, rx885_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx885_cur
     .local pmc match
     .lex "$/", match
@@ -11268,7 +12190,9 @@
     substr rx885_tgt, rx885_tgt, rx885_off
   rx885_start:
     eq $I10, 1, rx885_restart
+    if_null rx885_debug, debug_752
     rx885_cur."!cursor_debug"("START ", "quote:sym<Q>")
+  debug_752:
     $I10 = self.'from'()
     ne $I10, -1, rxscan889_done
     goto rxscan889_scan
@@ -11286,8 +12210,8 @@
     add $I11, rx885_pos, 1
     gt $I11, rx885_eos, rx885_fail
     sub $I11, rx885_pos, rx885_off
-    substr $S10, rx885_tgt, $I11, 1
-    ne $S10, "Q", rx885_fail
+    ord $I11, rx885_tgt, $I11
+    ne $I11, 81, rx885_fail
     add rx885_pos, 1
   # rxanchor rwb
     le rx885_pos, 0, rx885_fail
@@ -11317,11 +12241,15 @@
     rx885_pos = $P10."pos"()
   # rx pass
     rx885_cur."!cursor_pass"(rx885_pos, "quote:sym<Q>")
+    if_null rx885_debug, debug_753
     rx885_cur."!cursor_debug"("PASS  ", "quote:sym<Q>", " at pos=", rx885_pos)
+  debug_753:
     .return (rx885_cur)
   rx885_restart:
 .annotate 'line', 4
+    if_null rx885_debug, debug_754
     rx885_cur."!cursor_debug"("NEXT ", "quote:sym<Q>")
+  debug_754:
   rx885_fail:
     (rx885_rep, rx885_pos, $I10, $P10) = rx885_cur."!mark_fail"(0)
     lt rx885_pos, -1, rx885_done
@@ -11329,14 +12257,16 @@
     jump $I10
   rx885_done:
     rx885_cur."!cursor_fail"()
+    if_null rx885_debug, debug_755
     rx885_cur."!cursor_debug"("FAIL  ", "quote:sym<Q>")
+  debug_755:
     .return (rx885_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q>"  :subid("215_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<Q>"  :subid("215_1282016529.10767") :method
 .annotate 'line', 4
     $P887 = self."!PREFIX__!subrule"("ws", "Q")
     new $P888, "ResizablePMCArray"
@@ -11346,7 +12276,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q:PIR>"  :subid("216_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<Q:PIR>"  :subid("216_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx891_tgt
     .local int rx891_pos
@@ -11354,7 +12284,9 @@
     .local int rx891_eos
     .local int rx891_rep
     .local pmc rx891_cur
+    .local pmc rx891_debug
     (rx891_cur, rx891_pos, rx891_tgt, $I10) = self."!cursor_start"()
+    getattribute rx891_debug, rx891_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx891_cur
     .local pmc match
     .lex "$/", match
@@ -11366,7 +12298,9 @@
     substr rx891_tgt, rx891_tgt, rx891_off
   rx891_start:
     eq $I10, 1, rx891_restart
+    if_null rx891_debug, debug_756
     rx891_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
+  debug_756:
     $I10 = self.'from'()
     ne $I10, -1, rxscan895_done
     goto rxscan895_scan
@@ -11401,11 +12335,15 @@
     rx891_pos = $P10."pos"()
   # rx pass
     rx891_cur."!cursor_pass"(rx891_pos, "quote:sym<Q:PIR>")
+    if_null rx891_debug, debug_757
     rx891_cur."!cursor_debug"("PASS  ", "quote:sym<Q:PIR>", " at pos=", rx891_pos)
+  debug_757:
     .return (rx891_cur)
   rx891_restart:
 .annotate 'line', 4
+    if_null rx891_debug, debug_758
     rx891_cur."!cursor_debug"("NEXT ", "quote:sym<Q:PIR>")
+  debug_758:
   rx891_fail:
     (rx891_rep, rx891_pos, $I10, $P10) = rx891_cur."!mark_fail"(0)
     lt rx891_pos, -1, rx891_done
@@ -11413,14 +12351,16 @@
     jump $I10
   rx891_done:
     rx891_cur."!cursor_fail"()
+    if_null rx891_debug, debug_759
     rx891_cur."!cursor_debug"("FAIL  ", "quote:sym<Q:PIR>")
+  debug_759:
     .return (rx891_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("217_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("217_1282016529.10767") :method
 .annotate 'line', 4
     $P893 = self."!PREFIX__!subrule"("ws", "Q:PIR")
     new $P894, "ResizablePMCArray"
@@ -11430,7 +12370,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym</ />"  :subid("218_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym</ />"  :subid("218_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx897_tgt
     .local int rx897_pos
@@ -11438,7 +12378,9 @@
     .local int rx897_eos
     .local int rx897_rep
     .local pmc rx897_cur
+    .local pmc rx897_debug
     (rx897_cur, rx897_pos, rx897_tgt, $I10) = self."!cursor_start"()
+    getattribute rx897_debug, rx897_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx897_cur
     .local pmc match
     .lex "$/", match
@@ -11450,7 +12392,9 @@
     substr rx897_tgt, rx897_tgt, rx897_off
   rx897_start:
     eq $I10, 1, rx897_restart
+    if_null rx897_debug, debug_760
     rx897_cur."!cursor_debug"("START ", "quote:sym</ />")
+  debug_760:
     $I10 = self.'from'()
     ne $I10, -1, rxscan901_done
     goto rxscan901_scan
@@ -11468,8 +12412,8 @@
     add $I11, rx897_pos, 1
     gt $I11, rx897_eos, rx897_fail
     sub $I11, rx897_pos, rx897_off
-    substr $S10, rx897_tgt, $I11, 1
-    ne $S10, "/", rx897_fail
+    ord $I11, rx897_tgt, $I11
+    ne $I11, 47, rx897_fail
     add rx897_pos, 1
 .annotate 'line', 426
   # rx subrule "newpad" subtype=method negate=
@@ -11494,17 +12438,21 @@
     add $I11, rx897_pos, 1
     gt $I11, rx897_eos, rx897_fail
     sub $I11, rx897_pos, rx897_off
-    substr $S10, rx897_tgt, $I11, 1
-    ne $S10, "/", rx897_fail
+    ord $I11, rx897_tgt, $I11
+    ne $I11, 47, rx897_fail
     add rx897_pos, 1
 .annotate 'line', 424
   # rx pass
     rx897_cur."!cursor_pass"(rx897_pos, "quote:sym</ />")
+    if_null rx897_debug, debug_761
     rx897_cur."!cursor_debug"("PASS  ", "quote:sym</ />", " at pos=", rx897_pos)
+  debug_761:
     .return (rx897_cur)
   rx897_restart:
 .annotate 'line', 4
+    if_null rx897_debug, debug_762
     rx897_cur."!cursor_debug"("NEXT ", "quote:sym</ />")
+  debug_762:
   rx897_fail:
     (rx897_rep, rx897_pos, $I10, $P10) = rx897_cur."!mark_fail"(0)
     lt rx897_pos, -1, rx897_done
@@ -11512,14 +12460,16 @@
     jump $I10
   rx897_done:
     rx897_cur."!cursor_fail"()
+    if_null rx897_debug, debug_763
     rx897_cur."!cursor_debug"("FAIL  ", "quote:sym</ />")
+  debug_763:
     .return (rx897_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym</ />"  :subid("219_1280467477.44751") :method
+.sub "!PREFIX__quote:sym</ />"  :subid("219_1282016529.10767") :method
 .annotate 'line', 4
     $P899 = self."!PREFIX__!subrule"("newpad", "/")
     new $P900, "ResizablePMCArray"
@@ -11529,7 +12479,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<$>"  :subid("220_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote_escape:sym<$>"  :subid("220_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx903_tgt
     .local int rx903_pos
@@ -11537,7 +12487,9 @@
     .local int rx903_eos
     .local int rx903_rep
     .local pmc rx903_cur
+    .local pmc rx903_debug
     (rx903_cur, rx903_pos, rx903_tgt, $I10) = self."!cursor_start"()
+    getattribute rx903_debug, rx903_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx903_cur
     .local pmc match
     .lex "$/", match
@@ -11549,7 +12501,9 @@
     substr rx903_tgt, rx903_tgt, rx903_off
   rx903_start:
     eq $I10, 1, rx903_restart
+    if_null rx903_debug, debug_764
     rx903_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
+  debug_764:
     $I10 = self.'from'()
     ne $I10, -1, rxscan906_done
     goto rxscan906_scan
@@ -11582,11 +12536,15 @@
     rx903_pos = $P10."pos"()
   # rx pass
     rx903_cur."!cursor_pass"(rx903_pos, "quote_escape:sym<$>")
+    if_null rx903_debug, debug_765
     rx903_cur."!cursor_debug"("PASS  ", "quote_escape:sym<$>", " at pos=", rx903_pos)
+  debug_765:
     .return (rx903_cur)
   rx903_restart:
 .annotate 'line', 4
+    if_null rx903_debug, debug_766
     rx903_cur."!cursor_debug"("NEXT ", "quote_escape:sym<$>")
+  debug_766:
   rx903_fail:
     (rx903_rep, rx903_pos, $I10, $P10) = rx903_cur."!mark_fail"(0)
     lt rx903_pos, -1, rx903_done
@@ -11594,14 +12552,16 @@
     jump $I10
   rx903_done:
     rx903_cur."!cursor_fail"()
+    if_null rx903_debug, debug_767
     rx903_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<$>")
+  debug_767:
     .return (rx903_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<$>"  :subid("221_1280467477.44751") :method
+.sub "!PREFIX__quote_escape:sym<$>"  :subid("221_1282016529.10767") :method
 .annotate 'line', 4
     new $P905, "ResizablePMCArray"
     push $P905, "$"
@@ -11610,7 +12570,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<{ }>"  :subid("222_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote_escape:sym<{ }>"  :subid("222_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx908_tgt
     .local int rx908_pos
@@ -11618,7 +12578,9 @@
     .local int rx908_eos
     .local int rx908_rep
     .local pmc rx908_cur
+    .local pmc rx908_debug
     (rx908_cur, rx908_pos, rx908_tgt, $I10) = self."!cursor_start"()
+    getattribute rx908_debug, rx908_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx908_cur
     .local pmc match
     .lex "$/", match
@@ -11630,7 +12592,9 @@
     substr rx908_tgt, rx908_tgt, rx908_off
   rx908_start:
     eq $I10, 1, rx908_restart
+    if_null rx908_debug, debug_768
     rx908_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
+  debug_768:
     $I10 = self.'from'()
     ne $I10, -1, rxscan911_done
     goto rxscan911_scan
@@ -11663,11 +12627,15 @@
     rx908_pos = $P10."pos"()
   # rx pass
     rx908_cur."!cursor_pass"(rx908_pos, "quote_escape:sym<{ }>")
+    if_null rx908_debug, debug_769
     rx908_cur."!cursor_debug"("PASS  ", "quote_escape:sym<{ }>", " at pos=", rx908_pos)
+  debug_769:
     .return (rx908_cur)
   rx908_restart:
 .annotate 'line', 4
+    if_null rx908_debug, debug_770
     rx908_cur."!cursor_debug"("NEXT ", "quote_escape:sym<{ }>")
+  debug_770:
   rx908_fail:
     (rx908_rep, rx908_pos, $I10, $P10) = rx908_cur."!mark_fail"(0)
     lt rx908_pos, -1, rx908_done
@@ -11675,14 +12643,16 @@
     jump $I10
   rx908_done:
     rx908_cur."!cursor_fail"()
+    if_null rx908_debug, debug_771
     rx908_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<{ }>")
+  debug_771:
     .return (rx908_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("223_1280467477.44751") :method
+.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("223_1282016529.10767") :method
 .annotate 'line', 4
     new $P910, "ResizablePMCArray"
     push $P910, "{"
@@ -11691,7 +12661,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<esc>"  :subid("224_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote_escape:sym<esc>"  :subid("224_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx913_tgt
     .local int rx913_pos
@@ -11699,7 +12669,9 @@
     .local int rx913_eos
     .local int rx913_rep
     .local pmc rx913_cur
+    .local pmc rx913_debug
     (rx913_cur, rx913_pos, rx913_tgt, $I10) = self."!cursor_start"()
+    getattribute rx913_debug, rx913_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx913_cur
     .local pmc match
     .lex "$/", match
@@ -11711,7 +12683,9 @@
     substr rx913_tgt, rx913_tgt, rx913_off
   rx913_start:
     eq $I10, 1, rx913_restart
+    if_null rx913_debug, debug_772
     rx913_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
+  debug_772:
     $I10 = self.'from'()
     ne $I10, -1, rxscan916_done
     goto rxscan916_scan
@@ -11738,11 +12712,15 @@
     unless $P10, rx913_fail
   # rx pass
     rx913_cur."!cursor_pass"(rx913_pos, "quote_escape:sym<esc>")
+    if_null rx913_debug, debug_773
     rx913_cur."!cursor_debug"("PASS  ", "quote_escape:sym<esc>", " at pos=", rx913_pos)
+  debug_773:
     .return (rx913_cur)
   rx913_restart:
 .annotate 'line', 4
+    if_null rx913_debug, debug_774
     rx913_cur."!cursor_debug"("NEXT ", "quote_escape:sym<esc>")
+  debug_774:
   rx913_fail:
     (rx913_rep, rx913_pos, $I10, $P10) = rx913_cur."!mark_fail"(0)
     lt rx913_pos, -1, rx913_done
@@ -11750,14 +12728,16 @@
     jump $I10
   rx913_done:
     rx913_cur."!cursor_fail"()
+    if_null rx913_debug, debug_775
     rx913_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<esc>")
+  debug_775:
     .return (rx913_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("225_1280467477.44751") :method
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("225_1282016529.10767") :method
 .annotate 'line', 4
     new $P915, "ResizablePMCArray"
     push $P915, "\\e"
@@ -11766,7 +12746,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<( )>"  :subid("226_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<( )>"  :subid("226_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx918_tgt
     .local int rx918_pos
@@ -11774,8 +12754,10 @@
     .local int rx918_eos
     .local int rx918_rep
     .local pmc rx918_cur
+    .local pmc rx918_debug
     (rx918_cur, rx918_pos, rx918_tgt, $I10) = self."!cursor_start"()
     rx918_cur."!cursor_caparray"("EXPR")
+    getattribute rx918_debug, rx918_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx918_cur
     .local pmc match
     .lex "$/", match
@@ -11787,7 +12769,9 @@
     substr rx918_tgt, rx918_tgt, rx918_off
   rx918_start:
     eq $I10, 1, rx918_restart
+    if_null rx918_debug, debug_776
     rx918_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
+  debug_776:
     $I10 = self.'from'()
     ne $I10, -1, rxscan922_done
     goto rxscan922_scan
@@ -11805,8 +12789,8 @@
     add $I11, rx918_pos, 1
     gt $I11, rx918_eos, rx918_fail
     sub $I11, rx918_pos, rx918_off
-    substr $S10, rx918_tgt, $I11, 1
-    ne $S10, "(", rx918_fail
+    ord $I11, rx918_tgt, $I11
+    ne $I11, 40, rx918_fail
     add rx918_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx918_cur."!cursor_pos"(rx918_pos)
@@ -11837,16 +12821,20 @@
     add $I11, rx918_pos, 1
     gt $I11, rx918_eos, rx918_fail
     sub $I11, rx918_pos, rx918_off
-    substr $S10, rx918_tgt, $I11, 1
-    ne $S10, ")", rx918_fail
+    ord $I11, rx918_tgt, $I11
+    ne $I11, 41, rx918_fail
     add rx918_pos, 1
   # rx pass
     rx918_cur."!cursor_pass"(rx918_pos, "circumfix:sym<( )>")
+    if_null rx918_debug, debug_777
     rx918_cur."!cursor_debug"("PASS  ", "circumfix:sym<( )>", " at pos=", rx918_pos)
+  debug_777:
     .return (rx918_cur)
   rx918_restart:
 .annotate 'line', 4
+    if_null rx918_debug, debug_778
     rx918_cur."!cursor_debug"("NEXT ", "circumfix:sym<( )>")
+  debug_778:
   rx918_fail:
     (rx918_rep, rx918_pos, $I10, $P10) = rx918_cur."!mark_fail"(0)
     lt rx918_pos, -1, rx918_done
@@ -11854,14 +12842,16 @@
     jump $I10
   rx918_done:
     rx918_cur."!cursor_fail"()
+    if_null rx918_debug, debug_779
     rx918_cur."!cursor_debug"("FAIL  ", "circumfix:sym<( )>")
+  debug_779:
     .return (rx918_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<( )>"  :subid("227_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<( )>"  :subid("227_1282016529.10767") :method
 .annotate 'line', 4
     $P920 = self."!PREFIX__!subrule"("ws", "(")
     new $P921, "ResizablePMCArray"
@@ -11871,7 +12861,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<[ ]>"  :subid("228_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<[ ]>"  :subid("228_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx926_tgt
     .local int rx926_pos
@@ -11879,8 +12869,10 @@
     .local int rx926_eos
     .local int rx926_rep
     .local pmc rx926_cur
+    .local pmc rx926_debug
     (rx926_cur, rx926_pos, rx926_tgt, $I10) = self."!cursor_start"()
     rx926_cur."!cursor_caparray"("EXPR")
+    getattribute rx926_debug, rx926_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx926_cur
     .local pmc match
     .lex "$/", match
@@ -11892,7 +12884,9 @@
     substr rx926_tgt, rx926_tgt, rx926_off
   rx926_start:
     eq $I10, 1, rx926_restart
+    if_null rx926_debug, debug_780
     rx926_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
+  debug_780:
     $I10 = self.'from'()
     ne $I10, -1, rxscan930_done
     goto rxscan930_scan
@@ -11910,8 +12904,8 @@
     add $I11, rx926_pos, 1
     gt $I11, rx926_eos, rx926_fail
     sub $I11, rx926_pos, rx926_off
-    substr $S10, rx926_tgt, $I11, 1
-    ne $S10, "[", rx926_fail
+    ord $I11, rx926_tgt, $I11
+    ne $I11, 91, rx926_fail
     add rx926_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx926_cur."!cursor_pos"(rx926_pos)
@@ -11942,16 +12936,20 @@
     add $I11, rx926_pos, 1
     gt $I11, rx926_eos, rx926_fail
     sub $I11, rx926_pos, rx926_off
-    substr $S10, rx926_tgt, $I11, 1
-    ne $S10, "]", rx926_fail
+    ord $I11, rx926_tgt, $I11
+    ne $I11, 93, rx926_fail
     add rx926_pos, 1
   # rx pass
     rx926_cur."!cursor_pass"(rx926_pos, "circumfix:sym<[ ]>")
+    if_null rx926_debug, debug_781
     rx926_cur."!cursor_debug"("PASS  ", "circumfix:sym<[ ]>", " at pos=", rx926_pos)
+  debug_781:
     .return (rx926_cur)
   rx926_restart:
 .annotate 'line', 4
+    if_null rx926_debug, debug_782
     rx926_cur."!cursor_debug"("NEXT ", "circumfix:sym<[ ]>")
+  debug_782:
   rx926_fail:
     (rx926_rep, rx926_pos, $I10, $P10) = rx926_cur."!mark_fail"(0)
     lt rx926_pos, -1, rx926_done
@@ -11959,14 +12957,16 @@
     jump $I10
   rx926_done:
     rx926_cur."!cursor_fail"()
+    if_null rx926_debug, debug_783
     rx926_cur."!cursor_debug"("FAIL  ", "circumfix:sym<[ ]>")
+  debug_783:
     .return (rx926_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("229_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("229_1282016529.10767") :method
 .annotate 'line', 4
     $P928 = self."!PREFIX__!subrule"("ws", "[")
     new $P929, "ResizablePMCArray"
@@ -11976,7 +12976,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<ang>"  :subid("230_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<ang>"  :subid("230_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx934_tgt
     .local int rx934_pos
@@ -11984,7 +12984,9 @@
     .local int rx934_eos
     .local int rx934_rep
     .local pmc rx934_cur
+    .local pmc rx934_debug
     (rx934_cur, rx934_pos, rx934_tgt, $I10) = self."!cursor_start"()
+    getattribute rx934_debug, rx934_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx934_cur
     .local pmc match
     .lex "$/", match
@@ -11996,7 +12998,9 @@
     substr rx934_tgt, rx934_tgt, rx934_off
   rx934_start:
     eq $I10, 1, rx934_restart
+    if_null rx934_debug, debug_784
     rx934_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
+  debug_784:
     $I10 = self.'from'()
     ne $I10, -1, rxscan937_done
     goto rxscan937_scan
@@ -12025,11 +13029,15 @@
     rx934_pos = $P10."pos"()
   # rx pass
     rx934_cur."!cursor_pass"(rx934_pos, "circumfix:sym<ang>")
+    if_null rx934_debug, debug_785
     rx934_cur."!cursor_debug"("PASS  ", "circumfix:sym<ang>", " at pos=", rx934_pos)
+  debug_785:
     .return (rx934_cur)
   rx934_restart:
 .annotate 'line', 4
+    if_null rx934_debug, debug_786
     rx934_cur."!cursor_debug"("NEXT ", "circumfix:sym<ang>")
+  debug_786:
   rx934_fail:
     (rx934_rep, rx934_pos, $I10, $P10) = rx934_cur."!mark_fail"(0)
     lt rx934_pos, -1, rx934_done
@@ -12037,14 +13045,16 @@
     jump $I10
   rx934_done:
     rx934_cur."!cursor_fail"()
+    if_null rx934_debug, debug_787
     rx934_cur."!cursor_debug"("FAIL  ", "circumfix:sym<ang>")
+  debug_787:
     .return (rx934_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<ang>"  :subid("231_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<ang>"  :subid("231_1282016529.10767") :method
 .annotate 'line', 4
     new $P936, "ResizablePMCArray"
     push $P936, "<"
@@ -12053,7 +13063,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("232_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("232_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx939_tgt
     .local int rx939_pos
@@ -12061,7 +13071,9 @@
     .local int rx939_eos
     .local int rx939_rep
     .local pmc rx939_cur
+    .local pmc rx939_debug
     (rx939_cur, rx939_pos, rx939_tgt, $I10) = self."!cursor_start"()
+    getattribute rx939_debug, rx939_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx939_cur
     .local pmc match
     .lex "$/", match
@@ -12073,7 +13085,9 @@
     substr rx939_tgt, rx939_tgt, rx939_off
   rx939_start:
     eq $I10, 1, rx939_restart
+    if_null rx939_debug, debug_788
     rx939_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+  debug_788:
     $I10 = self.'from'()
     ne $I10, -1, rxscan942_done
     goto rxscan942_scan
@@ -12102,11 +13116,15 @@
     rx939_pos = $P10."pos"()
   # rx pass
     rx939_cur."!cursor_pass"(rx939_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
+    if_null rx939_debug, debug_789
     rx939_cur."!cursor_debug"("PASS  ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx939_pos)
+  debug_789:
     .return (rx939_cur)
   rx939_restart:
 .annotate 'line', 4
+    if_null rx939_debug, debug_790
     rx939_cur."!cursor_debug"("NEXT ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+  debug_790:
   rx939_fail:
     (rx939_rep, rx939_pos, $I10, $P10) = rx939_cur."!mark_fail"(0)
     lt rx939_pos, -1, rx939_done
@@ -12114,14 +13132,16 @@
     jump $I10
   rx939_done:
     rx939_cur."!cursor_fail"()
+    if_null rx939_debug, debug_791
     rx939_cur."!cursor_debug"("FAIL  ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+  debug_791:
     .return (rx939_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("233_1280467477.44751") :method
+.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("233_1282016529.10767") :method
 .annotate 'line', 4
     new $P941, "ResizablePMCArray"
     push $P941, unicode:"\x{ab}"
@@ -12130,7 +13150,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<{ }>"  :subid("234_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<{ }>"  :subid("234_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx944_tgt
     .local int rx944_pos
@@ -12138,7 +13158,9 @@
     .local int rx944_eos
     .local int rx944_rep
     .local pmc rx944_cur
+    .local pmc rx944_debug
     (rx944_cur, rx944_pos, rx944_tgt, $I10) = self."!cursor_start"()
+    getattribute rx944_debug, rx944_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx944_cur
     .local pmc match
     .lex "$/", match
@@ -12150,7 +13172,9 @@
     substr rx944_tgt, rx944_tgt, rx944_off
   rx944_start:
     eq $I10, 1, rx944_restart
+    if_null rx944_debug, debug_792
     rx944_cur."!cursor_debug"("START ", "circumfix:sym<{ }>")
+  debug_792:
     $I10 = self.'from'()
     ne $I10, -1, rxscan947_done
     goto rxscan947_scan
@@ -12179,11 +13203,15 @@
     rx944_pos = $P10."pos"()
   # rx pass
     rx944_cur."!cursor_pass"(rx944_pos, "circumfix:sym<{ }>")
+    if_null rx944_debug, debug_793
     rx944_cur."!cursor_debug"("PASS  ", "circumfix:sym<{ }>", " at pos=", rx944_pos)
+  debug_793:
     .return (rx944_cur)
   rx944_restart:
 .annotate 'line', 4
+    if_null rx944_debug, debug_794
     rx944_cur."!cursor_debug"("NEXT ", "circumfix:sym<{ }>")
+  debug_794:
   rx944_fail:
     (rx944_rep, rx944_pos, $I10, $P10) = rx944_cur."!mark_fail"(0)
     lt rx944_pos, -1, rx944_done
@@ -12191,14 +13219,16 @@
     jump $I10
   rx944_done:
     rx944_cur."!cursor_fail"()
+    if_null rx944_debug, debug_795
     rx944_cur."!cursor_debug"("FAIL  ", "circumfix:sym<{ }>")
+  debug_795:
     .return (rx944_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<{ }>"  :subid("235_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<{ }>"  :subid("235_1282016529.10767") :method
 .annotate 'line', 4
     new $P946, "ResizablePMCArray"
     push $P946, "{"
@@ -12207,7 +13237,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<sigil>"  :subid("236_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<sigil>"  :subid("236_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx949_tgt
     .local int rx949_pos
@@ -12215,7 +13245,9 @@
     .local int rx949_eos
     .local int rx949_rep
     .local pmc rx949_cur
+    .local pmc rx949_debug
     (rx949_cur, rx949_pos, rx949_tgt, $I10) = self."!cursor_start"()
+    getattribute rx949_debug, rx949_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx949_cur
     .local pmc match
     .lex "$/", match
@@ -12227,7 +13259,9 @@
     substr rx949_tgt, rx949_tgt, rx949_off
   rx949_start:
     eq $I10, 1, rx949_restart
+    if_null rx949_debug, debug_796
     rx949_cur."!cursor_debug"("START ", "circumfix:sym<sigil>")
+  debug_796:
     $I10 = self.'from'()
     ne $I10, -1, rxscan953_done
     goto rxscan953_scan
@@ -12252,8 +13286,8 @@
     add $I11, rx949_pos, 1
     gt $I11, rx949_eos, rx949_fail
     sub $I11, rx949_pos, rx949_off
-    substr $S10, rx949_tgt, $I11, 1
-    ne $S10, "(", rx949_fail
+    ord $I11, rx949_tgt, $I11
+    ne $I11, 40, rx949_fail
     add rx949_pos, 1
   # rx subrule "semilist" subtype=capture negate=
     rx949_cur."!cursor_pos"(rx949_pos)
@@ -12269,8 +13303,8 @@
     add $I11, rx949_pos, 1
     gt $I11, rx949_eos, rx949_fail
     sub $I11, rx949_pos, rx949_off
-    substr $S10, rx949_tgt, $I11, 1
-    ne $S10, ")", rx949_fail
+    ord $I11, rx949_tgt, $I11
+    ne $I11, 41, rx949_fail
     add rx949_pos, 1
     goto alt954_end
   alt954_1:
@@ -12289,11 +13323,15 @@
   alt954_end:
   # rx pass
     rx949_cur."!cursor_pass"(rx949_pos, "circumfix:sym<sigil>")
+    if_null rx949_debug, debug_797
     rx949_cur."!cursor_debug"("PASS  ", "circumfix:sym<sigil>", " at pos=", rx949_pos)
+  debug_797:
     .return (rx949_cur)
   rx949_restart:
 .annotate 'line', 4
+    if_null rx949_debug, debug_798
     rx949_cur."!cursor_debug"("NEXT ", "circumfix:sym<sigil>")
+  debug_798:
   rx949_fail:
     (rx949_rep, rx949_pos, $I10, $P10) = rx949_cur."!mark_fail"(0)
     lt rx949_pos, -1, rx949_done
@@ -12301,14 +13339,16 @@
     jump $I10
   rx949_done:
     rx949_cur."!cursor_fail"()
+    if_null rx949_debug, debug_799
     rx949_cur."!cursor_debug"("FAIL  ", "circumfix:sym<sigil>")
+  debug_799:
     .return (rx949_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<sigil>"  :subid("237_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<sigil>"  :subid("237_1282016529.10767") :method
 .annotate 'line', 4
     $P951 = self."!PREFIX__!subrule"("sigil", "")
     new $P952, "ResizablePMCArray"
@@ -12318,7 +13358,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "semilist"  :subid("238_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "semilist"  :subid("238_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 4
     .local string rx958_tgt
     .local int rx958_pos
@@ -12326,7 +13366,9 @@
     .local int rx958_eos
     .local int rx958_rep
     .local pmc rx958_cur
+    .local pmc rx958_debug
     (rx958_cur, rx958_pos, rx958_tgt, $I10) = self."!cursor_start"()
+    getattribute rx958_debug, rx958_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx958_cur
     .local pmc match
     .lex "$/", match
@@ -12338,7 +13380,9 @@
     substr rx958_tgt, rx958_tgt, rx958_off
   rx958_start:
     eq $I10, 1, rx958_restart
+    if_null rx958_debug, debug_800
     rx958_cur."!cursor_debug"("START ", "semilist")
+  debug_800:
     $I10 = self.'from'()
     ne $I10, -1, rxscan962_done
     goto rxscan962_scan
@@ -12371,11 +13415,15 @@
     rx958_pos = $P10."pos"()
   # rx pass
     rx958_cur."!cursor_pass"(rx958_pos, "semilist")
+    if_null rx958_debug, debug_801
     rx958_cur."!cursor_debug"("PASS  ", "semilist", " at pos=", rx958_pos)
+  debug_801:
     .return (rx958_cur)
   rx958_restart:
 .annotate 'line', 4
+    if_null rx958_debug, debug_802
     rx958_cur."!cursor_debug"("NEXT ", "semilist")
+  debug_802:
   rx958_fail:
     (rx958_rep, rx958_pos, $I10, $P10) = rx958_cur."!mark_fail"(0)
     lt rx958_pos, -1, rx958_done
@@ -12383,14 +13431,16 @@
     jump $I10
   rx958_done:
     rx958_cur."!cursor_fail"()
+    if_null rx958_debug, debug_803
     rx958_cur."!cursor_debug"("FAIL  ", "semilist")
+  debug_803:
     .return (rx958_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__semilist"  :subid("239_1280467477.44751") :method
+.sub "!PREFIX__semilist"  :subid("239_1282016529.10767") :method
 .annotate 'line', 4
     $P960 = self."!PREFIX__!subrule"("ws", "")
     new $P961, "ResizablePMCArray"
@@ -12400,7 +13450,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixish"  :subid("240_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infixish"  :subid("240_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx966_tgt
     .local int rx966_pos
@@ -12408,7 +13458,9 @@
     .local int rx966_eos
     .local int rx966_rep
     .local pmc rx966_cur
+    .local pmc rx966_debug
     (rx966_cur, rx966_pos, rx966_tgt, $I10) = self."!cursor_start"()
+    getattribute rx966_debug, rx966_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx966_cur
     .local pmc match
     .lex "$/", match
@@ -12420,7 +13472,9 @@
     substr rx966_tgt, rx966_tgt, rx966_off
   rx966_start:
     eq $I10, 1, rx966_restart
+    if_null rx966_debug, debug_804
     rx966_cur."!cursor_debug"("START ", "infixish")
+  debug_804:
     $I10 = self.'from'()
     ne $I10, -1, rxscan969_done
     goto rxscan969_scan
@@ -12447,11 +13501,15 @@
     rx966_pos = $P10."pos"()
   # rx pass
     rx966_cur."!cursor_pass"(rx966_pos, "infixish")
+    if_null rx966_debug, debug_805
     rx966_cur."!cursor_debug"("PASS  ", "infixish", " at pos=", rx966_pos)
+  debug_805:
     .return (rx966_cur)
   rx966_restart:
 .annotate 'line', 447
+    if_null rx966_debug, debug_806
     rx966_cur."!cursor_debug"("NEXT ", "infixish")
+  debug_806:
   rx966_fail:
     (rx966_rep, rx966_pos, $I10, $P10) = rx966_cur."!mark_fail"(0)
     lt rx966_pos, -1, rx966_done
@@ -12459,14 +13517,16 @@
     jump $I10
   rx966_done:
     rx966_cur."!cursor_fail"()
+    if_null rx966_debug, debug_807
     rx966_cur."!cursor_debug"("FAIL  ", "infixish")
+  debug_807:
     .return (rx966_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("241_1280467477.44751") :method
+.sub "!PREFIX__infixish"  :subid("241_1282016529.10767") :method
 .annotate 'line', 447
     new $P968, "ResizablePMCArray"
     push $P968, ""
@@ -12475,7 +13535,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixstopper"  :subid("242_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infixstopper"  :subid("242_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx971_tgt
     .local int rx971_pos
@@ -12483,7 +13543,9 @@
     .local int rx971_eos
     .local int rx971_rep
     .local pmc rx971_cur
+    .local pmc rx971_debug
     (rx971_cur, rx971_pos, rx971_tgt, $I10) = self."!cursor_start"()
+    getattribute rx971_debug, rx971_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx971_cur
     .local pmc match
     .lex "$/", match
@@ -12495,7 +13557,9 @@
     substr rx971_tgt, rx971_tgt, rx971_off
   rx971_start:
     eq $I10, 1, rx971_restart
+    if_null rx971_debug, debug_808
     rx971_cur."!cursor_debug"("START ", "infixstopper")
+  debug_808:
     $I10 = self.'from'()
     ne $I10, -1, rxscan974_done
     goto rxscan974_scan
@@ -12515,11 +13579,15 @@
     unless $P10, rx971_fail
   # rx pass
     rx971_cur."!cursor_pass"(rx971_pos, "infixstopper")
+    if_null rx971_debug, debug_809
     rx971_cur."!cursor_debug"("PASS  ", "infixstopper", " at pos=", rx971_pos)
+  debug_809:
     .return (rx971_cur)
   rx971_restart:
 .annotate 'line', 447
+    if_null rx971_debug, debug_810
     rx971_cur."!cursor_debug"("NEXT ", "infixstopper")
+  debug_810:
   rx971_fail:
     (rx971_rep, rx971_pos, $I10, $P10) = rx971_cur."!mark_fail"(0)
     lt rx971_pos, -1, rx971_done
@@ -12527,14 +13595,16 @@
     jump $I10
   rx971_done:
     rx971_cur."!cursor_fail"()
+    if_null rx971_debug, debug_811
     rx971_cur."!cursor_debug"("FAIL  ", "infixstopper")
+  debug_811:
     .return (rx971_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixstopper"  :subid("243_1280467477.44751") :method
+.sub "!PREFIX__infixstopper"  :subid("243_1282016529.10767") :method
 .annotate 'line', 447
     new $P973, "ResizablePMCArray"
     push $P973, ""
@@ -12543,7 +13613,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<[ ]>"  :subid("244_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postcircumfix:sym<[ ]>"  :subid("244_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx976_tgt
     .local int rx976_pos
@@ -12551,7 +13621,9 @@
     .local int rx976_eos
     .local int rx976_rep
     .local pmc rx976_cur
+    .local pmc rx976_debug
     (rx976_cur, rx976_pos, rx976_tgt, $I10) = self."!cursor_start"()
+    getattribute rx976_debug, rx976_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx976_cur
     .local pmc match
     .lex "$/", match
@@ -12563,7 +13635,9 @@
     substr rx976_tgt, rx976_tgt, rx976_off
   rx976_start:
     eq $I10, 1, rx976_restart
+    if_null rx976_debug, debug_812
     rx976_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
+  debug_812:
     $I10 = self.'from'()
     ne $I10, -1, rxscan980_done
     goto rxscan980_scan
@@ -12581,8 +13655,8 @@
     add $I11, rx976_pos, 1
     gt $I11, rx976_eos, rx976_fail
     sub $I11, rx976_pos, rx976_off
-    substr $S10, rx976_tgt, $I11, 1
-    ne $S10, "[", rx976_fail
+    ord $I11, rx976_tgt, $I11
+    ne $I11, 91, rx976_fail
     add rx976_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx976_cur."!cursor_pos"(rx976_pos)
@@ -12600,8 +13674,8 @@
     add $I11, rx976_pos, 1
     gt $I11, rx976_eos, rx976_fail
     sub $I11, rx976_pos, rx976_off
-    substr $S10, rx976_tgt, $I11, 1
-    ne $S10, "]", rx976_fail
+    ord $I11, rx976_tgt, $I11
+    ne $I11, 93, rx976_fail
     add rx976_pos, 1
 .annotate 'line', 471
   # rx subrule "O" subtype=capture negate=
@@ -12614,11 +13688,15 @@
 .annotate 'line', 469
   # rx pass
     rx976_cur."!cursor_pass"(rx976_pos, "postcircumfix:sym<[ ]>")
+    if_null rx976_debug, debug_813
     rx976_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<[ ]>", " at pos=", rx976_pos)
+  debug_813:
     .return (rx976_cur)
   rx976_restart:
 .annotate 'line', 447
+    if_null rx976_debug, debug_814
     rx976_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<[ ]>")
+  debug_814:
   rx976_fail:
     (rx976_rep, rx976_pos, $I10, $P10) = rx976_cur."!mark_fail"(0)
     lt rx976_pos, -1, rx976_done
@@ -12626,14 +13704,16 @@
     jump $I10
   rx976_done:
     rx976_cur."!cursor_fail"()
+    if_null rx976_debug, debug_815
     rx976_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<[ ]>")
+  debug_815:
     .return (rx976_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("245_1280467477.44751") :method
+.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("245_1282016529.10767") :method
 .annotate 'line', 447
     $P978 = self."!PREFIX__!subrule"("ws", "[")
     new $P979, "ResizablePMCArray"
@@ -12643,7 +13723,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<{ }>"  :subid("246_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postcircumfix:sym<{ }>"  :subid("246_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx982_tgt
     .local int rx982_pos
@@ -12651,7 +13731,9 @@
     .local int rx982_eos
     .local int rx982_rep
     .local pmc rx982_cur
+    .local pmc rx982_debug
     (rx982_cur, rx982_pos, rx982_tgt, $I10) = self."!cursor_start"()
+    getattribute rx982_debug, rx982_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx982_cur
     .local pmc match
     .lex "$/", match
@@ -12663,7 +13745,9 @@
     substr rx982_tgt, rx982_tgt, rx982_off
   rx982_start:
     eq $I10, 1, rx982_restart
+    if_null rx982_debug, debug_816
     rx982_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
+  debug_816:
     $I10 = self.'from'()
     ne $I10, -1, rxscan986_done
     goto rxscan986_scan
@@ -12681,8 +13765,8 @@
     add $I11, rx982_pos, 1
     gt $I11, rx982_eos, rx982_fail
     sub $I11, rx982_pos, rx982_off
-    substr $S10, rx982_tgt, $I11, 1
-    ne $S10, "{", rx982_fail
+    ord $I11, rx982_tgt, $I11
+    ne $I11, 123, rx982_fail
     add rx982_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx982_cur."!cursor_pos"(rx982_pos)
@@ -12700,8 +13784,8 @@
     add $I11, rx982_pos, 1
     gt $I11, rx982_eos, rx982_fail
     sub $I11, rx982_pos, rx982_off
-    substr $S10, rx982_tgt, $I11, 1
-    ne $S10, "}", rx982_fail
+    ord $I11, rx982_tgt, $I11
+    ne $I11, 125, rx982_fail
     add rx982_pos, 1
 .annotate 'line', 476
   # rx subrule "O" subtype=capture negate=
@@ -12714,11 +13798,15 @@
 .annotate 'line', 474
   # rx pass
     rx982_cur."!cursor_pass"(rx982_pos, "postcircumfix:sym<{ }>")
+    if_null rx982_debug, debug_817
     rx982_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<{ }>", " at pos=", rx982_pos)
+  debug_817:
     .return (rx982_cur)
   rx982_restart:
 .annotate 'line', 447
+    if_null rx982_debug, debug_818
     rx982_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<{ }>")
+  debug_818:
   rx982_fail:
     (rx982_rep, rx982_pos, $I10, $P10) = rx982_cur."!mark_fail"(0)
     lt rx982_pos, -1, rx982_done
@@ -12726,14 +13814,16 @@
     jump $I10
   rx982_done:
     rx982_cur."!cursor_fail"()
+    if_null rx982_debug, debug_819
     rx982_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<{ }>")
+  debug_819:
     .return (rx982_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("247_1280467477.44751") :method
+.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("247_1282016529.10767") :method
 .annotate 'line', 447
     $P984 = self."!PREFIX__!subrule"("ws", "{")
     new $P985, "ResizablePMCArray"
@@ -12743,7 +13833,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<ang>"  :subid("248_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postcircumfix:sym<ang>"  :subid("248_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx988_tgt
     .local int rx988_pos
@@ -12751,7 +13841,9 @@
     .local int rx988_eos
     .local int rx988_rep
     .local pmc rx988_cur
+    .local pmc rx988_debug
     (rx988_cur, rx988_pos, rx988_tgt, $I10) = self."!cursor_start"()
+    getattribute rx988_debug, rx988_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx988_cur
     .local pmc match
     .lex "$/", match
@@ -12763,7 +13855,9 @@
     substr rx988_tgt, rx988_tgt, rx988_off
   rx988_start:
     eq $I10, 1, rx988_restart
+    if_null rx988_debug, debug_820
     rx988_cur."!cursor_debug"("START ", "postcircumfix:sym<ang>")
+  debug_820:
     $I10 = self.'from'()
     ne $I10, -1, rxscan991_done
     goto rxscan991_scan
@@ -12801,11 +13895,15 @@
 .annotate 'line', 479
   # rx pass
     rx988_cur."!cursor_pass"(rx988_pos, "postcircumfix:sym<ang>")
+    if_null rx988_debug, debug_821
     rx988_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<ang>", " at pos=", rx988_pos)
+  debug_821:
     .return (rx988_cur)
   rx988_restart:
 .annotate 'line', 447
+    if_null rx988_debug, debug_822
     rx988_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<ang>")
+  debug_822:
   rx988_fail:
     (rx988_rep, rx988_pos, $I10, $P10) = rx988_cur."!mark_fail"(0)
     lt rx988_pos, -1, rx988_done
@@ -12813,14 +13911,16 @@
     jump $I10
   rx988_done:
     rx988_cur."!cursor_fail"()
+    if_null rx988_debug, debug_823
     rx988_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<ang>")
+  debug_823:
     .return (rx988_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("249_1280467477.44751") :method
+.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("249_1282016529.10767") :method
 .annotate 'line', 447
     new $P990, "ResizablePMCArray"
     push $P990, "<"
@@ -12829,7 +13929,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<( )>"  :subid("250_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postcircumfix:sym<( )>"  :subid("250_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx993_tgt
     .local int rx993_pos
@@ -12837,7 +13937,9 @@
     .local int rx993_eos
     .local int rx993_rep
     .local pmc rx993_cur
+    .local pmc rx993_debug
     (rx993_cur, rx993_pos, rx993_tgt, $I10) = self."!cursor_start"()
+    getattribute rx993_debug, rx993_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx993_cur
     .local pmc match
     .lex "$/", match
@@ -12849,7 +13951,9 @@
     substr rx993_tgt, rx993_tgt, rx993_off
   rx993_start:
     eq $I10, 1, rx993_restart
+    if_null rx993_debug, debug_824
     rx993_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>")
+  debug_824:
     $I10 = self.'from'()
     ne $I10, -1, rxscan997_done
     goto rxscan997_scan
@@ -12867,8 +13971,8 @@
     add $I11, rx993_pos, 1
     gt $I11, rx993_eos, rx993_fail
     sub $I11, rx993_pos, rx993_off
-    substr $S10, rx993_tgt, $I11, 1
-    ne $S10, "(", rx993_fail
+    ord $I11, rx993_tgt, $I11
+    ne $I11, 40, rx993_fail
     add rx993_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx993_cur."!cursor_pos"(rx993_pos)
@@ -12886,8 +13990,8 @@
     add $I11, rx993_pos, 1
     gt $I11, rx993_eos, rx993_fail
     sub $I11, rx993_pos, rx993_off
-    substr $S10, rx993_tgt, $I11, 1
-    ne $S10, ")", rx993_fail
+    ord $I11, rx993_tgt, $I11
+    ne $I11, 41, rx993_fail
     add rx993_pos, 1
 .annotate 'line', 486
   # rx subrule "O" subtype=capture negate=
@@ -12900,11 +14004,15 @@
 .annotate 'line', 484
   # rx pass
     rx993_cur."!cursor_pass"(rx993_pos, "postcircumfix:sym<( )>")
+    if_null rx993_debug, debug_825
     rx993_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<( )>", " at pos=", rx993_pos)
+  debug_825:
     .return (rx993_cur)
   rx993_restart:
 .annotate 'line', 447
+    if_null rx993_debug, debug_826
     rx993_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<( )>")
+  debug_826:
   rx993_fail:
     (rx993_rep, rx993_pos, $I10, $P10) = rx993_cur."!mark_fail"(0)
     lt rx993_pos, -1, rx993_done
@@ -12912,14 +14020,16 @@
     jump $I10
   rx993_done:
     rx993_cur."!cursor_fail"()
+    if_null rx993_debug, debug_827
     rx993_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<( )>")
+  debug_827:
     .return (rx993_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("251_1280467477.44751") :method
+.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("251_1282016529.10767") :method
 .annotate 'line', 447
     $P995 = self."!PREFIX__!subrule"("ws", "(")
     new $P996, "ResizablePMCArray"
@@ -12929,7 +14039,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<.>"  :subid("252_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postfix:sym<.>"  :subid("252_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx999_tgt
     .local int rx999_pos
@@ -12937,7 +14047,9 @@
     .local int rx999_eos
     .local int rx999_rep
     .local pmc rx999_cur
+    .local pmc rx999_debug
     (rx999_cur, rx999_pos, rx999_tgt, $I10) = self."!cursor_start"()
+    getattribute rx999_debug, rx999_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx999_cur
     .local pmc match
     .lex "$/", match
@@ -12949,7 +14061,9 @@
     substr rx999_tgt, rx999_tgt, rx999_off
   rx999_start:
     eq $I10, 1, rx999_restart
+    if_null rx999_debug, debug_828
     rx999_cur."!cursor_debug"("START ", "postfix:sym<.>")
+  debug_828:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1003_done
     goto rxscan1003_scan
@@ -12979,11 +14093,15 @@
     rx999_pos = $P10."pos"()
   # rx pass
     rx999_cur."!cursor_pass"(rx999_pos, "postfix:sym<.>")
+    if_null rx999_debug, debug_829
     rx999_cur."!cursor_debug"("PASS  ", "postfix:sym<.>", " at pos=", rx999_pos)
+  debug_829:
     .return (rx999_cur)
   rx999_restart:
 .annotate 'line', 447
+    if_null rx999_debug, debug_830
     rx999_cur."!cursor_debug"("NEXT ", "postfix:sym<.>")
+  debug_830:
   rx999_fail:
     (rx999_rep, rx999_pos, $I10, $P10) = rx999_cur."!mark_fail"(0)
     lt rx999_pos, -1, rx999_done
@@ -12991,14 +14109,16 @@
     jump $I10
   rx999_done:
     rx999_cur."!cursor_fail"()
+    if_null rx999_debug, debug_831
     rx999_cur."!cursor_debug"("FAIL  ", "postfix:sym<.>")
+  debug_831:
     .return (rx999_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<.>"  :subid("253_1280467477.44751") :method
+.sub "!PREFIX__postfix:sym<.>"  :subid("253_1282016529.10767") :method
 .annotate 'line', 447
     $P1001 = self."!PREFIX__!subrule"("dotty", "")
     new $P1002, "ResizablePMCArray"
@@ -13008,7 +14128,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<++>"  :subid("254_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<++>"  :subid("254_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1005_tgt
     .local int rx1005_pos
@@ -13016,7 +14136,9 @@
     .local int rx1005_eos
     .local int rx1005_rep
     .local pmc rx1005_cur
+    .local pmc rx1005_debug
     (rx1005_cur, rx1005_pos, rx1005_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1005_debug, rx1005_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1005_cur
     .local pmc match
     .lex "$/", match
@@ -13028,7 +14150,9 @@
     substr rx1005_tgt, rx1005_tgt, rx1005_off
   rx1005_start:
     eq $I10, 1, rx1005_restart
+    if_null rx1005_debug, debug_832
     rx1005_cur."!cursor_debug"("START ", "prefix:sym<++>")
+  debug_832:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1009_done
     goto rxscan1009_scan
@@ -13072,11 +14196,15 @@
     rx1005_pos = $P10."pos"()
   # rx pass
     rx1005_cur."!cursor_pass"(rx1005_pos, "prefix:sym<++>")
+    if_null rx1005_debug, debug_833
     rx1005_cur."!cursor_debug"("PASS  ", "prefix:sym<++>", " at pos=", rx1005_pos)
+  debug_833:
     .return (rx1005_cur)
   rx1005_restart:
 .annotate 'line', 447
+    if_null rx1005_debug, debug_834
     rx1005_cur."!cursor_debug"("NEXT ", "prefix:sym<++>")
+  debug_834:
   rx1005_fail:
     (rx1005_rep, rx1005_pos, $I10, $P10) = rx1005_cur."!mark_fail"(0)
     lt rx1005_pos, -1, rx1005_done
@@ -13084,14 +14212,16 @@
     jump $I10
   rx1005_done:
     rx1005_cur."!cursor_fail"()
+    if_null rx1005_debug, debug_835
     rx1005_cur."!cursor_debug"("FAIL  ", "prefix:sym<++>")
+  debug_835:
     .return (rx1005_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<++>"  :subid("255_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<++>"  :subid("255_1282016529.10767") :method
 .annotate 'line', 447
     $P1007 = self."!PREFIX__!subrule"("O", "++")
     new $P1008, "ResizablePMCArray"
@@ -13101,7 +14231,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<-->"  :subid("256_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<-->"  :subid("256_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1012_tgt
     .local int rx1012_pos
@@ -13109,7 +14239,9 @@
     .local int rx1012_eos
     .local int rx1012_rep
     .local pmc rx1012_cur
+    .local pmc rx1012_debug
     (rx1012_cur, rx1012_pos, rx1012_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1012_debug, rx1012_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1012_cur
     .local pmc match
     .lex "$/", match
@@ -13121,7 +14253,9 @@
     substr rx1012_tgt, rx1012_tgt, rx1012_off
   rx1012_start:
     eq $I10, 1, rx1012_restart
+    if_null rx1012_debug, debug_836
     rx1012_cur."!cursor_debug"("START ", "prefix:sym<-->")
+  debug_836:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1016_done
     goto rxscan1016_scan
@@ -13165,11 +14299,15 @@
     rx1012_pos = $P10."pos"()
   # rx pass
     rx1012_cur."!cursor_pass"(rx1012_pos, "prefix:sym<-->")
+    if_null rx1012_debug, debug_837
     rx1012_cur."!cursor_debug"("PASS  ", "prefix:sym<-->", " at pos=", rx1012_pos)
+  debug_837:
     .return (rx1012_cur)
   rx1012_restart:
 .annotate 'line', 447
+    if_null rx1012_debug, debug_838
     rx1012_cur."!cursor_debug"("NEXT ", "prefix:sym<-->")
+  debug_838:
   rx1012_fail:
     (rx1012_rep, rx1012_pos, $I10, $P10) = rx1012_cur."!mark_fail"(0)
     lt rx1012_pos, -1, rx1012_done
@@ -13177,14 +14315,16 @@
     jump $I10
   rx1012_done:
     rx1012_cur."!cursor_fail"()
+    if_null rx1012_debug, debug_839
     rx1012_cur."!cursor_debug"("FAIL  ", "prefix:sym<-->")
+  debug_839:
     .return (rx1012_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<-->"  :subid("257_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<-->"  :subid("257_1282016529.10767") :method
 .annotate 'line', 447
     $P1014 = self."!PREFIX__!subrule"("O", "--")
     new $P1015, "ResizablePMCArray"
@@ -13194,7 +14334,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<++>"  :subid("258_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postfix:sym<++>"  :subid("258_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1019_tgt
     .local int rx1019_pos
@@ -13202,7 +14342,9 @@
     .local int rx1019_eos
     .local int rx1019_rep
     .local pmc rx1019_cur
+    .local pmc rx1019_debug
     (rx1019_cur, rx1019_pos, rx1019_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1019_debug, rx1019_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1019_cur
     .local pmc match
     .lex "$/", match
@@ -13214,7 +14356,9 @@
     substr rx1019_tgt, rx1019_tgt, rx1019_off
   rx1019_start:
     eq $I10, 1, rx1019_restart
+    if_null rx1019_debug, debug_840
     rx1019_cur."!cursor_debug"("START ", "postfix:sym<++>")
+  debug_840:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1023_done
     goto rxscan1023_scan
@@ -13258,11 +14402,15 @@
     rx1019_pos = $P10."pos"()
   # rx pass
     rx1019_cur."!cursor_pass"(rx1019_pos, "postfix:sym<++>")
+    if_null rx1019_debug, debug_841
     rx1019_cur."!cursor_debug"("PASS  ", "postfix:sym<++>", " at pos=", rx1019_pos)
+  debug_841:
     .return (rx1019_cur)
   rx1019_restart:
 .annotate 'line', 447
+    if_null rx1019_debug, debug_842
     rx1019_cur."!cursor_debug"("NEXT ", "postfix:sym<++>")
+  debug_842:
   rx1019_fail:
     (rx1019_rep, rx1019_pos, $I10, $P10) = rx1019_cur."!mark_fail"(0)
     lt rx1019_pos, -1, rx1019_done
@@ -13270,14 +14418,16 @@
     jump $I10
   rx1019_done:
     rx1019_cur."!cursor_fail"()
+    if_null rx1019_debug, debug_843
     rx1019_cur."!cursor_debug"("FAIL  ", "postfix:sym<++>")
+  debug_843:
     .return (rx1019_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<++>"  :subid("259_1280467477.44751") :method
+.sub "!PREFIX__postfix:sym<++>"  :subid("259_1282016529.10767") :method
 .annotate 'line', 447
     $P1021 = self."!PREFIX__!subrule"("O", "++")
     new $P1022, "ResizablePMCArray"
@@ -13287,7 +14437,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<-->"  :subid("260_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postfix:sym<-->"  :subid("260_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1026_tgt
     .local int rx1026_pos
@@ -13295,7 +14445,9 @@
     .local int rx1026_eos
     .local int rx1026_rep
     .local pmc rx1026_cur
+    .local pmc rx1026_debug
     (rx1026_cur, rx1026_pos, rx1026_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1026_debug, rx1026_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1026_cur
     .local pmc match
     .lex "$/", match
@@ -13307,7 +14459,9 @@
     substr rx1026_tgt, rx1026_tgt, rx1026_off
   rx1026_start:
     eq $I10, 1, rx1026_restart
+    if_null rx1026_debug, debug_844
     rx1026_cur."!cursor_debug"("START ", "postfix:sym<-->")
+  debug_844:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1030_done
     goto rxscan1030_scan
@@ -13351,11 +14505,15 @@
     rx1026_pos = $P10."pos"()
   # rx pass
     rx1026_cur."!cursor_pass"(rx1026_pos, "postfix:sym<-->")
+    if_null rx1026_debug, debug_845
     rx1026_cur."!cursor_debug"("PASS  ", "postfix:sym<-->", " at pos=", rx1026_pos)
+  debug_845:
     .return (rx1026_cur)
   rx1026_restart:
 .annotate 'line', 447
+    if_null rx1026_debug, debug_846
     rx1026_cur."!cursor_debug"("NEXT ", "postfix:sym<-->")
+  debug_846:
   rx1026_fail:
     (rx1026_rep, rx1026_pos, $I10, $P10) = rx1026_cur."!mark_fail"(0)
     lt rx1026_pos, -1, rx1026_done
@@ -13363,14 +14521,16 @@
     jump $I10
   rx1026_done:
     rx1026_cur."!cursor_fail"()
+    if_null rx1026_debug, debug_847
     rx1026_cur."!cursor_debug"("FAIL  ", "postfix:sym<-->")
+  debug_847:
     .return (rx1026_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<-->"  :subid("261_1280467477.44751") :method
+.sub "!PREFIX__postfix:sym<-->"  :subid("261_1282016529.10767") :method
 .annotate 'line', 447
     $P1028 = self."!PREFIX__!subrule"("O", "--")
     new $P1029, "ResizablePMCArray"
@@ -13380,7 +14540,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<**>"  :subid("262_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<**>"  :subid("262_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1033_tgt
     .local int rx1033_pos
@@ -13388,7 +14548,9 @@
     .local int rx1033_eos
     .local int rx1033_rep
     .local pmc rx1033_cur
+    .local pmc rx1033_debug
     (rx1033_cur, rx1033_pos, rx1033_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1033_debug, rx1033_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1033_cur
     .local pmc match
     .lex "$/", match
@@ -13400,7 +14562,9 @@
     substr rx1033_tgt, rx1033_tgt, rx1033_off
   rx1033_start:
     eq $I10, 1, rx1033_restart
+    if_null rx1033_debug, debug_848
     rx1033_cur."!cursor_debug"("START ", "infix:sym<**>")
+  debug_848:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1037_done
     goto rxscan1037_scan
@@ -13444,11 +14608,15 @@
     rx1033_pos = $P10."pos"()
   # rx pass
     rx1033_cur."!cursor_pass"(rx1033_pos, "infix:sym<**>")
+    if_null rx1033_debug, debug_849
     rx1033_cur."!cursor_debug"("PASS  ", "infix:sym<**>", " at pos=", rx1033_pos)
+  debug_849:
     .return (rx1033_cur)
   rx1033_restart:
 .annotate 'line', 447
+    if_null rx1033_debug, debug_850
     rx1033_cur."!cursor_debug"("NEXT ", "infix:sym<**>")
+  debug_850:
   rx1033_fail:
     (rx1033_rep, rx1033_pos, $I10, $P10) = rx1033_cur."!mark_fail"(0)
     lt rx1033_pos, -1, rx1033_done
@@ -13456,14 +14624,16 @@
     jump $I10
   rx1033_done:
     rx1033_cur."!cursor_fail"()
+    if_null rx1033_debug, debug_851
     rx1033_cur."!cursor_debug"("FAIL  ", "infix:sym<**>")
+  debug_851:
     .return (rx1033_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<**>"  :subid("263_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<**>"  :subid("263_1282016529.10767") :method
 .annotate 'line', 447
     $P1035 = self."!PREFIX__!subrule"("O", "**")
     new $P1036, "ResizablePMCArray"
@@ -13473,7 +14643,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<+>"  :subid("264_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<+>"  :subid("264_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1040_tgt
     .local int rx1040_pos
@@ -13481,7 +14651,9 @@
     .local int rx1040_eos
     .local int rx1040_rep
     .local pmc rx1040_cur
+    .local pmc rx1040_debug
     (rx1040_cur, rx1040_pos, rx1040_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1040_debug, rx1040_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1040_cur
     .local pmc match
     .lex "$/", match
@@ -13493,7 +14665,9 @@
     substr rx1040_tgt, rx1040_tgt, rx1040_off
   rx1040_start:
     eq $I10, 1, rx1040_restart
+    if_null rx1040_debug, debug_852
     rx1040_cur."!cursor_debug"("START ", "prefix:sym<+>")
+  debug_852:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1044_done
     goto rxscan1044_scan
@@ -13514,8 +14688,8 @@
     add $I11, rx1040_pos, 1
     gt $I11, rx1040_eos, rx1040_fail
     sub $I11, rx1040_pos, rx1040_off
-    substr $S10, rx1040_tgt, $I11, 1
-    ne $S10, "+", rx1040_fail
+    ord $I11, rx1040_tgt, $I11
+    ne $I11, 43, rx1040_fail
     add rx1040_pos, 1
     set_addr $I10, rxcap_1045_fail
     ($I12, $I11) = rx1040_cur."!mark_peek"($I10)
@@ -13537,11 +14711,15 @@
     rx1040_pos = $P10."pos"()
   # rx pass
     rx1040_cur."!cursor_pass"(rx1040_pos, "prefix:sym<+>")
+    if_null rx1040_debug, debug_853
     rx1040_cur."!cursor_debug"("PASS  ", "prefix:sym<+>", " at pos=", rx1040_pos)
+  debug_853:
     .return (rx1040_cur)
   rx1040_restart:
 .annotate 'line', 447
+    if_null rx1040_debug, debug_854
     rx1040_cur."!cursor_debug"("NEXT ", "prefix:sym<+>")
+  debug_854:
   rx1040_fail:
     (rx1040_rep, rx1040_pos, $I10, $P10) = rx1040_cur."!mark_fail"(0)
     lt rx1040_pos, -1, rx1040_done
@@ -13549,14 +14727,16 @@
     jump $I10
   rx1040_done:
     rx1040_cur."!cursor_fail"()
+    if_null rx1040_debug, debug_855
     rx1040_cur."!cursor_debug"("FAIL  ", "prefix:sym<+>")
+  debug_855:
     .return (rx1040_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<+>"  :subid("265_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<+>"  :subid("265_1282016529.10767") :method
 .annotate 'line', 447
     $P1042 = self."!PREFIX__!subrule"("O", "+")
     new $P1043, "ResizablePMCArray"
@@ -13566,7 +14746,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<~>"  :subid("266_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<~>"  :subid("266_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1047_tgt
     .local int rx1047_pos
@@ -13574,7 +14754,9 @@
     .local int rx1047_eos
     .local int rx1047_rep
     .local pmc rx1047_cur
+    .local pmc rx1047_debug
     (rx1047_cur, rx1047_pos, rx1047_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1047_debug, rx1047_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1047_cur
     .local pmc match
     .lex "$/", match
@@ -13586,7 +14768,9 @@
     substr rx1047_tgt, rx1047_tgt, rx1047_off
   rx1047_start:
     eq $I10, 1, rx1047_restart
+    if_null rx1047_debug, debug_856
     rx1047_cur."!cursor_debug"("START ", "prefix:sym<~>")
+  debug_856:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1051_done
     goto rxscan1051_scan
@@ -13607,8 +14791,8 @@
     add $I11, rx1047_pos, 1
     gt $I11, rx1047_eos, rx1047_fail
     sub $I11, rx1047_pos, rx1047_off
-    substr $S10, rx1047_tgt, $I11, 1
-    ne $S10, "~", rx1047_fail
+    ord $I11, rx1047_tgt, $I11
+    ne $I11, 126, rx1047_fail
     add rx1047_pos, 1
     set_addr $I10, rxcap_1052_fail
     ($I12, $I11) = rx1047_cur."!mark_peek"($I10)
@@ -13630,11 +14814,15 @@
     rx1047_pos = $P10."pos"()
   # rx pass
     rx1047_cur."!cursor_pass"(rx1047_pos, "prefix:sym<~>")
+    if_null rx1047_debug, debug_857
     rx1047_cur."!cursor_debug"("PASS  ", "prefix:sym<~>", " at pos=", rx1047_pos)
+  debug_857:
     .return (rx1047_cur)
   rx1047_restart:
 .annotate 'line', 447
+    if_null rx1047_debug, debug_858
     rx1047_cur."!cursor_debug"("NEXT ", "prefix:sym<~>")
+  debug_858:
   rx1047_fail:
     (rx1047_rep, rx1047_pos, $I10, $P10) = rx1047_cur."!mark_fail"(0)
     lt rx1047_pos, -1, rx1047_done
@@ -13642,14 +14830,16 @@
     jump $I10
   rx1047_done:
     rx1047_cur."!cursor_fail"()
+    if_null rx1047_debug, debug_859
     rx1047_cur."!cursor_debug"("FAIL  ", "prefix:sym<~>")
+  debug_859:
     .return (rx1047_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<~>"  :subid("267_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<~>"  :subid("267_1282016529.10767") :method
 .annotate 'line', 447
     $P1049 = self."!PREFIX__!subrule"("O", "~")
     new $P1050, "ResizablePMCArray"
@@ -13659,7 +14849,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<->"  :subid("268_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<->"  :subid("268_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1054_tgt
     .local int rx1054_pos
@@ -13667,7 +14857,9 @@
     .local int rx1054_eos
     .local int rx1054_rep
     .local pmc rx1054_cur
+    .local pmc rx1054_debug
     (rx1054_cur, rx1054_pos, rx1054_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1054_debug, rx1054_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1054_cur
     .local pmc match
     .lex "$/", match
@@ -13679,7 +14871,9 @@
     substr rx1054_tgt, rx1054_tgt, rx1054_off
   rx1054_start:
     eq $I10, 1, rx1054_restart
+    if_null rx1054_debug, debug_860
     rx1054_cur."!cursor_debug"("START ", "prefix:sym<->")
+  debug_860:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1057_done
     goto rxscan1057_scan
@@ -13700,8 +14894,8 @@
     add $I11, rx1054_pos, 1
     gt $I11, rx1054_eos, rx1054_fail
     sub $I11, rx1054_pos, rx1054_off
-    substr $S10, rx1054_tgt, $I11, 1
-    ne $S10, "-", rx1054_fail
+    ord $I11, rx1054_tgt, $I11
+    ne $I11, 45, rx1054_fail
     add rx1054_pos, 1
     set_addr $I10, rxcap_1058_fail
     ($I12, $I11) = rx1054_cur."!mark_peek"($I10)
@@ -13733,11 +14927,15 @@
     rx1054_pos = $P10."pos"()
   # rx pass
     rx1054_cur."!cursor_pass"(rx1054_pos, "prefix:sym<->")
+    if_null rx1054_debug, debug_861
     rx1054_cur."!cursor_debug"("PASS  ", "prefix:sym<->", " at pos=", rx1054_pos)
+  debug_861:
     .return (rx1054_cur)
   rx1054_restart:
 .annotate 'line', 447
+    if_null rx1054_debug, debug_862
     rx1054_cur."!cursor_debug"("NEXT ", "prefix:sym<->")
+  debug_862:
   rx1054_fail:
     (rx1054_rep, rx1054_pos, $I10, $P10) = rx1054_cur."!mark_fail"(0)
     lt rx1054_pos, -1, rx1054_done
@@ -13745,14 +14943,16 @@
     jump $I10
   rx1054_done:
     rx1054_cur."!cursor_fail"()
+    if_null rx1054_debug, debug_863
     rx1054_cur."!cursor_debug"("FAIL  ", "prefix:sym<->")
+  debug_863:
     .return (rx1054_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<->"  :subid("269_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<->"  :subid("269_1282016529.10767") :method
 .annotate 'line', 447
     new $P1056, "ResizablePMCArray"
     push $P1056, "-"
@@ -13761,7 +14961,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<?>"  :subid("270_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<?>"  :subid("270_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1060_tgt
     .local int rx1060_pos
@@ -13769,7 +14969,9 @@
     .local int rx1060_eos
     .local int rx1060_rep
     .local pmc rx1060_cur
+    .local pmc rx1060_debug
     (rx1060_cur, rx1060_pos, rx1060_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1060_debug, rx1060_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1060_cur
     .local pmc match
     .lex "$/", match
@@ -13781,7 +14983,9 @@
     substr rx1060_tgt, rx1060_tgt, rx1060_off
   rx1060_start:
     eq $I10, 1, rx1060_restart
+    if_null rx1060_debug, debug_864
     rx1060_cur."!cursor_debug"("START ", "prefix:sym<?>")
+  debug_864:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1064_done
     goto rxscan1064_scan
@@ -13802,8 +15006,8 @@
     add $I11, rx1060_pos, 1
     gt $I11, rx1060_eos, rx1060_fail
     sub $I11, rx1060_pos, rx1060_off
-    substr $S10, rx1060_tgt, $I11, 1
-    ne $S10, "?", rx1060_fail
+    ord $I11, rx1060_tgt, $I11
+    ne $I11, 63, rx1060_fail
     add rx1060_pos, 1
     set_addr $I10, rxcap_1065_fail
     ($I12, $I11) = rx1060_cur."!mark_peek"($I10)
@@ -13825,11 +15029,15 @@
     rx1060_pos = $P10."pos"()
   # rx pass
     rx1060_cur."!cursor_pass"(rx1060_pos, "prefix:sym<?>")
+    if_null rx1060_debug, debug_865
     rx1060_cur."!cursor_debug"("PASS  ", "prefix:sym<?>", " at pos=", rx1060_pos)
+  debug_865:
     .return (rx1060_cur)
   rx1060_restart:
 .annotate 'line', 447
+    if_null rx1060_debug, debug_866
     rx1060_cur."!cursor_debug"("NEXT ", "prefix:sym<?>")
+  debug_866:
   rx1060_fail:
     (rx1060_rep, rx1060_pos, $I10, $P10) = rx1060_cur."!mark_fail"(0)
     lt rx1060_pos, -1, rx1060_done
@@ -13837,14 +15045,16 @@
     jump $I10
   rx1060_done:
     rx1060_cur."!cursor_fail"()
+    if_null rx1060_debug, debug_867
     rx1060_cur."!cursor_debug"("FAIL  ", "prefix:sym<?>")
+  debug_867:
     .return (rx1060_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<?>"  :subid("271_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<?>"  :subid("271_1282016529.10767") :method
 .annotate 'line', 447
     $P1062 = self."!PREFIX__!subrule"("O", "?")
     new $P1063, "ResizablePMCArray"
@@ -13854,7 +15064,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<!>"  :subid("272_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<!>"  :subid("272_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1067_tgt
     .local int rx1067_pos
@@ -13862,7 +15072,9 @@
     .local int rx1067_eos
     .local int rx1067_rep
     .local pmc rx1067_cur
+    .local pmc rx1067_debug
     (rx1067_cur, rx1067_pos, rx1067_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1067_debug, rx1067_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1067_cur
     .local pmc match
     .lex "$/", match
@@ -13874,7 +15086,9 @@
     substr rx1067_tgt, rx1067_tgt, rx1067_off
   rx1067_start:
     eq $I10, 1, rx1067_restart
+    if_null rx1067_debug, debug_868
     rx1067_cur."!cursor_debug"("START ", "prefix:sym<!>")
+  debug_868:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1071_done
     goto rxscan1071_scan
@@ -13895,8 +15109,8 @@
     add $I11, rx1067_pos, 1
     gt $I11, rx1067_eos, rx1067_fail
     sub $I11, rx1067_pos, rx1067_off
-    substr $S10, rx1067_tgt, $I11, 1
-    ne $S10, "!", rx1067_fail
+    ord $I11, rx1067_tgt, $I11
+    ne $I11, 33, rx1067_fail
     add rx1067_pos, 1
     set_addr $I10, rxcap_1072_fail
     ($I12, $I11) = rx1067_cur."!mark_peek"($I10)
@@ -13918,11 +15132,15 @@
     rx1067_pos = $P10."pos"()
   # rx pass
     rx1067_cur."!cursor_pass"(rx1067_pos, "prefix:sym<!>")
+    if_null rx1067_debug, debug_869
     rx1067_cur."!cursor_debug"("PASS  ", "prefix:sym<!>", " at pos=", rx1067_pos)
+  debug_869:
     .return (rx1067_cur)
   rx1067_restart:
 .annotate 'line', 447
+    if_null rx1067_debug, debug_870
     rx1067_cur."!cursor_debug"("NEXT ", "prefix:sym<!>")
+  debug_870:
   rx1067_fail:
     (rx1067_rep, rx1067_pos, $I10, $P10) = rx1067_cur."!mark_fail"(0)
     lt rx1067_pos, -1, rx1067_done
@@ -13930,14 +15148,16 @@
     jump $I10
   rx1067_done:
     rx1067_cur."!cursor_fail"()
+    if_null rx1067_debug, debug_871
     rx1067_cur."!cursor_debug"("FAIL  ", "prefix:sym<!>")
+  debug_871:
     .return (rx1067_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<!>"  :subid("273_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<!>"  :subid("273_1282016529.10767") :method
 .annotate 'line', 447
     $P1069 = self."!PREFIX__!subrule"("O", "!")
     new $P1070, "ResizablePMCArray"
@@ -13947,7 +15167,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<|>"  :subid("274_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<|>"  :subid("274_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1074_tgt
     .local int rx1074_pos
@@ -13955,7 +15175,9 @@
     .local int rx1074_eos
     .local int rx1074_rep
     .local pmc rx1074_cur
+    .local pmc rx1074_debug
     (rx1074_cur, rx1074_pos, rx1074_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1074_debug, rx1074_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1074_cur
     .local pmc match
     .lex "$/", match
@@ -13967,7 +15189,9 @@
     substr rx1074_tgt, rx1074_tgt, rx1074_off
   rx1074_start:
     eq $I10, 1, rx1074_restart
+    if_null rx1074_debug, debug_872
     rx1074_cur."!cursor_debug"("START ", "prefix:sym<|>")
+  debug_872:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1078_done
     goto rxscan1078_scan
@@ -13988,8 +15212,8 @@
     add $I11, rx1074_pos, 1
     gt $I11, rx1074_eos, rx1074_fail
     sub $I11, rx1074_pos, rx1074_off
-    substr $S10, rx1074_tgt, $I11, 1
-    ne $S10, "|", rx1074_fail
+    ord $I11, rx1074_tgt, $I11
+    ne $I11, 124, rx1074_fail
     add rx1074_pos, 1
     set_addr $I10, rxcap_1079_fail
     ($I12, $I11) = rx1074_cur."!mark_peek"($I10)
@@ -14011,11 +15235,15 @@
     rx1074_pos = $P10."pos"()
   # rx pass
     rx1074_cur."!cursor_pass"(rx1074_pos, "prefix:sym<|>")
+    if_null rx1074_debug, debug_873
     rx1074_cur."!cursor_debug"("PASS  ", "prefix:sym<|>", " at pos=", rx1074_pos)
+  debug_873:
     .return (rx1074_cur)
   rx1074_restart:
 .annotate 'line', 447
+    if_null rx1074_debug, debug_874
     rx1074_cur."!cursor_debug"("NEXT ", "prefix:sym<|>")
+  debug_874:
   rx1074_fail:
     (rx1074_rep, rx1074_pos, $I10, $P10) = rx1074_cur."!mark_fail"(0)
     lt rx1074_pos, -1, rx1074_done
@@ -14023,14 +15251,16 @@
     jump $I10
   rx1074_done:
     rx1074_cur."!cursor_fail"()
+    if_null rx1074_debug, debug_875
     rx1074_cur."!cursor_debug"("FAIL  ", "prefix:sym<|>")
+  debug_875:
     .return (rx1074_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<|>"  :subid("275_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<|>"  :subid("275_1282016529.10767") :method
 .annotate 'line', 447
     $P1076 = self."!PREFIX__!subrule"("O", "|")
     new $P1077, "ResizablePMCArray"
@@ -14040,7 +15270,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<*>"  :subid("276_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<*>"  :subid("276_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1081_tgt
     .local int rx1081_pos
@@ -14048,7 +15278,9 @@
     .local int rx1081_eos
     .local int rx1081_rep
     .local pmc rx1081_cur
+    .local pmc rx1081_debug
     (rx1081_cur, rx1081_pos, rx1081_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1081_debug, rx1081_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1081_cur
     .local pmc match
     .lex "$/", match
@@ -14060,7 +15292,9 @@
     substr rx1081_tgt, rx1081_tgt, rx1081_off
   rx1081_start:
     eq $I10, 1, rx1081_restart
+    if_null rx1081_debug, debug_876
     rx1081_cur."!cursor_debug"("START ", "infix:sym<*>")
+  debug_876:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1085_done
     goto rxscan1085_scan
@@ -14081,8 +15315,8 @@
     add $I11, rx1081_pos, 1
     gt $I11, rx1081_eos, rx1081_fail
     sub $I11, rx1081_pos, rx1081_off
-    substr $S10, rx1081_tgt, $I11, 1
-    ne $S10, "*", rx1081_fail
+    ord $I11, rx1081_tgt, $I11
+    ne $I11, 42, rx1081_fail
     add rx1081_pos, 1
     set_addr $I10, rxcap_1086_fail
     ($I12, $I11) = rx1081_cur."!mark_peek"($I10)
@@ -14104,11 +15338,15 @@
     rx1081_pos = $P10."pos"()
   # rx pass
     rx1081_cur."!cursor_pass"(rx1081_pos, "infix:sym<*>")
+    if_null rx1081_debug, debug_877
     rx1081_cur."!cursor_debug"("PASS  ", "infix:sym<*>", " at pos=", rx1081_pos)
+  debug_877:
     .return (rx1081_cur)
   rx1081_restart:
 .annotate 'line', 447
+    if_null rx1081_debug, debug_878
     rx1081_cur."!cursor_debug"("NEXT ", "infix:sym<*>")
+  debug_878:
   rx1081_fail:
     (rx1081_rep, rx1081_pos, $I10, $P10) = rx1081_cur."!mark_fail"(0)
     lt rx1081_pos, -1, rx1081_done
@@ -14116,14 +15354,16 @@
     jump $I10
   rx1081_done:
     rx1081_cur."!cursor_fail"()
+    if_null rx1081_debug, debug_879
     rx1081_cur."!cursor_debug"("FAIL  ", "infix:sym<*>")
+  debug_879:
     .return (rx1081_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<*>"  :subid("277_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<*>"  :subid("277_1282016529.10767") :method
 .annotate 'line', 447
     $P1083 = self."!PREFIX__!subrule"("O", "*")
     new $P1084, "ResizablePMCArray"
@@ -14133,7 +15373,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym</>"  :subid("278_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym</>"  :subid("278_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1088_tgt
     .local int rx1088_pos
@@ -14141,7 +15381,9 @@
     .local int rx1088_eos
     .local int rx1088_rep
     .local pmc rx1088_cur
+    .local pmc rx1088_debug
     (rx1088_cur, rx1088_pos, rx1088_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1088_debug, rx1088_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1088_cur
     .local pmc match
     .lex "$/", match
@@ -14153,7 +15395,9 @@
     substr rx1088_tgt, rx1088_tgt, rx1088_off
   rx1088_start:
     eq $I10, 1, rx1088_restart
+    if_null rx1088_debug, debug_880
     rx1088_cur."!cursor_debug"("START ", "infix:sym</>")
+  debug_880:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1092_done
     goto rxscan1092_scan
@@ -14174,8 +15418,8 @@
     add $I11, rx1088_pos, 1
     gt $I11, rx1088_eos, rx1088_fail
     sub $I11, rx1088_pos, rx1088_off
-    substr $S10, rx1088_tgt, $I11, 1
-    ne $S10, "/", rx1088_fail
+    ord $I11, rx1088_tgt, $I11
+    ne $I11, 47, rx1088_fail
     add rx1088_pos, 1
     set_addr $I10, rxcap_1093_fail
     ($I12, $I11) = rx1088_cur."!mark_peek"($I10)
@@ -14197,11 +15441,15 @@
     rx1088_pos = $P10."pos"()
   # rx pass
     rx1088_cur."!cursor_pass"(rx1088_pos, "infix:sym</>")
+    if_null rx1088_debug, debug_881
     rx1088_cur."!cursor_debug"("PASS  ", "infix:sym</>", " at pos=", rx1088_pos)
+  debug_881:
     .return (rx1088_cur)
   rx1088_restart:
 .annotate 'line', 447
+    if_null rx1088_debug, debug_882
     rx1088_cur."!cursor_debug"("NEXT ", "infix:sym</>")
+  debug_882:
   rx1088_fail:
     (rx1088_rep, rx1088_pos, $I10, $P10) = rx1088_cur."!mark_fail"(0)
     lt rx1088_pos, -1, rx1088_done
@@ -14209,14 +15457,16 @@
     jump $I10
   rx1088_done:
     rx1088_cur."!cursor_fail"()
+    if_null rx1088_debug, debug_883
     rx1088_cur."!cursor_debug"("FAIL  ", "infix:sym</>")
+  debug_883:
     .return (rx1088_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym</>"  :subid("279_1280467477.44751") :method
+.sub "!PREFIX__infix:sym</>"  :subid("279_1282016529.10767") :method
 .annotate 'line', 447
     $P1090 = self."!PREFIX__!subrule"("O", "/")
     new $P1091, "ResizablePMCArray"
@@ -14226,7 +15476,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<%>"  :subid("280_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<%>"  :subid("280_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1095_tgt
     .local int rx1095_pos
@@ -14234,7 +15484,9 @@
     .local int rx1095_eos
     .local int rx1095_rep
     .local pmc rx1095_cur
+    .local pmc rx1095_debug
     (rx1095_cur, rx1095_pos, rx1095_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1095_debug, rx1095_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1095_cur
     .local pmc match
     .lex "$/", match
@@ -14246,7 +15498,9 @@
     substr rx1095_tgt, rx1095_tgt, rx1095_off
   rx1095_start:
     eq $I10, 1, rx1095_restart
+    if_null rx1095_debug, debug_884
     rx1095_cur."!cursor_debug"("START ", "infix:sym<%>")
+  debug_884:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1099_done
     goto rxscan1099_scan
@@ -14267,8 +15521,8 @@
     add $I11, rx1095_pos, 1
     gt $I11, rx1095_eos, rx1095_fail
     sub $I11, rx1095_pos, rx1095_off
-    substr $S10, rx1095_tgt, $I11, 1
-    ne $S10, "%", rx1095_fail
+    ord $I11, rx1095_tgt, $I11
+    ne $I11, 37, rx1095_fail
     add rx1095_pos, 1
     set_addr $I10, rxcap_1100_fail
     ($I12, $I11) = rx1095_cur."!mark_peek"($I10)
@@ -14290,11 +15544,15 @@
     rx1095_pos = $P10."pos"()
   # rx pass
     rx1095_cur."!cursor_pass"(rx1095_pos, "infix:sym<%>")
+    if_null rx1095_debug, debug_885
     rx1095_cur."!cursor_debug"("PASS  ", "infix:sym<%>", " at pos=", rx1095_pos)
+  debug_885:
     .return (rx1095_cur)
   rx1095_restart:
 .annotate 'line', 447
+    if_null rx1095_debug, debug_886
     rx1095_cur."!cursor_debug"("NEXT ", "infix:sym<%>")
+  debug_886:
   rx1095_fail:
     (rx1095_rep, rx1095_pos, $I10, $P10) = rx1095_cur."!mark_fail"(0)
     lt rx1095_pos, -1, rx1095_done
@@ -14302,14 +15560,16 @@
     jump $I10
   rx1095_done:
     rx1095_cur."!cursor_fail"()
+    if_null rx1095_debug, debug_887
     rx1095_cur."!cursor_debug"("FAIL  ", "infix:sym<%>")
+  debug_887:
     .return (rx1095_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<%>"  :subid("281_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<%>"  :subid("281_1282016529.10767") :method
 .annotate 'line', 447
     $P1097 = self."!PREFIX__!subrule"("O", "%")
     new $P1098, "ResizablePMCArray"
@@ -14319,7 +15579,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+&>"  :subid("282_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<+&>"  :subid("282_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1102_tgt
     .local int rx1102_pos
@@ -14327,7 +15587,9 @@
     .local int rx1102_eos
     .local int rx1102_rep
     .local pmc rx1102_cur
+    .local pmc rx1102_debug
     (rx1102_cur, rx1102_pos, rx1102_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1102_debug, rx1102_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1102_cur
     .local pmc match
     .lex "$/", match
@@ -14339,7 +15601,9 @@
     substr rx1102_tgt, rx1102_tgt, rx1102_off
   rx1102_start:
     eq $I10, 1, rx1102_restart
+    if_null rx1102_debug, debug_888
     rx1102_cur."!cursor_debug"("START ", "infix:sym<+&>")
+  debug_888:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1106_done
     goto rxscan1106_scan
@@ -14383,11 +15647,15 @@
     rx1102_pos = $P10."pos"()
   # rx pass
     rx1102_cur."!cursor_pass"(rx1102_pos, "infix:sym<+&>")
+    if_null rx1102_debug, debug_889
     rx1102_cur."!cursor_debug"("PASS  ", "infix:sym<+&>", " at pos=", rx1102_pos)
+  debug_889:
     .return (rx1102_cur)
   rx1102_restart:
 .annotate 'line', 447
+    if_null rx1102_debug, debug_890
     rx1102_cur."!cursor_debug"("NEXT ", "infix:sym<+&>")
+  debug_890:
   rx1102_fail:
     (rx1102_rep, rx1102_pos, $I10, $P10) = rx1102_cur."!mark_fail"(0)
     lt rx1102_pos, -1, rx1102_done
@@ -14395,14 +15663,16 @@
     jump $I10
   rx1102_done:
     rx1102_cur."!cursor_fail"()
+    if_null rx1102_debug, debug_891
     rx1102_cur."!cursor_debug"("FAIL  ", "infix:sym<+&>")
+  debug_891:
     .return (rx1102_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+&>"  :subid("283_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<+&>"  :subid("283_1282016529.10767") :method
 .annotate 'line', 447
     $P1104 = self."!PREFIX__!subrule"("O", "+&")
     new $P1105, "ResizablePMCArray"
@@ -14412,7 +15682,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+>"  :subid("284_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<+>"  :subid("284_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1109_tgt
     .local int rx1109_pos
@@ -14420,7 +15690,9 @@
     .local int rx1109_eos
     .local int rx1109_rep
     .local pmc rx1109_cur
+    .local pmc rx1109_debug
     (rx1109_cur, rx1109_pos, rx1109_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1109_debug, rx1109_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1109_cur
     .local pmc match
     .lex "$/", match
@@ -14432,7 +15704,9 @@
     substr rx1109_tgt, rx1109_tgt, rx1109_off
   rx1109_start:
     eq $I10, 1, rx1109_restart
+    if_null rx1109_debug, debug_892
     rx1109_cur."!cursor_debug"("START ", "infix:sym<+>")
+  debug_892:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1113_done
     goto rxscan1113_scan
@@ -14453,8 +15727,8 @@
     add $I11, rx1109_pos, 1
     gt $I11, rx1109_eos, rx1109_fail
     sub $I11, rx1109_pos, rx1109_off
-    substr $S10, rx1109_tgt, $I11, 1
-    ne $S10, "+", rx1109_fail
+    ord $I11, rx1109_tgt, $I11
+    ne $I11, 43, rx1109_fail
     add rx1109_pos, 1
     set_addr $I10, rxcap_1114_fail
     ($I12, $I11) = rx1109_cur."!mark_peek"($I10)
@@ -14476,11 +15750,15 @@
     rx1109_pos = $P10."pos"()
   # rx pass
     rx1109_cur."!cursor_pass"(rx1109_pos, "infix:sym<+>")
+    if_null rx1109_debug, debug_893
     rx1109_cur."!cursor_debug"("PASS  ", "infix:sym<+>", " at pos=", rx1109_pos)
+  debug_893:
     .return (rx1109_cur)
   rx1109_restart:
 .annotate 'line', 447
+    if_null rx1109_debug, debug_894
     rx1109_cur."!cursor_debug"("NEXT ", "infix:sym<+>")
+  debug_894:
   rx1109_fail:
     (rx1109_rep, rx1109_pos, $I10, $P10) = rx1109_cur."!mark_fail"(0)
     lt rx1109_pos, -1, rx1109_done
@@ -14488,14 +15766,16 @@
     jump $I10
   rx1109_done:
     rx1109_cur."!cursor_fail"()
+    if_null rx1109_debug, debug_895
     rx1109_cur."!cursor_debug"("FAIL  ", "infix:sym<+>")
+  debug_895:
     .return (rx1109_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+>"  :subid("285_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<+>"  :subid("285_1282016529.10767") :method
 .annotate 'line', 447
     $P1111 = self."!PREFIX__!subrule"("O", "+")
     new $P1112, "ResizablePMCArray"
@@ -14505,7 +15785,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<->"  :subid("286_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<->"  :subid("286_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1116_tgt
     .local int rx1116_pos
@@ -14513,7 +15793,9 @@
     .local int rx1116_eos
     .local int rx1116_rep
     .local pmc rx1116_cur
+    .local pmc rx1116_debug
     (rx1116_cur, rx1116_pos, rx1116_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1116_debug, rx1116_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1116_cur
     .local pmc match
     .lex "$/", match
@@ -14525,7 +15807,9 @@
     substr rx1116_tgt, rx1116_tgt, rx1116_off
   rx1116_start:
     eq $I10, 1, rx1116_restart
+    if_null rx1116_debug, debug_896
     rx1116_cur."!cursor_debug"("START ", "infix:sym<->")
+  debug_896:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1120_done
     goto rxscan1120_scan
@@ -14546,8 +15830,8 @@
     add $I11, rx1116_pos, 1
     gt $I11, rx1116_eos, rx1116_fail
     sub $I11, rx1116_pos, rx1116_off
-    substr $S10, rx1116_tgt, $I11, 1
-    ne $S10, "-", rx1116_fail
+    ord $I11, rx1116_tgt, $I11
+    ne $I11, 45, rx1116_fail
     add rx1116_pos, 1
     set_addr $I10, rxcap_1121_fail
     ($I12, $I11) = rx1116_cur."!mark_peek"($I10)
@@ -14569,11 +15853,15 @@
     rx1116_pos = $P10."pos"()
   # rx pass
     rx1116_cur."!cursor_pass"(rx1116_pos, "infix:sym<->")
+    if_null rx1116_debug, debug_897
     rx1116_cur."!cursor_debug"("PASS  ", "infix:sym<->", " at pos=", rx1116_pos)
+  debug_897:
     .return (rx1116_cur)
   rx1116_restart:
 .annotate 'line', 447
+    if_null rx1116_debug, debug_898
     rx1116_cur."!cursor_debug"("NEXT ", "infix:sym<->")
+  debug_898:
   rx1116_fail:
     (rx1116_rep, rx1116_pos, $I10, $P10) = rx1116_cur."!mark_fail"(0)
     lt rx1116_pos, -1, rx1116_done
@@ -14581,14 +15869,16 @@
     jump $I10
   rx1116_done:
     rx1116_cur."!cursor_fail"()
+    if_null rx1116_debug, debug_899
     rx1116_cur."!cursor_debug"("FAIL  ", "infix:sym<->")
+  debug_899:
     .return (rx1116_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<->"  :subid("287_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<->"  :subid("287_1282016529.10767") :method
 .annotate 'line', 447
     $P1118 = self."!PREFIX__!subrule"("O", "-")
     new $P1119, "ResizablePMCArray"
@@ -14598,7 +15888,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+|>"  :subid("288_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<+|>"  :subid("288_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1123_tgt
     .local int rx1123_pos
@@ -14606,7 +15896,9 @@
     .local int rx1123_eos
     .local int rx1123_rep
     .local pmc rx1123_cur
+    .local pmc rx1123_debug
     (rx1123_cur, rx1123_pos, rx1123_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1123_debug, rx1123_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1123_cur
     .local pmc match
     .lex "$/", match
@@ -14618,7 +15910,9 @@
     substr rx1123_tgt, rx1123_tgt, rx1123_off
   rx1123_start:
     eq $I10, 1, rx1123_restart
+    if_null rx1123_debug, debug_900
     rx1123_cur."!cursor_debug"("START ", "infix:sym<+|>")
+  debug_900:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1127_done
     goto rxscan1127_scan
@@ -14662,11 +15956,15 @@
     rx1123_pos = $P10."pos"()
   # rx pass
     rx1123_cur."!cursor_pass"(rx1123_pos, "infix:sym<+|>")
+    if_null rx1123_debug, debug_901
     rx1123_cur."!cursor_debug"("PASS  ", "infix:sym<+|>", " at pos=", rx1123_pos)
+  debug_901:
     .return (rx1123_cur)
   rx1123_restart:
 .annotate 'line', 447
+    if_null rx1123_debug, debug_902
     rx1123_cur."!cursor_debug"("NEXT ", "infix:sym<+|>")
+  debug_902:
   rx1123_fail:
     (rx1123_rep, rx1123_pos, $I10, $P10) = rx1123_cur."!mark_fail"(0)
     lt rx1123_pos, -1, rx1123_done
@@ -14674,14 +15972,16 @@
     jump $I10
   rx1123_done:
     rx1123_cur."!cursor_fail"()
+    if_null rx1123_debug, debug_903
     rx1123_cur."!cursor_debug"("FAIL  ", "infix:sym<+|>")
+  debug_903:
     .return (rx1123_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+|>"  :subid("289_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<+|>"  :subid("289_1282016529.10767") :method
 .annotate 'line', 447
     $P1125 = self."!PREFIX__!subrule"("O", "+|")
     new $P1126, "ResizablePMCArray"
@@ -14691,7 +15991,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+^>"  :subid("290_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<+^>"  :subid("290_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1130_tgt
     .local int rx1130_pos
@@ -14699,7 +15999,9 @@
     .local int rx1130_eos
     .local int rx1130_rep
     .local pmc rx1130_cur
+    .local pmc rx1130_debug
     (rx1130_cur, rx1130_pos, rx1130_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1130_debug, rx1130_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1130_cur
     .local pmc match
     .lex "$/", match
@@ -14711,7 +16013,9 @@
     substr rx1130_tgt, rx1130_tgt, rx1130_off
   rx1130_start:
     eq $I10, 1, rx1130_restart
+    if_null rx1130_debug, debug_904
     rx1130_cur."!cursor_debug"("START ", "infix:sym<+^>")
+  debug_904:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1134_done
     goto rxscan1134_scan
@@ -14755,11 +16059,15 @@
     rx1130_pos = $P10."pos"()
   # rx pass
     rx1130_cur."!cursor_pass"(rx1130_pos, "infix:sym<+^>")
+    if_null rx1130_debug, debug_905
     rx1130_cur."!cursor_debug"("PASS  ", "infix:sym<+^>", " at pos=", rx1130_pos)
+  debug_905:
     .return (rx1130_cur)
   rx1130_restart:
 .annotate 'line', 447
+    if_null rx1130_debug, debug_906
     rx1130_cur."!cursor_debug"("NEXT ", "infix:sym<+^>")
+  debug_906:
   rx1130_fail:
     (rx1130_rep, rx1130_pos, $I10, $P10) = rx1130_cur."!mark_fail"(0)
     lt rx1130_pos, -1, rx1130_done
@@ -14767,14 +16075,16 @@
     jump $I10
   rx1130_done:
     rx1130_cur."!cursor_fail"()
+    if_null rx1130_debug, debug_907
     rx1130_cur."!cursor_debug"("FAIL  ", "infix:sym<+^>")
+  debug_907:
     .return (rx1130_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+^>"  :subid("291_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<+^>"  :subid("291_1282016529.10767") :method
 .annotate 'line', 447
     $P1132 = self."!PREFIX__!subrule"("O", "+^")
     new $P1133, "ResizablePMCArray"
@@ -14784,7 +16094,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~>"  :subid("292_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<~>"  :subid("292_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1137_tgt
     .local int rx1137_pos
@@ -14792,7 +16102,9 @@
     .local int rx1137_eos
     .local int rx1137_rep
     .local pmc rx1137_cur
+    .local pmc rx1137_debug
     (rx1137_cur, rx1137_pos, rx1137_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1137_debug, rx1137_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1137_cur
     .local pmc match
     .lex "$/", match
@@ -14804,7 +16116,9 @@
     substr rx1137_tgt, rx1137_tgt, rx1137_off
   rx1137_start:
     eq $I10, 1, rx1137_restart
+    if_null rx1137_debug, debug_908
     rx1137_cur."!cursor_debug"("START ", "infix:sym<~>")
+  debug_908:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1141_done
     goto rxscan1141_scan
@@ -14825,8 +16139,8 @@
     add $I11, rx1137_pos, 1
     gt $I11, rx1137_eos, rx1137_fail
     sub $I11, rx1137_pos, rx1137_off
-    substr $S10, rx1137_tgt, $I11, 1
-    ne $S10, "~", rx1137_fail
+    ord $I11, rx1137_tgt, $I11
+    ne $I11, 126, rx1137_fail
     add rx1137_pos, 1
     set_addr $I10, rxcap_1142_fail
     ($I12, $I11) = rx1137_cur."!mark_peek"($I10)
@@ -14848,11 +16162,15 @@
     rx1137_pos = $P10."pos"()
   # rx pass
     rx1137_cur."!cursor_pass"(rx1137_pos, "infix:sym<~>")
+    if_null rx1137_debug, debug_909
     rx1137_cur."!cursor_debug"("PASS  ", "infix:sym<~>", " at pos=", rx1137_pos)
+  debug_909:
     .return (rx1137_cur)
   rx1137_restart:
 .annotate 'line', 447
+    if_null rx1137_debug, debug_910
     rx1137_cur."!cursor_debug"("NEXT ", "infix:sym<~>")
+  debug_910:
   rx1137_fail:
     (rx1137_rep, rx1137_pos, $I10, $P10) = rx1137_cur."!mark_fail"(0)
     lt rx1137_pos, -1, rx1137_done
@@ -14860,14 +16178,16 @@
     jump $I10
   rx1137_done:
     rx1137_cur."!cursor_fail"()
+    if_null rx1137_debug, debug_911
     rx1137_cur."!cursor_debug"("FAIL  ", "infix:sym<~>")
+  debug_911:
     .return (rx1137_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~>"  :subid("293_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<~>"  :subid("293_1282016529.10767") :method
 .annotate 'line', 447
     $P1139 = self."!PREFIX__!subrule"("O", "~")
     new $P1140, "ResizablePMCArray"
@@ -14877,7 +16197,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<==>"  :subid("294_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<==>"  :subid("294_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1144_tgt
     .local int rx1144_pos
@@ -14885,7 +16205,9 @@
     .local int rx1144_eos
     .local int rx1144_rep
     .local pmc rx1144_cur
+    .local pmc rx1144_debug
     (rx1144_cur, rx1144_pos, rx1144_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1144_debug, rx1144_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1144_cur
     .local pmc match
     .lex "$/", match
@@ -14897,7 +16219,9 @@
     substr rx1144_tgt, rx1144_tgt, rx1144_off
   rx1144_start:
     eq $I10, 1, rx1144_restart
+    if_null rx1144_debug, debug_912
     rx1144_cur."!cursor_debug"("START ", "infix:sym<==>")
+  debug_912:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1148_done
     goto rxscan1148_scan
@@ -14941,11 +16265,15 @@
     rx1144_pos = $P10."pos"()
   # rx pass
     rx1144_cur."!cursor_pass"(rx1144_pos, "infix:sym<==>")
+    if_null rx1144_debug, debug_913
     rx1144_cur."!cursor_debug"("PASS  ", "infix:sym<==>", " at pos=", rx1144_pos)
+  debug_913:
     .return (rx1144_cur)
   rx1144_restart:
 .annotate 'line', 447
+    if_null rx1144_debug, debug_914
     rx1144_cur."!cursor_debug"("NEXT ", "infix:sym<==>")
+  debug_914:
   rx1144_fail:
     (rx1144_rep, rx1144_pos, $I10, $P10) = rx1144_cur."!mark_fail"(0)
     lt rx1144_pos, -1, rx1144_done
@@ -14953,14 +16281,16 @@
     jump $I10
   rx1144_done:
     rx1144_cur."!cursor_fail"()
+    if_null rx1144_debug, debug_915
     rx1144_cur."!cursor_debug"("FAIL  ", "infix:sym<==>")
+  debug_915:
     .return (rx1144_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<==>"  :subid("295_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<==>"  :subid("295_1282016529.10767") :method
 .annotate 'line', 447
     $P1146 = self."!PREFIX__!subrule"("O", "==")
     new $P1147, "ResizablePMCArray"
@@ -14970,7 +16300,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<!=>"  :subid("296_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<!=>"  :subid("296_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1151_tgt
     .local int rx1151_pos
@@ -14978,7 +16308,9 @@
     .local int rx1151_eos
     .local int rx1151_rep
     .local pmc rx1151_cur
+    .local pmc rx1151_debug
     (rx1151_cur, rx1151_pos, rx1151_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1151_debug, rx1151_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1151_cur
     .local pmc match
     .lex "$/", match
@@ -14990,7 +16322,9 @@
     substr rx1151_tgt, rx1151_tgt, rx1151_off
   rx1151_start:
     eq $I10, 1, rx1151_restart
+    if_null rx1151_debug, debug_916
     rx1151_cur."!cursor_debug"("START ", "infix:sym<!=>")
+  debug_916:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1155_done
     goto rxscan1155_scan
@@ -15034,11 +16368,15 @@
     rx1151_pos = $P10."pos"()
   # rx pass
     rx1151_cur."!cursor_pass"(rx1151_pos, "infix:sym<!=>")
+    if_null rx1151_debug, debug_917
     rx1151_cur."!cursor_debug"("PASS  ", "infix:sym<!=>", " at pos=", rx1151_pos)
+  debug_917:
     .return (rx1151_cur)
   rx1151_restart:
 .annotate 'line', 447
+    if_null rx1151_debug, debug_918
     rx1151_cur."!cursor_debug"("NEXT ", "infix:sym<!=>")
+  debug_918:
   rx1151_fail:
     (rx1151_rep, rx1151_pos, $I10, $P10) = rx1151_cur."!mark_fail"(0)
     lt rx1151_pos, -1, rx1151_done
@@ -15046,14 +16384,16 @@
     jump $I10
   rx1151_done:
     rx1151_cur."!cursor_fail"()
+    if_null rx1151_debug, debug_919
     rx1151_cur."!cursor_debug"("FAIL  ", "infix:sym<!=>")
+  debug_919:
     .return (rx1151_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<!=>"  :subid("297_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<!=>"  :subid("297_1282016529.10767") :method
 .annotate 'line', 447
     $P1153 = self."!PREFIX__!subrule"("O", "!=")
     new $P1154, "ResizablePMCArray"
@@ -15063,7 +16403,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<=>"  :subid("298_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<<=>"  :subid("298_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1158_tgt
     .local int rx1158_pos
@@ -15071,7 +16411,9 @@
     .local int rx1158_eos
     .local int rx1158_rep
     .local pmc rx1158_cur
+    .local pmc rx1158_debug
     (rx1158_cur, rx1158_pos, rx1158_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1158_debug, rx1158_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1158_cur
     .local pmc match
     .lex "$/", match
@@ -15083,7 +16425,9 @@
     substr rx1158_tgt, rx1158_tgt, rx1158_off
   rx1158_start:
     eq $I10, 1, rx1158_restart
+    if_null rx1158_debug, debug_920
     rx1158_cur."!cursor_debug"("START ", "infix:sym<<=>")
+  debug_920:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1162_done
     goto rxscan1162_scan
@@ -15127,11 +16471,15 @@
     rx1158_pos = $P10."pos"()
   # rx pass
     rx1158_cur."!cursor_pass"(rx1158_pos, "infix:sym<<=>")
+    if_null rx1158_debug, debug_921
     rx1158_cur."!cursor_debug"("PASS  ", "infix:sym<<=>", " at pos=", rx1158_pos)
+  debug_921:
     .return (rx1158_cur)
   rx1158_restart:
 .annotate 'line', 447
+    if_null rx1158_debug, debug_922
     rx1158_cur."!cursor_debug"("NEXT ", "infix:sym<<=>")
+  debug_922:
   rx1158_fail:
     (rx1158_rep, rx1158_pos, $I10, $P10) = rx1158_cur."!mark_fail"(0)
     lt rx1158_pos, -1, rx1158_done
@@ -15139,14 +16487,16 @@
     jump $I10
   rx1158_done:
     rx1158_cur."!cursor_fail"()
+    if_null rx1158_debug, debug_923
     rx1158_cur."!cursor_debug"("FAIL  ", "infix:sym<<=>")
+  debug_923:
     .return (rx1158_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<=>"  :subid("299_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<<=>"  :subid("299_1282016529.10767") :method
 .annotate 'line', 447
     $P1160 = self."!PREFIX__!subrule"("O", "<=")
     new $P1161, "ResizablePMCArray"
@@ -15156,7 +16506,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>=>"  :subid("300_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<>=>"  :subid("300_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1165_tgt
     .local int rx1165_pos
@@ -15164,7 +16514,9 @@
     .local int rx1165_eos
     .local int rx1165_rep
     .local pmc rx1165_cur
+    .local pmc rx1165_debug
     (rx1165_cur, rx1165_pos, rx1165_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1165_debug, rx1165_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1165_cur
     .local pmc match
     .lex "$/", match
@@ -15176,7 +16528,9 @@
     substr rx1165_tgt, rx1165_tgt, rx1165_off
   rx1165_start:
     eq $I10, 1, rx1165_restart
+    if_null rx1165_debug, debug_924
     rx1165_cur."!cursor_debug"("START ", "infix:sym<>=>")
+  debug_924:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1169_done
     goto rxscan1169_scan
@@ -15220,11 +16574,15 @@
     rx1165_pos = $P10."pos"()
   # rx pass
     rx1165_cur."!cursor_pass"(rx1165_pos, "infix:sym<>=>")
+    if_null rx1165_debug, debug_925
     rx1165_cur."!cursor_debug"("PASS  ", "infix:sym<>=>", " at pos=", rx1165_pos)
+  debug_925:
     .return (rx1165_cur)
   rx1165_restart:
 .annotate 'line', 447
+    if_null rx1165_debug, debug_926
     rx1165_cur."!cursor_debug"("NEXT ", "infix:sym<>=>")
+  debug_926:
   rx1165_fail:
     (rx1165_rep, rx1165_pos, $I10, $P10) = rx1165_cur."!mark_fail"(0)
     lt rx1165_pos, -1, rx1165_done
@@ -15232,14 +16590,16 @@
     jump $I10
   rx1165_done:
     rx1165_cur."!cursor_fail"()
+    if_null rx1165_debug, debug_927
     rx1165_cur."!cursor_debug"("FAIL  ", "infix:sym<>=>")
+  debug_927:
     .return (rx1165_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>=>"  :subid("301_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<>=>"  :subid("301_1282016529.10767") :method
 .annotate 'line', 447
     $P1167 = self."!PREFIX__!subrule"("O", ">=")
     new $P1168, "ResizablePMCArray"
@@ -15249,7 +16609,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<>"  :subid("302_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<<>"  :subid("302_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1172_tgt
     .local int rx1172_pos
@@ -15257,7 +16617,9 @@
     .local int rx1172_eos
     .local int rx1172_rep
     .local pmc rx1172_cur
+    .local pmc rx1172_debug
     (rx1172_cur, rx1172_pos, rx1172_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1172_debug, rx1172_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1172_cur
     .local pmc match
     .lex "$/", match
@@ -15269,7 +16631,9 @@
     substr rx1172_tgt, rx1172_tgt, rx1172_off
   rx1172_start:
     eq $I10, 1, rx1172_restart
+    if_null rx1172_debug, debug_928
     rx1172_cur."!cursor_debug"("START ", "infix:sym<<>")
+  debug_928:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1176_done
     goto rxscan1176_scan
@@ -15290,8 +16654,8 @@
     add $I11, rx1172_pos, 1
     gt $I11, rx1172_eos, rx1172_fail
     sub $I11, rx1172_pos, rx1172_off
-    substr $S10, rx1172_tgt, $I11, 1
-    ne $S10, "<", rx1172_fail
+    ord $I11, rx1172_tgt, $I11
+    ne $I11, 60, rx1172_fail
     add rx1172_pos, 1
     set_addr $I10, rxcap_1177_fail
     ($I12, $I11) = rx1172_cur."!mark_peek"($I10)
@@ -15313,11 +16677,15 @@
     rx1172_pos = $P10."pos"()
   # rx pass
     rx1172_cur."!cursor_pass"(rx1172_pos, "infix:sym<<>")
+    if_null rx1172_debug, debug_929
     rx1172_cur."!cursor_debug"("PASS  ", "infix:sym<<>", " at pos=", rx1172_pos)
+  debug_929:
     .return (rx1172_cur)
   rx1172_restart:
 .annotate 'line', 447
+    if_null rx1172_debug, debug_930
     rx1172_cur."!cursor_debug"("NEXT ", "infix:sym<<>")
+  debug_930:
   rx1172_fail:
     (rx1172_rep, rx1172_pos, $I10, $P10) = rx1172_cur."!mark_fail"(0)
     lt rx1172_pos, -1, rx1172_done
@@ -15325,14 +16693,16 @@
     jump $I10
   rx1172_done:
     rx1172_cur."!cursor_fail"()
+    if_null rx1172_debug, debug_931
     rx1172_cur."!cursor_debug"("FAIL  ", "infix:sym<<>")
+  debug_931:
     .return (rx1172_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<>"  :subid("303_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<<>"  :subid("303_1282016529.10767") :method
 .annotate 'line', 447
     $P1174 = self."!PREFIX__!subrule"("O", "<")
     new $P1175, "ResizablePMCArray"
@@ -15342,7 +16712,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>>"  :subid("304_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<>>"  :subid("304_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1179_tgt
     .local int rx1179_pos
@@ -15350,7 +16720,9 @@
     .local int rx1179_eos
     .local int rx1179_rep
     .local pmc rx1179_cur
+    .local pmc rx1179_debug
     (rx1179_cur, rx1179_pos, rx1179_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1179_debug, rx1179_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1179_cur
     .local pmc match
     .lex "$/", match
@@ -15362,7 +16734,9 @@
     substr rx1179_tgt, rx1179_tgt, rx1179_off
   rx1179_start:
     eq $I10, 1, rx1179_restart
+    if_null rx1179_debug, debug_932
     rx1179_cur."!cursor_debug"("START ", "infix:sym<>>")
+  debug_932:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1183_done
     goto rxscan1183_scan
@@ -15383,8 +16757,8 @@
     add $I11, rx1179_pos, 1
     gt $I11, rx1179_eos, rx1179_fail
     sub $I11, rx1179_pos, rx1179_off
-    substr $S10, rx1179_tgt, $I11, 1
-    ne $S10, ">", rx1179_fail
+    ord $I11, rx1179_tgt, $I11
+    ne $I11, 62, rx1179_fail
     add rx1179_pos, 1
     set_addr $I10, rxcap_1184_fail
     ($I12, $I11) = rx1179_cur."!mark_peek"($I10)
@@ -15406,11 +16780,15 @@
     rx1179_pos = $P10."pos"()
   # rx pass
     rx1179_cur."!cursor_pass"(rx1179_pos, "infix:sym<>>")
+    if_null rx1179_debug, debug_933
     rx1179_cur."!cursor_debug"("PASS  ", "infix:sym<>>", " at pos=", rx1179_pos)
+  debug_933:
     .return (rx1179_cur)
   rx1179_restart:
 .annotate 'line', 447
+    if_null rx1179_debug, debug_934
     rx1179_cur."!cursor_debug"("NEXT ", "infix:sym<>>")
+  debug_934:
   rx1179_fail:
     (rx1179_rep, rx1179_pos, $I10, $P10) = rx1179_cur."!mark_fail"(0)
     lt rx1179_pos, -1, rx1179_done
@@ -15418,14 +16796,16 @@
     jump $I10
   rx1179_done:
     rx1179_cur."!cursor_fail"()
+    if_null rx1179_debug, debug_935
     rx1179_cur."!cursor_debug"("FAIL  ", "infix:sym<>>")
+  debug_935:
     .return (rx1179_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>>"  :subid("305_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<>>"  :subid("305_1282016529.10767") :method
 .annotate 'line', 447
     $P1181 = self."!PREFIX__!subrule"("O", ">")
     new $P1182, "ResizablePMCArray"
@@ -15435,7 +16815,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<eq>"  :subid("306_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<eq>"  :subid("306_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1186_tgt
     .local int rx1186_pos
@@ -15443,7 +16823,9 @@
     .local int rx1186_eos
     .local int rx1186_rep
     .local pmc rx1186_cur
+    .local pmc rx1186_debug
     (rx1186_cur, rx1186_pos, rx1186_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1186_debug, rx1186_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1186_cur
     .local pmc match
     .lex "$/", match
@@ -15455,7 +16837,9 @@
     substr rx1186_tgt, rx1186_tgt, rx1186_off
   rx1186_start:
     eq $I10, 1, rx1186_restart
+    if_null rx1186_debug, debug_936
     rx1186_cur."!cursor_debug"("START ", "infix:sym<eq>")
+  debug_936:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1190_done
     goto rxscan1190_scan
@@ -15499,11 +16883,15 @@
     rx1186_pos = $P10."pos"()
   # rx pass
     rx1186_cur."!cursor_pass"(rx1186_pos, "infix:sym<eq>")
+    if_null rx1186_debug, debug_937
     rx1186_cur."!cursor_debug"("PASS  ", "infix:sym<eq>", " at pos=", rx1186_pos)
+  debug_937:
     .return (rx1186_cur)
   rx1186_restart:
 .annotate 'line', 447
+    if_null rx1186_debug, debug_938
     rx1186_cur."!cursor_debug"("NEXT ", "infix:sym<eq>")
+  debug_938:
   rx1186_fail:
     (rx1186_rep, rx1186_pos, $I10, $P10) = rx1186_cur."!mark_fail"(0)
     lt rx1186_pos, -1, rx1186_done
@@ -15511,14 +16899,16 @@
     jump $I10
   rx1186_done:
     rx1186_cur."!cursor_fail"()
+    if_null rx1186_debug, debug_939
     rx1186_cur."!cursor_debug"("FAIL  ", "infix:sym<eq>")
+  debug_939:
     .return (rx1186_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<eq>"  :subid("307_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<eq>"  :subid("307_1282016529.10767") :method
 .annotate 'line', 447
     $P1188 = self."!PREFIX__!subrule"("O", "eq")
     new $P1189, "ResizablePMCArray"
@@ -15528,7 +16918,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ne>"  :subid("308_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<ne>"  :subid("308_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1193_tgt
     .local int rx1193_pos
@@ -15536,7 +16926,9 @@
     .local int rx1193_eos
     .local int rx1193_rep
     .local pmc rx1193_cur
+    .local pmc rx1193_debug
     (rx1193_cur, rx1193_pos, rx1193_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1193_debug, rx1193_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1193_cur
     .local pmc match
     .lex "$/", match
@@ -15548,7 +16940,9 @@
     substr rx1193_tgt, rx1193_tgt, rx1193_off
   rx1193_start:
     eq $I10, 1, rx1193_restart
+    if_null rx1193_debug, debug_940
     rx1193_cur."!cursor_debug"("START ", "infix:sym<ne>")
+  debug_940:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1197_done
     goto rxscan1197_scan
@@ -15592,11 +16986,15 @@
     rx1193_pos = $P10."pos"()
   # rx pass
     rx1193_cur."!cursor_pass"(rx1193_pos, "infix:sym<ne>")
+    if_null rx1193_debug, debug_941
     rx1193_cur."!cursor_debug"("PASS  ", "infix:sym<ne>", " at pos=", rx1193_pos)
+  debug_941:
     .return (rx1193_cur)
   rx1193_restart:
 .annotate 'line', 447
+    if_null rx1193_debug, debug_942
     rx1193_cur."!cursor_debug"("NEXT ", "infix:sym<ne>")
+  debug_942:
   rx1193_fail:
     (rx1193_rep, rx1193_pos, $I10, $P10) = rx1193_cur."!mark_fail"(0)
     lt rx1193_pos, -1, rx1193_done
@@ -15604,14 +17002,16 @@
     jump $I10
   rx1193_done:
     rx1193_cur."!cursor_fail"()
+    if_null rx1193_debug, debug_943
     rx1193_cur."!cursor_debug"("FAIL  ", "infix:sym<ne>")
+  debug_943:
     .return (rx1193_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ne>"  :subid("309_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<ne>"  :subid("309_1282016529.10767") :method
 .annotate 'line', 447
     $P1195 = self."!PREFIX__!subrule"("O", "ne")
     new $P1196, "ResizablePMCArray"
@@ -15621,7 +17021,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<le>"  :subid("310_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<le>"  :subid("310_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1200_tgt
     .local int rx1200_pos
@@ -15629,7 +17029,9 @@
     .local int rx1200_eos
     .local int rx1200_rep
     .local pmc rx1200_cur
+    .local pmc rx1200_debug
     (rx1200_cur, rx1200_pos, rx1200_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1200_debug, rx1200_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1200_cur
     .local pmc match
     .lex "$/", match
@@ -15641,7 +17043,9 @@
     substr rx1200_tgt, rx1200_tgt, rx1200_off
   rx1200_start:
     eq $I10, 1, rx1200_restart
+    if_null rx1200_debug, debug_944
     rx1200_cur."!cursor_debug"("START ", "infix:sym<le>")
+  debug_944:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1204_done
     goto rxscan1204_scan
@@ -15685,11 +17089,15 @@
     rx1200_pos = $P10."pos"()
   # rx pass
     rx1200_cur."!cursor_pass"(rx1200_pos, "infix:sym<le>")
+    if_null rx1200_debug, debug_945
     rx1200_cur."!cursor_debug"("PASS  ", "infix:sym<le>", " at pos=", rx1200_pos)
+  debug_945:
     .return (rx1200_cur)
   rx1200_restart:
 .annotate 'line', 447
+    if_null rx1200_debug, debug_946
     rx1200_cur."!cursor_debug"("NEXT ", "infix:sym<le>")
+  debug_946:
   rx1200_fail:
     (rx1200_rep, rx1200_pos, $I10, $P10) = rx1200_cur."!mark_fail"(0)
     lt rx1200_pos, -1, rx1200_done
@@ -15697,14 +17105,16 @@
     jump $I10
   rx1200_done:
     rx1200_cur."!cursor_fail"()
+    if_null rx1200_debug, debug_947
     rx1200_cur."!cursor_debug"("FAIL  ", "infix:sym<le>")
+  debug_947:
     .return (rx1200_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<le>"  :subid("311_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<le>"  :subid("311_1282016529.10767") :method
 .annotate 'line', 447
     $P1202 = self."!PREFIX__!subrule"("O", "le")
     new $P1203, "ResizablePMCArray"
@@ -15714,7 +17124,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ge>"  :subid("312_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<ge>"  :subid("312_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1207_tgt
     .local int rx1207_pos
@@ -15722,7 +17132,9 @@
     .local int rx1207_eos
     .local int rx1207_rep
     .local pmc rx1207_cur
+    .local pmc rx1207_debug
     (rx1207_cur, rx1207_pos, rx1207_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1207_debug, rx1207_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1207_cur
     .local pmc match
     .lex "$/", match
@@ -15734,7 +17146,9 @@
     substr rx1207_tgt, rx1207_tgt, rx1207_off
   rx1207_start:
     eq $I10, 1, rx1207_restart
+    if_null rx1207_debug, debug_948
     rx1207_cur."!cursor_debug"("START ", "infix:sym<ge>")
+  debug_948:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1211_done
     goto rxscan1211_scan
@@ -15778,11 +17192,15 @@
     rx1207_pos = $P10."pos"()
   # rx pass
     rx1207_cur."!cursor_pass"(rx1207_pos, "infix:sym<ge>")
+    if_null rx1207_debug, debug_949
     rx1207_cur."!cursor_debug"("PASS  ", "infix:sym<ge>", " at pos=", rx1207_pos)
+  debug_949:
     .return (rx1207_cur)
   rx1207_restart:
 .annotate 'line', 447
+    if_null rx1207_debug, debug_950
     rx1207_cur."!cursor_debug"("NEXT ", "infix:sym<ge>")
+  debug_950:
   rx1207_fail:
     (rx1207_rep, rx1207_pos, $I10, $P10) = rx1207_cur."!mark_fail"(0)
     lt rx1207_pos, -1, rx1207_done
@@ -15790,14 +17208,16 @@
     jump $I10
   rx1207_done:
     rx1207_cur."!cursor_fail"()
+    if_null rx1207_debug, debug_951
     rx1207_cur."!cursor_debug"("FAIL  ", "infix:sym<ge>")
+  debug_951:
     .return (rx1207_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ge>"  :subid("313_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<ge>"  :subid("313_1282016529.10767") :method
 .annotate 'line', 447
     $P1209 = self."!PREFIX__!subrule"("O", "ge")
     new $P1210, "ResizablePMCArray"
@@ -15807,7 +17227,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<lt>"  :subid("314_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<lt>"  :subid("314_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1214_tgt
     .local int rx1214_pos
@@ -15815,7 +17235,9 @@
     .local int rx1214_eos
     .local int rx1214_rep
     .local pmc rx1214_cur
+    .local pmc rx1214_debug
     (rx1214_cur, rx1214_pos, rx1214_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1214_debug, rx1214_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1214_cur
     .local pmc match
     .lex "$/", match
@@ -15827,7 +17249,9 @@
     substr rx1214_tgt, rx1214_tgt, rx1214_off
   rx1214_start:
     eq $I10, 1, rx1214_restart
+    if_null rx1214_debug, debug_952
     rx1214_cur."!cursor_debug"("START ", "infix:sym<lt>")
+  debug_952:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1218_done
     goto rxscan1218_scan
@@ -15871,11 +17295,15 @@
     rx1214_pos = $P10."pos"()
   # rx pass
     rx1214_cur."!cursor_pass"(rx1214_pos, "infix:sym<lt>")
+    if_null rx1214_debug, debug_953
     rx1214_cur."!cursor_debug"("PASS  ", "infix:sym<lt>", " at pos=", rx1214_pos)
+  debug_953:
     .return (rx1214_cur)
   rx1214_restart:
 .annotate 'line', 447
+    if_null rx1214_debug, debug_954
     rx1214_cur."!cursor_debug"("NEXT ", "infix:sym<lt>")
+  debug_954:
   rx1214_fail:
     (rx1214_rep, rx1214_pos, $I10, $P10) = rx1214_cur."!mark_fail"(0)
     lt rx1214_pos, -1, rx1214_done
@@ -15883,14 +17311,16 @@
     jump $I10
   rx1214_done:
     rx1214_cur."!cursor_fail"()
+    if_null rx1214_debug, debug_955
     rx1214_cur."!cursor_debug"("FAIL  ", "infix:sym<lt>")
+  debug_955:
     .return (rx1214_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<lt>"  :subid("315_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<lt>"  :subid("315_1282016529.10767") :method
 .annotate 'line', 447
     $P1216 = self."!PREFIX__!subrule"("O", "lt")
     new $P1217, "ResizablePMCArray"
@@ -15900,7 +17330,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<gt>"  :subid("316_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<gt>"  :subid("316_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1221_tgt
     .local int rx1221_pos
@@ -15908,7 +17338,9 @@
     .local int rx1221_eos
     .local int rx1221_rep
     .local pmc rx1221_cur
+    .local pmc rx1221_debug
     (rx1221_cur, rx1221_pos, rx1221_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1221_debug, rx1221_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1221_cur
     .local pmc match
     .lex "$/", match
@@ -15920,7 +17352,9 @@
     substr rx1221_tgt, rx1221_tgt, rx1221_off
   rx1221_start:
     eq $I10, 1, rx1221_restart
+    if_null rx1221_debug, debug_956
     rx1221_cur."!cursor_debug"("START ", "infix:sym<gt>")
+  debug_956:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1225_done
     goto rxscan1225_scan
@@ -15964,11 +17398,15 @@
     rx1221_pos = $P10."pos"()
   # rx pass
     rx1221_cur."!cursor_pass"(rx1221_pos, "infix:sym<gt>")
+    if_null rx1221_debug, debug_957
     rx1221_cur."!cursor_debug"("PASS  ", "infix:sym<gt>", " at pos=", rx1221_pos)
+  debug_957:
     .return (rx1221_cur)
   rx1221_restart:
 .annotate 'line', 447
+    if_null rx1221_debug, debug_958
     rx1221_cur."!cursor_debug"("NEXT ", "infix:sym<gt>")
+  debug_958:
   rx1221_fail:
     (rx1221_rep, rx1221_pos, $I10, $P10) = rx1221_cur."!mark_fail"(0)
     lt rx1221_pos, -1, rx1221_done
@@ -15976,14 +17414,16 @@
     jump $I10
   rx1221_done:
     rx1221_cur."!cursor_fail"()
+    if_null rx1221_debug, debug_959
     rx1221_cur."!cursor_debug"("FAIL  ", "infix:sym<gt>")
+  debug_959:
     .return (rx1221_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<gt>"  :subid("317_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<gt>"  :subid("317_1282016529.10767") :method
 .annotate 'line', 447
     $P1223 = self."!PREFIX__!subrule"("O", "gt")
     new $P1224, "ResizablePMCArray"
@@ -15993,7 +17433,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=:=>"  :subid("318_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<=:=>"  :subid("318_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1228_tgt
     .local int rx1228_pos
@@ -16001,7 +17441,9 @@
     .local int rx1228_eos
     .local int rx1228_rep
     .local pmc rx1228_cur
+    .local pmc rx1228_debug
     (rx1228_cur, rx1228_pos, rx1228_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1228_debug, rx1228_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1228_cur
     .local pmc match
     .lex "$/", match
@@ -16013,7 +17455,9 @@
     substr rx1228_tgt, rx1228_tgt, rx1228_off
   rx1228_start:
     eq $I10, 1, rx1228_restart
+    if_null rx1228_debug, debug_960
     rx1228_cur."!cursor_debug"("START ", "infix:sym<=:=>")
+  debug_960:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1232_done
     goto rxscan1232_scan
@@ -16057,11 +17501,15 @@
     rx1228_pos = $P10."pos"()
   # rx pass
     rx1228_cur."!cursor_pass"(rx1228_pos, "infix:sym<=:=>")
+    if_null rx1228_debug, debug_961
     rx1228_cur."!cursor_debug"("PASS  ", "infix:sym<=:=>", " at pos=", rx1228_pos)
+  debug_961:
     .return (rx1228_cur)
   rx1228_restart:
 .annotate 'line', 447
+    if_null rx1228_debug, debug_962
     rx1228_cur."!cursor_debug"("NEXT ", "infix:sym<=:=>")
+  debug_962:
   rx1228_fail:
     (rx1228_rep, rx1228_pos, $I10, $P10) = rx1228_cur."!mark_fail"(0)
     lt rx1228_pos, -1, rx1228_done
@@ -16069,14 +17517,16 @@
     jump $I10
   rx1228_done:
     rx1228_cur."!cursor_fail"()
+    if_null rx1228_debug, debug_963
     rx1228_cur."!cursor_debug"("FAIL  ", "infix:sym<=:=>")
+  debug_963:
     .return (rx1228_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=:=>"  :subid("319_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<=:=>"  :subid("319_1282016529.10767") :method
 .annotate 'line', 447
     $P1230 = self."!PREFIX__!subrule"("O", "=:=")
     new $P1231, "ResizablePMCArray"
@@ -16086,7 +17536,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~~>"  :subid("320_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<~~>"  :subid("320_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1235_tgt
     .local int rx1235_pos
@@ -16094,7 +17544,9 @@
     .local int rx1235_eos
     .local int rx1235_rep
     .local pmc rx1235_cur
+    .local pmc rx1235_debug
     (rx1235_cur, rx1235_pos, rx1235_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1235_debug, rx1235_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1235_cur
     .local pmc match
     .lex "$/", match
@@ -16106,7 +17558,9 @@
     substr rx1235_tgt, rx1235_tgt, rx1235_off
   rx1235_start:
     eq $I10, 1, rx1235_restart
+    if_null rx1235_debug, debug_964
     rx1235_cur."!cursor_debug"("START ", "infix:sym<~~>")
+  debug_964:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1239_done
     goto rxscan1239_scan
@@ -16150,11 +17604,15 @@
     rx1235_pos = $P10."pos"()
   # rx pass
     rx1235_cur."!cursor_pass"(rx1235_pos, "infix:sym<~~>")
+    if_null rx1235_debug, debug_965
     rx1235_cur."!cursor_debug"("PASS  ", "infix:sym<~~>", " at pos=", rx1235_pos)
+  debug_965:
     .return (rx1235_cur)
   rx1235_restart:
 .annotate 'line', 447
+    if_null rx1235_debug, debug_966
     rx1235_cur."!cursor_debug"("NEXT ", "infix:sym<~~>")
+  debug_966:
   rx1235_fail:
     (rx1235_rep, rx1235_pos, $I10, $P10) = rx1235_cur."!mark_fail"(0)
     lt rx1235_pos, -1, rx1235_done
@@ -16162,14 +17620,16 @@
     jump $I10
   rx1235_done:
     rx1235_cur."!cursor_fail"()
+    if_null rx1235_debug, debug_967
     rx1235_cur."!cursor_debug"("FAIL  ", "infix:sym<~~>")
+  debug_967:
     .return (rx1235_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~~>"  :subid("321_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<~~>"  :subid("321_1282016529.10767") :method
 .annotate 'line', 447
     $P1237 = self."!PREFIX__!subrule"("O", "~~")
     new $P1238, "ResizablePMCArray"
@@ -16179,7 +17639,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<&&>"  :subid("322_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<&&>"  :subid("322_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1242_tgt
     .local int rx1242_pos
@@ -16187,7 +17647,9 @@
     .local int rx1242_eos
     .local int rx1242_rep
     .local pmc rx1242_cur
+    .local pmc rx1242_debug
     (rx1242_cur, rx1242_pos, rx1242_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1242_debug, rx1242_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1242_cur
     .local pmc match
     .lex "$/", match
@@ -16199,7 +17661,9 @@
     substr rx1242_tgt, rx1242_tgt, rx1242_off
   rx1242_start:
     eq $I10, 1, rx1242_restart
+    if_null rx1242_debug, debug_968
     rx1242_cur."!cursor_debug"("START ", "infix:sym<&&>")
+  debug_968:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1246_done
     goto rxscan1246_scan
@@ -16243,11 +17707,15 @@
     rx1242_pos = $P10."pos"()
   # rx pass
     rx1242_cur."!cursor_pass"(rx1242_pos, "infix:sym<&&>")
+    if_null rx1242_debug, debug_969
     rx1242_cur."!cursor_debug"("PASS  ", "infix:sym<&&>", " at pos=", rx1242_pos)
+  debug_969:
     .return (rx1242_cur)
   rx1242_restart:
 .annotate 'line', 447
+    if_null rx1242_debug, debug_970
     rx1242_cur."!cursor_debug"("NEXT ", "infix:sym<&&>")
+  debug_970:
   rx1242_fail:
     (rx1242_rep, rx1242_pos, $I10, $P10) = rx1242_cur."!mark_fail"(0)
     lt rx1242_pos, -1, rx1242_done
@@ -16255,14 +17723,16 @@
     jump $I10
   rx1242_done:
     rx1242_cur."!cursor_fail"()
+    if_null rx1242_debug, debug_971
     rx1242_cur."!cursor_debug"("FAIL  ", "infix:sym<&&>")
+  debug_971:
     .return (rx1242_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<&&>"  :subid("323_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<&&>"  :subid("323_1282016529.10767") :method
 .annotate 'line', 447
     $P1244 = self."!PREFIX__!subrule"("O", "&&")
     new $P1245, "ResizablePMCArray"
@@ -16272,7 +17742,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<||>"  :subid("324_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<||>"  :subid("324_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1249_tgt
     .local int rx1249_pos
@@ -16280,7 +17750,9 @@
     .local int rx1249_eos
     .local int rx1249_rep
     .local pmc rx1249_cur
+    .local pmc rx1249_debug
     (rx1249_cur, rx1249_pos, rx1249_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1249_debug, rx1249_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1249_cur
     .local pmc match
     .lex "$/", match
@@ -16292,7 +17764,9 @@
     substr rx1249_tgt, rx1249_tgt, rx1249_off
   rx1249_start:
     eq $I10, 1, rx1249_restart
+    if_null rx1249_debug, debug_972
     rx1249_cur."!cursor_debug"("START ", "infix:sym<||>")
+  debug_972:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1253_done
     goto rxscan1253_scan
@@ -16336,11 +17810,15 @@
     rx1249_pos = $P10."pos"()
   # rx pass
     rx1249_cur."!cursor_pass"(rx1249_pos, "infix:sym<||>")
+    if_null rx1249_debug, debug_973
     rx1249_cur."!cursor_debug"("PASS  ", "infix:sym<||>", " at pos=", rx1249_pos)
+  debug_973:
     .return (rx1249_cur)
   rx1249_restart:
 .annotate 'line', 447
+    if_null rx1249_debug, debug_974
     rx1249_cur."!cursor_debug"("NEXT ", "infix:sym<||>")
+  debug_974:
   rx1249_fail:
     (rx1249_rep, rx1249_pos, $I10, $P10) = rx1249_cur."!mark_fail"(0)
     lt rx1249_pos, -1, rx1249_done
@@ -16348,14 +17826,16 @@
     jump $I10
   rx1249_done:
     rx1249_cur."!cursor_fail"()
+    if_null rx1249_debug, debug_975
     rx1249_cur."!cursor_debug"("FAIL  ", "infix:sym<||>")
+  debug_975:
     .return (rx1249_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<||>"  :subid("325_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<||>"  :subid("325_1282016529.10767") :method
 .annotate 'line', 447
     $P1251 = self."!PREFIX__!subrule"("O", "||")
     new $P1252, "ResizablePMCArray"
@@ -16365,7 +17845,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<//>"  :subid("326_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<//>"  :subid("326_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1256_tgt
     .local int rx1256_pos
@@ -16373,7 +17853,9 @@
     .local int rx1256_eos
     .local int rx1256_rep
     .local pmc rx1256_cur
+    .local pmc rx1256_debug
     (rx1256_cur, rx1256_pos, rx1256_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1256_debug, rx1256_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1256_cur
     .local pmc match
     .lex "$/", match
@@ -16385,7 +17867,9 @@
     substr rx1256_tgt, rx1256_tgt, rx1256_off
   rx1256_start:
     eq $I10, 1, rx1256_restart
+    if_null rx1256_debug, debug_976
     rx1256_cur."!cursor_debug"("START ", "infix:sym<//>")
+  debug_976:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1260_done
     goto rxscan1260_scan
@@ -16429,11 +17913,15 @@
     rx1256_pos = $P10."pos"()
   # rx pass
     rx1256_cur."!cursor_pass"(rx1256_pos, "infix:sym<//>")
+    if_null rx1256_debug, debug_977
     rx1256_cur."!cursor_debug"("PASS  ", "infix:sym<//>", " at pos=", rx1256_pos)
+  debug_977:
     .return (rx1256_cur)
   rx1256_restart:
 .annotate 'line', 447
+    if_null rx1256_debug, debug_978
     rx1256_cur."!cursor_debug"("NEXT ", "infix:sym<//>")
+  debug_978:
   rx1256_fail:
     (rx1256_rep, rx1256_pos, $I10, $P10) = rx1256_cur."!mark_fail"(0)
     lt rx1256_pos, -1, rx1256_done
@@ -16441,14 +17929,16 @@
     jump $I10
   rx1256_done:
     rx1256_cur."!cursor_fail"()
+    if_null rx1256_debug, debug_979
     rx1256_cur."!cursor_debug"("FAIL  ", "infix:sym<//>")
+  debug_979:
     .return (rx1256_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<//>"  :subid("327_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<//>"  :subid("327_1282016529.10767") :method
 .annotate 'line', 447
     $P1258 = self."!PREFIX__!subrule"("O", "//")
     new $P1259, "ResizablePMCArray"
@@ -16458,7 +17948,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<?? !!>"  :subid("328_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<?? !!>"  :subid("328_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1263_tgt
     .local int rx1263_pos
@@ -16466,7 +17956,9 @@
     .local int rx1263_eos
     .local int rx1263_rep
     .local pmc rx1263_cur
+    .local pmc rx1263_debug
     (rx1263_cur, rx1263_pos, rx1263_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1263_debug, rx1263_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1263_cur
     .local pmc match
     .lex "$/", match
@@ -16478,7 +17970,9 @@
     substr rx1263_tgt, rx1263_tgt, rx1263_off
   rx1263_start:
     eq $I10, 1, rx1263_restart
+    if_null rx1263_debug, debug_980
     rx1263_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
+  debug_980:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1267_done
     goto rxscan1267_scan
@@ -16532,11 +18026,15 @@
 .annotate 'line', 539
   # rx pass
     rx1263_cur."!cursor_pass"(rx1263_pos, "infix:sym<?? !!>")
+    if_null rx1263_debug, debug_981
     rx1263_cur."!cursor_debug"("PASS  ", "infix:sym<?? !!>", " at pos=", rx1263_pos)
+  debug_981:
     .return (rx1263_cur)
   rx1263_restart:
 .annotate 'line', 447
+    if_null rx1263_debug, debug_982
     rx1263_cur."!cursor_debug"("NEXT ", "infix:sym<?? !!>")
+  debug_982:
   rx1263_fail:
     (rx1263_rep, rx1263_pos, $I10, $P10) = rx1263_cur."!mark_fail"(0)
     lt rx1263_pos, -1, rx1263_done
@@ -16544,14 +18042,16 @@
     jump $I10
   rx1263_done:
     rx1263_cur."!cursor_fail"()
+    if_null rx1263_debug, debug_983
     rx1263_cur."!cursor_debug"("FAIL  ", "infix:sym<?? !!>")
+  debug_983:
     .return (rx1263_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<?? !!>"  :subid("329_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<?? !!>"  :subid("329_1282016529.10767") :method
 .annotate 'line', 447
     $P1265 = self."!PREFIX__!subrule"("ws", "??")
     new $P1266, "ResizablePMCArray"
@@ -16561,7 +18061,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=>"  :subid("330_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<=>"  :subid("330_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1269_tgt
     .local int rx1269_pos
@@ -16569,7 +18069,9 @@
     .local int rx1269_eos
     .local int rx1269_rep
     .local pmc rx1269_cur
+    .local pmc rx1269_debug
     (rx1269_cur, rx1269_pos, rx1269_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1269_debug, rx1269_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1269_cur
     .local pmc match
     .lex "$/", match
@@ -16581,7 +18083,9 @@
     substr rx1269_tgt, rx1269_tgt, rx1269_off
   rx1269_start:
     eq $I10, 1, rx1269_restart
+    if_null rx1269_debug, debug_984
     rx1269_cur."!cursor_debug"("START ", "infix:sym<=>")
+  debug_984:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1273_done
     goto rxscan1273_scan
@@ -16602,8 +18106,8 @@
     add $I11, rx1269_pos, 1
     gt $I11, rx1269_eos, rx1269_fail
     sub $I11, rx1269_pos, rx1269_off
-    substr $S10, rx1269_tgt, $I11, 1
-    ne $S10, "=", rx1269_fail
+    ord $I11, rx1269_tgt, $I11
+    ne $I11, 61, rx1269_fail
     add rx1269_pos, 1
     set_addr $I10, rxcap_1274_fail
     ($I12, $I11) = rx1269_cur."!mark_peek"($I10)
@@ -16624,11 +18128,15 @@
 .annotate 'line', 547
   # rx pass
     rx1269_cur."!cursor_pass"(rx1269_pos, "infix:sym<=>")
+    if_null rx1269_debug, debug_985
     rx1269_cur."!cursor_debug"("PASS  ", "infix:sym<=>", " at pos=", rx1269_pos)
+  debug_985:
     .return (rx1269_cur)
   rx1269_restart:
 .annotate 'line', 447
+    if_null rx1269_debug, debug_986
     rx1269_cur."!cursor_debug"("NEXT ", "infix:sym<=>")
+  debug_986:
   rx1269_fail:
     (rx1269_rep, rx1269_pos, $I10, $P10) = rx1269_cur."!mark_fail"(0)
     lt rx1269_pos, -1, rx1269_done
@@ -16636,14 +18144,16 @@
     jump $I10
   rx1269_done:
     rx1269_cur."!cursor_fail"()
+    if_null rx1269_debug, debug_987
     rx1269_cur."!cursor_debug"("FAIL  ", "infix:sym<=>")
+  debug_987:
     .return (rx1269_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=>"  :subid("331_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<=>"  :subid("331_1282016529.10767") :method
 .annotate 'line', 447
     $P1271 = self."!PREFIX__!subrule"("panic", "=")
     new $P1272, "ResizablePMCArray"
@@ -16653,7 +18163,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<:=>"  :subid("332_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<:=>"  :subid("332_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1276_tgt
     .local int rx1276_pos
@@ -16661,7 +18171,9 @@
     .local int rx1276_eos
     .local int rx1276_rep
     .local pmc rx1276_cur
+    .local pmc rx1276_debug
     (rx1276_cur, rx1276_pos, rx1276_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1276_debug, rx1276_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1276_cur
     .local pmc match
     .lex "$/", match
@@ -16673,7 +18185,9 @@
     substr rx1276_tgt, rx1276_tgt, rx1276_off
   rx1276_start:
     eq $I10, 1, rx1276_restart
+    if_null rx1276_debug, debug_988
     rx1276_cur."!cursor_debug"("START ", "infix:sym<:=>")
+  debug_988:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1280_done
     goto rxscan1280_scan
@@ -16717,11 +18231,15 @@
     rx1276_pos = $P10."pos"()
   # rx pass
     rx1276_cur."!cursor_pass"(rx1276_pos, "infix:sym<:=>")
+    if_null rx1276_debug, debug_989
     rx1276_cur."!cursor_debug"("PASS  ", "infix:sym<:=>", " at pos=", rx1276_pos)
+  debug_989:
     .return (rx1276_cur)
   rx1276_restart:
 .annotate 'line', 447
+    if_null rx1276_debug, debug_990
     rx1276_cur."!cursor_debug"("NEXT ", "infix:sym<:=>")
+  debug_990:
   rx1276_fail:
     (rx1276_rep, rx1276_pos, $I10, $P10) = rx1276_cur."!mark_fail"(0)
     lt rx1276_pos, -1, rx1276_done
@@ -16729,14 +18247,16 @@
     jump $I10
   rx1276_done:
     rx1276_cur."!cursor_fail"()
+    if_null rx1276_debug, debug_991
     rx1276_cur."!cursor_debug"("FAIL  ", "infix:sym<:=>")
+  debug_991:
     .return (rx1276_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<:=>"  :subid("333_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<:=>"  :subid("333_1282016529.10767") :method
 .annotate 'line', 447
     $P1278 = self."!PREFIX__!subrule"("O", ":=")
     new $P1279, "ResizablePMCArray"
@@ -16746,7 +18266,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<::=>"  :subid("334_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<::=>"  :subid("334_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1283_tgt
     .local int rx1283_pos
@@ -16754,7 +18274,9 @@
     .local int rx1283_eos
     .local int rx1283_rep
     .local pmc rx1283_cur
+    .local pmc rx1283_debug
     (rx1283_cur, rx1283_pos, rx1283_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1283_debug, rx1283_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1283_cur
     .local pmc match
     .lex "$/", match
@@ -16766,7 +18288,9 @@
     substr rx1283_tgt, rx1283_tgt, rx1283_off
   rx1283_start:
     eq $I10, 1, rx1283_restart
+    if_null rx1283_debug, debug_992
     rx1283_cur."!cursor_debug"("START ", "infix:sym<::=>")
+  debug_992:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1287_done
     goto rxscan1287_scan
@@ -16810,11 +18334,15 @@
     rx1283_pos = $P10."pos"()
   # rx pass
     rx1283_cur."!cursor_pass"(rx1283_pos, "infix:sym<::=>")
+    if_null rx1283_debug, debug_993
     rx1283_cur."!cursor_debug"("PASS  ", "infix:sym<::=>", " at pos=", rx1283_pos)
+  debug_993:
     .return (rx1283_cur)
   rx1283_restart:
 .annotate 'line', 447
+    if_null rx1283_debug, debug_994
     rx1283_cur."!cursor_debug"("NEXT ", "infix:sym<::=>")
+  debug_994:
   rx1283_fail:
     (rx1283_rep, rx1283_pos, $I10, $P10) = rx1283_cur."!mark_fail"(0)
     lt rx1283_pos, -1, rx1283_done
@@ -16822,14 +18350,16 @@
     jump $I10
   rx1283_done:
     rx1283_cur."!cursor_fail"()
+    if_null rx1283_debug, debug_995
     rx1283_cur."!cursor_debug"("FAIL  ", "infix:sym<::=>")
+  debug_995:
     .return (rx1283_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<::=>"  :subid("335_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<::=>"  :subid("335_1282016529.10767") :method
 .annotate 'line', 447
     $P1285 = self."!PREFIX__!subrule"("O", "::=")
     new $P1286, "ResizablePMCArray"
@@ -16839,7 +18369,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<,>"  :subid("336_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<,>"  :subid("336_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1290_tgt
     .local int rx1290_pos
@@ -16847,7 +18377,9 @@
     .local int rx1290_eos
     .local int rx1290_rep
     .local pmc rx1290_cur
+    .local pmc rx1290_debug
     (rx1290_cur, rx1290_pos, rx1290_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1290_debug, rx1290_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1290_cur
     .local pmc match
     .lex "$/", match
@@ -16859,7 +18391,9 @@
     substr rx1290_tgt, rx1290_tgt, rx1290_off
   rx1290_start:
     eq $I10, 1, rx1290_restart
+    if_null rx1290_debug, debug_996
     rx1290_cur."!cursor_debug"("START ", "infix:sym<,>")
+  debug_996:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1294_done
     goto rxscan1294_scan
@@ -16880,8 +18414,8 @@
     add $I11, rx1290_pos, 1
     gt $I11, rx1290_eos, rx1290_fail
     sub $I11, rx1290_pos, rx1290_off
-    substr $S10, rx1290_tgt, $I11, 1
-    ne $S10, ",", rx1290_fail
+    ord $I11, rx1290_tgt, $I11
+    ne $I11, 44, rx1290_fail
     add rx1290_pos, 1
     set_addr $I10, rxcap_1295_fail
     ($I12, $I11) = rx1290_cur."!mark_peek"($I10)
@@ -16903,11 +18437,15 @@
     rx1290_pos = $P10."pos"()
   # rx pass
     rx1290_cur."!cursor_pass"(rx1290_pos, "infix:sym<,>")
+    if_null rx1290_debug, debug_997
     rx1290_cur."!cursor_debug"("PASS  ", "infix:sym<,>", " at pos=", rx1290_pos)
+  debug_997:
     .return (rx1290_cur)
   rx1290_restart:
 .annotate 'line', 447
+    if_null rx1290_debug, debug_998
     rx1290_cur."!cursor_debug"("NEXT ", "infix:sym<,>")
+  debug_998:
   rx1290_fail:
     (rx1290_rep, rx1290_pos, $I10, $P10) = rx1290_cur."!mark_fail"(0)
     lt rx1290_pos, -1, rx1290_done
@@ -16915,14 +18453,16 @@
     jump $I10
   rx1290_done:
     rx1290_cur."!cursor_fail"()
+    if_null rx1290_debug, debug_999
     rx1290_cur."!cursor_debug"("FAIL  ", "infix:sym<,>")
+  debug_999:
     .return (rx1290_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<,>"  :subid("337_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<,>"  :subid("337_1282016529.10767") :method
 .annotate 'line', 447
     $P1292 = self."!PREFIX__!subrule"("O", ",")
     new $P1293, "ResizablePMCArray"
@@ -16932,7 +18472,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<return>"  :subid("338_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<return>"  :subid("338_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1297_tgt
     .local int rx1297_pos
@@ -16940,7 +18480,9 @@
     .local int rx1297_eos
     .local int rx1297_rep
     .local pmc rx1297_cur
+    .local pmc rx1297_debug
     (rx1297_cur, rx1297_pos, rx1297_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1297_debug, rx1297_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1297_cur
     .local pmc match
     .lex "$/", match
@@ -16952,7 +18494,9 @@
     substr rx1297_tgt, rx1297_tgt, rx1297_off
   rx1297_start:
     eq $I10, 1, rx1297_restart
+    if_null rx1297_debug, debug_1000
     rx1297_cur."!cursor_debug"("START ", "prefix:sym<return>")
+  debug_1000:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1300_done
     goto rxscan1300_scan
@@ -17002,11 +18546,15 @@
     rx1297_pos = $P10."pos"()
   # rx pass
     rx1297_cur."!cursor_pass"(rx1297_pos, "prefix:sym<return>")
+    if_null rx1297_debug, debug_1001
     rx1297_cur."!cursor_debug"("PASS  ", "prefix:sym<return>", " at pos=", rx1297_pos)
+  debug_1001:
     .return (rx1297_cur)
   rx1297_restart:
 .annotate 'line', 447
+    if_null rx1297_debug, debug_1002
     rx1297_cur."!cursor_debug"("NEXT ", "prefix:sym<return>")
+  debug_1002:
   rx1297_fail:
     (rx1297_rep, rx1297_pos, $I10, $P10) = rx1297_cur."!mark_fail"(0)
     lt rx1297_pos, -1, rx1297_done
@@ -17014,14 +18562,16 @@
     jump $I10
   rx1297_done:
     rx1297_cur."!cursor_fail"()
+    if_null rx1297_debug, debug_1003
     rx1297_cur."!cursor_debug"("FAIL  ", "prefix:sym<return>")
+  debug_1003:
     .return (rx1297_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<return>"  :subid("339_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<return>"  :subid("339_1282016529.10767") :method
 .annotate 'line', 447
     new $P1299, "ResizablePMCArray"
     push $P1299, "return"
@@ -17030,7 +18580,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<make>"  :subid("340_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<make>"  :subid("340_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1303_tgt
     .local int rx1303_pos
@@ -17038,7 +18588,9 @@
     .local int rx1303_eos
     .local int rx1303_rep
     .local pmc rx1303_cur
+    .local pmc rx1303_debug
     (rx1303_cur, rx1303_pos, rx1303_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1303_debug, rx1303_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1303_cur
     .local pmc match
     .lex "$/", match
@@ -17050,7 +18602,9 @@
     substr rx1303_tgt, rx1303_tgt, rx1303_off
   rx1303_start:
     eq $I10, 1, rx1303_restart
+    if_null rx1303_debug, debug_1004
     rx1303_cur."!cursor_debug"("START ", "prefix:sym<make>")
+  debug_1004:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1306_done
     goto rxscan1306_scan
@@ -17100,11 +18654,15 @@
     rx1303_pos = $P10."pos"()
   # rx pass
     rx1303_cur."!cursor_pass"(rx1303_pos, "prefix:sym<make>")
+    if_null rx1303_debug, debug_1005
     rx1303_cur."!cursor_debug"("PASS  ", "prefix:sym<make>", " at pos=", rx1303_pos)
+  debug_1005:
     .return (rx1303_cur)
   rx1303_restart:
 .annotate 'line', 447
+    if_null rx1303_debug, debug_1006
     rx1303_cur."!cursor_debug"("NEXT ", "prefix:sym<make>")
+  debug_1006:
   rx1303_fail:
     (rx1303_rep, rx1303_pos, $I10, $P10) = rx1303_cur."!mark_fail"(0)
     lt rx1303_pos, -1, rx1303_done
@@ -17112,14 +18670,16 @@
     jump $I10
   rx1303_done:
     rx1303_cur."!cursor_fail"()
+    if_null rx1303_debug, debug_1007
     rx1303_cur."!cursor_debug"("FAIL  ", "prefix:sym<make>")
+  debug_1007:
     .return (rx1303_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<make>"  :subid("341_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<make>"  :subid("341_1282016529.10767") :method
 .annotate 'line', 447
     new $P1305, "ResizablePMCArray"
     push $P1305, "make"
@@ -17128,7 +18688,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<last>"  :subid("342_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<last>"  :subid("342_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1309_tgt
     .local int rx1309_pos
@@ -17136,7 +18696,9 @@
     .local int rx1309_eos
     .local int rx1309_rep
     .local pmc rx1309_cur
+    .local pmc rx1309_debug
     (rx1309_cur, rx1309_pos, rx1309_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1309_debug, rx1309_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1309_cur
     .local pmc match
     .lex "$/", match
@@ -17148,7 +18710,9 @@
     substr rx1309_tgt, rx1309_tgt, rx1309_off
   rx1309_start:
     eq $I10, 1, rx1309_restart
+    if_null rx1309_debug, debug_1008
     rx1309_cur."!cursor_debug"("START ", "term:sym<last>")
+  debug_1008:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1312_done
     goto rxscan1312_scan
@@ -17185,11 +18749,15 @@
   rxcap_1313_done:
   # rx pass
     rx1309_cur."!cursor_pass"(rx1309_pos, "term:sym<last>")
+    if_null rx1309_debug, debug_1009
     rx1309_cur."!cursor_debug"("PASS  ", "term:sym<last>", " at pos=", rx1309_pos)
+  debug_1009:
     .return (rx1309_cur)
   rx1309_restart:
 .annotate 'line', 447
+    if_null rx1309_debug, debug_1010
     rx1309_cur."!cursor_debug"("NEXT ", "term:sym<last>")
+  debug_1010:
   rx1309_fail:
     (rx1309_rep, rx1309_pos, $I10, $P10) = rx1309_cur."!mark_fail"(0)
     lt rx1309_pos, -1, rx1309_done
@@ -17197,14 +18765,16 @@
     jump $I10
   rx1309_done:
     rx1309_cur."!cursor_fail"()
+    if_null rx1309_debug, debug_1011
     rx1309_cur."!cursor_debug"("FAIL  ", "term:sym<last>")
+  debug_1011:
     .return (rx1309_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<last>"  :subid("343_1280467477.44751") :method
+.sub "!PREFIX__term:sym<last>"  :subid("343_1282016529.10767") :method
 .annotate 'line', 447
     new $P1311, "ResizablePMCArray"
     push $P1311, "last"
@@ -17213,7 +18783,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<next>"  :subid("344_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<next>"  :subid("344_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1315_tgt
     .local int rx1315_pos
@@ -17221,7 +18791,9 @@
     .local int rx1315_eos
     .local int rx1315_rep
     .local pmc rx1315_cur
+    .local pmc rx1315_debug
     (rx1315_cur, rx1315_pos, rx1315_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1315_debug, rx1315_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1315_cur
     .local pmc match
     .lex "$/", match
@@ -17233,7 +18805,9 @@
     substr rx1315_tgt, rx1315_tgt, rx1315_off
   rx1315_start:
     eq $I10, 1, rx1315_restart
+    if_null rx1315_debug, debug_1012
     rx1315_cur."!cursor_debug"("START ", "term:sym<next>")
+  debug_1012:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1318_done
     goto rxscan1318_scan
@@ -17270,11 +18844,15 @@
   rxcap_1319_done:
   # rx pass
     rx1315_cur."!cursor_pass"(rx1315_pos, "term:sym<next>")
+    if_null rx1315_debug, debug_1013
     rx1315_cur."!cursor_debug"("PASS  ", "term:sym<next>", " at pos=", rx1315_pos)
+  debug_1013:
     .return (rx1315_cur)
   rx1315_restart:
 .annotate 'line', 447
+    if_null rx1315_debug, debug_1014
     rx1315_cur."!cursor_debug"("NEXT ", "term:sym<next>")
+  debug_1014:
   rx1315_fail:
     (rx1315_rep, rx1315_pos, $I10, $P10) = rx1315_cur."!mark_fail"(0)
     lt rx1315_pos, -1, rx1315_done
@@ -17282,14 +18860,16 @@
     jump $I10
   rx1315_done:
     rx1315_cur."!cursor_fail"()
+    if_null rx1315_debug, debug_1015
     rx1315_cur."!cursor_debug"("FAIL  ", "term:sym<next>")
+  debug_1015:
     .return (rx1315_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<next>"  :subid("345_1280467477.44751") :method
+.sub "!PREFIX__term:sym<next>"  :subid("345_1282016529.10767") :method
 .annotate 'line', 447
     new $P1317, "ResizablePMCArray"
     push $P1317, "next"
@@ -17298,7 +18878,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<redo>"  :subid("346_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<redo>"  :subid("346_1282016529.10767") :method :outer("11_1282016529.10767")
 .annotate 'line', 447
     .local string rx1321_tgt
     .local int rx1321_pos
@@ -17306,7 +18886,9 @@
     .local int rx1321_eos
     .local int rx1321_rep
     .local pmc rx1321_cur
+    .local pmc rx1321_debug
     (rx1321_cur, rx1321_pos, rx1321_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1321_debug, rx1321_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1321_cur
     .local pmc match
     .lex "$/", match
@@ -17318,7 +18900,9 @@
     substr rx1321_tgt, rx1321_tgt, rx1321_off
   rx1321_start:
     eq $I10, 1, rx1321_restart
+    if_null rx1321_debug, debug_1016
     rx1321_cur."!cursor_debug"("START ", "term:sym<redo>")
+  debug_1016:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1324_done
     goto rxscan1324_scan
@@ -17355,11 +18939,15 @@
   rxcap_1325_done:
   # rx pass
     rx1321_cur."!cursor_pass"(rx1321_pos, "term:sym<redo>")
+    if_null rx1321_debug, debug_1017
     rx1321_cur."!cursor_debug"("PASS  ", "term:sym<redo>", " at pos=", rx1321_pos)
+  debug_1017:
     .return (rx1321_cur)
   rx1321_restart:
 .annotate 'line', 447
+    if_null rx1321_debug, debug_1018
     rx1321_cur."!cursor_debug"("NEXT ", "term:sym<redo>")
+  debug_1018:
   rx1321_fail:
     (rx1321_rep, rx1321_pos, $I10, $P10) = rx1321_cur."!mark_fail"(0)
     lt rx1321_pos, -1, rx1321_done
@@ -17367,14 +18955,16 @@
     jump $I10
   rx1321_done:
     rx1321_cur."!cursor_fail"()
+    if_null rx1321_debug, debug_1019
     rx1321_cur."!cursor_debug"("FAIL  ", "term:sym<redo>")
+  debug_1019:
     .return (rx1321_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<redo>"  :subid("347_1280467477.44751") :method
+.sub "!PREFIX__term:sym<redo>"  :subid("347_1282016529.10767") :method
 .annotate 'line', 447
     new $P1323, "ResizablePMCArray"
     push $P1323, "redo"
@@ -17384,7 +18974,7 @@
 
 .namespace ["NQP";"Grammar"]
 .include "except_types.pasm"
-.sub "smartmatch"  :subid("348_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "smartmatch"  :subid("348_1282016529.10767") :method :outer("11_1282016529.10767")
     .param pmc param_1329
 .annotate 'line', 561
     new $P1328, 'ExceptionHandler'
@@ -17397,34 +18987,34 @@
     new $P1330, "Undef"
     .lex "$t", $P1330
     find_lex $P1331, "$/"
-    unless_null $P1331, vivify_384
+    unless_null $P1331, vivify_1020
     $P1331 = root_new ['parrot';'ResizablePMCArray']
-  vivify_384:
+  vivify_1020:
     set $P1332, $P1331[0]
-    unless_null $P1332, vivify_385
+    unless_null $P1332, vivify_1021
     new $P1332, "Undef"
-  vivify_385:
+  vivify_1021:
     store_lex "$t", $P1332
     find_lex $P1333, "$/"
-    unless_null $P1333, vivify_386
+    unless_null $P1333, vivify_1022
     $P1333 = root_new ['parrot';'ResizablePMCArray']
-  vivify_386:
+  vivify_1022:
     set $P1334, $P1333[1]
-    unless_null $P1334, vivify_387
+    unless_null $P1334, vivify_1023
     new $P1334, "Undef"
-  vivify_387:
+  vivify_1023:
     find_lex $P1335, "$/"
-    unless_null $P1335, vivify_388
+    unless_null $P1335, vivify_1024
     $P1335 = root_new ['parrot';'ResizablePMCArray']
     store_lex "$/", $P1335
-  vivify_388:
+  vivify_1024:
     set $P1335[0], $P1334
     find_lex $P1336, "$t"
     find_lex $P1337, "$/"
-    unless_null $P1337, vivify_389
+    unless_null $P1337, vivify_1025
     $P1337 = root_new ['parrot';'ResizablePMCArray']
     store_lex "$/", $P1337
-  vivify_389:
+  vivify_1025:
     set $P1337[1], $P1336
 .annotate 'line', 561
     .return ($P1336)
@@ -17437,34 +19027,34 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1339"  :subid("349_1280467477.44751") :outer("11_1280467477.44751")
+.sub "_block1339"  :subid("349_1282016529.10767") :outer("11_1282016529.10767")
 .annotate 'line', 567
-    .const 'Sub' $P1396 = "368_1280467477.44751" 
+    .const 'Sub' $P1396 = "368_1282016529.10767" 
     capture_lex $P1396
-    .const 'Sub' $P1391 = "366_1280467477.44751" 
+    .const 'Sub' $P1391 = "366_1282016529.10767" 
     capture_lex $P1391
-    .const 'Sub' $P1379 = "363_1280467477.44751" 
+    .const 'Sub' $P1379 = "363_1282016529.10767" 
     capture_lex $P1379
-    .const 'Sub' $P1369 = "360_1280467477.44751" 
+    .const 'Sub' $P1369 = "360_1282016529.10767" 
     capture_lex $P1369
-    .const 'Sub' $P1364 = "358_1280467477.44751" 
+    .const 'Sub' $P1364 = "358_1282016529.10767" 
     capture_lex $P1364
-    .const 'Sub' $P1355 = "355_1280467477.44751" 
+    .const 'Sub' $P1355 = "355_1282016529.10767" 
     capture_lex $P1355
-    .const 'Sub' $P1350 = "353_1280467477.44751" 
+    .const 'Sub' $P1350 = "353_1282016529.10767" 
     capture_lex $P1350
-    .const 'Sub' $P1341 = "350_1280467477.44751" 
+    .const 'Sub' $P1341 = "350_1282016529.10767" 
     capture_lex $P1341
-    .const 'Sub' $P1396 = "368_1280467477.44751" 
+    .const 'Sub' $P1396 = "368_1282016529.10767" 
     capture_lex $P1396
     .return ($P1396)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<:my>"  :subid("350_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "metachar:sym<:my>"  :subid("350_1282016529.10767") :method :outer("349_1282016529.10767")
 .annotate 'line', 567
-    .const 'Sub' $P1347 = "352_1280467477.44751" 
+    .const 'Sub' $P1347 = "352_1282016529.10767" 
     capture_lex $P1347
     .local string rx1342_tgt
     .local int rx1342_pos
@@ -17472,7 +19062,9 @@
     .local int rx1342_eos
     .local int rx1342_rep
     .local pmc rx1342_cur
+    .local pmc rx1342_debug
     (rx1342_cur, rx1342_pos, rx1342_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1342_debug, rx1342_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1342_cur
     .local pmc match
     .lex "$/", match
@@ -17484,7 +19076,9 @@
     substr rx1342_tgt, rx1342_tgt, rx1342_off
   rx1342_start:
     eq $I10, 1, rx1342_restart
+    if_null rx1342_debug, debug_1026
     rx1342_cur."!cursor_debug"("START ", "metachar:sym<:my>")
+  debug_1026:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1345_done
     goto rxscan1345_scan
@@ -17502,12 +19096,12 @@
     add $I11, rx1342_pos, 1
     gt $I11, rx1342_eos, rx1342_fail
     sub $I11, rx1342_pos, rx1342_off
-    substr $S10, rx1342_tgt, $I11, 1
-    ne $S10, ":", rx1342_fail
+    ord $I11, rx1342_tgt, $I11
+    ne $I11, 58, rx1342_fail
     add rx1342_pos, 1
   # rx subrule "before" subtype=zerowidth negate=
     rx1342_cur."!cursor_pos"(rx1342_pos)
-    .const 'Sub' $P1347 = "352_1280467477.44751" 
+    .const 'Sub' $P1347 = "352_1282016529.10767" 
     capture_lex $P1347
     $P10 = rx1342_cur."before"($P1347)
     unless $P10, rx1342_fail
@@ -17527,17 +19121,21 @@
     add $I11, rx1342_pos, 1
     gt $I11, rx1342_eos, rx1342_fail
     sub $I11, rx1342_pos, rx1342_off
-    substr $S10, rx1342_tgt, $I11, 1
-    ne $S10, ";", rx1342_fail
+    ord $I11, rx1342_tgt, $I11
+    ne $I11, 59, rx1342_fail
     add rx1342_pos, 1
 .annotate 'line', 568
   # rx pass
     rx1342_cur."!cursor_pass"(rx1342_pos, "metachar:sym<:my>")
+    if_null rx1342_debug, debug_1031
     rx1342_cur."!cursor_debug"("PASS  ", "metachar:sym<:my>", " at pos=", rx1342_pos)
+  debug_1031:
     .return (rx1342_cur)
   rx1342_restart:
 .annotate 'line', 567
+    if_null rx1342_debug, debug_1032
     rx1342_cur."!cursor_debug"("NEXT ", "metachar:sym<:my>")
+  debug_1032:
   rx1342_fail:
     (rx1342_rep, rx1342_pos, $I10, $P10) = rx1342_cur."!mark_fail"(0)
     lt rx1342_pos, -1, rx1342_done
@@ -17545,14 +19143,16 @@
     jump $I10
   rx1342_done:
     rx1342_cur."!cursor_fail"()
+    if_null rx1342_debug, debug_1033
     rx1342_cur."!cursor_debug"("FAIL  ", "metachar:sym<:my>")
+  debug_1033:
     .return (rx1342_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<:my>"  :subid("351_1280467477.44751") :method
+.sub "!PREFIX__metachar:sym<:my>"  :subid("351_1282016529.10767") :method
 .annotate 'line', 567
     new $P1344, "ResizablePMCArray"
     push $P1344, ":"
@@ -17561,7 +19161,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1346"  :anon :subid("352_1280467477.44751") :method :outer("350_1280467477.44751")
+.sub "_block1346"  :anon :subid("352_1282016529.10767") :method :outer("350_1282016529.10767")
 .annotate 'line', 569
     .local string rx1348_tgt
     .local int rx1348_pos
@@ -17569,7 +19169,9 @@
     .local int rx1348_eos
     .local int rx1348_rep
     .local pmc rx1348_cur
+    .local pmc rx1348_debug
     (rx1348_cur, rx1348_pos, rx1348_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1348_debug, rx1348_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1348_cur
     .local pmc match
     .lex "$/", match
@@ -17581,7 +19183,9 @@
     substr rx1348_tgt, rx1348_tgt, rx1348_off
   rx1348_start:
     eq $I10, 1, rx1348_restart
+    if_null rx1348_debug, debug_1027
     rx1348_cur."!cursor_debug"("START ", "")
+  debug_1027:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1349_done
     goto rxscan1349_scan
@@ -17603,10 +19207,14 @@
     add rx1348_pos, 2
   # rx pass
     rx1348_cur."!cursor_pass"(rx1348_pos, "")
+    if_null rx1348_debug, debug_1028
     rx1348_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1348_pos)
+  debug_1028:
     .return (rx1348_cur)
   rx1348_restart:
+    if_null rx1348_debug, debug_1029
     rx1348_cur."!cursor_debug"("NEXT ", "")
+  debug_1029:
   rx1348_fail:
     (rx1348_rep, rx1348_pos, $I10, $P10) = rx1348_cur."!mark_fail"(0)
     lt rx1348_pos, -1, rx1348_done
@@ -17614,14 +19222,16 @@
     jump $I10
   rx1348_done:
     rx1348_cur."!cursor_fail"()
+    if_null rx1348_debug, debug_1030
     rx1348_cur."!cursor_debug"("FAIL  ", "")
+  debug_1030:
     .return (rx1348_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<{ }>"  :subid("353_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "metachar:sym<{ }>"  :subid("353_1282016529.10767") :method :outer("349_1282016529.10767")
 .annotate 'line', 567
     .local string rx1351_tgt
     .local int rx1351_pos
@@ -17629,7 +19239,9 @@
     .local int rx1351_eos
     .local int rx1351_rep
     .local pmc rx1351_cur
+    .local pmc rx1351_debug
     (rx1351_cur, rx1351_pos, rx1351_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1351_debug, rx1351_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1351_cur
     .local pmc match
     .lex "$/", match
@@ -17641,7 +19253,9 @@
     substr rx1351_tgt, rx1351_tgt, rx1351_off
   rx1351_start:
     eq $I10, 1, rx1351_restart
+    if_null rx1351_debug, debug_1034
     rx1351_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
+  debug_1034:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1354_done
     goto rxscan1354_scan
@@ -17671,11 +19285,15 @@
 .annotate 'line', 572
   # rx pass
     rx1351_cur."!cursor_pass"(rx1351_pos, "metachar:sym<{ }>")
+    if_null rx1351_debug, debug_1035
     rx1351_cur."!cursor_debug"("PASS  ", "metachar:sym<{ }>", " at pos=", rx1351_pos)
+  debug_1035:
     .return (rx1351_cur)
   rx1351_restart:
 .annotate 'line', 567
+    if_null rx1351_debug, debug_1036
     rx1351_cur."!cursor_debug"("NEXT ", "metachar:sym<{ }>")
+  debug_1036:
   rx1351_fail:
     (rx1351_rep, rx1351_pos, $I10, $P10) = rx1351_cur."!mark_fail"(0)
     lt rx1351_pos, -1, rx1351_done
@@ -17683,14 +19301,16 @@
     jump $I10
   rx1351_done:
     rx1351_cur."!cursor_fail"()
+    if_null rx1351_debug, debug_1037
     rx1351_cur."!cursor_debug"("FAIL  ", "metachar:sym<{ }>")
+  debug_1037:
     .return (rx1351_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<{ }>"  :subid("354_1280467477.44751") :method
+.sub "!PREFIX__metachar:sym<{ }>"  :subid("354_1282016529.10767") :method
 .annotate 'line', 567
     new $P1353, "ResizablePMCArray"
     push $P1353, "{"
@@ -17699,9 +19319,9 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<nqpvar>"  :subid("355_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "metachar:sym<nqpvar>"  :subid("355_1282016529.10767") :method :outer("349_1282016529.10767")
 .annotate 'line', 567
-    .const 'Sub' $P1361 = "357_1280467477.44751" 
+    .const 'Sub' $P1361 = "357_1282016529.10767" 
     capture_lex $P1361
     .local string rx1356_tgt
     .local int rx1356_pos
@@ -17709,7 +19329,9 @@
     .local int rx1356_eos
     .local int rx1356_rep
     .local pmc rx1356_cur
+    .local pmc rx1356_debug
     (rx1356_cur, rx1356_pos, rx1356_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1356_debug, rx1356_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1356_cur
     .local pmc match
     .lex "$/", match
@@ -17721,7 +19343,9 @@
     substr rx1356_tgt, rx1356_tgt, rx1356_off
   rx1356_start:
     eq $I10, 1, rx1356_restart
+    if_null rx1356_debug, debug_1038
     rx1356_cur."!cursor_debug"("START ", "metachar:sym<nqpvar>")
+  debug_1038:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1359_done
     goto rxscan1359_scan
@@ -17743,7 +19367,7 @@
     lt $I11, 0, rx1356_fail
   # rx subrule "before" subtype=zerowidth negate=
     rx1356_cur."!cursor_pos"(rx1356_pos)
-    .const 'Sub' $P1361 = "357_1280467477.44751" 
+    .const 'Sub' $P1361 = "357_1282016529.10767" 
     capture_lex $P1361
     $P10 = rx1356_cur."before"($P1361)
     unless $P10, rx1356_fail
@@ -17757,11 +19381,15 @@
 .annotate 'line', 576
   # rx pass
     rx1356_cur."!cursor_pass"(rx1356_pos, "metachar:sym<nqpvar>")
+    if_null rx1356_debug, debug_1043
     rx1356_cur."!cursor_debug"("PASS  ", "metachar:sym<nqpvar>", " at pos=", rx1356_pos)
+  debug_1043:
     .return (rx1356_cur)
   rx1356_restart:
 .annotate 'line', 567
+    if_null rx1356_debug, debug_1044
     rx1356_cur."!cursor_debug"("NEXT ", "metachar:sym<nqpvar>")
+  debug_1044:
   rx1356_fail:
     (rx1356_rep, rx1356_pos, $I10, $P10) = rx1356_cur."!mark_fail"(0)
     lt rx1356_pos, -1, rx1356_done
@@ -17769,14 +19397,16 @@
     jump $I10
   rx1356_done:
     rx1356_cur."!cursor_fail"()
+    if_null rx1356_debug, debug_1045
     rx1356_cur."!cursor_debug"("FAIL  ", "metachar:sym<nqpvar>")
+  debug_1045:
     .return (rx1356_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<nqpvar>"  :subid("356_1280467477.44751") :method
+.sub "!PREFIX__metachar:sym<nqpvar>"  :subid("356_1282016529.10767") :method
 .annotate 'line', 567
     new $P1358, "ResizablePMCArray"
     push $P1358, "$"
@@ -17786,7 +19416,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1360"  :anon :subid("357_1280467477.44751") :method :outer("355_1280467477.44751")
+.sub "_block1360"  :anon :subid("357_1282016529.10767") :method :outer("355_1282016529.10767")
 .annotate 'line', 577
     .local string rx1362_tgt
     .local int rx1362_pos
@@ -17794,7 +19424,9 @@
     .local int rx1362_eos
     .local int rx1362_rep
     .local pmc rx1362_cur
+    .local pmc rx1362_debug
     (rx1362_cur, rx1362_pos, rx1362_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1362_debug, rx1362_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1362_cur
     .local pmc match
     .lex "$/", match
@@ -17806,7 +19438,9 @@
     substr rx1362_tgt, rx1362_tgt, rx1362_off
   rx1362_start:
     eq $I10, 1, rx1362_restart
+    if_null rx1362_debug, debug_1039
     rx1362_cur."!cursor_debug"("START ", "")
+  debug_1039:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1363_done
     goto rxscan1363_scan
@@ -17830,10 +19464,14 @@
     inc rx1362_pos
   # rx pass
     rx1362_cur."!cursor_pass"(rx1362_pos, "")
+    if_null rx1362_debug, debug_1040
     rx1362_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1362_pos)
+  debug_1040:
     .return (rx1362_cur)
   rx1362_restart:
+    if_null rx1362_debug, debug_1041
     rx1362_cur."!cursor_debug"("NEXT ", "")
+  debug_1041:
   rx1362_fail:
     (rx1362_rep, rx1362_pos, $I10, $P10) = rx1362_cur."!mark_fail"(0)
     lt rx1362_pos, -1, rx1362_done
@@ -17841,14 +19479,16 @@
     jump $I10
   rx1362_done:
     rx1362_cur."!cursor_fail"()
+    if_null rx1362_debug, debug_1042
     rx1362_cur."!cursor_debug"("FAIL  ", "")
+  debug_1042:
     .return (rx1362_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<{ }>"  :subid("358_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "assertion:sym<{ }>"  :subid("358_1282016529.10767") :method :outer("349_1282016529.10767")
 .annotate 'line', 567
     .local string rx1365_tgt
     .local int rx1365_pos
@@ -17856,7 +19496,9 @@
     .local int rx1365_eos
     .local int rx1365_rep
     .local pmc rx1365_cur
+    .local pmc rx1365_debug
     (rx1365_cur, rx1365_pos, rx1365_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1365_debug, rx1365_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1365_cur
     .local pmc match
     .lex "$/", match
@@ -17868,7 +19510,9 @@
     substr rx1365_tgt, rx1365_tgt, rx1365_off
   rx1365_start:
     eq $I10, 1, rx1365_restart
+    if_null rx1365_debug, debug_1046
     rx1365_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
+  debug_1046:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1368_done
     goto rxscan1368_scan
@@ -17898,11 +19542,15 @@
 .annotate 'line', 580
   # rx pass
     rx1365_cur."!cursor_pass"(rx1365_pos, "assertion:sym<{ }>")
+    if_null rx1365_debug, debug_1047
     rx1365_cur."!cursor_debug"("PASS  ", "assertion:sym<{ }>", " at pos=", rx1365_pos)
+  debug_1047:
     .return (rx1365_cur)
   rx1365_restart:
 .annotate 'line', 567
+    if_null rx1365_debug, debug_1048
     rx1365_cur."!cursor_debug"("NEXT ", "assertion:sym<{ }>")
+  debug_1048:
   rx1365_fail:
     (rx1365_rep, rx1365_pos, $I10, $P10) = rx1365_cur."!mark_fail"(0)
     lt rx1365_pos, -1, rx1365_done
@@ -17910,14 +19558,16 @@
     jump $I10
   rx1365_done:
     rx1365_cur."!cursor_fail"()
+    if_null rx1365_debug, debug_1049
     rx1365_cur."!cursor_debug"("FAIL  ", "assertion:sym<{ }>")
+  debug_1049:
     .return (rx1365_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<{ }>"  :subid("359_1280467477.44751") :method
+.sub "!PREFIX__assertion:sym<{ }>"  :subid("359_1282016529.10767") :method
 .annotate 'line', 567
     new $P1367, "ResizablePMCArray"
     push $P1367, "{"
@@ -17926,9 +19576,9 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<?{ }>"  :subid("360_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "assertion:sym<?{ }>"  :subid("360_1282016529.10767") :method :outer("349_1282016529.10767")
 .annotate 'line', 567
-    .const 'Sub' $P1375 = "362_1280467477.44751" 
+    .const 'Sub' $P1375 = "362_1282016529.10767" 
     capture_lex $P1375
     .local string rx1370_tgt
     .local int rx1370_pos
@@ -17936,7 +19586,9 @@
     .local int rx1370_eos
     .local int rx1370_rep
     .local pmc rx1370_cur
+    .local pmc rx1370_debug
     (rx1370_cur, rx1370_pos, rx1370_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1370_debug, rx1370_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1370_cur
     .local pmc match
     .lex "$/", match
@@ -17948,7 +19600,9 @@
     substr rx1370_tgt, rx1370_tgt, rx1370_off
   rx1370_start:
     eq $I10, 1, rx1370_restart
+    if_null rx1370_debug, debug_1050
     rx1370_cur."!cursor_debug"("START ", "assertion:sym<?{ }>")
+  debug_1050:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1373_done
     goto rxscan1373_scan
@@ -17974,7 +19628,7 @@
     inc rx1370_pos
   # rx subrule "before" subtype=zerowidth negate=
     rx1370_cur."!cursor_pos"(rx1370_pos)
-    .const 'Sub' $P1375 = "362_1280467477.44751" 
+    .const 'Sub' $P1375 = "362_1282016529.10767" 
     capture_lex $P1375
     $P10 = rx1370_cur."before"($P1375)
     unless $P10, rx1370_fail
@@ -17999,11 +19653,15 @@
 .annotate 'line', 584
   # rx pass
     rx1370_cur."!cursor_pass"(rx1370_pos, "assertion:sym<?{ }>")
+    if_null rx1370_debug, debug_1055
     rx1370_cur."!cursor_debug"("PASS  ", "assertion:sym<?{ }>", " at pos=", rx1370_pos)
+  debug_1055:
     .return (rx1370_cur)
   rx1370_restart:
 .annotate 'line', 567
+    if_null rx1370_debug, debug_1056
     rx1370_cur."!cursor_debug"("NEXT ", "assertion:sym<?{ }>")
+  debug_1056:
   rx1370_fail:
     (rx1370_rep, rx1370_pos, $I10, $P10) = rx1370_cur."!mark_fail"(0)
     lt rx1370_pos, -1, rx1370_done
@@ -18011,14 +19669,16 @@
     jump $I10
   rx1370_done:
     rx1370_cur."!cursor_fail"()
+    if_null rx1370_debug, debug_1057
     rx1370_cur."!cursor_debug"("FAIL  ", "assertion:sym<?{ }>")
+  debug_1057:
     .return (rx1370_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<?{ }>"  :subid("361_1280467477.44751") :method
+.sub "!PREFIX__assertion:sym<?{ }>"  :subid("361_1282016529.10767") :method
 .annotate 'line', 567
     new $P1372, "ResizablePMCArray"
     push $P1372, "!"
@@ -18028,7 +19688,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1374"  :anon :subid("362_1280467477.44751") :method :outer("360_1280467477.44751")
+.sub "_block1374"  :anon :subid("362_1282016529.10767") :method :outer("360_1282016529.10767")
 .annotate 'line', 585
     .local string rx1376_tgt
     .local int rx1376_pos
@@ -18036,7 +19696,9 @@
     .local int rx1376_eos
     .local int rx1376_rep
     .local pmc rx1376_cur
+    .local pmc rx1376_debug
     (rx1376_cur, rx1376_pos, rx1376_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1376_debug, rx1376_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1376_cur
     .local pmc match
     .lex "$/", match
@@ -18048,7 +19710,9 @@
     substr rx1376_tgt, rx1376_tgt, rx1376_off
   rx1376_start:
     eq $I10, 1, rx1376_restart
+    if_null rx1376_debug, debug_1051
     rx1376_cur."!cursor_debug"("START ", "")
+  debug_1051:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1377_done
     goto rxscan1377_scan
@@ -18065,15 +19729,19 @@
     add $I11, rx1376_pos, 1
     gt $I11, rx1376_eos, rx1376_fail
     sub $I11, rx1376_pos, rx1376_off
-    substr $S10, rx1376_tgt, $I11, 1
-    ne $S10, "{", rx1376_fail
+    ord $I11, rx1376_tgt, $I11
+    ne $I11, 123, rx1376_fail
     add rx1376_pos, 1
   # rx pass
     rx1376_cur."!cursor_pass"(rx1376_pos, "")
+    if_null rx1376_debug, debug_1052
     rx1376_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1376_pos)
+  debug_1052:
     .return (rx1376_cur)
   rx1376_restart:
+    if_null rx1376_debug, debug_1053
     rx1376_cur."!cursor_debug"("NEXT ", "")
+  debug_1053:
   rx1376_fail:
     (rx1376_rep, rx1376_pos, $I10, $P10) = rx1376_cur."!mark_fail"(0)
     lt rx1376_pos, -1, rx1376_done
@@ -18081,16 +19749,18 @@
     jump $I10
   rx1376_done:
     rx1376_cur."!cursor_fail"()
+    if_null rx1376_debug, debug_1054
     rx1376_cur."!cursor_debug"("FAIL  ", "")
+  debug_1054:
     .return (rx1376_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<name>"  :subid("363_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "assertion:sym<name>"  :subid("363_1282016529.10767") :method :outer("349_1282016529.10767")
 .annotate 'line', 567
-    .const 'Sub' $P1388 = "365_1280467477.44751" 
+    .const 'Sub' $P1388 = "365_1282016529.10767" 
     capture_lex $P1388
     .local string rx1380_tgt
     .local int rx1380_pos
@@ -18098,8 +19768,10 @@
     .local int rx1380_eos
     .local int rx1380_rep
     .local pmc rx1380_cur
+    .local pmc rx1380_debug
     (rx1380_cur, rx1380_pos, rx1380_tgt, $I10) = self."!cursor_start"()
-    rx1380_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
+    rx1380_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+    getattribute rx1380_debug, rx1380_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1380_cur
     .local pmc match
     .lex "$/", match
@@ -18111,7 +19783,9 @@
     substr rx1380_tgt, rx1380_tgt, rx1380_off
   rx1380_start:
     eq $I10, 1, rx1380_restart
+    if_null rx1380_debug, debug_1058
     rx1380_cur."!cursor_debug"("START ", "assertion:sym<name>")
+  debug_1058:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1384_done
     goto rxscan1384_scan
@@ -18144,7 +19818,7 @@
 .annotate 'line', 591
   # rx subrule "before" subtype=zerowidth negate=
     rx1380_cur."!cursor_pos"(rx1380_pos)
-    .const 'Sub' $P1388 = "365_1280467477.44751" 
+    .const 'Sub' $P1388 = "365_1282016529.10767" 
     capture_lex $P1388
     $P10 = rx1380_cur."before"($P1388)
     unless $P10, rx1380_fail
@@ -18157,8 +19831,8 @@
     add $I11, rx1380_pos, 1
     gt $I11, rx1380_eos, rx1380_fail
     sub $I11, rx1380_pos, rx1380_off
-    substr $S10, rx1380_tgt, $I11, 1
-    ne $S10, "=", rx1380_fail
+    ord $I11, rx1380_tgt, $I11
+    ne $I11, 61, rx1380_fail
     add rx1380_pos, 1
   # rx subrule "assertion" subtype=capture negate=
     rx1380_cur."!cursor_pos"(rx1380_pos)
@@ -18176,8 +19850,8 @@
     add $I11, rx1380_pos, 1
     gt $I11, rx1380_eos, rx1380_fail
     sub $I11, rx1380_pos, rx1380_off
-    substr $S10, rx1380_tgt, $I11, 1
-    ne $S10, ":", rx1380_fail
+    ord $I11, rx1380_tgt, $I11
+    ne $I11, 58, rx1380_fail
     add rx1380_pos, 1
   # rx subrule "arglist" subtype=capture negate=
     rx1380_cur."!cursor_pos"(rx1380_pos)
@@ -18195,8 +19869,8 @@
     add $I11, rx1380_pos, 1
     gt $I11, rx1380_eos, rx1380_fail
     sub $I11, rx1380_pos, rx1380_off
-    substr $S10, rx1380_tgt, $I11, 1
-    ne $S10, "(", rx1380_fail
+    ord $I11, rx1380_tgt, $I11
+    ne $I11, 40, rx1380_fail
     add rx1380_pos, 1
   # rx subrule "LANG" subtype=capture negate=
     rx1380_cur."!cursor_pos"(rx1380_pos)
@@ -18209,8 +19883,8 @@
     add $I11, rx1380_pos, 1
     gt $I11, rx1380_eos, rx1380_fail
     sub $I11, rx1380_pos, rx1380_off
-    substr $S10, rx1380_tgt, $I11, 1
-    ne $S10, ")", rx1380_fail
+    ord $I11, rx1380_tgt, $I11
+    ne $I11, 41, rx1380_fail
     add rx1380_pos, 1
     goto alt1386_end
   alt1386_4:
@@ -18235,11 +19909,15 @@
 .annotate 'line', 588
   # rx pass
     rx1380_cur."!cursor_pass"(rx1380_pos, "assertion:sym<name>")
+    if_null rx1380_debug, debug_1063
     rx1380_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx1380_pos)
+  debug_1063:
     .return (rx1380_cur)
   rx1380_restart:
 .annotate 'line', 567
+    if_null rx1380_debug, debug_1064
     rx1380_cur."!cursor_debug"("NEXT ", "assertion:sym<name>")
+  debug_1064:
   rx1380_fail:
     (rx1380_rep, rx1380_pos, $I10, $P10) = rx1380_cur."!mark_fail"(0)
     lt rx1380_pos, -1, rx1380_done
@@ -18247,14 +19925,16 @@
     jump $I10
   rx1380_done:
     rx1380_cur."!cursor_fail"()
+    if_null rx1380_debug, debug_1065
     rx1380_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
+  debug_1065:
     .return (rx1380_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("364_1280467477.44751") :method
+.sub "!PREFIX__assertion:sym<name>"  :subid("364_1282016529.10767") :method
 .annotate 'line', 567
     $P1382 = self."!PREFIX__!subrule"("identifier", "")
     new $P1383, "ResizablePMCArray"
@@ -18264,7 +19944,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1387"  :anon :subid("365_1280467477.44751") :method :outer("363_1280467477.44751")
+.sub "_block1387"  :anon :subid("365_1282016529.10767") :method :outer("363_1282016529.10767")
 .annotate 'line', 591
     .local string rx1389_tgt
     .local int rx1389_pos
@@ -18272,7 +19952,9 @@
     .local int rx1389_eos
     .local int rx1389_rep
     .local pmc rx1389_cur
+    .local pmc rx1389_debug
     (rx1389_cur, rx1389_pos, rx1389_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1389_debug, rx1389_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1389_cur
     .local pmc match
     .lex "$/", match
@@ -18284,7 +19966,9 @@
     substr rx1389_tgt, rx1389_tgt, rx1389_off
   rx1389_start:
     eq $I10, 1, rx1389_restart
+    if_null rx1389_debug, debug_1059
     rx1389_cur."!cursor_debug"("START ", "")
+  debug_1059:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1390_done
     goto rxscan1390_scan
@@ -18301,15 +19985,19 @@
     add $I11, rx1389_pos, 1
     gt $I11, rx1389_eos, rx1389_fail
     sub $I11, rx1389_pos, rx1389_off
-    substr $S10, rx1389_tgt, $I11, 1
-    ne $S10, ">", rx1389_fail
+    ord $I11, rx1389_tgt, $I11
+    ne $I11, 62, rx1389_fail
     add rx1389_pos, 1
   # rx pass
     rx1389_cur."!cursor_pass"(rx1389_pos, "")
+    if_null rx1389_debug, debug_1060
     rx1389_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1389_pos)
+  debug_1060:
     .return (rx1389_cur)
   rx1389_restart:
+    if_null rx1389_debug, debug_1061
     rx1389_cur."!cursor_debug"("NEXT ", "")
+  debug_1061:
   rx1389_fail:
     (rx1389_rep, rx1389_pos, $I10, $P10) = rx1389_cur."!mark_fail"(0)
     lt rx1389_pos, -1, rx1389_done
@@ -18317,14 +20005,16 @@
     jump $I10
   rx1389_done:
     rx1389_cur."!cursor_fail"()
+    if_null rx1389_debug, debug_1062
     rx1389_cur."!cursor_debug"("FAIL  ", "")
+  debug_1062:
     .return (rx1389_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<var>"  :subid("366_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "assertion:sym<var>"  :subid("366_1282016529.10767") :method :outer("349_1282016529.10767")
 .annotate 'line', 567
     .local string rx1392_tgt
     .local int rx1392_pos
@@ -18332,7 +20022,9 @@
     .local int rx1392_eos
     .local int rx1392_rep
     .local pmc rx1392_cur
+    .local pmc rx1392_debug
     (rx1392_cur, rx1392_pos, rx1392_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1392_debug, rx1392_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1392_cur
     .local pmc match
     .lex "$/", match
@@ -18344,7 +20036,9 @@
     substr rx1392_tgt, rx1392_tgt, rx1392_off
   rx1392_start:
     eq $I10, 1, rx1392_restart
+    if_null rx1392_debug, debug_1066
     rx1392_cur."!cursor_debug"("START ", "assertion:sym<var>")
+  debug_1066:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1395_done
     goto rxscan1395_scan
@@ -18374,11 +20068,15 @@
 .annotate 'line', 599
   # rx pass
     rx1392_cur."!cursor_pass"(rx1392_pos, "assertion:sym<var>")
+    if_null rx1392_debug, debug_1067
     rx1392_cur."!cursor_debug"("PASS  ", "assertion:sym<var>", " at pos=", rx1392_pos)
+  debug_1067:
     .return (rx1392_cur)
   rx1392_restart:
 .annotate 'line', 567
+    if_null rx1392_debug, debug_1068
     rx1392_cur."!cursor_debug"("NEXT ", "assertion:sym<var>")
+  debug_1068:
   rx1392_fail:
     (rx1392_rep, rx1392_pos, $I10, $P10) = rx1392_cur."!mark_fail"(0)
     lt rx1392_pos, -1, rx1392_done
@@ -18386,14 +20084,16 @@
     jump $I10
   rx1392_done:
     rx1392_cur."!cursor_fail"()
+    if_null rx1392_debug, debug_1069
     rx1392_cur."!cursor_debug"("FAIL  ", "assertion:sym<var>")
+  debug_1069:
     .return (rx1392_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<var>"  :subid("367_1280467477.44751") :method
+.sub "!PREFIX__assertion:sym<var>"  :subid("367_1282016529.10767") :method
 .annotate 'line', 567
     new $P1394, "ResizablePMCArray"
     push $P1394, "$"
@@ -18403,7 +20103,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "codeblock"  :subid("368_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "codeblock"  :subid("368_1282016529.10767") :method :outer("349_1282016529.10767")
 .annotate 'line', 567
     .local string rx1397_tgt
     .local int rx1397_pos
@@ -18411,7 +20111,9 @@
     .local int rx1397_eos
     .local int rx1397_rep
     .local pmc rx1397_cur
+    .local pmc rx1397_debug
     (rx1397_cur, rx1397_pos, rx1397_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1397_debug, rx1397_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1397_cur
     .local pmc match
     .lex "$/", match
@@ -18423,7 +20125,9 @@
     substr rx1397_tgt, rx1397_tgt, rx1397_off
   rx1397_start:
     eq $I10, 1, rx1397_restart
+    if_null rx1397_debug, debug_1070
     rx1397_cur."!cursor_debug"("START ", "codeblock")
+  debug_1070:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1401_done
     goto rxscan1401_scan
@@ -18447,11 +20151,15 @@
 .annotate 'line', 603
   # rx pass
     rx1397_cur."!cursor_pass"(rx1397_pos, "codeblock")
+    if_null rx1397_debug, debug_1071
     rx1397_cur."!cursor_debug"("PASS  ", "codeblock", " at pos=", rx1397_pos)
+  debug_1071:
     .return (rx1397_cur)
   rx1397_restart:
 .annotate 'line', 567
+    if_null rx1397_debug, debug_1072
     rx1397_cur."!cursor_debug"("NEXT ", "codeblock")
+  debug_1072:
   rx1397_fail:
     (rx1397_rep, rx1397_pos, $I10, $P10) = rx1397_cur."!mark_fail"(0)
     lt rx1397_pos, -1, rx1397_done
@@ -18459,14 +20167,16 @@
     jump $I10
   rx1397_done:
     rx1397_cur."!cursor_fail"()
+    if_null rx1397_debug, debug_1073
     rx1397_cur."!cursor_debug"("FAIL  ", "codeblock")
+  debug_1073:
     .return (rx1397_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__codeblock"  :subid("369_1280467477.44751") :method
+.sub "!PREFIX__codeblock"  :subid("369_1282016529.10767") :method
 .annotate 'line', 567
     $P1399 = self."!PREFIX__!subrule"("LANG", "")
     new $P1400, "ResizablePMCArray"
@@ -18476,18 +20186,18 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block1403" :load :anon :subid("370_1280467477.44751")
+.sub "_block1403" :load :anon :subid("370_1282016529.10767")
 .annotate 'line', 4
-    .const 'Sub' $P1405 = "11_1280467477.44751" 
+    .const 'Sub' $P1405 = "11_1282016529.10767" 
     $P1406 = $P1405()
     .return ($P1406)
 .end
 
 
 .namespace []
-.sub "_block1424" :load :anon :subid("371_1280467477.44751")
+.sub "_block1424" :load :anon :subid("371_1282016529.10767")
 .annotate 'line', 1
-    .const 'Sub' $P1426 = "10_1280467477.44751" 
+    .const 'Sub' $P1426 = "10_1282016529.10767" 
     $P1427 = $P1426()
     .return ($P1427)
 .end
@@ -18495,7 +20205,7 @@
 ### .include 'gen/nqp-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467483.70067")
+.sub "_block11"  :anon :subid("10_1282016534.58916")
 .annotate 'line', 0
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     capture_lex $P14
@@ -18512,15 +20222,15 @@
     $P2452 = $P14()
 .annotate 'line', 1
     .return ($P2452)
-    .const 'Sub' $P2454 = "143_1280467483.70067" 
+    .const 'Sub' $P2454 = "143_1282016534.58916" 
     .return ($P2454)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post144") :outer("10_1280467483.70067")
+.sub "" :load :init :subid("post144") :outer("10_1282016534.58916")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467483.70067" 
+    .const 'Sub' $P12 = "10_1282016534.58916" 
     .local pmc block
     set block, $P12
     $P2457 = get_root_global ["parrot"], "P6metaclass"
@@ -18529,217 +20239,217 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block13"  :subid("11_1280467483.70067") :outer("10_1280467483.70067")
+.sub "_block13"  :subid("11_1282016534.58916") :outer("10_1282016534.58916")
 .annotate 'line', 3
-    .const 'Sub' $P2448 = "142_1280467483.70067" 
+    .const 'Sub' $P2448 = "142_1282016534.58916" 
     capture_lex $P2448
     get_hll_global $P2331, ["NQP";"RegexActions"], "_block2330" 
     capture_lex $P2331
-    .const 'Sub' $P2320 = "132_1280467483.70067" 
+    .const 'Sub' $P2320 = "132_1282016534.58916" 
     capture_lex $P2320
-    .const 'Sub' $P2313 = "131_1280467483.70067" 
+    .const 'Sub' $P2313 = "131_1282016534.58916" 
     capture_lex $P2313
-    .const 'Sub' $P2306 = "130_1280467483.70067" 
+    .const 'Sub' $P2306 = "130_1282016534.58916" 
     capture_lex $P2306
-    .const 'Sub' $P2299 = "129_1280467483.70067" 
+    .const 'Sub' $P2299 = "129_1282016534.58916" 
     capture_lex $P2299
-    .const 'Sub' $P2286 = "128_1280467483.70067" 
+    .const 'Sub' $P2286 = "128_1282016534.58916" 
     capture_lex $P2286
-    .const 'Sub' $P2276 = "127_1280467483.70067" 
+    .const 'Sub' $P2276 = "127_1282016534.58916" 
     capture_lex $P2276
-    .const 'Sub' $P2266 = "126_1280467483.70067" 
+    .const 'Sub' $P2266 = "126_1282016534.58916" 
     capture_lex $P2266
-    .const 'Sub' $P2256 = "125_1280467483.70067" 
+    .const 'Sub' $P2256 = "125_1282016534.58916" 
     capture_lex $P2256
-    .const 'Sub' $P2249 = "124_1280467483.70067" 
+    .const 'Sub' $P2249 = "124_1282016534.58916" 
     capture_lex $P2249
-    .const 'Sub' $P2235 = "123_1280467483.70067" 
+    .const 'Sub' $P2235 = "123_1282016534.58916" 
     capture_lex $P2235
-    .const 'Sub' $P2225 = "122_1280467483.70067" 
+    .const 'Sub' $P2225 = "122_1282016534.58916" 
     capture_lex $P2225
-    .const 'Sub' $P2188 = "121_1280467483.70067" 
+    .const 'Sub' $P2188 = "121_1282016534.58916" 
     capture_lex $P2188
-    .const 'Sub' $P2174 = "120_1280467483.70067" 
+    .const 'Sub' $P2174 = "120_1282016534.58916" 
     capture_lex $P2174
-    .const 'Sub' $P2164 = "119_1280467483.70067" 
+    .const 'Sub' $P2164 = "119_1282016534.58916" 
     capture_lex $P2164
-    .const 'Sub' $P2154 = "118_1280467483.70067" 
+    .const 'Sub' $P2154 = "118_1282016534.58916" 
     capture_lex $P2154
-    .const 'Sub' $P2144 = "117_1280467483.70067" 
+    .const 'Sub' $P2144 = "117_1282016534.58916" 
     capture_lex $P2144
-    .const 'Sub' $P2134 = "116_1280467483.70067" 
+    .const 'Sub' $P2134 = "116_1282016534.58916" 
     capture_lex $P2134
-    .const 'Sub' $P2124 = "115_1280467483.70067" 
+    .const 'Sub' $P2124 = "115_1282016534.58916" 
     capture_lex $P2124
-    .const 'Sub' $P2096 = "114_1280467483.70067" 
+    .const 'Sub' $P2096 = "114_1282016534.58916" 
     capture_lex $P2096
-    .const 'Sub' $P2079 = "113_1280467483.70067" 
+    .const 'Sub' $P2079 = "113_1282016534.58916" 
     capture_lex $P2079
-    .const 'Sub' $P2069 = "112_1280467483.70067" 
+    .const 'Sub' $P2069 = "112_1282016534.58916" 
     capture_lex $P2069
-    .const 'Sub' $P2056 = "111_1280467483.70067" 
+    .const 'Sub' $P2056 = "111_1282016534.58916" 
     capture_lex $P2056
-    .const 'Sub' $P2043 = "110_1280467483.70067" 
+    .const 'Sub' $P2043 = "110_1282016534.58916" 
     capture_lex $P2043
-    .const 'Sub' $P2030 = "109_1280467483.70067" 
+    .const 'Sub' $P2030 = "109_1282016534.58916" 
     capture_lex $P2030
-    .const 'Sub' $P2020 = "108_1280467483.70067" 
+    .const 'Sub' $P2020 = "108_1282016534.58916" 
     capture_lex $P2020
-    .const 'Sub' $P1991 = "107_1280467483.70067" 
+    .const 'Sub' $P1991 = "107_1282016534.58916" 
     capture_lex $P1991
-    .const 'Sub' $P1967 = "106_1280467483.70067" 
+    .const 'Sub' $P1967 = "106_1282016534.58916" 
     capture_lex $P1967
-    .const 'Sub' $P1957 = "105_1280467483.70067" 
+    .const 'Sub' $P1957 = "105_1282016534.58916" 
     capture_lex $P1957
-    .const 'Sub' $P1947 = "104_1280467483.70067" 
+    .const 'Sub' $P1947 = "104_1282016534.58916" 
     capture_lex $P1947
-    .const 'Sub' $P1920 = "103_1280467483.70067" 
+    .const 'Sub' $P1920 = "103_1282016534.58916" 
     capture_lex $P1920
-    .const 'Sub' $P1902 = "102_1280467483.70067" 
+    .const 'Sub' $P1902 = "102_1282016534.58916" 
     capture_lex $P1902
-    .const 'Sub' $P1892 = "101_1280467483.70067" 
+    .const 'Sub' $P1892 = "101_1282016534.58916" 
     capture_lex $P1892
-    .const 'Sub' $P1788 = "98_1280467483.70067" 
+    .const 'Sub' $P1788 = "98_1282016534.58916" 
     capture_lex $P1788
-    .const 'Sub' $P1778 = "97_1280467483.70067" 
+    .const 'Sub' $P1778 = "97_1282016534.58916" 
     capture_lex $P1778
-    .const 'Sub' $P1749 = "96_1280467483.70067" 
+    .const 'Sub' $P1749 = "96_1282016534.58916" 
     capture_lex $P1749
-    .const 'Sub' $P1707 = "95_1280467483.70067" 
+    .const 'Sub' $P1707 = "95_1282016534.58916" 
     capture_lex $P1707
-    .const 'Sub' $P1691 = "94_1280467483.70067" 
+    .const 'Sub' $P1691 = "94_1282016534.58916" 
     capture_lex $P1691
-    .const 'Sub' $P1682 = "93_1280467483.70067" 
+    .const 'Sub' $P1682 = "93_1282016534.58916" 
     capture_lex $P1682
-    .const 'Sub' $P1650 = "92_1280467483.70067" 
+    .const 'Sub' $P1650 = "92_1282016534.58916" 
     capture_lex $P1650
-    .const 'Sub' $P1551 = "89_1280467483.70067" 
+    .const 'Sub' $P1551 = "89_1282016534.58916" 
     capture_lex $P1551
-    .const 'Sub' $P1534 = "88_1280467483.70067" 
+    .const 'Sub' $P1534 = "88_1282016534.58916" 
     capture_lex $P1534
-    .const 'Sub' $P1514 = "87_1280467483.70067" 
+    .const 'Sub' $P1514 = "87_1282016534.58916" 
     capture_lex $P1514
-    .const 'Sub' $P1402 = "84_1280467483.70067" 
+    .const 'Sub' $P1402 = "84_1282016534.58916" 
     capture_lex $P1402
-    .const 'Sub' $P1345 = "80_1280467483.70067" 
+    .const 'Sub' $P1345 = "80_1282016534.58916" 
     capture_lex $P1345
-    .const 'Sub' $P1300 = "78_1280467483.70067" 
+    .const 'Sub' $P1300 = "78_1282016534.58916" 
     capture_lex $P1300
-    .const 'Sub' $P1250 = "76_1280467483.70067" 
+    .const 'Sub' $P1250 = "76_1282016534.58916" 
     capture_lex $P1250
-    .const 'Sub' $P1240 = "75_1280467483.70067" 
+    .const 'Sub' $P1240 = "75_1282016534.58916" 
     capture_lex $P1240
-    .const 'Sub' $P1230 = "74_1280467483.70067" 
+    .const 'Sub' $P1230 = "74_1282016534.58916" 
     capture_lex $P1230
-    .const 'Sub' $P1159 = "72_1280467483.70067" 
+    .const 'Sub' $P1159 = "72_1282016534.58916" 
     capture_lex $P1159
-    .const 'Sub' $P1149 = "71_1280467483.70067" 
+    .const 'Sub' $P1149 = "71_1282016534.58916" 
     capture_lex $P1149
-    .const 'Sub' $P1132 = "70_1280467483.70067" 
+    .const 'Sub' $P1132 = "70_1282016534.58916" 
     capture_lex $P1132
-    .const 'Sub' $P1115 = "69_1280467483.70067" 
+    .const 'Sub' $P1115 = "69_1282016534.58916" 
     capture_lex $P1115
-    .const 'Sub' $P1098 = "68_1280467483.70067" 
+    .const 'Sub' $P1098 = "68_1282016534.58916" 
     capture_lex $P1098
-    .const 'Sub' $P1088 = "67_1280467483.70067" 
+    .const 'Sub' $P1088 = "67_1282016534.58916" 
     capture_lex $P1088
-    .const 'Sub' $P1078 = "66_1280467483.70067" 
+    .const 'Sub' $P1078 = "66_1282016534.58916" 
     capture_lex $P1078
-    .const 'Sub' $P1068 = "65_1280467483.70067" 
+    .const 'Sub' $P1068 = "65_1282016534.58916" 
     capture_lex $P1068
-    .const 'Sub' $P1044 = "64_1280467483.70067" 
+    .const 'Sub' $P1044 = "64_1282016534.58916" 
     capture_lex $P1044
-    .const 'Sub' $P991 = "63_1280467483.70067" 
+    .const 'Sub' $P991 = "63_1282016534.58916" 
     capture_lex $P991
-    .const 'Sub' $P981 = "62_1280467483.70067" 
+    .const 'Sub' $P981 = "62_1282016534.58916" 
     capture_lex $P981
-    .const 'Sub' $P892 = "60_1280467483.70067" 
+    .const 'Sub' $P892 = "60_1282016534.58916" 
     capture_lex $P892
-    .const 'Sub' $P866 = "59_1280467483.70067" 
+    .const 'Sub' $P866 = "59_1282016534.58916" 
     capture_lex $P866
-    .const 'Sub' $P850 = "58_1280467483.70067" 
+    .const 'Sub' $P850 = "58_1282016534.58916" 
     capture_lex $P850
-    .const 'Sub' $P840 = "57_1280467483.70067" 
+    .const 'Sub' $P840 = "57_1282016534.58916" 
     capture_lex $P840
-    .const 'Sub' $P830 = "56_1280467483.70067" 
+    .const 'Sub' $P830 = "56_1282016534.58916" 
     capture_lex $P830
-    .const 'Sub' $P820 = "55_1280467483.70067" 
+    .const 'Sub' $P820 = "55_1282016534.58916" 
     capture_lex $P820
-    .const 'Sub' $P810 = "54_1280467483.70067" 
+    .const 'Sub' $P810 = "54_1282016534.58916" 
     capture_lex $P810
-    .const 'Sub' $P800 = "53_1280467483.70067" 
+    .const 'Sub' $P800 = "53_1282016534.58916" 
     capture_lex $P800
-    .const 'Sub' $P790 = "52_1280467483.70067" 
+    .const 'Sub' $P790 = "52_1282016534.58916" 
     capture_lex $P790
-    .const 'Sub' $P780 = "51_1280467483.70067" 
+    .const 'Sub' $P780 = "51_1282016534.58916" 
     capture_lex $P780
-    .const 'Sub' $P770 = "50_1280467483.70067" 
+    .const 'Sub' $P770 = "50_1282016534.58916" 
     capture_lex $P770
-    .const 'Sub' $P760 = "49_1280467483.70067" 
+    .const 'Sub' $P760 = "49_1282016534.58916" 
     capture_lex $P760
-    .const 'Sub' $P750 = "48_1280467483.70067" 
+    .const 'Sub' $P750 = "48_1282016534.58916" 
     capture_lex $P750
-    .const 'Sub' $P740 = "47_1280467483.70067" 
+    .const 'Sub' $P740 = "47_1282016534.58916" 
     capture_lex $P740
-    .const 'Sub' $P730 = "46_1280467483.70067" 
+    .const 'Sub' $P730 = "46_1282016534.58916" 
     capture_lex $P730
-    .const 'Sub' $P720 = "45_1280467483.70067" 
+    .const 'Sub' $P720 = "45_1282016534.58916" 
     capture_lex $P720
-    .const 'Sub' $P702 = "44_1280467483.70067" 
+    .const 'Sub' $P702 = "44_1282016534.58916" 
     capture_lex $P702
-    .const 'Sub' $P667 = "43_1280467483.70067" 
+    .const 'Sub' $P667 = "43_1282016534.58916" 
     capture_lex $P667
-    .const 'Sub' $P651 = "42_1280467483.70067" 
+    .const 'Sub' $P651 = "42_1282016534.58916" 
     capture_lex $P651
-    .const 'Sub' $P630 = "41_1280467483.70067" 
+    .const 'Sub' $P630 = "41_1282016534.58916" 
     capture_lex $P630
-    .const 'Sub' $P610 = "40_1280467483.70067" 
+    .const 'Sub' $P610 = "40_1282016534.58916" 
     capture_lex $P610
-    .const 'Sub' $P597 = "39_1280467483.70067" 
+    .const 'Sub' $P597 = "39_1282016534.58916" 
     capture_lex $P597
-    .const 'Sub' $P571 = "38_1280467483.70067" 
+    .const 'Sub' $P571 = "38_1282016534.58916" 
     capture_lex $P571
-    .const 'Sub' $P535 = "37_1280467483.70067" 
+    .const 'Sub' $P535 = "37_1282016534.58916" 
     capture_lex $P535
-    .const 'Sub' $P518 = "36_1280467483.70067" 
+    .const 'Sub' $P518 = "36_1282016534.58916" 
     capture_lex $P518
-    .const 'Sub' $P504 = "35_1280467483.70067" 
+    .const 'Sub' $P504 = "35_1282016534.58916" 
     capture_lex $P504
-    .const 'Sub' $P451 = "33_1280467483.70067" 
+    .const 'Sub' $P451 = "33_1282016534.58916" 
     capture_lex $P451
-    .const 'Sub' $P440 = "32_1280467483.70067" 
+    .const 'Sub' $P440 = "32_1282016534.58916" 
     capture_lex $P440
-    .const 'Sub' $P427 = "31_1280467483.70067" 
+    .const 'Sub' $P427 = "31_1282016534.58916" 
     capture_lex $P427
-    .const 'Sub' $P407 = "30_1280467483.70067" 
+    .const 'Sub' $P407 = "30_1282016534.58916" 
     capture_lex $P407
-    .const 'Sub' $P397 = "29_1280467483.70067" 
+    .const 'Sub' $P397 = "29_1282016534.58916" 
     capture_lex $P397
-    .const 'Sub' $P387 = "28_1280467483.70067" 
+    .const 'Sub' $P387 = "28_1282016534.58916" 
     capture_lex $P387
-    .const 'Sub' $P371 = "27_1280467483.70067" 
+    .const 'Sub' $P371 = "27_1282016534.58916" 
     capture_lex $P371
-    .const 'Sub' $P288 = "25_1280467483.70067" 
+    .const 'Sub' $P288 = "25_1282016534.58916" 
     capture_lex $P288
-    .const 'Sub' $P245 = "23_1280467483.70067" 
+    .const 'Sub' $P245 = "23_1282016534.58916" 
     capture_lex $P245
-    .const 'Sub' $P213 = "22_1280467483.70067" 
+    .const 'Sub' $P213 = "22_1282016534.58916" 
     capture_lex $P213
-    .const 'Sub' $P180 = "21_1280467483.70067" 
+    .const 'Sub' $P180 = "21_1282016534.58916" 
     capture_lex $P180
-    .const 'Sub' $P170 = "20_1280467483.70067" 
+    .const 'Sub' $P170 = "20_1282016534.58916" 
     capture_lex $P170
-    .const 'Sub' $P151 = "19_1280467483.70067" 
+    .const 'Sub' $P151 = "19_1282016534.58916" 
     capture_lex $P151
-    .const 'Sub' $P100 = "18_1280467483.70067" 
+    .const 'Sub' $P100 = "18_1282016534.58916" 
     capture_lex $P100
-    .const 'Sub' $P84 = "17_1280467483.70067" 
+    .const 'Sub' $P84 = "17_1282016534.58916" 
     capture_lex $P84
-    .const 'Sub' $P63 = "16_1280467483.70067" 
+    .const 'Sub' $P63 = "16_1282016534.58916" 
     capture_lex $P63
-    .const 'Sub' $P27 = "13_1280467483.70067" 
+    .const 'Sub' $P27 = "13_1282016534.58916" 
     capture_lex $P27
-    .const 'Sub' $P16 = "12_1280467483.70067" 
+    .const 'Sub' $P16 = "12_1282016534.58916" 
     capture_lex $P16
     get_global $P15, "@BLOCK"
     unless_null $P15, vivify_147
@@ -18747,27 +20457,27 @@
     set_global "@BLOCK", $P15
   vivify_147:
 .annotate 'line', 9
-    .const 'Sub' $P16 = "12_1280467483.70067" 
+    .const 'Sub' $P16 = "12_1282016534.58916" 
     newclosure $P26, $P16
     .lex "xblock_immediate", $P26
 .annotate 'line', 14
-    .const 'Sub' $P27 = "13_1280467483.70067" 
+    .const 'Sub' $P27 = "13_1282016534.58916" 
     newclosure $P62, $P27
     .lex "block_immediate", $P62
 .annotate 'line', 24
-    .const 'Sub' $P63 = "16_1280467483.70067" 
+    .const 'Sub' $P63 = "16_1282016534.58916" 
     newclosure $P83, $P63
     .lex "vivitype", $P83
 .annotate 'line', 43
-    .const 'Sub' $P84 = "17_1280467483.70067" 
+    .const 'Sub' $P84 = "17_1282016534.58916" 
     newclosure $P99, $P84
     .lex "colonpair_str", $P99
 .annotate 'line', 223
-    .const 'Sub' $P100 = "18_1280467483.70067" 
+    .const 'Sub' $P100 = "18_1282016534.58916" 
     newclosure $P150, $P100
     .lex "push_block_handler", $P150
 .annotate 'line', 835
-    .const 'Sub' $P151 = "19_1280467483.70067" 
+    .const 'Sub' $P151 = "19_1282016534.58916" 
     newclosure $P165, $P151
     .lex "control", $P165
 .annotate 'line', 3
@@ -18794,19 +20504,19 @@
     $P2442 = $P2331()
 .annotate 'line', 3
     .return ($P2442)
-    .const 'Sub' $P2444 = "141_1280467483.70067" 
+    .const 'Sub' $P2444 = "141_1282016534.58916" 
     .return ($P2444)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "" :load :init :subid("post145") :outer("11_1280467483.70067")
+.sub "" :load :init :subid("post145") :outer("11_1282016534.58916")
 .annotate 'line', 3
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     .local pmc block
     set block, $P14
 .annotate 'line', 5
-    .const 'Sub' $P2448 = "142_1280467483.70067" 
+    .const 'Sub' $P2448 = "142_1282016534.58916" 
     capture_lex $P2448
     $P2448()
     $P2451 = get_root_global ["parrot"], "P6metaclass"
@@ -18815,7 +20525,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2447"  :anon :subid("142_1280467483.70067") :outer("11_1280467483.70067")
+.sub "_block2447"  :anon :subid("142_1282016534.58916") :outer("11_1282016534.58916")
 .annotate 'line', 6
     get_global $P2449, "@BLOCK"
     unless_null $P2449, vivify_146
@@ -18831,7 +20541,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "xblock_immediate"  :subid("12_1280467483.70067") :outer("11_1280467483.70067")
+.sub "xblock_immediate"  :subid("12_1282016534.58916") :outer("11_1282016534.58916")
     .param pmc param_19
 .annotate 'line', 9
     new $P18, 'ExceptionHandler'
@@ -18868,10 +20578,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "block_immediate"  :subid("13_1280467483.70067") :outer("11_1280467483.70067")
+.sub "block_immediate"  :subid("13_1282016534.58916") :outer("11_1282016534.58916")
     .param pmc param_30
 .annotate 'line', 14
-    .const 'Sub' $P40 = "14_1280467483.70067" 
+    .const 'Sub' $P40 = "14_1282016534.58916" 
     capture_lex $P40
     new $P29, 'ExceptionHandler'
     set_addr $P29, control_28
@@ -18893,7 +20603,7 @@
     set $P33, $P38
   unless_34_end:
     if $P33, unless_32_end
-    .const 'Sub' $P40 = "14_1280467483.70067" 
+    .const 'Sub' $P40 = "14_1282016534.58916" 
     capture_lex $P40
     $P40()
   unless_32_end:
@@ -18910,9 +20620,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block39"  :anon :subid("14_1280467483.70067") :outer("13_1280467483.70067")
+.sub "_block39"  :anon :subid("14_1282016534.58916") :outer("13_1282016534.58916")
 .annotate 'line', 16
-    .const 'Sub' $P51 = "15_1280467483.70067" 
+    .const 'Sub' $P51 = "15_1282016534.58916" 
     capture_lex $P51
 .annotate 'line', 17
     new $P41, "Undef"
@@ -18935,7 +20645,7 @@
     unless $P45, loop56_done
     shift $P49, $P45
   loop56_redo:
-    .const 'Sub' $P51 = "15_1280467483.70067" 
+    .const 'Sub' $P51 = "15_1282016534.58916" 
     capture_lex $P51
     $P51($P49)
   loop56_next:
@@ -18958,7 +20668,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block50"  :anon :subid("15_1280467483.70067") :outer("14_1280467483.70067")
+.sub "_block50"  :anon :subid("15_1282016534.58916") :outer("14_1282016534.58916")
     .param pmc param_52
 .annotate 'line', 18
     .lex "$_", param_52
@@ -18971,7 +20681,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "vivitype"  :subid("16_1280467483.70067") :outer("11_1280467483.70067")
+.sub "vivitype"  :subid("16_1282016534.58916") :outer("11_1282016534.58916")
     .param pmc param_66
 .annotate 'line', 24
     new $P65, 'ExceptionHandler'
@@ -19020,7 +20730,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "colonpair_str"  :subid("17_1280467483.70067") :outer("11_1280467483.70067")
+.sub "colonpair_str"  :subid("17_1282016534.58916") :outer("11_1282016534.58916")
     .param pmc param_87
 .annotate 'line', 43
     new $P86, 'ExceptionHandler'
@@ -19059,7 +20769,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "push_block_handler"  :subid("18_1280467483.70067") :outer("11_1280467483.70067")
+.sub "push_block_handler"  :subid("18_1282016534.58916") :outer("11_1282016534.58916")
     .param pmc param_103
     .param pmc param_104
 .annotate 'line', 223
@@ -19177,7 +20887,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "control"  :subid("19_1280467483.70067") :outer("11_1280467483.70067")
+.sub "control"  :subid("19_1282016534.58916") :outer("11_1282016534.58916")
     .param pmc param_154
     .param pmc param_155
 .annotate 'line', 835
@@ -19210,7 +20920,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("20_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "TOP"  :subid("20_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_173
 .annotate 'line', 33
     new $P172, 'ExceptionHandler'
@@ -19241,7 +20951,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "deflongname"  :subid("21_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "deflongname"  :subid("21_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_183
 .annotate 'line', 35
     new $P182, 'ExceptionHandler'
@@ -19331,7 +21041,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "comp_unit"  :subid("22_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "comp_unit"  :subid("22_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_216
 .annotate 'line', 49
     new $P215, 'ExceptionHandler'
@@ -19406,10 +21116,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statementlist"  :subid("23_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statementlist"  :subid("23_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_248
 .annotate 'line', 76
-    .const 'Sub' $P262 = "24_1280467483.70067" 
+    .const 'Sub' $P262 = "24_1282016534.58916" 
     capture_lex $P262
     new $P247, 'ExceptionHandler'
     set_addr $P247, control_246
@@ -19454,7 +21164,7 @@
     unless $P256, loop281_done
     shift $P260, $P256
   loop281_redo:
-    .const 'Sub' $P262 = "24_1280467483.70067" 
+    .const 'Sub' $P262 = "24_1282016534.58916" 
     capture_lex $P262
     $P262($P260)
   loop281_next:
@@ -19484,7 +21194,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block261"  :anon :subid("24_1280467483.70067") :outer("23_1280467483.70067")
+.sub "_block261"  :anon :subid("24_1282016534.58916") :outer("23_1282016534.58916")
     .param pmc param_264
 .annotate 'line', 80
     new $P263, "Undef"
@@ -19539,12 +21249,12 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement"  :subid("25_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement"  :subid("25_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_291
     .param pmc param_292 :optional
     .param int has_param_292 :opt_flag
 .annotate 'line', 89
-    .const 'Sub' $P300 = "26_1280467483.70067" 
+    .const 'Sub' $P300 = "26_1282016534.58916" 
     capture_lex $P300
     new $P290, 'ExceptionHandler'
     set_addr $P290, control_289
@@ -19603,7 +21313,7 @@
     goto if_296_end
   if_296:
 .annotate 'line', 91
-    .const 'Sub' $P300 = "26_1280467483.70067" 
+    .const 'Sub' $P300 = "26_1282016534.58916" 
     capture_lex $P300
     $P300()
   if_296_end:
@@ -19622,7 +21332,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block299"  :anon :subid("26_1280467483.70067") :outer("25_1280467483.70067")
+.sub "_block299"  :anon :subid("26_1282016534.58916") :outer("25_1282016534.58916")
 .annotate 'line', 92
     new $P301, "Undef"
     .lex "$mc", $P301
@@ -19795,7 +21505,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "xblock"  :subid("27_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "xblock"  :subid("27_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_374
 .annotate 'line', 117
     new $P373, 'ExceptionHandler'
@@ -19840,7 +21550,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "pblock"  :subid("28_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "pblock"  :subid("28_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_390
 .annotate 'line', 121
     new $P389, 'ExceptionHandler'
@@ -19873,7 +21583,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "block"  :subid("29_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "block"  :subid("29_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_400
 .annotate 'line', 125
     new $P399, 'ExceptionHandler'
@@ -19906,7 +21616,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "blockoid"  :subid("30_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "blockoid"  :subid("30_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_410
 .annotate 'line', 129
     new $P409, 'ExceptionHandler'
@@ -19963,7 +21673,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "newpad"  :subid("31_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "newpad"  :subid("31_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_430
 .annotate 'line', 138
     new $P429, 'ExceptionHandler'
@@ -19999,7 +21709,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "outerctx"  :subid("32_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "outerctx"  :subid("32_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_443
 .annotate 'line', 143
     new $P442, 'ExceptionHandler'
@@ -20039,10 +21749,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<if>"  :subid("33_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<if>"  :subid("33_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_454
 .annotate 'line', 150
-    .const 'Sub' $P482 = "34_1280467483.70067" 
+    .const 'Sub' $P482 = "34_1282016534.58916" 
     capture_lex $P482
     new $P453, 'ExceptionHandler'
     set_addr $P453, control_452
@@ -20127,7 +21837,7 @@
     isgt $I480, $N479, 0.0
     unless $I480, loop497_done
   loop497_redo:
-    .const 'Sub' $P482 = "34_1280467483.70067" 
+    .const 'Sub' $P482 = "34_1282016534.58916" 
     capture_lex $P482
     $P482()
   loop497_next:
@@ -20155,7 +21865,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block481"  :anon :subid("34_1280467483.70067") :outer("33_1280467483.70067")
+.sub "_block481"  :anon :subid("34_1282016534.58916") :outer("33_1282016534.58916")
 .annotate 'line', 159
     new $P483, "Undef"
     .lex "$else", $P483
@@ -20195,7 +21905,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<unless>"  :subid("35_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<unless>"  :subid("35_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_507
 .annotate 'line', 166
     new $P506, 'ExceptionHandler'
@@ -20237,7 +21947,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<while>"  :subid("36_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<while>"  :subid("36_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_521
 .annotate 'line', 172
     new $P520, 'ExceptionHandler'
@@ -20288,7 +21998,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<repeat>"  :subid("37_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<repeat>"  :subid("37_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_538
 .annotate 'line', 178
     new $P537, 'ExceptionHandler'
@@ -20389,7 +22099,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<for>"  :subid("38_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<for>"  :subid("38_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_574
 .annotate 'line', 192
     new $P573, 'ExceptionHandler'
@@ -20470,7 +22180,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<return>"  :subid("39_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<return>"  :subid("39_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_600
 .annotate 'line', 205
     new $P599, 'ExceptionHandler'
@@ -20506,7 +22216,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<CATCH>"  :subid("40_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<CATCH>"  :subid("40_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_613
 .annotate 'line', 209
     new $P612, 'ExceptionHandler'
@@ -20565,7 +22275,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<CONTROL>"  :subid("41_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<CONTROL>"  :subid("41_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_633
 .annotate 'line', 216
     new $P632, 'ExceptionHandler'
@@ -20624,7 +22334,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_prefix:sym<INIT>"  :subid("42_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_prefix:sym<INIT>"  :subid("42_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_654
 .annotate 'line', 260
     new $P653, 'ExceptionHandler'
@@ -20671,7 +22381,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_prefix:sym<try>"  :subid("43_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_prefix:sym<try>"  :subid("43_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_670
 .annotate 'line', 265
     new $P669, 'ExceptionHandler'
@@ -20749,7 +22459,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "blorst"  :subid("44_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "blorst"  :subid("44_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_705
 .annotate 'line', 288
     new $P704, 'ExceptionHandler'
@@ -20809,7 +22519,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_cond:sym<if>"  :subid("45_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_mod_cond:sym<if>"  :subid("45_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_723
 .annotate 'line', 296
     new $P722, 'ExceptionHandler'
@@ -20840,7 +22550,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_cond:sym<unless>"  :subid("46_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_mod_cond:sym<unless>"  :subid("46_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_733
 .annotate 'line', 297
     new $P732, 'ExceptionHandler'
@@ -20871,7 +22581,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_loop:sym<while>"  :subid("47_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_mod_loop:sym<while>"  :subid("47_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_743
 .annotate 'line', 299
     new $P742, 'ExceptionHandler'
@@ -20902,7 +22612,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_loop:sym<until>"  :subid("48_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_mod_loop:sym<until>"  :subid("48_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_753
 .annotate 'line', 300
     new $P752, 'ExceptionHandler'
@@ -20933,7 +22643,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<fatarrow>"  :subid("49_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<fatarrow>"  :subid("49_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_763
 .annotate 'line', 304
     new $P762, 'ExceptionHandler'
@@ -20964,7 +22674,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<colonpair>"  :subid("50_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<colonpair>"  :subid("50_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_773
 .annotate 'line', 305
     new $P772, 'ExceptionHandler'
@@ -20995,7 +22705,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<variable>"  :subid("51_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<variable>"  :subid("51_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_783
 .annotate 'line', 306
     new $P782, 'ExceptionHandler'
@@ -21026,7 +22736,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<package_declarator>"  :subid("52_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<package_declarator>"  :subid("52_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_793
 .annotate 'line', 307
     new $P792, 'ExceptionHandler'
@@ -21057,7 +22767,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<scope_declarator>"  :subid("53_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<scope_declarator>"  :subid("53_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_803
 .annotate 'line', 308
     new $P802, 'ExceptionHandler'
@@ -21088,7 +22798,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<routine_declarator>"  :subid("54_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<routine_declarator>"  :subid("54_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_813
 .annotate 'line', 309
     new $P812, 'ExceptionHandler'
@@ -21119,7 +22829,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<regex_declarator>"  :subid("55_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<regex_declarator>"  :subid("55_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_823
 .annotate 'line', 310
     new $P822, 'ExceptionHandler'
@@ -21150,7 +22860,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<statement_prefix>"  :subid("56_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<statement_prefix>"  :subid("56_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_833
 .annotate 'line', 311
     new $P832, 'ExceptionHandler'
@@ -21181,7 +22891,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<lambda>"  :subid("57_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<lambda>"  :subid("57_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_843
 .annotate 'line', 312
     new $P842, 'ExceptionHandler'
@@ -21212,7 +22922,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "fatarrow"  :subid("58_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "fatarrow"  :subid("58_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_853
 .annotate 'line', 314
     new $P852, 'ExceptionHandler'
@@ -21262,7 +22972,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "colonpair"  :subid("59_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "colonpair"  :subid("59_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_869
 .annotate 'line', 320
     new $P868, 'ExceptionHandler'
@@ -21344,10 +23054,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "variable"  :subid("60_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "variable"  :subid("60_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_895
 .annotate 'line', 328
-    .const 'Sub' $P908 = "61_1280467483.70067" 
+    .const 'Sub' $P908 = "61_1282016534.58916" 
     capture_lex $P908
     new $P894, 'ExceptionHandler'
     set_addr $P894, control_893
@@ -21371,7 +23081,7 @@
   vivify_325:
     if $P900, if_898
 .annotate 'line', 334
-    .const 'Sub' $P908 = "61_1280467483.70067" 
+    .const 'Sub' $P908 = "61_1282016534.58916" 
     capture_lex $P908
     $P908()
     goto if_898_end
@@ -21408,7 +23118,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block907"  :anon :subid("61_1280467483.70067") :outer("60_1280467483.70067")
+.sub "_block907"  :anon :subid("61_1282016534.58916") :outer("60_1282016534.58916")
 .annotate 'line', 335
     $P909 = root_new ['parrot';'ResizablePMCArray']
     .lex "@name", $P909
@@ -21578,7 +23288,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "package_declarator:sym<module>"  :subid("62_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "package_declarator:sym<module>"  :subid("62_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_984
 .annotate 'line', 366
     new $P983, 'ExceptionHandler'
@@ -21609,7 +23319,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "package_declarator:sym<class>"  :subid("63_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "package_declarator:sym<class>"  :subid("63_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_994
 .annotate 'line', 367
     new $P993, 'ExceptionHandler'
@@ -21767,7 +23477,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "package_def"  :subid("64_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "package_def"  :subid("64_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1047
 .annotate 'line', 390
     new $P1046, 'ExceptionHandler'
@@ -21846,7 +23556,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scope_declarator:sym<my>"  :subid("65_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "scope_declarator:sym<my>"  :subid("65_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1071
 .annotate 'line', 397
     new $P1070, 'ExceptionHandler'
@@ -21877,7 +23587,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scope_declarator:sym<our>"  :subid("66_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "scope_declarator:sym<our>"  :subid("66_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1081
 .annotate 'line', 398
     new $P1080, 'ExceptionHandler'
@@ -21908,7 +23618,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scope_declarator:sym<has>"  :subid("67_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "scope_declarator:sym<has>"  :subid("67_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1091
 .annotate 'line', 399
     new $P1090, 'ExceptionHandler'
@@ -21939,7 +23649,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scoped"  :subid("68_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "scoped"  :subid("68_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1101
 .annotate 'line', 401
     new $P1100, 'ExceptionHandler'
@@ -21998,7 +23708,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "declarator"  :subid("69_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "declarator"  :subid("69_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1118
 .annotate 'line', 407
     new $P1117, 'ExceptionHandler'
@@ -22057,7 +23767,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "multi_declarator:sym<multi>"  :subid("70_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "multi_declarator:sym<multi>"  :subid("70_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1135
 .annotate 'line', 413
     new $P1134, 'ExceptionHandler'
@@ -22111,7 +23821,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "multi_declarator:sym<null>"  :subid("71_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "multi_declarator:sym<null>"  :subid("71_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1152
 .annotate 'line', 414
     new $P1151, 'ExceptionHandler'
@@ -22142,10 +23852,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "variable_declarator"  :subid("72_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "variable_declarator"  :subid("72_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1162
 .annotate 'line', 417
-    .const 'Sub' $P1202 = "73_1280467483.70067" 
+    .const 'Sub' $P1202 = "73_1282016534.58916" 
     capture_lex $P1202
     new $P1161, 'ExceptionHandler'
     set_addr $P1161, control_1160
@@ -22227,7 +23937,7 @@
     iseq $I1187, $S1186, "has"
     if $I1187, if_1184
 .annotate 'line', 434
-    .const 'Sub' $P1202 = "73_1280467483.70067" 
+    .const 'Sub' $P1202 = "73_1282016534.58916" 
     capture_lex $P1202
     $P1202()
     goto if_1184_end
@@ -22287,7 +23997,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1201"  :anon :subid("73_1280467483.70067") :outer("72_1280467483.70067")
+.sub "_block1201"  :anon :subid("73_1282016534.58916") :outer("72_1282016534.58916")
 .annotate 'line', 435
     new $P1203, "Undef"
     .lex "$scope", $P1203
@@ -22349,7 +24059,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "routine_declarator:sym<sub>"  :subid("74_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "routine_declarator:sym<sub>"  :subid("74_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1233
 .annotate 'line', 445
     new $P1232, 'ExceptionHandler'
@@ -22380,7 +24090,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "routine_declarator:sym<method>"  :subid("75_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "routine_declarator:sym<method>"  :subid("75_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1243
 .annotate 'line', 446
     new $P1242, 'ExceptionHandler'
@@ -22411,10 +24121,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "routine_def"  :subid("76_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "routine_def"  :subid("76_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1253
 .annotate 'line', 448
-    .const 'Sub' $P1264 = "77_1280467483.70067" 
+    .const 'Sub' $P1264 = "77_1282016534.58916" 
     capture_lex $P1264
     new $P1252, 'ExceptionHandler'
     set_addr $P1252, control_1251
@@ -22451,7 +24161,7 @@
     new $P1262, "Undef"
   vivify_423:
     unless $P1262, if_1260_end
-    .const 'Sub' $P1264 = "77_1280467483.70067" 
+    .const 'Sub' $P1264 = "77_1282016534.58916" 
     capture_lex $P1264
     $P1264()
   if_1260_end:
@@ -22470,7 +24180,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1263"  :anon :subid("77_1280467483.70067") :outer("76_1280467483.70067")
+.sub "_block1263"  :anon :subid("77_1282016534.58916") :outer("76_1282016534.58916")
 .annotate 'line', 453
     new $P1265, "Undef"
     .lex "$name", $P1265
@@ -22567,10 +24277,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "method_def"  :subid("78_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "method_def"  :subid("78_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1303
 .annotate 'line', 466
-    .const 'Sub' $P1324 = "79_1280467483.70067" 
+    .const 'Sub' $P1324 = "79_1282016534.58916" 
     capture_lex $P1324
     new $P1302, 'ExceptionHandler'
     set_addr $P1302, control_1301
@@ -22637,7 +24347,7 @@
     new $P1322, "Undef"
   vivify_444:
     unless $P1322, if_1320_end
-    .const 'Sub' $P1324 = "79_1280467483.70067" 
+    .const 'Sub' $P1324 = "79_1282016534.58916" 
     capture_lex $P1324
     $P1324()
   if_1320_end:
@@ -22671,7 +24381,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1323"  :anon :subid("79_1280467483.70067") :outer("78_1280467483.70067")
+.sub "_block1323"  :anon :subid("79_1282016534.58916") :outer("78_1282016534.58916")
 .annotate 'line', 476
     new $P1325, "Undef"
     .lex "$name", $P1325
@@ -22703,12 +24413,12 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "signature"  :subid("80_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "signature"  :subid("80_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1348
 .annotate 'line', 484
-    .const 'Sub' $P1374 = "82_1280467483.70067" 
+    .const 'Sub' $P1374 = "82_1282016534.58916" 
     capture_lex $P1374
-    .const 'Sub' $P1359 = "81_1280467483.70067" 
+    .const 'Sub' $P1359 = "81_1282016534.58916" 
     capture_lex $P1359
     new $P1347, 'ExceptionHandler'
     set_addr $P1347, control_1346
@@ -22752,7 +24462,7 @@
     unless $P1353, loop1365_done
     shift $P1357, $P1353
   loop1365_redo:
-    .const 'Sub' $P1359 = "81_1280467483.70067" 
+    .const 'Sub' $P1359 = "81_1282016534.58916" 
     capture_lex $P1359
     $P1359($P1357)
   loop1365_next:
@@ -22781,7 +24491,7 @@
     set $P1368, $I1372
     goto if_1369_end
   if_1369:
-    .const 'Sub' $P1374 = "82_1280467483.70067" 
+    .const 'Sub' $P1374 = "82_1282016534.58916" 
     capture_lex $P1374
     $P1400 = $P1374()
     set $P1368, $P1400
@@ -22797,7 +24507,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1358"  :anon :subid("81_1280467483.70067") :outer("80_1280467483.70067")
+.sub "_block1358"  :anon :subid("81_1282016534.58916") :outer("80_1282016534.58916")
     .param pmc param_1360
 .annotate 'line', 487
     .lex "$_", param_1360
@@ -22811,9 +24521,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1373"  :anon :subid("82_1280467483.70067") :outer("80_1280467483.70067")
+.sub "_block1373"  :anon :subid("82_1282016534.58916") :outer("80_1282016534.58916")
 .annotate 'line', 490
-    .const 'Sub' $P1383 = "83_1280467483.70067" 
+    .const 'Sub' $P1383 = "83_1282016534.58916" 
     capture_lex $P1383
 .annotate 'line', 491
     $P1375 = root_new ['parrot';'ResizablePMCArray']
@@ -22834,7 +24544,7 @@
     unless $P1377, loop1393_done
     shift $P1381, $P1377
   loop1393_redo:
-    .const 'Sub' $P1383 = "83_1280467483.70067" 
+    .const 'Sub' $P1383 = "83_1282016534.58916" 
     capture_lex $P1383
     $P1383($P1381)
   loop1393_next:
@@ -22865,7 +24575,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1382"  :anon :subid("83_1280467483.70067") :outer("82_1280467483.70067")
+.sub "_block1382"  :anon :subid("83_1282016534.58916") :outer("82_1282016534.58916")
     .param pmc param_1384
 .annotate 'line', 492
     .lex "$_", param_1384
@@ -22888,10 +24598,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "parameter"  :subid("84_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "parameter"  :subid("84_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1405
 .annotate 'line', 499
-    .const 'Sub' $P1486 = "85_1280467483.70067" 
+    .const 'Sub' $P1486 = "85_1282016534.58916" 
     capture_lex $P1486
     new $P1404, 'ExceptionHandler'
     set_addr $P1404, control_1403
@@ -23117,7 +24827,7 @@
     new $P1484, "Undef"
   vivify_490:
     unless $P1484, if_1482_end
-    .const 'Sub' $P1486 = "85_1280467483.70067" 
+    .const 'Sub' $P1486 = "85_1282016534.58916" 
     capture_lex $P1486
     $P1486()
   if_1482_end:
@@ -23137,9 +24847,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1485"  :anon :subid("85_1280467483.70067") :outer("84_1280467483.70067")
+.sub "_block1485"  :anon :subid("85_1282016534.58916") :outer("84_1282016534.58916")
 .annotate 'line', 530
-    .const 'Sub' $P1498 = "86_1280467483.70067" 
+    .const 'Sub' $P1498 = "86_1282016534.58916" 
     capture_lex $P1498
 .annotate 'line', 531
     $P1487 = root_new ['parrot';'ResizablePMCArray']
@@ -23178,7 +24888,7 @@
     unless $P1489, loop1504_done
     shift $P1496, $P1489
   loop1504_redo:
-    .const 'Sub' $P1498 = "86_1280467483.70067" 
+    .const 'Sub' $P1498 = "86_1282016534.58916" 
     capture_lex $P1498
     $P1498($P1496)
   loop1504_next:
@@ -23202,7 +24912,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1497"  :anon :subid("86_1280467483.70067") :outer("85_1280467483.70067")
+.sub "_block1497"  :anon :subid("86_1282016534.58916") :outer("85_1282016534.58916")
     .param pmc param_1499
 .annotate 'line', 532
     .lex "$_", param_1499
@@ -23216,7 +24926,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "param_var"  :subid("87_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "param_var"  :subid("87_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1517
 .annotate 'line', 539
     new $P1516, 'ExceptionHandler'
@@ -23270,7 +24980,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "named_param"  :subid("88_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "named_param"  :subid("88_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1537
 .annotate 'line', 547
     new $P1536, 'ExceptionHandler'
@@ -23324,14 +25034,14 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "regex_declarator"  :subid("89_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "regex_declarator"  :subid("89_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1554
     .param pmc param_1555 :optional
     .param int has_param_1555 :opt_flag
 .annotate 'line', 553
-    .const 'Sub' $P1625 = "91_1280467483.70067" 
+    .const 'Sub' $P1625 = "91_1282016534.58916" 
     capture_lex $P1625
-    .const 'Sub' $P1597 = "90_1280467483.70067" 
+    .const 'Sub' $P1597 = "90_1282016534.58916" 
     capture_lex $P1597
     new $P1553, 'ExceptionHandler'
     set_addr $P1553, control_1552
@@ -23389,13 +25099,13 @@
     iseq $I1595, $S1594, "open"
     if $I1595, if_1592
 .annotate 'line', 599
-    .const 'Sub' $P1625 = "91_1280467483.70067" 
+    .const 'Sub' $P1625 = "91_1282016534.58916" 
     capture_lex $P1625
     $P1625()
     goto if_1592_end
   if_1592:
 .annotate 'line', 586
-    .const 'Sub' $P1597 = "90_1280467483.70067" 
+    .const 'Sub' $P1597 = "90_1282016534.58916" 
     capture_lex $P1597
     $P1597()
   if_1592_end:
@@ -23452,7 +25162,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1624"  :anon :subid("91_1280467483.70067") :outer("89_1280467483.70067")
+.sub "_block1624"  :anon :subid("91_1282016534.58916") :outer("89_1282016534.58916")
 .annotate 'line', 600
     new $P1626, "Undef"
     .lex "$regex", $P1626
@@ -23504,7 +25214,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1596"  :anon :subid("90_1280467483.70067") :outer("89_1280467483.70067")
+.sub "_block1596"  :anon :subid("90_1282016534.58916") :outer("89_1282016534.58916")
 .annotate 'line', 587
     $P1598 = root_new ['parrot';'Hash']
     .lex "%h", $P1598
@@ -23603,7 +25313,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "dotty"  :subid("92_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "dotty"  :subid("92_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1653
 .annotate 'line', 617
     new $P1652, 'ExceptionHandler'
@@ -23701,7 +25411,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<self>"  :subid("93_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<self>"  :subid("93_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1685
 .annotate 'line', 626
     new $P1684, 'ExceptionHandler'
@@ -23727,7 +25437,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<identifier>"  :subid("94_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<identifier>"  :subid("94_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1694
 .annotate 'line', 630
     new $P1693, 'ExceptionHandler'
@@ -23777,7 +25487,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<name>"  :subid("95_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<name>"  :subid("95_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1710
 .annotate 'line', 636
     new $P1709, 'ExceptionHandler'
@@ -23896,7 +25606,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<pir::op>"  :subid("96_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<pir::op>"  :subid("96_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1752
 .annotate 'line', 650
     new $P1751, 'ExceptionHandler'
@@ -23988,7 +25698,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "args"  :subid("97_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "args"  :subid("97_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1781
 .annotate 'line', 665
     new $P1780, 'ExceptionHandler'
@@ -24019,10 +25729,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "arglist"  :subid("98_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "arglist"  :subid("98_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1791
 .annotate 'line', 667
-    .const 'Sub' $P1802 = "99_1280467483.70067" 
+    .const 'Sub' $P1802 = "99_1282016534.58916" 
     capture_lex $P1802
     new $P1790, 'ExceptionHandler'
     set_addr $P1790, control_1789
@@ -24054,7 +25764,7 @@
     new $P1800, "Undef"
   vivify_558:
     unless $P1800, if_1798_end
-    .const 'Sub' $P1802 = "99_1280467483.70067" 
+    .const 'Sub' $P1802 = "99_1282016534.58916" 
     capture_lex $P1802
     $P1802()
   if_1798_end:
@@ -24211,9 +25921,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1801"  :anon :subid("99_1280467483.70067") :outer("98_1280467483.70067")
+.sub "_block1801"  :anon :subid("99_1282016534.58916") :outer("98_1282016534.58916")
 .annotate 'line', 669
-    .const 'Sub' $P1823 = "100_1280467483.70067" 
+    .const 'Sub' $P1823 = "100_1282016534.58916" 
     capture_lex $P1823
 .annotate 'line', 670
     new $P1803, "Undef"
@@ -24266,7 +25976,7 @@
     unless $P1817, loop1828_done
     shift $P1821, $P1817
   loop1828_redo:
-    .const 'Sub' $P1823 = "100_1280467483.70067" 
+    .const 'Sub' $P1823 = "100_1282016534.58916" 
     capture_lex $P1823
     $P1823($P1821)
   loop1828_next:
@@ -24289,7 +25999,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1822"  :anon :subid("100_1280467483.70067") :outer("99_1280467483.70067")
+.sub "_block1822"  :anon :subid("100_1282016534.58916") :outer("99_1282016534.58916")
     .param pmc param_1824
 .annotate 'line', 672
     .lex "$_", param_1824
@@ -24302,7 +26012,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<value>"  :subid("101_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<value>"  :subid("101_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1895
 .annotate 'line', 693
     new $P1894, 'ExceptionHandler'
@@ -24333,7 +26043,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<( )>"  :subid("102_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "circumfix:sym<( )>"  :subid("102_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1905
 .annotate 'line', 695
     new $P1904, 'ExceptionHandler'
@@ -24390,7 +26100,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<[ ]>"  :subid("103_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "circumfix:sym<[ ]>"  :subid("103_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1923
 .annotate 'line', 701
     new $P1922, 'ExceptionHandler'
@@ -24467,7 +26177,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<ang>"  :subid("104_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "circumfix:sym<ang>"  :subid("104_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1950
 .annotate 'line', 716
     new $P1949, 'ExceptionHandler'
@@ -24498,7 +26208,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("105_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("105_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1960
 .annotate 'line', 717
     new $P1959, 'ExceptionHandler'
@@ -24529,7 +26239,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<{ }>"  :subid("106_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "circumfix:sym<{ }>"  :subid("106_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1970
 .annotate 'line', 719
     new $P1969, 'ExceptionHandler'
@@ -24608,7 +26318,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<sigil>"  :subid("107_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "circumfix:sym<sigil>"  :subid("107_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_1994
 .annotate 'line', 727
     new $P1993, 'ExceptionHandler'
@@ -24688,7 +26398,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "semilist"  :subid("108_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "semilist"  :subid("108_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2023
 .annotate 'line', 734
     new $P2022, 'ExceptionHandler'
@@ -24719,7 +26429,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<[ ]>"  :subid("109_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postcircumfix:sym<[ ]>"  :subid("109_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2033
 .annotate 'line', 736
     new $P2032, 'ExceptionHandler'
@@ -24757,7 +26467,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<{ }>"  :subid("110_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postcircumfix:sym<{ }>"  :subid("110_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2046
 .annotate 'line', 742
     new $P2045, 'ExceptionHandler'
@@ -24795,7 +26505,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<ang>"  :subid("111_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postcircumfix:sym<ang>"  :subid("111_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2059
 .annotate 'line', 748
     new $P2058, 'ExceptionHandler'
@@ -24833,7 +26543,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<( )>"  :subid("112_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postcircumfix:sym<( )>"  :subid("112_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2072
 .annotate 'line', 754
     new $P2071, 'ExceptionHandler'
@@ -24866,7 +26576,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "value"  :subid("113_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "value"  :subid("113_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2082
 .annotate 'line', 758
     new $P2081, 'ExceptionHandler'
@@ -24922,7 +26632,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "number"  :subid("114_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "number"  :subid("114_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2099
 .annotate 'line', 762
     new $P2098, 'ExceptionHandler'
@@ -25001,7 +26711,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<apos>"  :subid("115_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<apos>"  :subid("115_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2127
 .annotate 'line', 768
     new $P2126, 'ExceptionHandler'
@@ -25032,7 +26742,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<dblq>"  :subid("116_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<dblq>"  :subid("116_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2137
 .annotate 'line', 769
     new $P2136, 'ExceptionHandler'
@@ -25063,7 +26773,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<qq>"  :subid("117_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<qq>"  :subid("117_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2147
 .annotate 'line', 770
     new $P2146, 'ExceptionHandler'
@@ -25094,7 +26804,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<q>"  :subid("118_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<q>"  :subid("118_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2157
 .annotate 'line', 771
     new $P2156, 'ExceptionHandler'
@@ -25125,7 +26835,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<Q>"  :subid("119_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<Q>"  :subid("119_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2167
 .annotate 'line', 772
     new $P2166, 'ExceptionHandler'
@@ -25156,7 +26866,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<Q:PIR>"  :subid("120_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<Q:PIR>"  :subid("120_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2177
 .annotate 'line', 773
     new $P2176, 'ExceptionHandler'
@@ -25193,7 +26903,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym</ />"  :subid("121_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym</ />"  :subid("121_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2191
     .param pmc param_2192 :optional
     .param int has_param_2192 :opt_flag
@@ -25303,7 +27013,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<$>"  :subid("122_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote_escape:sym<$>"  :subid("122_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2228
 .annotate 'line', 802
     new $P2227, 'ExceptionHandler'
@@ -25334,7 +27044,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<{ }>"  :subid("123_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote_escape:sym<{ }>"  :subid("123_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2238
 .annotate 'line', 803
     new $P2237, 'ExceptionHandler'
@@ -25373,7 +27083,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<esc>"  :subid("124_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote_escape:sym<esc>"  :subid("124_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2252
 .annotate 'line', 808
     new $P2251, 'ExceptionHandler'
@@ -25395,7 +27105,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postfix:sym<.>"  :subid("125_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postfix:sym<.>"  :subid("125_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2259
 .annotate 'line', 812
     new $P2258, 'ExceptionHandler'
@@ -25426,7 +27136,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postfix:sym<++>"  :subid("126_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postfix:sym<++>"  :subid("126_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2269
 .annotate 'line', 814
     new $P2268, 'ExceptionHandler'
@@ -25457,7 +27167,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postfix:sym<-->"  :subid("127_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postfix:sym<-->"  :subid("127_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2279
 .annotate 'line', 820
     new $P2278, 'ExceptionHandler'
@@ -25488,7 +27198,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "prefix:sym<make>"  :subid("128_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "prefix:sym<make>"  :subid("128_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2289
 .annotate 'line', 826
     new $P2288, 'ExceptionHandler'
@@ -25519,7 +27229,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<next>"  :subid("129_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<next>"  :subid("129_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2302
 .annotate 'line', 844
     new $P2301, 'ExceptionHandler'
@@ -25541,7 +27251,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<last>"  :subid("130_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<last>"  :subid("130_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2309
 .annotate 'line', 845
     new $P2308, 'ExceptionHandler'
@@ -25563,7 +27273,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<redo>"  :subid("131_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<redo>"  :subid("131_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2316
 .annotate 'line', 846
     new $P2315, 'ExceptionHandler'
@@ -25585,7 +27295,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "infix:sym<~~>"  :subid("132_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "infix:sym<~~>"  :subid("132_1282016534.58916") :method :outer("11_1282016534.58916")
     .param pmc param_2323
 .annotate 'line', 848
     new $P2322, 'ExceptionHandler'
@@ -25611,24 +27321,24 @@
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "_block2330"  :subid("133_1280467483.70067") :outer("11_1280467483.70067")
+.sub "_block2330"  :subid("133_1282016534.58916") :outer("11_1282016534.58916")
 .annotate 'line', 853
-    .const 'Sub' $P2416 = "140_1280467483.70067" 
+    .const 'Sub' $P2416 = "140_1282016534.58916" 
     capture_lex $P2416
-    .const 'Sub' $P2403 = "139_1280467483.70067" 
+    .const 'Sub' $P2403 = "139_1282016534.58916" 
     capture_lex $P2403
-    .const 'Sub' $P2386 = "138_1280467483.70067" 
+    .const 'Sub' $P2386 = "138_1282016534.58916" 
     capture_lex $P2386
-    .const 'Sub' $P2373 = "137_1280467483.70067" 
+    .const 'Sub' $P2373 = "137_1282016534.58916" 
     capture_lex $P2373
-    .const 'Sub' $P2360 = "136_1280467483.70067" 
+    .const 'Sub' $P2360 = "136_1282016534.58916" 
     capture_lex $P2360
-    .const 'Sub' $P2347 = "135_1280467483.70067" 
+    .const 'Sub' $P2347 = "135_1282016534.58916" 
     capture_lex $P2347
-    .const 'Sub' $P2332 = "134_1280467483.70067" 
+    .const 'Sub' $P2332 = "134_1282016534.58916" 
     capture_lex $P2332
 .annotate 'line', 887
-    .const 'Sub' $P2416 = "140_1280467483.70067" 
+    .const 'Sub' $P2416 = "140_1282016534.58916" 
     newclosure $P2441, $P2416
 .annotate 'line', 853
     .return ($P2441)
@@ -25637,7 +27347,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "metachar:sym<:my>"  :subid("134_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "metachar:sym<:my>"  :subid("134_1282016534.58916") :method :outer("133_1282016534.58916")
     .param pmc param_2335
 .annotate 'line', 855
     new $P2334, 'ExceptionHandler'
@@ -25678,7 +27388,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "metachar:sym<{ }>"  :subid("135_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "metachar:sym<{ }>"  :subid("135_1282016534.58916") :method :outer("133_1282016534.58916")
     .param pmc param_2350
 .annotate 'line', 861
     new $P2349, 'ExceptionHandler'
@@ -25714,7 +27424,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "metachar:sym<nqpvar>"  :subid("136_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "metachar:sym<nqpvar>"  :subid("136_1282016534.58916") :method :outer("133_1282016534.58916")
     .param pmc param_2363
 .annotate 'line', 866
     new $P2362, 'ExceptionHandler'
@@ -25750,7 +27460,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "assertion:sym<{ }>"  :subid("137_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "assertion:sym<{ }>"  :subid("137_1282016534.58916") :method :outer("133_1282016534.58916")
     .param pmc param_2376
 .annotate 'line', 871
     new $P2375, 'ExceptionHandler'
@@ -25786,7 +27496,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "assertion:sym<?{ }>"  :subid("138_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "assertion:sym<?{ }>"  :subid("138_1282016534.58916") :method :outer("133_1282016534.58916")
     .param pmc param_2389
 .annotate 'line', 876
     new $P2388, 'ExceptionHandler'
@@ -25834,7 +27544,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "assertion:sym<var>"  :subid("139_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "assertion:sym<var>"  :subid("139_1282016534.58916") :method :outer("133_1282016534.58916")
     .param pmc param_2406
 .annotate 'line', 882
     new $P2405, 'ExceptionHandler'
@@ -25870,7 +27580,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "codeblock"  :subid("140_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "codeblock"  :subid("140_1282016534.58916") :method :outer("133_1282016534.58916")
     .param pmc param_2419
 .annotate 'line', 887
     new $P2418, 'ExceptionHandler'
@@ -25934,18 +27644,18 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2443" :load :anon :subid("141_1280467483.70067")
+.sub "_block2443" :load :anon :subid("141_1282016534.58916")
 .annotate 'line', 3
-    .const 'Sub' $P2445 = "11_1280467483.70067" 
+    .const 'Sub' $P2445 = "11_1282016534.58916" 
     $P2446 = $P2445()
     .return ($P2446)
 .end
 
 
 .namespace []
-.sub "_block2453" :load :anon :subid("143_1280467483.70067")
+.sub "_block2453" :load :anon :subid("143_1282016534.58916")
 .annotate 'line', 1
-    .const 'Sub' $P2455 = "10_1280467483.70067" 
+    .const 'Sub' $P2455 = "10_1282016534.58916" 
     $P2456 = $P2455()
     .return ($P2456)
 .end

Modified: trunk/ext/nqp-rx/src/stage0/P6Regex-s0.pir
==============================================================================
--- trunk/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Tue Aug 17 03:02:21 2010	(r48544)
+++ trunk/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Tue Aug 17 04:29:27 2010	(r48545)
@@ -16,7 +16,7 @@
 ### .include 'gen/p6regex-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467470.54449")
+.sub "_block11"  :anon :subid("10_1282016522.91354")
 .annotate 'line', 0
     get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" 
     capture_lex $P14
@@ -33,15 +33,15 @@
     $P572 = $P14()
 .annotate 'line', 1
     .return ($P572)
-    .const 'Sub' $P574 = "161_1280467470.54449" 
+    .const 'Sub' $P574 = "161_1282016522.91354" 
     .return ($P574)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post162") :outer("10_1280467470.54449")
+.sub "" :load :init :subid("post162") :outer("10_1282016522.91354")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467470.54449" 
+    .const 'Sub' $P12 = "10_1282016522.91354" 
     .local pmc block
     set block, $P12
     $P577 = get_root_global ["parrot"], "P6metaclass"
@@ -50,133 +50,133 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block13"  :subid("11_1280467470.54449") :outer("10_1280467470.54449")
+.sub "_block13"  :subid("11_1282016522.91354") :outer("10_1282016522.91354")
 .annotate 'line', 3
-    .const 'Sub' $P561 = "158_1280467470.54449" 
+    .const 'Sub' $P561 = "158_1282016522.91354" 
     capture_lex $P561
-    .const 'Sub' $P554 = "156_1280467470.54449" 
+    .const 'Sub' $P554 = "156_1282016522.91354" 
     capture_lex $P554
-    .const 'Sub' $P547 = "154_1280467470.54449" 
+    .const 'Sub' $P547 = "154_1282016522.91354" 
     capture_lex $P547
-    .const 'Sub' $P527 = "149_1280467470.54449" 
+    .const 'Sub' $P527 = "149_1282016522.91354" 
     capture_lex $P527
-    .const 'Sub' $P493 = "143_1280467470.54449" 
+    .const 'Sub' $P493 = "143_1282016522.91354" 
     capture_lex $P493
-    .const 'Sub' $P481 = "140_1280467470.54449" 
+    .const 'Sub' $P481 = "140_1282016522.91354" 
     capture_lex $P481
-    .const 'Sub' $P469 = "137_1280467470.54449" 
+    .const 'Sub' $P469 = "137_1282016522.91354" 
     capture_lex $P469
-    .const 'Sub' $P463 = "135_1280467470.54449" 
+    .const 'Sub' $P463 = "135_1282016522.91354" 
     capture_lex $P463
-    .const 'Sub' $P452 = "132_1280467470.54449" 
+    .const 'Sub' $P452 = "132_1282016522.91354" 
     capture_lex $P452
-    .const 'Sub' $P441 = "129_1280467470.54449" 
+    .const 'Sub' $P441 = "129_1282016522.91354" 
     capture_lex $P441
-    .const 'Sub' $P432 = "125_1280467470.54449" 
+    .const 'Sub' $P432 = "125_1282016522.91354" 
     capture_lex $P432
-    .const 'Sub' $P426 = "123_1280467470.54449" 
+    .const 'Sub' $P426 = "123_1282016522.91354" 
     capture_lex $P426
-    .const 'Sub' $P420 = "121_1280467470.54449" 
+    .const 'Sub' $P420 = "121_1282016522.91354" 
     capture_lex $P420
-    .const 'Sub' $P414 = "119_1280467470.54449" 
+    .const 'Sub' $P414 = "119_1282016522.91354" 
     capture_lex $P414
-    .const 'Sub' $P408 = "117_1280467470.54449" 
+    .const 'Sub' $P408 = "117_1282016522.91354" 
     capture_lex $P408
-    .const 'Sub' $P400 = "115_1280467470.54449" 
+    .const 'Sub' $P400 = "115_1282016522.91354" 
     capture_lex $P400
-    .const 'Sub' $P389 = "113_1280467470.54449" 
+    .const 'Sub' $P389 = "113_1282016522.91354" 
     capture_lex $P389
-    .const 'Sub' $P378 = "111_1280467470.54449" 
+    .const 'Sub' $P378 = "111_1282016522.91354" 
     capture_lex $P378
-    .const 'Sub' $P372 = "109_1280467470.54449" 
+    .const 'Sub' $P372 = "109_1282016522.91354" 
     capture_lex $P372
-    .const 'Sub' $P366 = "107_1280467470.54449" 
+    .const 'Sub' $P366 = "107_1282016522.91354" 
     capture_lex $P366
-    .const 'Sub' $P360 = "105_1280467470.54449" 
+    .const 'Sub' $P360 = "105_1282016522.91354" 
     capture_lex $P360
-    .const 'Sub' $P354 = "103_1280467470.54449" 
+    .const 'Sub' $P354 = "103_1282016522.91354" 
     capture_lex $P354
-    .const 'Sub' $P348 = "101_1280467470.54449" 
+    .const 'Sub' $P348 = "101_1282016522.91354" 
     capture_lex $P348
-    .const 'Sub' $P342 = "99_1280467470.54449" 
+    .const 'Sub' $P342 = "99_1282016522.91354" 
     capture_lex $P342
-    .const 'Sub' $P336 = "97_1280467470.54449" 
+    .const 'Sub' $P336 = "97_1282016522.91354" 
     capture_lex $P336
-    .const 'Sub' $P330 = "95_1280467470.54449" 
+    .const 'Sub' $P330 = "95_1282016522.91354" 
     capture_lex $P330
-    .const 'Sub' $P318 = "91_1280467470.54449" 
+    .const 'Sub' $P318 = "91_1282016522.91354" 
     capture_lex $P318
-    .const 'Sub' $P308 = "89_1280467470.54449" 
+    .const 'Sub' $P308 = "89_1282016522.91354" 
     capture_lex $P308
-    .const 'Sub' $P301 = "87_1280467470.54449" 
+    .const 'Sub' $P301 = "87_1282016522.91354" 
     capture_lex $P301
-    .const 'Sub' $P289 = "85_1280467470.54449" 
+    .const 'Sub' $P289 = "85_1282016522.91354" 
     capture_lex $P289
-    .const 'Sub' $P282 = "83_1280467470.54449" 
+    .const 'Sub' $P282 = "83_1282016522.91354" 
     capture_lex $P282
-    .const 'Sub' $P276 = "81_1280467470.54449" 
+    .const 'Sub' $P276 = "81_1282016522.91354" 
     capture_lex $P276
-    .const 'Sub' $P270 = "79_1280467470.54449" 
+    .const 'Sub' $P270 = "79_1282016522.91354" 
     capture_lex $P270
-    .const 'Sub' $P263 = "77_1280467470.54449" 
+    .const 'Sub' $P263 = "77_1282016522.91354" 
     capture_lex $P263
-    .const 'Sub' $P256 = "75_1280467470.54449" 
+    .const 'Sub' $P256 = "75_1282016522.91354" 
     capture_lex $P256
-    .const 'Sub' $P249 = "73_1280467470.54449" 
+    .const 'Sub' $P249 = "73_1282016522.91354" 
     capture_lex $P249
-    .const 'Sub' $P242 = "71_1280467470.54449" 
+    .const 'Sub' $P242 = "71_1282016522.91354" 
     capture_lex $P242
-    .const 'Sub' $P236 = "69_1280467470.54449" 
+    .const 'Sub' $P236 = "69_1282016522.91354" 
     capture_lex $P236
-    .const 'Sub' $P230 = "67_1280467470.54449" 
+    .const 'Sub' $P230 = "67_1282016522.91354" 
     capture_lex $P230
-    .const 'Sub' $P224 = "65_1280467470.54449" 
+    .const 'Sub' $P224 = "65_1282016522.91354" 
     capture_lex $P224
-    .const 'Sub' $P218 = "63_1280467470.54449" 
+    .const 'Sub' $P218 = "63_1282016522.91354" 
     capture_lex $P218
-    .const 'Sub' $P212 = "61_1280467470.54449" 
+    .const 'Sub' $P212 = "61_1282016522.91354" 
     capture_lex $P212
-    .const 'Sub' $P207 = "59_1280467470.54449" 
+    .const 'Sub' $P207 = "59_1282016522.91354" 
     capture_lex $P207
-    .const 'Sub' $P202 = "57_1280467470.54449" 
+    .const 'Sub' $P202 = "57_1282016522.91354" 
     capture_lex $P202
-    .const 'Sub' $P196 = "55_1280467470.54449" 
+    .const 'Sub' $P196 = "55_1282016522.91354" 
     capture_lex $P196
-    .const 'Sub' $P190 = "53_1280467470.54449" 
+    .const 'Sub' $P190 = "53_1282016522.91354" 
     capture_lex $P190
-    .const 'Sub' $P184 = "51_1280467470.54449" 
+    .const 'Sub' $P184 = "51_1282016522.91354" 
     capture_lex $P184
-    .const 'Sub' $P169 = "46_1280467470.54449" 
+    .const 'Sub' $P169 = "46_1282016522.91354" 
     capture_lex $P169
-    .const 'Sub' $P154 = "44_1280467470.54449" 
+    .const 'Sub' $P154 = "44_1282016522.91354" 
     capture_lex $P154
-    .const 'Sub' $P147 = "42_1280467470.54449" 
+    .const 'Sub' $P147 = "42_1282016522.91354" 
     capture_lex $P147
-    .const 'Sub' $P140 = "40_1280467470.54449" 
+    .const 'Sub' $P140 = "40_1282016522.91354" 
     capture_lex $P140
-    .const 'Sub' $P133 = "38_1280467470.54449" 
+    .const 'Sub' $P133 = "38_1282016522.91354" 
     capture_lex $P133
-    .const 'Sub' $P116 = "33_1280467470.54449" 
+    .const 'Sub' $P116 = "33_1282016522.91354" 
     capture_lex $P116
-    .const 'Sub' $P104 = "30_1280467470.54449" 
+    .const 'Sub' $P104 = "30_1282016522.91354" 
     capture_lex $P104
-    .const 'Sub' $P97 = "28_1280467470.54449" 
+    .const 'Sub' $P97 = "28_1282016522.91354" 
     capture_lex $P97
-    .const 'Sub' $P87 = "26_1280467470.54449" 
+    .const 'Sub' $P87 = "26_1282016522.91354" 
     capture_lex $P87
-    .const 'Sub' $P80 = "24_1280467470.54449" 
+    .const 'Sub' $P80 = "24_1282016522.91354" 
     capture_lex $P80
-    .const 'Sub' $P68 = "22_1280467470.54449" 
+    .const 'Sub' $P68 = "22_1282016522.91354" 
     capture_lex $P68
-    .const 'Sub' $P61 = "20_1280467470.54449" 
+    .const 'Sub' $P61 = "20_1282016522.91354" 
     capture_lex $P61
-    .const 'Sub' $P54 = "18_1280467470.54449" 
+    .const 'Sub' $P54 = "18_1282016522.91354" 
     capture_lex $P54
-    .const 'Sub' $P44 = "15_1280467470.54449" 
+    .const 'Sub' $P44 = "15_1282016522.91354" 
     capture_lex $P44
-    .const 'Sub' $P37 = "13_1280467470.54449" 
+    .const 'Sub' $P37 = "13_1282016522.91354" 
     capture_lex $P37
-    .const 'Sub' $P15 = "12_1280467470.54449" 
+    .const 'Sub' $P15 = "12_1282016522.91354" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -184,17 +184,17 @@
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
-    .const 'Sub' $P561 = "158_1280467470.54449" 
+    .const 'Sub' $P561 = "158_1282016522.91354" 
     capture_lex $P561
     .return ($P561)
-    .const 'Sub' $P569 = "160_1280467470.54449" 
+    .const 'Sub' $P569 = "160_1282016522.91354" 
     .return ($P569)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
 .include "except_types.pasm"
-.sub "obs"  :subid("12_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "obs"  :subid("12_1282016522.91354") :method :outer("11_1282016522.91354")
     .param pmc param_18
     .param pmc param_19
     .param pmc param_20 :optional
@@ -241,7 +241,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "ws"  :subid("13_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "ws"  :subid("13_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx38_tgt
     .local int rx38_pos
@@ -249,7 +249,9 @@
     .local int rx38_eos
     .local int rx38_rep
     .local pmc rx38_cur
+    .local pmc rx38_debug
     (rx38_cur, rx38_pos, rx38_tgt, $I10) = self."!cursor_start"()
+    getattribute rx38_debug, rx38_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx38_cur
     .local pmc match
     .lex "$/", match
@@ -261,7 +263,9 @@
     substr rx38_tgt, rx38_tgt, rx38_off
   rx38_start:
     eq $I10, 1, rx38_restart
+    if_null rx38_debug, debug_164
     rx38_cur."!cursor_debug"("START ", "ws")
+  debug_164:
     $I10 = self.'from'()
     ne $I10, -1, rxscan41_done
     goto rxscan41_scan
@@ -294,8 +298,8 @@
     add $I11, rx38_pos, 1
     gt $I11, rx38_eos, rx38_fail
     sub $I11, rx38_pos, rx38_off
-    substr $S10, rx38_tgt, $I11, 1
-    ne $S10, "#", rx38_fail
+    ord $I11, rx38_tgt, $I11
+    ne $I11, 35, rx38_fail
     add rx38_pos, 1
   # rx charclass_q N r 0..-1
     sub $I10, rx38_pos, rx38_off
@@ -310,11 +314,15 @@
   rxquantr42_done:
   # rx pass
     rx38_cur."!cursor_pass"(rx38_pos, "ws")
+    if_null rx38_debug, debug_165
     rx38_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx38_pos)
+  debug_165:
     .return (rx38_cur)
   rx38_restart:
 .annotate 'line', 3
+    if_null rx38_debug, debug_166
     rx38_cur."!cursor_debug"("NEXT ", "ws")
+  debug_166:
   rx38_fail:
     (rx38_rep, rx38_pos, $I10, $P10) = rx38_cur."!mark_fail"(0)
     lt rx38_pos, -1, rx38_done
@@ -322,14 +330,16 @@
     jump $I10
   rx38_done:
     rx38_cur."!cursor_fail"()
+    if_null rx38_debug, debug_167
     rx38_cur."!cursor_debug"("FAIL  ", "ws")
+  debug_167:
     .return (rx38_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__ws"  :subid("14_1280467470.54449") :method
+.sub "!PREFIX__ws"  :subid("14_1282016522.91354") :method
 .annotate 'line', 3
     new $P40, "ResizablePMCArray"
     push $P40, ""
@@ -338,9 +348,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "normspace"  :subid("15_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "normspace"  :subid("15_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
-    .const 'Sub' $P50 = "17_1280467470.54449" 
+    .const 'Sub' $P50 = "17_1282016522.91354" 
     capture_lex $P50
     .local string rx45_tgt
     .local int rx45_pos
@@ -348,7 +358,9 @@
     .local int rx45_eos
     .local int rx45_rep
     .local pmc rx45_cur
+    .local pmc rx45_debug
     (rx45_cur, rx45_pos, rx45_tgt, $I10) = self."!cursor_start"()
+    getattribute rx45_debug, rx45_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx45_cur
     .local pmc match
     .lex "$/", match
@@ -360,7 +372,9 @@
     substr rx45_tgt, rx45_tgt, rx45_off
   rx45_start:
     eq $I10, 1, rx45_restart
+    if_null rx45_debug, debug_168
     rx45_cur."!cursor_debug"("START ", "normspace")
+  debug_168:
     $I10 = self.'from'()
     ne $I10, -1, rxscan48_done
     goto rxscan48_scan
@@ -376,7 +390,7 @@
 .annotate 'line', 10
   # rx subrule "before" subtype=zerowidth negate=
     rx45_cur."!cursor_pos"(rx45_pos)
-    .const 'Sub' $P50 = "17_1280467470.54449" 
+    .const 'Sub' $P50 = "17_1282016522.91354" 
     capture_lex $P50
     $P10 = rx45_cur."before"($P50)
     unless $P10, rx45_fail
@@ -387,11 +401,15 @@
     rx45_pos = $P10."pos"()
   # rx pass
     rx45_cur."!cursor_pass"(rx45_pos, "normspace")
+    if_null rx45_debug, debug_173
     rx45_cur."!cursor_debug"("PASS  ", "normspace", " at pos=", rx45_pos)
+  debug_173:
     .return (rx45_cur)
   rx45_restart:
 .annotate 'line', 3
+    if_null rx45_debug, debug_174
     rx45_cur."!cursor_debug"("NEXT ", "normspace")
+  debug_174:
   rx45_fail:
     (rx45_rep, rx45_pos, $I10, $P10) = rx45_cur."!mark_fail"(0)
     lt rx45_pos, -1, rx45_done
@@ -399,14 +417,16 @@
     jump $I10
   rx45_done:
     rx45_cur."!cursor_fail"()
+    if_null rx45_debug, debug_175
     rx45_cur."!cursor_debug"("FAIL  ", "normspace")
+  debug_175:
     .return (rx45_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__normspace"  :subid("16_1280467470.54449") :method
+.sub "!PREFIX__normspace"  :subid("16_1282016522.91354") :method
 .annotate 'line', 3
     new $P47, "ResizablePMCArray"
     push $P47, ""
@@ -415,7 +435,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block49"  :anon :subid("17_1280467470.54449") :method :outer("15_1280467470.54449")
+.sub "_block49"  :anon :subid("17_1282016522.91354") :method :outer("15_1282016522.91354")
 .annotate 'line', 10
     .local string rx51_tgt
     .local int rx51_pos
@@ -423,7 +443,9 @@
     .local int rx51_eos
     .local int rx51_rep
     .local pmc rx51_cur
+    .local pmc rx51_debug
     (rx51_cur, rx51_pos, rx51_tgt, $I10) = self."!cursor_start"()
+    getattribute rx51_debug, rx51_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx51_cur
     .local pmc match
     .lex "$/", match
@@ -435,7 +457,9 @@
     substr rx51_tgt, rx51_tgt, rx51_off
   rx51_start:
     eq $I10, 1, rx51_restart
+    if_null rx51_debug, debug_169
     rx51_cur."!cursor_debug"("START ", "")
+  debug_169:
     $I10 = self.'from'()
     ne $I10, -1, rxscan52_done
     goto rxscan52_scan
@@ -463,16 +487,20 @@
     add $I11, rx51_pos, 1
     gt $I11, rx51_eos, rx51_fail
     sub $I11, rx51_pos, rx51_off
-    substr $S10, rx51_tgt, $I11, 1
-    ne $S10, "#", rx51_fail
+    ord $I11, rx51_tgt, $I11
+    ne $I11, 35, rx51_fail
     add rx51_pos, 1
   alt53_end:
   # rx pass
     rx51_cur."!cursor_pass"(rx51_pos, "")
+    if_null rx51_debug, debug_170
     rx51_cur."!cursor_debug"("PASS  ", "", " at pos=", rx51_pos)
+  debug_170:
     .return (rx51_cur)
   rx51_restart:
+    if_null rx51_debug, debug_171
     rx51_cur."!cursor_debug"("NEXT ", "")
+  debug_171:
   rx51_fail:
     (rx51_rep, rx51_pos, $I10, $P10) = rx51_cur."!mark_fail"(0)
     lt rx51_pos, -1, rx51_done
@@ -480,14 +508,16 @@
     jump $I10
   rx51_done:
     rx51_cur."!cursor_fail"()
+    if_null rx51_debug, debug_172
     rx51_cur."!cursor_debug"("FAIL  ", "")
+  debug_172:
     .return (rx51_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "identifier"  :subid("18_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "identifier"  :subid("18_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx55_tgt
     .local int rx55_pos
@@ -495,7 +525,9 @@
     .local int rx55_eos
     .local int rx55_rep
     .local pmc rx55_cur
+    .local pmc rx55_debug
     (rx55_cur, rx55_pos, rx55_tgt, $I10) = self."!cursor_start"()
+    getattribute rx55_debug, rx55_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx55_cur
     .local pmc match
     .lex "$/", match
@@ -507,7 +539,9 @@
     substr rx55_tgt, rx55_tgt, rx55_off
   rx55_start:
     eq $I10, 1, rx55_restart
+    if_null rx55_debug, debug_176
     rx55_cur."!cursor_debug"("START ", "identifier")
+  debug_176:
     $I10 = self.'from'()
     ne $I10, -1, rxscan59_done
     goto rxscan59_scan
@@ -550,11 +584,15 @@
   rxquantr60_done:
   # rx pass
     rx55_cur."!cursor_pass"(rx55_pos, "identifier")
+    if_null rx55_debug, debug_177
     rx55_cur."!cursor_debug"("PASS  ", "identifier", " at pos=", rx55_pos)
+  debug_177:
     .return (rx55_cur)
   rx55_restart:
 .annotate 'line', 3
+    if_null rx55_debug, debug_178
     rx55_cur."!cursor_debug"("NEXT ", "identifier")
+  debug_178:
   rx55_fail:
     (rx55_rep, rx55_pos, $I10, $P10) = rx55_cur."!mark_fail"(0)
     lt rx55_pos, -1, rx55_done
@@ -562,14 +600,16 @@
     jump $I10
   rx55_done:
     rx55_cur."!cursor_fail"()
+    if_null rx55_debug, debug_179
     rx55_cur."!cursor_debug"("FAIL  ", "identifier")
+  debug_179:
     .return (rx55_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("19_1280467470.54449") :method
+.sub "!PREFIX__identifier"  :subid("19_1282016522.91354") :method
 .annotate 'line', 3
     $P57 = self."!PREFIX__!subrule"("ident", "")
     new $P58, "ResizablePMCArray"
@@ -579,7 +619,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arg"  :subid("20_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "arg"  :subid("20_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx62_tgt
     .local int rx62_pos
@@ -587,7 +627,9 @@
     .local int rx62_eos
     .local int rx62_rep
     .local pmc rx62_cur
+    .local pmc rx62_debug
     (rx62_cur, rx62_pos, rx62_tgt, $I10) = self."!cursor_start"()
+    getattribute rx62_debug, rx62_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx62_cur
     .local pmc match
     .lex "$/", match
@@ -599,7 +641,9 @@
     substr rx62_tgt, rx62_tgt, rx62_off
   rx62_start:
     eq $I10, 1, rx62_restart
+    if_null rx62_debug, debug_180
     rx62_cur."!cursor_debug"("START ", "arg")
+  debug_180:
     $I10 = self.'from'()
     ne $I10, -1, rxscan65_done
     goto rxscan65_scan
@@ -675,11 +719,15 @@
 .annotate 'line', 14
   # rx pass
     rx62_cur."!cursor_pass"(rx62_pos, "arg")
+    if_null rx62_debug, debug_181
     rx62_cur."!cursor_debug"("PASS  ", "arg", " at pos=", rx62_pos)
+  debug_181:
     .return (rx62_cur)
   rx62_restart:
 .annotate 'line', 3
+    if_null rx62_debug, debug_182
     rx62_cur."!cursor_debug"("NEXT ", "arg")
+  debug_182:
   rx62_fail:
     (rx62_rep, rx62_pos, $I10, $P10) = rx62_cur."!mark_fail"(0)
     lt rx62_pos, -1, rx62_done
@@ -687,14 +735,16 @@
     jump $I10
   rx62_done:
     rx62_cur."!cursor_fail"()
+    if_null rx62_debug, debug_183
     rx62_cur."!cursor_debug"("FAIL  ", "arg")
+  debug_183:
     .return (rx62_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arg"  :subid("21_1280467470.54449") :method
+.sub "!PREFIX__arg"  :subid("21_1282016522.91354") :method
 .annotate 'line', 3
     new $P64, "ResizablePMCArray"
     push $P64, ""
@@ -705,7 +755,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arglist"  :subid("22_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "arglist"  :subid("22_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx69_tgt
     .local int rx69_pos
@@ -713,8 +763,10 @@
     .local int rx69_eos
     .local int rx69_rep
     .local pmc rx69_cur
+    .local pmc rx69_debug
     (rx69_cur, rx69_pos, rx69_tgt, $I10) = self."!cursor_start"()
     rx69_cur."!cursor_caparray"("arg")
+    getattribute rx69_debug, rx69_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx69_cur
     .local pmc match
     .lex "$/", match
@@ -726,7 +778,9 @@
     substr rx69_tgt, rx69_tgt, rx69_off
   rx69_start:
     eq $I10, 1, rx69_restart
+    if_null rx69_debug, debug_184
     rx69_cur."!cursor_debug"("START ", "arglist")
+  debug_184:
     $I10 = self.'from'()
     ne $I10, -1, rxscan73_done
     goto rxscan73_scan
@@ -770,8 +824,8 @@
     add $I11, rx69_pos, 1
     gt $I11, rx69_eos, rx69_fail
     sub $I11, rx69_pos, rx69_off
-    substr $S10, rx69_tgt, $I11, 1
-    ne $S10, ",", rx69_fail
+    ord $I11, rx69_tgt, $I11
+    ne $I11, 44, rx69_fail
     add rx69_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx69_cur."!cursor_pos"(rx69_pos)
@@ -798,11 +852,15 @@
     rx69_pos = $P10."pos"()
   # rx pass
     rx69_cur."!cursor_pass"(rx69_pos, "arglist")
+    if_null rx69_debug, debug_185
     rx69_cur."!cursor_debug"("PASS  ", "arglist", " at pos=", rx69_pos)
+  debug_185:
     .return (rx69_cur)
   rx69_restart:
 .annotate 'line', 3
+    if_null rx69_debug, debug_186
     rx69_cur."!cursor_debug"("NEXT ", "arglist")
+  debug_186:
   rx69_fail:
     (rx69_rep, rx69_pos, $I10, $P10) = rx69_cur."!mark_fail"(0)
     lt rx69_pos, -1, rx69_done
@@ -810,14 +868,16 @@
     jump $I10
   rx69_done:
     rx69_cur."!cursor_fail"()
+    if_null rx69_debug, debug_187
     rx69_cur."!cursor_debug"("FAIL  ", "arglist")
+  debug_187:
     .return (rx69_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("23_1280467470.54449") :method
+.sub "!PREFIX__arglist"  :subid("23_1282016522.91354") :method
 .annotate 'line', 3
     $P71 = self."!PREFIX__!subrule"("ws", "")
     new $P72, "ResizablePMCArray"
@@ -827,7 +887,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "TOP"  :subid("24_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "TOP"  :subid("24_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx81_tgt
     .local int rx81_pos
@@ -835,7 +895,9 @@
     .local int rx81_eos
     .local int rx81_rep
     .local pmc rx81_cur
+    .local pmc rx81_debug
     (rx81_cur, rx81_pos, rx81_tgt, $I10) = self."!cursor_start"()
+    getattribute rx81_debug, rx81_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx81_cur
     .local pmc match
     .lex "$/", match
@@ -847,7 +909,9 @@
     substr rx81_tgt, rx81_tgt, rx81_off
   rx81_start:
     eq $I10, 1, rx81_restart
+    if_null rx81_debug, debug_188
     rx81_cur."!cursor_debug"("START ", "TOP")
+  debug_188:
     $I10 = self.'from'()
     ne $I10, -1, rxscan85_done
     goto rxscan85_scan
@@ -885,11 +949,15 @@
 .annotate 'line', 24
   # rx pass
     rx81_cur."!cursor_pass"(rx81_pos, "TOP")
+    if_null rx81_debug, debug_189
     rx81_cur."!cursor_debug"("PASS  ", "TOP", " at pos=", rx81_pos)
+  debug_189:
     .return (rx81_cur)
   rx81_restart:
 .annotate 'line', 3
+    if_null rx81_debug, debug_190
     rx81_cur."!cursor_debug"("NEXT ", "TOP")
+  debug_190:
   rx81_fail:
     (rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0)
     lt rx81_pos, -1, rx81_done
@@ -897,14 +965,16 @@
     jump $I10
   rx81_done:
     rx81_cur."!cursor_fail"()
+    if_null rx81_debug, debug_191
     rx81_cur."!cursor_debug"("FAIL  ", "TOP")
+  debug_191:
     .return (rx81_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__TOP"  :subid("25_1280467470.54449") :method
+.sub "!PREFIX__TOP"  :subid("25_1282016522.91354") :method
 .annotate 'line', 3
     $P83 = self."!PREFIX__!subrule"("nibbler", "")
     new $P84, "ResizablePMCArray"
@@ -914,7 +984,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "nibbler"  :subid("26_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "nibbler"  :subid("26_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx88_tgt
     .local int rx88_pos
@@ -922,8 +992,10 @@
     .local int rx88_eos
     .local int rx88_rep
     .local pmc rx88_cur
+    .local pmc rx88_debug
     (rx88_cur, rx88_pos, rx88_tgt, $I10) = self."!cursor_start"()
     rx88_cur."!cursor_caparray"("termish")
+    getattribute rx88_debug, rx88_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx88_cur
     .local pmc match
     .lex "$/", match
@@ -935,7 +1007,9 @@
     substr rx88_tgt, rx88_tgt, rx88_off
   rx88_start:
     eq $I10, 1, rx88_restart
+    if_null rx88_debug, debug_192
     rx88_cur."!cursor_debug"("START ", "nibbler")
+  debug_192:
     $I10 = self.'from'()
     ne $I10, -1, rxscan91_done
     goto rxscan91_scan
@@ -980,8 +1054,8 @@
     add $I11, rx88_pos, 1
     gt $I11, rx88_eos, rx88_fail
     sub $I11, rx88_pos, rx88_off
-    substr $S10, rx88_tgt, $I11, 1
-    ne $S10, "|", rx88_fail
+    ord $I11, rx88_tgt, $I11
+    ne $I11, 124, rx88_fail
     add rx88_pos, 1
     goto alt93_end
   alt93_2:
@@ -1000,8 +1074,8 @@
     add $I11, rx88_pos, 1
     gt $I11, rx88_eos, rx88_fail
     sub $I11, rx88_pos, rx88_off
-    substr $S10, rx88_tgt, $I11, 1
-    ne $S10, "&", rx88_fail
+    ord $I11, rx88_tgt, $I11
+    ne $I11, 38, rx88_fail
     add rx88_pos, 1
   alt93_end:
     set_addr $I10, rxquantr92_done
@@ -1037,8 +1111,8 @@
     add $I11, rx88_pos, 1
     gt $I11, rx88_eos, rx88_fail
     sub $I11, rx88_pos, rx88_off
-    substr $S10, rx88_tgt, $I11, 1
-    ne $S10, "|", rx88_fail
+    ord $I11, rx88_tgt, $I11
+    ne $I11, 124, rx88_fail
     add rx88_pos, 1
   alt95_end:
   alt96_0:
@@ -1070,11 +1144,15 @@
 .annotate 'line', 29
   # rx pass
     rx88_cur."!cursor_pass"(rx88_pos, "nibbler")
+    if_null rx88_debug, debug_193
     rx88_cur."!cursor_debug"("PASS  ", "nibbler", " at pos=", rx88_pos)
+  debug_193:
     .return (rx88_cur)
   rx88_restart:
 .annotate 'line', 3
+    if_null rx88_debug, debug_194
     rx88_cur."!cursor_debug"("NEXT ", "nibbler")
+  debug_194:
   rx88_fail:
     (rx88_rep, rx88_pos, $I10, $P10) = rx88_cur."!mark_fail"(0)
     lt rx88_pos, -1, rx88_done
@@ -1082,14 +1160,16 @@
     jump $I10
   rx88_done:
     rx88_cur."!cursor_fail"()
+    if_null rx88_debug, debug_195
     rx88_cur."!cursor_debug"("FAIL  ", "nibbler")
+  debug_195:
     .return (rx88_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__nibbler"  :subid("27_1280467470.54449") :method
+.sub "!PREFIX__nibbler"  :subid("27_1282016522.91354") :method
 .annotate 'line', 3
     new $P90, "ResizablePMCArray"
     push $P90, ""
@@ -1098,7 +1178,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termish"  :subid("28_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "termish"  :subid("28_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx98_tgt
     .local int rx98_pos
@@ -1106,8 +1186,10 @@
     .local int rx98_eos
     .local int rx98_rep
     .local pmc rx98_cur
+    .local pmc rx98_debug
     (rx98_cur, rx98_pos, rx98_tgt, $I10) = self."!cursor_start"()
     rx98_cur."!cursor_caparray"("noun")
+    getattribute rx98_debug, rx98_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx98_cur
     .local pmc match
     .lex "$/", match
@@ -1119,7 +1201,9 @@
     substr rx98_tgt, rx98_tgt, rx98_off
   rx98_start:
     eq $I10, 1, rx98_restart
+    if_null rx98_debug, debug_196
     rx98_cur."!cursor_debug"("START ", "termish")
+  debug_196:
     $I10 = self.'from'()
     ne $I10, -1, rxscan101_done
     goto rxscan101_scan
@@ -1159,11 +1243,15 @@
 .annotate 'line', 38
   # rx pass
     rx98_cur."!cursor_pass"(rx98_pos, "termish")
+    if_null rx98_debug, debug_197
     rx98_cur."!cursor_debug"("PASS  ", "termish", " at pos=", rx98_pos)
+  debug_197:
     .return (rx98_cur)
   rx98_restart:
 .annotate 'line', 3
+    if_null rx98_debug, debug_198
     rx98_cur."!cursor_debug"("NEXT ", "termish")
+  debug_198:
   rx98_fail:
     (rx98_rep, rx98_pos, $I10, $P10) = rx98_cur."!mark_fail"(0)
     lt rx98_pos, -1, rx98_done
@@ -1171,14 +1259,16 @@
     jump $I10
   rx98_done:
     rx98_cur."!cursor_fail"()
+    if_null rx98_debug, debug_199
     rx98_cur."!cursor_debug"("FAIL  ", "termish")
+  debug_199:
     .return (rx98_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__termish"  :subid("29_1280467470.54449") :method
+.sub "!PREFIX__termish"  :subid("29_1282016522.91354") :method
 .annotate 'line', 3
     new $P100, "ResizablePMCArray"
     push $P100, ""
@@ -1187,9 +1277,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantified_atom"  :subid("30_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "quantified_atom"  :subid("30_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
-    .const 'Sub' $P113 = "32_1280467470.54449" 
+    .const 'Sub' $P113 = "32_1282016522.91354" 
     capture_lex $P113
     .local string rx105_tgt
     .local int rx105_pos
@@ -1197,8 +1287,10 @@
     .local int rx105_eos
     .local int rx105_rep
     .local pmc rx105_cur
+    .local pmc rx105_debug
     (rx105_cur, rx105_pos, rx105_tgt, $I10) = self."!cursor_start"()
     rx105_cur."!cursor_caparray"("quantifier", "backmod")
+    getattribute rx105_debug, rx105_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx105_cur
     .local pmc match
     .lex "$/", match
@@ -1210,7 +1302,9 @@
     substr rx105_tgt, rx105_tgt, rx105_off
   rx105_start:
     eq $I10, 1, rx105_restart
+    if_null rx105_debug, debug_200
     rx105_cur."!cursor_debug"("START ", "quantified_atom")
+  debug_200:
     $I10 = self.'from'()
     ne $I10, -1, rxscan109_done
     goto rxscan109_scan
@@ -1254,7 +1348,7 @@
   alt111_1:
   # rx subrule "before" subtype=zerowidth negate=
     rx105_cur."!cursor_pos"(rx105_pos)
-    .const 'Sub' $P113 = "32_1280467470.54449" 
+    .const 'Sub' $P113 = "32_1282016522.91354" 
     capture_lex $P113
     $P10 = rx105_cur."before"($P113)
     unless $P10, rx105_fail
@@ -1276,11 +1370,15 @@
 .annotate 'line', 42
   # rx pass
     rx105_cur."!cursor_pass"(rx105_pos, "quantified_atom")
+    if_null rx105_debug, debug_205
     rx105_cur."!cursor_debug"("PASS  ", "quantified_atom", " at pos=", rx105_pos)
+  debug_205:
     .return (rx105_cur)
   rx105_restart:
 .annotate 'line', 3
+    if_null rx105_debug, debug_206
     rx105_cur."!cursor_debug"("NEXT ", "quantified_atom")
+  debug_206:
   rx105_fail:
     (rx105_rep, rx105_pos, $I10, $P10) = rx105_cur."!mark_fail"(0)
     lt rx105_pos, -1, rx105_done
@@ -1288,14 +1386,16 @@
     jump $I10
   rx105_done:
     rx105_cur."!cursor_fail"()
+    if_null rx105_debug, debug_207
     rx105_cur."!cursor_debug"("FAIL  ", "quantified_atom")
+  debug_207:
     .return (rx105_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantified_atom"  :subid("31_1280467470.54449") :method
+.sub "!PREFIX__quantified_atom"  :subid("31_1282016522.91354") :method
 .annotate 'line', 3
     $P107 = self."!PREFIX__!subrule"("atom", "")
     new $P108, "ResizablePMCArray"
@@ -1305,7 +1405,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block112"  :anon :subid("32_1280467470.54449") :method :outer("30_1280467470.54449")
+.sub "_block112"  :anon :subid("32_1282016522.91354") :method :outer("30_1282016522.91354")
 .annotate 'line', 43
     .local string rx114_tgt
     .local int rx114_pos
@@ -1313,7 +1413,9 @@
     .local int rx114_eos
     .local int rx114_rep
     .local pmc rx114_cur
+    .local pmc rx114_debug
     (rx114_cur, rx114_pos, rx114_tgt, $I10) = self."!cursor_start"()
+    getattribute rx114_debug, rx114_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx114_cur
     .local pmc match
     .lex "$/", match
@@ -1325,7 +1427,9 @@
     substr rx114_tgt, rx114_tgt, rx114_off
   rx114_start:
     eq $I10, 1, rx114_restart
+    if_null rx114_debug, debug_201
     rx114_cur."!cursor_debug"("START ", "")
+  debug_201:
     $I10 = self.'from'()
     ne $I10, -1, rxscan115_done
     goto rxscan115_scan
@@ -1342,15 +1446,19 @@
     add $I11, rx114_pos, 1
     gt $I11, rx114_eos, rx114_fail
     sub $I11, rx114_pos, rx114_off
-    substr $S10, rx114_tgt, $I11, 1
-    ne $S10, ":", rx114_fail
+    ord $I11, rx114_tgt, $I11
+    ne $I11, 58, rx114_fail
     add rx114_pos, 1
   # rx pass
     rx114_cur."!cursor_pass"(rx114_pos, "")
+    if_null rx114_debug, debug_202
     rx114_cur."!cursor_debug"("PASS  ", "", " at pos=", rx114_pos)
+  debug_202:
     .return (rx114_cur)
   rx114_restart:
+    if_null rx114_debug, debug_203
     rx114_cur."!cursor_debug"("NEXT ", "")
+  debug_203:
   rx114_fail:
     (rx114_rep, rx114_pos, $I10, $P10) = rx114_cur."!mark_fail"(0)
     lt rx114_pos, -1, rx114_done
@@ -1358,16 +1466,18 @@
     jump $I10
   rx114_done:
     rx114_cur."!cursor_fail"()
+    if_null rx114_debug, debug_204
     rx114_cur."!cursor_debug"("FAIL  ", "")
+  debug_204:
     .return (rx114_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "atom"  :subid("33_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "atom"  :subid("33_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
-    .const 'Sub' $P126 = "35_1280467470.54449" 
+    .const 'Sub' $P126 = "35_1282016522.91354" 
     capture_lex $P126
     .local string rx117_tgt
     .local int rx117_pos
@@ -1375,7 +1485,9 @@
     .local int rx117_eos
     .local int rx117_rep
     .local pmc rx117_cur
+    .local pmc rx117_debug
     (rx117_cur, rx117_pos, rx117_tgt, $I10) = self."!cursor_start"()
+    getattribute rx117_debug, rx117_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx117_cur
     .local pmc match
     .lex "$/", match
@@ -1387,7 +1499,9 @@
     substr rx117_tgt, rx117_tgt, rx117_off
   rx117_start:
     eq $I10, 1, rx117_restart
+    if_null rx117_debug, debug_208
     rx117_cur."!cursor_debug"("START ", "atom")
+  debug_208:
     $I10 = self.'from'()
     ne $I10, -1, rxscan121_done
     goto rxscan121_scan
@@ -1429,7 +1543,7 @@
   rxquantg124_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx117_cur."!cursor_pos"(rx117_pos)
-    .const 'Sub' $P126 = "35_1280467470.54449" 
+    .const 'Sub' $P126 = "35_1282016522.91354" 
     capture_lex $P126
     $P10 = rx117_cur."before"($P126)
     unless $P10, rx117_fail
@@ -1450,11 +1564,15 @@
 .annotate 'line', 46
   # rx pass
     rx117_cur."!cursor_pass"(rx117_pos, "atom")
+    if_null rx117_debug, debug_213
     rx117_cur."!cursor_debug"("PASS  ", "atom", " at pos=", rx117_pos)
+  debug_213:
     .return (rx117_cur)
   rx117_restart:
 .annotate 'line', 3
+    if_null rx117_debug, debug_214
     rx117_cur."!cursor_debug"("NEXT ", "atom")
+  debug_214:
   rx117_fail:
     (rx117_rep, rx117_pos, $I10, $P10) = rx117_cur."!mark_fail"(0)
     lt rx117_pos, -1, rx117_done
@@ -1462,14 +1580,16 @@
     jump $I10
   rx117_done:
     rx117_cur."!cursor_fail"()
+    if_null rx117_debug, debug_215
     rx117_cur."!cursor_debug"("FAIL  ", "atom")
+  debug_215:
     .return (rx117_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__atom"  :subid("34_1280467470.54449") :method
+.sub "!PREFIX__atom"  :subid("34_1282016522.91354") :method
 .annotate 'line', 3
     $P119 = self."!PREFIX__!subrule"("metachar", "")
     new $P120, "ResizablePMCArray"
@@ -1480,7 +1600,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block125"  :anon :subid("35_1280467470.54449") :method :outer("33_1280467470.54449")
+.sub "_block125"  :anon :subid("35_1282016522.91354") :method :outer("33_1282016522.91354")
 .annotate 'line', 49
     .local string rx127_tgt
     .local int rx127_pos
@@ -1488,7 +1608,9 @@
     .local int rx127_eos
     .local int rx127_rep
     .local pmc rx127_cur
+    .local pmc rx127_debug
     (rx127_cur, rx127_pos, rx127_tgt, $I10) = self."!cursor_start"()
+    getattribute rx127_debug, rx127_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx127_cur
     .local pmc match
     .lex "$/", match
@@ -1500,7 +1622,9 @@
     substr rx127_tgt, rx127_tgt, rx127_off
   rx127_start:
     eq $I10, 1, rx127_restart
+    if_null rx127_debug, debug_209
     rx127_cur."!cursor_debug"("START ", "")
+  debug_209:
     $I10 = self.'from'()
     ne $I10, -1, rxscan128_done
     goto rxscan128_scan
@@ -1521,10 +1645,14 @@
     inc rx127_pos
   # rx pass
     rx127_cur."!cursor_pass"(rx127_pos, "")
+    if_null rx127_debug, debug_210
     rx127_cur."!cursor_debug"("PASS  ", "", " at pos=", rx127_pos)
+  debug_210:
     .return (rx127_cur)
   rx127_restart:
+    if_null rx127_debug, debug_211
     rx127_cur."!cursor_debug"("NEXT ", "")
+  debug_211:
   rx127_fail:
     (rx127_rep, rx127_pos, $I10, $P10) = rx127_cur."!mark_fail"(0)
     lt rx127_pos, -1, rx127_done
@@ -1532,14 +1660,16 @@
     jump $I10
   rx127_done:
     rx127_cur."!cursor_fail"()
+    if_null rx127_debug, debug_212
     rx127_cur."!cursor_debug"("FAIL  ", "")
+  debug_212:
     .return (rx127_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier"  :subid("36_1280467470.54449") :method
+.sub "quantifier"  :subid("36_1282016522.91354") :method
 .annotate 'line', 54
     $P130 = self."!protoregex"("quantifier")
     .return ($P130)
@@ -1547,7 +1677,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier"  :subid("37_1280467470.54449") :method
+.sub "!PREFIX__quantifier"  :subid("37_1282016522.91354") :method
 .annotate 'line', 54
     $P132 = self."!PREFIX__!protoregex"("quantifier")
     .return ($P132)
@@ -1555,7 +1685,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<*>"  :subid("38_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "quantifier:sym<*>"  :subid("38_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx134_tgt
     .local int rx134_pos
@@ -1563,7 +1693,9 @@
     .local int rx134_eos
     .local int rx134_rep
     .local pmc rx134_cur
+    .local pmc rx134_debug
     (rx134_cur, rx134_pos, rx134_tgt, $I10) = self."!cursor_start"()
+    getattribute rx134_debug, rx134_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx134_cur
     .local pmc match
     .lex "$/", match
@@ -1575,7 +1707,9 @@
     substr rx134_tgt, rx134_tgt, rx134_off
   rx134_start:
     eq $I10, 1, rx134_restart
+    if_null rx134_debug, debug_216
     rx134_cur."!cursor_debug"("START ", "quantifier:sym<*>")
+  debug_216:
     $I10 = self.'from'()
     ne $I10, -1, rxscan138_done
     goto rxscan138_scan
@@ -1596,8 +1730,8 @@
     add $I11, rx134_pos, 1
     gt $I11, rx134_eos, rx134_fail
     sub $I11, rx134_pos, rx134_off
-    substr $S10, rx134_tgt, $I11, 1
-    ne $S10, "*", rx134_fail
+    ord $I11, rx134_tgt, $I11
+    ne $I11, 42, rx134_fail
     add rx134_pos, 1
     set_addr $I10, rxcap_139_fail
     ($I12, $I11) = rx134_cur."!mark_peek"($I10)
@@ -1619,11 +1753,15 @@
     rx134_pos = $P10."pos"()
   # rx pass
     rx134_cur."!cursor_pass"(rx134_pos, "quantifier:sym<*>")
+    if_null rx134_debug, debug_217
     rx134_cur."!cursor_debug"("PASS  ", "quantifier:sym<*>", " at pos=", rx134_pos)
+  debug_217:
     .return (rx134_cur)
   rx134_restart:
 .annotate 'line', 3
+    if_null rx134_debug, debug_218
     rx134_cur."!cursor_debug"("NEXT ", "quantifier:sym<*>")
+  debug_218:
   rx134_fail:
     (rx134_rep, rx134_pos, $I10, $P10) = rx134_cur."!mark_fail"(0)
     lt rx134_pos, -1, rx134_done
@@ -1631,14 +1769,16 @@
     jump $I10
   rx134_done:
     rx134_cur."!cursor_fail"()
+    if_null rx134_debug, debug_219
     rx134_cur."!cursor_debug"("FAIL  ", "quantifier:sym<*>")
+  debug_219:
     .return (rx134_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<*>"  :subid("39_1280467470.54449") :method
+.sub "!PREFIX__quantifier:sym<*>"  :subid("39_1282016522.91354") :method
 .annotate 'line', 3
     $P136 = self."!PREFIX__!subrule"("backmod", "*")
     new $P137, "ResizablePMCArray"
@@ -1648,7 +1788,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<+>"  :subid("40_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "quantifier:sym<+>"  :subid("40_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx141_tgt
     .local int rx141_pos
@@ -1656,7 +1796,9 @@
     .local int rx141_eos
     .local int rx141_rep
     .local pmc rx141_cur
+    .local pmc rx141_debug
     (rx141_cur, rx141_pos, rx141_tgt, $I10) = self."!cursor_start"()
+    getattribute rx141_debug, rx141_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx141_cur
     .local pmc match
     .lex "$/", match
@@ -1668,7 +1810,9 @@
     substr rx141_tgt, rx141_tgt, rx141_off
   rx141_start:
     eq $I10, 1, rx141_restart
+    if_null rx141_debug, debug_220
     rx141_cur."!cursor_debug"("START ", "quantifier:sym<+>")
+  debug_220:
     $I10 = self.'from'()
     ne $I10, -1, rxscan145_done
     goto rxscan145_scan
@@ -1689,8 +1833,8 @@
     add $I11, rx141_pos, 1
     gt $I11, rx141_eos, rx141_fail
     sub $I11, rx141_pos, rx141_off
-    substr $S10, rx141_tgt, $I11, 1
-    ne $S10, "+", rx141_fail
+    ord $I11, rx141_tgt, $I11
+    ne $I11, 43, rx141_fail
     add rx141_pos, 1
     set_addr $I10, rxcap_146_fail
     ($I12, $I11) = rx141_cur."!mark_peek"($I10)
@@ -1712,11 +1856,15 @@
     rx141_pos = $P10."pos"()
   # rx pass
     rx141_cur."!cursor_pass"(rx141_pos, "quantifier:sym<+>")
+    if_null rx141_debug, debug_221
     rx141_cur."!cursor_debug"("PASS  ", "quantifier:sym<+>", " at pos=", rx141_pos)
+  debug_221:
     .return (rx141_cur)
   rx141_restart:
 .annotate 'line', 3
+    if_null rx141_debug, debug_222
     rx141_cur."!cursor_debug"("NEXT ", "quantifier:sym<+>")
+  debug_222:
   rx141_fail:
     (rx141_rep, rx141_pos, $I10, $P10) = rx141_cur."!mark_fail"(0)
     lt rx141_pos, -1, rx141_done
@@ -1724,14 +1872,16 @@
     jump $I10
   rx141_done:
     rx141_cur."!cursor_fail"()
+    if_null rx141_debug, debug_223
     rx141_cur."!cursor_debug"("FAIL  ", "quantifier:sym<+>")
+  debug_223:
     .return (rx141_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<+>"  :subid("41_1280467470.54449") :method
+.sub "!PREFIX__quantifier:sym<+>"  :subid("41_1282016522.91354") :method
 .annotate 'line', 3
     $P143 = self."!PREFIX__!subrule"("backmod", "+")
     new $P144, "ResizablePMCArray"
@@ -1741,7 +1891,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<?>"  :subid("42_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "quantifier:sym<?>"  :subid("42_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx148_tgt
     .local int rx148_pos
@@ -1749,7 +1899,9 @@
     .local int rx148_eos
     .local int rx148_rep
     .local pmc rx148_cur
+    .local pmc rx148_debug
     (rx148_cur, rx148_pos, rx148_tgt, $I10) = self."!cursor_start"()
+    getattribute rx148_debug, rx148_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx148_cur
     .local pmc match
     .lex "$/", match
@@ -1761,7 +1913,9 @@
     substr rx148_tgt, rx148_tgt, rx148_off
   rx148_start:
     eq $I10, 1, rx148_restart
+    if_null rx148_debug, debug_224
     rx148_cur."!cursor_debug"("START ", "quantifier:sym<?>")
+  debug_224:
     $I10 = self.'from'()
     ne $I10, -1, rxscan152_done
     goto rxscan152_scan
@@ -1782,8 +1936,8 @@
     add $I11, rx148_pos, 1
     gt $I11, rx148_eos, rx148_fail
     sub $I11, rx148_pos, rx148_off
-    substr $S10, rx148_tgt, $I11, 1
-    ne $S10, "?", rx148_fail
+    ord $I11, rx148_tgt, $I11
+    ne $I11, 63, rx148_fail
     add rx148_pos, 1
     set_addr $I10, rxcap_153_fail
     ($I12, $I11) = rx148_cur."!mark_peek"($I10)
@@ -1805,11 +1959,15 @@
     rx148_pos = $P10."pos"()
   # rx pass
     rx148_cur."!cursor_pass"(rx148_pos, "quantifier:sym<?>")
+    if_null rx148_debug, debug_225
     rx148_cur."!cursor_debug"("PASS  ", "quantifier:sym<?>", " at pos=", rx148_pos)
+  debug_225:
     .return (rx148_cur)
   rx148_restart:
 .annotate 'line', 3
+    if_null rx148_debug, debug_226
     rx148_cur."!cursor_debug"("NEXT ", "quantifier:sym<?>")
+  debug_226:
   rx148_fail:
     (rx148_rep, rx148_pos, $I10, $P10) = rx148_cur."!mark_fail"(0)
     lt rx148_pos, -1, rx148_done
@@ -1817,14 +1975,16 @@
     jump $I10
   rx148_done:
     rx148_cur."!cursor_fail"()
+    if_null rx148_debug, debug_227
     rx148_cur."!cursor_debug"("FAIL  ", "quantifier:sym<?>")
+  debug_227:
     .return (rx148_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<?>"  :subid("43_1280467470.54449") :method
+.sub "!PREFIX__quantifier:sym<?>"  :subid("43_1282016522.91354") :method
 .annotate 'line', 3
     $P150 = self."!PREFIX__!subrule"("backmod", "?")
     new $P151, "ResizablePMCArray"
@@ -1834,7 +1994,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<**>"  :subid("44_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "quantifier:sym<**>"  :subid("44_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx155_tgt
     .local int rx155_pos
@@ -1842,8 +2002,10 @@
     .local int rx155_eos
     .local int rx155_rep
     .local pmc rx155_cur
+    .local pmc rx155_debug
     (rx155_cur, rx155_pos, rx155_tgt, $I10) = self."!cursor_start"()
     rx155_cur."!cursor_caparray"("max", "normspace")
+    getattribute rx155_debug, rx155_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx155_cur
     .local pmc match
     .lex "$/", match
@@ -1855,7 +2017,9 @@
     substr rx155_tgt, rx155_tgt, rx155_off
   rx155_start:
     eq $I10, 1, rx155_restart
+    if_null rx155_debug, debug_228
     rx155_cur."!cursor_debug"("START ", "quantifier:sym<**>")
+  debug_228:
     $I10 = self.'from'()
     ne $I10, -1, rxscan158_done
     goto rxscan158_scan
@@ -1998,8 +2162,8 @@
     add $I11, rx155_pos, 1
     gt $I11, rx155_eos, rx155_fail
     sub $I11, rx155_pos, rx155_off
-    substr $S10, rx155_tgt, $I11, 1
-    ne $S10, "*", rx155_fail
+    ord $I11, rx155_tgt, $I11
+    ne $I11, 42, rx155_fail
     add rx155_pos, 1
     goto alt167_end
   alt167_2:
@@ -2041,11 +2205,15 @@
 .annotate 'line', 58
   # rx pass
     rx155_cur."!cursor_pass"(rx155_pos, "quantifier:sym<**>")
+    if_null rx155_debug, debug_229
     rx155_cur."!cursor_debug"("PASS  ", "quantifier:sym<**>", " at pos=", rx155_pos)
+  debug_229:
     .return (rx155_cur)
   rx155_restart:
 .annotate 'line', 3
+    if_null rx155_debug, debug_230
     rx155_cur."!cursor_debug"("NEXT ", "quantifier:sym<**>")
+  debug_230:
   rx155_fail:
     (rx155_rep, rx155_pos, $I10, $P10) = rx155_cur."!mark_fail"(0)
     lt rx155_pos, -1, rx155_done
@@ -2053,14 +2221,16 @@
     jump $I10
   rx155_done:
     rx155_cur."!cursor_fail"()
+    if_null rx155_debug, debug_231
     rx155_cur."!cursor_debug"("FAIL  ", "quantifier:sym<**>")
+  debug_231:
     .return (rx155_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<**>"  :subid("45_1280467470.54449") :method
+.sub "!PREFIX__quantifier:sym<**>"  :subid("45_1282016522.91354") :method
 .annotate 'line', 3
     new $P157, "ResizablePMCArray"
     push $P157, "**"
@@ -2069,9 +2239,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backmod"  :subid("46_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backmod"  :subid("46_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
-    .const 'Sub' $P177 = "48_1280467470.54449" 
+    .const 'Sub' $P177 = "48_1282016522.91354" 
     capture_lex $P177
     .local string rx170_tgt
     .local int rx170_pos
@@ -2079,7 +2249,9 @@
     .local int rx170_eos
     .local int rx170_rep
     .local pmc rx170_cur
+    .local pmc rx170_debug
     (rx170_cur, rx170_pos, rx170_tgt, $I10) = self."!cursor_start"()
+    getattribute rx170_debug, rx170_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx170_cur
     .local pmc match
     .lex "$/", match
@@ -2091,7 +2263,9 @@
     substr rx170_tgt, rx170_tgt, rx170_off
   rx170_start:
     eq $I10, 1, rx170_restart
+    if_null rx170_debug, debug_232
     rx170_cur."!cursor_debug"("START ", "backmod")
+  debug_232:
     $I10 = self.'from'()
     ne $I10, -1, rxscan173_done
     goto rxscan173_scan
@@ -2113,8 +2287,8 @@
     add $I11, rx170_pos, 1
     gt $I11, rx170_eos, rx170_fail
     sub $I11, rx170_pos, rx170_off
-    substr $S10, rx170_tgt, $I11, 1
-    ne $S10, ":", rx170_fail
+    ord $I11, rx170_tgt, $I11
+    ne $I11, 58, rx170_fail
     add rx170_pos, 1
     set_addr $I10, rxquantr174_done
     (rx170_rep) = rx170_cur."!mark_commit"($I10)
@@ -2126,8 +2300,8 @@
     add $I11, rx170_pos, 1
     gt $I11, rx170_eos, rx170_fail
     sub $I11, rx170_pos, rx170_off
-    substr $S10, rx170_tgt, $I11, 1
-    ne $S10, "?", rx170_fail
+    ord $I11, rx170_tgt, $I11
+    ne $I11, 63, rx170_fail
     add rx170_pos, 1
     goto alt175_end
   alt175_1:
@@ -2137,25 +2311,29 @@
     add $I11, rx170_pos, 1
     gt $I11, rx170_eos, rx170_fail
     sub $I11, rx170_pos, rx170_off
-    substr $S10, rx170_tgt, $I11, 1
-    ne $S10, "!", rx170_fail
+    ord $I11, rx170_tgt, $I11
+    ne $I11, 33, rx170_fail
     add rx170_pos, 1
     goto alt175_end
   alt175_2:
   # rx subrule "before" subtype=zerowidth negate=1
     rx170_cur."!cursor_pos"(rx170_pos)
-    .const 'Sub' $P177 = "48_1280467470.54449" 
+    .const 'Sub' $P177 = "48_1282016522.91354" 
     capture_lex $P177
     $P10 = rx170_cur."before"($P177)
     if $P10, rx170_fail
   alt175_end:
   # rx pass
     rx170_cur."!cursor_pass"(rx170_pos, "backmod")
+    if_null rx170_debug, debug_237
     rx170_cur."!cursor_debug"("PASS  ", "backmod", " at pos=", rx170_pos)
+  debug_237:
     .return (rx170_cur)
   rx170_restart:
 .annotate 'line', 3
+    if_null rx170_debug, debug_238
     rx170_cur."!cursor_debug"("NEXT ", "backmod")
+  debug_238:
   rx170_fail:
     (rx170_rep, rx170_pos, $I10, $P10) = rx170_cur."!mark_fail"(0)
     lt rx170_pos, -1, rx170_done
@@ -2163,14 +2341,16 @@
     jump $I10
   rx170_done:
     rx170_cur."!cursor_fail"()
+    if_null rx170_debug, debug_239
     rx170_cur."!cursor_debug"("FAIL  ", "backmod")
+  debug_239:
     .return (rx170_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backmod"  :subid("47_1280467470.54449") :method
+.sub "!PREFIX__backmod"  :subid("47_1282016522.91354") :method
 .annotate 'line', 3
     new $P172, "ResizablePMCArray"
     push $P172, ""
@@ -2179,7 +2359,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block176"  :anon :subid("48_1280467470.54449") :method :outer("46_1280467470.54449")
+.sub "_block176"  :anon :subid("48_1282016522.91354") :method :outer("46_1282016522.91354")
 .annotate 'line', 73
     .local string rx178_tgt
     .local int rx178_pos
@@ -2187,7 +2367,9 @@
     .local int rx178_eos
     .local int rx178_rep
     .local pmc rx178_cur
+    .local pmc rx178_debug
     (rx178_cur, rx178_pos, rx178_tgt, $I10) = self."!cursor_start"()
+    getattribute rx178_debug, rx178_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx178_cur
     .local pmc match
     .lex "$/", match
@@ -2199,7 +2381,9 @@
     substr rx178_tgt, rx178_tgt, rx178_off
   rx178_start:
     eq $I10, 1, rx178_restart
+    if_null rx178_debug, debug_233
     rx178_cur."!cursor_debug"("START ", "")
+  debug_233:
     $I10 = self.'from'()
     ne $I10, -1, rxscan179_done
     goto rxscan179_scan
@@ -2216,15 +2400,19 @@
     add $I11, rx178_pos, 1
     gt $I11, rx178_eos, rx178_fail
     sub $I11, rx178_pos, rx178_off
-    substr $S10, rx178_tgt, $I11, 1
-    ne $S10, ":", rx178_fail
+    ord $I11, rx178_tgt, $I11
+    ne $I11, 58, rx178_fail
     add rx178_pos, 1
   # rx pass
     rx178_cur."!cursor_pass"(rx178_pos, "")
+    if_null rx178_debug, debug_234
     rx178_cur."!cursor_debug"("PASS  ", "", " at pos=", rx178_pos)
+  debug_234:
     .return (rx178_cur)
   rx178_restart:
+    if_null rx178_debug, debug_235
     rx178_cur."!cursor_debug"("NEXT ", "")
+  debug_235:
   rx178_fail:
     (rx178_rep, rx178_pos, $I10, $P10) = rx178_cur."!mark_fail"(0)
     lt rx178_pos, -1, rx178_done
@@ -2232,14 +2420,16 @@
     jump $I10
   rx178_done:
     rx178_cur."!cursor_fail"()
+    if_null rx178_debug, debug_236
     rx178_cur."!cursor_debug"("FAIL  ", "")
+  debug_236:
     .return (rx178_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar"  :subid("49_1280467470.54449") :method
+.sub "metachar"  :subid("49_1282016522.91354") :method
 .annotate 'line', 75
     $P181 = self."!protoregex"("metachar")
     .return ($P181)
@@ -2247,7 +2437,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar"  :subid("50_1280467470.54449") :method
+.sub "!PREFIX__metachar"  :subid("50_1282016522.91354") :method
 .annotate 'line', 75
     $P183 = self."!PREFIX__!protoregex"("metachar")
     .return ($P183)
@@ -2255,7 +2445,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<ws>"  :subid("51_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<ws>"  :subid("51_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx185_tgt
     .local int rx185_pos
@@ -2263,7 +2453,9 @@
     .local int rx185_eos
     .local int rx185_rep
     .local pmc rx185_cur
+    .local pmc rx185_debug
     (rx185_cur, rx185_pos, rx185_tgt, $I10) = self."!cursor_start"()
+    getattribute rx185_debug, rx185_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx185_cur
     .local pmc match
     .lex "$/", match
@@ -2275,7 +2467,9 @@
     substr rx185_tgt, rx185_tgt, rx185_off
   rx185_start:
     eq $I10, 1, rx185_restart
+    if_null rx185_debug, debug_240
     rx185_cur."!cursor_debug"("START ", "metachar:sym<ws>")
+  debug_240:
     $I10 = self.'from'()
     ne $I10, -1, rxscan189_done
     goto rxscan189_scan
@@ -2296,11 +2490,15 @@
     rx185_pos = $P10."pos"()
   # rx pass
     rx185_cur."!cursor_pass"(rx185_pos, "metachar:sym<ws>")
+    if_null rx185_debug, debug_241
     rx185_cur."!cursor_debug"("PASS  ", "metachar:sym<ws>", " at pos=", rx185_pos)
+  debug_241:
     .return (rx185_cur)
   rx185_restart:
 .annotate 'line', 3
+    if_null rx185_debug, debug_242
     rx185_cur."!cursor_debug"("NEXT ", "metachar:sym<ws>")
+  debug_242:
   rx185_fail:
     (rx185_rep, rx185_pos, $I10, $P10) = rx185_cur."!mark_fail"(0)
     lt rx185_pos, -1, rx185_done
@@ -2308,14 +2506,16 @@
     jump $I10
   rx185_done:
     rx185_cur."!cursor_fail"()
+    if_null rx185_debug, debug_243
     rx185_cur."!cursor_debug"("FAIL  ", "metachar:sym<ws>")
+  debug_243:
     .return (rx185_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<ws>"  :subid("52_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<ws>"  :subid("52_1282016522.91354") :method
 .annotate 'line', 3
     $P187 = self."!PREFIX__!subrule"("normspace", "")
     new $P188, "ResizablePMCArray"
@@ -2325,7 +2525,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<[ ]>"  :subid("53_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<[ ]>"  :subid("53_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx191_tgt
     .local int rx191_pos
@@ -2333,7 +2533,9 @@
     .local int rx191_eos
     .local int rx191_rep
     .local pmc rx191_cur
+    .local pmc rx191_debug
     (rx191_cur, rx191_pos, rx191_tgt, $I10) = self."!cursor_start"()
+    getattribute rx191_debug, rx191_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx191_cur
     .local pmc match
     .lex "$/", match
@@ -2345,7 +2547,9 @@
     substr rx191_tgt, rx191_tgt, rx191_off
   rx191_start:
     eq $I10, 1, rx191_restart
+    if_null rx191_debug, debug_244
     rx191_cur."!cursor_debug"("START ", "metachar:sym<[ ]>")
+  debug_244:
     $I10 = self.'from'()
     ne $I10, -1, rxscan195_done
     goto rxscan195_scan
@@ -2363,8 +2567,8 @@
     add $I11, rx191_pos, 1
     gt $I11, rx191_eos, rx191_fail
     sub $I11, rx191_pos, rx191_off
-    substr $S10, rx191_tgt, $I11, 1
-    ne $S10, "[", rx191_fail
+    ord $I11, rx191_tgt, $I11
+    ne $I11, 91, rx191_fail
     add rx191_pos, 1
   # rx subrule "nibbler" subtype=capture negate=
     rx191_cur."!cursor_pos"(rx191_pos)
@@ -2377,16 +2581,20 @@
     add $I11, rx191_pos, 1
     gt $I11, rx191_eos, rx191_fail
     sub $I11, rx191_pos, rx191_off
-    substr $S10, rx191_tgt, $I11, 1
-    ne $S10, "]", rx191_fail
+    ord $I11, rx191_tgt, $I11
+    ne $I11, 93, rx191_fail
     add rx191_pos, 1
   # rx pass
     rx191_cur."!cursor_pass"(rx191_pos, "metachar:sym<[ ]>")
+    if_null rx191_debug, debug_245
     rx191_cur."!cursor_debug"("PASS  ", "metachar:sym<[ ]>", " at pos=", rx191_pos)
+  debug_245:
     .return (rx191_cur)
   rx191_restart:
 .annotate 'line', 3
+    if_null rx191_debug, debug_246
     rx191_cur."!cursor_debug"("NEXT ", "metachar:sym<[ ]>")
+  debug_246:
   rx191_fail:
     (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0)
     lt rx191_pos, -1, rx191_done
@@ -2394,14 +2602,16 @@
     jump $I10
   rx191_done:
     rx191_cur."!cursor_fail"()
+    if_null rx191_debug, debug_247
     rx191_cur."!cursor_debug"("FAIL  ", "metachar:sym<[ ]>")
+  debug_247:
     .return (rx191_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<[ ]>"  :subid("54_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<[ ]>"  :subid("54_1282016522.91354") :method
 .annotate 'line', 3
     $P193 = self."!PREFIX__!subrule"("nibbler", "[")
     new $P194, "ResizablePMCArray"
@@ -2411,7 +2621,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<( )>"  :subid("55_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<( )>"  :subid("55_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx197_tgt
     .local int rx197_pos
@@ -2419,7 +2629,9 @@
     .local int rx197_eos
     .local int rx197_rep
     .local pmc rx197_cur
+    .local pmc rx197_debug
     (rx197_cur, rx197_pos, rx197_tgt, $I10) = self."!cursor_start"()
+    getattribute rx197_debug, rx197_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx197_cur
     .local pmc match
     .lex "$/", match
@@ -2431,7 +2643,9 @@
     substr rx197_tgt, rx197_tgt, rx197_off
   rx197_start:
     eq $I10, 1, rx197_restart
+    if_null rx197_debug, debug_248
     rx197_cur."!cursor_debug"("START ", "metachar:sym<( )>")
+  debug_248:
     $I10 = self.'from'()
     ne $I10, -1, rxscan201_done
     goto rxscan201_scan
@@ -2449,8 +2663,8 @@
     add $I11, rx197_pos, 1
     gt $I11, rx197_eos, rx197_fail
     sub $I11, rx197_pos, rx197_off
-    substr $S10, rx197_tgt, $I11, 1
-    ne $S10, "(", rx197_fail
+    ord $I11, rx197_tgt, $I11
+    ne $I11, 40, rx197_fail
     add rx197_pos, 1
   # rx subrule "nibbler" subtype=capture negate=
     rx197_cur."!cursor_pos"(rx197_pos)
@@ -2463,16 +2677,20 @@
     add $I11, rx197_pos, 1
     gt $I11, rx197_eos, rx197_fail
     sub $I11, rx197_pos, rx197_off
-    substr $S10, rx197_tgt, $I11, 1
-    ne $S10, ")", rx197_fail
+    ord $I11, rx197_tgt, $I11
+    ne $I11, 41, rx197_fail
     add rx197_pos, 1
   # rx pass
     rx197_cur."!cursor_pass"(rx197_pos, "metachar:sym<( )>")
+    if_null rx197_debug, debug_249
     rx197_cur."!cursor_debug"("PASS  ", "metachar:sym<( )>", " at pos=", rx197_pos)
+  debug_249:
     .return (rx197_cur)
   rx197_restart:
 .annotate 'line', 3
+    if_null rx197_debug, debug_250
     rx197_cur."!cursor_debug"("NEXT ", "metachar:sym<( )>")
+  debug_250:
   rx197_fail:
     (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0)
     lt rx197_pos, -1, rx197_done
@@ -2480,14 +2698,16 @@
     jump $I10
   rx197_done:
     rx197_cur."!cursor_fail"()
+    if_null rx197_debug, debug_251
     rx197_cur."!cursor_debug"("FAIL  ", "metachar:sym<( )>")
+  debug_251:
     .return (rx197_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<( )>"  :subid("56_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<( )>"  :subid("56_1282016522.91354") :method
 .annotate 'line', 3
     $P199 = self."!PREFIX__!subrule"("nibbler", "(")
     new $P200, "ResizablePMCArray"
@@ -2497,7 +2717,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<'>"  :subid("57_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<'>"  :subid("57_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx203_tgt
     .local int rx203_pos
@@ -2505,7 +2725,9 @@
     .local int rx203_eos
     .local int rx203_rep
     .local pmc rx203_cur
+    .local pmc rx203_debug
     (rx203_cur, rx203_pos, rx203_tgt, $I10) = self."!cursor_start"()
+    getattribute rx203_debug, rx203_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx203_cur
     .local pmc match
     .lex "$/", match
@@ -2517,7 +2739,9 @@
     substr rx203_tgt, rx203_tgt, rx203_off
   rx203_start:
     eq $I10, 1, rx203_restart
+    if_null rx203_debug, debug_252
     rx203_cur."!cursor_debug"("START ", "metachar:sym<'>")
+  debug_252:
     $I10 = self.'from'()
     ne $I10, -1, rxscan206_done
     goto rxscan206_scan
@@ -2546,11 +2770,15 @@
     rx203_pos = $P10."pos"()
   # rx pass
     rx203_cur."!cursor_pass"(rx203_pos, "metachar:sym<'>")
+    if_null rx203_debug, debug_253
     rx203_cur."!cursor_debug"("PASS  ", "metachar:sym<'>", " at pos=", rx203_pos)
+  debug_253:
     .return (rx203_cur)
   rx203_restart:
 .annotate 'line', 3
+    if_null rx203_debug, debug_254
     rx203_cur."!cursor_debug"("NEXT ", "metachar:sym<'>")
+  debug_254:
   rx203_fail:
     (rx203_rep, rx203_pos, $I10, $P10) = rx203_cur."!mark_fail"(0)
     lt rx203_pos, -1, rx203_done
@@ -2558,14 +2786,16 @@
     jump $I10
   rx203_done:
     rx203_cur."!cursor_fail"()
+    if_null rx203_debug, debug_255
     rx203_cur."!cursor_debug"("FAIL  ", "metachar:sym<'>")
+  debug_255:
     .return (rx203_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<'>"  :subid("58_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<'>"  :subid("58_1282016522.91354") :method
 .annotate 'line', 3
     new $P205, "ResizablePMCArray"
     push $P205, "'"
@@ -2574,7 +2804,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<\">"  :subid("59_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<\">"  :subid("59_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx208_tgt
     .local int rx208_pos
@@ -2582,7 +2812,9 @@
     .local int rx208_eos
     .local int rx208_rep
     .local pmc rx208_cur
+    .local pmc rx208_debug
     (rx208_cur, rx208_pos, rx208_tgt, $I10) = self."!cursor_start"()
+    getattribute rx208_debug, rx208_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx208_cur
     .local pmc match
     .lex "$/", match
@@ -2594,7 +2826,9 @@
     substr rx208_tgt, rx208_tgt, rx208_off
   rx208_start:
     eq $I10, 1, rx208_restart
+    if_null rx208_debug, debug_256
     rx208_cur."!cursor_debug"("START ", "metachar:sym<\">")
+  debug_256:
     $I10 = self.'from'()
     ne $I10, -1, rxscan211_done
     goto rxscan211_scan
@@ -2623,11 +2857,15 @@
     rx208_pos = $P10."pos"()
   # rx pass
     rx208_cur."!cursor_pass"(rx208_pos, "metachar:sym<\">")
+    if_null rx208_debug, debug_257
     rx208_cur."!cursor_debug"("PASS  ", "metachar:sym<\">", " at pos=", rx208_pos)
+  debug_257:
     .return (rx208_cur)
   rx208_restart:
 .annotate 'line', 3
+    if_null rx208_debug, debug_258
     rx208_cur."!cursor_debug"("NEXT ", "metachar:sym<\">")
+  debug_258:
   rx208_fail:
     (rx208_rep, rx208_pos, $I10, $P10) = rx208_cur."!mark_fail"(0)
     lt rx208_pos, -1, rx208_done
@@ -2635,14 +2873,16 @@
     jump $I10
   rx208_done:
     rx208_cur."!cursor_fail"()
+    if_null rx208_debug, debug_259
     rx208_cur."!cursor_debug"("FAIL  ", "metachar:sym<\">")
+  debug_259:
     .return (rx208_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<\">"  :subid("60_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<\">"  :subid("60_1282016522.91354") :method
 .annotate 'line', 3
     new $P210, "ResizablePMCArray"
     push $P210, "\""
@@ -2651,7 +2891,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<.>"  :subid("61_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<.>"  :subid("61_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx213_tgt
     .local int rx213_pos
@@ -2659,7 +2899,9 @@
     .local int rx213_eos
     .local int rx213_rep
     .local pmc rx213_cur
+    .local pmc rx213_debug
     (rx213_cur, rx213_pos, rx213_tgt, $I10) = self."!cursor_start"()
+    getattribute rx213_debug, rx213_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx213_cur
     .local pmc match
     .lex "$/", match
@@ -2671,7 +2913,9 @@
     substr rx213_tgt, rx213_tgt, rx213_off
   rx213_start:
     eq $I10, 1, rx213_restart
+    if_null rx213_debug, debug_260
     rx213_cur."!cursor_debug"("START ", "metachar:sym<.>")
+  debug_260:
     $I10 = self.'from'()
     ne $I10, -1, rxscan216_done
     goto rxscan216_scan
@@ -2692,8 +2936,8 @@
     add $I11, rx213_pos, 1
     gt $I11, rx213_eos, rx213_fail
     sub $I11, rx213_pos, rx213_off
-    substr $S10, rx213_tgt, $I11, 1
-    ne $S10, ".", rx213_fail
+    ord $I11, rx213_tgt, $I11
+    ne $I11, 46, rx213_fail
     add rx213_pos, 1
     set_addr $I10, rxcap_217_fail
     ($I12, $I11) = rx213_cur."!mark_peek"($I10)
@@ -2708,11 +2952,15 @@
   rxcap_217_done:
   # rx pass
     rx213_cur."!cursor_pass"(rx213_pos, "metachar:sym<.>")
+    if_null rx213_debug, debug_261
     rx213_cur."!cursor_debug"("PASS  ", "metachar:sym<.>", " at pos=", rx213_pos)
+  debug_261:
     .return (rx213_cur)
   rx213_restart:
 .annotate 'line', 3
+    if_null rx213_debug, debug_262
     rx213_cur."!cursor_debug"("NEXT ", "metachar:sym<.>")
+  debug_262:
   rx213_fail:
     (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0)
     lt rx213_pos, -1, rx213_done
@@ -2720,14 +2968,16 @@
     jump $I10
   rx213_done:
     rx213_cur."!cursor_fail"()
+    if_null rx213_debug, debug_263
     rx213_cur."!cursor_debug"("FAIL  ", "metachar:sym<.>")
+  debug_263:
     .return (rx213_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<.>"  :subid("62_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<.>"  :subid("62_1282016522.91354") :method
 .annotate 'line', 3
     new $P215, "ResizablePMCArray"
     push $P215, "."
@@ -2736,7 +2986,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^>"  :subid("63_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<^>"  :subid("63_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx219_tgt
     .local int rx219_pos
@@ -2744,7 +2994,9 @@
     .local int rx219_eos
     .local int rx219_rep
     .local pmc rx219_cur
+    .local pmc rx219_debug
     (rx219_cur, rx219_pos, rx219_tgt, $I10) = self."!cursor_start"()
+    getattribute rx219_debug, rx219_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx219_cur
     .local pmc match
     .lex "$/", match
@@ -2756,7 +3008,9 @@
     substr rx219_tgt, rx219_tgt, rx219_off
   rx219_start:
     eq $I10, 1, rx219_restart
+    if_null rx219_debug, debug_264
     rx219_cur."!cursor_debug"("START ", "metachar:sym<^>")
+  debug_264:
     $I10 = self.'from'()
     ne $I10, -1, rxscan222_done
     goto rxscan222_scan
@@ -2777,8 +3031,8 @@
     add $I11, rx219_pos, 1
     gt $I11, rx219_eos, rx219_fail
     sub $I11, rx219_pos, rx219_off
-    substr $S10, rx219_tgt, $I11, 1
-    ne $S10, "^", rx219_fail
+    ord $I11, rx219_tgt, $I11
+    ne $I11, 94, rx219_fail
     add rx219_pos, 1
     set_addr $I10, rxcap_223_fail
     ($I12, $I11) = rx219_cur."!mark_peek"($I10)
@@ -2793,11 +3047,15 @@
   rxcap_223_done:
   # rx pass
     rx219_cur."!cursor_pass"(rx219_pos, "metachar:sym<^>")
+    if_null rx219_debug, debug_265
     rx219_cur."!cursor_debug"("PASS  ", "metachar:sym<^>", " at pos=", rx219_pos)
+  debug_265:
     .return (rx219_cur)
   rx219_restart:
 .annotate 'line', 3
+    if_null rx219_debug, debug_266
     rx219_cur."!cursor_debug"("NEXT ", "metachar:sym<^>")
+  debug_266:
   rx219_fail:
     (rx219_rep, rx219_pos, $I10, $P10) = rx219_cur."!mark_fail"(0)
     lt rx219_pos, -1, rx219_done
@@ -2805,14 +3063,16 @@
     jump $I10
   rx219_done:
     rx219_cur."!cursor_fail"()
+    if_null rx219_debug, debug_267
     rx219_cur."!cursor_debug"("FAIL  ", "metachar:sym<^>")
+  debug_267:
     .return (rx219_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^>"  :subid("64_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<^>"  :subid("64_1282016522.91354") :method
 .annotate 'line', 3
     new $P221, "ResizablePMCArray"
     push $P221, "^"
@@ -2821,7 +3081,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^^>"  :subid("65_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<^^>"  :subid("65_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx225_tgt
     .local int rx225_pos
@@ -2829,7 +3089,9 @@
     .local int rx225_eos
     .local int rx225_rep
     .local pmc rx225_cur
+    .local pmc rx225_debug
     (rx225_cur, rx225_pos, rx225_tgt, $I10) = self."!cursor_start"()
+    getattribute rx225_debug, rx225_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx225_cur
     .local pmc match
     .lex "$/", match
@@ -2841,7 +3103,9 @@
     substr rx225_tgt, rx225_tgt, rx225_off
   rx225_start:
     eq $I10, 1, rx225_restart
+    if_null rx225_debug, debug_268
     rx225_cur."!cursor_debug"("START ", "metachar:sym<^^>")
+  debug_268:
     $I10 = self.'from'()
     ne $I10, -1, rxscan228_done
     goto rxscan228_scan
@@ -2878,11 +3142,15 @@
   rxcap_229_done:
   # rx pass
     rx225_cur."!cursor_pass"(rx225_pos, "metachar:sym<^^>")
+    if_null rx225_debug, debug_269
     rx225_cur."!cursor_debug"("PASS  ", "metachar:sym<^^>", " at pos=", rx225_pos)
+  debug_269:
     .return (rx225_cur)
   rx225_restart:
 .annotate 'line', 3
+    if_null rx225_debug, debug_270
     rx225_cur."!cursor_debug"("NEXT ", "metachar:sym<^^>")
+  debug_270:
   rx225_fail:
     (rx225_rep, rx225_pos, $I10, $P10) = rx225_cur."!mark_fail"(0)
     lt rx225_pos, -1, rx225_done
@@ -2890,14 +3158,16 @@
     jump $I10
   rx225_done:
     rx225_cur."!cursor_fail"()
+    if_null rx225_debug, debug_271
     rx225_cur."!cursor_debug"("FAIL  ", "metachar:sym<^^>")
+  debug_271:
     .return (rx225_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^^>"  :subid("66_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<^^>"  :subid("66_1282016522.91354") :method
 .annotate 'line', 3
     new $P227, "ResizablePMCArray"
     push $P227, "^^"
@@ -2906,7 +3176,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$>"  :subid("67_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<$>"  :subid("67_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx231_tgt
     .local int rx231_pos
@@ -2914,7 +3184,9 @@
     .local int rx231_eos
     .local int rx231_rep
     .local pmc rx231_cur
+    .local pmc rx231_debug
     (rx231_cur, rx231_pos, rx231_tgt, $I10) = self."!cursor_start"()
+    getattribute rx231_debug, rx231_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx231_cur
     .local pmc match
     .lex "$/", match
@@ -2926,7 +3198,9 @@
     substr rx231_tgt, rx231_tgt, rx231_off
   rx231_start:
     eq $I10, 1, rx231_restart
+    if_null rx231_debug, debug_272
     rx231_cur."!cursor_debug"("START ", "metachar:sym<$>")
+  debug_272:
     $I10 = self.'from'()
     ne $I10, -1, rxscan234_done
     goto rxscan234_scan
@@ -2947,8 +3221,8 @@
     add $I11, rx231_pos, 1
     gt $I11, rx231_eos, rx231_fail
     sub $I11, rx231_pos, rx231_off
-    substr $S10, rx231_tgt, $I11, 1
-    ne $S10, "$", rx231_fail
+    ord $I11, rx231_tgt, $I11
+    ne $I11, 36, rx231_fail
     add rx231_pos, 1
     set_addr $I10, rxcap_235_fail
     ($I12, $I11) = rx231_cur."!mark_peek"($I10)
@@ -2963,11 +3237,15 @@
   rxcap_235_done:
   # rx pass
     rx231_cur."!cursor_pass"(rx231_pos, "metachar:sym<$>")
+    if_null rx231_debug, debug_273
     rx231_cur."!cursor_debug"("PASS  ", "metachar:sym<$>", " at pos=", rx231_pos)
+  debug_273:
     .return (rx231_cur)
   rx231_restart:
 .annotate 'line', 3
+    if_null rx231_debug, debug_274
     rx231_cur."!cursor_debug"("NEXT ", "metachar:sym<$>")
+  debug_274:
   rx231_fail:
     (rx231_rep, rx231_pos, $I10, $P10) = rx231_cur."!mark_fail"(0)
     lt rx231_pos, -1, rx231_done
@@ -2975,14 +3253,16 @@
     jump $I10
   rx231_done:
     rx231_cur."!cursor_fail"()
+    if_null rx231_debug, debug_275
     rx231_cur."!cursor_debug"("FAIL  ", "metachar:sym<$>")
+  debug_275:
     .return (rx231_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$>"  :subid("68_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<$>"  :subid("68_1282016522.91354") :method
 .annotate 'line', 3
     new $P233, "ResizablePMCArray"
     push $P233, "$"
@@ -2991,7 +3271,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$$>"  :subid("69_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<$$>"  :subid("69_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx237_tgt
     .local int rx237_pos
@@ -2999,7 +3279,9 @@
     .local int rx237_eos
     .local int rx237_rep
     .local pmc rx237_cur
+    .local pmc rx237_debug
     (rx237_cur, rx237_pos, rx237_tgt, $I10) = self."!cursor_start"()
+    getattribute rx237_debug, rx237_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx237_cur
     .local pmc match
     .lex "$/", match
@@ -3011,7 +3293,9 @@
     substr rx237_tgt, rx237_tgt, rx237_off
   rx237_start:
     eq $I10, 1, rx237_restart
+    if_null rx237_debug, debug_276
     rx237_cur."!cursor_debug"("START ", "metachar:sym<$$>")
+  debug_276:
     $I10 = self.'from'()
     ne $I10, -1, rxscan240_done
     goto rxscan240_scan
@@ -3048,11 +3332,15 @@
   rxcap_241_done:
   # rx pass
     rx237_cur."!cursor_pass"(rx237_pos, "metachar:sym<$$>")
+    if_null rx237_debug, debug_277
     rx237_cur."!cursor_debug"("PASS  ", "metachar:sym<$$>", " at pos=", rx237_pos)
+  debug_277:
     .return (rx237_cur)
   rx237_restart:
 .annotate 'line', 3
+    if_null rx237_debug, debug_278
     rx237_cur."!cursor_debug"("NEXT ", "metachar:sym<$$>")
+  debug_278:
   rx237_fail:
     (rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0)
     lt rx237_pos, -1, rx237_done
@@ -3060,14 +3348,16 @@
     jump $I10
   rx237_done:
     rx237_cur."!cursor_fail"()
+    if_null rx237_debug, debug_279
     rx237_cur."!cursor_debug"("FAIL  ", "metachar:sym<$$>")
+  debug_279:
     .return (rx237_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$$>"  :subid("70_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<$$>"  :subid("70_1282016522.91354") :method
 .annotate 'line', 3
     new $P239, "ResizablePMCArray"
     push $P239, "$$"
@@ -3076,7 +3366,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<:::>"  :subid("71_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<:::>"  :subid("71_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx243_tgt
     .local int rx243_pos
@@ -3084,7 +3374,9 @@
     .local int rx243_eos
     .local int rx243_rep
     .local pmc rx243_cur
+    .local pmc rx243_debug
     (rx243_cur, rx243_pos, rx243_tgt, $I10) = self."!cursor_start"()
+    getattribute rx243_debug, rx243_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx243_cur
     .local pmc match
     .lex "$/", match
@@ -3096,7 +3388,9 @@
     substr rx243_tgt, rx243_tgt, rx243_off
   rx243_start:
     eq $I10, 1, rx243_restart
+    if_null rx243_debug, debug_280
     rx243_cur."!cursor_debug"("START ", "metachar:sym<:::>")
+  debug_280:
     $I10 = self.'from'()
     ne $I10, -1, rxscan247_done
     goto rxscan247_scan
@@ -3138,11 +3432,15 @@
     rx243_pos = $P10."pos"()
   # rx pass
     rx243_cur."!cursor_pass"(rx243_pos, "metachar:sym<:::>")
+    if_null rx243_debug, debug_281
     rx243_cur."!cursor_debug"("PASS  ", "metachar:sym<:::>", " at pos=", rx243_pos)
+  debug_281:
     .return (rx243_cur)
   rx243_restart:
 .annotate 'line', 3
+    if_null rx243_debug, debug_282
     rx243_cur."!cursor_debug"("NEXT ", "metachar:sym<:::>")
+  debug_282:
   rx243_fail:
     (rx243_rep, rx243_pos, $I10, $P10) = rx243_cur."!mark_fail"(0)
     lt rx243_pos, -1, rx243_done
@@ -3150,14 +3448,16 @@
     jump $I10
   rx243_done:
     rx243_cur."!cursor_fail"()
+    if_null rx243_debug, debug_283
     rx243_cur."!cursor_debug"("FAIL  ", "metachar:sym<:::>")
+  debug_283:
     .return (rx243_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<:::>"  :subid("72_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<:::>"  :subid("72_1282016522.91354") :method
 .annotate 'line', 3
     $P245 = self."!PREFIX__!subrule"("panic", ":::")
     new $P246, "ResizablePMCArray"
@@ -3167,7 +3467,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<::>"  :subid("73_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<::>"  :subid("73_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx250_tgt
     .local int rx250_pos
@@ -3175,7 +3475,9 @@
     .local int rx250_eos
     .local int rx250_rep
     .local pmc rx250_cur
+    .local pmc rx250_debug
     (rx250_cur, rx250_pos, rx250_tgt, $I10) = self."!cursor_start"()
+    getattribute rx250_debug, rx250_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx250_cur
     .local pmc match
     .lex "$/", match
@@ -3187,7 +3489,9 @@
     substr rx250_tgt, rx250_tgt, rx250_off
   rx250_start:
     eq $I10, 1, rx250_restart
+    if_null rx250_debug, debug_284
     rx250_cur."!cursor_debug"("START ", "metachar:sym<::>")
+  debug_284:
     $I10 = self.'from'()
     ne $I10, -1, rxscan254_done
     goto rxscan254_scan
@@ -3229,11 +3533,15 @@
     rx250_pos = $P10."pos"()
   # rx pass
     rx250_cur."!cursor_pass"(rx250_pos, "metachar:sym<::>")
+    if_null rx250_debug, debug_285
     rx250_cur."!cursor_debug"("PASS  ", "metachar:sym<::>", " at pos=", rx250_pos)
+  debug_285:
     .return (rx250_cur)
   rx250_restart:
 .annotate 'line', 3
+    if_null rx250_debug, debug_286
     rx250_cur."!cursor_debug"("NEXT ", "metachar:sym<::>")
+  debug_286:
   rx250_fail:
     (rx250_rep, rx250_pos, $I10, $P10) = rx250_cur."!mark_fail"(0)
     lt rx250_pos, -1, rx250_done
@@ -3241,14 +3549,16 @@
     jump $I10
   rx250_done:
     rx250_cur."!cursor_fail"()
+    if_null rx250_debug, debug_287
     rx250_cur."!cursor_debug"("FAIL  ", "metachar:sym<::>")
+  debug_287:
     .return (rx250_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<::>"  :subid("74_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<::>"  :subid("74_1282016522.91354") :method
 .annotate 'line', 3
     $P252 = self."!PREFIX__!subrule"("panic", "::")
     new $P253, "ResizablePMCArray"
@@ -3258,7 +3568,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<lwb>"  :subid("75_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<lwb>"  :subid("75_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx257_tgt
     .local int rx257_pos
@@ -3266,7 +3576,9 @@
     .local int rx257_eos
     .local int rx257_rep
     .local pmc rx257_cur
+    .local pmc rx257_debug
     (rx257_cur, rx257_pos, rx257_tgt, $I10) = self."!cursor_start"()
+    getattribute rx257_debug, rx257_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx257_cur
     .local pmc match
     .lex "$/", match
@@ -3278,7 +3590,9 @@
     substr rx257_tgt, rx257_tgt, rx257_off
   rx257_start:
     eq $I10, 1, rx257_restart
+    if_null rx257_debug, debug_288
     rx257_cur."!cursor_debug"("START ", "metachar:sym<lwb>")
+  debug_288:
     $I10 = self.'from'()
     ne $I10, -1, rxscan260_done
     goto rxscan260_scan
@@ -3311,8 +3625,8 @@
     add $I11, rx257_pos, 1
     gt $I11, rx257_eos, rx257_fail
     sub $I11, rx257_pos, rx257_off
-    substr $S10, rx257_tgt, $I11, 1
-    ne $S10, unicode:"\x{ab}", rx257_fail
+    ord $I11, rx257_tgt, $I11
+    ne $I11, 171, rx257_fail
     add rx257_pos, 1
   alt261_end:
     set_addr $I10, rxcap_262_fail
@@ -3328,11 +3642,15 @@
   rxcap_262_done:
   # rx pass
     rx257_cur."!cursor_pass"(rx257_pos, "metachar:sym<lwb>")
+    if_null rx257_debug, debug_289
     rx257_cur."!cursor_debug"("PASS  ", "metachar:sym<lwb>", " at pos=", rx257_pos)
+  debug_289:
     .return (rx257_cur)
   rx257_restart:
 .annotate 'line', 3
+    if_null rx257_debug, debug_290
     rx257_cur."!cursor_debug"("NEXT ", "metachar:sym<lwb>")
+  debug_290:
   rx257_fail:
     (rx257_rep, rx257_pos, $I10, $P10) = rx257_cur."!mark_fail"(0)
     lt rx257_pos, -1, rx257_done
@@ -3340,14 +3658,16 @@
     jump $I10
   rx257_done:
     rx257_cur."!cursor_fail"()
+    if_null rx257_debug, debug_291
     rx257_cur."!cursor_debug"("FAIL  ", "metachar:sym<lwb>")
+  debug_291:
     .return (rx257_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<lwb>"  :subid("76_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<lwb>"  :subid("76_1282016522.91354") :method
 .annotate 'line', 3
     new $P259, "ResizablePMCArray"
     push $P259, unicode:"\x{ab}"
@@ -3357,7 +3677,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<rwb>"  :subid("77_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<rwb>"  :subid("77_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx264_tgt
     .local int rx264_pos
@@ -3365,7 +3685,9 @@
     .local int rx264_eos
     .local int rx264_rep
     .local pmc rx264_cur
+    .local pmc rx264_debug
     (rx264_cur, rx264_pos, rx264_tgt, $I10) = self."!cursor_start"()
+    getattribute rx264_debug, rx264_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx264_cur
     .local pmc match
     .lex "$/", match
@@ -3377,7 +3699,9 @@
     substr rx264_tgt, rx264_tgt, rx264_off
   rx264_start:
     eq $I10, 1, rx264_restart
+    if_null rx264_debug, debug_292
     rx264_cur."!cursor_debug"("START ", "metachar:sym<rwb>")
+  debug_292:
     $I10 = self.'from'()
     ne $I10, -1, rxscan267_done
     goto rxscan267_scan
@@ -3410,8 +3734,8 @@
     add $I11, rx264_pos, 1
     gt $I11, rx264_eos, rx264_fail
     sub $I11, rx264_pos, rx264_off
-    substr $S10, rx264_tgt, $I11, 1
-    ne $S10, unicode:"\x{bb}", rx264_fail
+    ord $I11, rx264_tgt, $I11
+    ne $I11, 187, rx264_fail
     add rx264_pos, 1
   alt268_end:
     set_addr $I10, rxcap_269_fail
@@ -3427,11 +3751,15 @@
   rxcap_269_done:
   # rx pass
     rx264_cur."!cursor_pass"(rx264_pos, "metachar:sym<rwb>")
+    if_null rx264_debug, debug_293
     rx264_cur."!cursor_debug"("PASS  ", "metachar:sym<rwb>", " at pos=", rx264_pos)
+  debug_293:
     .return (rx264_cur)
   rx264_restart:
 .annotate 'line', 3
+    if_null rx264_debug, debug_294
     rx264_cur."!cursor_debug"("NEXT ", "metachar:sym<rwb>")
+  debug_294:
   rx264_fail:
     (rx264_rep, rx264_pos, $I10, $P10) = rx264_cur."!mark_fail"(0)
     lt rx264_pos, -1, rx264_done
@@ -3439,14 +3767,16 @@
     jump $I10
   rx264_done:
     rx264_cur."!cursor_fail"()
+    if_null rx264_debug, debug_295
     rx264_cur."!cursor_debug"("FAIL  ", "metachar:sym<rwb>")
+  debug_295:
     .return (rx264_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<rwb>"  :subid("78_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<rwb>"  :subid("78_1282016522.91354") :method
 .annotate 'line', 3
     new $P266, "ResizablePMCArray"
     push $P266, unicode:"\x{bb}"
@@ -3456,7 +3786,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<bs>"  :subid("79_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<bs>"  :subid("79_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx271_tgt
     .local int rx271_pos
@@ -3464,7 +3794,9 @@
     .local int rx271_eos
     .local int rx271_rep
     .local pmc rx271_cur
+    .local pmc rx271_debug
     (rx271_cur, rx271_pos, rx271_tgt, $I10) = self."!cursor_start"()
+    getattribute rx271_debug, rx271_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx271_cur
     .local pmc match
     .lex "$/", match
@@ -3476,7 +3808,9 @@
     substr rx271_tgt, rx271_tgt, rx271_off
   rx271_start:
     eq $I10, 1, rx271_restart
+    if_null rx271_debug, debug_296
     rx271_cur."!cursor_debug"("START ", "metachar:sym<bs>")
+  debug_296:
     $I10 = self.'from'()
     ne $I10, -1, rxscan275_done
     goto rxscan275_scan
@@ -3494,8 +3828,8 @@
     add $I11, rx271_pos, 1
     gt $I11, rx271_eos, rx271_fail
     sub $I11, rx271_pos, rx271_off
-    substr $S10, rx271_tgt, $I11, 1
-    ne $S10, "\\", rx271_fail
+    ord $I11, rx271_tgt, $I11
+    ne $I11, 92, rx271_fail
     add rx271_pos, 1
   # rx subrule "backslash" subtype=capture negate=
     rx271_cur."!cursor_pos"(rx271_pos)
@@ -3506,11 +3840,15 @@
     rx271_pos = $P10."pos"()
   # rx pass
     rx271_cur."!cursor_pass"(rx271_pos, "metachar:sym<bs>")
+    if_null rx271_debug, debug_297
     rx271_cur."!cursor_debug"("PASS  ", "metachar:sym<bs>", " at pos=", rx271_pos)
+  debug_297:
     .return (rx271_cur)
   rx271_restart:
 .annotate 'line', 3
+    if_null rx271_debug, debug_298
     rx271_cur."!cursor_debug"("NEXT ", "metachar:sym<bs>")
+  debug_298:
   rx271_fail:
     (rx271_rep, rx271_pos, $I10, $P10) = rx271_cur."!mark_fail"(0)
     lt rx271_pos, -1, rx271_done
@@ -3518,14 +3856,16 @@
     jump $I10
   rx271_done:
     rx271_cur."!cursor_fail"()
+    if_null rx271_debug, debug_299
     rx271_cur."!cursor_debug"("FAIL  ", "metachar:sym<bs>")
+  debug_299:
     .return (rx271_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<bs>"  :subid("80_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<bs>"  :subid("80_1282016522.91354") :method
 .annotate 'line', 3
     $P273 = self."!PREFIX__!subrule"("backslash", "\\")
     new $P274, "ResizablePMCArray"
@@ -3535,7 +3875,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<mod>"  :subid("81_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<mod>"  :subid("81_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx277_tgt
     .local int rx277_pos
@@ -3543,7 +3883,9 @@
     .local int rx277_eos
     .local int rx277_rep
     .local pmc rx277_cur
+    .local pmc rx277_debug
     (rx277_cur, rx277_pos, rx277_tgt, $I10) = self."!cursor_start"()
+    getattribute rx277_debug, rx277_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx277_cur
     .local pmc match
     .lex "$/", match
@@ -3555,7 +3897,9 @@
     substr rx277_tgt, rx277_tgt, rx277_off
   rx277_start:
     eq $I10, 1, rx277_restart
+    if_null rx277_debug, debug_300
     rx277_cur."!cursor_debug"("START ", "metachar:sym<mod>")
+  debug_300:
     $I10 = self.'from'()
     ne $I10, -1, rxscan281_done
     goto rxscan281_scan
@@ -3578,11 +3922,15 @@
     rx277_pos = $P10."pos"()
   # rx pass
     rx277_cur."!cursor_pass"(rx277_pos, "metachar:sym<mod>")
+    if_null rx277_debug, debug_301
     rx277_cur."!cursor_debug"("PASS  ", "metachar:sym<mod>", " at pos=", rx277_pos)
+  debug_301:
     .return (rx277_cur)
   rx277_restart:
 .annotate 'line', 3
+    if_null rx277_debug, debug_302
     rx277_cur."!cursor_debug"("NEXT ", "metachar:sym<mod>")
+  debug_302:
   rx277_fail:
     (rx277_rep, rx277_pos, $I10, $P10) = rx277_cur."!mark_fail"(0)
     lt rx277_pos, -1, rx277_done
@@ -3590,14 +3938,16 @@
     jump $I10
   rx277_done:
     rx277_cur."!cursor_fail"()
+    if_null rx277_debug, debug_303
     rx277_cur."!cursor_debug"("FAIL  ", "metachar:sym<mod>")
+  debug_303:
     .return (rx277_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<mod>"  :subid("82_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<mod>"  :subid("82_1282016522.91354") :method
 .annotate 'line', 3
     $P279 = self."!PREFIX__!subrule"("mod_internal", "")
     new $P280, "ResizablePMCArray"
@@ -3607,7 +3957,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<~>"  :subid("83_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<~>"  :subid("83_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx283_tgt
     .local int rx283_pos
@@ -3615,7 +3965,9 @@
     .local int rx283_eos
     .local int rx283_rep
     .local pmc rx283_cur
+    .local pmc rx283_debug
     (rx283_cur, rx283_pos, rx283_tgt, $I10) = self."!cursor_start"()
+    getattribute rx283_debug, rx283_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx283_cur
     .local pmc match
     .lex "$/", match
@@ -3627,7 +3979,9 @@
     substr rx283_tgt, rx283_tgt, rx283_off
   rx283_start:
     eq $I10, 1, rx283_restart
+    if_null rx283_debug, debug_304
     rx283_cur."!cursor_debug"("START ", "metachar:sym<~>")
+  debug_304:
     $I10 = self.'from'()
     ne $I10, -1, rxscan287_done
     goto rxscan287_scan
@@ -3648,8 +4002,8 @@
     add $I11, rx283_pos, 1
     gt $I11, rx283_eos, rx283_fail
     sub $I11, rx283_pos, rx283_off
-    substr $S10, rx283_tgt, $I11, 1
-    ne $S10, "~", rx283_fail
+    ord $I11, rx283_tgt, $I11
+    ne $I11, 126, rx283_fail
     add rx283_pos, 1
     set_addr $I10, rxcap_288_fail
     ($I12, $I11) = rx283_cur."!mark_peek"($I10)
@@ -3691,11 +4045,15 @@
 .annotate 'line', 94
   # rx pass
     rx283_cur."!cursor_pass"(rx283_pos, "metachar:sym<~>")
+    if_null rx283_debug, debug_305
     rx283_cur."!cursor_debug"("PASS  ", "metachar:sym<~>", " at pos=", rx283_pos)
+  debug_305:
     .return (rx283_cur)
   rx283_restart:
 .annotate 'line', 3
+    if_null rx283_debug, debug_306
     rx283_cur."!cursor_debug"("NEXT ", "metachar:sym<~>")
+  debug_306:
   rx283_fail:
     (rx283_rep, rx283_pos, $I10, $P10) = rx283_cur."!mark_fail"(0)
     lt rx283_pos, -1, rx283_done
@@ -3703,14 +4061,16 @@
     jump $I10
   rx283_done:
     rx283_cur."!cursor_fail"()
+    if_null rx283_debug, debug_307
     rx283_cur."!cursor_debug"("FAIL  ", "metachar:sym<~>")
+  debug_307:
     .return (rx283_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<~>"  :subid("84_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<~>"  :subid("84_1282016522.91354") :method
 .annotate 'line', 3
     $P285 = self."!PREFIX__!subrule"("ws", "~")
     new $P286, "ResizablePMCArray"
@@ -3720,7 +4080,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<{*}>"  :subid("85_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<{*}>"  :subid("85_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx290_tgt
     .local int rx290_pos
@@ -3728,8 +4088,10 @@
     .local int rx290_eos
     .local int rx290_rep
     .local pmc rx290_cur
+    .local pmc rx290_debug
     (rx290_cur, rx290_pos, rx290_tgt, $I10) = self."!cursor_start"()
     rx290_cur."!cursor_caparray"("key")
+    getattribute rx290_debug, rx290_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx290_cur
     .local pmc match
     .lex "$/", match
@@ -3741,7 +4103,9 @@
     substr rx290_tgt, rx290_tgt, rx290_off
   rx290_start:
     eq $I10, 1, rx290_restart
+    if_null rx290_debug, debug_308
     rx290_cur."!cursor_debug"("START ", "metachar:sym<{*}>")
+  debug_308:
     $I10 = self.'from'()
     ne $I10, -1, rxscan293_done
     goto rxscan293_scan
@@ -3881,11 +4245,15 @@
 .annotate 'line', 100
   # rx pass
     rx290_cur."!cursor_pass"(rx290_pos, "metachar:sym<{*}>")
+    if_null rx290_debug, debug_309
     rx290_cur."!cursor_debug"("PASS  ", "metachar:sym<{*}>", " at pos=", rx290_pos)
+  debug_309:
     .return (rx290_cur)
   rx290_restart:
 .annotate 'line', 3
+    if_null rx290_debug, debug_310
     rx290_cur."!cursor_debug"("NEXT ", "metachar:sym<{*}>")
+  debug_310:
   rx290_fail:
     (rx290_rep, rx290_pos, $I10, $P10) = rx290_cur."!mark_fail"(0)
     lt rx290_pos, -1, rx290_done
@@ -3893,14 +4261,16 @@
     jump $I10
   rx290_done:
     rx290_cur."!cursor_fail"()
+    if_null rx290_debug, debug_311
     rx290_cur."!cursor_debug"("FAIL  ", "metachar:sym<{*}>")
+  debug_311:
     .return (rx290_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<{*}>"  :subid("86_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<{*}>"  :subid("86_1282016522.91354") :method
 .annotate 'line', 3
     new $P292, "ResizablePMCArray"
     push $P292, "{*}"
@@ -3909,7 +4279,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<assert>"  :subid("87_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<assert>"  :subid("87_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx302_tgt
     .local int rx302_pos
@@ -3917,7 +4287,9 @@
     .local int rx302_eos
     .local int rx302_rep
     .local pmc rx302_cur
+    .local pmc rx302_debug
     (rx302_cur, rx302_pos, rx302_tgt, $I10) = self."!cursor_start"()
+    getattribute rx302_debug, rx302_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx302_cur
     .local pmc match
     .lex "$/", match
@@ -3929,7 +4301,9 @@
     substr rx302_tgt, rx302_tgt, rx302_off
   rx302_start:
     eq $I10, 1, rx302_restart
+    if_null rx302_debug, debug_312
     rx302_cur."!cursor_debug"("START ", "metachar:sym<assert>")
+  debug_312:
     $I10 = self.'from'()
     ne $I10, -1, rxscan306_done
     goto rxscan306_scan
@@ -3947,8 +4321,8 @@
     add $I11, rx302_pos, 1
     gt $I11, rx302_eos, rx302_fail
     sub $I11, rx302_pos, rx302_off
-    substr $S10, rx302_tgt, $I11, 1
-    ne $S10, "<", rx302_fail
+    ord $I11, rx302_tgt, $I11
+    ne $I11, 60, rx302_fail
     add rx302_pos, 1
   # rx subrule "assertion" subtype=capture negate=
     rx302_cur."!cursor_pos"(rx302_pos)
@@ -3965,8 +4339,8 @@
     add $I11, rx302_pos, 1
     gt $I11, rx302_eos, rx302_fail
     sub $I11, rx302_pos, rx302_off
-    substr $S10, rx302_tgt, $I11, 1
-    ne $S10, ">", rx302_fail
+    ord $I11, rx302_tgt, $I11
+    ne $I11, 62, rx302_fail
     add rx302_pos, 1
     goto alt307_end
   alt307_1:
@@ -3979,11 +4353,15 @@
 .annotate 'line', 104
   # rx pass
     rx302_cur."!cursor_pass"(rx302_pos, "metachar:sym<assert>")
+    if_null rx302_debug, debug_313
     rx302_cur."!cursor_debug"("PASS  ", "metachar:sym<assert>", " at pos=", rx302_pos)
+  debug_313:
     .return (rx302_cur)
   rx302_restart:
 .annotate 'line', 3
+    if_null rx302_debug, debug_314
     rx302_cur."!cursor_debug"("NEXT ", "metachar:sym<assert>")
+  debug_314:
   rx302_fail:
     (rx302_rep, rx302_pos, $I10, $P10) = rx302_cur."!mark_fail"(0)
     lt rx302_pos, -1, rx302_done
@@ -3991,14 +4369,16 @@
     jump $I10
   rx302_done:
     rx302_cur."!cursor_fail"()
+    if_null rx302_debug, debug_315
     rx302_cur."!cursor_debug"("FAIL  ", "metachar:sym<assert>")
+  debug_315:
     .return (rx302_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<assert>"  :subid("88_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<assert>"  :subid("88_1282016522.91354") :method
 .annotate 'line', 3
     $P304 = self."!PREFIX__!subrule"("assertion", "<")
     new $P305, "ResizablePMCArray"
@@ -4008,7 +4388,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<var>"  :subid("89_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<var>"  :subid("89_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx309_tgt
     .local int rx309_pos
@@ -4016,8 +4396,10 @@
     .local int rx309_eos
     .local int rx309_rep
     .local pmc rx309_cur
+    .local pmc rx309_debug
     (rx309_cur, rx309_pos, rx309_tgt, $I10) = self."!cursor_start"()
     rx309_cur."!cursor_caparray"("quantified_atom")
+    getattribute rx309_debug, rx309_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx309_cur
     .local pmc match
     .lex "$/", match
@@ -4029,7 +4411,9 @@
     substr rx309_tgt, rx309_tgt, rx309_off
   rx309_start:
     eq $I10, 1, rx309_restart
+    if_null rx309_debug, debug_316
     rx309_cur."!cursor_debug"("START ", "metachar:sym<var>")
+  debug_316:
     $I10 = self.'from'()
     ne $I10, -1, rxscan312_done
     goto rxscan312_scan
@@ -4089,8 +4473,8 @@
     add $I11, rx309_pos, 1
     gt $I11, rx309_eos, rx309_fail
     sub $I11, rx309_pos, rx309_off
-    substr $S10, rx309_tgt, $I11, 1
-    ne $S10, ">", rx309_fail
+    ord $I11, rx309_tgt, $I11
+    ne $I11, 62, rx309_fail
     add rx309_pos, 1
     goto alt313_end
   alt313_1:
@@ -4099,8 +4483,8 @@
     add $I11, rx309_pos, 1
     gt $I11, rx309_eos, rx309_fail
     sub $I11, rx309_pos, rx309_off
-    substr $S10, rx309_tgt, $I11, 1
-    ne $S10, "$", rx309_fail
+    ord $I11, rx309_tgt, $I11
+    ne $I11, 36, rx309_fail
     add rx309_pos, 1
   # rx subcapture "pos"
     set_addr $I10, rxcap_316_fail
@@ -4137,8 +4521,8 @@
     add $I11, rx309_pos, 1
     gt $I11, rx309_eos, rx309_fail
     sub $I11, rx309_pos, rx309_off
-    substr $S10, rx309_tgt, $I11, 1
-    ne $S10, "=", rx309_fail
+    ord $I11, rx309_tgt, $I11
+    ne $I11, 61, rx309_fail
     add rx309_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx309_cur."!cursor_pos"(rx309_pos)
@@ -4158,11 +4542,15 @@
 .annotate 'line', 109
   # rx pass
     rx309_cur."!cursor_pass"(rx309_pos, "metachar:sym<var>")
+    if_null rx309_debug, debug_317
     rx309_cur."!cursor_debug"("PASS  ", "metachar:sym<var>", " at pos=", rx309_pos)
+  debug_317:
     .return (rx309_cur)
   rx309_restart:
 .annotate 'line', 3
+    if_null rx309_debug, debug_318
     rx309_cur."!cursor_debug"("NEXT ", "metachar:sym<var>")
+  debug_318:
   rx309_fail:
     (rx309_rep, rx309_pos, $I10, $P10) = rx309_cur."!mark_fail"(0)
     lt rx309_pos, -1, rx309_done
@@ -4170,14 +4558,16 @@
     jump $I10
   rx309_done:
     rx309_cur."!cursor_fail"()
+    if_null rx309_debug, debug_319
     rx309_cur."!cursor_debug"("FAIL  ", "metachar:sym<var>")
+  debug_319:
     .return (rx309_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<var>"  :subid("90_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<var>"  :subid("90_1282016522.91354") :method
 .annotate 'line', 3
     new $P311, "ResizablePMCArray"
     push $P311, "$"
@@ -4187,7 +4577,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<PIR>"  :subid("91_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<PIR>"  :subid("91_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx319_tgt
     .local int rx319_pos
@@ -4195,7 +4585,9 @@
     .local int rx319_eos
     .local int rx319_rep
     .local pmc rx319_cur
+    .local pmc rx319_debug
     (rx319_cur, rx319_pos, rx319_tgt, $I10) = self."!cursor_start"()
+    getattribute rx319_debug, rx319_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx319_cur
     .local pmc match
     .lex "$/", match
@@ -4207,7 +4599,9 @@
     substr rx319_tgt, rx319_tgt, rx319_off
   rx319_start:
     eq $I10, 1, rx319_restart
+    if_null rx319_debug, debug_320
     rx319_cur."!cursor_debug"("START ", "metachar:sym<PIR>")
+  debug_320:
     $I10 = self.'from'()
     ne $I10, -1, rxscan322_done
     goto rxscan322_scan
@@ -4263,11 +4657,15 @@
 .annotate 'line', 118
   # rx pass
     rx319_cur."!cursor_pass"(rx319_pos, "metachar:sym<PIR>")
+    if_null rx319_debug, debug_321
     rx319_cur."!cursor_debug"("PASS  ", "metachar:sym<PIR>", " at pos=", rx319_pos)
+  debug_321:
     .return (rx319_cur)
   rx319_restart:
 .annotate 'line', 3
+    if_null rx319_debug, debug_322
     rx319_cur."!cursor_debug"("NEXT ", "metachar:sym<PIR>")
+  debug_322:
   rx319_fail:
     (rx319_rep, rx319_pos, $I10, $P10) = rx319_cur."!mark_fail"(0)
     lt rx319_pos, -1, rx319_done
@@ -4275,14 +4673,16 @@
     jump $I10
   rx319_done:
     rx319_cur."!cursor_fail"()
+    if_null rx319_debug, debug_323
     rx319_cur."!cursor_debug"("FAIL  ", "metachar:sym<PIR>")
+  debug_323:
     .return (rx319_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<PIR>"  :subid("92_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<PIR>"  :subid("92_1282016522.91354") :method
 .annotate 'line', 3
     new $P321, "ResizablePMCArray"
     push $P321, ":PIR{{"
@@ -4291,7 +4691,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash"  :subid("93_1280467470.54449") :method
+.sub "backslash"  :subid("93_1282016522.91354") :method
 .annotate 'line', 122
     $P327 = self."!protoregex"("backslash")
     .return ($P327)
@@ -4299,7 +4699,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash"  :subid("94_1280467470.54449") :method
+.sub "!PREFIX__backslash"  :subid("94_1282016522.91354") :method
 .annotate 'line', 122
     $P329 = self."!PREFIX__!protoregex"("backslash")
     .return ($P329)
@@ -4307,7 +4707,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<w>"  :subid("95_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<w>"  :subid("95_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx331_tgt
     .local int rx331_pos
@@ -4315,7 +4715,9 @@
     .local int rx331_eos
     .local int rx331_rep
     .local pmc rx331_cur
+    .local pmc rx331_debug
     (rx331_cur, rx331_pos, rx331_tgt, $I10) = self."!cursor_start"()
+    getattribute rx331_debug, rx331_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx331_cur
     .local pmc match
     .lex "$/", match
@@ -4327,7 +4729,9 @@
     substr rx331_tgt, rx331_tgt, rx331_off
   rx331_start:
     eq $I10, 1, rx331_restart
+    if_null rx331_debug, debug_324
     rx331_cur."!cursor_debug"("START ", "backslash:sym<w>")
+  debug_324:
     $I10 = self.'from'()
     ne $I10, -1, rxscan334_done
     goto rxscan334_scan
@@ -4364,11 +4768,15 @@
   rxcap_335_done:
   # rx pass
     rx331_cur."!cursor_pass"(rx331_pos, "backslash:sym<w>")
+    if_null rx331_debug, debug_325
     rx331_cur."!cursor_debug"("PASS  ", "backslash:sym<w>", " at pos=", rx331_pos)
+  debug_325:
     .return (rx331_cur)
   rx331_restart:
 .annotate 'line', 3
+    if_null rx331_debug, debug_326
     rx331_cur."!cursor_debug"("NEXT ", "backslash:sym<w>")
+  debug_326:
   rx331_fail:
     (rx331_rep, rx331_pos, $I10, $P10) = rx331_cur."!mark_fail"(0)
     lt rx331_pos, -1, rx331_done
@@ -4376,14 +4784,16 @@
     jump $I10
   rx331_done:
     rx331_cur."!cursor_fail"()
+    if_null rx331_debug, debug_327
     rx331_cur."!cursor_debug"("FAIL  ", "backslash:sym<w>")
+  debug_327:
     .return (rx331_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<w>"  :subid("96_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<w>"  :subid("96_1282016522.91354") :method
 .annotate 'line', 3
     new $P333, "ResizablePMCArray"
     push $P333, "N"
@@ -4399,7 +4809,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<b>"  :subid("97_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<b>"  :subid("97_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx337_tgt
     .local int rx337_pos
@@ -4407,7 +4817,9 @@
     .local int rx337_eos
     .local int rx337_rep
     .local pmc rx337_cur
+    .local pmc rx337_debug
     (rx337_cur, rx337_pos, rx337_tgt, $I10) = self."!cursor_start"()
+    getattribute rx337_debug, rx337_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx337_cur
     .local pmc match
     .lex "$/", match
@@ -4419,7 +4831,9 @@
     substr rx337_tgt, rx337_tgt, rx337_off
   rx337_start:
     eq $I10, 1, rx337_restart
+    if_null rx337_debug, debug_328
     rx337_cur."!cursor_debug"("START ", "backslash:sym<b>")
+  debug_328:
     $I10 = self.'from'()
     ne $I10, -1, rxscan340_done
     goto rxscan340_scan
@@ -4456,11 +4870,15 @@
   rxcap_341_done:
   # rx pass
     rx337_cur."!cursor_pass"(rx337_pos, "backslash:sym<b>")
+    if_null rx337_debug, debug_329
     rx337_cur."!cursor_debug"("PASS  ", "backslash:sym<b>", " at pos=", rx337_pos)
+  debug_329:
     .return (rx337_cur)
   rx337_restart:
 .annotate 'line', 3
+    if_null rx337_debug, debug_330
     rx337_cur."!cursor_debug"("NEXT ", "backslash:sym<b>")
+  debug_330:
   rx337_fail:
     (rx337_rep, rx337_pos, $I10, $P10) = rx337_cur."!mark_fail"(0)
     lt rx337_pos, -1, rx337_done
@@ -4468,14 +4886,16 @@
     jump $I10
   rx337_done:
     rx337_cur."!cursor_fail"()
+    if_null rx337_debug, debug_331
     rx337_cur."!cursor_debug"("FAIL  ", "backslash:sym<b>")
+  debug_331:
     .return (rx337_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<b>"  :subid("98_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<b>"  :subid("98_1282016522.91354") :method
 .annotate 'line', 3
     new $P339, "ResizablePMCArray"
     push $P339, "B"
@@ -4485,7 +4905,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<e>"  :subid("99_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<e>"  :subid("99_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx343_tgt
     .local int rx343_pos
@@ -4493,7 +4913,9 @@
     .local int rx343_eos
     .local int rx343_rep
     .local pmc rx343_cur
+    .local pmc rx343_debug
     (rx343_cur, rx343_pos, rx343_tgt, $I10) = self."!cursor_start"()
+    getattribute rx343_debug, rx343_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx343_cur
     .local pmc match
     .lex "$/", match
@@ -4505,7 +4927,9 @@
     substr rx343_tgt, rx343_tgt, rx343_off
   rx343_start:
     eq $I10, 1, rx343_restart
+    if_null rx343_debug, debug_332
     rx343_cur."!cursor_debug"("START ", "backslash:sym<e>")
+  debug_332:
     $I10 = self.'from'()
     ne $I10, -1, rxscan346_done
     goto rxscan346_scan
@@ -4542,11 +4966,15 @@
   rxcap_347_done:
   # rx pass
     rx343_cur."!cursor_pass"(rx343_pos, "backslash:sym<e>")
+    if_null rx343_debug, debug_333
     rx343_cur."!cursor_debug"("PASS  ", "backslash:sym<e>", " at pos=", rx343_pos)
+  debug_333:
     .return (rx343_cur)
   rx343_restart:
 .annotate 'line', 3
+    if_null rx343_debug, debug_334
     rx343_cur."!cursor_debug"("NEXT ", "backslash:sym<e>")
+  debug_334:
   rx343_fail:
     (rx343_rep, rx343_pos, $I10, $P10) = rx343_cur."!mark_fail"(0)
     lt rx343_pos, -1, rx343_done
@@ -4554,14 +4982,16 @@
     jump $I10
   rx343_done:
     rx343_cur."!cursor_fail"()
+    if_null rx343_debug, debug_335
     rx343_cur."!cursor_debug"("FAIL  ", "backslash:sym<e>")
+  debug_335:
     .return (rx343_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<e>"  :subid("100_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<e>"  :subid("100_1282016522.91354") :method
 .annotate 'line', 3
     new $P345, "ResizablePMCArray"
     push $P345, "E"
@@ -4571,7 +5001,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<f>"  :subid("101_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<f>"  :subid("101_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx349_tgt
     .local int rx349_pos
@@ -4579,7 +5009,9 @@
     .local int rx349_eos
     .local int rx349_rep
     .local pmc rx349_cur
+    .local pmc rx349_debug
     (rx349_cur, rx349_pos, rx349_tgt, $I10) = self."!cursor_start"()
+    getattribute rx349_debug, rx349_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx349_cur
     .local pmc match
     .lex "$/", match
@@ -4591,7 +5023,9 @@
     substr rx349_tgt, rx349_tgt, rx349_off
   rx349_start:
     eq $I10, 1, rx349_restart
+    if_null rx349_debug, debug_336
     rx349_cur."!cursor_debug"("START ", "backslash:sym<f>")
+  debug_336:
     $I10 = self.'from'()
     ne $I10, -1, rxscan352_done
     goto rxscan352_scan
@@ -4628,11 +5062,15 @@
   rxcap_353_done:
   # rx pass
     rx349_cur."!cursor_pass"(rx349_pos, "backslash:sym<f>")
+    if_null rx349_debug, debug_337
     rx349_cur."!cursor_debug"("PASS  ", "backslash:sym<f>", " at pos=", rx349_pos)
+  debug_337:
     .return (rx349_cur)
   rx349_restart:
 .annotate 'line', 3
+    if_null rx349_debug, debug_338
     rx349_cur."!cursor_debug"("NEXT ", "backslash:sym<f>")
+  debug_338:
   rx349_fail:
     (rx349_rep, rx349_pos, $I10, $P10) = rx349_cur."!mark_fail"(0)
     lt rx349_pos, -1, rx349_done
@@ -4640,14 +5078,16 @@
     jump $I10
   rx349_done:
     rx349_cur."!cursor_fail"()
+    if_null rx349_debug, debug_339
     rx349_cur."!cursor_debug"("FAIL  ", "backslash:sym<f>")
+  debug_339:
     .return (rx349_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<f>"  :subid("102_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<f>"  :subid("102_1282016522.91354") :method
 .annotate 'line', 3
     new $P351, "ResizablePMCArray"
     push $P351, "F"
@@ -4657,7 +5097,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<h>"  :subid("103_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<h>"  :subid("103_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx355_tgt
     .local int rx355_pos
@@ -4665,7 +5105,9 @@
     .local int rx355_eos
     .local int rx355_rep
     .local pmc rx355_cur
+    .local pmc rx355_debug
     (rx355_cur, rx355_pos, rx355_tgt, $I10) = self."!cursor_start"()
+    getattribute rx355_debug, rx355_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx355_cur
     .local pmc match
     .lex "$/", match
@@ -4677,7 +5119,9 @@
     substr rx355_tgt, rx355_tgt, rx355_off
   rx355_start:
     eq $I10, 1, rx355_restart
+    if_null rx355_debug, debug_340
     rx355_cur."!cursor_debug"("START ", "backslash:sym<h>")
+  debug_340:
     $I10 = self.'from'()
     ne $I10, -1, rxscan358_done
     goto rxscan358_scan
@@ -4714,11 +5158,15 @@
   rxcap_359_done:
   # rx pass
     rx355_cur."!cursor_pass"(rx355_pos, "backslash:sym<h>")
+    if_null rx355_debug, debug_341
     rx355_cur."!cursor_debug"("PASS  ", "backslash:sym<h>", " at pos=", rx355_pos)
+  debug_341:
     .return (rx355_cur)
   rx355_restart:
 .annotate 'line', 3
+    if_null rx355_debug, debug_342
     rx355_cur."!cursor_debug"("NEXT ", "backslash:sym<h>")
+  debug_342:
   rx355_fail:
     (rx355_rep, rx355_pos, $I10, $P10) = rx355_cur."!mark_fail"(0)
     lt rx355_pos, -1, rx355_done
@@ -4726,14 +5174,16 @@
     jump $I10
   rx355_done:
     rx355_cur."!cursor_fail"()
+    if_null rx355_debug, debug_343
     rx355_cur."!cursor_debug"("FAIL  ", "backslash:sym<h>")
+  debug_343:
     .return (rx355_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<h>"  :subid("104_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<h>"  :subid("104_1282016522.91354") :method
 .annotate 'line', 3
     new $P357, "ResizablePMCArray"
     push $P357, "H"
@@ -4743,7 +5193,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<r>"  :subid("105_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<r>"  :subid("105_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx361_tgt
     .local int rx361_pos
@@ -4751,7 +5201,9 @@
     .local int rx361_eos
     .local int rx361_rep
     .local pmc rx361_cur
+    .local pmc rx361_debug
     (rx361_cur, rx361_pos, rx361_tgt, $I10) = self."!cursor_start"()
+    getattribute rx361_debug, rx361_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx361_cur
     .local pmc match
     .lex "$/", match
@@ -4763,7 +5215,9 @@
     substr rx361_tgt, rx361_tgt, rx361_off
   rx361_start:
     eq $I10, 1, rx361_restart
+    if_null rx361_debug, debug_344
     rx361_cur."!cursor_debug"("START ", "backslash:sym<r>")
+  debug_344:
     $I10 = self.'from'()
     ne $I10, -1, rxscan364_done
     goto rxscan364_scan
@@ -4800,11 +5254,15 @@
   rxcap_365_done:
   # rx pass
     rx361_cur."!cursor_pass"(rx361_pos, "backslash:sym<r>")
+    if_null rx361_debug, debug_345
     rx361_cur."!cursor_debug"("PASS  ", "backslash:sym<r>", " at pos=", rx361_pos)
+  debug_345:
     .return (rx361_cur)
   rx361_restart:
 .annotate 'line', 3
+    if_null rx361_debug, debug_346
     rx361_cur."!cursor_debug"("NEXT ", "backslash:sym<r>")
+  debug_346:
   rx361_fail:
     (rx361_rep, rx361_pos, $I10, $P10) = rx361_cur."!mark_fail"(0)
     lt rx361_pos, -1, rx361_done
@@ -4812,14 +5270,16 @@
     jump $I10
   rx361_done:
     rx361_cur."!cursor_fail"()
+    if_null rx361_debug, debug_347
     rx361_cur."!cursor_debug"("FAIL  ", "backslash:sym<r>")
+  debug_347:
     .return (rx361_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<r>"  :subid("106_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<r>"  :subid("106_1282016522.91354") :method
 .annotate 'line', 3
     new $P363, "ResizablePMCArray"
     push $P363, "R"
@@ -4829,7 +5289,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<t>"  :subid("107_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<t>"  :subid("107_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx367_tgt
     .local int rx367_pos
@@ -4837,7 +5297,9 @@
     .local int rx367_eos
     .local int rx367_rep
     .local pmc rx367_cur
+    .local pmc rx367_debug
     (rx367_cur, rx367_pos, rx367_tgt, $I10) = self."!cursor_start"()
+    getattribute rx367_debug, rx367_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx367_cur
     .local pmc match
     .lex "$/", match
@@ -4849,7 +5311,9 @@
     substr rx367_tgt, rx367_tgt, rx367_off
   rx367_start:
     eq $I10, 1, rx367_restart
+    if_null rx367_debug, debug_348
     rx367_cur."!cursor_debug"("START ", "backslash:sym<t>")
+  debug_348:
     $I10 = self.'from'()
     ne $I10, -1, rxscan370_done
     goto rxscan370_scan
@@ -4886,11 +5350,15 @@
   rxcap_371_done:
   # rx pass
     rx367_cur."!cursor_pass"(rx367_pos, "backslash:sym<t>")
+    if_null rx367_debug, debug_349
     rx367_cur."!cursor_debug"("PASS  ", "backslash:sym<t>", " at pos=", rx367_pos)
+  debug_349:
     .return (rx367_cur)
   rx367_restart:
 .annotate 'line', 3
+    if_null rx367_debug, debug_350
     rx367_cur."!cursor_debug"("NEXT ", "backslash:sym<t>")
+  debug_350:
   rx367_fail:
     (rx367_rep, rx367_pos, $I10, $P10) = rx367_cur."!mark_fail"(0)
     lt rx367_pos, -1, rx367_done
@@ -4898,14 +5366,16 @@
     jump $I10
   rx367_done:
     rx367_cur."!cursor_fail"()
+    if_null rx367_debug, debug_351
     rx367_cur."!cursor_debug"("FAIL  ", "backslash:sym<t>")
+  debug_351:
     .return (rx367_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<t>"  :subid("108_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<t>"  :subid("108_1282016522.91354") :method
 .annotate 'line', 3
     new $P369, "ResizablePMCArray"
     push $P369, "T"
@@ -4915,7 +5385,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<v>"  :subid("109_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<v>"  :subid("109_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx373_tgt
     .local int rx373_pos
@@ -4923,7 +5393,9 @@
     .local int rx373_eos
     .local int rx373_rep
     .local pmc rx373_cur
+    .local pmc rx373_debug
     (rx373_cur, rx373_pos, rx373_tgt, $I10) = self."!cursor_start"()
+    getattribute rx373_debug, rx373_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx373_cur
     .local pmc match
     .lex "$/", match
@@ -4935,7 +5407,9 @@
     substr rx373_tgt, rx373_tgt, rx373_off
   rx373_start:
     eq $I10, 1, rx373_restart
+    if_null rx373_debug, debug_352
     rx373_cur."!cursor_debug"("START ", "backslash:sym<v>")
+  debug_352:
     $I10 = self.'from'()
     ne $I10, -1, rxscan376_done
     goto rxscan376_scan
@@ -4972,11 +5446,15 @@
   rxcap_377_done:
   # rx pass
     rx373_cur."!cursor_pass"(rx373_pos, "backslash:sym<v>")
+    if_null rx373_debug, debug_353
     rx373_cur."!cursor_debug"("PASS  ", "backslash:sym<v>", " at pos=", rx373_pos)
+  debug_353:
     .return (rx373_cur)
   rx373_restart:
 .annotate 'line', 3
+    if_null rx373_debug, debug_354
     rx373_cur."!cursor_debug"("NEXT ", "backslash:sym<v>")
+  debug_354:
   rx373_fail:
     (rx373_rep, rx373_pos, $I10, $P10) = rx373_cur."!mark_fail"(0)
     lt rx373_pos, -1, rx373_done
@@ -4984,14 +5462,16 @@
     jump $I10
   rx373_done:
     rx373_cur."!cursor_fail"()
+    if_null rx373_debug, debug_355
     rx373_cur."!cursor_debug"("FAIL  ", "backslash:sym<v>")
+  debug_355:
     .return (rx373_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<v>"  :subid("110_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<v>"  :subid("110_1282016522.91354") :method
 .annotate 'line', 3
     new $P375, "ResizablePMCArray"
     push $P375, "V"
@@ -5001,7 +5481,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<o>"  :subid("111_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<o>"  :subid("111_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx379_tgt
     .local int rx379_pos
@@ -5009,7 +5489,9 @@
     .local int rx379_eos
     .local int rx379_rep
     .local pmc rx379_cur
+    .local pmc rx379_debug
     (rx379_cur, rx379_pos, rx379_tgt, $I10) = self."!cursor_start"()
+    getattribute rx379_debug, rx379_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx379_cur
     .local pmc match
     .lex "$/", match
@@ -5021,7 +5503,9 @@
     substr rx379_tgt, rx379_tgt, rx379_off
   rx379_start:
     eq $I10, 1, rx379_restart
+    if_null rx379_debug, debug_356
     rx379_cur."!cursor_debug"("START ", "backslash:sym<o>")
+  debug_356:
     $I10 = self.'from'()
     ne $I10, -1, rxscan386_done
     goto rxscan386_scan
@@ -5072,8 +5556,8 @@
     add $I11, rx379_pos, 1
     gt $I11, rx379_eos, rx379_fail
     sub $I11, rx379_pos, rx379_off
-    substr $S10, rx379_tgt, $I11, 1
-    ne $S10, "[", rx379_fail
+    ord $I11, rx379_tgt, $I11
+    ne $I11, 91, rx379_fail
     add rx379_pos, 1
   # rx subrule "octints" subtype=capture negate=
     rx379_cur."!cursor_pos"(rx379_pos)
@@ -5086,17 +5570,21 @@
     add $I11, rx379_pos, 1
     gt $I11, rx379_eos, rx379_fail
     sub $I11, rx379_pos, rx379_off
-    substr $S10, rx379_tgt, $I11, 1
-    ne $S10, "]", rx379_fail
+    ord $I11, rx379_tgt, $I11
+    ne $I11, 93, rx379_fail
     add rx379_pos, 1
   alt388_end:
   # rx pass
     rx379_cur."!cursor_pass"(rx379_pos, "backslash:sym<o>")
+    if_null rx379_debug, debug_357
     rx379_cur."!cursor_debug"("PASS  ", "backslash:sym<o>", " at pos=", rx379_pos)
+  debug_357:
     .return (rx379_cur)
   rx379_restart:
 .annotate 'line', 3
+    if_null rx379_debug, debug_358
     rx379_cur."!cursor_debug"("NEXT ", "backslash:sym<o>")
+  debug_358:
   rx379_fail:
     (rx379_rep, rx379_pos, $I10, $P10) = rx379_cur."!mark_fail"(0)
     lt rx379_pos, -1, rx379_done
@@ -5104,14 +5592,16 @@
     jump $I10
   rx379_done:
     rx379_cur."!cursor_fail"()
+    if_null rx379_debug, debug_359
     rx379_cur."!cursor_debug"("FAIL  ", "backslash:sym<o>")
+  debug_359:
     .return (rx379_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<o>"  :subid("112_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<o>"  :subid("112_1282016522.91354") :method
 .annotate 'line', 3
     $P381 = self."!PREFIX__!subrule"("octints", "O[")
     $P382 = self."!PREFIX__!subrule"("octint", "O")
@@ -5127,7 +5617,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<x>"  :subid("113_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<x>"  :subid("113_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx390_tgt
     .local int rx390_pos
@@ -5135,7 +5625,9 @@
     .local int rx390_eos
     .local int rx390_rep
     .local pmc rx390_cur
+    .local pmc rx390_debug
     (rx390_cur, rx390_pos, rx390_tgt, $I10) = self."!cursor_start"()
+    getattribute rx390_debug, rx390_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx390_cur
     .local pmc match
     .lex "$/", match
@@ -5147,7 +5639,9 @@
     substr rx390_tgt, rx390_tgt, rx390_off
   rx390_start:
     eq $I10, 1, rx390_restart
+    if_null rx390_debug, debug_360
     rx390_cur."!cursor_debug"("START ", "backslash:sym<x>")
+  debug_360:
     $I10 = self.'from'()
     ne $I10, -1, rxscan397_done
     goto rxscan397_scan
@@ -5198,8 +5692,8 @@
     add $I11, rx390_pos, 1
     gt $I11, rx390_eos, rx390_fail
     sub $I11, rx390_pos, rx390_off
-    substr $S10, rx390_tgt, $I11, 1
-    ne $S10, "[", rx390_fail
+    ord $I11, rx390_tgt, $I11
+    ne $I11, 91, rx390_fail
     add rx390_pos, 1
   # rx subrule "hexints" subtype=capture negate=
     rx390_cur."!cursor_pos"(rx390_pos)
@@ -5212,17 +5706,21 @@
     add $I11, rx390_pos, 1
     gt $I11, rx390_eos, rx390_fail
     sub $I11, rx390_pos, rx390_off
-    substr $S10, rx390_tgt, $I11, 1
-    ne $S10, "]", rx390_fail
+    ord $I11, rx390_tgt, $I11
+    ne $I11, 93, rx390_fail
     add rx390_pos, 1
   alt399_end:
   # rx pass
     rx390_cur."!cursor_pass"(rx390_pos, "backslash:sym<x>")
+    if_null rx390_debug, debug_361
     rx390_cur."!cursor_debug"("PASS  ", "backslash:sym<x>", " at pos=", rx390_pos)
+  debug_361:
     .return (rx390_cur)
   rx390_restart:
 .annotate 'line', 3
+    if_null rx390_debug, debug_362
     rx390_cur."!cursor_debug"("NEXT ", "backslash:sym<x>")
+  debug_362:
   rx390_fail:
     (rx390_rep, rx390_pos, $I10, $P10) = rx390_cur."!mark_fail"(0)
     lt rx390_pos, -1, rx390_done
@@ -5230,14 +5728,16 @@
     jump $I10
   rx390_done:
     rx390_cur."!cursor_fail"()
+    if_null rx390_debug, debug_363
     rx390_cur."!cursor_debug"("FAIL  ", "backslash:sym<x>")
+  debug_363:
     .return (rx390_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<x>"  :subid("114_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<x>"  :subid("114_1282016522.91354") :method
 .annotate 'line', 3
     $P392 = self."!PREFIX__!subrule"("hexints", "X[")
     $P393 = self."!PREFIX__!subrule"("hexint", "X")
@@ -5253,7 +5753,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<c>"  :subid("115_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<c>"  :subid("115_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx401_tgt
     .local int rx401_pos
@@ -5261,7 +5761,9 @@
     .local int rx401_eos
     .local int rx401_rep
     .local pmc rx401_cur
+    .local pmc rx401_debug
     (rx401_cur, rx401_pos, rx401_tgt, $I10) = self."!cursor_start"()
+    getattribute rx401_debug, rx401_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx401_cur
     .local pmc match
     .lex "$/", match
@@ -5273,7 +5775,9 @@
     substr rx401_tgt, rx401_tgt, rx401_off
   rx401_start:
     eq $I10, 1, rx401_restart
+    if_null rx401_debug, debug_364
     rx401_cur."!cursor_debug"("START ", "backslash:sym<c>")
+  debug_364:
     $I10 = self.'from'()
     ne $I10, -1, rxscan406_done
     goto rxscan406_scan
@@ -5317,11 +5821,15 @@
     rx401_pos = $P10."pos"()
   # rx pass
     rx401_cur."!cursor_pass"(rx401_pos, "backslash:sym<c>")
+    if_null rx401_debug, debug_365
     rx401_cur."!cursor_debug"("PASS  ", "backslash:sym<c>", " at pos=", rx401_pos)
+  debug_365:
     .return (rx401_cur)
   rx401_restart:
 .annotate 'line', 3
+    if_null rx401_debug, debug_366
     rx401_cur."!cursor_debug"("NEXT ", "backslash:sym<c>")
+  debug_366:
   rx401_fail:
     (rx401_rep, rx401_pos, $I10, $P10) = rx401_cur."!mark_fail"(0)
     lt rx401_pos, -1, rx401_done
@@ -5329,14 +5837,16 @@
     jump $I10
   rx401_done:
     rx401_cur."!cursor_fail"()
+    if_null rx401_debug, debug_367
     rx401_cur."!cursor_debug"("FAIL  ", "backslash:sym<c>")
+  debug_367:
     .return (rx401_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<c>"  :subid("116_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<c>"  :subid("116_1282016522.91354") :method
 .annotate 'line', 3
     $P403 = self."!PREFIX__!subrule"("charspec", "C")
     $P404 = self."!PREFIX__!subrule"("charspec", "c")
@@ -5348,7 +5858,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<A>"  :subid("117_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<A>"  :subid("117_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx409_tgt
     .local int rx409_pos
@@ -5356,7 +5866,9 @@
     .local int rx409_eos
     .local int rx409_rep
     .local pmc rx409_cur
+    .local pmc rx409_debug
     (rx409_cur, rx409_pos, rx409_tgt, $I10) = self."!cursor_start"()
+    getattribute rx409_debug, rx409_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx409_cur
     .local pmc match
     .lex "$/", match
@@ -5368,7 +5880,9 @@
     substr rx409_tgt, rx409_tgt, rx409_off
   rx409_start:
     eq $I10, 1, rx409_restart
+    if_null rx409_debug, debug_368
     rx409_cur."!cursor_debug"("START ", "backslash:sym<A>")
+  debug_368:
     $I10 = self.'from'()
     ne $I10, -1, rxscan413_done
     goto rxscan413_scan
@@ -5386,8 +5900,8 @@
     add $I11, rx409_pos, 1
     gt $I11, rx409_eos, rx409_fail
     sub $I11, rx409_pos, rx409_off
-    substr $S10, rx409_tgt, $I11, 1
-    ne $S10, "A", rx409_fail
+    ord $I11, rx409_tgt, $I11
+    ne $I11, 65, rx409_fail
     add rx409_pos, 1
   # rx subrule "obs" subtype=method negate=
     rx409_cur."!cursor_pos"(rx409_pos)
@@ -5396,11 +5910,15 @@
     rx409_pos = $P10."pos"()
   # rx pass
     rx409_cur."!cursor_pass"(rx409_pos, "backslash:sym<A>")
+    if_null rx409_debug, debug_369
     rx409_cur."!cursor_debug"("PASS  ", "backslash:sym<A>", " at pos=", rx409_pos)
+  debug_369:
     .return (rx409_cur)
   rx409_restart:
 .annotate 'line', 3
+    if_null rx409_debug, debug_370
     rx409_cur."!cursor_debug"("NEXT ", "backslash:sym<A>")
+  debug_370:
   rx409_fail:
     (rx409_rep, rx409_pos, $I10, $P10) = rx409_cur."!mark_fail"(0)
     lt rx409_pos, -1, rx409_done
@@ -5408,14 +5926,16 @@
     jump $I10
   rx409_done:
     rx409_cur."!cursor_fail"()
+    if_null rx409_debug, debug_371
     rx409_cur."!cursor_debug"("FAIL  ", "backslash:sym<A>")
+  debug_371:
     .return (rx409_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<A>"  :subid("118_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<A>"  :subid("118_1282016522.91354") :method
 .annotate 'line', 3
     $P411 = self."!PREFIX__!subrule"("obs", "A")
     new $P412, "ResizablePMCArray"
@@ -5425,7 +5945,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<z>"  :subid("119_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<z>"  :subid("119_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx415_tgt
     .local int rx415_pos
@@ -5433,7 +5953,9 @@
     .local int rx415_eos
     .local int rx415_rep
     .local pmc rx415_cur
+    .local pmc rx415_debug
     (rx415_cur, rx415_pos, rx415_tgt, $I10) = self."!cursor_start"()
+    getattribute rx415_debug, rx415_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx415_cur
     .local pmc match
     .lex "$/", match
@@ -5445,7 +5967,9 @@
     substr rx415_tgt, rx415_tgt, rx415_off
   rx415_start:
     eq $I10, 1, rx415_restart
+    if_null rx415_debug, debug_372
     rx415_cur."!cursor_debug"("START ", "backslash:sym<z>")
+  debug_372:
     $I10 = self.'from'()
     ne $I10, -1, rxscan419_done
     goto rxscan419_scan
@@ -5463,8 +5987,8 @@
     add $I11, rx415_pos, 1
     gt $I11, rx415_eos, rx415_fail
     sub $I11, rx415_pos, rx415_off
-    substr $S10, rx415_tgt, $I11, 1
-    ne $S10, "z", rx415_fail
+    ord $I11, rx415_tgt, $I11
+    ne $I11, 122, rx415_fail
     add rx415_pos, 1
   # rx subrule "obs" subtype=method negate=
     rx415_cur."!cursor_pos"(rx415_pos)
@@ -5473,11 +5997,15 @@
     rx415_pos = $P10."pos"()
   # rx pass
     rx415_cur."!cursor_pass"(rx415_pos, "backslash:sym<z>")
+    if_null rx415_debug, debug_373
     rx415_cur."!cursor_debug"("PASS  ", "backslash:sym<z>", " at pos=", rx415_pos)
+  debug_373:
     .return (rx415_cur)
   rx415_restart:
 .annotate 'line', 3
+    if_null rx415_debug, debug_374
     rx415_cur."!cursor_debug"("NEXT ", "backslash:sym<z>")
+  debug_374:
   rx415_fail:
     (rx415_rep, rx415_pos, $I10, $P10) = rx415_cur."!mark_fail"(0)
     lt rx415_pos, -1, rx415_done
@@ -5485,14 +6013,16 @@
     jump $I10
   rx415_done:
     rx415_cur."!cursor_fail"()
+    if_null rx415_debug, debug_375
     rx415_cur."!cursor_debug"("FAIL  ", "backslash:sym<z>")
+  debug_375:
     .return (rx415_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<z>"  :subid("120_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<z>"  :subid("120_1282016522.91354") :method
 .annotate 'line', 3
     $P417 = self."!PREFIX__!subrule"("obs", "z")
     new $P418, "ResizablePMCArray"
@@ -5502,7 +6032,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Z>"  :subid("121_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<Z>"  :subid("121_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx421_tgt
     .local int rx421_pos
@@ -5510,7 +6040,9 @@
     .local int rx421_eos
     .local int rx421_rep
     .local pmc rx421_cur
+    .local pmc rx421_debug
     (rx421_cur, rx421_pos, rx421_tgt, $I10) = self."!cursor_start"()
+    getattribute rx421_debug, rx421_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx421_cur
     .local pmc match
     .lex "$/", match
@@ -5522,7 +6054,9 @@
     substr rx421_tgt, rx421_tgt, rx421_off
   rx421_start:
     eq $I10, 1, rx421_restart
+    if_null rx421_debug, debug_376
     rx421_cur."!cursor_debug"("START ", "backslash:sym<Z>")
+  debug_376:
     $I10 = self.'from'()
     ne $I10, -1, rxscan425_done
     goto rxscan425_scan
@@ -5540,8 +6074,8 @@
     add $I11, rx421_pos, 1
     gt $I11, rx421_eos, rx421_fail
     sub $I11, rx421_pos, rx421_off
-    substr $S10, rx421_tgt, $I11, 1
-    ne $S10, "Z", rx421_fail
+    ord $I11, rx421_tgt, $I11
+    ne $I11, 90, rx421_fail
     add rx421_pos, 1
   # rx subrule "obs" subtype=method negate=
     rx421_cur."!cursor_pos"(rx421_pos)
@@ -5550,11 +6084,15 @@
     rx421_pos = $P10."pos"()
   # rx pass
     rx421_cur."!cursor_pass"(rx421_pos, "backslash:sym<Z>")
+    if_null rx421_debug, debug_377
     rx421_cur."!cursor_debug"("PASS  ", "backslash:sym<Z>", " at pos=", rx421_pos)
+  debug_377:
     .return (rx421_cur)
   rx421_restart:
 .annotate 'line', 3
+    if_null rx421_debug, debug_378
     rx421_cur."!cursor_debug"("NEXT ", "backslash:sym<Z>")
+  debug_378:
   rx421_fail:
     (rx421_rep, rx421_pos, $I10, $P10) = rx421_cur."!mark_fail"(0)
     lt rx421_pos, -1, rx421_done
@@ -5562,14 +6100,16 @@
     jump $I10
   rx421_done:
     rx421_cur."!cursor_fail"()
+    if_null rx421_debug, debug_379
     rx421_cur."!cursor_debug"("FAIL  ", "backslash:sym<Z>")
+  debug_379:
     .return (rx421_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Z>"  :subid("122_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<Z>"  :subid("122_1282016522.91354") :method
 .annotate 'line', 3
     $P423 = self."!PREFIX__!subrule"("obs", "Z")
     new $P424, "ResizablePMCArray"
@@ -5579,7 +6119,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Q>"  :subid("123_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<Q>"  :subid("123_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx427_tgt
     .local int rx427_pos
@@ -5587,7 +6127,9 @@
     .local int rx427_eos
     .local int rx427_rep
     .local pmc rx427_cur
+    .local pmc rx427_debug
     (rx427_cur, rx427_pos, rx427_tgt, $I10) = self."!cursor_start"()
+    getattribute rx427_debug, rx427_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx427_cur
     .local pmc match
     .lex "$/", match
@@ -5599,7 +6141,9 @@
     substr rx427_tgt, rx427_tgt, rx427_off
   rx427_start:
     eq $I10, 1, rx427_restart
+    if_null rx427_debug, debug_380
     rx427_cur."!cursor_debug"("START ", "backslash:sym<Q>")
+  debug_380:
     $I10 = self.'from'()
     ne $I10, -1, rxscan431_done
     goto rxscan431_scan
@@ -5617,8 +6161,8 @@
     add $I11, rx427_pos, 1
     gt $I11, rx427_eos, rx427_fail
     sub $I11, rx427_pos, rx427_off
-    substr $S10, rx427_tgt, $I11, 1
-    ne $S10, "Q", rx427_fail
+    ord $I11, rx427_tgt, $I11
+    ne $I11, 81, rx427_fail
     add rx427_pos, 1
   # rx subrule "obs" subtype=method negate=
     rx427_cur."!cursor_pos"(rx427_pos)
@@ -5627,11 +6171,15 @@
     rx427_pos = $P10."pos"()
   # rx pass
     rx427_cur."!cursor_pass"(rx427_pos, "backslash:sym<Q>")
+    if_null rx427_debug, debug_381
     rx427_cur."!cursor_debug"("PASS  ", "backslash:sym<Q>", " at pos=", rx427_pos)
+  debug_381:
     .return (rx427_cur)
   rx427_restart:
 .annotate 'line', 3
+    if_null rx427_debug, debug_382
     rx427_cur."!cursor_debug"("NEXT ", "backslash:sym<Q>")
+  debug_382:
   rx427_fail:
     (rx427_rep, rx427_pos, $I10, $P10) = rx427_cur."!mark_fail"(0)
     lt rx427_pos, -1, rx427_done
@@ -5639,14 +6187,16 @@
     jump $I10
   rx427_done:
     rx427_cur."!cursor_fail"()
+    if_null rx427_debug, debug_383
     rx427_cur."!cursor_debug"("FAIL  ", "backslash:sym<Q>")
+  debug_383:
     .return (rx427_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Q>"  :subid("124_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<Q>"  :subid("124_1282016522.91354") :method
 .annotate 'line', 3
     $P429 = self."!PREFIX__!subrule"("obs", "Q")
     new $P430, "ResizablePMCArray"
@@ -5656,7 +6206,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<misc>"  :subid("125_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<misc>"  :subid("125_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx433_tgt
     .local int rx433_pos
@@ -5664,7 +6214,9 @@
     .local int rx433_eos
     .local int rx433_rep
     .local pmc rx433_cur
+    .local pmc rx433_debug
     (rx433_cur, rx433_pos, rx433_tgt, $I10) = self."!cursor_start"()
+    getattribute rx433_debug, rx433_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx433_cur
     .local pmc match
     .lex "$/", match
@@ -5676,7 +6228,9 @@
     substr rx433_tgt, rx433_tgt, rx433_off
   rx433_start:
     eq $I10, 1, rx433_restart
+    if_null rx433_debug, debug_384
     rx433_cur."!cursor_debug"("START ", "backslash:sym<misc>")
+  debug_384:
     $I10 = self.'from'()
     ne $I10, -1, rxscan436_done
     goto rxscan436_scan
@@ -5698,11 +6252,15 @@
     inc rx433_pos
   # rx pass
     rx433_cur."!cursor_pass"(rx433_pos, "backslash:sym<misc>")
+    if_null rx433_debug, debug_385
     rx433_cur."!cursor_debug"("PASS  ", "backslash:sym<misc>", " at pos=", rx433_pos)
+  debug_385:
     .return (rx433_cur)
   rx433_restart:
 .annotate 'line', 3
+    if_null rx433_debug, debug_386
     rx433_cur."!cursor_debug"("NEXT ", "backslash:sym<misc>")
+  debug_386:
   rx433_fail:
     (rx433_rep, rx433_pos, $I10, $P10) = rx433_cur."!mark_fail"(0)
     lt rx433_pos, -1, rx433_done
@@ -5710,14 +6268,16 @@
     jump $I10
   rx433_done:
     rx433_cur."!cursor_fail"()
+    if_null rx433_debug, debug_387
     rx433_cur."!cursor_debug"("FAIL  ", "backslash:sym<misc>")
+  debug_387:
     .return (rx433_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<misc>"  :subid("126_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<misc>"  :subid("126_1282016522.91354") :method
 .annotate 'line', 3
     new $P435, "ResizablePMCArray"
     push $P435, ""
@@ -5726,7 +6286,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion"  :subid("127_1280467470.54449") :method
+.sub "assertion"  :subid("127_1282016522.91354") :method
 .annotate 'line', 140
     $P438 = self."!protoregex"("assertion")
     .return ($P438)
@@ -5734,7 +6294,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion"  :subid("128_1280467470.54449") :method
+.sub "!PREFIX__assertion"  :subid("128_1282016522.91354") :method
 .annotate 'line', 140
     $P440 = self."!PREFIX__!protoregex"("assertion")
     .return ($P440)
@@ -5742,9 +6302,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<?>"  :subid("129_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "assertion:sym<?>"  :subid("129_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
-    .const 'Sub' $P449 = "131_1280467470.54449" 
+    .const 'Sub' $P449 = "131_1282016522.91354" 
     capture_lex $P449
     .local string rx442_tgt
     .local int rx442_pos
@@ -5752,7 +6312,9 @@
     .local int rx442_eos
     .local int rx442_rep
     .local pmc rx442_cur
+    .local pmc rx442_debug
     (rx442_cur, rx442_pos, rx442_tgt, $I10) = self."!cursor_start"()
+    getattribute rx442_debug, rx442_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx442_cur
     .local pmc match
     .lex "$/", match
@@ -5764,7 +6326,9 @@
     substr rx442_tgt, rx442_tgt, rx442_off
   rx442_start:
     eq $I10, 1, rx442_restart
+    if_null rx442_debug, debug_388
     rx442_cur."!cursor_debug"("START ", "assertion:sym<?>")
+  debug_388:
     $I10 = self.'from'()
     ne $I10, -1, rxscan446_done
     goto rxscan446_scan
@@ -5782,15 +6346,15 @@
     add $I11, rx442_pos, 1
     gt $I11, rx442_eos, rx442_fail
     sub $I11, rx442_pos, rx442_off
-    substr $S10, rx442_tgt, $I11, 1
-    ne $S10, "?", rx442_fail
+    ord $I11, rx442_tgt, $I11
+    ne $I11, 63, rx442_fail
     add rx442_pos, 1
   alt447_0:
     set_addr $I10, alt447_1
     rx442_cur."!mark_push"(0, rx442_pos, $I10)
   # rx subrule "before" subtype=zerowidth negate=
     rx442_cur."!cursor_pos"(rx442_pos)
-    .const 'Sub' $P449 = "131_1280467470.54449" 
+    .const 'Sub' $P449 = "131_1282016522.91354" 
     capture_lex $P449
     $P10 = rx442_cur."before"($P449)
     unless $P10, rx442_fail
@@ -5806,11 +6370,15 @@
   alt447_end:
   # rx pass
     rx442_cur."!cursor_pass"(rx442_pos, "assertion:sym<?>")
+    if_null rx442_debug, debug_393
     rx442_cur."!cursor_debug"("PASS  ", "assertion:sym<?>", " at pos=", rx442_pos)
+  debug_393:
     .return (rx442_cur)
   rx442_restart:
 .annotate 'line', 3
+    if_null rx442_debug, debug_394
     rx442_cur."!cursor_debug"("NEXT ", "assertion:sym<?>")
+  debug_394:
   rx442_fail:
     (rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0)
     lt rx442_pos, -1, rx442_done
@@ -5818,14 +6386,16 @@
     jump $I10
   rx442_done:
     rx442_cur."!cursor_fail"()
+    if_null rx442_debug, debug_395
     rx442_cur."!cursor_debug"("FAIL  ", "assertion:sym<?>")
+  debug_395:
     .return (rx442_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<?>"  :subid("130_1280467470.54449") :method
+.sub "!PREFIX__assertion:sym<?>"  :subid("130_1282016522.91354") :method
 .annotate 'line', 3
     $P444 = self."!PREFIX__!subrule"("assertion", "?")
     new $P445, "ResizablePMCArray"
@@ -5836,7 +6406,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block448"  :anon :subid("131_1280467470.54449") :method :outer("129_1280467470.54449")
+.sub "_block448"  :anon :subid("131_1282016522.91354") :method :outer("129_1282016522.91354")
 .annotate 'line', 142
     .local string rx450_tgt
     .local int rx450_pos
@@ -5844,7 +6414,9 @@
     .local int rx450_eos
     .local int rx450_rep
     .local pmc rx450_cur
+    .local pmc rx450_debug
     (rx450_cur, rx450_pos, rx450_tgt, $I10) = self."!cursor_start"()
+    getattribute rx450_debug, rx450_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx450_cur
     .local pmc match
     .lex "$/", match
@@ -5856,7 +6428,9 @@
     substr rx450_tgt, rx450_tgt, rx450_off
   rx450_start:
     eq $I10, 1, rx450_restart
+    if_null rx450_debug, debug_389
     rx450_cur."!cursor_debug"("START ", "")
+  debug_389:
     $I10 = self.'from'()
     ne $I10, -1, rxscan451_done
     goto rxscan451_scan
@@ -5873,15 +6447,19 @@
     add $I11, rx450_pos, 1
     gt $I11, rx450_eos, rx450_fail
     sub $I11, rx450_pos, rx450_off
-    substr $S10, rx450_tgt, $I11, 1
-    ne $S10, ">", rx450_fail
+    ord $I11, rx450_tgt, $I11
+    ne $I11, 62, rx450_fail
     add rx450_pos, 1
   # rx pass
     rx450_cur."!cursor_pass"(rx450_pos, "")
+    if_null rx450_debug, debug_390
     rx450_cur."!cursor_debug"("PASS  ", "", " at pos=", rx450_pos)
+  debug_390:
     .return (rx450_cur)
   rx450_restart:
+    if_null rx450_debug, debug_391
     rx450_cur."!cursor_debug"("NEXT ", "")
+  debug_391:
   rx450_fail:
     (rx450_rep, rx450_pos, $I10, $P10) = rx450_cur."!mark_fail"(0)
     lt rx450_pos, -1, rx450_done
@@ -5889,16 +6467,18 @@
     jump $I10
   rx450_done:
     rx450_cur."!cursor_fail"()
+    if_null rx450_debug, debug_392
     rx450_cur."!cursor_debug"("FAIL  ", "")
+  debug_392:
     .return (rx450_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<!>"  :subid("132_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "assertion:sym<!>"  :subid("132_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
-    .const 'Sub' $P460 = "134_1280467470.54449" 
+    .const 'Sub' $P460 = "134_1282016522.91354" 
     capture_lex $P460
     .local string rx453_tgt
     .local int rx453_pos
@@ -5906,7 +6486,9 @@
     .local int rx453_eos
     .local int rx453_rep
     .local pmc rx453_cur
+    .local pmc rx453_debug
     (rx453_cur, rx453_pos, rx453_tgt, $I10) = self."!cursor_start"()
+    getattribute rx453_debug, rx453_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx453_cur
     .local pmc match
     .lex "$/", match
@@ -5918,7 +6500,9 @@
     substr rx453_tgt, rx453_tgt, rx453_off
   rx453_start:
     eq $I10, 1, rx453_restart
+    if_null rx453_debug, debug_396
     rx453_cur."!cursor_debug"("START ", "assertion:sym<!>")
+  debug_396:
     $I10 = self.'from'()
     ne $I10, -1, rxscan457_done
     goto rxscan457_scan
@@ -5936,15 +6520,15 @@
     add $I11, rx453_pos, 1
     gt $I11, rx453_eos, rx453_fail
     sub $I11, rx453_pos, rx453_off
-    substr $S10, rx453_tgt, $I11, 1
-    ne $S10, "!", rx453_fail
+    ord $I11, rx453_tgt, $I11
+    ne $I11, 33, rx453_fail
     add rx453_pos, 1
   alt458_0:
     set_addr $I10, alt458_1
     rx453_cur."!mark_push"(0, rx453_pos, $I10)
   # rx subrule "before" subtype=zerowidth negate=
     rx453_cur."!cursor_pos"(rx453_pos)
-    .const 'Sub' $P460 = "134_1280467470.54449" 
+    .const 'Sub' $P460 = "134_1282016522.91354" 
     capture_lex $P460
     $P10 = rx453_cur."before"($P460)
     unless $P10, rx453_fail
@@ -5960,11 +6544,15 @@
   alt458_end:
   # rx pass
     rx453_cur."!cursor_pass"(rx453_pos, "assertion:sym<!>")
+    if_null rx453_debug, debug_401
     rx453_cur."!cursor_debug"("PASS  ", "assertion:sym<!>", " at pos=", rx453_pos)
+  debug_401:
     .return (rx453_cur)
   rx453_restart:
 .annotate 'line', 3
+    if_null rx453_debug, debug_402
     rx453_cur."!cursor_debug"("NEXT ", "assertion:sym<!>")
+  debug_402:
   rx453_fail:
     (rx453_rep, rx453_pos, $I10, $P10) = rx453_cur."!mark_fail"(0)
     lt rx453_pos, -1, rx453_done
@@ -5972,14 +6560,16 @@
     jump $I10
   rx453_done:
     rx453_cur."!cursor_fail"()
+    if_null rx453_debug, debug_403
     rx453_cur."!cursor_debug"("FAIL  ", "assertion:sym<!>")
+  debug_403:
     .return (rx453_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<!>"  :subid("133_1280467470.54449") :method
+.sub "!PREFIX__assertion:sym<!>"  :subid("133_1282016522.91354") :method
 .annotate 'line', 3
     $P455 = self."!PREFIX__!subrule"("assertion", "!")
     new $P456, "ResizablePMCArray"
@@ -5990,7 +6580,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block459"  :anon :subid("134_1280467470.54449") :method :outer("132_1280467470.54449")
+.sub "_block459"  :anon :subid("134_1282016522.91354") :method :outer("132_1282016522.91354")
 .annotate 'line', 143
     .local string rx461_tgt
     .local int rx461_pos
@@ -5998,7 +6588,9 @@
     .local int rx461_eos
     .local int rx461_rep
     .local pmc rx461_cur
+    .local pmc rx461_debug
     (rx461_cur, rx461_pos, rx461_tgt, $I10) = self."!cursor_start"()
+    getattribute rx461_debug, rx461_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx461_cur
     .local pmc match
     .lex "$/", match
@@ -6010,7 +6602,9 @@
     substr rx461_tgt, rx461_tgt, rx461_off
   rx461_start:
     eq $I10, 1, rx461_restart
+    if_null rx461_debug, debug_397
     rx461_cur."!cursor_debug"("START ", "")
+  debug_397:
     $I10 = self.'from'()
     ne $I10, -1, rxscan462_done
     goto rxscan462_scan
@@ -6027,15 +6621,19 @@
     add $I11, rx461_pos, 1
     gt $I11, rx461_eos, rx461_fail
     sub $I11, rx461_pos, rx461_off
-    substr $S10, rx461_tgt, $I11, 1
-    ne $S10, ">", rx461_fail
+    ord $I11, rx461_tgt, $I11
+    ne $I11, 62, rx461_fail
     add rx461_pos, 1
   # rx pass
     rx461_cur."!cursor_pass"(rx461_pos, "")
+    if_null rx461_debug, debug_398
     rx461_cur."!cursor_debug"("PASS  ", "", " at pos=", rx461_pos)
+  debug_398:
     .return (rx461_cur)
   rx461_restart:
+    if_null rx461_debug, debug_399
     rx461_cur."!cursor_debug"("NEXT ", "")
+  debug_399:
   rx461_fail:
     (rx461_rep, rx461_pos, $I10, $P10) = rx461_cur."!mark_fail"(0)
     lt rx461_pos, -1, rx461_done
@@ -6043,14 +6641,16 @@
     jump $I10
   rx461_done:
     rx461_cur."!cursor_fail"()
+    if_null rx461_debug, debug_400
     rx461_cur."!cursor_debug"("FAIL  ", "")
+  debug_400:
     .return (rx461_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<method>"  :subid("135_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "assertion:sym<method>"  :subid("135_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx464_tgt
     .local int rx464_pos
@@ -6058,7 +6658,9 @@
     .local int rx464_eos
     .local int rx464_rep
     .local pmc rx464_cur
+    .local pmc rx464_debug
     (rx464_cur, rx464_pos, rx464_tgt, $I10) = self."!cursor_start"()
+    getattribute rx464_debug, rx464_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx464_cur
     .local pmc match
     .lex "$/", match
@@ -6070,7 +6672,9 @@
     substr rx464_tgt, rx464_tgt, rx464_off
   rx464_start:
     eq $I10, 1, rx464_restart
+    if_null rx464_debug, debug_404
     rx464_cur."!cursor_debug"("START ", "assertion:sym<method>")
+  debug_404:
     $I10 = self.'from'()
     ne $I10, -1, rxscan468_done
     goto rxscan468_scan
@@ -6088,8 +6692,8 @@
     add $I11, rx464_pos, 1
     gt $I11, rx464_eos, rx464_fail
     sub $I11, rx464_pos, rx464_off
-    substr $S10, rx464_tgt, $I11, 1
-    ne $S10, ".", rx464_fail
+    ord $I11, rx464_tgt, $I11
+    ne $I11, 46, rx464_fail
     add rx464_pos, 1
   # rx subrule "assertion" subtype=capture negate=
     rx464_cur."!cursor_pos"(rx464_pos)
@@ -6101,11 +6705,15 @@
 .annotate 'line', 145
   # rx pass
     rx464_cur."!cursor_pass"(rx464_pos, "assertion:sym<method>")
+    if_null rx464_debug, debug_405
     rx464_cur."!cursor_debug"("PASS  ", "assertion:sym<method>", " at pos=", rx464_pos)
+  debug_405:
     .return (rx464_cur)
   rx464_restart:
 .annotate 'line', 3
+    if_null rx464_debug, debug_406
     rx464_cur."!cursor_debug"("NEXT ", "assertion:sym<method>")
+  debug_406:
   rx464_fail:
     (rx464_rep, rx464_pos, $I10, $P10) = rx464_cur."!mark_fail"(0)
     lt rx464_pos, -1, rx464_done
@@ -6113,14 +6721,16 @@
     jump $I10
   rx464_done:
     rx464_cur."!cursor_fail"()
+    if_null rx464_debug, debug_407
     rx464_cur."!cursor_debug"("FAIL  ", "assertion:sym<method>")
+  debug_407:
     .return (rx464_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<method>"  :subid("136_1280467470.54449") :method
+.sub "!PREFIX__assertion:sym<method>"  :subid("136_1282016522.91354") :method
 .annotate 'line', 3
     $P466 = self."!PREFIX__!subrule"("assertion", ".")
     new $P467, "ResizablePMCArray"
@@ -6130,9 +6740,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<name>"  :subid("137_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "assertion:sym<name>"  :subid("137_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
-    .const 'Sub' $P478 = "139_1280467470.54449" 
+    .const 'Sub' $P478 = "139_1282016522.91354" 
     capture_lex $P478
     .local string rx470_tgt
     .local int rx470_pos
@@ -6140,8 +6750,10 @@
     .local int rx470_eos
     .local int rx470_rep
     .local pmc rx470_cur
+    .local pmc rx470_debug
     (rx470_cur, rx470_pos, rx470_tgt, $I10) = self."!cursor_start"()
     rx470_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+    getattribute rx470_debug, rx470_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx470_cur
     .local pmc match
     .lex "$/", match
@@ -6153,7 +6765,9 @@
     substr rx470_tgt, rx470_tgt, rx470_off
   rx470_start:
     eq $I10, 1, rx470_restart
+    if_null rx470_debug, debug_408
     rx470_cur."!cursor_debug"("START ", "assertion:sym<name>")
+  debug_408:
     $I10 = self.'from'()
     ne $I10, -1, rxscan474_done
     goto rxscan474_scan
@@ -6186,7 +6800,7 @@
 .annotate 'line', 152
   # rx subrule "before" subtype=zerowidth negate=
     rx470_cur."!cursor_pos"(rx470_pos)
-    .const 'Sub' $P478 = "139_1280467470.54449" 
+    .const 'Sub' $P478 = "139_1282016522.91354" 
     capture_lex $P478
     $P10 = rx470_cur."before"($P478)
     unless $P10, rx470_fail
@@ -6199,8 +6813,8 @@
     add $I11, rx470_pos, 1
     gt $I11, rx470_eos, rx470_fail
     sub $I11, rx470_pos, rx470_off
-    substr $S10, rx470_tgt, $I11, 1
-    ne $S10, "=", rx470_fail
+    ord $I11, rx470_tgt, $I11
+    ne $I11, 61, rx470_fail
     add rx470_pos, 1
   # rx subrule "assertion" subtype=capture negate=
     rx470_cur."!cursor_pos"(rx470_pos)
@@ -6218,8 +6832,8 @@
     add $I11, rx470_pos, 1
     gt $I11, rx470_eos, rx470_fail
     sub $I11, rx470_pos, rx470_off
-    substr $S10, rx470_tgt, $I11, 1
-    ne $S10, ":", rx470_fail
+    ord $I11, rx470_tgt, $I11
+    ne $I11, 58, rx470_fail
     add rx470_pos, 1
   # rx subrule "arglist" subtype=capture negate=
     rx470_cur."!cursor_pos"(rx470_pos)
@@ -6237,8 +6851,8 @@
     add $I11, rx470_pos, 1
     gt $I11, rx470_eos, rx470_fail
     sub $I11, rx470_pos, rx470_off
-    substr $S10, rx470_tgt, $I11, 1
-    ne $S10, "(", rx470_fail
+    ord $I11, rx470_tgt, $I11
+    ne $I11, 40, rx470_fail
     add rx470_pos, 1
   # rx subrule "arglist" subtype=capture negate=
     rx470_cur."!cursor_pos"(rx470_pos)
@@ -6251,8 +6865,8 @@
     add $I11, rx470_pos, 1
     gt $I11, rx470_eos, rx470_fail
     sub $I11, rx470_pos, rx470_off
-    substr $S10, rx470_tgt, $I11, 1
-    ne $S10, ")", rx470_fail
+    ord $I11, rx470_tgt, $I11
+    ne $I11, 41, rx470_fail
     add rx470_pos, 1
     goto alt476_end
   alt476_4:
@@ -6277,11 +6891,15 @@
 .annotate 'line', 149
   # rx pass
     rx470_cur."!cursor_pass"(rx470_pos, "assertion:sym<name>")
+    if_null rx470_debug, debug_413
     rx470_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx470_pos)
+  debug_413:
     .return (rx470_cur)
   rx470_restart:
 .annotate 'line', 3
+    if_null rx470_debug, debug_414
     rx470_cur."!cursor_debug"("NEXT ", "assertion:sym<name>")
+  debug_414:
   rx470_fail:
     (rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0)
     lt rx470_pos, -1, rx470_done
@@ -6289,14 +6907,16 @@
     jump $I10
   rx470_done:
     rx470_cur."!cursor_fail"()
+    if_null rx470_debug, debug_415
     rx470_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
+  debug_415:
     .return (rx470_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("138_1280467470.54449") :method
+.sub "!PREFIX__assertion:sym<name>"  :subid("138_1282016522.91354") :method
 .annotate 'line', 3
     $P472 = self."!PREFIX__!subrule"("identifier", "")
     new $P473, "ResizablePMCArray"
@@ -6306,7 +6926,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block477"  :anon :subid("139_1280467470.54449") :method :outer("137_1280467470.54449")
+.sub "_block477"  :anon :subid("139_1282016522.91354") :method :outer("137_1282016522.91354")
 .annotate 'line', 152
     .local string rx479_tgt
     .local int rx479_pos
@@ -6314,7 +6934,9 @@
     .local int rx479_eos
     .local int rx479_rep
     .local pmc rx479_cur
+    .local pmc rx479_debug
     (rx479_cur, rx479_pos, rx479_tgt, $I10) = self."!cursor_start"()
+    getattribute rx479_debug, rx479_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx479_cur
     .local pmc match
     .lex "$/", match
@@ -6326,7 +6948,9 @@
     substr rx479_tgt, rx479_tgt, rx479_off
   rx479_start:
     eq $I10, 1, rx479_restart
+    if_null rx479_debug, debug_409
     rx479_cur."!cursor_debug"("START ", "")
+  debug_409:
     $I10 = self.'from'()
     ne $I10, -1, rxscan480_done
     goto rxscan480_scan
@@ -6343,15 +6967,19 @@
     add $I11, rx479_pos, 1
     gt $I11, rx479_eos, rx479_fail
     sub $I11, rx479_pos, rx479_off
-    substr $S10, rx479_tgt, $I11, 1
-    ne $S10, ">", rx479_fail
+    ord $I11, rx479_tgt, $I11
+    ne $I11, 62, rx479_fail
     add rx479_pos, 1
   # rx pass
     rx479_cur."!cursor_pass"(rx479_pos, "")
+    if_null rx479_debug, debug_410
     rx479_cur."!cursor_debug"("PASS  ", "", " at pos=", rx479_pos)
+  debug_410:
     .return (rx479_cur)
   rx479_restart:
+    if_null rx479_debug, debug_411
     rx479_cur."!cursor_debug"("NEXT ", "")
+  debug_411:
   rx479_fail:
     (rx479_rep, rx479_pos, $I10, $P10) = rx479_cur."!mark_fail"(0)
     lt rx479_pos, -1, rx479_done
@@ -6359,16 +6987,18 @@
     jump $I10
   rx479_done:
     rx479_cur."!cursor_fail"()
+    if_null rx479_debug, debug_412
     rx479_cur."!cursor_debug"("FAIL  ", "")
+  debug_412:
     .return (rx479_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<[>"  :subid("140_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "assertion:sym<[>"  :subid("140_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
-    .const 'Sub' $P487 = "142_1280467470.54449" 
+    .const 'Sub' $P487 = "142_1282016522.91354" 
     capture_lex $P487
     .local string rx482_tgt
     .local int rx482_pos
@@ -6376,8 +7006,10 @@
     .local int rx482_eos
     .local int rx482_rep
     .local pmc rx482_cur
+    .local pmc rx482_debug
     (rx482_cur, rx482_pos, rx482_tgt, $I10) = self."!cursor_start"()
     rx482_cur."!cursor_caparray"("cclass_elem")
+    getattribute rx482_debug, rx482_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx482_cur
     .local pmc match
     .lex "$/", match
@@ -6389,7 +7021,9 @@
     substr rx482_tgt, rx482_tgt, rx482_off
   rx482_start:
     eq $I10, 1, rx482_restart
+    if_null rx482_debug, debug_416
     rx482_cur."!cursor_debug"("START ", "assertion:sym<[>")
+  debug_416:
     $I10 = self.'from'()
     ne $I10, -1, rxscan485_done
     goto rxscan485_scan
@@ -6405,7 +7039,7 @@
 .annotate 'line', 160
   # rx subrule "before" subtype=zerowidth negate=
     rx482_cur."!cursor_pos"(rx482_pos)
-    .const 'Sub' $P487 = "142_1280467470.54449" 
+    .const 'Sub' $P487 = "142_1282016522.91354" 
     capture_lex $P487
     $P10 = rx482_cur."before"($P487)
     unless $P10, rx482_fail
@@ -6434,11 +7068,15 @@
   rxquantr491_done:
   # rx pass
     rx482_cur."!cursor_pass"(rx482_pos, "assertion:sym<[>")
+    if_null rx482_debug, debug_421
     rx482_cur."!cursor_debug"("PASS  ", "assertion:sym<[>", " at pos=", rx482_pos)
+  debug_421:
     .return (rx482_cur)
   rx482_restart:
 .annotate 'line', 3
+    if_null rx482_debug, debug_422
     rx482_cur."!cursor_debug"("NEXT ", "assertion:sym<[>")
+  debug_422:
   rx482_fail:
     (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0)
     lt rx482_pos, -1, rx482_done
@@ -6446,14 +7084,16 @@
     jump $I10
   rx482_done:
     rx482_cur."!cursor_fail"()
+    if_null rx482_debug, debug_423
     rx482_cur."!cursor_debug"("FAIL  ", "assertion:sym<[>")
+  debug_423:
     .return (rx482_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<[>"  :subid("141_1280467470.54449") :method
+.sub "!PREFIX__assertion:sym<[>"  :subid("141_1282016522.91354") :method
 .annotate 'line', 3
     new $P484, "ResizablePMCArray"
     push $P484, ""
@@ -6462,7 +7102,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block486"  :anon :subid("142_1280467470.54449") :method :outer("140_1280467470.54449")
+.sub "_block486"  :anon :subid("142_1282016522.91354") :method :outer("140_1282016522.91354")
 .annotate 'line', 160
     .local string rx488_tgt
     .local int rx488_pos
@@ -6470,7 +7110,9 @@
     .local int rx488_eos
     .local int rx488_rep
     .local pmc rx488_cur
+    .local pmc rx488_debug
     (rx488_cur, rx488_pos, rx488_tgt, $I10) = self."!cursor_start"()
+    getattribute rx488_debug, rx488_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx488_cur
     .local pmc match
     .lex "$/", match
@@ -6482,7 +7124,9 @@
     substr rx488_tgt, rx488_tgt, rx488_off
   rx488_start:
     eq $I10, 1, rx488_restart
+    if_null rx488_debug, debug_417
     rx488_cur."!cursor_debug"("START ", "")
+  debug_417:
     $I10 = self.'from'()
     ne $I10, -1, rxscan489_done
     goto rxscan489_scan
@@ -6502,8 +7146,8 @@
     add $I11, rx488_pos, 1
     gt $I11, rx488_eos, rx488_fail
     sub $I11, rx488_pos, rx488_off
-    substr $S10, rx488_tgt, $I11, 1
-    ne $S10, "[", rx488_fail
+    ord $I11, rx488_tgt, $I11
+    ne $I11, 91, rx488_fail
     add rx488_pos, 1
     goto alt490_end
   alt490_1:
@@ -6513,8 +7157,8 @@
     add $I11, rx488_pos, 1
     gt $I11, rx488_eos, rx488_fail
     sub $I11, rx488_pos, rx488_off
-    substr $S10, rx488_tgt, $I11, 1
-    ne $S10, "+", rx488_fail
+    ord $I11, rx488_tgt, $I11
+    ne $I11, 43, rx488_fail
     add rx488_pos, 1
     goto alt490_end
   alt490_2:
@@ -6522,16 +7166,20 @@
     add $I11, rx488_pos, 1
     gt $I11, rx488_eos, rx488_fail
     sub $I11, rx488_pos, rx488_off
-    substr $S10, rx488_tgt, $I11, 1
-    ne $S10, "-", rx488_fail
+    ord $I11, rx488_tgt, $I11
+    ne $I11, 45, rx488_fail
     add rx488_pos, 1
   alt490_end:
   # rx pass
     rx488_cur."!cursor_pass"(rx488_pos, "")
+    if_null rx488_debug, debug_418
     rx488_cur."!cursor_debug"("PASS  ", "", " at pos=", rx488_pos)
+  debug_418:
     .return (rx488_cur)
   rx488_restart:
+    if_null rx488_debug, debug_419
     rx488_cur."!cursor_debug"("NEXT ", "")
+  debug_419:
   rx488_fail:
     (rx488_rep, rx488_pos, $I10, $P10) = rx488_cur."!mark_fail"(0)
     lt rx488_pos, -1, rx488_done
@@ -6539,16 +7187,18 @@
     jump $I10
   rx488_done:
     rx488_cur."!cursor_fail"()
+    if_null rx488_debug, debug_420
     rx488_cur."!cursor_debug"("FAIL  ", "")
+  debug_420:
     .return (rx488_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "cclass_elem"  :subid("143_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "cclass_elem"  :subid("143_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
-    .const 'Sub' $P505 = "145_1280467470.54449" 
+    .const 'Sub' $P505 = "145_1282016522.91354" 
     capture_lex $P505
     .local string rx494_tgt
     .local int rx494_pos
@@ -6556,8 +7206,10 @@
     .local int rx494_eos
     .local int rx494_rep
     .local pmc rx494_cur
+    .local pmc rx494_debug
     (rx494_cur, rx494_pos, rx494_tgt, $I10) = self."!cursor_start"()
     rx494_cur."!cursor_caparray"("charspec")
+    getattribute rx494_debug, rx494_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx494_cur
     .local pmc match
     .lex "$/", match
@@ -6569,7 +7221,9 @@
     substr rx494_tgt, rx494_tgt, rx494_off
   rx494_start:
     eq $I10, 1, rx494_restart
+    if_null rx494_debug, debug_424
     rx494_cur."!cursor_debug"("START ", "cclass_elem")
+  debug_424:
     $I10 = self.'from'()
     ne $I10, -1, rxscan497_done
     goto rxscan497_scan
@@ -6593,8 +7247,8 @@
     add $I11, rx494_pos, 1
     gt $I11, rx494_eos, rx494_fail
     sub $I11, rx494_pos, rx494_off
-    substr $S10, rx494_tgt, $I11, 1
-    ne $S10, "+", rx494_fail
+    ord $I11, rx494_tgt, $I11
+    ne $I11, 43, rx494_fail
     add rx494_pos, 1
     goto alt498_end
   alt498_1:
@@ -6604,8 +7258,8 @@
     add $I11, rx494_pos, 1
     gt $I11, rx494_eos, rx494_fail
     sub $I11, rx494_pos, rx494_off
-    substr $S10, rx494_tgt, $I11, 1
-    ne $S10, "-", rx494_fail
+    ord $I11, rx494_tgt, $I11
+    ne $I11, 45, rx494_fail
     add rx494_pos, 1
     goto alt498_end
   alt498_2:
@@ -6650,8 +7304,8 @@
     add $I11, rx494_pos, 1
     gt $I11, rx494_eos, rx494_fail
     sub $I11, rx494_pos, rx494_off
-    substr $S10, rx494_tgt, $I11, 1
-    ne $S10, "[", rx494_fail
+    ord $I11, rx494_tgt, $I11
+    ne $I11, 91, rx494_fail
     add rx494_pos, 1
 .annotate 'line', 169
   # rx rxquantr503 ** 0..*
@@ -6661,7 +7315,7 @@
 .annotate 'line', 166
   # rx subrule $P505 subtype=capture negate=
     rx494_cur."!cursor_pos"(rx494_pos)
-    .const 'Sub' $P505 = "145_1280467470.54449" 
+    .const 'Sub' $P505 = "145_1282016522.91354" 
     capture_lex $P505
     $P10 = rx494_cur.$P505()
     unless $P10, rx494_fail
@@ -6690,8 +7344,8 @@
     add $I11, rx494_pos, 1
     gt $I11, rx494_eos, rx494_fail
     sub $I11, rx494_pos, rx494_off
-    substr $S10, rx494_tgt, $I11, 1
-    ne $S10, "]", rx494_fail
+    ord $I11, rx494_tgt, $I11
+    ne $I11, 93, rx494_fail
     add rx494_pos, 1
 .annotate 'line', 166
     goto alt502_end
@@ -6741,11 +7395,15 @@
 .annotate 'line', 162
   # rx pass
     rx494_cur."!cursor_pass"(rx494_pos, "cclass_elem")
+    if_null rx494_debug, debug_441
     rx494_cur."!cursor_debug"("PASS  ", "cclass_elem", " at pos=", rx494_pos)
+  debug_441:
     .return (rx494_cur)
   rx494_restart:
 .annotate 'line', 3
+    if_null rx494_debug, debug_442
     rx494_cur."!cursor_debug"("NEXT ", "cclass_elem")
+  debug_442:
   rx494_fail:
     (rx494_rep, rx494_pos, $I10, $P10) = rx494_cur."!mark_fail"(0)
     lt rx494_pos, -1, rx494_done
@@ -6753,14 +7411,16 @@
     jump $I10
   rx494_done:
     rx494_cur."!cursor_fail"()
+    if_null rx494_debug, debug_443
     rx494_cur."!cursor_debug"("FAIL  ", "cclass_elem")
+  debug_443:
     .return (rx494_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__cclass_elem"  :subid("144_1280467470.54449") :method
+.sub "!PREFIX__cclass_elem"  :subid("144_1282016522.91354") :method
 .annotate 'line', 3
     new $P496, "ResizablePMCArray"
     push $P496, ""
@@ -6771,13 +7431,13 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block504"  :anon :subid("145_1280467470.54449") :method :outer("143_1280467470.54449")
+.sub "_block504"  :anon :subid("145_1282016522.91354") :method :outer("143_1282016522.91354")
 .annotate 'line', 166
-    .const 'Sub' $P520 = "148_1280467470.54449" 
+    .const 'Sub' $P520 = "148_1282016522.91354" 
     capture_lex $P520
-    .const 'Sub' $P515 = "147_1280467470.54449" 
+    .const 'Sub' $P515 = "147_1282016522.91354" 
     capture_lex $P515
-    .const 'Sub' $P511 = "146_1280467470.54449" 
+    .const 'Sub' $P511 = "146_1282016522.91354" 
     capture_lex $P511
     .local string rx506_tgt
     .local int rx506_pos
@@ -6785,8 +7445,10 @@
     .local int rx506_eos
     .local int rx506_rep
     .local pmc rx506_cur
+    .local pmc rx506_debug
     (rx506_cur, rx506_pos, rx506_tgt, $I10) = self."!cursor_start"()
     rx506_cur."!cursor_caparray"("1")
+    getattribute rx506_debug, rx506_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx506_cur
     .local pmc match
     .lex "$/", match
@@ -6798,7 +7460,9 @@
     substr rx506_tgt, rx506_tgt, rx506_off
   rx506_start:
     eq $I10, 1, rx506_restart
+    if_null rx506_debug, debug_425
     rx506_cur."!cursor_debug"("START ", "")
+  debug_425:
     $I10 = self.'from'()
     ne $I10, -1, rxscan507_done
     goto rxscan507_scan
@@ -6823,8 +7487,8 @@
     add $I11, rx506_pos, 1
     gt $I11, rx506_eos, rx506_fail
     sub $I11, rx506_pos, rx506_off
-    substr $S10, rx506_tgt, $I11, 1
-    ne $S10, "-", rx506_fail
+    ord $I11, rx506_tgt, $I11
+    ne $I11, 45, rx506_fail
     add rx506_pos, 1
   # rx subrule "obs" subtype=method negate=
     rx506_cur."!cursor_pos"(rx506_pos)
@@ -6845,12 +7509,12 @@
     add $I11, rx506_pos, 1
     gt $I11, rx506_eos, rx506_fail
     sub $I11, rx506_pos, rx506_off
-    substr $S10, rx506_tgt, $I11, 1
-    ne $S10, "\\", rx506_fail
+    ord $I11, rx506_tgt, $I11
+    ne $I11, 92, rx506_fail
     add rx506_pos, 1
   # rx subrule $P511 subtype=capture negate=
     rx506_cur."!cursor_pos"(rx506_pos)
-    .const 'Sub' $P511 = "146_1280467470.54449" 
+    .const 'Sub' $P511 = "146_1282016522.91354" 
     capture_lex $P511
     $P10 = rx506_cur.$P511()
     unless $P10, rx506_fail
@@ -6861,7 +7525,7 @@
   alt509_1:
   # rx subrule $P515 subtype=capture negate=
     rx506_cur."!cursor_pos"(rx506_pos)
-    .const 'Sub' $P515 = "147_1280467470.54449" 
+    .const 'Sub' $P515 = "147_1282016522.91354" 
     capture_lex $P515
     $P10 = rx506_cur.$P515()
     unless $P10, rx506_fail
@@ -6890,7 +7554,7 @@
     add rx506_pos, rx506_off, $I11
   # rx subrule $P520 subtype=capture negate=
     rx506_cur."!cursor_pos"(rx506_pos)
-    .const 'Sub' $P520 = "148_1280467470.54449" 
+    .const 'Sub' $P520 = "148_1282016522.91354" 
     capture_lex $P520
     $P10 = rx506_cur.$P520()
     unless $P10, rx506_fail
@@ -6904,10 +7568,14 @@
 .annotate 'line', 166
   # rx pass
     rx506_cur."!cursor_pass"(rx506_pos, "")
+    if_null rx506_debug, debug_438
     rx506_cur."!cursor_debug"("PASS  ", "", " at pos=", rx506_pos)
+  debug_438:
     .return (rx506_cur)
   rx506_restart:
+    if_null rx506_debug, debug_439
     rx506_cur."!cursor_debug"("NEXT ", "")
+  debug_439:
   rx506_fail:
     (rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0)
     lt rx506_pos, -1, rx506_done
@@ -6915,14 +7583,16 @@
     jump $I10
   rx506_done:
     rx506_cur."!cursor_fail"()
+    if_null rx506_debug, debug_440
     rx506_cur."!cursor_debug"("FAIL  ", "")
+  debug_440:
     .return (rx506_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block510"  :anon :subid("146_1280467470.54449") :method :outer("145_1280467470.54449")
+.sub "_block510"  :anon :subid("146_1282016522.91354") :method :outer("145_1282016522.91354")
 .annotate 'line', 168
     .local string rx512_tgt
     .local int rx512_pos
@@ -6930,7 +7600,9 @@
     .local int rx512_eos
     .local int rx512_rep
     .local pmc rx512_cur
+    .local pmc rx512_debug
     (rx512_cur, rx512_pos, rx512_tgt, $I10) = self."!cursor_start"()
+    getattribute rx512_debug, rx512_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx512_cur
     .local pmc match
     .lex "$/", match
@@ -6942,7 +7614,9 @@
     substr rx512_tgt, rx512_tgt, rx512_off
   rx512_start:
     eq $I10, 1, rx512_restart
+    if_null rx512_debug, debug_426
     rx512_cur."!cursor_debug"("START ", "")
+  debug_426:
     $I10 = self.'from'()
     ne $I10, -1, rxscan513_done
     goto rxscan513_scan
@@ -6960,10 +7634,14 @@
     inc rx512_pos
   # rx pass
     rx512_cur."!cursor_pass"(rx512_pos, "")
+    if_null rx512_debug, debug_427
     rx512_cur."!cursor_debug"("PASS  ", "", " at pos=", rx512_pos)
+  debug_427:
     .return (rx512_cur)
   rx512_restart:
+    if_null rx512_debug, debug_428
     rx512_cur."!cursor_debug"("NEXT ", "")
+  debug_428:
   rx512_fail:
     (rx512_rep, rx512_pos, $I10, $P10) = rx512_cur."!mark_fail"(0)
     lt rx512_pos, -1, rx512_done
@@ -6971,14 +7649,16 @@
     jump $I10
   rx512_done:
     rx512_cur."!cursor_fail"()
+    if_null rx512_debug, debug_429
     rx512_cur."!cursor_debug"("FAIL  ", "")
+  debug_429:
     .return (rx512_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block514"  :anon :subid("147_1280467470.54449") :method :outer("145_1280467470.54449")
+.sub "_block514"  :anon :subid("147_1282016522.91354") :method :outer("145_1282016522.91354")
 .annotate 'line', 168
     .local string rx516_tgt
     .local int rx516_pos
@@ -6986,7 +7666,9 @@
     .local int rx516_eos
     .local int rx516_rep
     .local pmc rx516_cur
+    .local pmc rx516_debug
     (rx516_cur, rx516_pos, rx516_tgt, $I10) = self."!cursor_start"()
+    getattribute rx516_debug, rx516_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx516_cur
     .local pmc match
     .lex "$/", match
@@ -6998,7 +7680,9 @@
     substr rx516_tgt, rx516_tgt, rx516_off
   rx516_start:
     eq $I10, 1, rx516_restart
+    if_null rx516_debug, debug_430
     rx516_cur."!cursor_debug"("START ", "")
+  debug_430:
     $I10 = self.'from'()
     ne $I10, -1, rxscan517_done
     goto rxscan517_scan
@@ -7020,10 +7704,14 @@
     inc rx516_pos
   # rx pass
     rx516_cur."!cursor_pass"(rx516_pos, "")
+    if_null rx516_debug, debug_431
     rx516_cur."!cursor_debug"("PASS  ", "", " at pos=", rx516_pos)
+  debug_431:
     .return (rx516_cur)
   rx516_restart:
+    if_null rx516_debug, debug_432
     rx516_cur."!cursor_debug"("NEXT ", "")
+  debug_432:
   rx516_fail:
     (rx516_rep, rx516_pos, $I10, $P10) = rx516_cur."!mark_fail"(0)
     lt rx516_pos, -1, rx516_done
@@ -7031,14 +7719,16 @@
     jump $I10
   rx516_done:
     rx516_cur."!cursor_fail"()
+    if_null rx516_debug, debug_433
     rx516_cur."!cursor_debug"("FAIL  ", "")
+  debug_433:
     .return (rx516_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block519"  :anon :subid("148_1280467470.54449") :method :outer("145_1280467470.54449")
+.sub "_block519"  :anon :subid("148_1282016522.91354") :method :outer("145_1282016522.91354")
 .annotate 'line', 168
     .local string rx521_tgt
     .local int rx521_pos
@@ -7046,7 +7736,9 @@
     .local int rx521_eos
     .local int rx521_rep
     .local pmc rx521_cur
+    .local pmc rx521_debug
     (rx521_cur, rx521_pos, rx521_tgt, $I10) = self."!cursor_start"()
+    getattribute rx521_debug, rx521_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx521_cur
     .local pmc match
     .lex "$/", match
@@ -7058,7 +7750,9 @@
     substr rx521_tgt, rx521_tgt, rx521_off
   rx521_start:
     eq $I10, 1, rx521_restart
+    if_null rx521_debug, debug_434
     rx521_cur."!cursor_debug"("START ", "")
+  debug_434:
     $I10 = self.'from'()
     ne $I10, -1, rxscan522_done
     goto rxscan522_scan
@@ -7076,10 +7770,14 @@
     inc rx521_pos
   # rx pass
     rx521_cur."!cursor_pass"(rx521_pos, "")
+    if_null rx521_debug, debug_435
     rx521_cur."!cursor_debug"("PASS  ", "", " at pos=", rx521_pos)
+  debug_435:
     .return (rx521_cur)
   rx521_restart:
+    if_null rx521_debug, debug_436
     rx521_cur."!cursor_debug"("NEXT ", "")
+  debug_436:
   rx521_fail:
     (rx521_rep, rx521_pos, $I10, $P10) = rx521_cur."!mark_fail"(0)
     lt rx521_pos, -1, rx521_done
@@ -7087,16 +7785,18 @@
     jump $I10
   rx521_done:
     rx521_cur."!cursor_fail"()
+    if_null rx521_debug, debug_437
     rx521_cur."!cursor_debug"("FAIL  ", "")
+  debug_437:
     .return (rx521_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_internal"  :subid("149_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "mod_internal"  :subid("149_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
-    .const 'Sub' $P536 = "151_1280467470.54449" 
+    .const 'Sub' $P536 = "151_1282016522.91354" 
     capture_lex $P536
     .local string rx528_tgt
     .local int rx528_pos
@@ -7104,8 +7804,10 @@
     .local int rx528_eos
     .local int rx528_rep
     .local pmc rx528_cur
+    .local pmc rx528_debug
     (rx528_cur, rx528_pos, rx528_tgt, $I10) = self."!cursor_start"()
     rx528_cur."!cursor_caparray"("n")
+    getattribute rx528_debug, rx528_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx528_cur
     .local pmc match
     .lex "$/", match
@@ -7117,7 +7819,9 @@
     substr rx528_tgt, rx528_tgt, rx528_off
   rx528_start:
     eq $I10, 1, rx528_restart
+    if_null rx528_debug, debug_444
     rx528_cur."!cursor_debug"("START ", "mod_internal")
+  debug_444:
     $I10 = self.'from'()
     ne $I10, -1, rxscan532_done
     goto rxscan532_scan
@@ -7139,8 +7843,8 @@
     add $I11, rx528_pos, 1
     gt $I11, rx528_eos, rx528_fail
     sub $I11, rx528_pos, rx528_off
-    substr $S10, rx528_tgt, $I11, 1
-    ne $S10, ":", rx528_fail
+    ord $I11, rx528_tgt, $I11
+    ne $I11, 58, rx528_fail
     add rx528_pos, 1
   # rx rxquantr534 ** 1..1
     set_addr $I10, rxquantr534_done
@@ -7148,7 +7852,7 @@
   rxquantr534_loop:
   # rx subrule $P536 subtype=capture negate=
     rx528_cur."!cursor_pos"(rx528_pos)
-    .const 'Sub' $P536 = "151_1280467470.54449" 
+    .const 'Sub' $P536 = "151_1282016522.91354" 
     capture_lex $P536
     $P10 = rx528_cur.$P536()
     unless $P10, rx528_fail
@@ -7186,8 +7890,8 @@
     add $I11, rx528_pos, 1
     gt $I11, rx528_eos, rx528_fail
     sub $I11, rx528_pos, rx528_off
-    substr $S10, rx528_tgt, $I11, 1
-    ne $S10, ":", rx528_fail
+    ord $I11, rx528_tgt, $I11
+    ne $I11, 58, rx528_fail
     add rx528_pos, 1
   # rx subrule "mod_ident" subtype=capture negate=
     rx528_cur."!cursor_pos"(rx528_pos)
@@ -7204,8 +7908,8 @@
     add $I11, rx528_pos, 1
     gt $I11, rx528_eos, rx528_fail
     sub $I11, rx528_pos, rx528_off
-    substr $S10, rx528_tgt, $I11, 1
-    ne $S10, "(", rx528_fail
+    ord $I11, rx528_tgt, $I11
+    ne $I11, 40, rx528_fail
     add rx528_pos, 1
   # rx subcapture "n"
     set_addr $I10, rxcap_542_fail
@@ -7231,8 +7935,8 @@
     add $I11, rx528_pos, 1
     gt $I11, rx528_eos, rx528_fail
     sub $I11, rx528_pos, rx528_off
-    substr $S10, rx528_tgt, $I11, 1
-    ne $S10, ")", rx528_fail
+    ord $I11, rx528_tgt, $I11
+    ne $I11, 41, rx528_fail
     add rx528_pos, 1
     set_addr $I10, rxquantr541_done
     (rx528_rep) = rx528_cur."!mark_commit"($I10)
@@ -7241,11 +7945,15 @@
 .annotate 'line', 176
   # rx pass
     rx528_cur."!cursor_pass"(rx528_pos, "mod_internal")
+    if_null rx528_debug, debug_449
     rx528_cur."!cursor_debug"("PASS  ", "mod_internal", " at pos=", rx528_pos)
+  debug_449:
     .return (rx528_cur)
   rx528_restart:
 .annotate 'line', 3
+    if_null rx528_debug, debug_450
     rx528_cur."!cursor_debug"("NEXT ", "mod_internal")
+  debug_450:
   rx528_fail:
     (rx528_rep, rx528_pos, $I10, $P10) = rx528_cur."!mark_fail"(0)
     lt rx528_pos, -1, rx528_done
@@ -7253,14 +7961,16 @@
     jump $I10
   rx528_done:
     rx528_cur."!cursor_fail"()
+    if_null rx528_debug, debug_451
     rx528_cur."!cursor_debug"("FAIL  ", "mod_internal")
+  debug_451:
     .return (rx528_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_internal"  :subid("150_1280467470.54449") :method
+.sub "!PREFIX__mod_internal"  :subid("150_1282016522.91354") :method
 .annotate 'line', 3
     $P530 = self."!PREFIX__!subrule"("mod_ident", ":")
     new $P531, "ResizablePMCArray"
@@ -7271,7 +7981,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block535"  :anon :subid("151_1280467470.54449") :method :outer("149_1280467470.54449")
+.sub "_block535"  :anon :subid("151_1282016522.91354") :method :outer("149_1282016522.91354")
 .annotate 'line', 178
     .local string rx537_tgt
     .local int rx537_pos
@@ -7279,7 +7989,9 @@
     .local int rx537_eos
     .local int rx537_rep
     .local pmc rx537_cur
+    .local pmc rx537_debug
     (rx537_cur, rx537_pos, rx537_tgt, $I10) = self."!cursor_start"()
+    getattribute rx537_debug, rx537_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx537_cur
     .local pmc match
     .lex "$/", match
@@ -7291,7 +8003,9 @@
     substr rx537_tgt, rx537_tgt, rx537_off
   rx537_start:
     eq $I10, 1, rx537_restart
+    if_null rx537_debug, debug_445
     rx537_cur."!cursor_debug"("START ", "")
+  debug_445:
     $I10 = self.'from'()
     ne $I10, -1, rxscan538_done
     goto rxscan538_scan
@@ -7311,8 +8025,8 @@
     add $I11, rx537_pos, 1
     gt $I11, rx537_eos, rx537_fail
     sub $I11, rx537_pos, rx537_off
-    substr $S10, rx537_tgt, $I11, 1
-    ne $S10, "!", rx537_fail
+    ord $I11, rx537_tgt, $I11
+    ne $I11, 33, rx537_fail
     add rx537_pos, 1
     goto alt539_end
   alt539_1:
@@ -7325,10 +8039,14 @@
   alt539_end:
   # rx pass
     rx537_cur."!cursor_pass"(rx537_pos, "")
+    if_null rx537_debug, debug_446
     rx537_cur."!cursor_debug"("PASS  ", "", " at pos=", rx537_pos)
+  debug_446:
     .return (rx537_cur)
   rx537_restart:
+    if_null rx537_debug, debug_447
     rx537_cur."!cursor_debug"("NEXT ", "")
+  debug_447:
   rx537_fail:
     (rx537_rep, rx537_pos, $I10, $P10) = rx537_cur."!mark_fail"(0)
     lt rx537_pos, -1, rx537_done
@@ -7336,14 +8054,16 @@
     jump $I10
   rx537_done:
     rx537_cur."!cursor_fail"()
+    if_null rx537_debug, debug_448
     rx537_cur."!cursor_debug"("FAIL  ", "")
+  debug_448:
     .return (rx537_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident"  :subid("152_1280467470.54449") :method
+.sub "mod_ident"  :subid("152_1282016522.91354") :method
 .annotate 'line', 183
     $P544 = self."!protoregex"("mod_ident")
     .return ($P544)
@@ -7351,7 +8071,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident"  :subid("153_1280467470.54449") :method
+.sub "!PREFIX__mod_ident"  :subid("153_1282016522.91354") :method
 .annotate 'line', 183
     $P546 = self."!PREFIX__!protoregex"("mod_ident")
     .return ($P546)
@@ -7359,7 +8079,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ignorecase>"  :subid("154_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "mod_ident:sym<ignorecase>"  :subid("154_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx548_tgt
     .local int rx548_pos
@@ -7367,7 +8087,9 @@
     .local int rx548_eos
     .local int rx548_rep
     .local pmc rx548_cur
+    .local pmc rx548_debug
     (rx548_cur, rx548_pos, rx548_tgt, $I10) = self."!cursor_start"()
+    getattribute rx548_debug, rx548_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx548_cur
     .local pmc match
     .lex "$/", match
@@ -7379,7 +8101,9 @@
     substr rx548_tgt, rx548_tgt, rx548_off
   rx548_start:
     eq $I10, 1, rx548_restart
+    if_null rx548_debug, debug_452
     rx548_cur."!cursor_debug"("START ", "mod_ident:sym<ignorecase>")
+  debug_452:
     $I10 = self.'from'()
     ne $I10, -1, rxscan551_done
     goto rxscan551_scan
@@ -7400,8 +8124,8 @@
     add $I11, rx548_pos, 1
     gt $I11, rx548_eos, rx548_fail
     sub $I11, rx548_pos, rx548_off
-    substr $S10, rx548_tgt, $I11, 1
-    ne $S10, "i", rx548_fail
+    ord $I11, rx548_tgt, $I11
+    ne $I11, 105, rx548_fail
     add rx548_pos, 1
     set_addr $I10, rxcap_552_fail
     ($I12, $I11) = rx548_cur."!mark_peek"($I10)
@@ -7430,11 +8154,15 @@
   rxquantr553_done:
   # rx pass
     rx548_cur."!cursor_pass"(rx548_pos, "mod_ident:sym<ignorecase>")
+    if_null rx548_debug, debug_453
     rx548_cur."!cursor_debug"("PASS  ", "mod_ident:sym<ignorecase>", " at pos=", rx548_pos)
+  debug_453:
     .return (rx548_cur)
   rx548_restart:
 .annotate 'line', 3
+    if_null rx548_debug, debug_454
     rx548_cur."!cursor_debug"("NEXT ", "mod_ident:sym<ignorecase>")
+  debug_454:
   rx548_fail:
     (rx548_rep, rx548_pos, $I10, $P10) = rx548_cur."!mark_fail"(0)
     lt rx548_pos, -1, rx548_done
@@ -7442,14 +8170,16 @@
     jump $I10
   rx548_done:
     rx548_cur."!cursor_fail"()
+    if_null rx548_debug, debug_455
     rx548_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<ignorecase>")
+  debug_455:
     .return (rx548_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("155_1280467470.54449") :method
+.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("155_1282016522.91354") :method
 .annotate 'line', 3
     new $P550, "ResizablePMCArray"
     push $P550, "i"
@@ -7458,7 +8188,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ratchet>"  :subid("156_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "mod_ident:sym<ratchet>"  :subid("156_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx555_tgt
     .local int rx555_pos
@@ -7466,7 +8196,9 @@
     .local int rx555_eos
     .local int rx555_rep
     .local pmc rx555_cur
+    .local pmc rx555_debug
     (rx555_cur, rx555_pos, rx555_tgt, $I10) = self."!cursor_start"()
+    getattribute rx555_debug, rx555_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx555_cur
     .local pmc match
     .lex "$/", match
@@ -7478,7 +8210,9 @@
     substr rx555_tgt, rx555_tgt, rx555_off
   rx555_start:
     eq $I10, 1, rx555_restart
+    if_null rx555_debug, debug_456
     rx555_cur."!cursor_debug"("START ", "mod_ident:sym<ratchet>")
+  debug_456:
     $I10 = self.'from'()
     ne $I10, -1, rxscan558_done
     goto rxscan558_scan
@@ -7499,8 +8233,8 @@
     add $I11, rx555_pos, 1
     gt $I11, rx555_eos, rx555_fail
     sub $I11, rx555_pos, rx555_off
-    substr $S10, rx555_tgt, $I11, 1
-    ne $S10, "r", rx555_fail
+    ord $I11, rx555_tgt, $I11
+    ne $I11, 114, rx555_fail
     add rx555_pos, 1
     set_addr $I10, rxcap_559_fail
     ($I12, $I11) = rx555_cur."!mark_peek"($I10)
@@ -7529,11 +8263,15 @@
   rxquantr560_done:
   # rx pass
     rx555_cur."!cursor_pass"(rx555_pos, "mod_ident:sym<ratchet>")
+    if_null rx555_debug, debug_457
     rx555_cur."!cursor_debug"("PASS  ", "mod_ident:sym<ratchet>", " at pos=", rx555_pos)
+  debug_457:
     .return (rx555_cur)
   rx555_restart:
 .annotate 'line', 3
+    if_null rx555_debug, debug_458
     rx555_cur."!cursor_debug"("NEXT ", "mod_ident:sym<ratchet>")
+  debug_458:
   rx555_fail:
     (rx555_rep, rx555_pos, $I10, $P10) = rx555_cur."!mark_fail"(0)
     lt rx555_pos, -1, rx555_done
@@ -7541,14 +8279,16 @@
     jump $I10
   rx555_done:
     rx555_cur."!cursor_fail"()
+    if_null rx555_debug, debug_459
     rx555_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<ratchet>")
+  debug_459:
     .return (rx555_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("157_1280467470.54449") :method
+.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("157_1282016522.91354") :method
 .annotate 'line', 3
     new $P557, "ResizablePMCArray"
     push $P557, "r"
@@ -7557,7 +8297,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<sigspace>"  :subid("158_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "mod_ident:sym<sigspace>"  :subid("158_1282016522.91354") :method :outer("11_1282016522.91354")
 .annotate 'line', 3
     .local string rx562_tgt
     .local int rx562_pos
@@ -7565,7 +8305,9 @@
     .local int rx562_eos
     .local int rx562_rep
     .local pmc rx562_cur
+    .local pmc rx562_debug
     (rx562_cur, rx562_pos, rx562_tgt, $I10) = self."!cursor_start"()
+    getattribute rx562_debug, rx562_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx562_cur
     .local pmc match
     .lex "$/", match
@@ -7577,7 +8319,9 @@
     substr rx562_tgt, rx562_tgt, rx562_off
   rx562_start:
     eq $I10, 1, rx562_restart
+    if_null rx562_debug, debug_460
     rx562_cur."!cursor_debug"("START ", "mod_ident:sym<sigspace>")
+  debug_460:
     $I10 = self.'from'()
     ne $I10, -1, rxscan565_done
     goto rxscan565_scan
@@ -7598,8 +8342,8 @@
     add $I11, rx562_pos, 1
     gt $I11, rx562_eos, rx562_fail
     sub $I11, rx562_pos, rx562_off
-    substr $S10, rx562_tgt, $I11, 1
-    ne $S10, "s", rx562_fail
+    ord $I11, rx562_tgt, $I11
+    ne $I11, 115, rx562_fail
     add rx562_pos, 1
     set_addr $I10, rxcap_566_fail
     ($I12, $I11) = rx562_cur."!mark_peek"($I10)
@@ -7628,11 +8372,15 @@
   rxquantr567_done:
   # rx pass
     rx562_cur."!cursor_pass"(rx562_pos, "mod_ident:sym<sigspace>")
+    if_null rx562_debug, debug_461
     rx562_cur."!cursor_debug"("PASS  ", "mod_ident:sym<sigspace>", " at pos=", rx562_pos)
+  debug_461:
     .return (rx562_cur)
   rx562_restart:
 .annotate 'line', 3
+    if_null rx562_debug, debug_462
     rx562_cur."!cursor_debug"("NEXT ", "mod_ident:sym<sigspace>")
+  debug_462:
   rx562_fail:
     (rx562_rep, rx562_pos, $I10, $P10) = rx562_cur."!mark_fail"(0)
     lt rx562_pos, -1, rx562_done
@@ -7640,14 +8388,16 @@
     jump $I10
   rx562_done:
     rx562_cur."!cursor_fail"()
+    if_null rx562_debug, debug_463
     rx562_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<sigspace>")
+  debug_463:
     .return (rx562_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("159_1280467470.54449") :method
+.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("159_1282016522.91354") :method
 .annotate 'line', 3
     new $P564, "ResizablePMCArray"
     push $P564, "s"
@@ -7656,18 +8406,18 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block568" :load :anon :subid("160_1280467470.54449")
+.sub "_block568" :load :anon :subid("160_1282016522.91354")
 .annotate 'line', 3
-    .const 'Sub' $P570 = "11_1280467470.54449" 
+    .const 'Sub' $P570 = "11_1282016522.91354" 
     $P571 = $P570()
     .return ($P571)
 .end
 
 
 .namespace []
-.sub "_block573" :load :anon :subid("161_1280467470.54449")
+.sub "_block573" :load :anon :subid("161_1282016522.91354")
 .annotate 'line', 1
-    .const 'Sub' $P575 = "10_1280467470.54449" 
+    .const 'Sub' $P575 = "10_1282016522.91354" 
     $P576 = $P575()
     .return ($P576)
 .end
@@ -7675,7 +8425,7 @@
 ### .include 'gen/p6regex-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467473.99327")
+.sub "_block11"  :anon :subid("10_1282016526.02169")
 .annotate 'line', 0
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     capture_lex $P14
@@ -7692,15 +8442,15 @@
     $P1634 = $P14()
 .annotate 'line', 1
     .return ($P1634)
-    .const 'Sub' $P1636 = "92_1280467473.99327" 
+    .const 'Sub' $P1636 = "92_1282016526.02169" 
     .return ($P1636)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post93") :outer("10_1280467473.99327")
+.sub "" :load :init :subid("post93") :outer("10_1282016526.02169")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467473.99327" 
+    .const 'Sub' $P12 = "10_1282016526.02169" 
     .local pmc block
     set block, $P12
     $P1639 = get_root_global ["parrot"], "P6metaclass"
@@ -7709,117 +8459,117 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block13"  :subid("11_1280467473.99327") :outer("10_1280467473.99327")
+.sub "_block13"  :subid("11_1282016526.02169") :outer("10_1282016526.02169")
 .annotate 'line', 4
-    .const 'Sub' $P1611 = "90_1280467473.99327" 
+    .const 'Sub' $P1611 = "90_1282016526.02169" 
     capture_lex $P1611
-    .const 'Sub' $P1591 = "89_1280467473.99327" 
+    .const 'Sub' $P1591 = "89_1282016526.02169" 
     capture_lex $P1591
-    .const 'Sub' $P1559 = "88_1280467473.99327" 
+    .const 'Sub' $P1559 = "88_1282016526.02169" 
     capture_lex $P1559
-    .const 'Sub' $P1490 = "84_1280467473.99327" 
+    .const 'Sub' $P1490 = "84_1282016526.02169" 
     capture_lex $P1490
-    .const 'Sub' $P1422 = "82_1280467473.99327" 
+    .const 'Sub' $P1422 = "82_1282016526.02169" 
     capture_lex $P1422
-    .const 'Sub' $P1350 = "79_1280467473.99327" 
+    .const 'Sub' $P1350 = "79_1282016526.02169" 
     capture_lex $P1350
-    .const 'Sub' $P1336 = "78_1280467473.99327" 
+    .const 'Sub' $P1336 = "78_1282016526.02169" 
     capture_lex $P1336
-    .const 'Sub' $P1312 = "77_1280467473.99327" 
+    .const 'Sub' $P1312 = "77_1282016526.02169" 
     capture_lex $P1312
-    .const 'Sub' $P1294 = "76_1280467473.99327" 
+    .const 'Sub' $P1294 = "76_1282016526.02169" 
     capture_lex $P1294
-    .const 'Sub' $P1280 = "75_1280467473.99327" 
+    .const 'Sub' $P1280 = "75_1282016526.02169" 
     capture_lex $P1280
-    .const 'Sub' $P1267 = "74_1280467473.99327" 
+    .const 'Sub' $P1267 = "74_1282016526.02169" 
     capture_lex $P1267
-    .const 'Sub' $P1236 = "73_1280467473.99327" 
+    .const 'Sub' $P1236 = "73_1282016526.02169" 
     capture_lex $P1236
-    .const 'Sub' $P1205 = "72_1280467473.99327" 
+    .const 'Sub' $P1205 = "72_1282016526.02169" 
     capture_lex $P1205
-    .const 'Sub' $P1189 = "71_1280467473.99327" 
+    .const 'Sub' $P1189 = "71_1282016526.02169" 
     capture_lex $P1189
-    .const 'Sub' $P1173 = "70_1280467473.99327" 
+    .const 'Sub' $P1173 = "70_1282016526.02169" 
     capture_lex $P1173
-    .const 'Sub' $P1157 = "69_1280467473.99327" 
+    .const 'Sub' $P1157 = "69_1282016526.02169" 
     capture_lex $P1157
-    .const 'Sub' $P1141 = "68_1280467473.99327" 
+    .const 'Sub' $P1141 = "68_1282016526.02169" 
     capture_lex $P1141
-    .const 'Sub' $P1125 = "67_1280467473.99327" 
+    .const 'Sub' $P1125 = "67_1282016526.02169" 
     capture_lex $P1125
-    .const 'Sub' $P1109 = "66_1280467473.99327" 
+    .const 'Sub' $P1109 = "66_1282016526.02169" 
     capture_lex $P1109
-    .const 'Sub' $P1093 = "65_1280467473.99327" 
+    .const 'Sub' $P1093 = "65_1282016526.02169" 
     capture_lex $P1093
-    .const 'Sub' $P1069 = "64_1280467473.99327" 
+    .const 'Sub' $P1069 = "64_1282016526.02169" 
     capture_lex $P1069
-    .const 'Sub' $P1054 = "63_1280467473.99327" 
+    .const 'Sub' $P1054 = "63_1282016526.02169" 
     capture_lex $P1054
-    .const 'Sub' $P996 = "62_1280467473.99327" 
+    .const 'Sub' $P996 = "62_1282016526.02169" 
     capture_lex $P996
-    .const 'Sub' $P975 = "61_1280467473.99327" 
+    .const 'Sub' $P975 = "61_1282016526.02169" 
     capture_lex $P975
-    .const 'Sub' $P953 = "60_1280467473.99327" 
+    .const 'Sub' $P953 = "60_1282016526.02169" 
     capture_lex $P953
-    .const 'Sub' $P943 = "59_1280467473.99327" 
+    .const 'Sub' $P943 = "59_1282016526.02169" 
     capture_lex $P943
-    .const 'Sub' $P933 = "58_1280467473.99327" 
+    .const 'Sub' $P933 = "58_1282016526.02169" 
     capture_lex $P933
-    .const 'Sub' $P923 = "57_1280467473.99327" 
+    .const 'Sub' $P923 = "57_1282016526.02169" 
     capture_lex $P923
-    .const 'Sub' $P911 = "56_1280467473.99327" 
+    .const 'Sub' $P911 = "56_1282016526.02169" 
     capture_lex $P911
-    .const 'Sub' $P899 = "55_1280467473.99327" 
+    .const 'Sub' $P899 = "55_1282016526.02169" 
     capture_lex $P899
-    .const 'Sub' $P887 = "54_1280467473.99327" 
+    .const 'Sub' $P887 = "54_1282016526.02169" 
     capture_lex $P887
-    .const 'Sub' $P875 = "53_1280467473.99327" 
+    .const 'Sub' $P875 = "53_1282016526.02169" 
     capture_lex $P875
-    .const 'Sub' $P863 = "52_1280467473.99327" 
+    .const 'Sub' $P863 = "52_1282016526.02169" 
     capture_lex $P863
-    .const 'Sub' $P851 = "51_1280467473.99327" 
+    .const 'Sub' $P851 = "51_1282016526.02169" 
     capture_lex $P851
-    .const 'Sub' $P839 = "50_1280467473.99327" 
+    .const 'Sub' $P839 = "50_1282016526.02169" 
     capture_lex $P839
-    .const 'Sub' $P827 = "49_1280467473.99327" 
+    .const 'Sub' $P827 = "49_1282016526.02169" 
     capture_lex $P827
-    .const 'Sub' $P799 = "48_1280467473.99327" 
+    .const 'Sub' $P799 = "48_1282016526.02169" 
     capture_lex $P799
-    .const 'Sub' $P771 = "47_1280467473.99327" 
+    .const 'Sub' $P771 = "47_1282016526.02169" 
     capture_lex $P771
-    .const 'Sub' $P753 = "46_1280467473.99327" 
+    .const 'Sub' $P753 = "46_1282016526.02169" 
     capture_lex $P753
-    .const 'Sub' $P743 = "45_1280467473.99327" 
+    .const 'Sub' $P743 = "45_1282016526.02169" 
     capture_lex $P743
-    .const 'Sub' $P725 = "44_1280467473.99327" 
+    .const 'Sub' $P725 = "44_1282016526.02169" 
     capture_lex $P725
-    .const 'Sub' $P652 = "42_1280467473.99327" 
+    .const 'Sub' $P652 = "42_1282016526.02169" 
     capture_lex $P652
-    .const 'Sub' $P635 = "41_1280467473.99327" 
+    .const 'Sub' $P635 = "41_1282016526.02169" 
     capture_lex $P635
-    .const 'Sub' $P620 = "40_1280467473.99327" 
+    .const 'Sub' $P620 = "40_1282016526.02169" 
     capture_lex $P620
-    .const 'Sub' $P605 = "39_1280467473.99327" 
+    .const 'Sub' $P605 = "39_1282016526.02169" 
     capture_lex $P605
-    .const 'Sub' $P579 = "38_1280467473.99327" 
+    .const 'Sub' $P579 = "38_1282016526.02169" 
     capture_lex $P579
-    .const 'Sub' $P528 = "36_1280467473.99327" 
+    .const 'Sub' $P528 = "36_1282016526.02169" 
     capture_lex $P528
-    .const 'Sub' $P460 = "34_1280467473.99327" 
+    .const 'Sub' $P460 = "34_1282016526.02169" 
     capture_lex $P460
-    .const 'Sub' $P404 = "31_1280467473.99327" 
+    .const 'Sub' $P404 = "31_1282016526.02169" 
     capture_lex $P404
-    .const 'Sub' $P389 = "30_1280467473.99327" 
+    .const 'Sub' $P389 = "30_1282016526.02169" 
     capture_lex $P389
-    .const 'Sub' $P363 = "28_1280467473.99327" 
+    .const 'Sub' $P363 = "28_1282016526.02169" 
     capture_lex $P363
-    .const 'Sub' $P346 = "27_1280467473.99327" 
+    .const 'Sub' $P346 = "27_1282016526.02169" 
     capture_lex $P346
-    .const 'Sub' $P312 = "26_1280467473.99327" 
+    .const 'Sub' $P312 = "26_1282016526.02169" 
     capture_lex $P312
-    .const 'Sub' $P57 = "13_1280467473.99327" 
+    .const 'Sub' $P57 = "13_1282016526.02169" 
     capture_lex $P57
-    .const 'Sub' $P16 = "12_1280467473.99327" 
+    .const 'Sub' $P16 = "12_1282016526.02169" 
     capture_lex $P16
     get_global $P15, "@MODIFIERS"
     unless_null $P15, vivify_95
@@ -7827,15 +8577,15 @@
     set_global "@MODIFIERS", $P15
   vivify_95:
 .annotate 'line', 492
-    .const 'Sub' $P16 = "12_1280467473.99327" 
+    .const 'Sub' $P16 = "12_1282016526.02169" 
     newclosure $P56, $P16
     .lex "buildsub", $P56
 .annotate 'line', 510
-    .const 'Sub' $P57 = "13_1280467473.99327" 
+    .const 'Sub' $P57 = "13_1282016526.02169" 
     newclosure $P311, $P57
     .lex "capnames", $P311
 .annotate 'line', 576
-    .const 'Sub' $P312 = "26_1280467473.99327" 
+    .const 'Sub' $P312 = "26_1282016526.02169" 
     newclosure $P344, $P312
     .lex "backmod", $P344
 .annotate 'line', 4
@@ -7851,17 +8601,17 @@
     find_lex $P1589, "capnames"
     find_lex $P1590, "backmod"
 .annotate 'line', 589
-    .const 'Sub' $P1611 = "90_1280467473.99327" 
+    .const 'Sub' $P1611 = "90_1282016526.02169" 
     newclosure $P1628, $P1611
 .annotate 'line', 4
     .return ($P1628)
-    .const 'Sub' $P1630 = "91_1280467473.99327" 
+    .const 'Sub' $P1630 = "91_1282016526.02169" 
     .return ($P1630)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "" :load :init :subid("post94") :outer("11_1280467473.99327")
+.sub "" :load :init :subid("post94") :outer("11_1282016526.02169")
 .annotate 'line', 4
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     .local pmc block
@@ -7878,7 +8628,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "buildsub"  :subid("12_1280467473.99327") :outer("11_1280467473.99327")
+.sub "buildsub"  :subid("12_1282016526.02169") :outer("11_1282016526.02169")
     .param pmc param_19
     .param pmc param_20 :optional
     .param int has_param_20 :opt_flag
@@ -7980,19 +8730,19 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "capnames"  :subid("13_1280467473.99327") :outer("11_1280467473.99327")
+.sub "capnames"  :subid("13_1282016526.02169") :outer("11_1282016526.02169")
     .param pmc param_60
     .param pmc param_61
 .annotate 'line', 510
-    .const 'Sub' $P286 = "24_1280467473.99327" 
+    .const 'Sub' $P286 = "24_1282016526.02169" 
     capture_lex $P286
-    .const 'Sub' $P223 = "21_1280467473.99327" 
+    .const 'Sub' $P223 = "21_1282016526.02169" 
     capture_lex $P223
-    .const 'Sub' $P181 = "19_1280467473.99327" 
+    .const 'Sub' $P181 = "19_1282016526.02169" 
     capture_lex $P181
-    .const 'Sub' $P139 = "17_1280467473.99327" 
+    .const 'Sub' $P139 = "17_1282016526.02169" 
     capture_lex $P139
-    .const 'Sub' $P72 = "14_1280467473.99327" 
+    .const 'Sub' $P72 = "14_1282016526.02169" 
     capture_lex $P72
     new $P59, 'ExceptionHandler'
     set_addr $P59, control_58
@@ -8048,21 +8798,21 @@
     set $S283, $P282
     iseq $I284, $S283, "quant"
     unless $I284, if_281_end
-    .const 'Sub' $P286 = "24_1280467473.99327" 
+    .const 'Sub' $P286 = "24_1282016526.02169" 
     capture_lex $P286
     $P286()
   if_281_end:
     goto if_218_end
   if_218:
 .annotate 'line', 548
-    .const 'Sub' $P223 = "21_1280467473.99327" 
+    .const 'Sub' $P223 = "21_1282016526.02169" 
     capture_lex $P223
     $P223()
   if_218_end:
     goto if_171_end
   if_171:
 .annotate 'line', 535
-    .const 'Sub' $P181 = "19_1280467473.99327" 
+    .const 'Sub' $P181 = "19_1282016526.02169" 
     capture_lex $P181
     $P181()
   if_171_end:
@@ -8082,7 +8832,7 @@
     unless $P133, loop168_done
     shift $P137, $P133
   loop168_redo:
-    .const 'Sub' $P139 = "17_1280467473.99327" 
+    .const 'Sub' $P139 = "17_1282016526.02169" 
     capture_lex $P139
     $P139($P137)
   loop168_next:
@@ -8101,7 +8851,7 @@
     goto if_67_end
   if_67:
 .annotate 'line', 513
-    .const 'Sub' $P72 = "14_1280467473.99327" 
+    .const 'Sub' $P72 = "14_1282016526.02169" 
     capture_lex $P72
     $P72()
   if_67_end:
@@ -8126,9 +8876,9 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block285"  :anon :subid("24_1280467473.99327") :outer("13_1280467473.99327")
+.sub "_block285"  :anon :subid("24_1282016526.02169") :outer("13_1282016526.02169")
 .annotate 'line', 565
-    .const 'Sub' $P297 = "25_1280467473.99327" 
+    .const 'Sub' $P297 = "25_1282016526.02169" 
     capture_lex $P297
 .annotate 'line', 566
     $P287 = root_new ['parrot';'Hash']
@@ -8157,7 +8907,7 @@
     unless $P292, loop302_done
     shift $P295, $P292
   loop302_redo:
-    .const 'Sub' $P297 = "25_1280467473.99327" 
+    .const 'Sub' $P297 = "25_1282016526.02169" 
     capture_lex $P297
     $P297($P295)
   loop302_next:
@@ -8187,7 +8937,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block296"  :anon :subid("25_1280467473.99327") :outer("24_1280467473.99327")
+.sub "_block296"  :anon :subid("25_1282016526.02169") :outer("24_1282016526.02169")
     .param pmc param_298
 .annotate 'line', 567
     .lex "$_", param_298
@@ -8208,11 +8958,11 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block222"  :anon :subid("21_1280467473.99327") :outer("13_1280467473.99327")
+.sub "_block222"  :anon :subid("21_1282016526.02169") :outer("13_1282016526.02169")
 .annotate 'line', 548
-    .const 'Sub' $P263 = "23_1280467473.99327" 
+    .const 'Sub' $P263 = "23_1282016526.02169" 
     capture_lex $P263
-    .const 'Sub' $P235 = "22_1280467473.99327" 
+    .const 'Sub' $P235 = "22_1282016526.02169" 
     capture_lex $P235
 .annotate 'line', 549
     new $P224, "Undef"
@@ -8247,7 +8997,7 @@
     unless $P230, loop251_done
     shift $P233, $P230
   loop251_redo:
-    .const 'Sub' $P235 = "22_1280467473.99327" 
+    .const 'Sub' $P235 = "22_1282016526.02169" 
     capture_lex $P235
     $P235($P233)
   loop251_next:
@@ -8286,7 +9036,7 @@
     unless $P258, loop276_done
     shift $P261, $P258
   loop276_redo:
-    .const 'Sub' $P263 = "23_1280467473.99327" 
+    .const 'Sub' $P263 = "23_1282016526.02169" 
     capture_lex $P263
     $P263($P261)
   loop276_next:
@@ -8316,7 +9066,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block234"  :anon :subid("22_1280467473.99327") :outer("21_1280467473.99327")
+.sub "_block234"  :anon :subid("22_1282016526.02169") :outer("21_1282016526.02169")
     .param pmc param_236
 .annotate 'line', 555
     .lex "$_", param_236
@@ -8356,7 +9106,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block262"  :anon :subid("23_1280467473.99327") :outer("21_1280467473.99327")
+.sub "_block262"  :anon :subid("23_1282016526.02169") :outer("21_1282016526.02169")
     .param pmc param_264
 .annotate 'line', 560
     .lex "$_", param_264
@@ -8397,9 +9147,9 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block180"  :anon :subid("19_1280467473.99327") :outer("13_1280467473.99327")
+.sub "_block180"  :anon :subid("19_1282016526.02169") :outer("13_1282016526.02169")
 .annotate 'line', 535
-    .const 'Sub' $P199 = "20_1280467473.99327" 
+    .const 'Sub' $P199 = "20_1282016526.02169" 
     capture_lex $P199
 .annotate 'line', 536
     new $P182, "Undef"
@@ -8442,7 +9192,7 @@
     unless $P194, loop215_done
     shift $P197, $P194
   loop215_redo:
-    .const 'Sub' $P199 = "20_1280467473.99327" 
+    .const 'Sub' $P199 = "20_1282016526.02169" 
     capture_lex $P199
     $P199($P197)
   loop215_next:
@@ -8462,7 +9212,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block198"  :anon :subid("20_1280467473.99327") :outer("19_1280467473.99327")
+.sub "_block198"  :anon :subid("20_1282016526.02169") :outer("19_1282016526.02169")
     .param pmc param_200
 .annotate 'line', 543
     .lex "$_", param_200
@@ -8503,10 +9253,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block138"  :anon :subid("17_1280467473.99327") :outer("13_1280467473.99327")
+.sub "_block138"  :anon :subid("17_1282016526.02169") :outer("13_1282016526.02169")
     .param pmc param_141
 .annotate 'line', 527
-    .const 'Sub' $P150 = "18_1280467473.99327" 
+    .const 'Sub' $P150 = "18_1282016526.02169" 
     capture_lex $P150
 .annotate 'line', 528
     $P140 = root_new ['parrot';'Hash']
@@ -8529,7 +9279,7 @@
     unless $P145, loop163_done
     shift $P148, $P145
   loop163_redo:
-    .const 'Sub' $P150 = "18_1280467473.99327" 
+    .const 'Sub' $P150 = "18_1282016526.02169" 
     capture_lex $P150
     $P150($P148)
   loop163_next:
@@ -8559,7 +9309,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block149"  :anon :subid("18_1280467473.99327") :outer("17_1280467473.99327")
+.sub "_block149"  :anon :subid("18_1282016526.02169") :outer("17_1282016526.02169")
     .param pmc param_151
 .annotate 'line', 529
     .lex "$_", param_151
@@ -8600,9 +9350,9 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block71"  :anon :subid("14_1280467473.99327") :outer("13_1280467473.99327")
+.sub "_block71"  :anon :subid("14_1282016526.02169") :outer("13_1282016526.02169")
 .annotate 'line', 513
-    .const 'Sub' $P81 = "15_1280467473.99327" 
+    .const 'Sub' $P81 = "15_1282016526.02169" 
     capture_lex $P81
 .annotate 'line', 514
     new $P73, "Undef"
@@ -8623,7 +9373,7 @@
     unless $P75, loop125_done
     shift $P79, $P75
   loop125_redo:
-    .const 'Sub' $P81 = "15_1280467473.99327" 
+    .const 'Sub' $P81 = "15_1282016526.02169" 
     capture_lex $P81
     $P81($P79)
   loop125_next:
@@ -8647,10 +9397,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block80"  :anon :subid("15_1280467473.99327") :outer("14_1280467473.99327")
+.sub "_block80"  :anon :subid("15_1282016526.02169") :outer("14_1282016526.02169")
     .param pmc param_83
 .annotate 'line', 515
-    .const 'Sub' $P92 = "16_1280467473.99327" 
+    .const 'Sub' $P92 = "16_1282016526.02169" 
     capture_lex $P92
 .annotate 'line', 516
     $P82 = root_new ['parrot';'Hash']
@@ -8673,7 +9423,7 @@
     unless $P87, loop112_done
     shift $P90, $P87
   loop112_redo:
-    .const 'Sub' $P92 = "16_1280467473.99327" 
+    .const 'Sub' $P92 = "16_1282016526.02169" 
     capture_lex $P92
     $P92($P90)
   loop112_next:
@@ -8722,7 +9472,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block91"  :anon :subid("16_1280467473.99327") :outer("15_1280467473.99327")
+.sub "_block91"  :anon :subid("16_1282016526.02169") :outer("15_1282016526.02169")
     .param pmc param_93
 .annotate 'line', 517
     .lex "$_", param_93
@@ -8782,7 +9532,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backmod"  :subid("26_1280467473.99327") :outer("11_1280467473.99327")
+.sub "backmod"  :subid("26_1282016526.02169") :outer("11_1282016526.02169")
     .param pmc param_315
     .param pmc param_316
 .annotate 'line', 576
@@ -8857,7 +9607,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "arg"  :subid("27_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "arg"  :subid("27_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_349
 .annotate 'line', 14
     new $P348, 'ExceptionHandler'
@@ -8914,10 +9664,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "arglist"  :subid("28_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "arglist"  :subid("28_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_366
 .annotate 'line', 18
-    .const 'Sub' $P376 = "29_1280467473.99327" 
+    .const 'Sub' $P376 = "29_1282016526.02169" 
     capture_lex $P376
     new $P365, 'ExceptionHandler'
     set_addr $P365, control_364
@@ -8951,7 +9701,7 @@
     unless $P370, loop382_done
     shift $P374, $P370
   loop382_redo:
-    .const 'Sub' $P376 = "29_1280467473.99327" 
+    .const 'Sub' $P376 = "29_1282016526.02169" 
     capture_lex $P376
     $P376($P374)
   loop382_next:
@@ -8980,7 +9730,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block375"  :anon :subid("29_1280467473.99327") :outer("28_1280467473.99327")
+.sub "_block375"  :anon :subid("29_1282016526.02169") :outer("28_1282016526.02169")
     .param pmc param_377
 .annotate 'line', 20
     .lex "$_", param_377
@@ -8994,7 +9744,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("30_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "TOP"  :subid("30_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_392
 .annotate 'line', 24
     new $P391, 'ExceptionHandler'
@@ -9037,14 +9787,14 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "nibbler"  :subid("31_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "nibbler"  :subid("31_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_407
     .param pmc param_408 :optional
     .param int has_param_408 :opt_flag
 .annotate 'line', 30
-    .const 'Sub' $P443 = "33_1280467473.99327" 
+    .const 'Sub' $P443 = "33_1282016526.02169" 
     capture_lex $P443
-    .const 'Sub' $P416 = "32_1280467473.99327" 
+    .const 'Sub' $P416 = "32_1282016526.02169" 
     capture_lex $P416
     new $P406, 'ExceptionHandler'
     set_addr $P406, control_405
@@ -9065,7 +9815,7 @@
     set $S413, $P412
     iseq $I414, $S413, "open"
     unless $I414, if_411_end
-    .const 'Sub' $P416 = "32_1280467473.99327" 
+    .const 'Sub' $P416 = "32_1282016526.02169" 
     capture_lex $P416
     $P416()
   if_411_end:
@@ -9128,7 +9878,7 @@
     unless $P437, loop449_done
     shift $P441, $P437
   loop449_redo:
-    .const 'Sub' $P443 = "33_1280467473.99327" 
+    .const 'Sub' $P443 = "33_1282016526.02169" 
     capture_lex $P443
     $P443($P441)
   loop449_next:
@@ -9159,7 +9909,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block415"  :anon :subid("32_1280467473.99327") :outer("31_1280467473.99327")
+.sub "_block415"  :anon :subid("32_1282016526.02169") :outer("31_1282016526.02169")
 .annotate 'line', 32
     $P417 = root_new ['parrot';'Hash']
     .lex "%old", $P417
@@ -9197,7 +9947,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block442"  :anon :subid("33_1280467473.99327") :outer("31_1280467473.99327")
+.sub "_block442"  :anon :subid("33_1282016526.02169") :outer("31_1282016526.02169")
     .param pmc param_444
 .annotate 'line', 42
     .lex "$_", param_444
@@ -9213,10 +9963,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "termish"  :subid("34_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "termish"  :subid("34_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_463
 .annotate 'line', 52
-    .const 'Sub' $P476 = "35_1280467473.99327" 
+    .const 'Sub' $P476 = "35_1282016526.02169" 
     capture_lex $P476
     new $P462, 'ExceptionHandler'
     set_addr $P462, control_461
@@ -9259,7 +10009,7 @@
     unless $P470, loop521_done
     shift $P474, $P470
   loop521_redo:
-    .const 'Sub' $P476 = "35_1280467473.99327" 
+    .const 'Sub' $P476 = "35_1282016526.02169" 
     capture_lex $P476
     $P476($P474)
   loop521_next:
@@ -9288,7 +10038,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block475"  :anon :subid("35_1280467473.99327") :outer("34_1280467473.99327")
+.sub "_block475"  :anon :subid("35_1282016526.02169") :outer("34_1282016526.02169")
     .param pmc param_478
 .annotate 'line', 56
     new $P477, "Undef"
@@ -9416,10 +10166,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantified_atom"  :subid("36_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "quantified_atom"  :subid("36_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_531
 .annotate 'line', 73
-    .const 'Sub' $P540 = "37_1280467473.99327" 
+    .const 'Sub' $P540 = "37_1282016526.02169" 
     capture_lex $P540
     new $P530, 'ExceptionHandler'
     set_addr $P530, control_529
@@ -9482,7 +10232,7 @@
     goto if_536_end
   if_536:
 .annotate 'line', 75
-    .const 'Sub' $P540 = "37_1280467473.99327" 
+    .const 'Sub' $P540 = "37_1282016526.02169" 
     capture_lex $P540
     $P540()
   if_536_end:
@@ -9536,7 +10286,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block539"  :anon :subid("37_1280467473.99327") :outer("36_1280467473.99327")
+.sub "_block539"  :anon :subid("37_1282016526.02169") :outer("36_1282016526.02169")
 .annotate 'line', 77
     new $P541, "Undef"
     .lex "$qast", $P541
@@ -9577,7 +10327,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "atom"  :subid("38_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "atom"  :subid("38_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_582
 .annotate 'line', 88
     new $P581, 'ExceptionHandler'
@@ -9656,7 +10406,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantifier:sym<*>"  :subid("39_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "quantifier:sym<*>"  :subid("39_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_608
 .annotate 'line', 98
     new $P607, 'ExceptionHandler'
@@ -9697,7 +10447,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantifier:sym<+>"  :subid("40_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "quantifier:sym<+>"  :subid("40_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_623
 .annotate 'line', 103
     new $P622, 'ExceptionHandler'
@@ -9738,7 +10488,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantifier:sym<?>"  :subid("41_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "quantifier:sym<?>"  :subid("41_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_638
 .annotate 'line', 108
     new $P637, 'ExceptionHandler'
@@ -9783,10 +10533,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantifier:sym<**>"  :subid("42_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "quantifier:sym<**>"  :subid("42_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_655
 .annotate 'line', 114
-    .const 'Sub' $P670 = "43_1280467473.99327" 
+    .const 'Sub' $P670 = "43_1282016526.02169" 
     capture_lex $P670
     new $P654, 'ExceptionHandler'
     set_addr $P654, control_653
@@ -9924,7 +10674,7 @@
     goto if_666_end
   if_666:
 .annotate 'line', 117
-    .const 'Sub' $P670 = "43_1280467473.99327" 
+    .const 'Sub' $P670 = "43_1282016526.02169" 
     capture_lex $P670
     $P670()
   if_666_end:
@@ -9952,7 +10702,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block669"  :anon :subid("43_1280467473.99327") :outer("42_1280467473.99327")
+.sub "_block669"  :anon :subid("43_1282016526.02169") :outer("42_1282016526.02169")
 .annotate 'line', 118
     new $P671, "Undef"
     .lex "$ast", $P671
@@ -9995,7 +10745,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<ws>"  :subid("44_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<ws>"  :subid("44_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_728
 .annotate 'line', 143
     new $P727, 'ExceptionHandler'
@@ -10048,7 +10798,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<[ ]>"  :subid("45_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<[ ]>"  :subid("45_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_746
 .annotate 'line', 152
     new $P745, 'ExceptionHandler'
@@ -10081,7 +10831,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<( )>"  :subid("46_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<( )>"  :subid("46_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_756
 .annotate 'line', 156
     new $P755, 'ExceptionHandler'
@@ -10130,7 +10880,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<'>"  :subid("47_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<'>"  :subid("47_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_774
 .annotate 'line', 163
     new $P773, 'ExceptionHandler'
@@ -10204,7 +10954,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<\">"  :subid("48_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<\">"  :subid("48_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_802
 .annotate 'line', 171
     new $P801, 'ExceptionHandler'
@@ -10278,7 +11028,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<.>"  :subid("49_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<.>"  :subid("49_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_830
 .annotate 'line', 179
     new $P829, 'ExceptionHandler'
@@ -10310,7 +11060,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<^>"  :subid("50_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<^>"  :subid("50_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_842
 .annotate 'line', 184
     new $P841, 'ExceptionHandler'
@@ -10342,7 +11092,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<^^>"  :subid("51_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<^^>"  :subid("51_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_854
 .annotate 'line', 189
     new $P853, 'ExceptionHandler'
@@ -10374,7 +11124,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<$>"  :subid("52_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<$>"  :subid("52_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_866
 .annotate 'line', 194
     new $P865, 'ExceptionHandler'
@@ -10406,7 +11156,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<$$>"  :subid("53_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<$$>"  :subid("53_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_878
 .annotate 'line', 199
     new $P877, 'ExceptionHandler'
@@ -10438,7 +11188,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<:::>"  :subid("54_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<:::>"  :subid("54_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_890
 .annotate 'line', 204
     new $P889, 'ExceptionHandler'
@@ -10470,7 +11220,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<lwb>"  :subid("55_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<lwb>"  :subid("55_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_902
 .annotate 'line', 209
     new $P901, 'ExceptionHandler'
@@ -10502,7 +11252,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<rwb>"  :subid("56_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<rwb>"  :subid("56_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_914
 .annotate 'line', 214
     new $P913, 'ExceptionHandler'
@@ -10534,7 +11284,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<bs>"  :subid("57_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<bs>"  :subid("57_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_926
 .annotate 'line', 219
     new $P925, 'ExceptionHandler'
@@ -10567,7 +11317,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<mod>"  :subid("58_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<mod>"  :subid("58_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_936
 .annotate 'line', 223
     new $P935, 'ExceptionHandler'
@@ -10600,7 +11350,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<assert>"  :subid("59_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<assert>"  :subid("59_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_946
 .annotate 'line', 227
     new $P945, 'ExceptionHandler'
@@ -10633,7 +11383,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<~>"  :subid("60_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<~>"  :subid("60_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_956
 .annotate 'line', 231
     new $P955, 'ExceptionHandler'
@@ -10696,7 +11446,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<{*}>"  :subid("61_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<{*}>"  :subid("61_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_978
 .annotate 'line', 244
     new $P977, 'ExceptionHandler'
@@ -10758,7 +11508,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<var>"  :subid("62_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<var>"  :subid("62_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_999
 .annotate 'line', 251
     new $P998, 'ExceptionHandler'
@@ -10921,7 +11671,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<PIR>"  :subid("63_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "metachar:sym<PIR>"  :subid("63_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1057
 .annotate 'line', 271
     new $P1056, 'ExceptionHandler'
@@ -10961,7 +11711,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<w>"  :subid("64_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "backslash:sym<w>"  :subid("64_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1072
 .annotate 'line', 279
     new $P1071, 'ExceptionHandler'
@@ -11028,7 +11778,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<b>"  :subid("65_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "backslash:sym<b>"  :subid("65_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1096
 .annotate 'line', 285
     new $P1095, 'ExceptionHandler'
@@ -11072,7 +11822,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<e>"  :subid("66_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "backslash:sym<e>"  :subid("66_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1112
 .annotate 'line', 291
     new $P1111, 'ExceptionHandler'
@@ -11116,7 +11866,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<f>"  :subid("67_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "backslash:sym<f>"  :subid("67_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1128
 .annotate 'line', 297
     new $P1127, 'ExceptionHandler'
@@ -11160,7 +11910,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<h>"  :subid("68_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "backslash:sym<h>"  :subid("68_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1144
 .annotate 'line', 303
     new $P1143, 'ExceptionHandler'
@@ -11204,7 +11954,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<r>"  :subid("69_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "backslash:sym<r>"  :subid("69_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1160
 .annotate 'line', 309
     new $P1159, 'ExceptionHandler'
@@ -11248,7 +11998,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<t>"  :subid("70_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "backslash:sym<t>"  :subid("70_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1176
 .annotate 'line', 315
     new $P1175, 'ExceptionHandler'
@@ -11292,7 +12042,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<v>"  :subid("71_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "backslash:sym<v>"  :subid("71_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1192
 .annotate 'line', 321
     new $P1191, 'ExceptionHandler'
@@ -11336,7 +12086,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<o>"  :subid("72_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "backslash:sym<o>"  :subid("72_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1208
 .annotate 'line', 328
     new $P1207, 'ExceptionHandler'
@@ -11420,7 +12170,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<x>"  :subid("73_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "backslash:sym<x>"  :subid("73_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1239
 .annotate 'line', 337
     new $P1238, 'ExceptionHandler'
@@ -11504,7 +12254,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<c>"  :subid("74_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "backslash:sym<c>"  :subid("74_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1270
 .annotate 'line', 346
     new $P1269, 'ExceptionHandler'
@@ -11540,7 +12290,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<misc>"  :subid("75_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "backslash:sym<misc>"  :subid("75_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1283
 .annotate 'line', 350
     new $P1282, 'ExceptionHandler'
@@ -11574,7 +12324,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<?>"  :subid("76_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "assertion:sym<?>"  :subid("76_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1297
 .annotate 'line', 356
     new $P1296, 'ExceptionHandler'
@@ -11635,7 +12385,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<!>"  :subid("77_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "assertion:sym<!>"  :subid("77_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1315
 .annotate 'line', 366
     new $P1314, 'ExceptionHandler'
@@ -11704,7 +12454,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<method>"  :subid("78_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "assertion:sym<method>"  :subid("78_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1339
 .annotate 'line', 379
     new $P1338, 'ExceptionHandler'
@@ -11748,12 +12498,12 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<name>"  :subid("79_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "assertion:sym<name>"  :subid("79_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1353
 .annotate 'line', 386
-    .const 'Sub' $P1410 = "81_1280467473.99327" 
+    .const 'Sub' $P1410 = "81_1282016526.02169" 
     capture_lex $P1410
-    .const 'Sub' $P1376 = "80_1280467473.99327" 
+    .const 'Sub' $P1376 = "80_1282016526.02169" 
     capture_lex $P1376
     new $P1352, 'ExceptionHandler'
     set_addr $P1352, control_1351
@@ -11847,7 +12597,7 @@
     unless $P1401, loop1415_done
     shift $P1408, $P1401
   loop1415_redo:
-    .const 'Sub' $P1410 = "81_1280467473.99327" 
+    .const 'Sub' $P1410 = "81_1282016526.02169" 
     capture_lex $P1410
     $P1410($P1408)
   loop1415_next:
@@ -11887,7 +12637,7 @@
     goto if_1371_end
   if_1371:
 .annotate 'line', 393
-    .const 'Sub' $P1376 = "80_1280467473.99327" 
+    .const 'Sub' $P1376 = "80_1282016526.02169" 
     capture_lex $P1376
     $P1376()
   if_1371_end:
@@ -11929,7 +12679,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1409"  :anon :subid("81_1280467473.99327") :outer("79_1280467473.99327")
+.sub "_block1409"  :anon :subid("81_1282016526.02169") :outer("79_1282016526.02169")
     .param pmc param_1411
 .annotate 'line', 414
     .lex "$_", param_1411
@@ -11941,7 +12691,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1375"  :anon :subid("80_1280467473.99327") :outer("79_1280467473.99327")
+.sub "_block1375"  :anon :subid("80_1282016526.02169") :outer("79_1282016526.02169")
 .annotate 'line', 394
     new $P1377, "Undef"
     .lex "$regexsym", $P1377
@@ -11973,10 +12723,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<[>"  :subid("82_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "assertion:sym<[>"  :subid("82_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1425
 .annotate 'line', 420
-    .const 'Sub' $P1460 = "83_1280467473.99327" 
+    .const 'Sub' $P1460 = "83_1282016526.02169" 
     capture_lex $P1460
     new $P1424, 'ExceptionHandler'
     set_addr $P1424, control_1423
@@ -12068,7 +12818,7 @@
     islt $I1458, $N1455, $N1457
     unless $I1458, loop1483_done
   loop1483_redo:
-    .const 'Sub' $P1460 = "83_1280467473.99327" 
+    .const 'Sub' $P1460 = "83_1282016526.02169" 
     capture_lex $P1460
     $P1460()
   loop1483_next:
@@ -12096,7 +12846,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1459"  :anon :subid("83_1280467473.99327") :outer("82_1280467473.99327")
+.sub "_block1459"  :anon :subid("83_1282016526.02169") :outer("82_1282016526.02169")
 .annotate 'line', 434
     new $P1461, "Undef"
     .lex "$ast", $P1461
@@ -12148,12 +12898,12 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "cclass_elem"  :subid("84_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "cclass_elem"  :subid("84_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1493
 .annotate 'line', 447
-    .const 'Sub' $P1518 = "86_1280467473.99327" 
+    .const 'Sub' $P1518 = "86_1282016526.02169" 
     capture_lex $P1518
-    .const 'Sub' $P1502 = "85_1280467473.99327" 
+    .const 'Sub' $P1502 = "85_1282016526.02169" 
     capture_lex $P1502
     new $P1492, 'ExceptionHandler'
     set_addr $P1492, control_1491
@@ -12202,7 +12952,7 @@
     unless $P1512, loop1543_done
     shift $P1516, $P1512
   loop1543_redo:
-    .const 'Sub' $P1518 = "86_1280467473.99327" 
+    .const 'Sub' $P1518 = "86_1282016526.02169" 
     capture_lex $P1518
     $P1518($P1516)
   loop1543_next:
@@ -12226,7 +12976,7 @@
     goto if_1498_end
   if_1498:
 .annotate 'line', 450
-    .const 'Sub' $P1502 = "85_1280467473.99327" 
+    .const 'Sub' $P1502 = "85_1282016526.02169" 
     capture_lex $P1502
     $P1502()
   if_1498_end:
@@ -12258,10 +13008,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1517"  :anon :subid("86_1280467473.99327") :outer("84_1280467473.99327")
+.sub "_block1517"  :anon :subid("86_1282016526.02169") :outer("84_1282016526.02169")
     .param pmc param_1519
 .annotate 'line', 454
-    .const 'Sub' $P1525 = "87_1280467473.99327" 
+    .const 'Sub' $P1525 = "87_1282016526.02169" 
     capture_lex $P1525
     .lex "$_", param_1519
 .annotate 'line', 455
@@ -12290,7 +13040,7 @@
 .annotate 'line', 455
     goto if_1521_end
   if_1521:
-    .const 'Sub' $P1525 = "87_1280467473.99327" 
+    .const 'Sub' $P1525 = "87_1282016526.02169" 
     capture_lex $P1525
     $P1538 = $P1525()
     set $P1520, $P1538
@@ -12301,7 +13051,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1524"  :anon :subid("87_1280467473.99327") :outer("86_1280467473.99327")
+.sub "_block1524"  :anon :subid("87_1282016526.02169") :outer("86_1282016526.02169")
 .annotate 'line', 456
     new $P1526, "Undef"
     .lex "$a", $P1526
@@ -12365,7 +13115,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1501"  :anon :subid("85_1280467473.99327") :outer("84_1280467473.99327")
+.sub "_block1501"  :anon :subid("85_1282016526.02169") :outer("84_1282016526.02169")
 .annotate 'line', 451
     new $P1503, "Undef"
     .lex "$name", $P1503
@@ -12394,7 +13144,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "mod_internal"  :subid("88_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "mod_internal"  :subid("88_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1562
 .annotate 'line', 485
     new $P1561, 'ExceptionHandler'
@@ -12493,7 +13243,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "subrule_alias"  :subid("89_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "subrule_alias"  :subid("89_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1594
     .param pmc param_1595
 .annotate 'line', 583
@@ -12539,7 +13289,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "named_assertion"  :subid("90_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "named_assertion"  :subid("90_1282016526.02169") :method :outer("11_1282016526.02169")
     .param pmc param_1614
 .annotate 'line', 589
     new $P1613, 'ExceptionHandler'
@@ -12586,18 +13336,18 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1629" :load :anon :subid("91_1280467473.99327")
+.sub "_block1629" :load :anon :subid("91_1282016526.02169")
 .annotate 'line', 4
-    .const 'Sub' $P1631 = "11_1280467473.99327" 
+    .const 'Sub' $P1631 = "11_1282016526.02169" 
     $P1632 = $P1631()
     .return ($P1632)
 .end
 
 
 .namespace []
-.sub "_block1635" :load :anon :subid("92_1280467473.99327")
+.sub "_block1635" :load :anon :subid("92_1282016526.02169")
 .annotate 'line', 1
-    .const 'Sub' $P1637 = "10_1280467473.99327" 
+    .const 'Sub' $P1637 = "10_1282016526.02169" 
     $P1638 = $P1637()
     .return ($P1638)
 .end

Modified: trunk/ext/nqp-rx/src/stage0/Regex-s0.pir
==============================================================================
--- trunk/ext/nqp-rx/src/stage0/Regex-s0.pir	Tue Aug 17 03:02:21 2010	(r48544)
+++ trunk/ext/nqp-rx/src/stage0/Regex-s0.pir	Tue Aug 17 04:29:27 2010	(r48545)
@@ -1197,11 +1197,20 @@
 .sub '!protoregex' :method
     .param string name
 
+    .local pmc debug
+    debug = getattribute self, '$!debug'
+    if null debug goto have_debug
+    if debug goto have_debug
+    null debug
+  have_debug:
+
     .local pmc tokrx, toklen
     (tokrx, toklen) = self.'!protoregex_tokrx'(name)
   have_tokrx:
 
+    if null debug goto debug_skip_1
     self.'!cursor_debug'('PROTO ', name)
+  debug_skip_1:
 
     # If there are no entries at all for this protoregex, we fail outright.
     unless tokrx goto fail
@@ -1219,9 +1228,12 @@
     token1 = substr target, pos, 1
     $I0 = toklen[token1]
     token = substr target, pos, $I0
+
+    if null debug goto debug_skip_2
     $S0 = escape token
     $S1 = escape token1
     self.'!cursor_debug'('        token1="', $S1, '", token="', $S0, '"')
+  debug_skip_2:
 
     # Create a hash to keep track of the methods we've already called,
     # so that we don't end up calling it twice.
@@ -1267,11 +1279,17 @@
 
   done:
     pos = result.'pos'()
+
+    if null debug goto debug_skip_3
     self.'!cursor_debug'('PASS  ', name, ' at pos=', pos)
+  debug_skip_3:
+
     .return (result)
 
   fail:
+    if null debug goto debug_skip_4
     self.'!cursor_debug'('FAIL  ', name)
+  debug_skip_4:
     unless null result goto fail_1
     result = self.'!cursor_start'()
     result.'!cursor_fail'()
@@ -2122,7 +2140,7 @@
 # vim: expandtab shiftwidth=4 ft=pir:
 
 ### .include 'src/PAST/Regex.pir'
-# $Id$
+# $Id: Regex.pir 41578 2009-09-30 14:45:23Z pmichaud $
 
 =head1 NAME
 
@@ -2495,7 +2513,7 @@
     .local string prefix, rname, rtype
     prefix = self.'unique'('rx')
     concat prefix, '_'
-    $P0 = split ' ', 'tgt string pos int off int eos int rep int cur pmc'
+    $P0 = split ' ', 'tgt string pos int off int eos int rep int cur pmc debug pmc'
     $P1 = iter $P0
   iter_loop:
     unless $P1 goto iter_done
@@ -2539,8 +2557,8 @@
     goto capnames_loop
   capnames_done:
 
-    .local string cur, rep, pos, tgt, off, eos
-    (cur, rep, pos, tgt, off, eos) = self.'!rxregs'('cur rep pos tgt off eos')
+    .local string cur, rep, pos, tgt, off, eos, debug
+    (cur, rep, pos, tgt, off, eos, debug) = self.'!rxregs'('cur rep pos tgt off eos debug')
 
     unless regexname goto peek_done
     .local pmc tpast, token, tpost
@@ -2572,6 +2590,7 @@
     self.'!cursorop'(ops, '!cursor_caparray', 0, caparray :flat)
   caparray_skip:
 
+    ops.'push_pirop'('getattribute', debug, cur, '"$!debug"')
     ops.'push_pirop'('.lex', 'unicode:"$\x{a2}"', cur)
     ops.'push_pirop'('.local pmc', 'match')
     ops.'push_pirop'('.lex', '"$/"', 'match')
@@ -2631,6 +2650,13 @@
     .param int retelems
     .param pmc args            :slurpy
 
+    $S0 = concat '!cursorop_', func
+    $I0 = can self, $S0
+    unless $I0 goto cursorop_default
+    $P0 = self.$S0(ops, func, retelems, args :flat)
+    unless null $P0 goto done
+
+  cursorop_default:
     if retelems < 1 goto result_done
     .local pmc retargs
     retargs = new ['ResizableStringArray']
@@ -2658,6 +2684,23 @@
     .return (ops)
 .end
 
+.sub '!cursorop_!cursor_debug' :method
+    .param pmc ops
+    .param string func
+    .param int retelems
+    .param pmc args            :slurpy
+
+    .local pmc cur, debug, debuglabel
+    $P99 = get_hll_global ['POST'], 'Label'
+    debuglabel = $P99.'new'('name'=>'debug_')
+    (cur, debug) = self.'!rxregs'('cur debug')
+    ops.'push_pirop'('if_null', debug, debuglabel)
+    $S0 = self.'escape'(func)
+    ops.'push_pirop'('callmethod', $S0, cur, args :flat)
+    ops.'push'(debuglabel)
+    .return (ops)
+.end
+
 
 =item !rxregs(keystr)
 
@@ -3165,7 +3208,7 @@
     ops.'push_pirop'('inline', subtype, $S0, 'inline'=>'  # rx literal %0 %1')
     ops.'push'(lpost)
 
-    .local int litlen
+    .local string litlen
     if litconst goto litlen_const
     litlen = '$I10'
     ops.'push_pirop'('length', '$I10', lpost)
@@ -3182,12 +3225,23 @@
 
     # compute string to be matched and fail if mismatch
     ops.'push_pirop'('sub', '$I11', pos, off)
+    if ignorecase goto literal_ignorecase
+    if litlen == "1" goto literal_1
+    ops.'push_pirop'('substr', '$S10', tgt, '$I11', litlen)
+    ops.'push_pirop'('ne', '$S10', lpost, fail)
+    goto literal_pass
+  literal_1:
+    $S0 = lpast
+    $I0 = ord $S0
+    ops.'push_pirop'('ord', '$I11', tgt, '$I11')
+    ops.'push_pirop'('ne', '$I11', $I0, fail)
+    goto literal_pass
+  literal_ignorecase:
     ops.'push_pirop'('substr', '$S10', tgt, '$I11', litlen)
-    unless ignorecase goto literal_test
     ops.'push_pirop'('downcase', '$S10', '$S10')
-  literal_test:
     ops.'push_pirop'('ne', '$S10', lpost, fail)
 
+  literal_pass:
     # increase position by literal length and move on
     ops.'push_pirop'('add', pos, litlen)
   done:


More information about the parrot-commits mailing list