[svn:parrot] r48536 - branches/substr_eq_at/ext/nqp-rx/src/stage0

pmichaud at svn.parrot.org pmichaud at svn.parrot.org
Mon Aug 16 21:38:57 UTC 2010


Author: pmichaud
Date: Mon Aug 16 21:38:56 2010
New Revision: 48536
URL: https://trac.parrot.org/parrot/changeset/48536

Log:
[nqp-rx]:  Push nqp-rx that uses cmp_str_at for substring comparisons.

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

Modified: branches/substr_eq_at/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/substr_eq_at/ext/nqp-rx/src/stage0/HLL-s0.pir	Mon Aug 16 20:06:04 2010	(r48535)
+++ branches/substr_eq_at/ext/nqp-rx/src/stage0/HLL-s0.pir	Mon Aug 16 21:38:56 2010	(r48536)
@@ -902,7 +902,7 @@
 ### .include 'gen/hllgrammar-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467467.13603")
+.sub "_block11"  :anon :subid("10_1281989555.9949")
 .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_1281989555.9949" 
     .return ($P334)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post107") :outer("10_1280467467.13603")
+.sub "" :load :init :subid("post107") :outer("10_1281989555.9949")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467467.13603" 
+    .const 'Sub' $P12 = "10_1281989555.9949" 
     .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_1281989555.9949") :outer("10_1281989555.9949")
 .annotate 'line', 5
-    .const 'Sub' $P319 = "103_1280467467.13603" 
+    .const 'Sub' $P319 = "103_1281989555.9949" 
     capture_lex $P319
-    .const 'Sub' $P313 = "101_1280467467.13603" 
+    .const 'Sub' $P313 = "101_1281989555.9949" 
     capture_lex $P313
-    .const 'Sub' $P300 = "98_1280467467.13603" 
+    .const 'Sub' $P300 = "98_1281989555.9949" 
     capture_lex $P300
-    .const 'Sub' $P268 = "93_1280467467.13603" 
+    .const 'Sub' $P268 = "93_1281989555.9949" 
     capture_lex $P268
-    .const 'Sub' $P262 = "91_1280467467.13603" 
+    .const 'Sub' $P262 = "91_1281989555.9949" 
     capture_lex $P262
-    .const 'Sub' $P257 = "89_1280467467.13603" 
+    .const 'Sub' $P257 = "89_1281989555.9949" 
     capture_lex $P257
-    .const 'Sub' $P251 = "87_1280467467.13603" 
+    .const 'Sub' $P251 = "87_1281989555.9949" 
     capture_lex $P251
-    .const 'Sub' $P245 = "85_1280467467.13603" 
+    .const 'Sub' $P245 = "85_1281989555.9949" 
     capture_lex $P245
-    .const 'Sub' $P240 = "83_1280467467.13603" 
+    .const 'Sub' $P240 = "83_1281989555.9949" 
     capture_lex $P240
-    .const 'Sub' $P235 = "81_1280467467.13603" 
+    .const 'Sub' $P235 = "81_1281989555.9949" 
     capture_lex $P235
-    .const 'Sub' $P230 = "79_1280467467.13603" 
+    .const 'Sub' $P230 = "79_1281989555.9949" 
     capture_lex $P230
-    .const 'Sub' $P225 = "77_1280467467.13603" 
+    .const 'Sub' $P225 = "77_1281989555.9949" 
     capture_lex $P225
-    .const 'Sub' $P220 = "75_1280467467.13603" 
+    .const 'Sub' $P220 = "75_1281989555.9949" 
     capture_lex $P220
-    .const 'Sub' $P215 = "73_1280467467.13603" 
+    .const 'Sub' $P215 = "73_1281989555.9949" 
     capture_lex $P215
-    .const 'Sub' $P210 = "71_1280467467.13603" 
+    .const 'Sub' $P210 = "71_1281989555.9949" 
     capture_lex $P210
-    .const 'Sub' $P205 = "69_1280467467.13603" 
+    .const 'Sub' $P205 = "69_1281989555.9949" 
     capture_lex $P205
-    .const 'Sub' $P195 = "65_1280467467.13603" 
+    .const 'Sub' $P195 = "65_1281989555.9949" 
     capture_lex $P195
-    .const 'Sub' $P182 = "63_1280467467.13603" 
+    .const 'Sub' $P182 = "63_1281989555.9949" 
     capture_lex $P182
-    .const 'Sub' $P170 = "61_1280467467.13603" 
+    .const 'Sub' $P170 = "61_1281989555.9949" 
     capture_lex $P170
-    .const 'Sub' $P164 = "59_1280467467.13603" 
+    .const 'Sub' $P164 = "59_1281989555.9949" 
     capture_lex $P164
-    .const 'Sub' $P157 = "57_1280467467.13603" 
+    .const 'Sub' $P157 = "57_1281989555.9949" 
     capture_lex $P157
-    .const 'Sub' $P151 = "55_1280467467.13603" 
+    .const 'Sub' $P151 = "55_1281989555.9949" 
     capture_lex $P151
-    .const 'Sub' $P144 = "53_1280467467.13603" 
+    .const 'Sub' $P144 = "53_1281989555.9949" 
     capture_lex $P144
-    .const 'Sub' $P138 = "51_1280467467.13603" 
+    .const 'Sub' $P138 = "51_1281989555.9949" 
     capture_lex $P138
-    .const 'Sub' $P131 = "49_1280467467.13603" 
+    .const 'Sub' $P131 = "49_1281989555.9949" 
     capture_lex $P131
-    .const 'Sub' $P125 = "47_1280467467.13603" 
+    .const 'Sub' $P125 = "47_1281989555.9949" 
     capture_lex $P125
-    .const 'Sub' $P119 = "45_1280467467.13603" 
+    .const 'Sub' $P119 = "45_1281989555.9949" 
     capture_lex $P119
-    .const 'Sub' $P110 = "43_1280467467.13603" 
+    .const 'Sub' $P110 = "43_1281989555.9949" 
     capture_lex $P110
-    .const 'Sub' $P102 = "41_1280467467.13603" 
+    .const 'Sub' $P102 = "41_1281989555.9949" 
     capture_lex $P102
-    .const 'Sub' $P92 = "40_1280467467.13603" 
+    .const 'Sub' $P92 = "40_1281989555.9949" 
     capture_lex $P92
-    .const 'Sub' $P86 = "38_1280467467.13603" 
+    .const 'Sub' $P86 = "38_1281989555.9949" 
     capture_lex $P86
-    .const 'Sub' $P81 = "36_1280467467.13603" 
+    .const 'Sub' $P81 = "36_1281989555.9949" 
     capture_lex $P81
-    .const 'Sub' $P73 = "34_1280467467.13603" 
+    .const 'Sub' $P73 = "34_1281989555.9949" 
     capture_lex $P73
-    .const 'Sub' $P67 = "32_1280467467.13603" 
+    .const 'Sub' $P67 = "32_1281989555.9949" 
     capture_lex $P67
-    .const 'Sub' $P61 = "30_1280467467.13603" 
+    .const 'Sub' $P61 = "30_1281989555.9949" 
     capture_lex $P61
-    .const 'Sub' $P55 = "28_1280467467.13603" 
+    .const 'Sub' $P55 = "28_1281989555.9949" 
     capture_lex $P55
-    .const 'Sub' $P22 = "14_1280467467.13603" 
+    .const 'Sub' $P22 = "14_1281989555.9949" 
     capture_lex $P22
-    .const 'Sub' $P15 = "12_1280467467.13603" 
+    .const 'Sub' $P15 = "12_1281989555.9949" 
     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_1281989555.9949" 
     capture_lex $P319
 .annotate 'line', 5
     .return ($P319)
-    .const 'Sub' $P329 = "105_1280467467.13603" 
+    .const 'Sub' $P329 = "105_1281989555.9949" 
     .return ($P329)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "ws"  :subid("12_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "ws"  :subid("12_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 5
     .local string rx16_tgt
     .local int rx16_pos
@@ -1087,8 +1087,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
@@ -1121,7 +1121,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws"  :subid("13_1280467467.13603") :method
+.sub "!PREFIX__ws"  :subid("13_1281989555.9949") :method
 .annotate 'line', 5
     new $P18, "ResizablePMCArray"
     push $P18, ""
@@ -1130,7 +1130,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "termish"  :subid("14_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "termish"  :subid("14_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 5
     .local string rx23_tgt
     .local int rx23_pos
@@ -1139,7 +1139,7 @@
     .local int rx23_rep
     .local pmc rx23_cur
     (rx23_cur, rx23_pos, rx23_tgt, $I10) = self."!cursor_start"()
-    rx23_cur."!cursor_caparray"("prefixish", "postfixish")
+    rx23_cur."!cursor_caparray"("postfixish", "prefixish")
     .lex unicode:"$\x{a2}", rx23_cur
     .local pmc match
     .lex "$/", match
@@ -1242,7 +1242,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish"  :subid("15_1280467467.13603") :method
+.sub "!PREFIX__termish"  :subid("15_1281989555.9949") :method
 .annotate 'line', 5
     new $P25, "ResizablePMCArray"
     push $P25, ""
@@ -1251,7 +1251,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term"  :subid("16_1280467467.13603") :method
+.sub "term"  :subid("16_1281989555.9949") :method
 .annotate 'line', 13
     $P32 = self."!protoregex"("term")
     .return ($P32)
@@ -1259,7 +1259,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term"  :subid("17_1280467467.13603") :method
+.sub "!PREFIX__term"  :subid("17_1281989555.9949") :method
 .annotate 'line', 13
     $P34 = self."!PREFIX__!protoregex"("term")
     .return ($P34)
@@ -1267,7 +1267,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infix"  :subid("18_1280467467.13603") :method
+.sub "infix"  :subid("18_1281989555.9949") :method
 .annotate 'line', 14
     $P36 = self."!protoregex"("infix")
     .return ($P36)
@@ -1275,7 +1275,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix"  :subid("19_1280467467.13603") :method
+.sub "!PREFIX__infix"  :subid("19_1281989555.9949") :method
 .annotate 'line', 14
     $P38 = self."!PREFIX__!protoregex"("infix")
     .return ($P38)
@@ -1283,7 +1283,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefix"  :subid("20_1280467467.13603") :method
+.sub "prefix"  :subid("20_1281989555.9949") :method
 .annotate 'line', 15
     $P40 = self."!protoregex"("prefix")
     .return ($P40)
@@ -1291,7 +1291,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix"  :subid("21_1280467467.13603") :method
+.sub "!PREFIX__prefix"  :subid("21_1281989555.9949") :method
 .annotate 'line', 15
     $P42 = self."!PREFIX__!protoregex"("prefix")
     .return ($P42)
@@ -1299,7 +1299,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfix"  :subid("22_1280467467.13603") :method
+.sub "postfix"  :subid("22_1281989555.9949") :method
 .annotate 'line', 16
     $P44 = self."!protoregex"("postfix")
     .return ($P44)
@@ -1307,7 +1307,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix"  :subid("23_1280467467.13603") :method
+.sub "!PREFIX__postfix"  :subid("23_1281989555.9949") :method
 .annotate 'line', 16
     $P46 = self."!PREFIX__!protoregex"("postfix")
     .return ($P46)
@@ -1315,7 +1315,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "circumfix"  :subid("24_1280467467.13603") :method
+.sub "circumfix"  :subid("24_1281989555.9949") :method
 .annotate 'line', 17
     $P48 = self."!protoregex"("circumfix")
     .return ($P48)
@@ -1323,7 +1323,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix"  :subid("25_1280467467.13603") :method
+.sub "!PREFIX__circumfix"  :subid("25_1281989555.9949") :method
 .annotate 'line', 17
     $P50 = self."!PREFIX__!protoregex"("circumfix")
     .return ($P50)
@@ -1331,7 +1331,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postcircumfix"  :subid("26_1280467467.13603") :method
+.sub "postcircumfix"  :subid("26_1281989555.9949") :method
 .annotate 'line', 18
     $P52 = self."!protoregex"("postcircumfix")
     .return ($P52)
@@ -1339,7 +1339,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix"  :subid("27_1280467467.13603") :method
+.sub "!PREFIX__postcircumfix"  :subid("27_1281989555.9949") :method
 .annotate 'line', 18
     $P54 = self."!PREFIX__!protoregex"("postcircumfix")
     .return ($P54)
@@ -1347,7 +1347,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>"  :subid("28_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "term:sym<circumfix>"  :subid("28_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 5
     .local string rx56_tgt
     .local int rx56_pos
@@ -1409,7 +1409,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1280467467.13603") :method
+.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1281989555.9949") :method
 .annotate 'line', 5
     $P58 = self."!PREFIX__!subrule"("circumfix", "")
     new $P59, "ResizablePMCArray"
@@ -1419,7 +1419,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infixish"  :subid("30_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "infixish"  :subid("30_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 5
     .local string rx62_tgt
     .local int rx62_pos
@@ -1481,7 +1481,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("31_1280467467.13603") :method
+.sub "!PREFIX__infixish"  :subid("31_1281989555.9949") :method
 .annotate 'line', 5
     $P64 = self."!PREFIX__!subrule"("infix", "")
     new $P65, "ResizablePMCArray"
@@ -1491,7 +1491,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefixish"  :subid("32_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "prefixish"  :subid("32_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 5
     .local string rx68_tgt
     .local int rx68_pos
@@ -1558,7 +1558,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish"  :subid("33_1280467467.13603") :method
+.sub "!PREFIX__prefixish"  :subid("33_1281989555.9949") :method
 .annotate 'line', 5
     $P70 = self."!PREFIX__!subrule"("prefix", "")
     new $P71, "ResizablePMCArray"
@@ -1568,7 +1568,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfixish"  :subid("34_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "postfixish"  :subid("34_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 5
     .local string rx74_tgt
     .local int rx74_pos
@@ -1646,7 +1646,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish"  :subid("35_1280467467.13603") :method
+.sub "!PREFIX__postfixish"  :subid("35_1281989555.9949") :method
 .annotate 'line', 5
     $P76 = self."!PREFIX__!subrule"("postcircumfix", "")
     $P77 = self."!PREFIX__!subrule"("postfix", "")
@@ -1658,7 +1658,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm"  :subid("36_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "nullterm"  :subid("36_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 5
     .local string rx82_tgt
     .local int rx82_pos
@@ -1713,7 +1713,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm"  :subid("37_1280467467.13603") :method
+.sub "!PREFIX__nullterm"  :subid("37_1281989555.9949") :method
 .annotate 'line', 5
     new $P84, "ResizablePMCArray"
     push $P84, ""
@@ -1722,7 +1722,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm_alt"  :subid("38_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "nullterm_alt"  :subid("38_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 5
     .local string rx87_tgt
     .local int rx87_pos
@@ -1784,7 +1784,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt"  :subid("39_1280467467.13603") :method
+.sub "!PREFIX__nullterm_alt"  :subid("39_1281989555.9949") :method
 .annotate 'line', 5
     $P89 = self."!PREFIX__!subrule"("nullterm", "")
     new $P90, "ResizablePMCArray"
@@ -1795,7 +1795,7 @@
 
 .namespace ["HLL";"Grammar"]
 .include "except_types.pasm"
-.sub "nulltermish"  :subid("40_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "nulltermish"  :subid("40_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     new $P94, 'ExceptionHandler'
     set_addr $P94, control_93
@@ -1822,7 +1822,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_delimited"  :subid("41_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_delimited"  :subid("41_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx103_tgt
     .local int rx103_pos
@@ -1916,7 +1916,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited"  :subid("42_1280467467.13603") :method
+.sub "!PREFIX__quote_delimited"  :subid("42_1281989555.9949") :method
 .annotate 'line', 33
     $P105 = self."!PREFIX__!subrule"("starter", "")
     new $P106, "ResizablePMCArray"
@@ -1926,7 +1926,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_atom"  :subid("43_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_atom"  :subid("43_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx111_tgt
     .local int rx111_pos
@@ -2023,7 +2023,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom"  :subid("44_1280467467.13603") :method
+.sub "!PREFIX__quote_atom"  :subid("44_1281989555.9949") :method
 .annotate 'line', 33
     new $P113, "ResizablePMCArray"
     push $P113, ""
@@ -2032,7 +2032,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decint"  :subid("45_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "decint"  :subid("45_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx120_tgt
     .local int rx120_pos
@@ -2084,8 +2084,8 @@
     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:
@@ -2110,7 +2110,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint"  :subid("46_1280467467.13603") :method
+.sub "!PREFIX__decint"  :subid("46_1281989555.9949") :method
 .annotate 'line', 33
     new $P122, "ResizablePMCArray"
     push $P122, ""
@@ -2119,7 +2119,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decints"  :subid("47_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "decints"  :subid("47_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx126_tgt
     .local int rx126_pos
@@ -2183,8 +2183,8 @@
     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:
@@ -2209,7 +2209,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decints"  :subid("48_1280467467.13603") :method
+.sub "!PREFIX__decints"  :subid("48_1281989555.9949") :method
 .annotate 'line', 33
     new $P128, "ResizablePMCArray"
     push $P128, ""
@@ -2218,7 +2218,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexint"  :subid("49_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "hexint"  :subid("49_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx132_tgt
     .local int rx132_pos
@@ -2281,8 +2281,8 @@
     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:
@@ -2307,7 +2307,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint"  :subid("50_1280467467.13603") :method
+.sub "!PREFIX__hexint"  :subid("50_1281989555.9949") :method
 .annotate 'line', 33
     new $P134, "ResizablePMCArray"
     push $P134, ""
@@ -2316,7 +2316,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexints"  :subid("51_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "hexints"  :subid("51_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx139_tgt
     .local int rx139_pos
@@ -2380,8 +2380,8 @@
     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:
@@ -2406,7 +2406,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints"  :subid("52_1280467467.13603") :method
+.sub "!PREFIX__hexints"  :subid("52_1281989555.9949") :method
 .annotate 'line', 33
     new $P141, "ResizablePMCArray"
     push $P141, ""
@@ -2415,7 +2415,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octint"  :subid("53_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "octint"  :subid("53_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx145_tgt
     .local int rx145_pos
@@ -2478,8 +2478,8 @@
     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:
@@ -2504,7 +2504,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint"  :subid("54_1280467467.13603") :method
+.sub "!PREFIX__octint"  :subid("54_1281989555.9949") :method
 .annotate 'line', 33
     new $P147, "ResizablePMCArray"
     push $P147, ""
@@ -2513,7 +2513,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octints"  :subid("55_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "octints"  :subid("55_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx152_tgt
     .local int rx152_pos
@@ -2577,8 +2577,8 @@
     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:
@@ -2603,7 +2603,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints"  :subid("56_1280467467.13603") :method
+.sub "!PREFIX__octints"  :subid("56_1281989555.9949") :method
 .annotate 'line', 33
     new $P154, "ResizablePMCArray"
     push $P154, ""
@@ -2612,7 +2612,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binint"  :subid("57_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "binint"  :subid("57_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx158_tgt
     .local int rx158_pos
@@ -2675,8 +2675,8 @@
     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:
@@ -2701,7 +2701,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint"  :subid("58_1280467467.13603") :method
+.sub "!PREFIX__binint"  :subid("58_1281989555.9949") :method
 .annotate 'line', 33
     new $P160, "ResizablePMCArray"
     push $P160, ""
@@ -2710,7 +2710,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binints"  :subid("59_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "binints"  :subid("59_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx165_tgt
     .local int rx165_pos
@@ -2774,8 +2774,8 @@
     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:
@@ -2800,7 +2800,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints"  :subid("60_1280467467.13603") :method
+.sub "!PREFIX__binints"  :subid("60_1281989555.9949") :method
 .annotate 'line', 33
     new $P167, "ResizablePMCArray"
     push $P167, ""
@@ -2809,7 +2809,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "integer"  :subid("61_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "integer"  :subid("61_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx171_tgt
     .local int rx171_pos
@@ -2851,8 +2851,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 +2861,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 +2880,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 +2899,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 +2916,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)
@@ -2961,7 +2961,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer"  :subid("62_1280467467.13603") :method
+.sub "!PREFIX__integer"  :subid("62_1281989555.9949") :method
 .annotate 'line', 33
     $P173 = self."!PREFIX__!subrule"("decint", "")
     $P174 = self."!PREFIX__!subrule"("decint", "0d")
@@ -2979,7 +2979,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "dec_number"  :subid("63_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "dec_number"  :subid("63_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx183_tgt
     .local int rx183_pos
@@ -3025,8 +3025,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 +3083,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
@@ -3176,7 +3176,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number"  :subid("64_1280467467.13603") :method
+.sub "!PREFIX__dec_number"  :subid("64_1281989555.9949") :method
 .annotate 'line', 33
     new $P185, "ResizablePMCArray"
     push $P185, ""
@@ -3187,7 +3187,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "escale"  :subid("65_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "escale"  :subid("65_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx196_tgt
     .local int rx196_pos
@@ -3269,7 +3269,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale"  :subid("66_1280467467.13603") :method
+.sub "!PREFIX__escale"  :subid("66_1281989555.9949") :method
 .annotate 'line', 33
     new $P198, "ResizablePMCArray"
     push $P198, "e"
@@ -3279,7 +3279,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape"  :subid("67_1280467467.13603") :method
+.sub "quote_escape"  :subid("67_1281989555.9949") :method
 .annotate 'line', 79
     $P202 = self."!protoregex"("quote_escape")
     .return ($P202)
@@ -3287,7 +3287,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape"  :subid("68_1280467467.13603") :method
+.sub "!PREFIX__quote_escape"  :subid("68_1281989555.9949") :method
 .annotate 'line', 79
     $P204 = self."!PREFIX__!protoregex"("quote_escape")
     .return ($P204)
@@ -3295,7 +3295,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_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx206_tgt
     .local int rx206_pos
@@ -3333,8 +3333,8 @@
     add $I11, rx206_pos, 2
     gt $I11, rx206_eos, rx206_fail
     sub $I11, rx206_pos, rx206_off
-    substr $S10, rx206_tgt, $I11, 2
-    ne $S10, "\\\\", rx206_fail
+    cmp_str_at $I11, rx206_tgt, "\\\\", $I11, 2
+    ne $I11, 0, rx206_fail
     add rx206_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx206_cur."!cursor_pos"(rx206_pos)
@@ -3361,7 +3361,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1281989555.9949") :method
 .annotate 'line', 33
     new $P208, "ResizablePMCArray"
     push $P208, "\\\\"
@@ -3370,7 +3370,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_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx211_tgt
     .local int rx211_pos
@@ -3408,8 +3408,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)
@@ -3443,7 +3443,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1281989555.9949") :method
 .annotate 'line', 33
     new $P213, "ResizablePMCArray"
     push $P213, "\\"
@@ -3452,7 +3452,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_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx216_tgt
     .local int rx216_pos
@@ -3490,8 +3490,8 @@
     add $I11, rx216_pos, 2
     gt $I11, rx216_eos, rx216_fail
     sub $I11, rx216_pos, rx216_off
-    substr $S10, rx216_tgt, $I11, 2
-    ne $S10, "\\b", rx216_fail
+    cmp_str_at $I11, rx216_tgt, "\\b", $I11, 2
+    ne $I11, 0, rx216_fail
     add rx216_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx216_cur."!cursor_pos"(rx216_pos)
@@ -3518,7 +3518,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1281989555.9949") :method
 .annotate 'line', 33
     new $P218, "ResizablePMCArray"
     push $P218, "\\b"
@@ -3527,7 +3527,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_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx221_tgt
     .local int rx221_pos
@@ -3565,8 +3565,8 @@
     add $I11, rx221_pos, 2
     gt $I11, rx221_eos, rx221_fail
     sub $I11, rx221_pos, rx221_off
-    substr $S10, rx221_tgt, $I11, 2
-    ne $S10, "\\n", rx221_fail
+    cmp_str_at $I11, rx221_tgt, "\\n", $I11, 2
+    ne $I11, 0, rx221_fail
     add rx221_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx221_cur."!cursor_pos"(rx221_pos)
@@ -3593,7 +3593,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1281989555.9949") :method
 .annotate 'line', 33
     new $P223, "ResizablePMCArray"
     push $P223, "\\n"
@@ -3602,7 +3602,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_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx226_tgt
     .local int rx226_pos
@@ -3640,8 +3640,8 @@
     add $I11, rx226_pos, 2
     gt $I11, rx226_eos, rx226_fail
     sub $I11, rx226_pos, rx226_off
-    substr $S10, rx226_tgt, $I11, 2
-    ne $S10, "\\r", rx226_fail
+    cmp_str_at $I11, rx226_tgt, "\\r", $I11, 2
+    ne $I11, 0, rx226_fail
     add rx226_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx226_cur."!cursor_pos"(rx226_pos)
@@ -3668,7 +3668,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1281989555.9949") :method
 .annotate 'line', 33
     new $P228, "ResizablePMCArray"
     push $P228, "\\r"
@@ -3677,7 +3677,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_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx231_tgt
     .local int rx231_pos
@@ -3715,8 +3715,8 @@
     add $I11, rx231_pos, 2
     gt $I11, rx231_eos, rx231_fail
     sub $I11, rx231_pos, rx231_off
-    substr $S10, rx231_tgt, $I11, 2
-    ne $S10, "\\t", rx231_fail
+    cmp_str_at $I11, rx231_tgt, "\\t", $I11, 2
+    ne $I11, 0, rx231_fail
     add rx231_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx231_cur."!cursor_pos"(rx231_pos)
@@ -3743,7 +3743,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1281989555.9949") :method
 .annotate 'line', 33
     new $P233, "ResizablePMCArray"
     push $P233, "\\t"
@@ -3752,7 +3752,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_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx236_tgt
     .local int rx236_pos
@@ -3790,8 +3790,8 @@
     add $I11, rx236_pos, 2
     gt $I11, rx236_eos, rx236_fail
     sub $I11, rx236_pos, rx236_off
-    substr $S10, rx236_tgt, $I11, 2
-    ne $S10, "\\f", rx236_fail
+    cmp_str_at $I11, rx236_tgt, "\\f", $I11, 2
+    ne $I11, 0, rx236_fail
     add rx236_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx236_cur."!cursor_pos"(rx236_pos)
@@ -3818,7 +3818,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1281989555.9949") :method
 .annotate 'line', 33
     new $P238, "ResizablePMCArray"
     push $P238, "\\f"
@@ -3827,7 +3827,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_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx241_tgt
     .local int rx241_pos
@@ -3865,8 +3865,8 @@
     add $I11, rx241_pos, 2
     gt $I11, rx241_eos, rx241_fail
     sub $I11, rx241_pos, rx241_off
-    substr $S10, rx241_tgt, $I11, 2
-    ne $S10, "\\e", rx241_fail
+    cmp_str_at $I11, rx241_tgt, "\\e", $I11, 2
+    ne $I11, 0, rx241_fail
     add rx241_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx241_cur."!cursor_pos"(rx241_pos)
@@ -3893,7 +3893,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1281989555.9949") :method
 .annotate 'line', 33
     new $P243, "ResizablePMCArray"
     push $P243, "\\e"
@@ -3902,7 +3902,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_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx246_tgt
     .local int rx246_pos
@@ -3940,8 +3940,8 @@
     add $I11, rx246_pos, 2
     gt $I11, rx246_eos, rx246_fail
     sub $I11, rx246_pos, rx246_off
-    substr $S10, rx246_tgt, $I11, 2
-    ne $S10, unicode:"\\x", rx246_fail
+    cmp_str_at $I11, rx246_tgt, unicode:"\\x", $I11, 2
+    ne $I11, 0, rx246_fail
     add rx246_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx246_cur."!cursor_pos"(rx246_pos)
@@ -3964,8 +3964,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,8 +3978,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, 93, rx246_fail
     add rx246_pos, 1
   alt250_end:
 .annotate 'line', 89
@@ -4004,7 +4004,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1281989555.9949") :method
 .annotate 'line', 33
     new $P248, "ResizablePMCArray"
     push $P248, unicode:"\\x"
@@ -4013,7 +4013,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_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx252_tgt
     .local int rx252_pos
@@ -4051,8 +4051,8 @@
     add $I11, rx252_pos, 2
     gt $I11, rx252_eos, rx252_fail
     sub $I11, rx252_pos, rx252_off
-    substr $S10, rx252_tgt, $I11, 2
-    ne $S10, "\\o", rx252_fail
+    cmp_str_at $I11, rx252_tgt, "\\o", $I11, 2
+    ne $I11, 0, rx252_fail
     add rx252_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx252_cur."!cursor_pos"(rx252_pos)
@@ -4075,8 +4075,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,8 +4089,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, 93, rx252_fail
     add rx252_pos, 1
   alt256_end:
 .annotate 'line', 93
@@ -4115,7 +4115,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1281989555.9949") :method
 .annotate 'line', 33
     new $P254, "ResizablePMCArray"
     push $P254, "\\o"
@@ -4124,7 +4124,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_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx258_tgt
     .local int rx258_pos
@@ -4162,8 +4162,8 @@
     add $I11, rx258_pos, 2
     gt $I11, rx258_eos, rx258_fail
     sub $I11, rx258_pos, rx258_off
-    substr $S10, rx258_tgt, $I11, 2
-    ne $S10, "\\c", rx258_fail
+    cmp_str_at $I11, rx258_tgt, "\\c", $I11, 2
+    ne $I11, 0, rx258_fail
     add rx258_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx258_cur."!cursor_pos"(rx258_pos)
@@ -4197,7 +4197,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1281989555.9949") :method
 .annotate 'line', 33
     new $P260, "ResizablePMCArray"
     push $P260, "\\c"
@@ -4206,7 +4206,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_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx263_tgt
     .local int rx263_pos
@@ -4244,8 +4244,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 +4254,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)
@@ -4293,7 +4293,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1281989555.9949") :method
 .annotate 'line', 33
     new $P265, "ResizablePMCArray"
     push $P265, "\\0"
@@ -4302,13 +4302,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_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
-    .const 'Sub' $P288 = "97_1280467467.13603" 
+    .const 'Sub' $P288 = "97_1281989555.9949" 
     capture_lex $P288
-    .const 'Sub' $P281 = "96_1280467467.13603" 
+    .const 'Sub' $P281 = "96_1281989555.9949" 
     capture_lex $P281
-    .const 'Sub' $P276 = "95_1280467467.13603" 
+    .const 'Sub' $P276 = "95_1281989555.9949" 
     capture_lex $P276
     .local string rx269_tgt
     .local int rx269_pos
@@ -4346,15 +4346,15 @@
     find_lex $P273, unicode:"$\x{a2}"
     $P274 = $P273."MATCH"()
     store_lex "$/", $P274
-    .const 'Sub' $P276 = "95_1280467467.13603" 
+    .const 'Sub' $P276 = "95_1281989555.9949" 
     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 +4372,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_1281989555.9949" 
     capture_lex $P281
     $P10 = rx269_cur.$P281()
     unless $P10, rx269_fail
@@ -4406,7 +4406,7 @@
     find_lex $P285, unicode:"$\x{a2}"
     $P286 = $P285."MATCH"()
     store_lex "$/", $P286
-    .const 'Sub' $P288 = "97_1280467467.13603" 
+    .const 'Sub' $P288 = "97_1281989555.9949" 
     capture_lex $P288
     $P298 = $P288()
   alt279_end:
@@ -4454,7 +4454,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1281989555.9949") :method
 .annotate 'line', 33
     new $P271, "ResizablePMCArray"
     push $P271, ""
@@ -4463,14 +4463,14 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block275"  :anon :subid("95_1280467467.13603") :outer("93_1280467467.13603")
+.sub "_block275"  :anon :subid("95_1281989555.9949") :outer("93_1281989555.9949")
 .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_1281989555.9949") :method :outer("93_1281989555.9949")
 .annotate 'line', 104
     .local string rx282_tgt
     .local int rx282_pos
@@ -4529,7 +4529,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block287"  :anon :subid("97_1280467467.13603") :outer("93_1280467467.13603")
+.sub "_block287"  :anon :subid("97_1281989555.9949") :outer("93_1281989555.9949")
 .annotate 'line', 105
     find_lex $P289, "$/"
     $P290 = $P289."CURSOR"()
@@ -4552,9 +4552,9 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charname"  :subid("98_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "charname"  :subid("98_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
-    .const 'Sub' $P310 = "100_1280467467.13603" 
+    .const 'Sub' $P310 = "100_1281989555.9949" 
     capture_lex $P310
     .local string rx301_tgt
     .local int rx301_pos
@@ -4634,7 +4634,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_1281989555.9949" 
     capture_lex $P310
     $P10 = rx301_cur."before"($P310)
     unless $P10, rx301_fail
@@ -4661,7 +4661,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname"  :subid("99_1280467467.13603") :method
+.sub "!PREFIX__charname"  :subid("99_1281989555.9949") :method
 .annotate 'line', 33
     $P303 = self."!PREFIX__!subrule"("integer", "")
     new $P304, "ResizablePMCArray"
@@ -4723,7 +4723,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block309"  :anon :subid("100_1280467467.13603") :method :outer("98_1280467467.13603")
+.sub "_block309"  :anon :subid("100_1281989555.9949") :method :outer("98_1281989555.9949")
 .annotate 'line', 114
     .local string rx311_tgt
     .local int rx311_pos
@@ -4787,7 +4787,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charnames"  :subid("101_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "charnames"  :subid("101_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx314_tgt
     .local int rx314_pos
@@ -4851,8 +4851,8 @@
     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:
@@ -4877,7 +4877,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames"  :subid("102_1280467467.13603") :method
+.sub "!PREFIX__charnames"  :subid("102_1281989555.9949") :method
 .annotate 'line', 33
     new $P316, "ResizablePMCArray"
     push $P316, ""
@@ -4886,7 +4886,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charspec"  :subid("103_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "charspec"  :subid("103_1281989555.9949") :method :outer("11_1281989555.9949")
 .annotate 'line', 33
     .local string rx320_tgt
     .local int rx320_pos
@@ -4928,8 +4928,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 +4942,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 +4964,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
@@ -5022,7 +5022,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec"  :subid("104_1280467467.13603") :method
+.sub "!PREFIX__charspec"  :subid("104_1281989555.9949") :method
 .annotate 'line', 33
     $P322 = self."!PREFIX__!subrule"("panic", "")
     $P323 = self."!PREFIX__!subrule"("charnames", "[")
@@ -5063,18 +5063,18 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block328" :load :anon :subid("105_1280467467.13603")
+.sub "_block328" :load :anon :subid("105_1281989555.9949")
 .annotate 'line', 5
-    .const 'Sub' $P330 = "11_1280467467.13603" 
+    .const 'Sub' $P330 = "11_1281989555.9949" 
     $P331 = $P330()
     .return ($P331)
 .end
 
 
 .namespace []
-.sub "_block333" :load :anon :subid("106_1280467467.13603")
+.sub "_block333" :load :anon :subid("106_1281989555.9949")
 .annotate 'line', 1
-    .const 'Sub' $P335 = "10_1280467467.13603" 
+    .const 'Sub' $P335 = "10_1281989555.9949" 
     $P336 = $P335()
     .return ($P336)
 .end
@@ -5082,7 +5082,7 @@
 ### .include 'gen/hllgrammar-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467468.44761")
+.sub "_block11"  :anon :subid("10_1281989558.34608")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Actions"], "_block13" 
     capture_lex $P14
@@ -5099,15 +5099,15 @@
     $P627 = $P14()
 .annotate 'line', 1
     .return ($P627)
-    .const 'Sub' $P629 = "55_1280467468.44761" 
+    .const 'Sub' $P629 = "55_1281989558.34608" 
     .return ($P629)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post56") :outer("10_1280467468.44761")
+.sub "" :load :init :subid("post56") :outer("10_1281989558.34608")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467468.44761" 
+    .const 'Sub' $P12 = "10_1281989558.34608" 
     .local pmc block
     set block, $P12
     $P632 = get_root_global ["parrot"], "P6metaclass"
@@ -5116,75 +5116,75 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block13"  :subid("11_1280467468.44761") :outer("10_1280467468.44761")
+.sub "_block13"  :subid("11_1281989558.34608") :outer("10_1281989558.34608")
 .annotate 'line', 3
-    .const 'Sub' $P605 = "53_1280467468.44761" 
+    .const 'Sub' $P605 = "53_1281989558.34608" 
     capture_lex $P605
-    .const 'Sub' $P580 = "51_1280467468.44761" 
+    .const 'Sub' $P580 = "51_1281989558.34608" 
     capture_lex $P580
-    .const 'Sub' $P550 = "50_1280467468.44761" 
+    .const 'Sub' $P550 = "50_1281989558.34608" 
     capture_lex $P550
-    .const 'Sub' $P531 = "49_1280467468.44761" 
+    .const 'Sub' $P531 = "49_1281989558.34608" 
     capture_lex $P531
-    .const 'Sub' $P524 = "48_1280467468.44761" 
+    .const 'Sub' $P524 = "48_1281989558.34608" 
     capture_lex $P524
-    .const 'Sub' $P514 = "47_1280467468.44761" 
+    .const 'Sub' $P514 = "47_1281989558.34608" 
     capture_lex $P514
-    .const 'Sub' $P497 = "46_1280467468.44761" 
+    .const 'Sub' $P497 = "46_1281989558.34608" 
     capture_lex $P497
-    .const 'Sub' $P480 = "45_1280467468.44761" 
+    .const 'Sub' $P480 = "45_1281989558.34608" 
     capture_lex $P480
-    .const 'Sub' $P473 = "44_1280467468.44761" 
+    .const 'Sub' $P473 = "44_1281989558.34608" 
     capture_lex $P473
-    .const 'Sub' $P466 = "43_1280467468.44761" 
+    .const 'Sub' $P466 = "43_1281989558.34608" 
     capture_lex $P466
-    .const 'Sub' $P459 = "42_1280467468.44761" 
+    .const 'Sub' $P459 = "42_1281989558.34608" 
     capture_lex $P459
-    .const 'Sub' $P452 = "41_1280467468.44761" 
+    .const 'Sub' $P452 = "41_1281989558.34608" 
     capture_lex $P452
-    .const 'Sub' $P445 = "40_1280467468.44761" 
+    .const 'Sub' $P445 = "40_1281989558.34608" 
     capture_lex $P445
-    .const 'Sub' $P438 = "39_1280467468.44761" 
+    .const 'Sub' $P438 = "39_1281989558.34608" 
     capture_lex $P438
-    .const 'Sub' $P428 = "38_1280467468.44761" 
+    .const 'Sub' $P428 = "38_1281989558.34608" 
     capture_lex $P428
-    .const 'Sub' $P421 = "37_1280467468.44761" 
+    .const 'Sub' $P421 = "37_1281989558.34608" 
     capture_lex $P421
-    .const 'Sub' $P405 = "36_1280467468.44761" 
+    .const 'Sub' $P405 = "36_1281989558.34608" 
     capture_lex $P405
-    .const 'Sub' $P330 = "34_1280467468.44761" 
+    .const 'Sub' $P330 = "34_1281989558.34608" 
     capture_lex $P330
-    .const 'Sub' $P267 = "31_1280467468.44761" 
+    .const 'Sub' $P267 = "31_1281989558.34608" 
     capture_lex $P267
-    .const 'Sub' $P258 = "30_1280467468.44761" 
+    .const 'Sub' $P258 = "30_1281989558.34608" 
     capture_lex $P258
-    .const 'Sub' $P249 = "29_1280467468.44761" 
+    .const 'Sub' $P249 = "29_1281989558.34608" 
     capture_lex $P249
-    .const 'Sub' $P240 = "28_1280467468.44761" 
+    .const 'Sub' $P240 = "28_1281989558.34608" 
     capture_lex $P240
-    .const 'Sub' $P231 = "27_1280467468.44761" 
+    .const 'Sub' $P231 = "27_1281989558.34608" 
     capture_lex $P231
-    .const 'Sub' $P222 = "26_1280467468.44761" 
+    .const 'Sub' $P222 = "26_1281989558.34608" 
     capture_lex $P222
-    .const 'Sub' $P212 = "25_1280467468.44761" 
+    .const 'Sub' $P212 = "25_1281989558.34608" 
     capture_lex $P212
-    .const 'Sub' $P202 = "24_1280467468.44761" 
+    .const 'Sub' $P202 = "24_1281989558.34608" 
     capture_lex $P202
-    .const 'Sub' $P194 = "23_1280467468.44761" 
+    .const 'Sub' $P194 = "23_1281989558.34608" 
     capture_lex $P194
-    .const 'Sub' $P184 = "22_1280467468.44761" 
+    .const 'Sub' $P184 = "22_1281989558.34608" 
     capture_lex $P184
-    .const 'Sub' $P174 = "21_1280467468.44761" 
+    .const 'Sub' $P174 = "21_1281989558.34608" 
     capture_lex $P174
-    .const 'Sub' $P73 = "18_1280467468.44761" 
+    .const 'Sub' $P73 = "18_1281989558.34608" 
     capture_lex $P73
-    .const 'Sub' $P35 = "15_1280467468.44761" 
+    .const 'Sub' $P35 = "15_1281989558.34608" 
     capture_lex $P35
-    .const 'Sub' $P28 = "14_1280467468.44761" 
+    .const 'Sub' $P28 = "14_1281989558.34608" 
     capture_lex $P28
-    .const 'Sub' $P22 = "13_1280467468.44761" 
+    .const 'Sub' $P22 = "13_1281989558.34608" 
     capture_lex $P22
-    .const 'Sub' $P15 = "12_1280467468.44761" 
+    .const 'Sub' $P15 = "12_1281989558.34608" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -5193,18 +5193,18 @@
     $P0."ctxsave"()
   ctxsave_done:
 .annotate 'line', 225
-    .const 'Sub' $P605 = "53_1280467468.44761" 
+    .const 'Sub' $P605 = "53_1281989558.34608" 
     newclosure $P622, $P605
 .annotate 'line', 3
     .return ($P622)
-    .const 'Sub' $P624 = "54_1280467468.44761" 
+    .const 'Sub' $P624 = "54_1281989558.34608" 
     .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_1281989558.34608") :outer("11_1281989558.34608")
     .param pmc param_18
     .param pmc param_19
 .annotate 'line', 3
@@ -5258,7 +5258,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_1281989558.34608") :outer("11_1281989558.34608")
     .param pmc param_25
 .annotate 'line', 37
     new $P24, 'ExceptionHandler'
@@ -5300,7 +5300,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "CTXSAVE"  :subid("14_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "CTXSAVE"  :subid("14_1281989558.34608") :method :outer("11_1281989558.34608")
 .annotate 'line', 62
     new $P30, 'ExceptionHandler'
     set_addr $P30, control_29
@@ -5330,10 +5330,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_38
 .annotate 'line', 76
-    .const 'Sub' $P48 = "16_1280467468.44761" 
+    .const 'Sub' $P48 = "16_1281989558.34608" 
     capture_lex $P48
     new $P37, 'ExceptionHandler'
     set_addr $P37, control_36
@@ -5368,7 +5368,7 @@
     set $P43, $I46
     goto if_44_end
   if_44:
-    .const 'Sub' $P48 = "16_1280467468.44761" 
+    .const 'Sub' $P48 = "16_1281989558.34608" 
     capture_lex $P48
     $P71 = $P48()
     set $P43, $P71
@@ -5385,9 +5385,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "_block47"  :anon :subid("16_1280467468.44761") :outer("15_1280467468.44761")
+.sub "_block47"  :anon :subid("16_1281989558.34608") :outer("15_1281989558.34608")
 .annotate 'line', 78
-    .const 'Sub' $P62 = "17_1280467468.44761" 
+    .const 'Sub' $P62 = "17_1281989558.34608" 
     capture_lex $P62
 .annotate 'line', 79
     $P49 = root_new ['parrot';'ResizablePMCArray']
@@ -5417,7 +5417,7 @@
     unless $P56, loop68_done
     shift $P60, $P56
   loop68_redo:
-    .const 'Sub' $P62 = "17_1280467468.44761" 
+    .const 'Sub' $P62 = "17_1281989558.34608" 
     capture_lex $P62
     $P62($P60)
   loop68_next:
@@ -5437,7 +5437,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block61"  :anon :subid("17_1280467468.44761") :outer("16_1280467468.44761")
+.sub "_block61"  :anon :subid("17_1281989558.34608") :outer("16_1281989558.34608")
     .param pmc param_63
 .annotate 'line', 82
     .lex "$_", param_63
@@ -5453,14 +5453,14 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "EXPR"  :subid("18_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "EXPR"  :subid("18_1281989558.34608") :method :outer("11_1281989558.34608")
     .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_1281989558.34608" 
     capture_lex $P156
-    .const 'Sub' $P123 = "19_1280467468.44761" 
+    .const 'Sub' $P123 = "19_1281989558.34608" 
     capture_lex $P123
     new $P75, 'ExceptionHandler'
     set_addr $P75, control_74
@@ -5595,7 +5595,7 @@
     find_lex $P120, "$past"
     $P121 = $P120."name"()
     if $P121, unless_119_end
-    .const 'Sub' $P123 = "19_1280467468.44761" 
+    .const 'Sub' $P123 = "19_1281989558.34608" 
     capture_lex $P123
     $P123()
   unless_119_end:
@@ -5619,7 +5619,7 @@
     unless $P150, loop167_done
     shift $P154, $P150
   loop167_redo:
-    .const 'Sub' $P156 = "20_1280467468.44761" 
+    .const 'Sub' $P156 = "20_1281989558.34608" 
     capture_lex $P156
     $P156($P154)
   loop167_next:
@@ -5664,7 +5664,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block122"  :anon :subid("19_1280467468.44761") :outer("18_1280467468.44761")
+.sub "_block122"  :anon :subid("19_1281989558.34608") :outer("18_1281989558.34608")
 .annotate 'line', 98
     new $P124, "Undef"
     .lex "$name", $P124
@@ -5714,7 +5714,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block155"  :anon :subid("20_1280467468.44761") :outer("18_1280467468.44761")
+.sub "_block155"  :anon :subid("20_1281989558.34608") :outer("18_1281989558.34608")
     .param pmc param_157
 .annotate 'line', 109
     .lex "$_", param_157
@@ -5738,7 +5738,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_177
 .annotate 'line', 114
     new $P176, 'ExceptionHandler'
@@ -5769,7 +5769,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "termish"  :subid("22_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "termish"  :subid("22_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_187
 .annotate 'line', 116
     new $P186, 'ExceptionHandler'
@@ -5800,7 +5800,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "nullterm"  :subid("23_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "nullterm"  :subid("23_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_197
 .annotate 'line', 117
     new $P196, 'ExceptionHandler'
@@ -5823,7 +5823,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_205
 .annotate 'line', 118
     new $P204, 'ExceptionHandler'
@@ -5854,7 +5854,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "integer"  :subid("25_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "integer"  :subid("25_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_215
 .annotate 'line', 120
     new $P214, 'ExceptionHandler'
@@ -5885,7 +5885,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_225
 .annotate 'line', 122
     new $P224, 'ExceptionHandler'
@@ -5909,7 +5909,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "decint"  :subid("27_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "decint"  :subid("27_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_234
 .annotate 'line', 124
     new $P233, 'ExceptionHandler'
@@ -5933,7 +5933,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "hexint"  :subid("28_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "hexint"  :subid("28_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_243
 .annotate 'line', 125
     new $P242, 'ExceptionHandler'
@@ -5957,7 +5957,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "octint"  :subid("29_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "octint"  :subid("29_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_252
 .annotate 'line', 126
     new $P251, 'ExceptionHandler'
@@ -5981,7 +5981,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "binint"  :subid("30_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "binint"  :subid("30_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_261
 .annotate 'line', 127
     new $P260, 'ExceptionHandler'
@@ -6005,10 +6005,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_270
 .annotate 'line', 129
-    .const 'Sub' $P286 = "32_1280467468.44761" 
+    .const 'Sub' $P286 = "32_1281989558.34608" 
     capture_lex $P286
     new $P269, 'ExceptionHandler'
     set_addr $P269, control_268
@@ -6040,7 +6040,7 @@
     $P282 = $P280."ACCEPTS"($P281)
     if $P282, if_279
 .annotate 'line', 135
-    .const 'Sub' $P286 = "32_1280467468.44761" 
+    .const 'Sub' $P286 = "32_1281989558.34608" 
     capture_lex $P286
     $P286()
     goto if_279_end
@@ -6080,9 +6080,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "_block285"  :anon :subid("32_1280467468.44761") :outer("31_1280467468.44761")
+.sub "_block285"  :anon :subid("32_1281989558.34608") :outer("31_1281989558.34608")
 .annotate 'line', 135
-    .const 'Sub' $P305 = "33_1280467468.44761" 
+    .const 'Sub' $P305 = "33_1281989558.34608" 
     capture_lex $P305
 .annotate 'line', 136
     $P287 = root_new ['parrot';'ResizablePMCArray']
@@ -6133,7 +6133,7 @@
     unless $P300, loop310_done
     shift $P303, $P300
   loop310_redo:
-    .const 'Sub' $P305 = "33_1280467468.44761" 
+    .const 'Sub' $P305 = "33_1281989558.34608" 
     capture_lex $P305
     $P305($P303)
   loop310_next:
@@ -6156,7 +6156,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block304"  :anon :subid("33_1280467468.44761") :outer("32_1280467468.44761")
+.sub "_block304"  :anon :subid("33_1281989558.34608") :outer("32_1281989558.34608")
     .param pmc param_306
 .annotate 'line', 139
     .lex "$_", param_306
@@ -6169,10 +6169,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_333
 .annotate 'line', 152
-    .const 'Sub' $P345 = "35_1280467468.44761" 
+    .const 'Sub' $P345 = "35_1281989558.34608" 
     capture_lex $P345
     new $P332, 'ExceptionHandler'
     set_addr $P332, control_331
@@ -6215,7 +6215,7 @@
     unless $P339, loop377_done
     shift $P343, $P339
   loop377_redo:
-    .const 'Sub' $P345 = "35_1280467468.44761" 
+    .const 'Sub' $P345 = "35_1281989558.34608" 
     capture_lex $P345
     $P345($P343)
   loop377_next:
@@ -6293,7 +6293,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block344"  :anon :subid("35_1280467468.44761") :outer("34_1280467468.44761")
+.sub "_block344"  :anon :subid("35_1281989558.34608") :outer("34_1281989558.34608")
     .param pmc param_347
 .annotate 'line', 156
     new $P346, "Undef"
@@ -6363,7 +6363,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_408
 .annotate 'line', 177
     new $P407, 'ExceptionHandler'
@@ -6413,7 +6413,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_424
 .annotate 'line', 181
     new $P423, 'ExceptionHandler'
@@ -6435,7 +6435,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_431
 .annotate 'line', 182
     new $P430, 'ExceptionHandler'
@@ -6466,7 +6466,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_441
 .annotate 'line', 184
     new $P440, 'ExceptionHandler'
@@ -6488,7 +6488,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_448
 .annotate 'line', 185
     new $P447, 'ExceptionHandler'
@@ -6510,7 +6510,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_455
 .annotate 'line', 186
     new $P454, 'ExceptionHandler'
@@ -6532,7 +6532,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_462
 .annotate 'line', 187
     new $P461, 'ExceptionHandler'
@@ -6554,7 +6554,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_469
 .annotate 'line', 188
     new $P468, 'ExceptionHandler'
@@ -6576,7 +6576,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_476
 .annotate 'line', 189
     new $P475, 'ExceptionHandler'
@@ -6598,7 +6598,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_483
 .annotate 'line', 191
     new $P482, 'ExceptionHandler'
@@ -6657,7 +6657,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_500
 .annotate 'line', 195
     new $P499, 'ExceptionHandler'
@@ -6716,7 +6716,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_517
 .annotate 'line', 199
     new $P516, 'ExceptionHandler'
@@ -6749,7 +6749,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_527
 .annotate 'line', 203
     new $P526, 'ExceptionHandler'
@@ -6773,7 +6773,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_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_534
 .annotate 'line', 207
     new $P533, 'ExceptionHandler'
@@ -6832,7 +6832,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charname"  :subid("50_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "charname"  :subid("50_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_553
 .annotate 'line', 211
     new $P552, 'ExceptionHandler'
@@ -6906,10 +6906,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charnames"  :subid("51_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "charnames"  :subid("51_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_583
 .annotate 'line', 219
-    .const 'Sub' $P592 = "52_1280467468.44761" 
+    .const 'Sub' $P592 = "52_1281989558.34608" 
     capture_lex $P592
     new $P582, 'ExceptionHandler'
     set_addr $P582, control_581
@@ -6943,7 +6943,7 @@
     unless $P586, loop598_done
     shift $P590, $P586
   loop598_redo:
-    .const 'Sub' $P592 = "52_1280467468.44761" 
+    .const 'Sub' $P592 = "52_1281989558.34608" 
     capture_lex $P592
     $P592($P590)
   loop598_next:
@@ -6972,7 +6972,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block591"  :anon :subid("52_1280467468.44761") :outer("51_1280467468.44761")
+.sub "_block591"  :anon :subid("52_1281989558.34608") :outer("51_1281989558.34608")
     .param pmc param_593
 .annotate 'line', 221
     .lex "$_", param_593
@@ -6987,7 +6987,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charspec"  :subid("53_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "charspec"  :subid("53_1281989558.34608") :method :outer("11_1281989558.34608")
     .param pmc param_608
 .annotate 'line', 225
     new $P607, 'ExceptionHandler'
@@ -7037,18 +7037,18 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block623" :load :anon :subid("54_1280467468.44761")
+.sub "_block623" :load :anon :subid("54_1281989558.34608")
 .annotate 'line', 3
-    .const 'Sub' $P625 = "11_1280467468.44761" 
+    .const 'Sub' $P625 = "11_1281989558.34608" 
     $P626 = $P625()
     .return ($P626)
 .end
 
 
 .namespace []
-.sub "_block628" :load :anon :subid("55_1280467468.44761")
+.sub "_block628" :load :anon :subid("55_1281989558.34608")
 .annotate 'line', 1
-    .const 'Sub' $P630 = "10_1280467468.44761" 
+    .const 'Sub' $P630 = "10_1281989558.34608" 
     $P631 = $P630()
     .return ($P631)
 .end
@@ -7056,7 +7056,7 @@
 ### .include 'gen/hllcompiler.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467469.30058")
+.sub "_block11"  :anon :subid("10_1281989559.89232")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     capture_lex $P14
@@ -7073,15 +7073,15 @@
     $P497 = $P14()
 .annotate 'line', 1
     .return ($P497)
-    .const 'Sub' $P499 = "36_1280467469.30058" 
+    .const 'Sub' $P499 = "36_1281989559.89232" 
     .return ($P499)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post37") :outer("10_1280467469.30058")
+.sub "" :load :init :subid("post37") :outer("10_1281989559.89232")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467469.30058" 
+    .const 'Sub' $P12 = "10_1281989559.89232" 
     .local pmc block
     set block, $P12
 .annotate 'line', 2
@@ -7095,36 +7095,36 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block13"  :subid("11_1280467469.30058") :outer("10_1280467469.30058")
+.sub "_block13"  :subid("11_1281989559.89232") :outer("10_1281989559.89232")
 .annotate 'line', 6
-    .const 'Sub' $P489 = "35_1280467469.30058" 
+    .const 'Sub' $P489 = "35_1281989559.89232" 
     capture_lex $P489
-    .const 'Sub' $P447 = "33_1280467469.30058" 
+    .const 'Sub' $P447 = "33_1281989559.89232" 
     capture_lex $P447
-    .const 'Sub' $P298 = "26_1280467469.30058" 
+    .const 'Sub' $P298 = "26_1281989559.89232" 
     capture_lex $P298
-    .const 'Sub' $P283 = "25_1280467469.30058" 
+    .const 'Sub' $P283 = "25_1281989559.89232" 
     capture_lex $P283
-    .const 'Sub' $P188 = "20_1280467469.30058" 
+    .const 'Sub' $P188 = "20_1281989559.89232" 
     capture_lex $P188
-    .const 'Sub' $P153 = "18_1280467469.30058" 
+    .const 'Sub' $P153 = "18_1281989559.89232" 
     capture_lex $P153
-    .const 'Sub' $P138 = "17_1280467469.30058" 
+    .const 'Sub' $P138 = "17_1281989559.89232" 
     capture_lex $P138
-    .const 'Sub' $P122 = "16_1280467469.30058" 
+    .const 'Sub' $P122 = "16_1281989559.89232" 
     capture_lex $P122
-    .const 'Sub' $P33 = "13_1280467469.30058" 
+    .const 'Sub' $P33 = "13_1281989559.89232" 
     capture_lex $P33
-    .const 'Sub' $P15 = "12_1280467469.30058" 
+    .const 'Sub' $P15 = "12_1281989559.89232" 
     capture_lex $P15
 .annotate 'line', 14
-    .const 'Sub' $P15 = "12_1280467469.30058" 
+    .const 'Sub' $P15 = "12_1281989559.89232" 
     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_1281989559.89232" 
     newclosure $P495, $P489
 .annotate 'line', 6
     .return ($P495)
@@ -7132,7 +7132,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post38") :outer("11_1280467469.30058")
+.sub "" :load :init :subid("post38") :outer("11_1281989559.89232")
 .annotate 'line', 6
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     .local pmc block
@@ -7145,7 +7145,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "value_type"  :subid("12_1280467469.30058") :outer("11_1280467469.30058")
+.sub "value_type"  :subid("12_1281989559.89232") :outer("11_1281989559.89232")
     .param pmc param_18
 .annotate 'line', 14
     new $P17, 'ExceptionHandler'
@@ -7190,15 +7190,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_1281989559.89232") :method :outer("11_1281989559.89232")
     .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_1281989559.89232" 
     capture_lex $P105
-    .const 'Sub' $P84 = "14_1280467469.30058" 
+    .const 'Sub' $P84 = "14_1281989559.89232" 
     capture_lex $P84
     new $P35, 'ExceptionHandler'
     set_addr $P35, control_34
@@ -7304,7 +7304,7 @@
     unless $P100, loop117_done
     shift $P103, $P100
   loop117_redo:
-    .const 'Sub' $P105 = "15_1280467469.30058" 
+    .const 'Sub' $P105 = "15_1281989559.89232" 
     capture_lex $P105
     $P105($P103)
   loop117_next:
@@ -7334,7 +7334,7 @@
     unless $P79, loop97_done
     shift $P82, $P79
   loop97_redo:
-    .const 'Sub' $P84 = "14_1280467469.30058" 
+    .const 'Sub' $P84 = "14_1281989559.89232" 
     capture_lex $P84
     $P84($P82)
   loop97_next:
@@ -7362,7 +7362,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block104"  :anon :subid("15_1280467469.30058") :outer("13_1280467469.30058")
+.sub "_block104"  :anon :subid("15_1281989559.89232") :outer("13_1281989559.89232")
     .param pmc param_107
 .annotate 'line', 40
     new $P106, "Undef"
@@ -7394,7 +7394,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block83"  :anon :subid("14_1280467469.30058") :outer("13_1280467469.30058")
+.sub "_block83"  :anon :subid("14_1281989559.89232") :outer("13_1281989559.89232")
     .param pmc param_86
 .annotate 'line', 34
     new $P85, "Undef"
@@ -7434,7 +7434,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_1281989559.89232") :method :outer("11_1281989559.89232")
     .param pmc param_125
 .annotate 'line', 47
     new $P124, 'ExceptionHandler'
@@ -7475,7 +7475,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "language"  :subid("17_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "language"  :subid("17_1281989559.89232") :method :outer("11_1281989559.89232")
     .param pmc param_141 :optional
     .param int has_param_141 :opt_flag
 .annotate 'line', 53
@@ -7520,10 +7520,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_1281989559.89232") :method :outer("11_1281989559.89232")
     .param pmc param_156
 .annotate 'line', 61
-    .const 'Sub' $P166 = "19_1280467469.30058" 
+    .const 'Sub' $P166 = "19_1281989559.89232" 
     capture_lex $P166
     new $P155, 'ExceptionHandler'
     set_addr $P155, control_154
@@ -7550,7 +7550,7 @@
     assign $P164, 0
     store_lex "$loaded", $P164
 .annotate 'line', 64
-    .const 'Sub' $P166 = "19_1280467469.30058" 
+    .const 'Sub' $P166 = "19_1281989559.89232" 
     capture_lex $P166
     $P166()
 .annotate 'line', 65
@@ -7580,7 +7580,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block165"  :anon :subid("19_1280467469.30058") :outer("18_1280467469.30058")
+.sub "_block165"  :anon :subid("19_1281989559.89232") :outer("18_1281989559.89232")
 .annotate 'line', 64
     new $P173, 'ExceptionHandler'
     set_addr $P173, control_172
@@ -7614,11 +7614,11 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "import"  :subid("20_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "import"  :subid("20_1281989559.89232") :method :outer("11_1281989559.89232")
     .param pmc param_191
     .param pmc param_192
 .annotate 'line', 69
-    .const 'Sub' $P198 = "21_1280467469.30058" 
+    .const 'Sub' $P198 = "21_1281989559.89232" 
     capture_lex $P198
     new $P190, 'ExceptionHandler'
     set_addr $P190, control_189
@@ -7640,7 +7640,7 @@
     unless $P193, loop279_done
     shift $P196, $P193
   loop279_redo:
-    .const 'Sub' $P198 = "21_1280467469.30058" 
+    .const 'Sub' $P198 = "21_1281989559.89232" 
     capture_lex $P198
     $P198($P196)
   loop279_next:
@@ -7666,14 +7666,14 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block197"  :anon :subid("21_1280467469.30058") :outer("20_1280467469.30058")
+.sub "_block197"  :anon :subid("21_1281989559.89232") :outer("20_1281989559.89232")
     .param pmc param_201
 .annotate 'line', 70
-    .const 'Sub' $P268 = "24_1280467469.30058" 
+    .const 'Sub' $P268 = "24_1281989559.89232" 
     capture_lex $P268
-    .const 'Sub' $P248 = "23_1280467469.30058" 
+    .const 'Sub' $P248 = "23_1281989559.89232" 
     capture_lex $P248
-    .const 'Sub' $P219 = "22_1280467469.30058" 
+    .const 'Sub' $P219 = "22_1281989559.89232" 
     capture_lex $P219
 .annotate 'line', 71
     new $P199, "Undef"
@@ -7721,7 +7721,7 @@
     unless $P263, loop276_done
     shift $P266, $P263
   loop276_redo:
-    .const 'Sub' $P268 = "24_1280467469.30058" 
+    .const 'Sub' $P268 = "24_1281989559.89232" 
     capture_lex $P268
     $P268($P266)
   loop276_next:
@@ -7753,7 +7753,7 @@
     unless $P243, loop260_done
     shift $P246, $P243
   loop260_redo:
-    .const 'Sub' $P248 = "23_1280467469.30058" 
+    .const 'Sub' $P248 = "23_1281989559.89232" 
     capture_lex $P248
     $P248($P246)
   loop260_next:
@@ -7787,7 +7787,7 @@
     unless $P214, loop232_done
     shift $P217, $P214
   loop232_redo:
-    .const 'Sub' $P219 = "22_1280467469.30058" 
+    .const 'Sub' $P219 = "22_1281989559.89232" 
     capture_lex $P219
     $P219($P217)
   loop232_next:
@@ -7810,7 +7810,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block267"  :anon :subid("24_1280467469.30058") :outer("21_1280467469.30058")
+.sub "_block267"  :anon :subid("24_1281989559.89232") :outer("21_1281989559.89232")
     .param pmc param_269
 .annotate 'line', 80
     .lex "$_", param_269
@@ -7830,7 +7830,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block247"  :anon :subid("23_1280467469.30058") :outer("21_1280467469.30058")
+.sub "_block247"  :anon :subid("23_1281989559.89232") :outer("21_1281989559.89232")
     .param pmc param_249
 .annotate 'line', 77
     .lex "$_", param_249
@@ -7850,7 +7850,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block218"  :anon :subid("22_1280467469.30058") :outer("21_1280467469.30058")
+.sub "_block218"  :anon :subid("22_1281989559.89232") :outer("21_1281989559.89232")
     .param pmc param_220
 .annotate 'line', 74
     .lex "$_", param_220
@@ -7872,7 +7872,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "autoprint"  :subid("25_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "autoprint"  :subid("25_1281989559.89232") :method :outer("11_1281989559.89232")
     .param pmc param_286
 .annotate 'line', 85
     new $P285, 'ExceptionHandler'
@@ -7916,10 +7916,10 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "interactive"  :subid("26_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "interactive"  :subid("26_1281989559.89232") :method :outer("11_1281989559.89232")
     .param pmc param_301 :slurpy :named
 .annotate 'line', 90
-    .const 'Sub' $P333 = "27_1280467469.30058" 
+    .const 'Sub' $P333 = "27_1281989559.89232" 
     capture_lex $P333
     new $P300, 'ExceptionHandler'
     set_addr $P300, control_299
@@ -8006,7 +8006,7 @@
     assign $P331, 1
     unless $P331, loop443_done
   loop443_redo:
-    .const 'Sub' $P333 = "27_1280467469.30058" 
+    .const 'Sub' $P333 = "27_1281989559.89232" 
     capture_lex $P333
     $P333()
   loop443_next:
@@ -8031,9 +8031,9 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block332"  :anon :subid("27_1280467469.30058") :outer("26_1280467469.30058")
+.sub "_block332"  :anon :subid("27_1281989559.89232") :outer("26_1281989559.89232")
 .annotate 'line', 102
-    .const 'Sub' $P365 = "28_1280467469.30058" 
+    .const 'Sub' $P365 = "28_1281989559.89232" 
     capture_lex $P365
 .annotate 'line', 105
     new $P334, "Undef"
@@ -8101,7 +8101,7 @@
     set $P361, $P363
     goto if_362_end
   if_362:
-    .const 'Sub' $P365 = "28_1280467469.30058" 
+    .const 'Sub' $P365 = "28_1281989559.89232" 
     capture_lex $P365
     $P442 = $P365()
     set $P361, $P442
@@ -8113,11 +8113,11 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block364"  :anon :subid("28_1280467469.30058") :outer("27_1280467469.30058")
+.sub "_block364"  :anon :subid("28_1281989559.89232") :outer("27_1281989559.89232")
 .annotate 'line', 115
-    .const 'Sub' $P398 = "31_1280467469.30058" 
+    .const 'Sub' $P398 = "31_1281989559.89232" 
     capture_lex $P398
-    .const 'Sub' $P371 = "29_1280467469.30058" 
+    .const 'Sub' $P371 = "29_1281989559.89232" 
     capture_lex $P371
 .annotate 'line', 117
     new $P366, "Undef"
@@ -8128,7 +8128,7 @@
     store_lex "$code", $P368
     find_lex $P369, "$output"
 .annotate 'line', 118
-    .const 'Sub' $P371 = "29_1280467469.30058" 
+    .const 'Sub' $P371 = "29_1281989559.89232" 
     capture_lex $P371
     $P371()
 .annotate 'line', 125
@@ -8141,7 +8141,7 @@
   vivify_67:
     defined $I396, $P395
     unless $I396, if_394_end
-    .const 'Sub' $P398 = "31_1280467469.30058" 
+    .const 'Sub' $P398 = "31_1281989559.89232" 
     capture_lex $P398
     $P398()
   if_394_end:
@@ -8195,9 +8195,9 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block370"  :anon :subid("29_1280467469.30058") :outer("28_1280467469.30058")
+.sub "_block370"  :anon :subid("29_1281989559.89232") :outer("28_1281989559.89232")
 .annotate 'line', 118
-    .const 'Sub' $P383 = "30_1280467469.30058" 
+    .const 'Sub' $P383 = "30_1281989559.89232" 
     capture_lex $P383
     new $P379, 'ExceptionHandler'
     set_addr $P379, control_378
@@ -8217,7 +8217,7 @@
 .annotate 'line', 120
     .local pmc exception 
     .get_results (exception) 
-    .const 'Sub' $P383 = "30_1280467469.30058" 
+    .const 'Sub' $P383 = "30_1281989559.89232" 
     newclosure $P391, $P383
     $P391(exception)
     new $P392, 'Integer'
@@ -8237,7 +8237,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block382"  :anon :subid("30_1280467469.30058") :outer("29_1280467469.30058")
+.sub "_block382"  :anon :subid("30_1281989559.89232") :outer("29_1281989559.89232")
     .param pmc param_384
 .annotate 'line', 120
     .lex "$_", param_384
@@ -8260,9 +8260,9 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block397"  :anon :subid("31_1280467469.30058") :outer("28_1280467469.30058")
+.sub "_block397"  :anon :subid("31_1281989559.89232") :outer("28_1281989559.89232")
 .annotate 'line', 125
-    .const 'Sub' $P409 = "32_1280467469.30058" 
+    .const 'Sub' $P409 = "32_1281989559.89232" 
     capture_lex $P409
 .annotate 'line', 126
     get_global $P399, "$interactive_ctx"
@@ -8299,7 +8299,7 @@
     unless $P403, loop416_done
     shift $P407, $P403
   loop416_redo:
-    .const 'Sub' $P409 = "32_1280467469.30058" 
+    .const 'Sub' $P409 = "32_1281989559.89232" 
     capture_lex $P409
     $P409($P407)
   loop416_next:
@@ -8322,7 +8322,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block408"  :anon :subid("32_1280467469.30058") :outer("31_1280467469.30058")
+.sub "_block408"  :anon :subid("32_1281989559.89232") :outer("31_1281989559.89232")
     .param pmc param_410
 .annotate 'line', 128
     .lex "$_", param_410
@@ -8344,12 +8344,12 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "eval"  :subid("33_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "eval"  :subid("33_1281989559.89232") :method :outer("11_1281989559.89232")
     .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_1281989559.89232" 
     capture_lex $P471
     new $P449, 'ExceptionHandler'
     set_addr $P449, control_448
@@ -8396,7 +8396,7 @@
     set $P460, $I469
   if_461_end:
     unless $P460, if_459_end
-    .const 'Sub' $P471 = "34_1280467469.30058" 
+    .const 'Sub' $P471 = "34_1281989559.89232" 
     capture_lex $P471
     $P471()
   if_459_end:
@@ -8413,7 +8413,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block470"  :anon :subid("34_1280467469.30058") :outer("33_1280467469.30058")
+.sub "_block470"  :anon :subid("34_1281989559.89232") :outer("33_1281989559.89232")
 .annotate 'line', 152
     new $P472, "Undef"
     .lex "$outer_ctx", $P472
@@ -8467,7 +8467,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "ctxsave"  :subid("35_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "ctxsave"  :subid("35_1281989559.89232") :method :outer("11_1281989559.89232")
 .annotate 'line', 165
     new $P491, 'ExceptionHandler'
     set_addr $P491, control_490
@@ -8495,9 +8495,9 @@
 
 
 .namespace []
-.sub "_block498" :load :anon :subid("36_1280467469.30058")
+.sub "_block498" :load :anon :subid("36_1281989559.89232")
 .annotate 'line', 1
-    .const 'Sub' $P500 = "10_1280467469.30058" 
+    .const 'Sub' $P500 = "10_1281989559.89232" 
     $P501 = $P500()
     .return ($P501)
 .end

Modified: branches/substr_eq_at/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/substr_eq_at/ext/nqp-rx/src/stage0/NQP-s0.pir	Mon Aug 16 20:06:04 2010	(r48535)
+++ branches/substr_eq_at/ext/nqp-rx/src/stage0/NQP-s0.pir	Mon Aug 16 21:38:56 2010	(r48536)
@@ -15,7 +15,7 @@
 ### .include 'gen/nqp-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467477.44751")
+.sub "_block11"  :anon :subid("10_1281989574.42649")
 .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_1281989574.42649" 
     .return ($P1425)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post372") :outer("10_1280467477.44751")
+.sub "" :load :init :subid("post372") :outer("10_1281989574.42649")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467477.44751" 
+    .const 'Sub' $P12 = "10_1281989574.42649" 
     .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_1281989574.42649") :outer("10_1281989574.42649")
 .annotate 'line', 4
     get_hll_global $P1340, ["NQP";"Regex"], "_block1339" 
     capture_lex $P1340
-    .const 'Sub' $P1326 = "348_1280467477.44751" 
+    .const 'Sub' $P1326 = "348_1281989574.42649" 
     capture_lex $P1326
-    .const 'Sub' $P1320 = "346_1280467477.44751" 
+    .const 'Sub' $P1320 = "346_1281989574.42649" 
     capture_lex $P1320
-    .const 'Sub' $P1314 = "344_1280467477.44751" 
+    .const 'Sub' $P1314 = "344_1281989574.42649" 
     capture_lex $P1314
-    .const 'Sub' $P1308 = "342_1280467477.44751" 
+    .const 'Sub' $P1308 = "342_1281989574.42649" 
     capture_lex $P1308
-    .const 'Sub' $P1302 = "340_1280467477.44751" 
+    .const 'Sub' $P1302 = "340_1281989574.42649" 
     capture_lex $P1302
-    .const 'Sub' $P1296 = "338_1280467477.44751" 
+    .const 'Sub' $P1296 = "338_1281989574.42649" 
     capture_lex $P1296
-    .const 'Sub' $P1289 = "336_1280467477.44751" 
+    .const 'Sub' $P1289 = "336_1281989574.42649" 
     capture_lex $P1289
-    .const 'Sub' $P1282 = "334_1280467477.44751" 
+    .const 'Sub' $P1282 = "334_1281989574.42649" 
     capture_lex $P1282
-    .const 'Sub' $P1275 = "332_1280467477.44751" 
+    .const 'Sub' $P1275 = "332_1281989574.42649" 
     capture_lex $P1275
-    .const 'Sub' $P1268 = "330_1280467477.44751" 
+    .const 'Sub' $P1268 = "330_1281989574.42649" 
     capture_lex $P1268
-    .const 'Sub' $P1262 = "328_1280467477.44751" 
+    .const 'Sub' $P1262 = "328_1281989574.42649" 
     capture_lex $P1262
-    .const 'Sub' $P1255 = "326_1280467477.44751" 
+    .const 'Sub' $P1255 = "326_1281989574.42649" 
     capture_lex $P1255
-    .const 'Sub' $P1248 = "324_1280467477.44751" 
+    .const 'Sub' $P1248 = "324_1281989574.42649" 
     capture_lex $P1248
-    .const 'Sub' $P1241 = "322_1280467477.44751" 
+    .const 'Sub' $P1241 = "322_1281989574.42649" 
     capture_lex $P1241
-    .const 'Sub' $P1234 = "320_1280467477.44751" 
+    .const 'Sub' $P1234 = "320_1281989574.42649" 
     capture_lex $P1234
-    .const 'Sub' $P1227 = "318_1280467477.44751" 
+    .const 'Sub' $P1227 = "318_1281989574.42649" 
     capture_lex $P1227
-    .const 'Sub' $P1220 = "316_1280467477.44751" 
+    .const 'Sub' $P1220 = "316_1281989574.42649" 
     capture_lex $P1220
-    .const 'Sub' $P1213 = "314_1280467477.44751" 
+    .const 'Sub' $P1213 = "314_1281989574.42649" 
     capture_lex $P1213
-    .const 'Sub' $P1206 = "312_1280467477.44751" 
+    .const 'Sub' $P1206 = "312_1281989574.42649" 
     capture_lex $P1206
-    .const 'Sub' $P1199 = "310_1280467477.44751" 
+    .const 'Sub' $P1199 = "310_1281989574.42649" 
     capture_lex $P1199
-    .const 'Sub' $P1192 = "308_1280467477.44751" 
+    .const 'Sub' $P1192 = "308_1281989574.42649" 
     capture_lex $P1192
-    .const 'Sub' $P1185 = "306_1280467477.44751" 
+    .const 'Sub' $P1185 = "306_1281989574.42649" 
     capture_lex $P1185
-    .const 'Sub' $P1178 = "304_1280467477.44751" 
+    .const 'Sub' $P1178 = "304_1281989574.42649" 
     capture_lex $P1178
-    .const 'Sub' $P1171 = "302_1280467477.44751" 
+    .const 'Sub' $P1171 = "302_1281989574.42649" 
     capture_lex $P1171
-    .const 'Sub' $P1164 = "300_1280467477.44751" 
+    .const 'Sub' $P1164 = "300_1281989574.42649" 
     capture_lex $P1164
-    .const 'Sub' $P1157 = "298_1280467477.44751" 
+    .const 'Sub' $P1157 = "298_1281989574.42649" 
     capture_lex $P1157
-    .const 'Sub' $P1150 = "296_1280467477.44751" 
+    .const 'Sub' $P1150 = "296_1281989574.42649" 
     capture_lex $P1150
-    .const 'Sub' $P1143 = "294_1280467477.44751" 
+    .const 'Sub' $P1143 = "294_1281989574.42649" 
     capture_lex $P1143
-    .const 'Sub' $P1136 = "292_1280467477.44751" 
+    .const 'Sub' $P1136 = "292_1281989574.42649" 
     capture_lex $P1136
-    .const 'Sub' $P1129 = "290_1280467477.44751" 
+    .const 'Sub' $P1129 = "290_1281989574.42649" 
     capture_lex $P1129
-    .const 'Sub' $P1122 = "288_1280467477.44751" 
+    .const 'Sub' $P1122 = "288_1281989574.42649" 
     capture_lex $P1122
-    .const 'Sub' $P1115 = "286_1280467477.44751" 
+    .const 'Sub' $P1115 = "286_1281989574.42649" 
     capture_lex $P1115
-    .const 'Sub' $P1108 = "284_1280467477.44751" 
+    .const 'Sub' $P1108 = "284_1281989574.42649" 
     capture_lex $P1108
-    .const 'Sub' $P1101 = "282_1280467477.44751" 
+    .const 'Sub' $P1101 = "282_1281989574.42649" 
     capture_lex $P1101
-    .const 'Sub' $P1094 = "280_1280467477.44751" 
+    .const 'Sub' $P1094 = "280_1281989574.42649" 
     capture_lex $P1094
-    .const 'Sub' $P1087 = "278_1280467477.44751" 
+    .const 'Sub' $P1087 = "278_1281989574.42649" 
     capture_lex $P1087
-    .const 'Sub' $P1080 = "276_1280467477.44751" 
+    .const 'Sub' $P1080 = "276_1281989574.42649" 
     capture_lex $P1080
-    .const 'Sub' $P1073 = "274_1280467477.44751" 
+    .const 'Sub' $P1073 = "274_1281989574.42649" 
     capture_lex $P1073
-    .const 'Sub' $P1066 = "272_1280467477.44751" 
+    .const 'Sub' $P1066 = "272_1281989574.42649" 
     capture_lex $P1066
-    .const 'Sub' $P1059 = "270_1280467477.44751" 
+    .const 'Sub' $P1059 = "270_1281989574.42649" 
     capture_lex $P1059
-    .const 'Sub' $P1053 = "268_1280467477.44751" 
+    .const 'Sub' $P1053 = "268_1281989574.42649" 
     capture_lex $P1053
-    .const 'Sub' $P1046 = "266_1280467477.44751" 
+    .const 'Sub' $P1046 = "266_1281989574.42649" 
     capture_lex $P1046
-    .const 'Sub' $P1039 = "264_1280467477.44751" 
+    .const 'Sub' $P1039 = "264_1281989574.42649" 
     capture_lex $P1039
-    .const 'Sub' $P1032 = "262_1280467477.44751" 
+    .const 'Sub' $P1032 = "262_1281989574.42649" 
     capture_lex $P1032
-    .const 'Sub' $P1025 = "260_1280467477.44751" 
+    .const 'Sub' $P1025 = "260_1281989574.42649" 
     capture_lex $P1025
-    .const 'Sub' $P1018 = "258_1280467477.44751" 
+    .const 'Sub' $P1018 = "258_1281989574.42649" 
     capture_lex $P1018
-    .const 'Sub' $P1011 = "256_1280467477.44751" 
+    .const 'Sub' $P1011 = "256_1281989574.42649" 
     capture_lex $P1011
-    .const 'Sub' $P1004 = "254_1280467477.44751" 
+    .const 'Sub' $P1004 = "254_1281989574.42649" 
     capture_lex $P1004
-    .const 'Sub' $P998 = "252_1280467477.44751" 
+    .const 'Sub' $P998 = "252_1281989574.42649" 
     capture_lex $P998
-    .const 'Sub' $P992 = "250_1280467477.44751" 
+    .const 'Sub' $P992 = "250_1281989574.42649" 
     capture_lex $P992
-    .const 'Sub' $P987 = "248_1280467477.44751" 
+    .const 'Sub' $P987 = "248_1281989574.42649" 
     capture_lex $P987
-    .const 'Sub' $P981 = "246_1280467477.44751" 
+    .const 'Sub' $P981 = "246_1281989574.42649" 
     capture_lex $P981
-    .const 'Sub' $P975 = "244_1280467477.44751" 
+    .const 'Sub' $P975 = "244_1281989574.42649" 
     capture_lex $P975
-    .const 'Sub' $P970 = "242_1280467477.44751" 
+    .const 'Sub' $P970 = "242_1281989574.42649" 
     capture_lex $P970
-    .const 'Sub' $P965 = "240_1280467477.44751" 
+    .const 'Sub' $P965 = "240_1281989574.42649" 
     capture_lex $P965
-    .const 'Sub' $P957 = "238_1280467477.44751" 
+    .const 'Sub' $P957 = "238_1281989574.42649" 
     capture_lex $P957
-    .const 'Sub' $P948 = "236_1280467477.44751" 
+    .const 'Sub' $P948 = "236_1281989574.42649" 
     capture_lex $P948
-    .const 'Sub' $P943 = "234_1280467477.44751" 
+    .const 'Sub' $P943 = "234_1281989574.42649" 
     capture_lex $P943
-    .const 'Sub' $P938 = "232_1280467477.44751" 
+    .const 'Sub' $P938 = "232_1281989574.42649" 
     capture_lex $P938
-    .const 'Sub' $P933 = "230_1280467477.44751" 
+    .const 'Sub' $P933 = "230_1281989574.42649" 
     capture_lex $P933
-    .const 'Sub' $P925 = "228_1280467477.44751" 
+    .const 'Sub' $P925 = "228_1281989574.42649" 
     capture_lex $P925
-    .const 'Sub' $P917 = "226_1280467477.44751" 
+    .const 'Sub' $P917 = "226_1281989574.42649" 
     capture_lex $P917
-    .const 'Sub' $P912 = "224_1280467477.44751" 
+    .const 'Sub' $P912 = "224_1281989574.42649" 
     capture_lex $P912
-    .const 'Sub' $P907 = "222_1280467477.44751" 
+    .const 'Sub' $P907 = "222_1281989574.42649" 
     capture_lex $P907
-    .const 'Sub' $P902 = "220_1280467477.44751" 
+    .const 'Sub' $P902 = "220_1281989574.42649" 
     capture_lex $P902
-    .const 'Sub' $P896 = "218_1280467477.44751" 
+    .const 'Sub' $P896 = "218_1281989574.42649" 
     capture_lex $P896
-    .const 'Sub' $P890 = "216_1280467477.44751" 
+    .const 'Sub' $P890 = "216_1281989574.42649" 
     capture_lex $P890
-    .const 'Sub' $P884 = "214_1280467477.44751" 
+    .const 'Sub' $P884 = "214_1281989574.42649" 
     capture_lex $P884
-    .const 'Sub' $P878 = "212_1280467477.44751" 
+    .const 'Sub' $P878 = "212_1281989574.42649" 
     capture_lex $P878
-    .const 'Sub' $P872 = "210_1280467477.44751" 
+    .const 'Sub' $P872 = "210_1281989574.42649" 
     capture_lex $P872
-    .const 'Sub' $P867 = "208_1280467477.44751" 
+    .const 'Sub' $P867 = "208_1281989574.42649" 
     capture_lex $P867
-    .const 'Sub' $P862 = "206_1280467477.44751" 
+    .const 'Sub' $P862 = "206_1281989574.42649" 
     capture_lex $P862
-    .const 'Sub' $P850 = "202_1280467477.44751" 
+    .const 'Sub' $P850 = "202_1281989574.42649" 
     capture_lex $P850
-    .const 'Sub' $P842 = "200_1280467477.44751" 
+    .const 'Sub' $P842 = "200_1281989574.42649" 
     capture_lex $P842
-    .const 'Sub' $P836 = "198_1280467477.44751" 
+    .const 'Sub' $P836 = "198_1281989574.42649" 
     capture_lex $P836
-    .const 'Sub' $P829 = "196_1280467477.44751" 
+    .const 'Sub' $P829 = "196_1281989574.42649" 
     capture_lex $P829
-    .const 'Sub' $P823 = "194_1280467477.44751" 
+    .const 'Sub' $P823 = "194_1281989574.42649" 
     capture_lex $P823
-    .const 'Sub' $P815 = "192_1280467477.44751" 
+    .const 'Sub' $P815 = "192_1281989574.42649" 
     capture_lex $P815
-    .const 'Sub' $P807 = "190_1280467477.44751" 
+    .const 'Sub' $P807 = "190_1281989574.42649" 
     capture_lex $P807
-    .const 'Sub' $P801 = "188_1280467477.44751" 
+    .const 'Sub' $P801 = "188_1281989574.42649" 
     capture_lex $P801
-    .const 'Sub' $P795 = "186_1280467477.44751" 
+    .const 'Sub' $P795 = "186_1281989574.42649" 
     capture_lex $P795
-    .const 'Sub' $P781 = "182_1280467477.44751" 
+    .const 'Sub' $P781 = "182_1281989574.42649" 
     capture_lex $P781
-    .const 'Sub' $P744 = "180_1280467477.44751" 
+    .const 'Sub' $P744 = "180_1281989574.42649" 
     capture_lex $P744
-    .const 'Sub' $P735 = "178_1280467477.44751" 
+    .const 'Sub' $P735 = "178_1281989574.42649" 
     capture_lex $P735
-    .const 'Sub' $P729 = "176_1280467477.44751" 
+    .const 'Sub' $P729 = "176_1281989574.42649" 
     capture_lex $P729
-    .const 'Sub' $P719 = "174_1280467477.44751" 
+    .const 'Sub' $P719 = "174_1281989574.42649" 
     capture_lex $P719
-    .const 'Sub' $P706 = "172_1280467477.44751" 
+    .const 'Sub' $P706 = "172_1281989574.42649" 
     capture_lex $P706
-    .const 'Sub' $P699 = "170_1280467477.44751" 
+    .const 'Sub' $P699 = "170_1281989574.42649" 
     capture_lex $P699
-    .const 'Sub' $P691 = "168_1280467477.44751" 
+    .const 'Sub' $P691 = "168_1281989574.42649" 
     capture_lex $P691
-    .const 'Sub' $P681 = "166_1280467477.44751" 
+    .const 'Sub' $P681 = "166_1281989574.42649" 
     capture_lex $P681
-    .const 'Sub' $P657 = "162_1280467477.44751" 
+    .const 'Sub' $P657 = "162_1281989574.42649" 
     capture_lex $P657
-    .const 'Sub' $P634 = "160_1280467477.44751" 
+    .const 'Sub' $P634 = "160_1281989574.42649" 
     capture_lex $P634
-    .const 'Sub' $P627 = "158_1280467477.44751" 
+    .const 'Sub' $P627 = "158_1281989574.42649" 
     capture_lex $P627
-    .const 'Sub' $P620 = "156_1280467477.44751" 
+    .const 'Sub' $P620 = "156_1281989574.42649" 
     capture_lex $P620
-    .const 'Sub' $P610 = "152_1280467477.44751" 
+    .const 'Sub' $P610 = "152_1281989574.42649" 
     capture_lex $P610
-    .const 'Sub' $P602 = "150_1280467477.44751" 
+    .const 'Sub' $P602 = "150_1281989574.42649" 
     capture_lex $P602
-    .const 'Sub' $P596 = "148_1280467477.44751" 
+    .const 'Sub' $P596 = "148_1281989574.42649" 
     capture_lex $P596
-    .const 'Sub' $P583 = "146_1280467477.44751" 
+    .const 'Sub' $P583 = "146_1281989574.42649" 
     capture_lex $P583
-    .const 'Sub' $P576 = "144_1280467477.44751" 
+    .const 'Sub' $P576 = "144_1281989574.42649" 
     capture_lex $P576
-    .const 'Sub' $P569 = "142_1280467477.44751" 
+    .const 'Sub' $P569 = "142_1281989574.42649" 
     capture_lex $P569
-    .const 'Sub' $P562 = "140_1280467477.44751" 
+    .const 'Sub' $P562 = "140_1281989574.42649" 
     capture_lex $P562
-    .const 'Sub' $P535 = "136_1280467477.44751" 
+    .const 'Sub' $P535 = "136_1281989574.42649" 
     capture_lex $P535
-    .const 'Sub' $P526 = "134_1280467477.44751" 
+    .const 'Sub' $P526 = "134_1281989574.42649" 
     capture_lex $P526
-    .const 'Sub' $P519 = "132_1280467477.44751" 
+    .const 'Sub' $P519 = "132_1281989574.42649" 
     capture_lex $P519
-    .const 'Sub' $P510 = "128_1280467477.44751" 
+    .const 'Sub' $P510 = "128_1281989574.42649" 
     capture_lex $P510
-    .const 'Sub' $P505 = "126_1280467477.44751" 
+    .const 'Sub' $P505 = "126_1281989574.42649" 
     capture_lex $P505
-    .const 'Sub' $P493 = "124_1280467477.44751" 
+    .const 'Sub' $P493 = "124_1281989574.42649" 
     capture_lex $P493
-    .const 'Sub' $P481 = "122_1280467477.44751" 
+    .const 'Sub' $P481 = "122_1281989574.42649" 
     capture_lex $P481
-    .const 'Sub' $P474 = "120_1280467477.44751" 
+    .const 'Sub' $P474 = "120_1281989574.42649" 
     capture_lex $P474
-    .const 'Sub' $P469 = "118_1280467477.44751" 
+    .const 'Sub' $P469 = "118_1281989574.42649" 
     capture_lex $P469
-    .const 'Sub' $P463 = "116_1280467477.44751" 
+    .const 'Sub' $P463 = "116_1281989574.42649" 
     capture_lex $P463
-    .const 'Sub' $P457 = "114_1280467477.44751" 
+    .const 'Sub' $P457 = "114_1281989574.42649" 
     capture_lex $P457
-    .const 'Sub' $P447 = "111_1280467477.44751" 
+    .const 'Sub' $P447 = "111_1281989574.42649" 
     capture_lex $P447
-    .const 'Sub' $P441 = "109_1280467477.44751" 
+    .const 'Sub' $P441 = "109_1281989574.42649" 
     capture_lex $P441
-    .const 'Sub' $P435 = "107_1280467477.44751" 
+    .const 'Sub' $P435 = "107_1281989574.42649" 
     capture_lex $P435
-    .const 'Sub' $P429 = "105_1280467477.44751" 
+    .const 'Sub' $P429 = "105_1281989574.42649" 
     capture_lex $P429
-    .const 'Sub' $P423 = "103_1280467477.44751" 
+    .const 'Sub' $P423 = "103_1281989574.42649" 
     capture_lex $P423
-    .const 'Sub' $P417 = "101_1280467477.44751" 
+    .const 'Sub' $P417 = "101_1281989574.42649" 
     capture_lex $P417
-    .const 'Sub' $P411 = "99_1280467477.44751" 
+    .const 'Sub' $P411 = "99_1281989574.42649" 
     capture_lex $P411
-    .const 'Sub' $P402 = "97_1280467477.44751" 
+    .const 'Sub' $P402 = "97_1281989574.42649" 
     capture_lex $P402
-    .const 'Sub' $P393 = "95_1280467477.44751" 
+    .const 'Sub' $P393 = "95_1281989574.42649" 
     capture_lex $P393
-    .const 'Sub' $P384 = "93_1280467477.44751" 
+    .const 'Sub' $P384 = "93_1281989574.42649" 
     capture_lex $P384
-    .const 'Sub' $P371 = "89_1280467477.44751" 
+    .const 'Sub' $P371 = "89_1281989574.42649" 
     capture_lex $P371
-    .const 'Sub' $P362 = "87_1280467477.44751" 
+    .const 'Sub' $P362 = "87_1281989574.42649" 
     capture_lex $P362
-    .const 'Sub' $P352 = "83_1280467477.44751" 
+    .const 'Sub' $P352 = "83_1281989574.42649" 
     capture_lex $P352
-    .const 'Sub' $P345 = "81_1280467477.44751" 
+    .const 'Sub' $P345 = "81_1281989574.42649" 
     capture_lex $P345
-    .const 'Sub' $P338 = "79_1280467477.44751" 
+    .const 'Sub' $P338 = "79_1281989574.42649" 
     capture_lex $P338
-    .const 'Sub' $P326 = "75_1280467477.44751" 
+    .const 'Sub' $P326 = "75_1281989574.42649" 
     capture_lex $P326
-    .const 'Sub' $P318 = "73_1280467477.44751" 
+    .const 'Sub' $P318 = "73_1281989574.42649" 
     capture_lex $P318
-    .const 'Sub' $P310 = "71_1280467477.44751" 
+    .const 'Sub' $P310 = "71_1281989574.42649" 
     capture_lex $P310
-    .const 'Sub' $P290 = "69_1280467477.44751" 
+    .const 'Sub' $P290 = "69_1281989574.42649" 
     capture_lex $P290
-    .const 'Sub' $P281 = "67_1280467477.44751" 
+    .const 'Sub' $P281 = "67_1281989574.42649" 
     capture_lex $P281
-    .const 'Sub' $P263 = "64_1280467477.44751" 
+    .const 'Sub' $P263 = "64_1281989574.42649" 
     capture_lex $P263
-    .const 'Sub' $P245 = "62_1280467477.44751" 
+    .const 'Sub' $P245 = "62_1281989574.42649" 
     capture_lex $P245
-    .const 'Sub' $P236 = "58_1280467477.44751" 
+    .const 'Sub' $P236 = "58_1281989574.42649" 
     capture_lex $P236
-    .const 'Sub' $P231 = "56_1280467477.44751" 
+    .const 'Sub' $P231 = "56_1281989574.42649" 
     capture_lex $P231
-    .const 'Sub' $P222 = "52_1280467477.44751" 
+    .const 'Sub' $P222 = "52_1281989574.42649" 
     capture_lex $P222
-    .const 'Sub' $P217 = "50_1280467477.44751" 
+    .const 'Sub' $P217 = "50_1281989574.42649" 
     capture_lex $P217
-    .const 'Sub' $P212 = "48_1280467477.44751" 
+    .const 'Sub' $P212 = "48_1281989574.42649" 
     capture_lex $P212
-    .const 'Sub' $P203 = "46_1280467477.44751" 
+    .const 'Sub' $P203 = "46_1281989574.42649" 
     capture_lex $P203
-    .const 'Sub' $P196 = "44_1280467477.44751" 
+    .const 'Sub' $P196 = "44_1281989574.42649" 
     capture_lex $P196
-    .const 'Sub' $P190 = "42_1280467477.44751" 
+    .const 'Sub' $P190 = "42_1281989574.42649" 
     capture_lex $P190
-    .const 'Sub' $P182 = "40_1280467477.44751" 
+    .const 'Sub' $P182 = "40_1281989574.42649" 
     capture_lex $P182
-    .const 'Sub' $P176 = "38_1280467477.44751" 
+    .const 'Sub' $P176 = "38_1281989574.42649" 
     capture_lex $P176
-    .const 'Sub' $P170 = "36_1280467477.44751" 
+    .const 'Sub' $P170 = "36_1281989574.42649" 
     capture_lex $P170
-    .const 'Sub' $P155 = "33_1280467477.44751" 
+    .const 'Sub' $P155 = "33_1281989574.42649" 
     capture_lex $P155
-    .const 'Sub' $P141 = "31_1280467477.44751" 
+    .const 'Sub' $P141 = "31_1281989574.42649" 
     capture_lex $P141
-    .const 'Sub' $P134 = "29_1280467477.44751" 
+    .const 'Sub' $P134 = "29_1281989574.42649" 
     capture_lex $P134
-    .const 'Sub' $P95 = "26_1280467477.44751" 
+    .const 'Sub' $P95 = "26_1281989574.42649" 
     capture_lex $P95
-    .const 'Sub' $P80 = "23_1280467477.44751" 
+    .const 'Sub' $P80 = "23_1281989574.42649" 
     capture_lex $P80
-    .const 'Sub' $P69 = "21_1280467477.44751" 
+    .const 'Sub' $P69 = "21_1281989574.42649" 
     capture_lex $P69
-    .const 'Sub' $P57 = "19_1280467477.44751" 
+    .const 'Sub' $P57 = "19_1281989574.42649" 
     capture_lex $P57
-    .const 'Sub' $P49 = "17_1280467477.44751" 
+    .const 'Sub' $P49 = "17_1281989574.42649" 
     capture_lex $P49
-    .const 'Sub' $P42 = "15_1280467477.44751" 
+    .const 'Sub' $P42 = "15_1281989574.42649" 
     capture_lex $P42
-    .const 'Sub' $P35 = "13_1280467477.44751" 
+    .const 'Sub' $P35 = "13_1281989574.42649" 
     capture_lex $P35
-    .const 'Sub' $P15 = "12_1280467477.44751" 
+    .const 'Sub' $P15 = "12_1281989574.42649" 
     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_1281989574.42649" 
     .return ($P1404)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post373") :outer("11_1280467477.44751")
+.sub "" :load :init :subid("post373") :outer("11_1281989574.42649")
 .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_1281989574.42649") :method :outer("11_1281989574.42649")
 .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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx36_tgt
     .local int rx36_pos
@@ -613,7 +613,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("14_1280467477.44751") :method
+.sub "!PREFIX__identifier"  :subid("14_1281989574.42649") :method
 .annotate 'line', 4
     $P38 = self."!PREFIX__!subrule"("ident", "")
     new $P39, "ResizablePMCArray"
@@ -623,7 +623,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "name"  :subid("15_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "name"  :subid("15_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx43_tgt
     .local int rx43_pos
@@ -683,8 +683,8 @@
     add $I11, rx43_pos, 2
     gt $I11, rx43_eos, rx43_fail
     sub $I11, rx43_pos, rx43_off
-    substr $S10, rx43_tgt, $I11, 2
-    ne $S10, "::", rx43_fail
+    cmp_str_at $I11, rx43_tgt, "::", $I11, 2
+    ne $I11, 0, rx43_fail
     add rx43_pos, 2
     goto rxquantr47_loop
   rxquantr47_done:
@@ -709,7 +709,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name"  :subid("16_1280467477.44751") :method
+.sub "!PREFIX__name"  :subid("16_1281989574.42649") :method
 .annotate 'line', 4
     new $P45, "ResizablePMCArray"
     push $P45, ""
@@ -718,7 +718,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "deflongname"  :subid("17_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "deflongname"  :subid("17_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx50_tgt
     .local int rx50_pos
@@ -802,7 +802,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname"  :subid("18_1280467477.44751") :method
+.sub "!PREFIX__deflongname"  :subid("18_1281989574.42649") :method
 .annotate 'line', 4
     $P52 = self."!PREFIX__!subrule"("identifier", "")
     new $P53, "ResizablePMCArray"
@@ -812,7 +812,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ENDSTMT"  :subid("19_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "ENDSTMT"  :subid("19_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx58_tgt
     .local int rx58_pos
@@ -959,7 +959,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT"  :subid("20_1280467477.44751") :method
+.sub "!PREFIX__ENDSTMT"  :subid("20_1281989574.42649") :method
 .annotate 'line', 4
     new $P60, "ResizablePMCArray"
     push $P60, ""
@@ -968,7 +968,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ws"  :subid("21_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "ws"  :subid("21_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx70_tgt
     .local int rx70_pos
@@ -1052,8 +1052,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
@@ -1133,7 +1133,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws"  :subid("22_1280467477.44751") :method
+.sub "!PREFIX__ws"  :subid("22_1281989574.42649") :method
 .annotate 'line', 4
     new $P72, "ResizablePMCArray"
     push $P72, ""
@@ -1143,9 +1143,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "unv"  :subid("23_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "unv"  :subid("23_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
-    .const 'Sub' $P88 = "25_1280467477.44751" 
+    .const 'Sub' $P88 = "25_1281989574.42649" 
     capture_lex $P88
     .local string rx81_tgt
     .local int rx81_pos
@@ -1193,7 +1193,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_1281989574.42649" 
     capture_lex $P88
     $P10 = rx81_cur."before"($P88)
     unless $P10, rx81_fail
@@ -1228,8 +1228,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
@@ -1278,7 +1278,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv"  :subid("24_1280467477.44751") :method
+.sub "!PREFIX__unv"  :subid("24_1281989574.42649") :method
 .annotate 'line', 4
     new $P83, "ResizablePMCArray"
     push $P83, ""
@@ -1289,7 +1289,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block87"  :anon :subid("25_1280467477.44751") :method :outer("23_1280467477.44751")
+.sub "_block87"  :anon :subid("25_1281989574.42649") :method :outer("23_1281989574.42649")
 .annotate 'line', 46
     .local string rx89_tgt
     .local int rx89_pos
@@ -1343,8 +1343,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,8 +1361,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, 92, rx89_fail
     add rx89_pos, 1
   alt92_end:
   # rx pass
@@ -1385,9 +1385,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pod_comment"  :subid("26_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "pod_comment"  :subid("26_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
-    .const 'Sub' $P127 = "28_1280467477.44751" 
+    .const 'Sub' $P127 = "28_1281989574.42649" 
     capture_lex $P127
     .local string rx96_tgt
     .local int rx96_pos
@@ -1450,8 +1450,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
@@ -1462,8 +1462,8 @@
     add $I11, rx96_pos, 5
     gt $I11, rx96_eos, rx96_fail
     sub $I11, rx96_pos, rx96_off
-    substr $S10, rx96_tgt, $I11, 5
-    ne $S10, "begin", rx96_fail
+    cmp_str_at $I11, rx96_tgt, "begin", $I11, 5
+    ne $I11, 0, rx96_fail
     add rx96_pos, 5
   # rx rxquantr103 ** 1..*
     set_addr $I10, rxquantr103_done
@@ -1486,8 +1486,8 @@
     add $I11, rx96_pos, 3
     gt $I11, rx96_eos, rx96_fail
     sub $I11, rx96_pos, rx96_off
-    substr $S10, rx96_tgt, $I11, 3
-    ne $S10, "END", rx96_fail
+    cmp_str_at $I11, rx96_tgt, "END", $I11, 3
+    ne $I11, 0, rx96_fail
     add rx96_pos, 3
   # rxanchor rwb
     le rx96_pos, 0, rx96_fail
@@ -1542,8 +1542,8 @@
     add $I11, rx96_pos, 4
     gt $I11, rx96_eos, rx96_fail
     sub $I11, rx96_pos, rx96_off
-    substr $S10, rx96_tgt, $I11, 4
-    ne $S10, "=end", rx96_fail
+    cmp_str_at $I11, rx96_tgt, "=end", $I11, 4
+    ne $I11, 0, rx96_fail
     add rx96_pos, 4
   # rx rxquantr108 ** 1..*
     set_addr $I10, rxquantr108_done
@@ -1566,8 +1566,8 @@
     add $I11, rx96_pos, 3
     gt $I11, rx96_eos, rx96_fail
     sub $I11, rx96_pos, rx96_off
-    substr $S10, rx96_tgt, $I11, 3
-    ne $S10, "END", rx96_fail
+    cmp_str_at $I11, rx96_tgt, "END", $I11, 3
+    ne $I11, 0, rx96_fail
     add rx96_pos, 3
   # rxanchor rwb
     le rx96_pos, 0, rx96_fail
@@ -1598,8 +1598,8 @@
     add $I11, rx96_pos, 5
     gt $I11, rx96_eos, rx96_fail
     sub $I11, rx96_pos, rx96_off
-    substr $S10, rx96_tgt, $I11, 5
-    ne $S10, "begin", rx96_fail
+    cmp_str_at $I11, rx96_tgt, "begin", $I11, 5
+    ne $I11, 0, rx96_fail
     add rx96_pos, 5
   # rx rxquantr109 ** 1..*
     set_addr $I10, rxquantr109_done
@@ -1671,8 +1671,8 @@
     add $I11, rx96_pos, 4
     gt $I11, rx96_eos, rx96_fail
     sub $I11, rx96_pos, rx96_off
-    substr $S10, rx96_tgt, $I11, 4
-    ne $S10, "=end", rx96_fail
+    cmp_str_at $I11, rx96_tgt, "=end", $I11, 4
+    ne $I11, 0, rx96_fail
     add rx96_pos, 4
   # rx rxquantr114 ** 1..*
     set_addr $I10, rxquantr114_done
@@ -1727,8 +1727,8 @@
     add $I11, rx96_pos, 5
     gt $I11, rx96_eos, rx96_fail
     sub $I11, rx96_pos, rx96_off
-    substr $S10, rx96_tgt, $I11, 5
-    ne $S10, "begin", rx96_fail
+    cmp_str_at $I11, rx96_tgt, "begin", $I11, 5
+    ne $I11, 0, rx96_fail
     add rx96_pos, 5
   # rxanchor rwb
     le rx96_pos, 0, rx96_fail
@@ -1777,8 +1777,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:
@@ -1834,8 +1834,8 @@
     add $I11, rx96_pos, 4
     gt $I11, rx96_eos, rx96_fail
     sub $I11, rx96_pos, rx96_off
-    substr $S10, rx96_tgt, $I11, 4
-    ne $S10, "=end", rx96_fail
+    cmp_str_at $I11, rx96_tgt, "=end", $I11, 4
+    ne $I11, 0, rx96_fail
     add rx96_pos, 4
   # rxanchor rwb
     le rx96_pos, 0, rx96_fail
@@ -1893,7 +1893,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_1281989574.42649" 
     capture_lex $P127
     $P10 = rx96_cur."before"($P127)
     unless $P10, rx96_fail
@@ -1946,7 +1946,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment"  :subid("27_1280467477.44751") :method
+.sub "!PREFIX__pod_comment"  :subid("27_1281989574.42649") :method
 .annotate 'line', 4
     new $P98, "ResizablePMCArray"
     push $P98, ""
@@ -1955,7 +1955,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block126"  :anon :subid("28_1280467477.44751") :method :outer("26_1280467477.44751")
+.sub "_block126"  :anon :subid("28_1281989574.42649") :method :outer("26_1281989574.42649")
 .annotate 'line', 69
     .local string rx128_tgt
     .local int rx128_pos
@@ -2013,8 +2013,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
@@ -2026,8 +2026,8 @@
     add $I11, rx128_pos, 3
     gt $I11, rx128_eos, rx128_fail
     sub $I11, rx128_pos, rx128_off
-    substr $S10, rx128_tgt, $I11, 3
-    ne $S10, "cut", rx128_fail
+    cmp_str_at $I11, rx128_tgt, "cut", $I11, 3
+    ne $I11, 0, rx128_fail
     add rx128_pos, 3
   # rxanchor rwb
     le rx128_pos, 0, rx128_fail
@@ -2081,7 +2081,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "comp_unit"  :subid("29_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "comp_unit"  :subid("29_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx135_tgt
     .local int rx135_pos
@@ -2170,7 +2170,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit"  :subid("30_1280467477.44751") :method
+.sub "!PREFIX__comp_unit"  :subid("30_1281989574.42649") :method
 .annotate 'line', 4
     $P137 = self."!PREFIX__!subrule"("newpad", "")
     new $P138, "ResizablePMCArray"
@@ -2180,7 +2180,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statementlist"  :subid("31_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statementlist"  :subid("31_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx142_tgt
     .local int rx142_pos
@@ -2294,7 +2294,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist"  :subid("32_1280467477.44751") :method
+.sub "!PREFIX__statementlist"  :subid("32_1281989574.42649") :method
 .annotate 'line', 4
     $P144 = self."!PREFIX__!subrule"("ws", "")
     $P145 = self."!PREFIX__!subrule"("ws", "")
@@ -2306,9 +2306,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement"  :subid("33_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement"  :subid("33_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
-    .const 'Sub' $P161 = "35_1280467477.44751" 
+    .const 'Sub' $P161 = "35_1281989574.42649" 
     capture_lex $P161
     .local string rx156_tgt
     .local int rx156_pos
@@ -2317,7 +2317,7 @@
     .local int rx156_rep
     .local pmc rx156_cur
     (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")
     .lex unicode:"$\x{a2}", rx156_cur
     .local pmc match
     .lex "$/", match
@@ -2345,7 +2345,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_1281989574.42649" 
     capture_lex $P161
     $P10 = rx156_cur."before"($P161)
     if $P10, rx156_fail
@@ -2460,7 +2460,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement"  :subid("34_1280467477.44751") :method
+.sub "!PREFIX__statement"  :subid("34_1281989574.42649") :method
 .annotate 'line', 4
     new $P158, "ResizablePMCArray"
     push $P158, ""
@@ -2469,7 +2469,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block160"  :anon :subid("35_1280467477.44751") :method :outer("33_1280467477.44751")
+.sub "_block160"  :anon :subid("35_1281989574.42649") :method :outer("33_1281989574.42649")
 .annotate 'line', 96
     .local string rx162_tgt
     .local int rx162_pos
@@ -2537,7 +2537,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "eat_terminator"  :subid("36_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "eat_terminator"  :subid("36_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx171_tgt
     .local int rx171_pos
@@ -2579,8 +2579,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:
@@ -2628,7 +2628,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator"  :subid("37_1280467477.44751") :method
+.sub "!PREFIX__eat_terminator"  :subid("37_1281989574.42649") :method
 .annotate 'line', 4
     new $P173, "ResizablePMCArray"
     push $P173, ""
@@ -2640,7 +2640,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "xblock"  :subid("38_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "xblock"  :subid("38_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx177_tgt
     .local int rx177_pos
@@ -2715,7 +2715,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__xblock"  :subid("39_1280467477.44751") :method
+.sub "!PREFIX__xblock"  :subid("39_1281989574.42649") :method
 .annotate 'line', 4
     $P179 = self."!PREFIX__!subrule"("EXPR", "")
     new $P180, "ResizablePMCArray"
@@ -2725,7 +2725,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pblock"  :subid("40_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "pblock"  :subid("40_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx183_tgt
     .local int rx183_pos
@@ -2848,7 +2848,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock"  :subid("41_1280467477.44751") :method
+.sub "!PREFIX__pblock"  :subid("41_1281989574.42649") :method
 .annotate 'line', 4
     $P185 = self."!PREFIX__!subrule"("panic", "")
     $P186 = self."!PREFIX__!subrule"("lambda", "")
@@ -2861,7 +2861,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "lambda"  :subid("42_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "lambda"  :subid("42_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx191_tgt
     .local int rx191_pos
@@ -2902,8 +2902,8 @@
     add $I11, rx191_pos, 2
     gt $I11, rx191_eos, rx191_fail
     sub $I11, rx191_pos, rx191_off
-    substr $S10, rx191_tgt, $I11, 2
-    ne $S10, "->", rx191_fail
+    cmp_str_at $I11, rx191_tgt, "->", $I11, 2
+    ne $I11, 0, rx191_fail
     add rx191_pos, 2
     goto alt195_end
   alt195_1:
@@ -2911,8 +2911,8 @@
     add $I11, rx191_pos, 3
     gt $I11, rx191_eos, rx191_fail
     sub $I11, rx191_pos, rx191_off
-    substr $S10, rx191_tgt, $I11, 3
-    ne $S10, "<->", rx191_fail
+    cmp_str_at $I11, rx191_tgt, "<->", $I11, 3
+    ne $I11, 0, rx191_fail
     add rx191_pos, 3
   alt195_end:
   # rx pass
@@ -2936,7 +2936,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda"  :subid("43_1280467477.44751") :method
+.sub "!PREFIX__lambda"  :subid("43_1281989574.42649") :method
 .annotate 'line', 4
     new $P193, "ResizablePMCArray"
     push $P193, "<->"
@@ -2946,7 +2946,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "block"  :subid("44_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "block"  :subid("44_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx197_tgt
     .local int rx197_pos
@@ -3033,7 +3033,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block"  :subid("45_1280467477.44751") :method
+.sub "!PREFIX__block"  :subid("45_1281989574.42649") :method
 .annotate 'line', 4
     $P199 = self."!PREFIX__!subrule"("panic", "")
     new $P200, "ResizablePMCArray"
@@ -3044,7 +3044,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blockoid"  :subid("46_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "blockoid"  :subid("46_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx204_tgt
     .local int rx204_pos
@@ -3088,8 +3088,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 +3105,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:
@@ -3150,7 +3150,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid"  :subid("47_1280467477.44751") :method
+.sub "!PREFIX__blockoid"  :subid("47_1281989574.42649") :method
 .annotate 'line', 4
     $P206 = self."!PREFIX__!subrule"("finishpad", "")
     new $P207, "ResizablePMCArray"
@@ -3160,7 +3160,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "newpad"  :subid("48_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "newpad"  :subid("48_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx213_tgt
     .local int rx213_pos
@@ -3215,7 +3215,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad"  :subid("49_1280467477.44751") :method
+.sub "!PREFIX__newpad"  :subid("49_1281989574.42649") :method
 .annotate 'line', 4
     new $P215, "ResizablePMCArray"
     push $P215, ""
@@ -3224,7 +3224,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "outerctx"  :subid("50_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "outerctx"  :subid("50_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx218_tgt
     .local int rx218_pos
@@ -3279,7 +3279,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__outerctx"  :subid("51_1280467477.44751") :method
+.sub "!PREFIX__outerctx"  :subid("51_1281989574.42649") :method
 .annotate 'line', 4
     new $P220, "ResizablePMCArray"
     push $P220, ""
@@ -3288,7 +3288,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "finishpad"  :subid("52_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "finishpad"  :subid("52_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx223_tgt
     .local int rx223_pos
@@ -3343,7 +3343,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad"  :subid("53_1280467477.44751") :method
+.sub "!PREFIX__finishpad"  :subid("53_1281989574.42649") :method
 .annotate 'line', 4
     new $P225, "ResizablePMCArray"
     push $P225, ""
@@ -3352,7 +3352,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator"  :subid("54_1280467477.44751") :method
+.sub "terminator"  :subid("54_1281989574.42649") :method
 .annotate 'line', 148
     $P228 = self."!protoregex"("terminator")
     .return ($P228)
@@ -3360,7 +3360,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator"  :subid("55_1280467477.44751") :method
+.sub "!PREFIX__terminator"  :subid("55_1281989574.42649") :method
 .annotate 'line', 148
     $P230 = self."!PREFIX__!protoregex"("terminator")
     .return ($P230)
@@ -3368,7 +3368,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>"  :subid("56_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "terminator:sym<;>"  :subid("56_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx232_tgt
     .local int rx232_pos
@@ -3429,7 +3429,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>"  :subid("57_1280467477.44751") :method
+.sub "!PREFIX__terminator:sym<;>"  :subid("57_1281989574.42649") :method
 .annotate 'line', 4
     new $P234, "ResizablePMCArray"
     push $P234, ";"
@@ -3438,7 +3438,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>"  :subid("58_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "terminator:sym<}>"  :subid("58_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx237_tgt
     .local int rx237_pos
@@ -3499,7 +3499,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>"  :subid("59_1280467477.44751") :method
+.sub "!PREFIX__terminator:sym<}>"  :subid("59_1281989574.42649") :method
 .annotate 'line', 4
     new $P239, "ResizablePMCArray"
     push $P239, "}"
@@ -3508,7 +3508,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control"  :subid("60_1280467477.44751") :method
+.sub "statement_control"  :subid("60_1281989574.42649") :method
 .annotate 'line', 155
     $P242 = self."!protoregex"("statement_control")
     .return ($P242)
@@ -3516,7 +3516,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control"  :subid("61_1280467477.44751") :method
+.sub "!PREFIX__statement_control"  :subid("61_1281989574.42649") :method
 .annotate 'line', 155
     $P244 = self."!PREFIX__!protoregex"("statement_control")
     .return ($P244)
@@ -3524,7 +3524,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx246_tgt
     .local int rx246_pos
@@ -3533,7 +3533,7 @@
     .local int rx246_rep
     .local pmc rx246_cur
     (rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"()
-    rx246_cur."!cursor_caparray"("xblock", "else")
+    rx246_cur."!cursor_caparray"("else", "xblock")
     .lex unicode:"$\x{a2}", rx246_cur
     .local pmc match
     .lex "$/", match
@@ -3566,8 +3566,8 @@
     add $I11, rx246_pos, 2
     gt $I11, rx246_eos, rx246_fail
     sub $I11, rx246_pos, rx246_off
-    substr $S10, rx246_tgt, $I11, 2
-    ne $S10, "if", rx246_fail
+    cmp_str_at $I11, rx246_tgt, "if", $I11, 2
+    ne $I11, 0, rx246_fail
     add rx246_pos, 2
     set_addr $I10, rxcap_250_fail
     ($I12, $I11) = rx246_cur."!mark_peek"($I10)
@@ -3618,8 +3618,8 @@
     add $I11, rx246_pos, 5
     gt $I11, rx246_eos, rx246_fail
     sub $I11, rx246_pos, rx246_off
-    substr $S10, rx246_tgt, $I11, 5
-    ne $S10, "elsif", rx246_fail
+    cmp_str_at $I11, rx246_tgt, "elsif", $I11, 5
+    ne $I11, 0, rx246_fail
     add rx246_pos, 5
   # rx charclass s
     ge rx246_pos, rx246_eos, rx246_fail
@@ -3669,8 +3669,8 @@
     add $I11, rx246_pos, 4
     gt $I11, rx246_eos, rx246_fail
     sub $I11, rx246_pos, rx246_off
-    substr $S10, rx246_tgt, $I11, 4
-    ne $S10, "else", rx246_fail
+    cmp_str_at $I11, rx246_tgt, "else", $I11, 4
+    ne $I11, 0, rx246_fail
     add rx246_pos, 4
   # rx charclass s
     ge rx246_pos, rx246_eos, rx246_fail
@@ -3725,7 +3725,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>"  :subid("63_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<if>"  :subid("63_1281989574.42649") :method
 .annotate 'line', 4
     new $P248, "ResizablePMCArray"
     push $P248, "if"
@@ -3734,9 +3734,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
-    .const 'Sub' $P274 = "66_1280467477.44751" 
+    .const 'Sub' $P274 = "66_1281989574.42649" 
     capture_lex $P274
     .local string rx264_tgt
     .local int rx264_pos
@@ -3777,8 +3777,8 @@
     add $I11, rx264_pos, 6
     gt $I11, rx264_eos, rx264_fail
     sub $I11, rx264_pos, rx264_off
-    substr $S10, rx264_tgt, $I11, 6
-    ne $S10, "unless", rx264_fail
+    cmp_str_at $I11, rx264_tgt, "unless", $I11, 6
+    ne $I11, 0, rx264_fail
     add rx264_pos, 6
     set_addr $I10, rxcap_268_fail
     ($I12, $I11) = rx264_cur."!mark_peek"($I10)
@@ -3826,7 +3826,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_1281989574.42649" 
     capture_lex $P274
     $P10 = rx264_cur."before"($P274)
     if $P10, rx264_fail
@@ -3880,7 +3880,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>"  :subid("65_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<unless>"  :subid("65_1281989574.42649") :method
 .annotate 'line', 4
     new $P266, "ResizablePMCArray"
     push $P266, "unless"
@@ -3889,7 +3889,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block273"  :anon :subid("66_1280467477.44751") :method :outer("64_1280467477.44751")
+.sub "_block273"  :anon :subid("66_1281989574.42649") :method :outer("64_1281989574.42649")
 .annotate 'line', 167
     .local string rx275_tgt
     .local int rx275_pos
@@ -3926,8 +3926,8 @@
     add $I11, rx275_pos, 4
     gt $I11, rx275_eos, rx275_fail
     sub $I11, rx275_pos, rx275_off
-    substr $S10, rx275_tgt, $I11, 4
-    ne $S10, "else", rx275_fail
+    cmp_str_at $I11, rx275_tgt, "else", $I11, 4
+    ne $I11, 0, rx275_fail
     add rx275_pos, 4
   # rx pass
     rx275_cur."!cursor_pass"(rx275_pos, "")
@@ -3949,7 +3949,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>"  :subid("67_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<while>"  :subid("67_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx282_tgt
     .local int rx282_pos
@@ -3993,8 +3993,8 @@
     add $I11, rx282_pos, 5
     gt $I11, rx282_eos, rx282_fail
     sub $I11, rx282_pos, rx282_off
-    substr $S10, rx282_tgt, $I11, 5
-    ne $S10, "while", rx282_fail
+    cmp_str_at $I11, rx282_tgt, "while", $I11, 5
+    ne $I11, 0, rx282_fail
     add rx282_pos, 5
     goto alt286_end
   alt286_1:
@@ -4002,8 +4002,8 @@
     add $I11, rx282_pos, 5
     gt $I11, rx282_eos, rx282_fail
     sub $I11, rx282_pos, rx282_off
-    substr $S10, rx282_tgt, $I11, 5
-    ne $S10, "until", rx282_fail
+    cmp_str_at $I11, rx282_tgt, "until", $I11, 5
+    ne $I11, 0, rx282_fail
     add rx282_pos, 5
   alt286_end:
     set_addr $I10, rxcap_287_fail
@@ -4063,7 +4063,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>"  :subid("68_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<while>"  :subid("68_1281989574.42649") :method
 .annotate 'line', 4
     new $P284, "ResizablePMCArray"
     push $P284, "until"
@@ -4073,7 +4073,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx291_tgt
     .local int rx291_pos
@@ -4114,8 +4114,8 @@
     add $I11, rx291_pos, 6
     gt $I11, rx291_eos, rx291_fail
     sub $I11, rx291_pos, rx291_off
-    substr $S10, rx291_tgt, $I11, 6
-    ne $S10, "repeat", rx291_fail
+    cmp_str_at $I11, rx291_tgt, "repeat", $I11, 6
+    ne $I11, 0, rx291_fail
     add rx291_pos, 6
     set_addr $I10, rxcap_295_fail
     ($I12, $I11) = rx291_cur."!mark_peek"($I10)
@@ -4159,8 +4159,8 @@
     add $I11, rx291_pos, 5
     gt $I11, rx291_eos, rx291_fail
     sub $I11, rx291_pos, rx291_off
-    substr $S10, rx291_tgt, $I11, 5
-    ne $S10, "while", rx291_fail
+    cmp_str_at $I11, rx291_tgt, "while", $I11, 5
+    ne $I11, 0, rx291_fail
     add rx291_pos, 5
     goto alt299_end
   alt299_1:
@@ -4168,8 +4168,8 @@
     add $I11, rx291_pos, 5
     gt $I11, rx291_eos, rx291_fail
     sub $I11, rx291_pos, rx291_off
-    substr $S10, rx291_tgt, $I11, 5
-    ne $S10, "until", rx291_fail
+    cmp_str_at $I11, rx291_tgt, "until", $I11, 5
+    ne $I11, 0, rx291_fail
     add rx291_pos, 5
   alt299_end:
     set_addr $I10, rxcap_300_fail
@@ -4236,8 +4236,8 @@
     add $I11, rx291_pos, 5
     gt $I11, rx291_eos, rx291_fail
     sub $I11, rx291_pos, rx291_off
-    substr $S10, rx291_tgt, $I11, 5
-    ne $S10, "while", rx291_fail
+    cmp_str_at $I11, rx291_tgt, "while", $I11, 5
+    ne $I11, 0, rx291_fail
     add rx291_pos, 5
     goto alt305_end
   alt305_1:
@@ -4245,8 +4245,8 @@
     add $I11, rx291_pos, 5
     gt $I11, rx291_eos, rx291_fail
     sub $I11, rx291_pos, rx291_off
-    substr $S10, rx291_tgt, $I11, 5
-    ne $S10, "until", rx291_fail
+    cmp_str_at $I11, rx291_tgt, "until", $I11, 5
+    ne $I11, 0, rx291_fail
     add rx291_pos, 5
   alt305_end:
     set_addr $I10, rxcap_306_fail
@@ -4312,7 +4312,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>"  :subid("70_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<repeat>"  :subid("70_1281989574.42649") :method
 .annotate 'line', 4
     new $P293, "ResizablePMCArray"
     push $P293, "repeat"
@@ -4321,7 +4321,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx311_tgt
     .local int rx311_pos
@@ -4362,8 +4362,8 @@
     add $I11, rx311_pos, 3
     gt $I11, rx311_eos, rx311_fail
     sub $I11, rx311_pos, rx311_off
-    substr $S10, rx311_tgt, $I11, 3
-    ne $S10, "for", rx311_fail
+    cmp_str_at $I11, rx311_tgt, "for", $I11, 3
+    ne $I11, 0, rx311_fail
     add rx311_pos, 3
     set_addr $I10, rxcap_315_fail
     ($I12, $I11) = rx311_cur."!mark_peek"($I10)
@@ -4422,7 +4422,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>"  :subid("72_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<for>"  :subid("72_1281989574.42649") :method
 .annotate 'line', 4
     new $P313, "ResizablePMCArray"
     push $P313, "for"
@@ -4431,7 +4431,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx319_tgt
     .local int rx319_pos
@@ -4472,8 +4472,8 @@
     add $I11, rx319_pos, 5
     gt $I11, rx319_eos, rx319_fail
     sub $I11, rx319_pos, rx319_off
-    substr $S10, rx319_tgt, $I11, 5
-    ne $S10, "CATCH", rx319_fail
+    cmp_str_at $I11, rx319_tgt, "CATCH", $I11, 5
+    ne $I11, 0, rx319_fail
     add rx319_pos, 5
     set_addr $I10, rxcap_323_fail
     ($I12, $I11) = rx319_cur."!mark_peek"($I10)
@@ -4532,7 +4532,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("74_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("74_1281989574.42649") :method
 .annotate 'line', 4
     new $P321, "ResizablePMCArray"
     push $P321, "CATCH"
@@ -4541,7 +4541,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx327_tgt
     .local int rx327_pos
@@ -4582,8 +4582,8 @@
     add $I11, rx327_pos, 7
     gt $I11, rx327_eos, rx327_fail
     sub $I11, rx327_pos, rx327_off
-    substr $S10, rx327_tgt, $I11, 7
-    ne $S10, "CONTROL", rx327_fail
+    cmp_str_at $I11, rx327_tgt, "CONTROL", $I11, 7
+    ne $I11, 0, rx327_fail
     add rx327_pos, 7
     set_addr $I10, rxcap_331_fail
     ($I12, $I11) = rx327_cur."!mark_peek"($I10)
@@ -4642,7 +4642,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("76_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("76_1281989574.42649") :method
 .annotate 'line', 4
     new $P329, "ResizablePMCArray"
     push $P329, "CONTROL"
@@ -4651,7 +4651,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix"  :subid("77_1280467477.44751") :method
+.sub "statement_prefix"  :subid("77_1281989574.42649") :method
 .annotate 'line', 198
     $P335 = self."!protoregex"("statement_prefix")
     .return ($P335)
@@ -4659,7 +4659,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix"  :subid("78_1280467477.44751") :method
+.sub "!PREFIX__statement_prefix"  :subid("78_1281989574.42649") :method
 .annotate 'line', 198
     $P337 = self."!PREFIX__!protoregex"("statement_prefix")
     .return ($P337)
@@ -4667,7 +4667,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx339_tgt
     .local int rx339_pos
@@ -4708,8 +4708,8 @@
     add $I11, rx339_pos, 4
     gt $I11, rx339_eos, rx339_fail
     sub $I11, rx339_pos, rx339_off
-    substr $S10, rx339_tgt, $I11, 4
-    ne $S10, "INIT", rx339_fail
+    cmp_str_at $I11, rx339_tgt, "INIT", $I11, 4
+    ne $I11, 0, rx339_fail
     add rx339_pos, 4
     set_addr $I10, rxcap_344_fail
     ($I12, $I11) = rx339_cur."!mark_peek"($I10)
@@ -4750,7 +4750,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("80_1280467477.44751") :method
+.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("80_1281989574.42649") :method
 .annotate 'line', 4
     $P341 = self."!PREFIX__!subrule"("blorst", "INIT")
     new $P342, "ResizablePMCArray"
@@ -4760,7 +4760,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx346_tgt
     .local int rx346_pos
@@ -4801,8 +4801,8 @@
     add $I11, rx346_pos, 3
     gt $I11, rx346_eos, rx346_fail
     sub $I11, rx346_pos, rx346_off
-    substr $S10, rx346_tgt, $I11, 3
-    ne $S10, "try", rx346_fail
+    cmp_str_at $I11, rx346_tgt, "try", $I11, 3
+    ne $I11, 0, rx346_fail
     add rx346_pos, 3
     set_addr $I10, rxcap_351_fail
     ($I12, $I11) = rx346_cur."!mark_peek"($I10)
@@ -4845,7 +4845,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>"  :subid("82_1280467477.44751") :method
+.sub "!PREFIX__statement_prefix:sym<try>"  :subid("82_1281989574.42649") :method
 .annotate 'line', 4
     $P348 = self."!PREFIX__!subrule"("blorst", "try")
     new $P349, "ResizablePMCArray"
@@ -4855,7 +4855,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blorst"  :subid("83_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "blorst"  :subid("83_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx353_tgt
     .local int rx353_pos
@@ -4948,7 +4948,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst"  :subid("84_1280467477.44751") :method
+.sub "!PREFIX__blorst"  :subid("84_1281989574.42649") :method
 .annotate 'line', 4
     new $P355, "ResizablePMCArray"
     push $P355, ""
@@ -4957,7 +4957,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond"  :subid("85_1280467477.44751") :method
+.sub "statement_mod_cond"  :subid("85_1281989574.42649") :method
 .annotate 'line', 212
     $P359 = self."!protoregex"("statement_mod_cond")
     .return ($P359)
@@ -4965,7 +4965,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond"  :subid("86_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_cond"  :subid("86_1281989574.42649") :method
 .annotate 'line', 212
     $P361 = self."!PREFIX__!protoregex"("statement_mod_cond")
     .return ($P361)
@@ -4973,7 +4973,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx363_tgt
     .local int rx363_pos
@@ -5014,8 +5014,8 @@
     add $I11, rx363_pos, 2
     gt $I11, rx363_eos, rx363_fail
     sub $I11, rx363_pos, rx363_off
-    substr $S10, rx363_tgt, $I11, 2
-    ne $S10, "if", rx363_fail
+    cmp_str_at $I11, rx363_tgt, "if", $I11, 2
+    ne $I11, 0, rx363_fail
     add rx363_pos, 2
     set_addr $I10, rxcap_368_fail
     ($I12, $I11) = rx363_cur."!mark_peek"($I10)
@@ -5066,7 +5066,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("88_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("88_1281989574.42649") :method
 .annotate 'line', 4
     $P365 = self."!PREFIX__!subrule"("ws", "if")
     new $P366, "ResizablePMCArray"
@@ -5076,7 +5076,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx372_tgt
     .local int rx372_pos
@@ -5117,8 +5117,8 @@
     add $I11, rx372_pos, 6
     gt $I11, rx372_eos, rx372_fail
     sub $I11, rx372_pos, rx372_off
-    substr $S10, rx372_tgt, $I11, 6
-    ne $S10, "unless", rx372_fail
+    cmp_str_at $I11, rx372_tgt, "unless", $I11, 6
+    ne $I11, 0, rx372_fail
     add rx372_pos, 6
     set_addr $I10, rxcap_377_fail
     ($I12, $I11) = rx372_cur."!mark_peek"($I10)
@@ -5169,7 +5169,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("90_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("90_1281989574.42649") :method
 .annotate 'line', 4
     $P374 = self."!PREFIX__!subrule"("ws", "unless")
     new $P375, "ResizablePMCArray"
@@ -5179,7 +5179,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop"  :subid("91_1280467477.44751") :method
+.sub "statement_mod_loop"  :subid("91_1281989574.42649") :method
 .annotate 'line', 217
     $P381 = self."!protoregex"("statement_mod_loop")
     .return ($P381)
@@ -5187,7 +5187,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop"  :subid("92_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_loop"  :subid("92_1281989574.42649") :method
 .annotate 'line', 217
     $P383 = self."!PREFIX__!protoregex"("statement_mod_loop")
     .return ($P383)
@@ -5195,7 +5195,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx385_tgt
     .local int rx385_pos
@@ -5236,8 +5236,8 @@
     add $I11, rx385_pos, 5
     gt $I11, rx385_eos, rx385_fail
     sub $I11, rx385_pos, rx385_off
-    substr $S10, rx385_tgt, $I11, 5
-    ne $S10, "while", rx385_fail
+    cmp_str_at $I11, rx385_tgt, "while", $I11, 5
+    ne $I11, 0, rx385_fail
     add rx385_pos, 5
     set_addr $I10, rxcap_390_fail
     ($I12, $I11) = rx385_cur."!mark_peek"($I10)
@@ -5288,7 +5288,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("94_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("94_1281989574.42649") :method
 .annotate 'line', 4
     $P387 = self."!PREFIX__!subrule"("ws", "while")
     new $P388, "ResizablePMCArray"
@@ -5298,7 +5298,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx394_tgt
     .local int rx394_pos
@@ -5339,8 +5339,8 @@
     add $I11, rx394_pos, 5
     gt $I11, rx394_eos, rx394_fail
     sub $I11, rx394_pos, rx394_off
-    substr $S10, rx394_tgt, $I11, 5
-    ne $S10, "until", rx394_fail
+    cmp_str_at $I11, rx394_tgt, "until", $I11, 5
+    ne $I11, 0, rx394_fail
     add rx394_pos, 5
     set_addr $I10, rxcap_399_fail
     ($I12, $I11) = rx394_cur."!mark_peek"($I10)
@@ -5391,7 +5391,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("96_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("96_1281989574.42649") :method
 .annotate 'line', 4
     $P396 = self."!PREFIX__!subrule"("ws", "until")
     new $P397, "ResizablePMCArray"
@@ -5401,7 +5401,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx403_tgt
     .local int rx403_pos
@@ -5442,8 +5442,8 @@
     add $I11, rx403_pos, 3
     gt $I11, rx403_eos, rx403_fail
     sub $I11, rx403_pos, rx403_off
-    substr $S10, rx403_tgt, $I11, 3
-    ne $S10, "for", rx403_fail
+    cmp_str_at $I11, rx403_tgt, "for", $I11, 3
+    ne $I11, 0, rx403_fail
     add rx403_pos, 3
     set_addr $I10, rxcap_408_fail
     ($I12, $I11) = rx403_cur."!mark_peek"($I10)
@@ -5494,7 +5494,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<for>"  :subid("98_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_loop:sym<for>"  :subid("98_1281989574.42649") :method
 .annotate 'line', 4
     $P405 = self."!PREFIX__!subrule"("ws", "for")
     new $P406, "ResizablePMCArray"
@@ -5504,7 +5504,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>"  :subid("99_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<fatarrow>"  :subid("99_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx412_tgt
     .local int rx412_pos
@@ -5566,7 +5566,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>"  :subid("100_1280467477.44751") :method
+.sub "!PREFIX__term:sym<fatarrow>"  :subid("100_1281989574.42649") :method
 .annotate 'line', 4
     $P414 = self."!PREFIX__!subrule"("fatarrow", "")
     new $P415, "ResizablePMCArray"
@@ -5576,7 +5576,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>"  :subid("101_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<colonpair>"  :subid("101_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx418_tgt
     .local int rx418_pos
@@ -5638,7 +5638,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>"  :subid("102_1280467477.44751") :method
+.sub "!PREFIX__term:sym<colonpair>"  :subid("102_1281989574.42649") :method
 .annotate 'line', 4
     $P420 = self."!PREFIX__!subrule"("colonpair", "")
     new $P421, "ResizablePMCArray"
@@ -5648,7 +5648,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>"  :subid("103_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<variable>"  :subid("103_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx424_tgt
     .local int rx424_pos
@@ -5710,7 +5710,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>"  :subid("104_1280467477.44751") :method
+.sub "!PREFIX__term:sym<variable>"  :subid("104_1281989574.42649") :method
 .annotate 'line', 4
     $P426 = self."!PREFIX__!subrule"("variable", "")
     new $P427, "ResizablePMCArray"
@@ -5720,7 +5720,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx430_tgt
     .local int rx430_pos
@@ -5782,7 +5782,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>"  :subid("106_1280467477.44751") :method
+.sub "!PREFIX__term:sym<package_declarator>"  :subid("106_1281989574.42649") :method
 .annotate 'line', 4
     $P432 = self."!PREFIX__!subrule"("package_declarator", "")
     new $P433, "ResizablePMCArray"
@@ -5792,7 +5792,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx436_tgt
     .local int rx436_pos
@@ -5854,7 +5854,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>"  :subid("108_1280467477.44751") :method
+.sub "!PREFIX__term:sym<scope_declarator>"  :subid("108_1281989574.42649") :method
 .annotate 'line', 4
     $P438 = self."!PREFIX__!subrule"("scope_declarator", "")
     new $P439, "ResizablePMCArray"
@@ -5864,7 +5864,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx442_tgt
     .local int rx442_pos
@@ -5926,7 +5926,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>"  :subid("110_1280467477.44751") :method
+.sub "!PREFIX__term:sym<routine_declarator>"  :subid("110_1281989574.42649") :method
 .annotate 'line', 4
     $P444 = self."!PREFIX__!subrule"("routine_declarator", "")
     new $P445, "ResizablePMCArray"
@@ -5936,9 +5936,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
-    .const 'Sub' $P453 = "113_1280467477.44751" 
+    .const 'Sub' $P453 = "113_1281989574.42649" 
     capture_lex $P453
     .local string rx448_tgt
     .local int rx448_pos
@@ -5974,7 +5974,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_1281989574.42649" 
     capture_lex $P453
     $P10 = rx448_cur."before"($P453)
     unless $P10, rx448_fail
@@ -6006,7 +6006,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<multi_declarator>"  :subid("112_1280467477.44751") :method
+.sub "!PREFIX__term:sym<multi_declarator>"  :subid("112_1281989574.42649") :method
 .annotate 'line', 4
     new $P450, "ResizablePMCArray"
     push $P450, ""
@@ -6015,7 +6015,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block452"  :anon :subid("113_1280467477.44751") :method :outer("111_1280467477.44751")
+.sub "_block452"  :anon :subid("113_1281989574.42649") :method :outer("111_1281989574.42649")
 .annotate 'line', 231
     .local string rx454_tgt
     .local int rx454_pos
@@ -6055,8 +6055,8 @@
     add $I11, rx454_pos, 5
     gt $I11, rx454_eos, rx454_fail
     sub $I11, rx454_pos, rx454_off
-    substr $S10, rx454_tgt, $I11, 5
-    ne $S10, "multi", rx454_fail
+    cmp_str_at $I11, rx454_tgt, "multi", $I11, 5
+    ne $I11, 0, rx454_fail
     add rx454_pos, 5
     goto alt456_end
   alt456_1:
@@ -6066,8 +6066,8 @@
     add $I11, rx454_pos, 5
     gt $I11, rx454_eos, rx454_fail
     sub $I11, rx454_pos, rx454_off
-    substr $S10, rx454_tgt, $I11, 5
-    ne $S10, "proto", rx454_fail
+    cmp_str_at $I11, rx454_tgt, "proto", $I11, 5
+    ne $I11, 0, rx454_fail
     add rx454_pos, 5
     goto alt456_end
   alt456_2:
@@ -6075,8 +6075,8 @@
     add $I11, rx454_pos, 4
     gt $I11, rx454_eos, rx454_fail
     sub $I11, rx454_pos, rx454_off
-    substr $S10, rx454_tgt, $I11, 4
-    ne $S10, "only", rx454_fail
+    cmp_str_at $I11, rx454_tgt, "only", $I11, 4
+    ne $I11, 0, rx454_fail
     add rx454_pos, 4
   alt456_end:
   # rx pass
@@ -6099,7 +6099,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>"  :subid("114_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<regex_declarator>"  :subid("114_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx458_tgt
     .local int rx458_pos
@@ -6161,7 +6161,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>"  :subid("115_1280467477.44751") :method
+.sub "!PREFIX__term:sym<regex_declarator>"  :subid("115_1281989574.42649") :method
 .annotate 'line', 4
     $P460 = self."!PREFIX__!subrule"("regex_declarator", "")
     new $P461, "ResizablePMCArray"
@@ -6171,7 +6171,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx464_tgt
     .local int rx464_pos
@@ -6233,7 +6233,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>"  :subid("117_1280467477.44751") :method
+.sub "!PREFIX__term:sym<statement_prefix>"  :subid("117_1281989574.42649") :method
 .annotate 'line', 4
     $P466 = self."!PREFIX__!subrule"("statement_prefix", "")
     new $P467, "ResizablePMCArray"
@@ -6243,7 +6243,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>"  :subid("118_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<lambda>"  :subid("118_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx470_tgt
     .local int rx470_pos
@@ -6309,7 +6309,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>"  :subid("119_1280467477.44751") :method
+.sub "!PREFIX__term:sym<lambda>"  :subid("119_1281989574.42649") :method
 .annotate 'line', 4
     new $P472, "ResizablePMCArray"
     push $P472, ""
@@ -6318,7 +6318,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "fatarrow"  :subid("120_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "fatarrow"  :subid("120_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx475_tgt
     .local int rx475_pos
@@ -6380,8 +6380,8 @@
     add $I11, rx475_pos, 2
     gt $I11, rx475_eos, rx475_fail
     sub $I11, rx475_pos, rx475_off
-    substr $S10, rx475_tgt, $I11, 2
-    ne $S10, "=>", rx475_fail
+    cmp_str_at $I11, rx475_tgt, "=>", $I11, 2
+    ne $I11, 0, rx475_fail
     add rx475_pos, 2
   # rx subrule "ws" subtype=method negate=
     rx475_cur."!cursor_pos"(rx475_pos)
@@ -6417,7 +6417,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow"  :subid("121_1280467477.44751") :method
+.sub "!PREFIX__fatarrow"  :subid("121_1281989574.42649") :method
 .annotate 'line', 4
     $P477 = self."!PREFIX__!subrule"("identifier", "")
     new $P478, "ResizablePMCArray"
@@ -6427,7 +6427,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "colonpair"  :subid("122_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "colonpair"  :subid("122_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx482_tgt
     .local int rx482_pos
@@ -6466,8 +6466,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 +6481,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)
@@ -6567,7 +6567,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair"  :subid("123_1280467477.44751") :method
+.sub "!PREFIX__colonpair"  :subid("123_1281989574.42649") :method
 .annotate 'line', 4
     $P484 = self."!PREFIX__!subrule"("circumfix", ":")
     $P485 = self."!PREFIX__!subrule"("identifier", ":")
@@ -6581,7 +6581,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable"  :subid("124_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "variable"  :subid("124_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx494_tgt
     .local int rx494_pos
@@ -6689,8 +6689,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)
@@ -6747,7 +6747,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable"  :subid("125_1280467477.44751") :method
+.sub "!PREFIX__variable"  :subid("125_1281989574.42649") :method
 .annotate 'line', 4
     $P496 = self."!PREFIX__!subrule"("sigil", "")
     $P497 = self."!PREFIX__!subrule"("sigil", "")
@@ -6762,7 +6762,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "sigil"  :subid("126_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "sigil"  :subid("126_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx506_tgt
     .local int rx506_pos
@@ -6824,7 +6824,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil"  :subid("127_1280467477.44751") :method
+.sub "!PREFIX__sigil"  :subid("127_1281989574.42649") :method
 .annotate 'line', 4
     new $P508, "ResizablePMCArray"
     push $P508, "&"
@@ -6836,7 +6836,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "twigil"  :subid("128_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "twigil"  :subid("128_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx511_tgt
     .local int rx511_pos
@@ -6898,7 +6898,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil"  :subid("129_1280467477.44751") :method
+.sub "!PREFIX__twigil"  :subid("129_1281989574.42649") :method
 .annotate 'line', 4
     new $P513, "ResizablePMCArray"
     push $P513, "?"
@@ -6909,7 +6909,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator"  :subid("130_1280467477.44751") :method
+.sub "package_declarator"  :subid("130_1281989574.42649") :method
 .annotate 'line', 259
     $P516 = self."!protoregex"("package_declarator")
     .return ($P516)
@@ -6917,7 +6917,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator"  :subid("131_1280467477.44751") :method
+.sub "!PREFIX__package_declarator"  :subid("131_1281989574.42649") :method
 .annotate 'line', 259
     $P518 = self."!PREFIX__!protoregex"("package_declarator")
     .return ($P518)
@@ -6925,7 +6925,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx520_tgt
     .local int rx520_pos
@@ -6966,8 +6966,8 @@
     add $I11, rx520_pos, 6
     gt $I11, rx520_eos, rx520_fail
     sub $I11, rx520_pos, rx520_off
-    substr $S10, rx520_tgt, $I11, 6
-    ne $S10, "module", rx520_fail
+    cmp_str_at $I11, rx520_tgt, "module", $I11, 6
+    ne $I11, 0, rx520_fail
     add rx520_pos, 6
     set_addr $I10, rxcap_525_fail
     ($I12, $I11) = rx520_cur."!mark_peek"($I10)
@@ -7008,7 +7008,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>"  :subid("133_1280467477.44751") :method
+.sub "!PREFIX__package_declarator:sym<module>"  :subid("133_1281989574.42649") :method
 .annotate 'line', 4
     $P522 = self."!PREFIX__!subrule"("package_def", "module")
     new $P523, "ResizablePMCArray"
@@ -7018,7 +7018,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx527_tgt
     .local int rx527_pos
@@ -7062,8 +7062,8 @@
     add $I11, rx527_pos, 5
     gt $I11, rx527_eos, rx527_fail
     sub $I11, rx527_pos, rx527_off
-    substr $S10, rx527_tgt, $I11, 5
-    ne $S10, "class", rx527_fail
+    cmp_str_at $I11, rx527_tgt, "class", $I11, 5
+    ne $I11, 0, rx527_fail
     add rx527_pos, 5
     goto alt533_end
   alt533_1:
@@ -7071,8 +7071,8 @@
     add $I11, rx527_pos, 7
     gt $I11, rx527_eos, rx527_fail
     sub $I11, rx527_pos, rx527_off
-    substr $S10, rx527_tgt, $I11, 7
-    ne $S10, "grammar", rx527_fail
+    cmp_str_at $I11, rx527_tgt, "grammar", $I11, 7
+    ne $I11, 0, rx527_fail
     add rx527_pos, 7
   alt533_end:
     set_addr $I10, rxcap_534_fail
@@ -7114,7 +7114,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>"  :subid("135_1280467477.44751") :method
+.sub "!PREFIX__package_declarator:sym<class>"  :subid("135_1281989574.42649") :method
 .annotate 'line', 4
     $P529 = self."!PREFIX__!subrule"("package_def", "grammar")
     $P530 = self."!PREFIX__!subrule"("package_def", "class")
@@ -7126,7 +7126,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_def"  :subid("136_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "package_def"  :subid("136_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx536_tgt
     .local int rx536_pos
@@ -7193,8 +7193,8 @@
     add $I11, rx536_pos, 2
     gt $I11, rx536_eos, rx536_fail
     sub $I11, rx536_pos, rx536_off
-    substr $S10, rx536_tgt, $I11, 2
-    ne $S10, "is", rx536_fail
+    cmp_str_at $I11, rx536_tgt, "is", $I11, 2
+    ne $I11, 0, rx536_fail
     add rx536_pos, 2
   # rx subrule "ws" subtype=method negate=
     rx536_cur."!cursor_pos"(rx536_pos)
@@ -7235,8 +7235,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)
@@ -7335,7 +7335,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def"  :subid("137_1280467477.44751") :method
+.sub "!PREFIX__package_def"  :subid("137_1281989574.42649") :method
 .annotate 'line', 4
     $P538 = self."!PREFIX__!subrule"("ws", "")
     new $P539, "ResizablePMCArray"
@@ -7345,7 +7345,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator"  :subid("138_1280467477.44751") :method
+.sub "scope_declarator"  :subid("138_1281989574.42649") :method
 .annotate 'line', 273
     $P559 = self."!protoregex"("scope_declarator")
     .return ($P559)
@@ -7353,7 +7353,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator"  :subid("139_1280467477.44751") :method
+.sub "!PREFIX__scope_declarator"  :subid("139_1281989574.42649") :method
 .annotate 'line', 273
     $P561 = self."!PREFIX__!protoregex"("scope_declarator")
     .return ($P561)
@@ -7361,7 +7361,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx563_tgt
     .local int rx563_pos
@@ -7402,8 +7402,8 @@
     add $I11, rx563_pos, 2
     gt $I11, rx563_eos, rx563_fail
     sub $I11, rx563_pos, rx563_off
-    substr $S10, rx563_tgt, $I11, 2
-    ne $S10, "my", rx563_fail
+    cmp_str_at $I11, rx563_tgt, "my", $I11, 2
+    ne $I11, 0, rx563_fail
     add rx563_pos, 2
     set_addr $I10, rxcap_568_fail
     ($I12, $I11) = rx563_cur."!mark_peek"($I10)
@@ -7444,7 +7444,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>"  :subid("141_1280467477.44751") :method
+.sub "!PREFIX__scope_declarator:sym<my>"  :subid("141_1281989574.42649") :method
 .annotate 'line', 4
     $P565 = self."!PREFIX__!subrule"("scoped", "my")
     new $P566, "ResizablePMCArray"
@@ -7454,7 +7454,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx570_tgt
     .local int rx570_pos
@@ -7495,8 +7495,8 @@
     add $I11, rx570_pos, 3
     gt $I11, rx570_eos, rx570_fail
     sub $I11, rx570_pos, rx570_off
-    substr $S10, rx570_tgt, $I11, 3
-    ne $S10, "our", rx570_fail
+    cmp_str_at $I11, rx570_tgt, "our", $I11, 3
+    ne $I11, 0, rx570_fail
     add rx570_pos, 3
     set_addr $I10, rxcap_575_fail
     ($I12, $I11) = rx570_cur."!mark_peek"($I10)
@@ -7537,7 +7537,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>"  :subid("143_1280467477.44751") :method
+.sub "!PREFIX__scope_declarator:sym<our>"  :subid("143_1281989574.42649") :method
 .annotate 'line', 4
     $P572 = self."!PREFIX__!subrule"("scoped", "our")
     new $P573, "ResizablePMCArray"
@@ -7547,7 +7547,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx577_tgt
     .local int rx577_pos
@@ -7588,8 +7588,8 @@
     add $I11, rx577_pos, 3
     gt $I11, rx577_eos, rx577_fail
     sub $I11, rx577_pos, rx577_off
-    substr $S10, rx577_tgt, $I11, 3
-    ne $S10, "has", rx577_fail
+    cmp_str_at $I11, rx577_tgt, "has", $I11, 3
+    ne $I11, 0, rx577_fail
     add rx577_pos, 3
     set_addr $I10, rxcap_582_fail
     ($I12, $I11) = rx577_cur."!mark_peek"($I10)
@@ -7630,7 +7630,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>"  :subid("145_1280467477.44751") :method
+.sub "!PREFIX__scope_declarator:sym<has>"  :subid("145_1281989574.42649") :method
 .annotate 'line', 4
     $P579 = self."!PREFIX__!subrule"("scoped", "has")
     new $P580, "ResizablePMCArray"
@@ -7640,7 +7640,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scoped"  :subid("146_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "scoped"  :subid("146_1281989574.42649") :method :outer("11_1281989574.42649")
     .param pmc param_584
 .annotate 'line', 278
     .lex "$*SCOPE", param_584
@@ -7741,7 +7741,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped"  :subid("147_1280467477.44751") :method
+.sub "!PREFIX__scoped"  :subid("147_1281989574.42649") :method
 .annotate 'line', 4
     $P587 = self."!PREFIX__!subrule"("ws", "")
     $P588 = self."!PREFIX__!subrule"("ws", "")
@@ -7753,7 +7753,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "typename"  :subid("148_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "typename"  :subid("148_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx597_tgt
     .local int rx597_pos
@@ -7815,7 +7815,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__typename"  :subid("149_1280467477.44751") :method
+.sub "!PREFIX__typename"  :subid("149_1281989574.42649") :method
 .annotate 'line', 4
     $P599 = self."!PREFIX__!subrule"("name", "")
     new $P600, "ResizablePMCArray"
@@ -7825,7 +7825,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "declarator"  :subid("150_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "declarator"  :subid("150_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx603_tgt
     .local int rx603_pos
@@ -7903,7 +7903,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__declarator"  :subid("151_1280467477.44751") :method
+.sub "!PREFIX__declarator"  :subid("151_1281989574.42649") :method
 .annotate 'line', 4
     $P605 = self."!PREFIX__!subrule"("routine_declarator", "")
     $P606 = self."!PREFIX__!subrule"("variable_declarator", "")
@@ -7915,7 +7915,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable_declarator"  :subid("152_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "variable_declarator"  :subid("152_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx611_tgt
     .local int rx611_pos
@@ -7977,7 +7977,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator"  :subid("153_1280467477.44751") :method
+.sub "!PREFIX__variable_declarator"  :subid("153_1281989574.42649") :method
 .annotate 'line', 4
     $P613 = self."!PREFIX__!subrule"("variable", "")
     new $P614, "ResizablePMCArray"
@@ -7987,7 +7987,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator"  :subid("154_1280467477.44751") :method
+.sub "routine_declarator"  :subid("154_1281989574.42649") :method
 .annotate 'line', 292
     $P617 = self."!protoregex"("routine_declarator")
     .return ($P617)
@@ -7995,7 +7995,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator"  :subid("155_1280467477.44751") :method
+.sub "!PREFIX__routine_declarator"  :subid("155_1281989574.42649") :method
 .annotate 'line', 292
     $P619 = self."!PREFIX__!protoregex"("routine_declarator")
     .return ($P619)
@@ -8003,7 +8003,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx621_tgt
     .local int rx621_pos
@@ -8044,8 +8044,8 @@
     add $I11, rx621_pos, 3
     gt $I11, rx621_eos, rx621_fail
     sub $I11, rx621_pos, rx621_off
-    substr $S10, rx621_tgt, $I11, 3
-    ne $S10, "sub", rx621_fail
+    cmp_str_at $I11, rx621_tgt, "sub", $I11, 3
+    ne $I11, 0, rx621_fail
     add rx621_pos, 3
     set_addr $I10, rxcap_626_fail
     ($I12, $I11) = rx621_cur."!mark_peek"($I10)
@@ -8086,7 +8086,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("157_1280467477.44751") :method
+.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("157_1281989574.42649") :method
 .annotate 'line', 4
     $P623 = self."!PREFIX__!subrule"("routine_def", "sub")
     new $P624, "ResizablePMCArray"
@@ -8096,7 +8096,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx628_tgt
     .local int rx628_pos
@@ -8137,8 +8137,8 @@
     add $I11, rx628_pos, 6
     gt $I11, rx628_eos, rx628_fail
     sub $I11, rx628_pos, rx628_off
-    substr $S10, rx628_tgt, $I11, 6
-    ne $S10, "method", rx628_fail
+    cmp_str_at $I11, rx628_tgt, "method", $I11, 6
+    ne $I11, 0, rx628_fail
     add rx628_pos, 6
     set_addr $I10, rxcap_633_fail
     ($I12, $I11) = rx628_cur."!mark_peek"($I10)
@@ -8179,7 +8179,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>"  :subid("159_1280467477.44751") :method
+.sub "!PREFIX__routine_declarator:sym<method>"  :subid("159_1281989574.42649") :method
 .annotate 'line', 4
     $P630 = self."!PREFIX__!subrule"("method_def", "method")
     new $P631, "ResizablePMCArray"
@@ -8189,7 +8189,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_def"  :subid("160_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "routine_def"  :subid("160_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx635_tgt
     .local int rx635_pos
@@ -8198,7 +8198,7 @@
     .local int rx635_rep
     .local pmc rx635_cur
     (rx635_cur, rx635_pos, rx635_tgt, $I10) = self."!cursor_start"()
-    rx635_cur."!cursor_caparray"("sigil", "deflongname")
+    rx635_cur."!cursor_caparray"("deflongname", "sigil")
     .lex unicode:"$\x{a2}", rx635_cur
     .local pmc match
     .lex "$/", match
@@ -8250,8 +8250,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 +8311,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 +8335,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)
@@ -8402,7 +8402,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def"  :subid("161_1280467477.44751") :method
+.sub "!PREFIX__routine_def"  :subid("161_1281989574.42649") :method
 .annotate 'line', 4
     $P637 = self."!PREFIX__!subrule"("ws", "")
     new $P638, "ResizablePMCArray"
@@ -8412,7 +8412,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "method_def"  :subid("162_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "method_def"  :subid("162_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx658_tgt
     .local int rx658_pos
@@ -8502,8 +8502,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 +8526,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)
@@ -8593,7 +8593,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def"  :subid("163_1280467477.44751") :method
+.sub "!PREFIX__method_def"  :subid("163_1281989574.42649") :method
 .annotate 'line', 4
     $P660 = self."!PREFIX__!subrule"("ws", "")
     new $P661, "ResizablePMCArray"
@@ -8603,7 +8603,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator"  :subid("164_1280467477.44751") :method
+.sub "multi_declarator"  :subid("164_1281989574.42649") :method
 .annotate 'line', 312
     $P678 = self."!protoregex"("multi_declarator")
     .return ($P678)
@@ -8611,7 +8611,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator"  :subid("165_1280467477.44751") :method
+.sub "!PREFIX__multi_declarator"  :subid("165_1281989574.42649") :method
 .annotate 'line', 312
     $P680 = self."!PREFIX__!protoregex"("multi_declarator")
     .return ($P680)
@@ -8619,7 +8619,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 314
     new $P682, "Undef"
     .lex "$*MULTINESS", $P682
@@ -8668,8 +8668,8 @@
     add $I11, rx683_pos, 5
     gt $I11, rx683_eos, rx683_fail
     sub $I11, rx683_pos, rx683_off
-    substr $S10, rx683_tgt, $I11, 5
-    ne $S10, "multi", rx683_fail
+    cmp_str_at $I11, rx683_tgt, "multi", $I11, 5
+    ne $I11, 0, rx683_fail
     add rx683_pos, 5
     set_addr $I10, rxcap_689_fail
     ($I12, $I11) = rx683_cur."!mark_peek"($I10)
@@ -8739,7 +8739,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<multi>"  :subid("167_1280467477.44751") :method
+.sub "!PREFIX__multi_declarator:sym<multi>"  :subid("167_1281989574.42649") :method
 .annotate 'line', 4
     $P685 = self."!PREFIX__!subrule"("ws", "multi")
     new $P686, "ResizablePMCArray"
@@ -8749,7 +8749,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 319
     new $P692, "Undef"
     .lex "$*MULTINESS", $P692
@@ -8820,7 +8820,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<null>"  :subid("169_1280467477.44751") :method
+.sub "!PREFIX__multi_declarator:sym<null>"  :subid("169_1281989574.42649") :method
 .annotate 'line', 4
     $P695 = self."!PREFIX__!subrule"("declarator", "")
     new $P696, "ResizablePMCArray"
@@ -8830,7 +8830,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "signature"  :subid("170_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "signature"  :subid("170_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx700_tgt
     .local int rx700_pos
@@ -8898,8 +8898,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:
@@ -8927,7 +8927,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature"  :subid("171_1280467477.44751") :method
+.sub "!PREFIX__signature"  :subid("171_1281989574.42649") :method
 .annotate 'line', 4
     new $P702, "ResizablePMCArray"
     push $P702, ""
@@ -8936,7 +8936,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "parameter"  :subid("172_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "parameter"  :subid("172_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx707_tgt
     .local int rx707_pos
@@ -8945,7 +8945,7 @@
     .local int rx707_rep
     .local pmc rx707_cur
     (rx707_cur, rx707_pos, rx707_tgt, $I10) = self."!cursor_start"()
-    rx707_cur."!cursor_caparray"("typename", "default_value")
+    rx707_cur."!cursor_caparray"("default_value", "typename")
     .lex unicode:"$\x{a2}", rx707_cur
     .local pmc match
     .lex "$/", match
@@ -9005,8 +9005,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 +9059,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 +9070,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:
@@ -9131,7 +9131,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter"  :subid("173_1280467477.44751") :method
+.sub "!PREFIX__parameter"  :subid("173_1281989574.42649") :method
 .annotate 'line', 4
     new $P709, "ResizablePMCArray"
     push $P709, ""
@@ -9140,7 +9140,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "param_var"  :subid("174_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "param_var"  :subid("174_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx720_tgt
     .local int rx720_pos
@@ -9259,7 +9259,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var"  :subid("175_1280467477.44751") :method
+.sub "!PREFIX__param_var"  :subid("175_1281989574.42649") :method
 .annotate 'line', 4
     $P722 = self."!PREFIX__!subrule"("sigil", "")
     new $P723, "ResizablePMCArray"
@@ -9269,7 +9269,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "named_param"  :subid("176_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "named_param"  :subid("176_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx730_tgt
     .local int rx730_pos
@@ -9307,8 +9307,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)
@@ -9339,7 +9339,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param"  :subid("177_1280467477.44751") :method
+.sub "!PREFIX__named_param"  :subid("177_1281989574.42649") :method
 .annotate 'line', 4
     $P732 = self."!PREFIX__!subrule"("param_var", ":")
     new $P733, "ResizablePMCArray"
@@ -9349,7 +9349,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "default_value"  :subid("178_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "default_value"  :subid("178_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx736_tgt
     .local int rx736_pos
@@ -9392,8 +9392,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)
@@ -9433,7 +9433,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value"  :subid("179_1280467477.44751") :method
+.sub "!PREFIX__default_value"  :subid("179_1281989574.42649") :method
 .annotate 'line', 4
     $P738 = self."!PREFIX__!subrule"("ws", "")
     new $P739, "ResizablePMCArray"
@@ -9443,7 +9443,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "regex_declarator"  :subid("180_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "regex_declarator"  :subid("180_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx745_tgt
     .local int rx745_pos
@@ -9500,8 +9500,8 @@
     add $I11, rx745_pos, 5
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 5
-    ne $S10, "proto", rx745_fail
+    cmp_str_at $I11, rx745_tgt, "proto", $I11, 5
+    ne $I11, 0, rx745_fail
     add rx745_pos, 5
     set_addr $I10, rxcap_753_fail
     ($I12, $I11) = rx745_cur."!mark_peek"($I10)
@@ -9526,8 +9526,8 @@
     add $I11, rx745_pos, 5
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 5
-    ne $S10, "regex", rx745_fail
+    cmp_str_at $I11, rx745_tgt, "regex", $I11, 5
+    ne $I11, 0, rx745_fail
     add rx745_pos, 5
     goto alt755_end
   alt755_1:
@@ -9537,8 +9537,8 @@
     add $I11, rx745_pos, 5
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 5
-    ne $S10, "token", rx745_fail
+    cmp_str_at $I11, rx745_tgt, "token", $I11, 5
+    ne $I11, 0, rx745_fail
     add rx745_pos, 5
     goto alt755_end
   alt755_2:
@@ -9546,8 +9546,8 @@
     add $I11, rx745_pos, 4
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 4
-    ne $S10, "rule", rx745_fail
+    cmp_str_at $I11, rx745_tgt, "rule", $I11, 4
+    ne $I11, 0, rx745_fail
     add rx745_pos, 4
   alt755_end:
   # rx subrule "ws" subtype=method negate=
@@ -9582,8 +9582,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)
@@ -9594,8 +9594,8 @@
     add $I11, rx745_pos, 5
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 5
-    ne $S10, "<...>", rx745_fail
+    cmp_str_at $I11, rx745_tgt, "<...>", $I11, 5
+    ne $I11, 0, rx745_fail
     add rx745_pos, 5
   # rx subrule "ws" subtype=method negate=
     rx745_cur."!cursor_pos"(rx745_pos)
@@ -9606,8 +9606,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)
@@ -9662,8 +9662,8 @@
     add $I11, rx745_pos, 5
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 5
-    ne $S10, "regex", rx745_fail
+    cmp_str_at $I11, rx745_tgt, "regex", $I11, 5
+    ne $I11, 0, rx745_fail
     add rx745_pos, 5
     goto alt767_end
   alt767_1:
@@ -9673,8 +9673,8 @@
     add $I11, rx745_pos, 5
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 5
-    ne $S10, "token", rx745_fail
+    cmp_str_at $I11, rx745_tgt, "token", $I11, 5
+    ne $I11, 0, rx745_fail
     add rx745_pos, 5
     goto alt767_end
   alt767_2:
@@ -9682,8 +9682,8 @@
     add $I11, rx745_pos, 4
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 4
-    ne $S10, "rule", rx745_fail
+    cmp_str_at $I11, rx745_tgt, "rule", $I11, 4
+    ne $I11, 0, rx745_fail
     add rx745_pos, 4
   alt767_end:
     set_addr $I10, rxcap_768_fail
@@ -9740,8 +9740,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 +9764,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 +9794,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 +9808,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)
@@ -9849,7 +9849,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator"  :subid("181_1280467477.44751") :method
+.sub "!PREFIX__regex_declarator"  :subid("181_1281989574.42649") :method
 .annotate 'line', 4
     $P747 = self."!PREFIX__!subrule"("ws", "")
     new $P748, "ResizablePMCArray"
@@ -9859,7 +9859,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "dotty"  :subid("182_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "dotty"  :subid("182_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx782_tgt
     .local int rx782_pos
@@ -9898,8 +9898,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 +9977,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
@@ -10020,7 +10020,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty"  :subid("183_1280467477.44751") :method
+.sub "!PREFIX__dotty"  :subid("183_1281989574.42649") :method
 .annotate 'line', 4
     $P784 = self."!PREFIX__!subrule"("deflongname", ".")
     new $P785, "ResizablePMCArray"
@@ -10032,7 +10032,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term"  :subid("184_1280467477.44751") :method
+.sub "term"  :subid("184_1281989574.42649") :method
 .annotate 'line', 376
     $P792 = self."!protoregex"("term")
     .return ($P792)
@@ -10040,7 +10040,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term"  :subid("185_1280467477.44751") :method
+.sub "!PREFIX__term"  :subid("185_1281989574.42649") :method
 .annotate 'line', 376
     $P794 = self."!PREFIX__!protoregex"("term")
     .return ($P794)
@@ -10048,7 +10048,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<self>"  :subid("186_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<self>"  :subid("186_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx796_tgt
     .local int rx796_pos
@@ -10089,8 +10089,8 @@
     add $I11, rx796_pos, 4
     gt $I11, rx796_eos, rx796_fail
     sub $I11, rx796_pos, rx796_off
-    substr $S10, rx796_tgt, $I11, 4
-    ne $S10, "self", rx796_fail
+    cmp_str_at $I11, rx796_tgt, "self", $I11, 4
+    ne $I11, 0, rx796_fail
     add rx796_pos, 4
     set_addr $I10, rxcap_800_fail
     ($I12, $I11) = rx796_cur."!mark_peek"($I10)
@@ -10132,7 +10132,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>"  :subid("187_1280467477.44751") :method
+.sub "!PREFIX__term:sym<self>"  :subid("187_1281989574.42649") :method
 .annotate 'line', 4
     new $P798, "ResizablePMCArray"
     push $P798, "self"
@@ -10141,7 +10141,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>"  :subid("188_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<identifier>"  :subid("188_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx802_tgt
     .local int rx802_pos
@@ -10217,7 +10217,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>"  :subid("189_1280467477.44751") :method
+.sub "!PREFIX__term:sym<identifier>"  :subid("189_1281989574.42649") :method
 .annotate 'line', 4
     $P804 = self."!PREFIX__!subrule"("deflongname", "")
     new $P805, "ResizablePMCArray"
@@ -10227,7 +10227,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<name>"  :subid("190_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<name>"  :subid("190_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx808_tgt
     .local int rx808_pos
@@ -10311,7 +10311,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>"  :subid("191_1280467477.44751") :method
+.sub "!PREFIX__term:sym<name>"  :subid("191_1281989574.42649") :method
 .annotate 'line', 4
     $P810 = self."!PREFIX__!subrule"("name", "")
     new $P811, "ResizablePMCArray"
@@ -10321,7 +10321,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx816_tgt
     .local int rx816_pos
@@ -10360,8 +10360,8 @@
     add $I11, rx816_pos, 5
     gt $I11, rx816_eos, rx816_fail
     sub $I11, rx816_pos, rx816_off
-    substr $S10, rx816_tgt, $I11, 5
-    ne $S10, "pir::", rx816_fail
+    cmp_str_at $I11, rx816_tgt, "pir::", $I11, 5
+    ne $I11, 0, rx816_fail
     add rx816_pos, 5
   # rx subcapture "op"
     set_addr $I10, rxcap_820_fail
@@ -10425,7 +10425,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>"  :subid("193_1280467477.44751") :method
+.sub "!PREFIX__term:sym<pir::op>"  :subid("193_1281989574.42649") :method
 .annotate 'line', 4
     new $P818, "ResizablePMCArray"
     push $P818, "pir::"
@@ -10434,7 +10434,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "args"  :subid("194_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "args"  :subid("194_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx824_tgt
     .local int rx824_pos
@@ -10472,8 +10472,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,8 +10486,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, 41, rx824_fail
     add rx824_pos, 1
   # rx pass
     rx824_cur."!cursor_pass"(rx824_pos, "args")
@@ -10510,7 +10510,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args"  :subid("195_1280467477.44751") :method
+.sub "!PREFIX__args"  :subid("195_1281989574.42649") :method
 .annotate 'line', 4
     $P826 = self."!PREFIX__!subrule"("arglist", "(")
     new $P827, "ResizablePMCArray"
@@ -10520,7 +10520,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "arglist"  :subid("196_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "arglist"  :subid("196_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx830_tgt
     .local int rx830_pos
@@ -10596,7 +10596,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("197_1280467477.44751") :method
+.sub "!PREFIX__arglist"  :subid("197_1281989574.42649") :method
 .annotate 'line', 4
     $P832 = self."!PREFIX__!subrule"("ws", "")
     new $P833, "ResizablePMCArray"
@@ -10606,7 +10606,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<value>"  :subid("198_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<value>"  :subid("198_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx837_tgt
     .local int rx837_pos
@@ -10668,7 +10668,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>"  :subid("199_1280467477.44751") :method
+.sub "!PREFIX__term:sym<value>"  :subid("199_1281989574.42649") :method
 .annotate 'line', 4
     $P839 = self."!PREFIX__!subrule"("value", "")
     new $P840, "ResizablePMCArray"
@@ -10678,7 +10678,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "value"  :subid("200_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "value"  :subid("200_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx843_tgt
     .local int rx843_pos
@@ -10756,7 +10756,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value"  :subid("201_1280467477.44751") :method
+.sub "!PREFIX__value"  :subid("201_1281989574.42649") :method
 .annotate 'line', 4
     $P845 = self."!PREFIX__!subrule"("number", "")
     $P846 = self."!PREFIX__!subrule"("quote", "")
@@ -10768,7 +10768,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "number"  :subid("202_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "number"  :subid("202_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx851_tgt
     .local int rx851_pos
@@ -10873,7 +10873,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number"  :subid("203_1280467477.44751") :method
+.sub "!PREFIX__number"  :subid("203_1281989574.42649") :method
 .annotate 'line', 4
     new $P853, "ResizablePMCArray"
     push $P853, ""
@@ -10882,7 +10882,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote"  :subid("204_1280467477.44751") :method
+.sub "quote"  :subid("204_1281989574.42649") :method
 .annotate 'line', 417
     $P859 = self."!protoregex"("quote")
     .return ($P859)
@@ -10890,7 +10890,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote"  :subid("205_1280467477.44751") :method
+.sub "!PREFIX__quote"  :subid("205_1281989574.42649") :method
 .annotate 'line', 417
     $P861 = self."!PREFIX__!protoregex"("quote")
     .return ($P861)
@@ -10898,7 +10898,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>"  :subid("206_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<apos>"  :subid("206_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx863_tgt
     .local int rx863_pos
@@ -10966,7 +10966,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>"  :subid("207_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<apos>"  :subid("207_1281989574.42649") :method
 .annotate 'line', 4
     new $P865, "ResizablePMCArray"
     push $P865, "'"
@@ -10975,7 +10975,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>"  :subid("208_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<dblq>"  :subid("208_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx868_tgt
     .local int rx868_pos
@@ -11043,7 +11043,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<dblq>"  :subid("209_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<dblq>"  :subid("209_1281989574.42649") :method
 .annotate 'line', 4
     new $P870, "ResizablePMCArray"
     push $P870, "\""
@@ -11052,7 +11052,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<q>"  :subid("210_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<q>"  :subid("210_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx873_tgt
     .local int rx873_pos
@@ -11090,8 +11090,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
@@ -11140,7 +11140,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<q>"  :subid("211_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<q>"  :subid("211_1281989574.42649") :method
 .annotate 'line', 4
     $P875 = self."!PREFIX__!subrule"("ws", "q")
     new $P876, "ResizablePMCArray"
@@ -11150,7 +11150,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<qq>"  :subid("212_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<qq>"  :subid("212_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx879_tgt
     .local int rx879_pos
@@ -11188,8 +11188,8 @@
     add $I11, rx879_pos, 2
     gt $I11, rx879_eos, rx879_fail
     sub $I11, rx879_pos, rx879_off
-    substr $S10, rx879_tgt, $I11, 2
-    ne $S10, "qq", rx879_fail
+    cmp_str_at $I11, rx879_tgt, "qq", $I11, 2
+    ne $I11, 0, rx879_fail
     add rx879_pos, 2
   # rxanchor rwb
     le rx879_pos, 0, rx879_fail
@@ -11238,7 +11238,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<qq>"  :subid("213_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<qq>"  :subid("213_1281989574.42649") :method
 .annotate 'line', 4
     $P881 = self."!PREFIX__!subrule"("ws", "qq")
     new $P882, "ResizablePMCArray"
@@ -11248,7 +11248,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q>"  :subid("214_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<Q>"  :subid("214_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx885_tgt
     .local int rx885_pos
@@ -11286,8 +11286,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
@@ -11336,7 +11336,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q>"  :subid("215_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<Q>"  :subid("215_1281989574.42649") :method
 .annotate 'line', 4
     $P887 = self."!PREFIX__!subrule"("ws", "Q")
     new $P888, "ResizablePMCArray"
@@ -11346,7 +11346,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx891_tgt
     .local int rx891_pos
@@ -11384,8 +11384,8 @@
     add $I11, rx891_pos, 5
     gt $I11, rx891_eos, rx891_fail
     sub $I11, rx891_pos, rx891_off
-    substr $S10, rx891_tgt, $I11, 5
-    ne $S10, "Q:PIR", rx891_fail
+    cmp_str_at $I11, rx891_tgt, "Q:PIR", $I11, 5
+    ne $I11, 0, rx891_fail
     add rx891_pos, 5
   # rx subrule "ws" subtype=method negate=
     rx891_cur."!cursor_pos"(rx891_pos)
@@ -11420,7 +11420,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("217_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("217_1281989574.42649") :method
 .annotate 'line', 4
     $P893 = self."!PREFIX__!subrule"("ws", "Q:PIR")
     new $P894, "ResizablePMCArray"
@@ -11430,7 +11430,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym</ />"  :subid("218_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym</ />"  :subid("218_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx897_tgt
     .local int rx897_pos
@@ -11468,8 +11468,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,8 +11494,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', 424
   # rx pass
@@ -11519,7 +11519,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym</ />"  :subid("219_1280467477.44751") :method
+.sub "!PREFIX__quote:sym</ />"  :subid("219_1281989574.42649") :method
 .annotate 'line', 4
     $P899 = self."!PREFIX__!subrule"("newpad", "/")
     new $P900, "ResizablePMCArray"
@@ -11529,7 +11529,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<$>"  :subid("220_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote_escape:sym<$>"  :subid("220_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx903_tgt
     .local int rx903_pos
@@ -11601,7 +11601,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<$>"  :subid("221_1280467477.44751") :method
+.sub "!PREFIX__quote_escape:sym<$>"  :subid("221_1281989574.42649") :method
 .annotate 'line', 4
     new $P905, "ResizablePMCArray"
     push $P905, "$"
@@ -11610,7 +11610,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<{ }>"  :subid("222_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote_escape:sym<{ }>"  :subid("222_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx908_tgt
     .local int rx908_pos
@@ -11682,7 +11682,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("223_1280467477.44751") :method
+.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("223_1281989574.42649") :method
 .annotate 'line', 4
     new $P910, "ResizablePMCArray"
     push $P910, "{"
@@ -11691,7 +11691,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx913_tgt
     .local int rx913_pos
@@ -11729,8 +11729,8 @@
     add $I11, rx913_pos, 2
     gt $I11, rx913_eos, rx913_fail
     sub $I11, rx913_pos, rx913_off
-    substr $S10, rx913_tgt, $I11, 2
-    ne $S10, "\\e", rx913_fail
+    cmp_str_at $I11, rx913_tgt, "\\e", $I11, 2
+    ne $I11, 0, rx913_fail
     add rx913_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx913_cur."!cursor_pos"(rx913_pos)
@@ -11757,7 +11757,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("225_1280467477.44751") :method
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("225_1281989574.42649") :method
 .annotate 'line', 4
     new $P915, "ResizablePMCArray"
     push $P915, "\\e"
@@ -11766,7 +11766,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<( )>"  :subid("226_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<( )>"  :subid("226_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx918_tgt
     .local int rx918_pos
@@ -11805,8 +11805,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,8 +11837,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, 41, rx918_fail
     add rx918_pos, 1
   # rx pass
     rx918_cur."!cursor_pass"(rx918_pos, "circumfix:sym<( )>")
@@ -11861,7 +11861,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<( )>"  :subid("227_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<( )>"  :subid("227_1281989574.42649") :method
 .annotate 'line', 4
     $P920 = self."!PREFIX__!subrule"("ws", "(")
     new $P921, "ResizablePMCArray"
@@ -11871,7 +11871,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<[ ]>"  :subid("228_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<[ ]>"  :subid("228_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx926_tgt
     .local int rx926_pos
@@ -11910,8 +11910,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,8 +11942,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, 93, rx926_fail
     add rx926_pos, 1
   # rx pass
     rx926_cur."!cursor_pass"(rx926_pos, "circumfix:sym<[ ]>")
@@ -11966,7 +11966,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("229_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("229_1281989574.42649") :method
 .annotate 'line', 4
     $P928 = self."!PREFIX__!subrule"("ws", "[")
     new $P929, "ResizablePMCArray"
@@ -11976,7 +11976,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<ang>"  :subid("230_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<ang>"  :subid("230_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx934_tgt
     .local int rx934_pos
@@ -12044,7 +12044,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<ang>"  :subid("231_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<ang>"  :subid("231_1281989574.42649") :method
 .annotate 'line', 4
     new $P936, "ResizablePMCArray"
     push $P936, "<"
@@ -12053,7 +12053,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_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx939_tgt
     .local int rx939_pos
@@ -12121,7 +12121,7 @@
 
 
 .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_1281989574.42649") :method
 .annotate 'line', 4
     new $P941, "ResizablePMCArray"
     push $P941, unicode:"\x{ab}"
@@ -12130,7 +12130,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<{ }>"  :subid("234_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<{ }>"  :subid("234_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx944_tgt
     .local int rx944_pos
@@ -12198,7 +12198,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<{ }>"  :subid("235_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<{ }>"  :subid("235_1281989574.42649") :method
 .annotate 'line', 4
     new $P946, "ResizablePMCArray"
     push $P946, "{"
@@ -12207,7 +12207,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<sigil>"  :subid("236_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<sigil>"  :subid("236_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx949_tgt
     .local int rx949_pos
@@ -12252,8 +12252,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 +12269,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:
@@ -12308,7 +12308,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<sigil>"  :subid("237_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<sigil>"  :subid("237_1281989574.42649") :method
 .annotate 'line', 4
     $P951 = self."!PREFIX__!subrule"("sigil", "")
     new $P952, "ResizablePMCArray"
@@ -12318,7 +12318,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "semilist"  :subid("238_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "semilist"  :subid("238_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 4
     .local string rx958_tgt
     .local int rx958_pos
@@ -12390,7 +12390,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__semilist"  :subid("239_1280467477.44751") :method
+.sub "!PREFIX__semilist"  :subid("239_1281989574.42649") :method
 .annotate 'line', 4
     $P960 = self."!PREFIX__!subrule"("ws", "")
     new $P961, "ResizablePMCArray"
@@ -12400,7 +12400,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixish"  :subid("240_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infixish"  :subid("240_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx966_tgt
     .local int rx966_pos
@@ -12466,7 +12466,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("241_1280467477.44751") :method
+.sub "!PREFIX__infixish"  :subid("241_1281989574.42649") :method
 .annotate 'line', 447
     new $P968, "ResizablePMCArray"
     push $P968, ""
@@ -12475,7 +12475,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixstopper"  :subid("242_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infixstopper"  :subid("242_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx971_tgt
     .local int rx971_pos
@@ -12534,7 +12534,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixstopper"  :subid("243_1280467477.44751") :method
+.sub "!PREFIX__infixstopper"  :subid("243_1281989574.42649") :method
 .annotate 'line', 447
     new $P973, "ResizablePMCArray"
     push $P973, ""
@@ -12543,7 +12543,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<[ ]>"  :subid("244_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postcircumfix:sym<[ ]>"  :subid("244_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx976_tgt
     .local int rx976_pos
@@ -12581,8 +12581,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 +12600,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=
@@ -12633,7 +12633,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("245_1280467477.44751") :method
+.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("245_1281989574.42649") :method
 .annotate 'line', 447
     $P978 = self."!PREFIX__!subrule"("ws", "[")
     new $P979, "ResizablePMCArray"
@@ -12643,7 +12643,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<{ }>"  :subid("246_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postcircumfix:sym<{ }>"  :subid("246_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx982_tgt
     .local int rx982_pos
@@ -12681,8 +12681,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 +12700,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=
@@ -12733,7 +12733,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("247_1280467477.44751") :method
+.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("247_1281989574.42649") :method
 .annotate 'line', 447
     $P984 = self."!PREFIX__!subrule"("ws", "{")
     new $P985, "ResizablePMCArray"
@@ -12743,7 +12743,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<ang>"  :subid("248_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postcircumfix:sym<ang>"  :subid("248_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx988_tgt
     .local int rx988_pos
@@ -12820,7 +12820,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("249_1280467477.44751") :method
+.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("249_1281989574.42649") :method
 .annotate 'line', 447
     new $P990, "ResizablePMCArray"
     push $P990, "<"
@@ -12829,7 +12829,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<( )>"  :subid("250_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postcircumfix:sym<( )>"  :subid("250_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx993_tgt
     .local int rx993_pos
@@ -12867,8 +12867,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 +12886,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=
@@ -12919,7 +12919,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("251_1280467477.44751") :method
+.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("251_1281989574.42649") :method
 .annotate 'line', 447
     $P995 = self."!PREFIX__!subrule"("ws", "(")
     new $P996, "ResizablePMCArray"
@@ -12929,7 +12929,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<.>"  :subid("252_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postfix:sym<.>"  :subid("252_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx999_tgt
     .local int rx999_pos
@@ -12998,7 +12998,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<.>"  :subid("253_1280467477.44751") :method
+.sub "!PREFIX__postfix:sym<.>"  :subid("253_1281989574.42649") :method
 .annotate 'line', 447
     $P1001 = self."!PREFIX__!subrule"("dotty", "")
     new $P1002, "ResizablePMCArray"
@@ -13008,7 +13008,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<++>"  :subid("254_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<++>"  :subid("254_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1005_tgt
     .local int rx1005_pos
@@ -13049,8 +13049,8 @@
     add $I11, rx1005_pos, 2
     gt $I11, rx1005_eos, rx1005_fail
     sub $I11, rx1005_pos, rx1005_off
-    substr $S10, rx1005_tgt, $I11, 2
-    ne $S10, "++", rx1005_fail
+    cmp_str_at $I11, rx1005_tgt, "++", $I11, 2
+    ne $I11, 0, rx1005_fail
     add rx1005_pos, 2
     set_addr $I10, rxcap_1010_fail
     ($I12, $I11) = rx1005_cur."!mark_peek"($I10)
@@ -13091,7 +13091,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<++>"  :subid("255_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<++>"  :subid("255_1281989574.42649") :method
 .annotate 'line', 447
     $P1007 = self."!PREFIX__!subrule"("O", "++")
     new $P1008, "ResizablePMCArray"
@@ -13101,7 +13101,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<-->"  :subid("256_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<-->"  :subid("256_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1012_tgt
     .local int rx1012_pos
@@ -13142,8 +13142,8 @@
     add $I11, rx1012_pos, 2
     gt $I11, rx1012_eos, rx1012_fail
     sub $I11, rx1012_pos, rx1012_off
-    substr $S10, rx1012_tgt, $I11, 2
-    ne $S10, "--", rx1012_fail
+    cmp_str_at $I11, rx1012_tgt, "--", $I11, 2
+    ne $I11, 0, rx1012_fail
     add rx1012_pos, 2
     set_addr $I10, rxcap_1017_fail
     ($I12, $I11) = rx1012_cur."!mark_peek"($I10)
@@ -13184,7 +13184,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<-->"  :subid("257_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<-->"  :subid("257_1281989574.42649") :method
 .annotate 'line', 447
     $P1014 = self."!PREFIX__!subrule"("O", "--")
     new $P1015, "ResizablePMCArray"
@@ -13194,7 +13194,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<++>"  :subid("258_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postfix:sym<++>"  :subid("258_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1019_tgt
     .local int rx1019_pos
@@ -13235,8 +13235,8 @@
     add $I11, rx1019_pos, 2
     gt $I11, rx1019_eos, rx1019_fail
     sub $I11, rx1019_pos, rx1019_off
-    substr $S10, rx1019_tgt, $I11, 2
-    ne $S10, "++", rx1019_fail
+    cmp_str_at $I11, rx1019_tgt, "++", $I11, 2
+    ne $I11, 0, rx1019_fail
     add rx1019_pos, 2
     set_addr $I10, rxcap_1024_fail
     ($I12, $I11) = rx1019_cur."!mark_peek"($I10)
@@ -13277,7 +13277,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<++>"  :subid("259_1280467477.44751") :method
+.sub "!PREFIX__postfix:sym<++>"  :subid("259_1281989574.42649") :method
 .annotate 'line', 447
     $P1021 = self."!PREFIX__!subrule"("O", "++")
     new $P1022, "ResizablePMCArray"
@@ -13287,7 +13287,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<-->"  :subid("260_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postfix:sym<-->"  :subid("260_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1026_tgt
     .local int rx1026_pos
@@ -13328,8 +13328,8 @@
     add $I11, rx1026_pos, 2
     gt $I11, rx1026_eos, rx1026_fail
     sub $I11, rx1026_pos, rx1026_off
-    substr $S10, rx1026_tgt, $I11, 2
-    ne $S10, "--", rx1026_fail
+    cmp_str_at $I11, rx1026_tgt, "--", $I11, 2
+    ne $I11, 0, rx1026_fail
     add rx1026_pos, 2
     set_addr $I10, rxcap_1031_fail
     ($I12, $I11) = rx1026_cur."!mark_peek"($I10)
@@ -13370,7 +13370,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<-->"  :subid("261_1280467477.44751") :method
+.sub "!PREFIX__postfix:sym<-->"  :subid("261_1281989574.42649") :method
 .annotate 'line', 447
     $P1028 = self."!PREFIX__!subrule"("O", "--")
     new $P1029, "ResizablePMCArray"
@@ -13380,7 +13380,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<**>"  :subid("262_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<**>"  :subid("262_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1033_tgt
     .local int rx1033_pos
@@ -13421,8 +13421,8 @@
     add $I11, rx1033_pos, 2
     gt $I11, rx1033_eos, rx1033_fail
     sub $I11, rx1033_pos, rx1033_off
-    substr $S10, rx1033_tgt, $I11, 2
-    ne $S10, "**", rx1033_fail
+    cmp_str_at $I11, rx1033_tgt, "**", $I11, 2
+    ne $I11, 0, rx1033_fail
     add rx1033_pos, 2
     set_addr $I10, rxcap_1038_fail
     ($I12, $I11) = rx1033_cur."!mark_peek"($I10)
@@ -13463,7 +13463,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<**>"  :subid("263_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<**>"  :subid("263_1281989574.42649") :method
 .annotate 'line', 447
     $P1035 = self."!PREFIX__!subrule"("O", "**")
     new $P1036, "ResizablePMCArray"
@@ -13473,7 +13473,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<+>"  :subid("264_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<+>"  :subid("264_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1040_tgt
     .local int rx1040_pos
@@ -13514,8 +13514,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)
@@ -13556,7 +13556,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<+>"  :subid("265_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<+>"  :subid("265_1281989574.42649") :method
 .annotate 'line', 447
     $P1042 = self."!PREFIX__!subrule"("O", "+")
     new $P1043, "ResizablePMCArray"
@@ -13566,7 +13566,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<~>"  :subid("266_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<~>"  :subid("266_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1047_tgt
     .local int rx1047_pos
@@ -13607,8 +13607,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)
@@ -13649,7 +13649,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<~>"  :subid("267_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<~>"  :subid("267_1281989574.42649") :method
 .annotate 'line', 447
     $P1049 = self."!PREFIX__!subrule"("O", "~")
     new $P1050, "ResizablePMCArray"
@@ -13659,7 +13659,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<->"  :subid("268_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<->"  :subid("268_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1054_tgt
     .local int rx1054_pos
@@ -13700,8 +13700,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)
@@ -13752,7 +13752,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<->"  :subid("269_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<->"  :subid("269_1281989574.42649") :method
 .annotate 'line', 447
     new $P1056, "ResizablePMCArray"
     push $P1056, "-"
@@ -13761,7 +13761,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<?>"  :subid("270_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<?>"  :subid("270_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1060_tgt
     .local int rx1060_pos
@@ -13802,8 +13802,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)
@@ -13844,7 +13844,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<?>"  :subid("271_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<?>"  :subid("271_1281989574.42649") :method
 .annotate 'line', 447
     $P1062 = self."!PREFIX__!subrule"("O", "?")
     new $P1063, "ResizablePMCArray"
@@ -13854,7 +13854,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<!>"  :subid("272_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<!>"  :subid("272_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1067_tgt
     .local int rx1067_pos
@@ -13895,8 +13895,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)
@@ -13937,7 +13937,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<!>"  :subid("273_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<!>"  :subid("273_1281989574.42649") :method
 .annotate 'line', 447
     $P1069 = self."!PREFIX__!subrule"("O", "!")
     new $P1070, "ResizablePMCArray"
@@ -13947,7 +13947,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<|>"  :subid("274_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<|>"  :subid("274_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1074_tgt
     .local int rx1074_pos
@@ -13988,8 +13988,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)
@@ -14030,7 +14030,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<|>"  :subid("275_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<|>"  :subid("275_1281989574.42649") :method
 .annotate 'line', 447
     $P1076 = self."!PREFIX__!subrule"("O", "|")
     new $P1077, "ResizablePMCArray"
@@ -14040,7 +14040,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<*>"  :subid("276_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<*>"  :subid("276_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1081_tgt
     .local int rx1081_pos
@@ -14081,8 +14081,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)
@@ -14123,7 +14123,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<*>"  :subid("277_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<*>"  :subid("277_1281989574.42649") :method
 .annotate 'line', 447
     $P1083 = self."!PREFIX__!subrule"("O", "*")
     new $P1084, "ResizablePMCArray"
@@ -14133,7 +14133,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym</>"  :subid("278_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym</>"  :subid("278_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1088_tgt
     .local int rx1088_pos
@@ -14174,8 +14174,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)
@@ -14216,7 +14216,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym</>"  :subid("279_1280467477.44751") :method
+.sub "!PREFIX__infix:sym</>"  :subid("279_1281989574.42649") :method
 .annotate 'line', 447
     $P1090 = self."!PREFIX__!subrule"("O", "/")
     new $P1091, "ResizablePMCArray"
@@ -14226,7 +14226,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<%>"  :subid("280_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<%>"  :subid("280_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1095_tgt
     .local int rx1095_pos
@@ -14267,8 +14267,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)
@@ -14309,7 +14309,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<%>"  :subid("281_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<%>"  :subid("281_1281989574.42649") :method
 .annotate 'line', 447
     $P1097 = self."!PREFIX__!subrule"("O", "%")
     new $P1098, "ResizablePMCArray"
@@ -14319,7 +14319,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+&>"  :subid("282_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<+&>"  :subid("282_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1102_tgt
     .local int rx1102_pos
@@ -14360,8 +14360,8 @@
     add $I11, rx1102_pos, 2
     gt $I11, rx1102_eos, rx1102_fail
     sub $I11, rx1102_pos, rx1102_off
-    substr $S10, rx1102_tgt, $I11, 2
-    ne $S10, "+&", rx1102_fail
+    cmp_str_at $I11, rx1102_tgt, "+&", $I11, 2
+    ne $I11, 0, rx1102_fail
     add rx1102_pos, 2
     set_addr $I10, rxcap_1107_fail
     ($I12, $I11) = rx1102_cur."!mark_peek"($I10)
@@ -14402,7 +14402,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+&>"  :subid("283_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<+&>"  :subid("283_1281989574.42649") :method
 .annotate 'line', 447
     $P1104 = self."!PREFIX__!subrule"("O", "+&")
     new $P1105, "ResizablePMCArray"
@@ -14412,7 +14412,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+>"  :subid("284_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<+>"  :subid("284_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1109_tgt
     .local int rx1109_pos
@@ -14453,8 +14453,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)
@@ -14495,7 +14495,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+>"  :subid("285_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<+>"  :subid("285_1281989574.42649") :method
 .annotate 'line', 447
     $P1111 = self."!PREFIX__!subrule"("O", "+")
     new $P1112, "ResizablePMCArray"
@@ -14505,7 +14505,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<->"  :subid("286_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<->"  :subid("286_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1116_tgt
     .local int rx1116_pos
@@ -14546,8 +14546,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)
@@ -14588,7 +14588,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<->"  :subid("287_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<->"  :subid("287_1281989574.42649") :method
 .annotate 'line', 447
     $P1118 = self."!PREFIX__!subrule"("O", "-")
     new $P1119, "ResizablePMCArray"
@@ -14598,7 +14598,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+|>"  :subid("288_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<+|>"  :subid("288_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1123_tgt
     .local int rx1123_pos
@@ -14639,8 +14639,8 @@
     add $I11, rx1123_pos, 2
     gt $I11, rx1123_eos, rx1123_fail
     sub $I11, rx1123_pos, rx1123_off
-    substr $S10, rx1123_tgt, $I11, 2
-    ne $S10, "+|", rx1123_fail
+    cmp_str_at $I11, rx1123_tgt, "+|", $I11, 2
+    ne $I11, 0, rx1123_fail
     add rx1123_pos, 2
     set_addr $I10, rxcap_1128_fail
     ($I12, $I11) = rx1123_cur."!mark_peek"($I10)
@@ -14681,7 +14681,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+|>"  :subid("289_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<+|>"  :subid("289_1281989574.42649") :method
 .annotate 'line', 447
     $P1125 = self."!PREFIX__!subrule"("O", "+|")
     new $P1126, "ResizablePMCArray"
@@ -14691,7 +14691,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+^>"  :subid("290_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<+^>"  :subid("290_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1130_tgt
     .local int rx1130_pos
@@ -14732,8 +14732,8 @@
     add $I11, rx1130_pos, 2
     gt $I11, rx1130_eos, rx1130_fail
     sub $I11, rx1130_pos, rx1130_off
-    substr $S10, rx1130_tgt, $I11, 2
-    ne $S10, "+^", rx1130_fail
+    cmp_str_at $I11, rx1130_tgt, "+^", $I11, 2
+    ne $I11, 0, rx1130_fail
     add rx1130_pos, 2
     set_addr $I10, rxcap_1135_fail
     ($I12, $I11) = rx1130_cur."!mark_peek"($I10)
@@ -14774,7 +14774,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+^>"  :subid("291_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<+^>"  :subid("291_1281989574.42649") :method
 .annotate 'line', 447
     $P1132 = self."!PREFIX__!subrule"("O", "+^")
     new $P1133, "ResizablePMCArray"
@@ -14784,7 +14784,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~>"  :subid("292_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<~>"  :subid("292_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1137_tgt
     .local int rx1137_pos
@@ -14825,8 +14825,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)
@@ -14867,7 +14867,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~>"  :subid("293_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<~>"  :subid("293_1281989574.42649") :method
 .annotate 'line', 447
     $P1139 = self."!PREFIX__!subrule"("O", "~")
     new $P1140, "ResizablePMCArray"
@@ -14877,7 +14877,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<==>"  :subid("294_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<==>"  :subid("294_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1144_tgt
     .local int rx1144_pos
@@ -14918,8 +14918,8 @@
     add $I11, rx1144_pos, 2
     gt $I11, rx1144_eos, rx1144_fail
     sub $I11, rx1144_pos, rx1144_off
-    substr $S10, rx1144_tgt, $I11, 2
-    ne $S10, "==", rx1144_fail
+    cmp_str_at $I11, rx1144_tgt, "==", $I11, 2
+    ne $I11, 0, rx1144_fail
     add rx1144_pos, 2
     set_addr $I10, rxcap_1149_fail
     ($I12, $I11) = rx1144_cur."!mark_peek"($I10)
@@ -14960,7 +14960,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<==>"  :subid("295_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<==>"  :subid("295_1281989574.42649") :method
 .annotate 'line', 447
     $P1146 = self."!PREFIX__!subrule"("O", "==")
     new $P1147, "ResizablePMCArray"
@@ -14970,7 +14970,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<!=>"  :subid("296_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<!=>"  :subid("296_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1151_tgt
     .local int rx1151_pos
@@ -15011,8 +15011,8 @@
     add $I11, rx1151_pos, 2
     gt $I11, rx1151_eos, rx1151_fail
     sub $I11, rx1151_pos, rx1151_off
-    substr $S10, rx1151_tgt, $I11, 2
-    ne $S10, "!=", rx1151_fail
+    cmp_str_at $I11, rx1151_tgt, "!=", $I11, 2
+    ne $I11, 0, rx1151_fail
     add rx1151_pos, 2
     set_addr $I10, rxcap_1156_fail
     ($I12, $I11) = rx1151_cur."!mark_peek"($I10)
@@ -15053,7 +15053,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<!=>"  :subid("297_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<!=>"  :subid("297_1281989574.42649") :method
 .annotate 'line', 447
     $P1153 = self."!PREFIX__!subrule"("O", "!=")
     new $P1154, "ResizablePMCArray"
@@ -15063,7 +15063,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<=>"  :subid("298_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<<=>"  :subid("298_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1158_tgt
     .local int rx1158_pos
@@ -15104,8 +15104,8 @@
     add $I11, rx1158_pos, 2
     gt $I11, rx1158_eos, rx1158_fail
     sub $I11, rx1158_pos, rx1158_off
-    substr $S10, rx1158_tgt, $I11, 2
-    ne $S10, "<=", rx1158_fail
+    cmp_str_at $I11, rx1158_tgt, "<=", $I11, 2
+    ne $I11, 0, rx1158_fail
     add rx1158_pos, 2
     set_addr $I10, rxcap_1163_fail
     ($I12, $I11) = rx1158_cur."!mark_peek"($I10)
@@ -15146,7 +15146,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<=>"  :subid("299_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<<=>"  :subid("299_1281989574.42649") :method
 .annotate 'line', 447
     $P1160 = self."!PREFIX__!subrule"("O", "<=")
     new $P1161, "ResizablePMCArray"
@@ -15156,7 +15156,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>=>"  :subid("300_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<>=>"  :subid("300_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1165_tgt
     .local int rx1165_pos
@@ -15197,8 +15197,8 @@
     add $I11, rx1165_pos, 2
     gt $I11, rx1165_eos, rx1165_fail
     sub $I11, rx1165_pos, rx1165_off
-    substr $S10, rx1165_tgt, $I11, 2
-    ne $S10, ">=", rx1165_fail
+    cmp_str_at $I11, rx1165_tgt, ">=", $I11, 2
+    ne $I11, 0, rx1165_fail
     add rx1165_pos, 2
     set_addr $I10, rxcap_1170_fail
     ($I12, $I11) = rx1165_cur."!mark_peek"($I10)
@@ -15239,7 +15239,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>=>"  :subid("301_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<>=>"  :subid("301_1281989574.42649") :method
 .annotate 'line', 447
     $P1167 = self."!PREFIX__!subrule"("O", ">=")
     new $P1168, "ResizablePMCArray"
@@ -15249,7 +15249,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<>"  :subid("302_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<<>"  :subid("302_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1172_tgt
     .local int rx1172_pos
@@ -15290,8 +15290,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)
@@ -15332,7 +15332,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<>"  :subid("303_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<<>"  :subid("303_1281989574.42649") :method
 .annotate 'line', 447
     $P1174 = self."!PREFIX__!subrule"("O", "<")
     new $P1175, "ResizablePMCArray"
@@ -15342,7 +15342,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>>"  :subid("304_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<>>"  :subid("304_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1179_tgt
     .local int rx1179_pos
@@ -15383,8 +15383,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)
@@ -15425,7 +15425,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>>"  :subid("305_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<>>"  :subid("305_1281989574.42649") :method
 .annotate 'line', 447
     $P1181 = self."!PREFIX__!subrule"("O", ">")
     new $P1182, "ResizablePMCArray"
@@ -15435,7 +15435,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<eq>"  :subid("306_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<eq>"  :subid("306_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1186_tgt
     .local int rx1186_pos
@@ -15476,8 +15476,8 @@
     add $I11, rx1186_pos, 2
     gt $I11, rx1186_eos, rx1186_fail
     sub $I11, rx1186_pos, rx1186_off
-    substr $S10, rx1186_tgt, $I11, 2
-    ne $S10, "eq", rx1186_fail
+    cmp_str_at $I11, rx1186_tgt, "eq", $I11, 2
+    ne $I11, 0, rx1186_fail
     add rx1186_pos, 2
     set_addr $I10, rxcap_1191_fail
     ($I12, $I11) = rx1186_cur."!mark_peek"($I10)
@@ -15518,7 +15518,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<eq>"  :subid("307_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<eq>"  :subid("307_1281989574.42649") :method
 .annotate 'line', 447
     $P1188 = self."!PREFIX__!subrule"("O", "eq")
     new $P1189, "ResizablePMCArray"
@@ -15528,7 +15528,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ne>"  :subid("308_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<ne>"  :subid("308_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1193_tgt
     .local int rx1193_pos
@@ -15569,8 +15569,8 @@
     add $I11, rx1193_pos, 2
     gt $I11, rx1193_eos, rx1193_fail
     sub $I11, rx1193_pos, rx1193_off
-    substr $S10, rx1193_tgt, $I11, 2
-    ne $S10, "ne", rx1193_fail
+    cmp_str_at $I11, rx1193_tgt, "ne", $I11, 2
+    ne $I11, 0, rx1193_fail
     add rx1193_pos, 2
     set_addr $I10, rxcap_1198_fail
     ($I12, $I11) = rx1193_cur."!mark_peek"($I10)
@@ -15611,7 +15611,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ne>"  :subid("309_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<ne>"  :subid("309_1281989574.42649") :method
 .annotate 'line', 447
     $P1195 = self."!PREFIX__!subrule"("O", "ne")
     new $P1196, "ResizablePMCArray"
@@ -15621,7 +15621,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<le>"  :subid("310_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<le>"  :subid("310_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1200_tgt
     .local int rx1200_pos
@@ -15662,8 +15662,8 @@
     add $I11, rx1200_pos, 2
     gt $I11, rx1200_eos, rx1200_fail
     sub $I11, rx1200_pos, rx1200_off
-    substr $S10, rx1200_tgt, $I11, 2
-    ne $S10, "le", rx1200_fail
+    cmp_str_at $I11, rx1200_tgt, "le", $I11, 2
+    ne $I11, 0, rx1200_fail
     add rx1200_pos, 2
     set_addr $I10, rxcap_1205_fail
     ($I12, $I11) = rx1200_cur."!mark_peek"($I10)
@@ -15704,7 +15704,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<le>"  :subid("311_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<le>"  :subid("311_1281989574.42649") :method
 .annotate 'line', 447
     $P1202 = self."!PREFIX__!subrule"("O", "le")
     new $P1203, "ResizablePMCArray"
@@ -15714,7 +15714,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ge>"  :subid("312_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<ge>"  :subid("312_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1207_tgt
     .local int rx1207_pos
@@ -15755,8 +15755,8 @@
     add $I11, rx1207_pos, 2
     gt $I11, rx1207_eos, rx1207_fail
     sub $I11, rx1207_pos, rx1207_off
-    substr $S10, rx1207_tgt, $I11, 2
-    ne $S10, "ge", rx1207_fail
+    cmp_str_at $I11, rx1207_tgt, "ge", $I11, 2
+    ne $I11, 0, rx1207_fail
     add rx1207_pos, 2
     set_addr $I10, rxcap_1212_fail
     ($I12, $I11) = rx1207_cur."!mark_peek"($I10)
@@ -15797,7 +15797,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ge>"  :subid("313_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<ge>"  :subid("313_1281989574.42649") :method
 .annotate 'line', 447
     $P1209 = self."!PREFIX__!subrule"("O", "ge")
     new $P1210, "ResizablePMCArray"
@@ -15807,7 +15807,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<lt>"  :subid("314_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<lt>"  :subid("314_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1214_tgt
     .local int rx1214_pos
@@ -15848,8 +15848,8 @@
     add $I11, rx1214_pos, 2
     gt $I11, rx1214_eos, rx1214_fail
     sub $I11, rx1214_pos, rx1214_off
-    substr $S10, rx1214_tgt, $I11, 2
-    ne $S10, "lt", rx1214_fail
+    cmp_str_at $I11, rx1214_tgt, "lt", $I11, 2
+    ne $I11, 0, rx1214_fail
     add rx1214_pos, 2
     set_addr $I10, rxcap_1219_fail
     ($I12, $I11) = rx1214_cur."!mark_peek"($I10)
@@ -15890,7 +15890,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<lt>"  :subid("315_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<lt>"  :subid("315_1281989574.42649") :method
 .annotate 'line', 447
     $P1216 = self."!PREFIX__!subrule"("O", "lt")
     new $P1217, "ResizablePMCArray"
@@ -15900,7 +15900,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<gt>"  :subid("316_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<gt>"  :subid("316_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1221_tgt
     .local int rx1221_pos
@@ -15941,8 +15941,8 @@
     add $I11, rx1221_pos, 2
     gt $I11, rx1221_eos, rx1221_fail
     sub $I11, rx1221_pos, rx1221_off
-    substr $S10, rx1221_tgt, $I11, 2
-    ne $S10, "gt", rx1221_fail
+    cmp_str_at $I11, rx1221_tgt, "gt", $I11, 2
+    ne $I11, 0, rx1221_fail
     add rx1221_pos, 2
     set_addr $I10, rxcap_1226_fail
     ($I12, $I11) = rx1221_cur."!mark_peek"($I10)
@@ -15983,7 +15983,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<gt>"  :subid("317_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<gt>"  :subid("317_1281989574.42649") :method
 .annotate 'line', 447
     $P1223 = self."!PREFIX__!subrule"("O", "gt")
     new $P1224, "ResizablePMCArray"
@@ -15993,7 +15993,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=:=>"  :subid("318_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<=:=>"  :subid("318_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1228_tgt
     .local int rx1228_pos
@@ -16034,8 +16034,8 @@
     add $I11, rx1228_pos, 3
     gt $I11, rx1228_eos, rx1228_fail
     sub $I11, rx1228_pos, rx1228_off
-    substr $S10, rx1228_tgt, $I11, 3
-    ne $S10, "=:=", rx1228_fail
+    cmp_str_at $I11, rx1228_tgt, "=:=", $I11, 3
+    ne $I11, 0, rx1228_fail
     add rx1228_pos, 3
     set_addr $I10, rxcap_1233_fail
     ($I12, $I11) = rx1228_cur."!mark_peek"($I10)
@@ -16076,7 +16076,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=:=>"  :subid("319_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<=:=>"  :subid("319_1281989574.42649") :method
 .annotate 'line', 447
     $P1230 = self."!PREFIX__!subrule"("O", "=:=")
     new $P1231, "ResizablePMCArray"
@@ -16086,7 +16086,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~~>"  :subid("320_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<~~>"  :subid("320_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1235_tgt
     .local int rx1235_pos
@@ -16127,8 +16127,8 @@
     add $I11, rx1235_pos, 2
     gt $I11, rx1235_eos, rx1235_fail
     sub $I11, rx1235_pos, rx1235_off
-    substr $S10, rx1235_tgt, $I11, 2
-    ne $S10, "~~", rx1235_fail
+    cmp_str_at $I11, rx1235_tgt, "~~", $I11, 2
+    ne $I11, 0, rx1235_fail
     add rx1235_pos, 2
     set_addr $I10, rxcap_1240_fail
     ($I12, $I11) = rx1235_cur."!mark_peek"($I10)
@@ -16169,7 +16169,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~~>"  :subid("321_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<~~>"  :subid("321_1281989574.42649") :method
 .annotate 'line', 447
     $P1237 = self."!PREFIX__!subrule"("O", "~~")
     new $P1238, "ResizablePMCArray"
@@ -16179,7 +16179,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<&&>"  :subid("322_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<&&>"  :subid("322_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1242_tgt
     .local int rx1242_pos
@@ -16220,8 +16220,8 @@
     add $I11, rx1242_pos, 2
     gt $I11, rx1242_eos, rx1242_fail
     sub $I11, rx1242_pos, rx1242_off
-    substr $S10, rx1242_tgt, $I11, 2
-    ne $S10, "&&", rx1242_fail
+    cmp_str_at $I11, rx1242_tgt, "&&", $I11, 2
+    ne $I11, 0, rx1242_fail
     add rx1242_pos, 2
     set_addr $I10, rxcap_1247_fail
     ($I12, $I11) = rx1242_cur."!mark_peek"($I10)
@@ -16262,7 +16262,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<&&>"  :subid("323_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<&&>"  :subid("323_1281989574.42649") :method
 .annotate 'line', 447
     $P1244 = self."!PREFIX__!subrule"("O", "&&")
     new $P1245, "ResizablePMCArray"
@@ -16272,7 +16272,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<||>"  :subid("324_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<||>"  :subid("324_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1249_tgt
     .local int rx1249_pos
@@ -16313,8 +16313,8 @@
     add $I11, rx1249_pos, 2
     gt $I11, rx1249_eos, rx1249_fail
     sub $I11, rx1249_pos, rx1249_off
-    substr $S10, rx1249_tgt, $I11, 2
-    ne $S10, "||", rx1249_fail
+    cmp_str_at $I11, rx1249_tgt, "||", $I11, 2
+    ne $I11, 0, rx1249_fail
     add rx1249_pos, 2
     set_addr $I10, rxcap_1254_fail
     ($I12, $I11) = rx1249_cur."!mark_peek"($I10)
@@ -16355,7 +16355,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<||>"  :subid("325_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<||>"  :subid("325_1281989574.42649") :method
 .annotate 'line', 447
     $P1251 = self."!PREFIX__!subrule"("O", "||")
     new $P1252, "ResizablePMCArray"
@@ -16365,7 +16365,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<//>"  :subid("326_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<//>"  :subid("326_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1256_tgt
     .local int rx1256_pos
@@ -16406,8 +16406,8 @@
     add $I11, rx1256_pos, 2
     gt $I11, rx1256_eos, rx1256_fail
     sub $I11, rx1256_pos, rx1256_off
-    substr $S10, rx1256_tgt, $I11, 2
-    ne $S10, "//", rx1256_fail
+    cmp_str_at $I11, rx1256_tgt, "//", $I11, 2
+    ne $I11, 0, rx1256_fail
     add rx1256_pos, 2
     set_addr $I10, rxcap_1261_fail
     ($I12, $I11) = rx1256_cur."!mark_peek"($I10)
@@ -16448,7 +16448,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<//>"  :subid("327_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<//>"  :subid("327_1281989574.42649") :method
 .annotate 'line', 447
     $P1258 = self."!PREFIX__!subrule"("O", "//")
     new $P1259, "ResizablePMCArray"
@@ -16458,7 +16458,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<?? !!>"  :subid("328_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<?? !!>"  :subid("328_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1263_tgt
     .local int rx1263_pos
@@ -16496,8 +16496,8 @@
     add $I11, rx1263_pos, 2
     gt $I11, rx1263_eos, rx1263_fail
     sub $I11, rx1263_pos, rx1263_off
-    substr $S10, rx1263_tgt, $I11, 2
-    ne $S10, "??", rx1263_fail
+    cmp_str_at $I11, rx1263_tgt, "??", $I11, 2
+    ne $I11, 0, rx1263_fail
     add rx1263_pos, 2
 .annotate 'line', 541
   # rx subrule "ws" subtype=method negate=
@@ -16518,8 +16518,8 @@
     add $I11, rx1263_pos, 2
     gt $I11, rx1263_eos, rx1263_fail
     sub $I11, rx1263_pos, rx1263_off
-    substr $S10, rx1263_tgt, $I11, 2
-    ne $S10, "!!", rx1263_fail
+    cmp_str_at $I11, rx1263_tgt, "!!", $I11, 2
+    ne $I11, 0, rx1263_fail
     add rx1263_pos, 2
 .annotate 'line', 544
   # rx subrule "O" subtype=capture negate=
@@ -16551,7 +16551,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<?? !!>"  :subid("329_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<?? !!>"  :subid("329_1281989574.42649") :method
 .annotate 'line', 447
     $P1265 = self."!PREFIX__!subrule"("ws", "??")
     new $P1266, "ResizablePMCArray"
@@ -16561,7 +16561,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=>"  :subid("330_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<=>"  :subid("330_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1269_tgt
     .local int rx1269_pos
@@ -16602,8 +16602,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)
@@ -16643,7 +16643,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=>"  :subid("331_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<=>"  :subid("331_1281989574.42649") :method
 .annotate 'line', 447
     $P1271 = self."!PREFIX__!subrule"("panic", "=")
     new $P1272, "ResizablePMCArray"
@@ -16653,7 +16653,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<:=>"  :subid("332_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<:=>"  :subid("332_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1276_tgt
     .local int rx1276_pos
@@ -16694,8 +16694,8 @@
     add $I11, rx1276_pos, 2
     gt $I11, rx1276_eos, rx1276_fail
     sub $I11, rx1276_pos, rx1276_off
-    substr $S10, rx1276_tgt, $I11, 2
-    ne $S10, ":=", rx1276_fail
+    cmp_str_at $I11, rx1276_tgt, ":=", $I11, 2
+    ne $I11, 0, rx1276_fail
     add rx1276_pos, 2
     set_addr $I10, rxcap_1281_fail
     ($I12, $I11) = rx1276_cur."!mark_peek"($I10)
@@ -16736,7 +16736,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<:=>"  :subid("333_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<:=>"  :subid("333_1281989574.42649") :method
 .annotate 'line', 447
     $P1278 = self."!PREFIX__!subrule"("O", ":=")
     new $P1279, "ResizablePMCArray"
@@ -16746,7 +16746,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<::=>"  :subid("334_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<::=>"  :subid("334_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1283_tgt
     .local int rx1283_pos
@@ -16787,8 +16787,8 @@
     add $I11, rx1283_pos, 3
     gt $I11, rx1283_eos, rx1283_fail
     sub $I11, rx1283_pos, rx1283_off
-    substr $S10, rx1283_tgt, $I11, 3
-    ne $S10, "::=", rx1283_fail
+    cmp_str_at $I11, rx1283_tgt, "::=", $I11, 3
+    ne $I11, 0, rx1283_fail
     add rx1283_pos, 3
     set_addr $I10, rxcap_1288_fail
     ($I12, $I11) = rx1283_cur."!mark_peek"($I10)
@@ -16829,7 +16829,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<::=>"  :subid("335_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<::=>"  :subid("335_1281989574.42649") :method
 .annotate 'line', 447
     $P1285 = self."!PREFIX__!subrule"("O", "::=")
     new $P1286, "ResizablePMCArray"
@@ -16839,7 +16839,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<,>"  :subid("336_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<,>"  :subid("336_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1290_tgt
     .local int rx1290_pos
@@ -16880,8 +16880,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)
@@ -16922,7 +16922,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<,>"  :subid("337_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<,>"  :subid("337_1281989574.42649") :method
 .annotate 'line', 447
     $P1292 = self."!PREFIX__!subrule"("O", ",")
     new $P1293, "ResizablePMCArray"
@@ -16932,7 +16932,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<return>"  :subid("338_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<return>"  :subid("338_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1297_tgt
     .local int rx1297_pos
@@ -16973,8 +16973,8 @@
     add $I11, rx1297_pos, 6
     gt $I11, rx1297_eos, rx1297_fail
     sub $I11, rx1297_pos, rx1297_off
-    substr $S10, rx1297_tgt, $I11, 6
-    ne $S10, "return", rx1297_fail
+    cmp_str_at $I11, rx1297_tgt, "return", $I11, 6
+    ne $I11, 0, rx1297_fail
     add rx1297_pos, 6
     set_addr $I10, rxcap_1301_fail
     ($I12, $I11) = rx1297_cur."!mark_peek"($I10)
@@ -17021,7 +17021,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<return>"  :subid("339_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<return>"  :subid("339_1281989574.42649") :method
 .annotate 'line', 447
     new $P1299, "ResizablePMCArray"
     push $P1299, "return"
@@ -17030,7 +17030,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<make>"  :subid("340_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<make>"  :subid("340_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1303_tgt
     .local int rx1303_pos
@@ -17071,8 +17071,8 @@
     add $I11, rx1303_pos, 4
     gt $I11, rx1303_eos, rx1303_fail
     sub $I11, rx1303_pos, rx1303_off
-    substr $S10, rx1303_tgt, $I11, 4
-    ne $S10, "make", rx1303_fail
+    cmp_str_at $I11, rx1303_tgt, "make", $I11, 4
+    ne $I11, 0, rx1303_fail
     add rx1303_pos, 4
     set_addr $I10, rxcap_1307_fail
     ($I12, $I11) = rx1303_cur."!mark_peek"($I10)
@@ -17119,7 +17119,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<make>"  :subid("341_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<make>"  :subid("341_1281989574.42649") :method
 .annotate 'line', 447
     new $P1305, "ResizablePMCArray"
     push $P1305, "make"
@@ -17128,7 +17128,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<last>"  :subid("342_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<last>"  :subid("342_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1309_tgt
     .local int rx1309_pos
@@ -17169,8 +17169,8 @@
     add $I11, rx1309_pos, 4
     gt $I11, rx1309_eos, rx1309_fail
     sub $I11, rx1309_pos, rx1309_off
-    substr $S10, rx1309_tgt, $I11, 4
-    ne $S10, "last", rx1309_fail
+    cmp_str_at $I11, rx1309_tgt, "last", $I11, 4
+    ne $I11, 0, rx1309_fail
     add rx1309_pos, 4
     set_addr $I10, rxcap_1313_fail
     ($I12, $I11) = rx1309_cur."!mark_peek"($I10)
@@ -17204,7 +17204,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<last>"  :subid("343_1280467477.44751") :method
+.sub "!PREFIX__term:sym<last>"  :subid("343_1281989574.42649") :method
 .annotate 'line', 447
     new $P1311, "ResizablePMCArray"
     push $P1311, "last"
@@ -17213,7 +17213,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<next>"  :subid("344_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<next>"  :subid("344_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1315_tgt
     .local int rx1315_pos
@@ -17254,8 +17254,8 @@
     add $I11, rx1315_pos, 4
     gt $I11, rx1315_eos, rx1315_fail
     sub $I11, rx1315_pos, rx1315_off
-    substr $S10, rx1315_tgt, $I11, 4
-    ne $S10, "next", rx1315_fail
+    cmp_str_at $I11, rx1315_tgt, "next", $I11, 4
+    ne $I11, 0, rx1315_fail
     add rx1315_pos, 4
     set_addr $I10, rxcap_1319_fail
     ($I12, $I11) = rx1315_cur."!mark_peek"($I10)
@@ -17289,7 +17289,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<next>"  :subid("345_1280467477.44751") :method
+.sub "!PREFIX__term:sym<next>"  :subid("345_1281989574.42649") :method
 .annotate 'line', 447
     new $P1317, "ResizablePMCArray"
     push $P1317, "next"
@@ -17298,7 +17298,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<redo>"  :subid("346_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<redo>"  :subid("346_1281989574.42649") :method :outer("11_1281989574.42649")
 .annotate 'line', 447
     .local string rx1321_tgt
     .local int rx1321_pos
@@ -17339,8 +17339,8 @@
     add $I11, rx1321_pos, 4
     gt $I11, rx1321_eos, rx1321_fail
     sub $I11, rx1321_pos, rx1321_off
-    substr $S10, rx1321_tgt, $I11, 4
-    ne $S10, "redo", rx1321_fail
+    cmp_str_at $I11, rx1321_tgt, "redo", $I11, 4
+    ne $I11, 0, rx1321_fail
     add rx1321_pos, 4
     set_addr $I10, rxcap_1325_fail
     ($I12, $I11) = rx1321_cur."!mark_peek"($I10)
@@ -17374,7 +17374,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<redo>"  :subid("347_1280467477.44751") :method
+.sub "!PREFIX__term:sym<redo>"  :subid("347_1281989574.42649") :method
 .annotate 'line', 447
     new $P1323, "ResizablePMCArray"
     push $P1323, "redo"
@@ -17384,7 +17384,7 @@
 
 .namespace ["NQP";"Grammar"]
 .include "except_types.pasm"
-.sub "smartmatch"  :subid("348_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "smartmatch"  :subid("348_1281989574.42649") :method :outer("11_1281989574.42649")
     .param pmc param_1329
 .annotate 'line', 561
     new $P1328, 'ExceptionHandler'
@@ -17437,34 +17437,34 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1339"  :subid("349_1280467477.44751") :outer("11_1280467477.44751")
+.sub "_block1339"  :subid("349_1281989574.42649") :outer("11_1281989574.42649")
 .annotate 'line', 567
-    .const 'Sub' $P1396 = "368_1280467477.44751" 
+    .const 'Sub' $P1396 = "368_1281989574.42649" 
     capture_lex $P1396
-    .const 'Sub' $P1391 = "366_1280467477.44751" 
+    .const 'Sub' $P1391 = "366_1281989574.42649" 
     capture_lex $P1391
-    .const 'Sub' $P1379 = "363_1280467477.44751" 
+    .const 'Sub' $P1379 = "363_1281989574.42649" 
     capture_lex $P1379
-    .const 'Sub' $P1369 = "360_1280467477.44751" 
+    .const 'Sub' $P1369 = "360_1281989574.42649" 
     capture_lex $P1369
-    .const 'Sub' $P1364 = "358_1280467477.44751" 
+    .const 'Sub' $P1364 = "358_1281989574.42649" 
     capture_lex $P1364
-    .const 'Sub' $P1355 = "355_1280467477.44751" 
+    .const 'Sub' $P1355 = "355_1281989574.42649" 
     capture_lex $P1355
-    .const 'Sub' $P1350 = "353_1280467477.44751" 
+    .const 'Sub' $P1350 = "353_1281989574.42649" 
     capture_lex $P1350
-    .const 'Sub' $P1341 = "350_1280467477.44751" 
+    .const 'Sub' $P1341 = "350_1281989574.42649" 
     capture_lex $P1341
-    .const 'Sub' $P1396 = "368_1280467477.44751" 
+    .const 'Sub' $P1396 = "368_1281989574.42649" 
     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_1281989574.42649") :method :outer("349_1281989574.42649")
 .annotate 'line', 567
-    .const 'Sub' $P1347 = "352_1280467477.44751" 
+    .const 'Sub' $P1347 = "352_1281989574.42649" 
     capture_lex $P1347
     .local string rx1342_tgt
     .local int rx1342_pos
@@ -17502,12 +17502,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_1281989574.42649" 
     capture_lex $P1347
     $P10 = rx1342_cur."before"($P1347)
     unless $P10, rx1342_fail
@@ -17527,8 +17527,8 @@
     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
@@ -17552,7 +17552,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<:my>"  :subid("351_1280467477.44751") :method
+.sub "!PREFIX__metachar:sym<:my>"  :subid("351_1281989574.42649") :method
 .annotate 'line', 567
     new $P1344, "ResizablePMCArray"
     push $P1344, ":"
@@ -17561,7 +17561,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1346"  :anon :subid("352_1280467477.44751") :method :outer("350_1280467477.44751")
+.sub "_block1346"  :anon :subid("352_1281989574.42649") :method :outer("350_1281989574.42649")
 .annotate 'line', 569
     .local string rx1348_tgt
     .local int rx1348_pos
@@ -17598,8 +17598,8 @@
     add $I11, rx1348_pos, 2
     gt $I11, rx1348_eos, rx1348_fail
     sub $I11, rx1348_pos, rx1348_off
-    substr $S10, rx1348_tgt, $I11, 2
-    ne $S10, "my", rx1348_fail
+    cmp_str_at $I11, rx1348_tgt, "my", $I11, 2
+    ne $I11, 0, rx1348_fail
     add rx1348_pos, 2
   # rx pass
     rx1348_cur."!cursor_pass"(rx1348_pos, "")
@@ -17621,7 +17621,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<{ }>"  :subid("353_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "metachar:sym<{ }>"  :subid("353_1281989574.42649") :method :outer("349_1281989574.42649")
 .annotate 'line', 567
     .local string rx1351_tgt
     .local int rx1351_pos
@@ -17690,7 +17690,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<{ }>"  :subid("354_1280467477.44751") :method
+.sub "!PREFIX__metachar:sym<{ }>"  :subid("354_1281989574.42649") :method
 .annotate 'line', 567
     new $P1353, "ResizablePMCArray"
     push $P1353, "{"
@@ -17699,9 +17699,9 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<nqpvar>"  :subid("355_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "metachar:sym<nqpvar>"  :subid("355_1281989574.42649") :method :outer("349_1281989574.42649")
 .annotate 'line', 567
-    .const 'Sub' $P1361 = "357_1280467477.44751" 
+    .const 'Sub' $P1361 = "357_1281989574.42649" 
     capture_lex $P1361
     .local string rx1356_tgt
     .local int rx1356_pos
@@ -17743,7 +17743,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_1281989574.42649" 
     capture_lex $P1361
     $P10 = rx1356_cur."before"($P1361)
     unless $P10, rx1356_fail
@@ -17776,7 +17776,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<nqpvar>"  :subid("356_1280467477.44751") :method
+.sub "!PREFIX__metachar:sym<nqpvar>"  :subid("356_1281989574.42649") :method
 .annotate 'line', 567
     new $P1358, "ResizablePMCArray"
     push $P1358, "$"
@@ -17786,7 +17786,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1360"  :anon :subid("357_1280467477.44751") :method :outer("355_1280467477.44751")
+.sub "_block1360"  :anon :subid("357_1281989574.42649") :method :outer("355_1281989574.42649")
 .annotate 'line', 577
     .local string rx1362_tgt
     .local int rx1362_pos
@@ -17848,7 +17848,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<{ }>"  :subid("358_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "assertion:sym<{ }>"  :subid("358_1281989574.42649") :method :outer("349_1281989574.42649")
 .annotate 'line', 567
     .local string rx1365_tgt
     .local int rx1365_pos
@@ -17917,7 +17917,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<{ }>"  :subid("359_1280467477.44751") :method
+.sub "!PREFIX__assertion:sym<{ }>"  :subid("359_1281989574.42649") :method
 .annotate 'line', 567
     new $P1367, "ResizablePMCArray"
     push $P1367, "{"
@@ -17926,9 +17926,9 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<?{ }>"  :subid("360_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "assertion:sym<?{ }>"  :subid("360_1281989574.42649") :method :outer("349_1281989574.42649")
 .annotate 'line', 567
-    .const 'Sub' $P1375 = "362_1280467477.44751" 
+    .const 'Sub' $P1375 = "362_1281989574.42649" 
     capture_lex $P1375
     .local string rx1370_tgt
     .local int rx1370_pos
@@ -17974,7 +17974,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_1281989574.42649" 
     capture_lex $P1375
     $P10 = rx1370_cur."before"($P1375)
     unless $P10, rx1370_fail
@@ -18018,7 +18018,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<?{ }>"  :subid("361_1280467477.44751") :method
+.sub "!PREFIX__assertion:sym<?{ }>"  :subid("361_1281989574.42649") :method
 .annotate 'line', 567
     new $P1372, "ResizablePMCArray"
     push $P1372, "!"
@@ -18028,7 +18028,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1374"  :anon :subid("362_1280467477.44751") :method :outer("360_1280467477.44751")
+.sub "_block1374"  :anon :subid("362_1281989574.42649") :method :outer("360_1281989574.42649")
 .annotate 'line', 585
     .local string rx1376_tgt
     .local int rx1376_pos
@@ -18065,8 +18065,8 @@
     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, "")
@@ -18088,9 +18088,9 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<name>"  :subid("363_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "assertion:sym<name>"  :subid("363_1281989574.42649") :method :outer("349_1281989574.42649")
 .annotate 'line', 567
-    .const 'Sub' $P1388 = "365_1280467477.44751" 
+    .const 'Sub' $P1388 = "365_1281989574.42649" 
     capture_lex $P1388
     .local string rx1380_tgt
     .local int rx1380_pos
@@ -18099,7 +18099,7 @@
     .local int rx1380_rep
     .local pmc rx1380_cur
     (rx1380_cur, rx1380_pos, rx1380_tgt, $I10) = self."!cursor_start"()
-    rx1380_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
+    rx1380_cur."!cursor_caparray"("assertion", "nibbler", "arglist")
     .lex unicode:"$\x{a2}", rx1380_cur
     .local pmc match
     .lex "$/", match
@@ -18144,7 +18144,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_1281989574.42649" 
     capture_lex $P1388
     $P10 = rx1380_cur."before"($P1388)
     unless $P10, rx1380_fail
@@ -18157,8 +18157,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 +18176,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 +18195,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 +18209,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:
@@ -18254,7 +18254,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("364_1280467477.44751") :method
+.sub "!PREFIX__assertion:sym<name>"  :subid("364_1281989574.42649") :method
 .annotate 'line', 567
     $P1382 = self."!PREFIX__!subrule"("identifier", "")
     new $P1383, "ResizablePMCArray"
@@ -18264,7 +18264,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1387"  :anon :subid("365_1280467477.44751") :method :outer("363_1280467477.44751")
+.sub "_block1387"  :anon :subid("365_1281989574.42649") :method :outer("363_1281989574.42649")
 .annotate 'line', 591
     .local string rx1389_tgt
     .local int rx1389_pos
@@ -18301,8 +18301,8 @@
     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, "")
@@ -18324,7 +18324,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<var>"  :subid("366_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "assertion:sym<var>"  :subid("366_1281989574.42649") :method :outer("349_1281989574.42649")
 .annotate 'line', 567
     .local string rx1392_tgt
     .local int rx1392_pos
@@ -18393,7 +18393,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<var>"  :subid("367_1280467477.44751") :method
+.sub "!PREFIX__assertion:sym<var>"  :subid("367_1281989574.42649") :method
 .annotate 'line', 567
     new $P1394, "ResizablePMCArray"
     push $P1394, "$"
@@ -18403,7 +18403,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "codeblock"  :subid("368_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "codeblock"  :subid("368_1281989574.42649") :method :outer("349_1281989574.42649")
 .annotate 'line', 567
     .local string rx1397_tgt
     .local int rx1397_pos
@@ -18466,7 +18466,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__codeblock"  :subid("369_1280467477.44751") :method
+.sub "!PREFIX__codeblock"  :subid("369_1281989574.42649") :method
 .annotate 'line', 567
     $P1399 = self."!PREFIX__!subrule"("LANG", "")
     new $P1400, "ResizablePMCArray"
@@ -18476,18 +18476,18 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block1403" :load :anon :subid("370_1280467477.44751")
+.sub "_block1403" :load :anon :subid("370_1281989574.42649")
 .annotate 'line', 4
-    .const 'Sub' $P1405 = "11_1280467477.44751" 
+    .const 'Sub' $P1405 = "11_1281989574.42649" 
     $P1406 = $P1405()
     .return ($P1406)
 .end
 
 
 .namespace []
-.sub "_block1424" :load :anon :subid("371_1280467477.44751")
+.sub "_block1424" :load :anon :subid("371_1281989574.42649")
 .annotate 'line', 1
-    .const 'Sub' $P1426 = "10_1280467477.44751" 
+    .const 'Sub' $P1426 = "10_1281989574.42649" 
     $P1427 = $P1426()
     .return ($P1427)
 .end
@@ -18495,7 +18495,7 @@
 ### .include 'gen/nqp-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467483.70067")
+.sub "_block11"  :anon :subid("10_1281989584.83869")
 .annotate 'line', 0
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     capture_lex $P14
@@ -18512,15 +18512,15 @@
     $P2452 = $P14()
 .annotate 'line', 1
     .return ($P2452)
-    .const 'Sub' $P2454 = "143_1280467483.70067" 
+    .const 'Sub' $P2454 = "143_1281989584.83869" 
     .return ($P2454)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post144") :outer("10_1280467483.70067")
+.sub "" :load :init :subid("post144") :outer("10_1281989584.83869")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467483.70067" 
+    .const 'Sub' $P12 = "10_1281989584.83869" 
     .local pmc block
     set block, $P12
     $P2457 = get_root_global ["parrot"], "P6metaclass"
@@ -18529,217 +18529,217 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block13"  :subid("11_1280467483.70067") :outer("10_1280467483.70067")
+.sub "_block13"  :subid("11_1281989584.83869") :outer("10_1281989584.83869")
 .annotate 'line', 3
-    .const 'Sub' $P2448 = "142_1280467483.70067" 
+    .const 'Sub' $P2448 = "142_1281989584.83869" 
     capture_lex $P2448
     get_hll_global $P2331, ["NQP";"RegexActions"], "_block2330" 
     capture_lex $P2331
-    .const 'Sub' $P2320 = "132_1280467483.70067" 
+    .const 'Sub' $P2320 = "132_1281989584.83869" 
     capture_lex $P2320
-    .const 'Sub' $P2313 = "131_1280467483.70067" 
+    .const 'Sub' $P2313 = "131_1281989584.83869" 
     capture_lex $P2313
-    .const 'Sub' $P2306 = "130_1280467483.70067" 
+    .const 'Sub' $P2306 = "130_1281989584.83869" 
     capture_lex $P2306
-    .const 'Sub' $P2299 = "129_1280467483.70067" 
+    .const 'Sub' $P2299 = "129_1281989584.83869" 
     capture_lex $P2299
-    .const 'Sub' $P2286 = "128_1280467483.70067" 
+    .const 'Sub' $P2286 = "128_1281989584.83869" 
     capture_lex $P2286
-    .const 'Sub' $P2276 = "127_1280467483.70067" 
+    .const 'Sub' $P2276 = "127_1281989584.83869" 
     capture_lex $P2276
-    .const 'Sub' $P2266 = "126_1280467483.70067" 
+    .const 'Sub' $P2266 = "126_1281989584.83869" 
     capture_lex $P2266
-    .const 'Sub' $P2256 = "125_1280467483.70067" 
+    .const 'Sub' $P2256 = "125_1281989584.83869" 
     capture_lex $P2256
-    .const 'Sub' $P2249 = "124_1280467483.70067" 
+    .const 'Sub' $P2249 = "124_1281989584.83869" 
     capture_lex $P2249
-    .const 'Sub' $P2235 = "123_1280467483.70067" 
+    .const 'Sub' $P2235 = "123_1281989584.83869" 
     capture_lex $P2235
-    .const 'Sub' $P2225 = "122_1280467483.70067" 
+    .const 'Sub' $P2225 = "122_1281989584.83869" 
     capture_lex $P2225
-    .const 'Sub' $P2188 = "121_1280467483.70067" 
+    .const 'Sub' $P2188 = "121_1281989584.83869" 
     capture_lex $P2188
-    .const 'Sub' $P2174 = "120_1280467483.70067" 
+    .const 'Sub' $P2174 = "120_1281989584.83869" 
     capture_lex $P2174
-    .const 'Sub' $P2164 = "119_1280467483.70067" 
+    .const 'Sub' $P2164 = "119_1281989584.83869" 
     capture_lex $P2164
-    .const 'Sub' $P2154 = "118_1280467483.70067" 
+    .const 'Sub' $P2154 = "118_1281989584.83869" 
     capture_lex $P2154
-    .const 'Sub' $P2144 = "117_1280467483.70067" 
+    .const 'Sub' $P2144 = "117_1281989584.83869" 
     capture_lex $P2144
-    .const 'Sub' $P2134 = "116_1280467483.70067" 
+    .const 'Sub' $P2134 = "116_1281989584.83869" 
     capture_lex $P2134
-    .const 'Sub' $P2124 = "115_1280467483.70067" 
+    .const 'Sub' $P2124 = "115_1281989584.83869" 
     capture_lex $P2124
-    .const 'Sub' $P2096 = "114_1280467483.70067" 
+    .const 'Sub' $P2096 = "114_1281989584.83869" 
     capture_lex $P2096
-    .const 'Sub' $P2079 = "113_1280467483.70067" 
+    .const 'Sub' $P2079 = "113_1281989584.83869" 
     capture_lex $P2079
-    .const 'Sub' $P2069 = "112_1280467483.70067" 
+    .const 'Sub' $P2069 = "112_1281989584.83869" 
     capture_lex $P2069
-    .const 'Sub' $P2056 = "111_1280467483.70067" 
+    .const 'Sub' $P2056 = "111_1281989584.83869" 
     capture_lex $P2056
-    .const 'Sub' $P2043 = "110_1280467483.70067" 
+    .const 'Sub' $P2043 = "110_1281989584.83869" 
     capture_lex $P2043
-    .const 'Sub' $P2030 = "109_1280467483.70067" 
+    .const 'Sub' $P2030 = "109_1281989584.83869" 
     capture_lex $P2030
-    .const 'Sub' $P2020 = "108_1280467483.70067" 
+    .const 'Sub' $P2020 = "108_1281989584.83869" 
     capture_lex $P2020
-    .const 'Sub' $P1991 = "107_1280467483.70067" 
+    .const 'Sub' $P1991 = "107_1281989584.83869" 
     capture_lex $P1991
-    .const 'Sub' $P1967 = "106_1280467483.70067" 
+    .const 'Sub' $P1967 = "106_1281989584.83869" 
     capture_lex $P1967
-    .const 'Sub' $P1957 = "105_1280467483.70067" 
+    .const 'Sub' $P1957 = "105_1281989584.83869" 
     capture_lex $P1957
-    .const 'Sub' $P1947 = "104_1280467483.70067" 
+    .const 'Sub' $P1947 = "104_1281989584.83869" 
     capture_lex $P1947
-    .const 'Sub' $P1920 = "103_1280467483.70067" 
+    .const 'Sub' $P1920 = "103_1281989584.83869" 
     capture_lex $P1920
-    .const 'Sub' $P1902 = "102_1280467483.70067" 
+    .const 'Sub' $P1902 = "102_1281989584.83869" 
     capture_lex $P1902
-    .const 'Sub' $P1892 = "101_1280467483.70067" 
+    .const 'Sub' $P1892 = "101_1281989584.83869" 
     capture_lex $P1892
-    .const 'Sub' $P1788 = "98_1280467483.70067" 
+    .const 'Sub' $P1788 = "98_1281989584.83869" 
     capture_lex $P1788
-    .const 'Sub' $P1778 = "97_1280467483.70067" 
+    .const 'Sub' $P1778 = "97_1281989584.83869" 
     capture_lex $P1778
-    .const 'Sub' $P1749 = "96_1280467483.70067" 
+    .const 'Sub' $P1749 = "96_1281989584.83869" 
     capture_lex $P1749
-    .const 'Sub' $P1707 = "95_1280467483.70067" 
+    .const 'Sub' $P1707 = "95_1281989584.83869" 
     capture_lex $P1707
-    .const 'Sub' $P1691 = "94_1280467483.70067" 
+    .const 'Sub' $P1691 = "94_1281989584.83869" 
     capture_lex $P1691
-    .const 'Sub' $P1682 = "93_1280467483.70067" 
+    .const 'Sub' $P1682 = "93_1281989584.83869" 
     capture_lex $P1682
-    .const 'Sub' $P1650 = "92_1280467483.70067" 
+    .const 'Sub' $P1650 = "92_1281989584.83869" 
     capture_lex $P1650
-    .const 'Sub' $P1551 = "89_1280467483.70067" 
+    .const 'Sub' $P1551 = "89_1281989584.83869" 
     capture_lex $P1551
-    .const 'Sub' $P1534 = "88_1280467483.70067" 
+    .const 'Sub' $P1534 = "88_1281989584.83869" 
     capture_lex $P1534
-    .const 'Sub' $P1514 = "87_1280467483.70067" 
+    .const 'Sub' $P1514 = "87_1281989584.83869" 
     capture_lex $P1514
-    .const 'Sub' $P1402 = "84_1280467483.70067" 
+    .const 'Sub' $P1402 = "84_1281989584.83869" 
     capture_lex $P1402
-    .const 'Sub' $P1345 = "80_1280467483.70067" 
+    .const 'Sub' $P1345 = "80_1281989584.83869" 
     capture_lex $P1345
-    .const 'Sub' $P1300 = "78_1280467483.70067" 
+    .const 'Sub' $P1300 = "78_1281989584.83869" 
     capture_lex $P1300
-    .const 'Sub' $P1250 = "76_1280467483.70067" 
+    .const 'Sub' $P1250 = "76_1281989584.83869" 
     capture_lex $P1250
-    .const 'Sub' $P1240 = "75_1280467483.70067" 
+    .const 'Sub' $P1240 = "75_1281989584.83869" 
     capture_lex $P1240
-    .const 'Sub' $P1230 = "74_1280467483.70067" 
+    .const 'Sub' $P1230 = "74_1281989584.83869" 
     capture_lex $P1230
-    .const 'Sub' $P1159 = "72_1280467483.70067" 
+    .const 'Sub' $P1159 = "72_1281989584.83869" 
     capture_lex $P1159
-    .const 'Sub' $P1149 = "71_1280467483.70067" 
+    .const 'Sub' $P1149 = "71_1281989584.83869" 
     capture_lex $P1149
-    .const 'Sub' $P1132 = "70_1280467483.70067" 
+    .const 'Sub' $P1132 = "70_1281989584.83869" 
     capture_lex $P1132
-    .const 'Sub' $P1115 = "69_1280467483.70067" 
+    .const 'Sub' $P1115 = "69_1281989584.83869" 
     capture_lex $P1115
-    .const 'Sub' $P1098 = "68_1280467483.70067" 
+    .const 'Sub' $P1098 = "68_1281989584.83869" 
     capture_lex $P1098
-    .const 'Sub' $P1088 = "67_1280467483.70067" 
+    .const 'Sub' $P1088 = "67_1281989584.83869" 
     capture_lex $P1088
-    .const 'Sub' $P1078 = "66_1280467483.70067" 
+    .const 'Sub' $P1078 = "66_1281989584.83869" 
     capture_lex $P1078
-    .const 'Sub' $P1068 = "65_1280467483.70067" 
+    .const 'Sub' $P1068 = "65_1281989584.83869" 
     capture_lex $P1068
-    .const 'Sub' $P1044 = "64_1280467483.70067" 
+    .const 'Sub' $P1044 = "64_1281989584.83869" 
     capture_lex $P1044
-    .const 'Sub' $P991 = "63_1280467483.70067" 
+    .const 'Sub' $P991 = "63_1281989584.83869" 
     capture_lex $P991
-    .const 'Sub' $P981 = "62_1280467483.70067" 
+    .const 'Sub' $P981 = "62_1281989584.83869" 
     capture_lex $P981
-    .const 'Sub' $P892 = "60_1280467483.70067" 
+    .const 'Sub' $P892 = "60_1281989584.83869" 
     capture_lex $P892
-    .const 'Sub' $P866 = "59_1280467483.70067" 
+    .const 'Sub' $P866 = "59_1281989584.83869" 
     capture_lex $P866
-    .const 'Sub' $P850 = "58_1280467483.70067" 
+    .const 'Sub' $P850 = "58_1281989584.83869" 
     capture_lex $P850
-    .const 'Sub' $P840 = "57_1280467483.70067" 
+    .const 'Sub' $P840 = "57_1281989584.83869" 
     capture_lex $P840
-    .const 'Sub' $P830 = "56_1280467483.70067" 
+    .const 'Sub' $P830 = "56_1281989584.83869" 
     capture_lex $P830
-    .const 'Sub' $P820 = "55_1280467483.70067" 
+    .const 'Sub' $P820 = "55_1281989584.83869" 
     capture_lex $P820
-    .const 'Sub' $P810 = "54_1280467483.70067" 
+    .const 'Sub' $P810 = "54_1281989584.83869" 
     capture_lex $P810
-    .const 'Sub' $P800 = "53_1280467483.70067" 
+    .const 'Sub' $P800 = "53_1281989584.83869" 
     capture_lex $P800
-    .const 'Sub' $P790 = "52_1280467483.70067" 
+    .const 'Sub' $P790 = "52_1281989584.83869" 
     capture_lex $P790
-    .const 'Sub' $P780 = "51_1280467483.70067" 
+    .const 'Sub' $P780 = "51_1281989584.83869" 
     capture_lex $P780
-    .const 'Sub' $P770 = "50_1280467483.70067" 
+    .const 'Sub' $P770 = "50_1281989584.83869" 
     capture_lex $P770
-    .const 'Sub' $P760 = "49_1280467483.70067" 
+    .const 'Sub' $P760 = "49_1281989584.83869" 
     capture_lex $P760
-    .const 'Sub' $P750 = "48_1280467483.70067" 
+    .const 'Sub' $P750 = "48_1281989584.83869" 
     capture_lex $P750
-    .const 'Sub' $P740 = "47_1280467483.70067" 
+    .const 'Sub' $P740 = "47_1281989584.83869" 
     capture_lex $P740
-    .const 'Sub' $P730 = "46_1280467483.70067" 
+    .const 'Sub' $P730 = "46_1281989584.83869" 
     capture_lex $P730
-    .const 'Sub' $P720 = "45_1280467483.70067" 
+    .const 'Sub' $P720 = "45_1281989584.83869" 
     capture_lex $P720
-    .const 'Sub' $P702 = "44_1280467483.70067" 
+    .const 'Sub' $P702 = "44_1281989584.83869" 
     capture_lex $P702
-    .const 'Sub' $P667 = "43_1280467483.70067" 
+    .const 'Sub' $P667 = "43_1281989584.83869" 
     capture_lex $P667
-    .const 'Sub' $P651 = "42_1280467483.70067" 
+    .const 'Sub' $P651 = "42_1281989584.83869" 
     capture_lex $P651
-    .const 'Sub' $P630 = "41_1280467483.70067" 
+    .const 'Sub' $P630 = "41_1281989584.83869" 
     capture_lex $P630
-    .const 'Sub' $P610 = "40_1280467483.70067" 
+    .const 'Sub' $P610 = "40_1281989584.83869" 
     capture_lex $P610
-    .const 'Sub' $P597 = "39_1280467483.70067" 
+    .const 'Sub' $P597 = "39_1281989584.83869" 
     capture_lex $P597
-    .const 'Sub' $P571 = "38_1280467483.70067" 
+    .const 'Sub' $P571 = "38_1281989584.83869" 
     capture_lex $P571
-    .const 'Sub' $P535 = "37_1280467483.70067" 
+    .const 'Sub' $P535 = "37_1281989584.83869" 
     capture_lex $P535
-    .const 'Sub' $P518 = "36_1280467483.70067" 
+    .const 'Sub' $P518 = "36_1281989584.83869" 
     capture_lex $P518
-    .const 'Sub' $P504 = "35_1280467483.70067" 
+    .const 'Sub' $P504 = "35_1281989584.83869" 
     capture_lex $P504
-    .const 'Sub' $P451 = "33_1280467483.70067" 
+    .const 'Sub' $P451 = "33_1281989584.83869" 
     capture_lex $P451
-    .const 'Sub' $P440 = "32_1280467483.70067" 
+    .const 'Sub' $P440 = "32_1281989584.83869" 
     capture_lex $P440
-    .const 'Sub' $P427 = "31_1280467483.70067" 
+    .const 'Sub' $P427 = "31_1281989584.83869" 
     capture_lex $P427
-    .const 'Sub' $P407 = "30_1280467483.70067" 
+    .const 'Sub' $P407 = "30_1281989584.83869" 
     capture_lex $P407
-    .const 'Sub' $P397 = "29_1280467483.70067" 
+    .const 'Sub' $P397 = "29_1281989584.83869" 
     capture_lex $P397
-    .const 'Sub' $P387 = "28_1280467483.70067" 
+    .const 'Sub' $P387 = "28_1281989584.83869" 
     capture_lex $P387
-    .const 'Sub' $P371 = "27_1280467483.70067" 
+    .const 'Sub' $P371 = "27_1281989584.83869" 
     capture_lex $P371
-    .const 'Sub' $P288 = "25_1280467483.70067" 
+    .const 'Sub' $P288 = "25_1281989584.83869" 
     capture_lex $P288
-    .const 'Sub' $P245 = "23_1280467483.70067" 
+    .const 'Sub' $P245 = "23_1281989584.83869" 
     capture_lex $P245
-    .const 'Sub' $P213 = "22_1280467483.70067" 
+    .const 'Sub' $P213 = "22_1281989584.83869" 
     capture_lex $P213
-    .const 'Sub' $P180 = "21_1280467483.70067" 
+    .const 'Sub' $P180 = "21_1281989584.83869" 
     capture_lex $P180
-    .const 'Sub' $P170 = "20_1280467483.70067" 
+    .const 'Sub' $P170 = "20_1281989584.83869" 
     capture_lex $P170
-    .const 'Sub' $P151 = "19_1280467483.70067" 
+    .const 'Sub' $P151 = "19_1281989584.83869" 
     capture_lex $P151
-    .const 'Sub' $P100 = "18_1280467483.70067" 
+    .const 'Sub' $P100 = "18_1281989584.83869" 
     capture_lex $P100
-    .const 'Sub' $P84 = "17_1280467483.70067" 
+    .const 'Sub' $P84 = "17_1281989584.83869" 
     capture_lex $P84
-    .const 'Sub' $P63 = "16_1280467483.70067" 
+    .const 'Sub' $P63 = "16_1281989584.83869" 
     capture_lex $P63
-    .const 'Sub' $P27 = "13_1280467483.70067" 
+    .const 'Sub' $P27 = "13_1281989584.83869" 
     capture_lex $P27
-    .const 'Sub' $P16 = "12_1280467483.70067" 
+    .const 'Sub' $P16 = "12_1281989584.83869" 
     capture_lex $P16
     get_global $P15, "@BLOCK"
     unless_null $P15, vivify_147
@@ -18747,27 +18747,27 @@
     set_global "@BLOCK", $P15
   vivify_147:
 .annotate 'line', 9
-    .const 'Sub' $P16 = "12_1280467483.70067" 
+    .const 'Sub' $P16 = "12_1281989584.83869" 
     newclosure $P26, $P16
     .lex "xblock_immediate", $P26
 .annotate 'line', 14
-    .const 'Sub' $P27 = "13_1280467483.70067" 
+    .const 'Sub' $P27 = "13_1281989584.83869" 
     newclosure $P62, $P27
     .lex "block_immediate", $P62
 .annotate 'line', 24
-    .const 'Sub' $P63 = "16_1280467483.70067" 
+    .const 'Sub' $P63 = "16_1281989584.83869" 
     newclosure $P83, $P63
     .lex "vivitype", $P83
 .annotate 'line', 43
-    .const 'Sub' $P84 = "17_1280467483.70067" 
+    .const 'Sub' $P84 = "17_1281989584.83869" 
     newclosure $P99, $P84
     .lex "colonpair_str", $P99
 .annotate 'line', 223
-    .const 'Sub' $P100 = "18_1280467483.70067" 
+    .const 'Sub' $P100 = "18_1281989584.83869" 
     newclosure $P150, $P100
     .lex "push_block_handler", $P150
 .annotate 'line', 835
-    .const 'Sub' $P151 = "19_1280467483.70067" 
+    .const 'Sub' $P151 = "19_1281989584.83869" 
     newclosure $P165, $P151
     .lex "control", $P165
 .annotate 'line', 3
@@ -18794,19 +18794,19 @@
     $P2442 = $P2331()
 .annotate 'line', 3
     .return ($P2442)
-    .const 'Sub' $P2444 = "141_1280467483.70067" 
+    .const 'Sub' $P2444 = "141_1281989584.83869" 
     .return ($P2444)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "" :load :init :subid("post145") :outer("11_1280467483.70067")
+.sub "" :load :init :subid("post145") :outer("11_1281989584.83869")
 .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_1281989584.83869" 
     capture_lex $P2448
     $P2448()
     $P2451 = get_root_global ["parrot"], "P6metaclass"
@@ -18815,7 +18815,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2447"  :anon :subid("142_1280467483.70067") :outer("11_1280467483.70067")
+.sub "_block2447"  :anon :subid("142_1281989584.83869") :outer("11_1281989584.83869")
 .annotate 'line', 6
     get_global $P2449, "@BLOCK"
     unless_null $P2449, vivify_146
@@ -18831,7 +18831,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "xblock_immediate"  :subid("12_1280467483.70067") :outer("11_1280467483.70067")
+.sub "xblock_immediate"  :subid("12_1281989584.83869") :outer("11_1281989584.83869")
     .param pmc param_19
 .annotate 'line', 9
     new $P18, 'ExceptionHandler'
@@ -18868,10 +18868,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "block_immediate"  :subid("13_1280467483.70067") :outer("11_1280467483.70067")
+.sub "block_immediate"  :subid("13_1281989584.83869") :outer("11_1281989584.83869")
     .param pmc param_30
 .annotate 'line', 14
-    .const 'Sub' $P40 = "14_1280467483.70067" 
+    .const 'Sub' $P40 = "14_1281989584.83869" 
     capture_lex $P40
     new $P29, 'ExceptionHandler'
     set_addr $P29, control_28
@@ -18893,7 +18893,7 @@
     set $P33, $P38
   unless_34_end:
     if $P33, unless_32_end
-    .const 'Sub' $P40 = "14_1280467483.70067" 
+    .const 'Sub' $P40 = "14_1281989584.83869" 
     capture_lex $P40
     $P40()
   unless_32_end:
@@ -18910,9 +18910,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block39"  :anon :subid("14_1280467483.70067") :outer("13_1280467483.70067")
+.sub "_block39"  :anon :subid("14_1281989584.83869") :outer("13_1281989584.83869")
 .annotate 'line', 16
-    .const 'Sub' $P51 = "15_1280467483.70067" 
+    .const 'Sub' $P51 = "15_1281989584.83869" 
     capture_lex $P51
 .annotate 'line', 17
     new $P41, "Undef"
@@ -18935,7 +18935,7 @@
     unless $P45, loop56_done
     shift $P49, $P45
   loop56_redo:
-    .const 'Sub' $P51 = "15_1280467483.70067" 
+    .const 'Sub' $P51 = "15_1281989584.83869" 
     capture_lex $P51
     $P51($P49)
   loop56_next:
@@ -18958,7 +18958,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block50"  :anon :subid("15_1280467483.70067") :outer("14_1280467483.70067")
+.sub "_block50"  :anon :subid("15_1281989584.83869") :outer("14_1281989584.83869")
     .param pmc param_52
 .annotate 'line', 18
     .lex "$_", param_52
@@ -18971,7 +18971,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "vivitype"  :subid("16_1280467483.70067") :outer("11_1280467483.70067")
+.sub "vivitype"  :subid("16_1281989584.83869") :outer("11_1281989584.83869")
     .param pmc param_66
 .annotate 'line', 24
     new $P65, 'ExceptionHandler'
@@ -19020,7 +19020,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "colonpair_str"  :subid("17_1280467483.70067") :outer("11_1280467483.70067")
+.sub "colonpair_str"  :subid("17_1281989584.83869") :outer("11_1281989584.83869")
     .param pmc param_87
 .annotate 'line', 43
     new $P86, 'ExceptionHandler'
@@ -19059,7 +19059,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_1281989584.83869") :outer("11_1281989584.83869")
     .param pmc param_103
     .param pmc param_104
 .annotate 'line', 223
@@ -19177,7 +19177,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "control"  :subid("19_1280467483.70067") :outer("11_1280467483.70067")
+.sub "control"  :subid("19_1281989584.83869") :outer("11_1281989584.83869")
     .param pmc param_154
     .param pmc param_155
 .annotate 'line', 835
@@ -19210,7 +19210,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("20_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "TOP"  :subid("20_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_173
 .annotate 'line', 33
     new $P172, 'ExceptionHandler'
@@ -19241,7 +19241,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "deflongname"  :subid("21_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "deflongname"  :subid("21_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_183
 .annotate 'line', 35
     new $P182, 'ExceptionHandler'
@@ -19331,7 +19331,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_216
 .annotate 'line', 49
     new $P215, 'ExceptionHandler'
@@ -19406,10 +19406,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statementlist"  :subid("23_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statementlist"  :subid("23_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_248
 .annotate 'line', 76
-    .const 'Sub' $P262 = "24_1280467483.70067" 
+    .const 'Sub' $P262 = "24_1281989584.83869" 
     capture_lex $P262
     new $P247, 'ExceptionHandler'
     set_addr $P247, control_246
@@ -19454,7 +19454,7 @@
     unless $P256, loop281_done
     shift $P260, $P256
   loop281_redo:
-    .const 'Sub' $P262 = "24_1280467483.70067" 
+    .const 'Sub' $P262 = "24_1281989584.83869" 
     capture_lex $P262
     $P262($P260)
   loop281_next:
@@ -19484,7 +19484,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block261"  :anon :subid("24_1280467483.70067") :outer("23_1280467483.70067")
+.sub "_block261"  :anon :subid("24_1281989584.83869") :outer("23_1281989584.83869")
     .param pmc param_264
 .annotate 'line', 80
     new $P263, "Undef"
@@ -19539,12 +19539,12 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement"  :subid("25_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement"  :subid("25_1281989584.83869") :method :outer("11_1281989584.83869")
     .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_1281989584.83869" 
     capture_lex $P300
     new $P290, 'ExceptionHandler'
     set_addr $P290, control_289
@@ -19603,7 +19603,7 @@
     goto if_296_end
   if_296:
 .annotate 'line', 91
-    .const 'Sub' $P300 = "26_1280467483.70067" 
+    .const 'Sub' $P300 = "26_1281989584.83869" 
     capture_lex $P300
     $P300()
   if_296_end:
@@ -19622,7 +19622,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block299"  :anon :subid("26_1280467483.70067") :outer("25_1280467483.70067")
+.sub "_block299"  :anon :subid("26_1281989584.83869") :outer("25_1281989584.83869")
 .annotate 'line', 92
     new $P301, "Undef"
     .lex "$mc", $P301
@@ -19795,7 +19795,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "xblock"  :subid("27_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "xblock"  :subid("27_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_374
 .annotate 'line', 117
     new $P373, 'ExceptionHandler'
@@ -19840,7 +19840,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "pblock"  :subid("28_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "pblock"  :subid("28_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_390
 .annotate 'line', 121
     new $P389, 'ExceptionHandler'
@@ -19873,7 +19873,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "block"  :subid("29_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "block"  :subid("29_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_400
 .annotate 'line', 125
     new $P399, 'ExceptionHandler'
@@ -19906,7 +19906,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "blockoid"  :subid("30_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "blockoid"  :subid("30_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_410
 .annotate 'line', 129
     new $P409, 'ExceptionHandler'
@@ -19963,7 +19963,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "newpad"  :subid("31_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "newpad"  :subid("31_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_430
 .annotate 'line', 138
     new $P429, 'ExceptionHandler'
@@ -19999,7 +19999,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "outerctx"  :subid("32_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "outerctx"  :subid("32_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_443
 .annotate 'line', 143
     new $P442, 'ExceptionHandler'
@@ -20039,10 +20039,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_454
 .annotate 'line', 150
-    .const 'Sub' $P482 = "34_1280467483.70067" 
+    .const 'Sub' $P482 = "34_1281989584.83869" 
     capture_lex $P482
     new $P453, 'ExceptionHandler'
     set_addr $P453, control_452
@@ -20127,7 +20127,7 @@
     isgt $I480, $N479, 0.0
     unless $I480, loop497_done
   loop497_redo:
-    .const 'Sub' $P482 = "34_1280467483.70067" 
+    .const 'Sub' $P482 = "34_1281989584.83869" 
     capture_lex $P482
     $P482()
   loop497_next:
@@ -20155,7 +20155,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block481"  :anon :subid("34_1280467483.70067") :outer("33_1280467483.70067")
+.sub "_block481"  :anon :subid("34_1281989584.83869") :outer("33_1281989584.83869")
 .annotate 'line', 159
     new $P483, "Undef"
     .lex "$else", $P483
@@ -20195,7 +20195,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_507
 .annotate 'line', 166
     new $P506, 'ExceptionHandler'
@@ -20237,7 +20237,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_521
 .annotate 'line', 172
     new $P520, 'ExceptionHandler'
@@ -20288,7 +20288,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_538
 .annotate 'line', 178
     new $P537, 'ExceptionHandler'
@@ -20389,7 +20389,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_574
 .annotate 'line', 192
     new $P573, 'ExceptionHandler'
@@ -20470,7 +20470,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_600
 .annotate 'line', 205
     new $P599, 'ExceptionHandler'
@@ -20506,7 +20506,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_613
 .annotate 'line', 209
     new $P612, 'ExceptionHandler'
@@ -20565,7 +20565,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_633
 .annotate 'line', 216
     new $P632, 'ExceptionHandler'
@@ -20624,7 +20624,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_654
 .annotate 'line', 260
     new $P653, 'ExceptionHandler'
@@ -20671,7 +20671,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_670
 .annotate 'line', 265
     new $P669, 'ExceptionHandler'
@@ -20749,7 +20749,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "blorst"  :subid("44_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "blorst"  :subid("44_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_705
 .annotate 'line', 288
     new $P704, 'ExceptionHandler'
@@ -20809,7 +20809,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_723
 .annotate 'line', 296
     new $P722, 'ExceptionHandler'
@@ -20840,7 +20840,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_733
 .annotate 'line', 297
     new $P732, 'ExceptionHandler'
@@ -20871,7 +20871,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_743
 .annotate 'line', 299
     new $P742, 'ExceptionHandler'
@@ -20902,7 +20902,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_753
 .annotate 'line', 300
     new $P752, 'ExceptionHandler'
@@ -20933,7 +20933,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_763
 .annotate 'line', 304
     new $P762, 'ExceptionHandler'
@@ -20964,7 +20964,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_773
 .annotate 'line', 305
     new $P772, 'ExceptionHandler'
@@ -20995,7 +20995,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_783
 .annotate 'line', 306
     new $P782, 'ExceptionHandler'
@@ -21026,7 +21026,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_793
 .annotate 'line', 307
     new $P792, 'ExceptionHandler'
@@ -21057,7 +21057,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_803
 .annotate 'line', 308
     new $P802, 'ExceptionHandler'
@@ -21088,7 +21088,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_813
 .annotate 'line', 309
     new $P812, 'ExceptionHandler'
@@ -21119,7 +21119,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_823
 .annotate 'line', 310
     new $P822, 'ExceptionHandler'
@@ -21150,7 +21150,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_833
 .annotate 'line', 311
     new $P832, 'ExceptionHandler'
@@ -21181,7 +21181,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_843
 .annotate 'line', 312
     new $P842, 'ExceptionHandler'
@@ -21212,7 +21212,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "fatarrow"  :subid("58_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "fatarrow"  :subid("58_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_853
 .annotate 'line', 314
     new $P852, 'ExceptionHandler'
@@ -21262,7 +21262,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "colonpair"  :subid("59_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "colonpair"  :subid("59_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_869
 .annotate 'line', 320
     new $P868, 'ExceptionHandler'
@@ -21344,10 +21344,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "variable"  :subid("60_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "variable"  :subid("60_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_895
 .annotate 'line', 328
-    .const 'Sub' $P908 = "61_1280467483.70067" 
+    .const 'Sub' $P908 = "61_1281989584.83869" 
     capture_lex $P908
     new $P894, 'ExceptionHandler'
     set_addr $P894, control_893
@@ -21371,7 +21371,7 @@
   vivify_325:
     if $P900, if_898
 .annotate 'line', 334
-    .const 'Sub' $P908 = "61_1280467483.70067" 
+    .const 'Sub' $P908 = "61_1281989584.83869" 
     capture_lex $P908
     $P908()
     goto if_898_end
@@ -21408,7 +21408,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block907"  :anon :subid("61_1280467483.70067") :outer("60_1280467483.70067")
+.sub "_block907"  :anon :subid("61_1281989584.83869") :outer("60_1281989584.83869")
 .annotate 'line', 335
     $P909 = root_new ['parrot';'ResizablePMCArray']
     .lex "@name", $P909
@@ -21578,7 +21578,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_984
 .annotate 'line', 366
     new $P983, 'ExceptionHandler'
@@ -21609,7 +21609,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_994
 .annotate 'line', 367
     new $P993, 'ExceptionHandler'
@@ -21767,7 +21767,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1047
 .annotate 'line', 390
     new $P1046, 'ExceptionHandler'
@@ -21846,7 +21846,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1071
 .annotate 'line', 397
     new $P1070, 'ExceptionHandler'
@@ -21877,7 +21877,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1081
 .annotate 'line', 398
     new $P1080, 'ExceptionHandler'
@@ -21908,7 +21908,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1091
 .annotate 'line', 399
     new $P1090, 'ExceptionHandler'
@@ -21939,7 +21939,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scoped"  :subid("68_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "scoped"  :subid("68_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1101
 .annotate 'line', 401
     new $P1100, 'ExceptionHandler'
@@ -21998,7 +21998,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "declarator"  :subid("69_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "declarator"  :subid("69_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1118
 .annotate 'line', 407
     new $P1117, 'ExceptionHandler'
@@ -22057,7 +22057,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1135
 .annotate 'line', 413
     new $P1134, 'ExceptionHandler'
@@ -22111,7 +22111,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1152
 .annotate 'line', 414
     new $P1151, 'ExceptionHandler'
@@ -22142,10 +22142,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1162
 .annotate 'line', 417
-    .const 'Sub' $P1202 = "73_1280467483.70067" 
+    .const 'Sub' $P1202 = "73_1281989584.83869" 
     capture_lex $P1202
     new $P1161, 'ExceptionHandler'
     set_addr $P1161, control_1160
@@ -22227,7 +22227,7 @@
     iseq $I1187, $S1186, "has"
     if $I1187, if_1184
 .annotate 'line', 434
-    .const 'Sub' $P1202 = "73_1280467483.70067" 
+    .const 'Sub' $P1202 = "73_1281989584.83869" 
     capture_lex $P1202
     $P1202()
     goto if_1184_end
@@ -22287,7 +22287,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1201"  :anon :subid("73_1280467483.70067") :outer("72_1280467483.70067")
+.sub "_block1201"  :anon :subid("73_1281989584.83869") :outer("72_1281989584.83869")
 .annotate 'line', 435
     new $P1203, "Undef"
     .lex "$scope", $P1203
@@ -22349,7 +22349,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1233
 .annotate 'line', 445
     new $P1232, 'ExceptionHandler'
@@ -22380,7 +22380,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1243
 .annotate 'line', 446
     new $P1242, 'ExceptionHandler'
@@ -22411,10 +22411,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1253
 .annotate 'line', 448
-    .const 'Sub' $P1264 = "77_1280467483.70067" 
+    .const 'Sub' $P1264 = "77_1281989584.83869" 
     capture_lex $P1264
     new $P1252, 'ExceptionHandler'
     set_addr $P1252, control_1251
@@ -22451,7 +22451,7 @@
     new $P1262, "Undef"
   vivify_423:
     unless $P1262, if_1260_end
-    .const 'Sub' $P1264 = "77_1280467483.70067" 
+    .const 'Sub' $P1264 = "77_1281989584.83869" 
     capture_lex $P1264
     $P1264()
   if_1260_end:
@@ -22470,7 +22470,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1263"  :anon :subid("77_1280467483.70067") :outer("76_1280467483.70067")
+.sub "_block1263"  :anon :subid("77_1281989584.83869") :outer("76_1281989584.83869")
 .annotate 'line', 453
     new $P1265, "Undef"
     .lex "$name", $P1265
@@ -22567,10 +22567,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1303
 .annotate 'line', 466
-    .const 'Sub' $P1324 = "79_1280467483.70067" 
+    .const 'Sub' $P1324 = "79_1281989584.83869" 
     capture_lex $P1324
     new $P1302, 'ExceptionHandler'
     set_addr $P1302, control_1301
@@ -22637,7 +22637,7 @@
     new $P1322, "Undef"
   vivify_444:
     unless $P1322, if_1320_end
-    .const 'Sub' $P1324 = "79_1280467483.70067" 
+    .const 'Sub' $P1324 = "79_1281989584.83869" 
     capture_lex $P1324
     $P1324()
   if_1320_end:
@@ -22671,7 +22671,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1323"  :anon :subid("79_1280467483.70067") :outer("78_1280467483.70067")
+.sub "_block1323"  :anon :subid("79_1281989584.83869") :outer("78_1281989584.83869")
 .annotate 'line', 476
     new $P1325, "Undef"
     .lex "$name", $P1325
@@ -22703,12 +22703,12 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "signature"  :subid("80_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "signature"  :subid("80_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1348
 .annotate 'line', 484
-    .const 'Sub' $P1374 = "82_1280467483.70067" 
+    .const 'Sub' $P1374 = "82_1281989584.83869" 
     capture_lex $P1374
-    .const 'Sub' $P1359 = "81_1280467483.70067" 
+    .const 'Sub' $P1359 = "81_1281989584.83869" 
     capture_lex $P1359
     new $P1347, 'ExceptionHandler'
     set_addr $P1347, control_1346
@@ -22752,7 +22752,7 @@
     unless $P1353, loop1365_done
     shift $P1357, $P1353
   loop1365_redo:
-    .const 'Sub' $P1359 = "81_1280467483.70067" 
+    .const 'Sub' $P1359 = "81_1281989584.83869" 
     capture_lex $P1359
     $P1359($P1357)
   loop1365_next:
@@ -22781,7 +22781,7 @@
     set $P1368, $I1372
     goto if_1369_end
   if_1369:
-    .const 'Sub' $P1374 = "82_1280467483.70067" 
+    .const 'Sub' $P1374 = "82_1281989584.83869" 
     capture_lex $P1374
     $P1400 = $P1374()
     set $P1368, $P1400
@@ -22797,7 +22797,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1358"  :anon :subid("81_1280467483.70067") :outer("80_1280467483.70067")
+.sub "_block1358"  :anon :subid("81_1281989584.83869") :outer("80_1281989584.83869")
     .param pmc param_1360
 .annotate 'line', 487
     .lex "$_", param_1360
@@ -22811,9 +22811,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1373"  :anon :subid("82_1280467483.70067") :outer("80_1280467483.70067")
+.sub "_block1373"  :anon :subid("82_1281989584.83869") :outer("80_1281989584.83869")
 .annotate 'line', 490
-    .const 'Sub' $P1383 = "83_1280467483.70067" 
+    .const 'Sub' $P1383 = "83_1281989584.83869" 
     capture_lex $P1383
 .annotate 'line', 491
     $P1375 = root_new ['parrot';'ResizablePMCArray']
@@ -22834,7 +22834,7 @@
     unless $P1377, loop1393_done
     shift $P1381, $P1377
   loop1393_redo:
-    .const 'Sub' $P1383 = "83_1280467483.70067" 
+    .const 'Sub' $P1383 = "83_1281989584.83869" 
     capture_lex $P1383
     $P1383($P1381)
   loop1393_next:
@@ -22865,7 +22865,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1382"  :anon :subid("83_1280467483.70067") :outer("82_1280467483.70067")
+.sub "_block1382"  :anon :subid("83_1281989584.83869") :outer("82_1281989584.83869")
     .param pmc param_1384
 .annotate 'line', 492
     .lex "$_", param_1384
@@ -22888,10 +22888,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "parameter"  :subid("84_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "parameter"  :subid("84_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1405
 .annotate 'line', 499
-    .const 'Sub' $P1486 = "85_1280467483.70067" 
+    .const 'Sub' $P1486 = "85_1281989584.83869" 
     capture_lex $P1486
     new $P1404, 'ExceptionHandler'
     set_addr $P1404, control_1403
@@ -23117,7 +23117,7 @@
     new $P1484, "Undef"
   vivify_490:
     unless $P1484, if_1482_end
-    .const 'Sub' $P1486 = "85_1280467483.70067" 
+    .const 'Sub' $P1486 = "85_1281989584.83869" 
     capture_lex $P1486
     $P1486()
   if_1482_end:
@@ -23137,9 +23137,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1485"  :anon :subid("85_1280467483.70067") :outer("84_1280467483.70067")
+.sub "_block1485"  :anon :subid("85_1281989584.83869") :outer("84_1281989584.83869")
 .annotate 'line', 530
-    .const 'Sub' $P1498 = "86_1280467483.70067" 
+    .const 'Sub' $P1498 = "86_1281989584.83869" 
     capture_lex $P1498
 .annotate 'line', 531
     $P1487 = root_new ['parrot';'ResizablePMCArray']
@@ -23178,7 +23178,7 @@
     unless $P1489, loop1504_done
     shift $P1496, $P1489
   loop1504_redo:
-    .const 'Sub' $P1498 = "86_1280467483.70067" 
+    .const 'Sub' $P1498 = "86_1281989584.83869" 
     capture_lex $P1498
     $P1498($P1496)
   loop1504_next:
@@ -23202,7 +23202,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1497"  :anon :subid("86_1280467483.70067") :outer("85_1280467483.70067")
+.sub "_block1497"  :anon :subid("86_1281989584.83869") :outer("85_1281989584.83869")
     .param pmc param_1499
 .annotate 'line', 532
     .lex "$_", param_1499
@@ -23216,7 +23216,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1517
 .annotate 'line', 539
     new $P1516, 'ExceptionHandler'
@@ -23270,7 +23270,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1537
 .annotate 'line', 547
     new $P1536, 'ExceptionHandler'
@@ -23324,14 +23324,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .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_1281989584.83869" 
     capture_lex $P1625
-    .const 'Sub' $P1597 = "90_1280467483.70067" 
+    .const 'Sub' $P1597 = "90_1281989584.83869" 
     capture_lex $P1597
     new $P1553, 'ExceptionHandler'
     set_addr $P1553, control_1552
@@ -23389,13 +23389,13 @@
     iseq $I1595, $S1594, "open"
     if $I1595, if_1592
 .annotate 'line', 599
-    .const 'Sub' $P1625 = "91_1280467483.70067" 
+    .const 'Sub' $P1625 = "91_1281989584.83869" 
     capture_lex $P1625
     $P1625()
     goto if_1592_end
   if_1592:
 .annotate 'line', 586
-    .const 'Sub' $P1597 = "90_1280467483.70067" 
+    .const 'Sub' $P1597 = "90_1281989584.83869" 
     capture_lex $P1597
     $P1597()
   if_1592_end:
@@ -23452,7 +23452,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1624"  :anon :subid("91_1280467483.70067") :outer("89_1280467483.70067")
+.sub "_block1624"  :anon :subid("91_1281989584.83869") :outer("89_1281989584.83869")
 .annotate 'line', 600
     new $P1626, "Undef"
     .lex "$regex", $P1626
@@ -23504,7 +23504,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1596"  :anon :subid("90_1280467483.70067") :outer("89_1280467483.70067")
+.sub "_block1596"  :anon :subid("90_1281989584.83869") :outer("89_1281989584.83869")
 .annotate 'line', 587
     $P1598 = root_new ['parrot';'Hash']
     .lex "%h", $P1598
@@ -23603,7 +23603,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "dotty"  :subid("92_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "dotty"  :subid("92_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1653
 .annotate 'line', 617
     new $P1652, 'ExceptionHandler'
@@ -23701,7 +23701,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1685
 .annotate 'line', 626
     new $P1684, 'ExceptionHandler'
@@ -23727,7 +23727,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1694
 .annotate 'line', 630
     new $P1693, 'ExceptionHandler'
@@ -23777,7 +23777,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1710
 .annotate 'line', 636
     new $P1709, 'ExceptionHandler'
@@ -23896,7 +23896,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1752
 .annotate 'line', 650
     new $P1751, 'ExceptionHandler'
@@ -23988,7 +23988,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "args"  :subid("97_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "args"  :subid("97_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1781
 .annotate 'line', 665
     new $P1780, 'ExceptionHandler'
@@ -24019,10 +24019,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "arglist"  :subid("98_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "arglist"  :subid("98_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1791
 .annotate 'line', 667
-    .const 'Sub' $P1802 = "99_1280467483.70067" 
+    .const 'Sub' $P1802 = "99_1281989584.83869" 
     capture_lex $P1802
     new $P1790, 'ExceptionHandler'
     set_addr $P1790, control_1789
@@ -24054,7 +24054,7 @@
     new $P1800, "Undef"
   vivify_558:
     unless $P1800, if_1798_end
-    .const 'Sub' $P1802 = "99_1280467483.70067" 
+    .const 'Sub' $P1802 = "99_1281989584.83869" 
     capture_lex $P1802
     $P1802()
   if_1798_end:
@@ -24211,9 +24211,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1801"  :anon :subid("99_1280467483.70067") :outer("98_1280467483.70067")
+.sub "_block1801"  :anon :subid("99_1281989584.83869") :outer("98_1281989584.83869")
 .annotate 'line', 669
-    .const 'Sub' $P1823 = "100_1280467483.70067" 
+    .const 'Sub' $P1823 = "100_1281989584.83869" 
     capture_lex $P1823
 .annotate 'line', 670
     new $P1803, "Undef"
@@ -24266,7 +24266,7 @@
     unless $P1817, loop1828_done
     shift $P1821, $P1817
   loop1828_redo:
-    .const 'Sub' $P1823 = "100_1280467483.70067" 
+    .const 'Sub' $P1823 = "100_1281989584.83869" 
     capture_lex $P1823
     $P1823($P1821)
   loop1828_next:
@@ -24289,7 +24289,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1822"  :anon :subid("100_1280467483.70067") :outer("99_1280467483.70067")
+.sub "_block1822"  :anon :subid("100_1281989584.83869") :outer("99_1281989584.83869")
     .param pmc param_1824
 .annotate 'line', 672
     .lex "$_", param_1824
@@ -24302,7 +24302,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1895
 .annotate 'line', 693
     new $P1894, 'ExceptionHandler'
@@ -24333,7 +24333,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1905
 .annotate 'line', 695
     new $P1904, 'ExceptionHandler'
@@ -24390,7 +24390,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1923
 .annotate 'line', 701
     new $P1922, 'ExceptionHandler'
@@ -24467,7 +24467,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1950
 .annotate 'line', 716
     new $P1949, 'ExceptionHandler'
@@ -24498,7 +24498,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1960
 .annotate 'line', 717
     new $P1959, 'ExceptionHandler'
@@ -24529,7 +24529,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1970
 .annotate 'line', 719
     new $P1969, 'ExceptionHandler'
@@ -24608,7 +24608,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_1994
 .annotate 'line', 727
     new $P1993, 'ExceptionHandler'
@@ -24688,7 +24688,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "semilist"  :subid("108_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "semilist"  :subid("108_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2023
 .annotate 'line', 734
     new $P2022, 'ExceptionHandler'
@@ -24719,7 +24719,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2033
 .annotate 'line', 736
     new $P2032, 'ExceptionHandler'
@@ -24757,7 +24757,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2046
 .annotate 'line', 742
     new $P2045, 'ExceptionHandler'
@@ -24795,7 +24795,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2059
 .annotate 'line', 748
     new $P2058, 'ExceptionHandler'
@@ -24833,7 +24833,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2072
 .annotate 'line', 754
     new $P2071, 'ExceptionHandler'
@@ -24866,7 +24866,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "value"  :subid("113_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "value"  :subid("113_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2082
 .annotate 'line', 758
     new $P2081, 'ExceptionHandler'
@@ -24922,7 +24922,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "number"  :subid("114_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "number"  :subid("114_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2099
 .annotate 'line', 762
     new $P2098, 'ExceptionHandler'
@@ -25001,7 +25001,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2127
 .annotate 'line', 768
     new $P2126, 'ExceptionHandler'
@@ -25032,7 +25032,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2137
 .annotate 'line', 769
     new $P2136, 'ExceptionHandler'
@@ -25063,7 +25063,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2147
 .annotate 'line', 770
     new $P2146, 'ExceptionHandler'
@@ -25094,7 +25094,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2157
 .annotate 'line', 771
     new $P2156, 'ExceptionHandler'
@@ -25125,7 +25125,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2167
 .annotate 'line', 772
     new $P2166, 'ExceptionHandler'
@@ -25156,7 +25156,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2177
 .annotate 'line', 773
     new $P2176, 'ExceptionHandler'
@@ -25193,7 +25193,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2191
     .param pmc param_2192 :optional
     .param int has_param_2192 :opt_flag
@@ -25303,7 +25303,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2228
 .annotate 'line', 802
     new $P2227, 'ExceptionHandler'
@@ -25334,7 +25334,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2238
 .annotate 'line', 803
     new $P2237, 'ExceptionHandler'
@@ -25373,7 +25373,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2252
 .annotate 'line', 808
     new $P2251, 'ExceptionHandler'
@@ -25395,7 +25395,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2259
 .annotate 'line', 812
     new $P2258, 'ExceptionHandler'
@@ -25426,7 +25426,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2269
 .annotate 'line', 814
     new $P2268, 'ExceptionHandler'
@@ -25457,7 +25457,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2279
 .annotate 'line', 820
     new $P2278, 'ExceptionHandler'
@@ -25488,7 +25488,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2289
 .annotate 'line', 826
     new $P2288, 'ExceptionHandler'
@@ -25519,7 +25519,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2302
 .annotate 'line', 844
     new $P2301, 'ExceptionHandler'
@@ -25541,7 +25541,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2309
 .annotate 'line', 845
     new $P2308, 'ExceptionHandler'
@@ -25563,7 +25563,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2316
 .annotate 'line', 846
     new $P2315, 'ExceptionHandler'
@@ -25585,7 +25585,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_1281989584.83869") :method :outer("11_1281989584.83869")
     .param pmc param_2323
 .annotate 'line', 848
     new $P2322, 'ExceptionHandler'
@@ -25611,24 +25611,24 @@
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "_block2330"  :subid("133_1280467483.70067") :outer("11_1280467483.70067")
+.sub "_block2330"  :subid("133_1281989584.83869") :outer("11_1281989584.83869")
 .annotate 'line', 853
-    .const 'Sub' $P2416 = "140_1280467483.70067" 
+    .const 'Sub' $P2416 = "140_1281989584.83869" 
     capture_lex $P2416
-    .const 'Sub' $P2403 = "139_1280467483.70067" 
+    .const 'Sub' $P2403 = "139_1281989584.83869" 
     capture_lex $P2403
-    .const 'Sub' $P2386 = "138_1280467483.70067" 
+    .const 'Sub' $P2386 = "138_1281989584.83869" 
     capture_lex $P2386
-    .const 'Sub' $P2373 = "137_1280467483.70067" 
+    .const 'Sub' $P2373 = "137_1281989584.83869" 
     capture_lex $P2373
-    .const 'Sub' $P2360 = "136_1280467483.70067" 
+    .const 'Sub' $P2360 = "136_1281989584.83869" 
     capture_lex $P2360
-    .const 'Sub' $P2347 = "135_1280467483.70067" 
+    .const 'Sub' $P2347 = "135_1281989584.83869" 
     capture_lex $P2347
-    .const 'Sub' $P2332 = "134_1280467483.70067" 
+    .const 'Sub' $P2332 = "134_1281989584.83869" 
     capture_lex $P2332
 .annotate 'line', 887
-    .const 'Sub' $P2416 = "140_1280467483.70067" 
+    .const 'Sub' $P2416 = "140_1281989584.83869" 
     newclosure $P2441, $P2416
 .annotate 'line', 853
     .return ($P2441)
@@ -25637,7 +25637,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_1281989584.83869") :method :outer("133_1281989584.83869")
     .param pmc param_2335
 .annotate 'line', 855
     new $P2334, 'ExceptionHandler'
@@ -25678,7 +25678,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_1281989584.83869") :method :outer("133_1281989584.83869")
     .param pmc param_2350
 .annotate 'line', 861
     new $P2349, 'ExceptionHandler'
@@ -25714,7 +25714,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_1281989584.83869") :method :outer("133_1281989584.83869")
     .param pmc param_2363
 .annotate 'line', 866
     new $P2362, 'ExceptionHandler'
@@ -25750,7 +25750,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_1281989584.83869") :method :outer("133_1281989584.83869")
     .param pmc param_2376
 .annotate 'line', 871
     new $P2375, 'ExceptionHandler'
@@ -25786,7 +25786,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_1281989584.83869") :method :outer("133_1281989584.83869")
     .param pmc param_2389
 .annotate 'line', 876
     new $P2388, 'ExceptionHandler'
@@ -25834,7 +25834,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_1281989584.83869") :method :outer("133_1281989584.83869")
     .param pmc param_2406
 .annotate 'line', 882
     new $P2405, 'ExceptionHandler'
@@ -25870,7 +25870,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "codeblock"  :subid("140_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "codeblock"  :subid("140_1281989584.83869") :method :outer("133_1281989584.83869")
     .param pmc param_2419
 .annotate 'line', 887
     new $P2418, 'ExceptionHandler'
@@ -25934,18 +25934,18 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2443" :load :anon :subid("141_1280467483.70067")
+.sub "_block2443" :load :anon :subid("141_1281989584.83869")
 .annotate 'line', 3
-    .const 'Sub' $P2445 = "11_1280467483.70067" 
+    .const 'Sub' $P2445 = "11_1281989584.83869" 
     $P2446 = $P2445()
     .return ($P2446)
 .end
 
 
 .namespace []
-.sub "_block2453" :load :anon :subid("143_1280467483.70067")
+.sub "_block2453" :load :anon :subid("143_1281989584.83869")
 .annotate 'line', 1
-    .const 'Sub' $P2455 = "10_1280467483.70067" 
+    .const 'Sub' $P2455 = "10_1281989584.83869" 
     $P2456 = $P2455()
     .return ($P2456)
 .end

Modified: branches/substr_eq_at/ext/nqp-rx/src/stage0/P6Regex-s0.pir
==============================================================================
--- branches/substr_eq_at/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Mon Aug 16 20:06:04 2010	(r48535)
+++ branches/substr_eq_at/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Mon Aug 16 21:38:56 2010	(r48536)
@@ -16,7 +16,7 @@
 ### .include 'gen/p6regex-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467470.54449")
+.sub "_block11"  :anon :subid("10_1281989562.09477")
 .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_1281989562.09477" 
     .return ($P574)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post162") :outer("10_1280467470.54449")
+.sub "" :load :init :subid("post162") :outer("10_1281989562.09477")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467470.54449" 
+    .const 'Sub' $P12 = "10_1281989562.09477" 
     .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_1281989562.09477") :outer("10_1281989562.09477")
 .annotate 'line', 3
-    .const 'Sub' $P561 = "158_1280467470.54449" 
+    .const 'Sub' $P561 = "158_1281989562.09477" 
     capture_lex $P561
-    .const 'Sub' $P554 = "156_1280467470.54449" 
+    .const 'Sub' $P554 = "156_1281989562.09477" 
     capture_lex $P554
-    .const 'Sub' $P547 = "154_1280467470.54449" 
+    .const 'Sub' $P547 = "154_1281989562.09477" 
     capture_lex $P547
-    .const 'Sub' $P527 = "149_1280467470.54449" 
+    .const 'Sub' $P527 = "149_1281989562.09477" 
     capture_lex $P527
-    .const 'Sub' $P493 = "143_1280467470.54449" 
+    .const 'Sub' $P493 = "143_1281989562.09477" 
     capture_lex $P493
-    .const 'Sub' $P481 = "140_1280467470.54449" 
+    .const 'Sub' $P481 = "140_1281989562.09477" 
     capture_lex $P481
-    .const 'Sub' $P469 = "137_1280467470.54449" 
+    .const 'Sub' $P469 = "137_1281989562.09477" 
     capture_lex $P469
-    .const 'Sub' $P463 = "135_1280467470.54449" 
+    .const 'Sub' $P463 = "135_1281989562.09477" 
     capture_lex $P463
-    .const 'Sub' $P452 = "132_1280467470.54449" 
+    .const 'Sub' $P452 = "132_1281989562.09477" 
     capture_lex $P452
-    .const 'Sub' $P441 = "129_1280467470.54449" 
+    .const 'Sub' $P441 = "129_1281989562.09477" 
     capture_lex $P441
-    .const 'Sub' $P432 = "125_1280467470.54449" 
+    .const 'Sub' $P432 = "125_1281989562.09477" 
     capture_lex $P432
-    .const 'Sub' $P426 = "123_1280467470.54449" 
+    .const 'Sub' $P426 = "123_1281989562.09477" 
     capture_lex $P426
-    .const 'Sub' $P420 = "121_1280467470.54449" 
+    .const 'Sub' $P420 = "121_1281989562.09477" 
     capture_lex $P420
-    .const 'Sub' $P414 = "119_1280467470.54449" 
+    .const 'Sub' $P414 = "119_1281989562.09477" 
     capture_lex $P414
-    .const 'Sub' $P408 = "117_1280467470.54449" 
+    .const 'Sub' $P408 = "117_1281989562.09477" 
     capture_lex $P408
-    .const 'Sub' $P400 = "115_1280467470.54449" 
+    .const 'Sub' $P400 = "115_1281989562.09477" 
     capture_lex $P400
-    .const 'Sub' $P389 = "113_1280467470.54449" 
+    .const 'Sub' $P389 = "113_1281989562.09477" 
     capture_lex $P389
-    .const 'Sub' $P378 = "111_1280467470.54449" 
+    .const 'Sub' $P378 = "111_1281989562.09477" 
     capture_lex $P378
-    .const 'Sub' $P372 = "109_1280467470.54449" 
+    .const 'Sub' $P372 = "109_1281989562.09477" 
     capture_lex $P372
-    .const 'Sub' $P366 = "107_1280467470.54449" 
+    .const 'Sub' $P366 = "107_1281989562.09477" 
     capture_lex $P366
-    .const 'Sub' $P360 = "105_1280467470.54449" 
+    .const 'Sub' $P360 = "105_1281989562.09477" 
     capture_lex $P360
-    .const 'Sub' $P354 = "103_1280467470.54449" 
+    .const 'Sub' $P354 = "103_1281989562.09477" 
     capture_lex $P354
-    .const 'Sub' $P348 = "101_1280467470.54449" 
+    .const 'Sub' $P348 = "101_1281989562.09477" 
     capture_lex $P348
-    .const 'Sub' $P342 = "99_1280467470.54449" 
+    .const 'Sub' $P342 = "99_1281989562.09477" 
     capture_lex $P342
-    .const 'Sub' $P336 = "97_1280467470.54449" 
+    .const 'Sub' $P336 = "97_1281989562.09477" 
     capture_lex $P336
-    .const 'Sub' $P330 = "95_1280467470.54449" 
+    .const 'Sub' $P330 = "95_1281989562.09477" 
     capture_lex $P330
-    .const 'Sub' $P318 = "91_1280467470.54449" 
+    .const 'Sub' $P318 = "91_1281989562.09477" 
     capture_lex $P318
-    .const 'Sub' $P308 = "89_1280467470.54449" 
+    .const 'Sub' $P308 = "89_1281989562.09477" 
     capture_lex $P308
-    .const 'Sub' $P301 = "87_1280467470.54449" 
+    .const 'Sub' $P301 = "87_1281989562.09477" 
     capture_lex $P301
-    .const 'Sub' $P289 = "85_1280467470.54449" 
+    .const 'Sub' $P289 = "85_1281989562.09477" 
     capture_lex $P289
-    .const 'Sub' $P282 = "83_1280467470.54449" 
+    .const 'Sub' $P282 = "83_1281989562.09477" 
     capture_lex $P282
-    .const 'Sub' $P276 = "81_1280467470.54449" 
+    .const 'Sub' $P276 = "81_1281989562.09477" 
     capture_lex $P276
-    .const 'Sub' $P270 = "79_1280467470.54449" 
+    .const 'Sub' $P270 = "79_1281989562.09477" 
     capture_lex $P270
-    .const 'Sub' $P263 = "77_1280467470.54449" 
+    .const 'Sub' $P263 = "77_1281989562.09477" 
     capture_lex $P263
-    .const 'Sub' $P256 = "75_1280467470.54449" 
+    .const 'Sub' $P256 = "75_1281989562.09477" 
     capture_lex $P256
-    .const 'Sub' $P249 = "73_1280467470.54449" 
+    .const 'Sub' $P249 = "73_1281989562.09477" 
     capture_lex $P249
-    .const 'Sub' $P242 = "71_1280467470.54449" 
+    .const 'Sub' $P242 = "71_1281989562.09477" 
     capture_lex $P242
-    .const 'Sub' $P236 = "69_1280467470.54449" 
+    .const 'Sub' $P236 = "69_1281989562.09477" 
     capture_lex $P236
-    .const 'Sub' $P230 = "67_1280467470.54449" 
+    .const 'Sub' $P230 = "67_1281989562.09477" 
     capture_lex $P230
-    .const 'Sub' $P224 = "65_1280467470.54449" 
+    .const 'Sub' $P224 = "65_1281989562.09477" 
     capture_lex $P224
-    .const 'Sub' $P218 = "63_1280467470.54449" 
+    .const 'Sub' $P218 = "63_1281989562.09477" 
     capture_lex $P218
-    .const 'Sub' $P212 = "61_1280467470.54449" 
+    .const 'Sub' $P212 = "61_1281989562.09477" 
     capture_lex $P212
-    .const 'Sub' $P207 = "59_1280467470.54449" 
+    .const 'Sub' $P207 = "59_1281989562.09477" 
     capture_lex $P207
-    .const 'Sub' $P202 = "57_1280467470.54449" 
+    .const 'Sub' $P202 = "57_1281989562.09477" 
     capture_lex $P202
-    .const 'Sub' $P196 = "55_1280467470.54449" 
+    .const 'Sub' $P196 = "55_1281989562.09477" 
     capture_lex $P196
-    .const 'Sub' $P190 = "53_1280467470.54449" 
+    .const 'Sub' $P190 = "53_1281989562.09477" 
     capture_lex $P190
-    .const 'Sub' $P184 = "51_1280467470.54449" 
+    .const 'Sub' $P184 = "51_1281989562.09477" 
     capture_lex $P184
-    .const 'Sub' $P169 = "46_1280467470.54449" 
+    .const 'Sub' $P169 = "46_1281989562.09477" 
     capture_lex $P169
-    .const 'Sub' $P154 = "44_1280467470.54449" 
+    .const 'Sub' $P154 = "44_1281989562.09477" 
     capture_lex $P154
-    .const 'Sub' $P147 = "42_1280467470.54449" 
+    .const 'Sub' $P147 = "42_1281989562.09477" 
     capture_lex $P147
-    .const 'Sub' $P140 = "40_1280467470.54449" 
+    .const 'Sub' $P140 = "40_1281989562.09477" 
     capture_lex $P140
-    .const 'Sub' $P133 = "38_1280467470.54449" 
+    .const 'Sub' $P133 = "38_1281989562.09477" 
     capture_lex $P133
-    .const 'Sub' $P116 = "33_1280467470.54449" 
+    .const 'Sub' $P116 = "33_1281989562.09477" 
     capture_lex $P116
-    .const 'Sub' $P104 = "30_1280467470.54449" 
+    .const 'Sub' $P104 = "30_1281989562.09477" 
     capture_lex $P104
-    .const 'Sub' $P97 = "28_1280467470.54449" 
+    .const 'Sub' $P97 = "28_1281989562.09477" 
     capture_lex $P97
-    .const 'Sub' $P87 = "26_1280467470.54449" 
+    .const 'Sub' $P87 = "26_1281989562.09477" 
     capture_lex $P87
-    .const 'Sub' $P80 = "24_1280467470.54449" 
+    .const 'Sub' $P80 = "24_1281989562.09477" 
     capture_lex $P80
-    .const 'Sub' $P68 = "22_1280467470.54449" 
+    .const 'Sub' $P68 = "22_1281989562.09477" 
     capture_lex $P68
-    .const 'Sub' $P61 = "20_1280467470.54449" 
+    .const 'Sub' $P61 = "20_1281989562.09477" 
     capture_lex $P61
-    .const 'Sub' $P54 = "18_1280467470.54449" 
+    .const 'Sub' $P54 = "18_1281989562.09477" 
     capture_lex $P54
-    .const 'Sub' $P44 = "15_1280467470.54449" 
+    .const 'Sub' $P44 = "15_1281989562.09477" 
     capture_lex $P44
-    .const 'Sub' $P37 = "13_1280467470.54449" 
+    .const 'Sub' $P37 = "13_1281989562.09477" 
     capture_lex $P37
-    .const 'Sub' $P15 = "12_1280467470.54449" 
+    .const 'Sub' $P15 = "12_1281989562.09477" 
     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_1281989562.09477" 
     capture_lex $P561
     .return ($P561)
-    .const 'Sub' $P569 = "160_1280467470.54449" 
+    .const 'Sub' $P569 = "160_1281989562.09477" 
     .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_1281989562.09477") :method :outer("11_1281989562.09477")
     .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_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx38_tgt
     .local int rx38_pos
@@ -294,8 +294,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
@@ -329,7 +329,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__ws"  :subid("14_1280467470.54449") :method
+.sub "!PREFIX__ws"  :subid("14_1281989562.09477") :method
 .annotate 'line', 3
     new $P40, "ResizablePMCArray"
     push $P40, ""
@@ -338,9 +338,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "normspace"  :subid("15_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "normspace"  :subid("15_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
-    .const 'Sub' $P50 = "17_1280467470.54449" 
+    .const 'Sub' $P50 = "17_1281989562.09477" 
     capture_lex $P50
     .local string rx45_tgt
     .local int rx45_pos
@@ -376,7 +376,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_1281989562.09477" 
     capture_lex $P50
     $P10 = rx45_cur."before"($P50)
     unless $P10, rx45_fail
@@ -406,7 +406,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__normspace"  :subid("16_1280467470.54449") :method
+.sub "!PREFIX__normspace"  :subid("16_1281989562.09477") :method
 .annotate 'line', 3
     new $P47, "ResizablePMCArray"
     push $P47, ""
@@ -415,7 +415,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block49"  :anon :subid("17_1280467470.54449") :method :outer("15_1280467470.54449")
+.sub "_block49"  :anon :subid("17_1281989562.09477") :method :outer("15_1281989562.09477")
 .annotate 'line', 10
     .local string rx51_tgt
     .local int rx51_pos
@@ -463,8 +463,8 @@
     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
@@ -487,7 +487,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "identifier"  :subid("18_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "identifier"  :subid("18_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx55_tgt
     .local int rx55_pos
@@ -569,7 +569,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("19_1280467470.54449") :method
+.sub "!PREFIX__identifier"  :subid("19_1281989562.09477") :method
 .annotate 'line', 3
     $P57 = self."!PREFIX__!subrule"("ident", "")
     new $P58, "ResizablePMCArray"
@@ -579,7 +579,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arg"  :subid("20_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "arg"  :subid("20_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx62_tgt
     .local int rx62_pos
@@ -694,7 +694,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arg"  :subid("21_1280467470.54449") :method
+.sub "!PREFIX__arg"  :subid("21_1281989562.09477") :method
 .annotate 'line', 3
     new $P64, "ResizablePMCArray"
     push $P64, ""
@@ -705,7 +705,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arglist"  :subid("22_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "arglist"  :subid("22_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx69_tgt
     .local int rx69_pos
@@ -770,8 +770,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)
@@ -817,7 +817,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("23_1280467470.54449") :method
+.sub "!PREFIX__arglist"  :subid("23_1281989562.09477") :method
 .annotate 'line', 3
     $P71 = self."!PREFIX__!subrule"("ws", "")
     new $P72, "ResizablePMCArray"
@@ -827,7 +827,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "TOP"  :subid("24_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "TOP"  :subid("24_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx81_tgt
     .local int rx81_pos
@@ -904,7 +904,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__TOP"  :subid("25_1280467470.54449") :method
+.sub "!PREFIX__TOP"  :subid("25_1281989562.09477") :method
 .annotate 'line', 3
     $P83 = self."!PREFIX__!subrule"("nibbler", "")
     new $P84, "ResizablePMCArray"
@@ -914,7 +914,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "nibbler"  :subid("26_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "nibbler"  :subid("26_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx88_tgt
     .local int rx88_pos
@@ -969,8 +969,8 @@
     add $I11, rx88_pos, 2
     gt $I11, rx88_eos, rx88_fail
     sub $I11, rx88_pos, rx88_off
-    substr $S10, rx88_tgt, $I11, 2
-    ne $S10, "||", rx88_fail
+    cmp_str_at $I11, rx88_tgt, "||", $I11, 2
+    ne $I11, 0, rx88_fail
     add rx88_pos, 2
     goto alt93_end
   alt93_1:
@@ -980,8 +980,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:
@@ -991,8 +991,8 @@
     add $I11, rx88_pos, 2
     gt $I11, rx88_eos, rx88_fail
     sub $I11, rx88_pos, rx88_off
-    substr $S10, rx88_tgt, $I11, 2
-    ne $S10, "&&", rx88_fail
+    cmp_str_at $I11, rx88_tgt, "&&", $I11, 2
+    ne $I11, 0, rx88_fail
     add rx88_pos, 2
     goto alt93_end
   alt93_3:
@@ -1000,8 +1000,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
@@ -1028,8 +1028,8 @@
     add $I11, rx88_pos, 2
     gt $I11, rx88_eos, rx88_fail
     sub $I11, rx88_pos, rx88_off
-    substr $S10, rx88_tgt, $I11, 2
-    ne $S10, "||", rx88_fail
+    cmp_str_at $I11, rx88_tgt, "||", $I11, 2
+    ne $I11, 0, rx88_fail
     add rx88_pos, 2
     goto alt95_end
   alt95_1:
@@ -1037,8 +1037,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:
@@ -1089,7 +1089,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__nibbler"  :subid("27_1280467470.54449") :method
+.sub "!PREFIX__nibbler"  :subid("27_1281989562.09477") :method
 .annotate 'line', 3
     new $P90, "ResizablePMCArray"
     push $P90, ""
@@ -1098,7 +1098,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termish"  :subid("28_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "termish"  :subid("28_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx98_tgt
     .local int rx98_pos
@@ -1178,7 +1178,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__termish"  :subid("29_1280467470.54449") :method
+.sub "!PREFIX__termish"  :subid("29_1281989562.09477") :method
 .annotate 'line', 3
     new $P100, "ResizablePMCArray"
     push $P100, ""
@@ -1187,9 +1187,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantified_atom"  :subid("30_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "quantified_atom"  :subid("30_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
-    .const 'Sub' $P113 = "32_1280467470.54449" 
+    .const 'Sub' $P113 = "32_1281989562.09477" 
     capture_lex $P113
     .local string rx105_tgt
     .local int rx105_pos
@@ -1254,7 +1254,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_1281989562.09477" 
     capture_lex $P113
     $P10 = rx105_cur."before"($P113)
     unless $P10, rx105_fail
@@ -1295,7 +1295,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantified_atom"  :subid("31_1280467470.54449") :method
+.sub "!PREFIX__quantified_atom"  :subid("31_1281989562.09477") :method
 .annotate 'line', 3
     $P107 = self."!PREFIX__!subrule"("atom", "")
     new $P108, "ResizablePMCArray"
@@ -1305,7 +1305,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block112"  :anon :subid("32_1280467470.54449") :method :outer("30_1280467470.54449")
+.sub "_block112"  :anon :subid("32_1281989562.09477") :method :outer("30_1281989562.09477")
 .annotate 'line', 43
     .local string rx114_tgt
     .local int rx114_pos
@@ -1342,8 +1342,8 @@
     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, "")
@@ -1365,9 +1365,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "atom"  :subid("33_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "atom"  :subid("33_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
-    .const 'Sub' $P126 = "35_1280467470.54449" 
+    .const 'Sub' $P126 = "35_1281989562.09477" 
     capture_lex $P126
     .local string rx117_tgt
     .local int rx117_pos
@@ -1429,7 +1429,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_1281989562.09477" 
     capture_lex $P126
     $P10 = rx117_cur."before"($P126)
     unless $P10, rx117_fail
@@ -1469,7 +1469,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__atom"  :subid("34_1280467470.54449") :method
+.sub "!PREFIX__atom"  :subid("34_1281989562.09477") :method
 .annotate 'line', 3
     $P119 = self."!PREFIX__!subrule"("metachar", "")
     new $P120, "ResizablePMCArray"
@@ -1480,7 +1480,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block125"  :anon :subid("35_1280467470.54449") :method :outer("33_1280467470.54449")
+.sub "_block125"  :anon :subid("35_1281989562.09477") :method :outer("33_1281989562.09477")
 .annotate 'line', 49
     .local string rx127_tgt
     .local int rx127_pos
@@ -1539,7 +1539,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier"  :subid("36_1280467470.54449") :method
+.sub "quantifier"  :subid("36_1281989562.09477") :method
 .annotate 'line', 54
     $P130 = self."!protoregex"("quantifier")
     .return ($P130)
@@ -1547,7 +1547,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier"  :subid("37_1280467470.54449") :method
+.sub "!PREFIX__quantifier"  :subid("37_1281989562.09477") :method
 .annotate 'line', 54
     $P132 = self."!PREFIX__!protoregex"("quantifier")
     .return ($P132)
@@ -1555,7 +1555,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<*>"  :subid("38_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "quantifier:sym<*>"  :subid("38_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx134_tgt
     .local int rx134_pos
@@ -1596,8 +1596,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)
@@ -1638,7 +1638,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<*>"  :subid("39_1280467470.54449") :method
+.sub "!PREFIX__quantifier:sym<*>"  :subid("39_1281989562.09477") :method
 .annotate 'line', 3
     $P136 = self."!PREFIX__!subrule"("backmod", "*")
     new $P137, "ResizablePMCArray"
@@ -1648,7 +1648,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<+>"  :subid("40_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "quantifier:sym<+>"  :subid("40_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx141_tgt
     .local int rx141_pos
@@ -1689,8 +1689,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)
@@ -1731,7 +1731,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<+>"  :subid("41_1280467470.54449") :method
+.sub "!PREFIX__quantifier:sym<+>"  :subid("41_1281989562.09477") :method
 .annotate 'line', 3
     $P143 = self."!PREFIX__!subrule"("backmod", "+")
     new $P144, "ResizablePMCArray"
@@ -1741,7 +1741,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<?>"  :subid("42_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "quantifier:sym<?>"  :subid("42_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx148_tgt
     .local int rx148_pos
@@ -1782,8 +1782,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)
@@ -1824,7 +1824,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<?>"  :subid("43_1280467470.54449") :method
+.sub "!PREFIX__quantifier:sym<?>"  :subid("43_1281989562.09477") :method
 .annotate 'line', 3
     $P150 = self."!PREFIX__!subrule"("backmod", "?")
     new $P151, "ResizablePMCArray"
@@ -1834,7 +1834,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<**>"  :subid("44_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "quantifier:sym<**>"  :subid("44_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx155_tgt
     .local int rx155_pos
@@ -1876,8 +1876,8 @@
     add $I11, rx155_pos, 2
     gt $I11, rx155_eos, rx155_fail
     sub $I11, rx155_pos, rx155_off
-    substr $S10, rx155_tgt, $I11, 2
-    ne $S10, "**", rx155_fail
+    cmp_str_at $I11, rx155_tgt, "**", $I11, 2
+    ne $I11, 0, rx155_fail
     add rx155_pos, 2
     set_addr $I10, rxcap_159_fail
     ($I12, $I11) = rx155_cur."!mark_peek"($I10)
@@ -1972,8 +1972,8 @@
     add $I11, rx155_pos, 2
     gt $I11, rx155_eos, rx155_fail
     sub $I11, rx155_pos, rx155_off
-    substr $S10, rx155_tgt, $I11, 2
-    ne $S10, "..", rx155_fail
+    cmp_str_at $I11, rx155_tgt, "..", $I11, 2
+    ne $I11, 0, rx155_fail
     add rx155_pos, 2
 .annotate 'line', 63
   # rx subcapture "max"
@@ -1998,8 +1998,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:
@@ -2060,7 +2060,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<**>"  :subid("45_1280467470.54449") :method
+.sub "!PREFIX__quantifier:sym<**>"  :subid("45_1281989562.09477") :method
 .annotate 'line', 3
     new $P157, "ResizablePMCArray"
     push $P157, "**"
@@ -2069,9 +2069,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backmod"  :subid("46_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backmod"  :subid("46_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
-    .const 'Sub' $P177 = "48_1280467470.54449" 
+    .const 'Sub' $P177 = "48_1281989562.09477" 
     capture_lex $P177
     .local string rx170_tgt
     .local int rx170_pos
@@ -2113,8 +2113,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 +2126,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,14 +2137,14 @@
     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_1281989562.09477" 
     capture_lex $P177
     $P10 = rx170_cur."before"($P177)
     if $P10, rx170_fail
@@ -2170,7 +2170,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backmod"  :subid("47_1280467470.54449") :method
+.sub "!PREFIX__backmod"  :subid("47_1281989562.09477") :method
 .annotate 'line', 3
     new $P172, "ResizablePMCArray"
     push $P172, ""
@@ -2179,7 +2179,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block176"  :anon :subid("48_1280467470.54449") :method :outer("46_1280467470.54449")
+.sub "_block176"  :anon :subid("48_1281989562.09477") :method :outer("46_1281989562.09477")
 .annotate 'line', 73
     .local string rx178_tgt
     .local int rx178_pos
@@ -2216,8 +2216,8 @@
     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, "")
@@ -2239,7 +2239,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar"  :subid("49_1280467470.54449") :method
+.sub "metachar"  :subid("49_1281989562.09477") :method
 .annotate 'line', 75
     $P181 = self."!protoregex"("metachar")
     .return ($P181)
@@ -2247,7 +2247,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar"  :subid("50_1280467470.54449") :method
+.sub "!PREFIX__metachar"  :subid("50_1281989562.09477") :method
 .annotate 'line', 75
     $P183 = self."!PREFIX__!protoregex"("metachar")
     .return ($P183)
@@ -2255,7 +2255,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<ws>"  :subid("51_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<ws>"  :subid("51_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx185_tgt
     .local int rx185_pos
@@ -2315,7 +2315,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<ws>"  :subid("52_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<ws>"  :subid("52_1281989562.09477") :method
 .annotate 'line', 3
     $P187 = self."!PREFIX__!subrule"("normspace", "")
     new $P188, "ResizablePMCArray"
@@ -2325,7 +2325,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<[ ]>"  :subid("53_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<[ ]>"  :subid("53_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx191_tgt
     .local int rx191_pos
@@ -2363,8 +2363,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,8 +2377,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, 93, rx191_fail
     add rx191_pos, 1
   # rx pass
     rx191_cur."!cursor_pass"(rx191_pos, "metachar:sym<[ ]>")
@@ -2401,7 +2401,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<[ ]>"  :subid("54_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<[ ]>"  :subid("54_1281989562.09477") :method
 .annotate 'line', 3
     $P193 = self."!PREFIX__!subrule"("nibbler", "[")
     new $P194, "ResizablePMCArray"
@@ -2411,7 +2411,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<( )>"  :subid("55_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<( )>"  :subid("55_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx197_tgt
     .local int rx197_pos
@@ -2449,8 +2449,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,8 +2463,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, 41, rx197_fail
     add rx197_pos, 1
   # rx pass
     rx197_cur."!cursor_pass"(rx197_pos, "metachar:sym<( )>")
@@ -2487,7 +2487,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<( )>"  :subid("56_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<( )>"  :subid("56_1281989562.09477") :method
 .annotate 'line', 3
     $P199 = self."!PREFIX__!subrule"("nibbler", "(")
     new $P200, "ResizablePMCArray"
@@ -2497,7 +2497,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<'>"  :subid("57_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<'>"  :subid("57_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx203_tgt
     .local int rx203_pos
@@ -2565,7 +2565,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<'>"  :subid("58_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<'>"  :subid("58_1281989562.09477") :method
 .annotate 'line', 3
     new $P205, "ResizablePMCArray"
     push $P205, "'"
@@ -2574,7 +2574,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<\">"  :subid("59_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<\">"  :subid("59_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx208_tgt
     .local int rx208_pos
@@ -2642,7 +2642,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<\">"  :subid("60_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<\">"  :subid("60_1281989562.09477") :method
 .annotate 'line', 3
     new $P210, "ResizablePMCArray"
     push $P210, "\""
@@ -2651,7 +2651,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<.>"  :subid("61_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<.>"  :subid("61_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx213_tgt
     .local int rx213_pos
@@ -2692,8 +2692,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)
@@ -2727,7 +2727,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<.>"  :subid("62_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<.>"  :subid("62_1281989562.09477") :method
 .annotate 'line', 3
     new $P215, "ResizablePMCArray"
     push $P215, "."
@@ -2736,7 +2736,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^>"  :subid("63_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<^>"  :subid("63_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx219_tgt
     .local int rx219_pos
@@ -2777,8 +2777,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)
@@ -2812,7 +2812,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^>"  :subid("64_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<^>"  :subid("64_1281989562.09477") :method
 .annotate 'line', 3
     new $P221, "ResizablePMCArray"
     push $P221, "^"
@@ -2821,7 +2821,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^^>"  :subid("65_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<^^>"  :subid("65_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx225_tgt
     .local int rx225_pos
@@ -2862,8 +2862,8 @@
     add $I11, rx225_pos, 2
     gt $I11, rx225_eos, rx225_fail
     sub $I11, rx225_pos, rx225_off
-    substr $S10, rx225_tgt, $I11, 2
-    ne $S10, "^^", rx225_fail
+    cmp_str_at $I11, rx225_tgt, "^^", $I11, 2
+    ne $I11, 0, rx225_fail
     add rx225_pos, 2
     set_addr $I10, rxcap_229_fail
     ($I12, $I11) = rx225_cur."!mark_peek"($I10)
@@ -2897,7 +2897,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^^>"  :subid("66_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<^^>"  :subid("66_1281989562.09477") :method
 .annotate 'line', 3
     new $P227, "ResizablePMCArray"
     push $P227, "^^"
@@ -2906,7 +2906,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$>"  :subid("67_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<$>"  :subid("67_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx231_tgt
     .local int rx231_pos
@@ -2947,8 +2947,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)
@@ -2982,7 +2982,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$>"  :subid("68_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<$>"  :subid("68_1281989562.09477") :method
 .annotate 'line', 3
     new $P233, "ResizablePMCArray"
     push $P233, "$"
@@ -2991,7 +2991,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$$>"  :subid("69_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<$$>"  :subid("69_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx237_tgt
     .local int rx237_pos
@@ -3032,8 +3032,8 @@
     add $I11, rx237_pos, 2
     gt $I11, rx237_eos, rx237_fail
     sub $I11, rx237_pos, rx237_off
-    substr $S10, rx237_tgt, $I11, 2
-    ne $S10, "$$", rx237_fail
+    cmp_str_at $I11, rx237_tgt, "$$", $I11, 2
+    ne $I11, 0, rx237_fail
     add rx237_pos, 2
     set_addr $I10, rxcap_241_fail
     ($I12, $I11) = rx237_cur."!mark_peek"($I10)
@@ -3067,7 +3067,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$$>"  :subid("70_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<$$>"  :subid("70_1281989562.09477") :method
 .annotate 'line', 3
     new $P239, "ResizablePMCArray"
     push $P239, "$$"
@@ -3076,7 +3076,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<:::>"  :subid("71_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<:::>"  :subid("71_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx243_tgt
     .local int rx243_pos
@@ -3117,8 +3117,8 @@
     add $I11, rx243_pos, 3
     gt $I11, rx243_eos, rx243_fail
     sub $I11, rx243_pos, rx243_off
-    substr $S10, rx243_tgt, $I11, 3
-    ne $S10, ":::", rx243_fail
+    cmp_str_at $I11, rx243_tgt, ":::", $I11, 3
+    ne $I11, 0, rx243_fail
     add rx243_pos, 3
     set_addr $I10, rxcap_248_fail
     ($I12, $I11) = rx243_cur."!mark_peek"($I10)
@@ -3157,7 +3157,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<:::>"  :subid("72_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<:::>"  :subid("72_1281989562.09477") :method
 .annotate 'line', 3
     $P245 = self."!PREFIX__!subrule"("panic", ":::")
     new $P246, "ResizablePMCArray"
@@ -3167,7 +3167,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<::>"  :subid("73_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<::>"  :subid("73_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx250_tgt
     .local int rx250_pos
@@ -3208,8 +3208,8 @@
     add $I11, rx250_pos, 2
     gt $I11, rx250_eos, rx250_fail
     sub $I11, rx250_pos, rx250_off
-    substr $S10, rx250_tgt, $I11, 2
-    ne $S10, "::", rx250_fail
+    cmp_str_at $I11, rx250_tgt, "::", $I11, 2
+    ne $I11, 0, rx250_fail
     add rx250_pos, 2
     set_addr $I10, rxcap_255_fail
     ($I12, $I11) = rx250_cur."!mark_peek"($I10)
@@ -3248,7 +3248,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<::>"  :subid("74_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<::>"  :subid("74_1281989562.09477") :method
 .annotate 'line', 3
     $P252 = self."!PREFIX__!subrule"("panic", "::")
     new $P253, "ResizablePMCArray"
@@ -3258,7 +3258,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<lwb>"  :subid("75_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<lwb>"  :subid("75_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx257_tgt
     .local int rx257_pos
@@ -3302,8 +3302,8 @@
     add $I11, rx257_pos, 2
     gt $I11, rx257_eos, rx257_fail
     sub $I11, rx257_pos, rx257_off
-    substr $S10, rx257_tgt, $I11, 2
-    ne $S10, "<<", rx257_fail
+    cmp_str_at $I11, rx257_tgt, "<<", $I11, 2
+    ne $I11, 0, rx257_fail
     add rx257_pos, 2
     goto alt261_end
   alt261_1:
@@ -3311,8 +3311,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
@@ -3347,7 +3347,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<lwb>"  :subid("76_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<lwb>"  :subid("76_1281989562.09477") :method
 .annotate 'line', 3
     new $P259, "ResizablePMCArray"
     push $P259, unicode:"\x{ab}"
@@ -3357,7 +3357,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<rwb>"  :subid("77_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<rwb>"  :subid("77_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx264_tgt
     .local int rx264_pos
@@ -3401,8 +3401,8 @@
     add $I11, rx264_pos, 2
     gt $I11, rx264_eos, rx264_fail
     sub $I11, rx264_pos, rx264_off
-    substr $S10, rx264_tgt, $I11, 2
-    ne $S10, ">>", rx264_fail
+    cmp_str_at $I11, rx264_tgt, ">>", $I11, 2
+    ne $I11, 0, rx264_fail
     add rx264_pos, 2
     goto alt268_end
   alt268_1:
@@ -3410,8 +3410,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
@@ -3446,7 +3446,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<rwb>"  :subid("78_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<rwb>"  :subid("78_1281989562.09477") :method
 .annotate 'line', 3
     new $P266, "ResizablePMCArray"
     push $P266, unicode:"\x{bb}"
@@ -3456,7 +3456,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<bs>"  :subid("79_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<bs>"  :subid("79_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx271_tgt
     .local int rx271_pos
@@ -3494,8 +3494,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)
@@ -3525,7 +3525,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<bs>"  :subid("80_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<bs>"  :subid("80_1281989562.09477") :method
 .annotate 'line', 3
     $P273 = self."!PREFIX__!subrule"("backslash", "\\")
     new $P274, "ResizablePMCArray"
@@ -3535,7 +3535,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<mod>"  :subid("81_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<mod>"  :subid("81_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx277_tgt
     .local int rx277_pos
@@ -3597,7 +3597,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<mod>"  :subid("82_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<mod>"  :subid("82_1281989562.09477") :method
 .annotate 'line', 3
     $P279 = self."!PREFIX__!subrule"("mod_internal", "")
     new $P280, "ResizablePMCArray"
@@ -3607,7 +3607,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<~>"  :subid("83_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<~>"  :subid("83_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx283_tgt
     .local int rx283_pos
@@ -3648,8 +3648,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)
@@ -3710,7 +3710,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<~>"  :subid("84_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<~>"  :subid("84_1281989562.09477") :method
 .annotate 'line', 3
     $P285 = self."!PREFIX__!subrule"("ws", "~")
     new $P286, "ResizablePMCArray"
@@ -3720,7 +3720,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<{*}>"  :subid("85_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<{*}>"  :subid("85_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx290_tgt
     .local int rx290_pos
@@ -3762,8 +3762,8 @@
     add $I11, rx290_pos, 3
     gt $I11, rx290_eos, rx290_fail
     sub $I11, rx290_pos, rx290_off
-    substr $S10, rx290_tgt, $I11, 3
-    ne $S10, "{*}", rx290_fail
+    cmp_str_at $I11, rx290_tgt, "{*}", $I11, 3
+    ne $I11, 0, rx290_fail
     add rx290_pos, 3
     set_addr $I10, rxcap_294_fail
     ($I12, $I11) = rx290_cur."!mark_peek"($I10)
@@ -3802,8 +3802,8 @@
     add $I11, rx290_pos, 3
     gt $I11, rx290_eos, rx290_fail
     sub $I11, rx290_pos, rx290_off
-    substr $S10, rx290_tgt, $I11, 3
-    ne $S10, "#= ", rx290_fail
+    cmp_str_at $I11, rx290_tgt, "#= ", $I11, 3
+    ne $I11, 0, rx290_fail
     add rx290_pos, 3
   # rx rxquantr297 ** 0..*
     set_addr $I10, rxquantr297_done
@@ -3900,7 +3900,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<{*}>"  :subid("86_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<{*}>"  :subid("86_1281989562.09477") :method
 .annotate 'line', 3
     new $P292, "ResizablePMCArray"
     push $P292, "{*}"
@@ -3909,7 +3909,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<assert>"  :subid("87_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<assert>"  :subid("87_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx302_tgt
     .local int rx302_pos
@@ -3947,8 +3947,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 +3965,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:
@@ -3998,7 +3998,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<assert>"  :subid("88_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<assert>"  :subid("88_1281989562.09477") :method
 .annotate 'line', 3
     $P304 = self."!PREFIX__!subrule"("assertion", "<")
     new $P305, "ResizablePMCArray"
@@ -4008,7 +4008,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<var>"  :subid("89_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<var>"  :subid("89_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx309_tgt
     .local int rx309_pos
@@ -4051,8 +4051,8 @@
     add $I11, rx309_pos, 2
     gt $I11, rx309_eos, rx309_fail
     sub $I11, rx309_pos, rx309_off
-    substr $S10, rx309_tgt, $I11, 2
-    ne $S10, "$<", rx309_fail
+    cmp_str_at $I11, rx309_tgt, "$<", $I11, 2
+    ne $I11, 0, rx309_fail
     add rx309_pos, 2
   # rx subcapture "name"
     set_addr $I10, rxcap_315_fail
@@ -4089,8 +4089,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 +4099,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 +4137,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)
@@ -4177,7 +4177,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<var>"  :subid("90_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<var>"  :subid("90_1281989562.09477") :method
 .annotate 'line', 3
     new $P311, "ResizablePMCArray"
     push $P311, "$"
@@ -4187,7 +4187,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<PIR>"  :subid("91_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "metachar:sym<PIR>"  :subid("91_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx319_tgt
     .local int rx319_pos
@@ -4225,8 +4225,8 @@
     add $I11, rx319_pos, 6
     gt $I11, rx319_eos, rx319_fail
     sub $I11, rx319_pos, rx319_off
-    substr $S10, rx319_tgt, $I11, 6
-    ne $S10, ":PIR{{", rx319_fail
+    cmp_str_at $I11, rx319_tgt, ":PIR{{", $I11, 6
+    ne $I11, 0, rx319_fail
     add rx319_pos, 6
   # rx subcapture "pir"
     set_addr $I10, rxcap_325_fail
@@ -4257,8 +4257,8 @@
     add $I11, rx319_pos, 2
     gt $I11, rx319_eos, rx319_fail
     sub $I11, rx319_pos, rx319_off
-    substr $S10, rx319_tgt, $I11, 2
-    ne $S10, "}}", rx319_fail
+    cmp_str_at $I11, rx319_tgt, "}}", $I11, 2
+    ne $I11, 0, rx319_fail
     add rx319_pos, 2
 .annotate 'line', 118
   # rx pass
@@ -4282,7 +4282,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<PIR>"  :subid("92_1280467470.54449") :method
+.sub "!PREFIX__metachar:sym<PIR>"  :subid("92_1281989562.09477") :method
 .annotate 'line', 3
     new $P321, "ResizablePMCArray"
     push $P321, ":PIR{{"
@@ -4291,7 +4291,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash"  :subid("93_1280467470.54449") :method
+.sub "backslash"  :subid("93_1281989562.09477") :method
 .annotate 'line', 122
     $P327 = self."!protoregex"("backslash")
     .return ($P327)
@@ -4299,7 +4299,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash"  :subid("94_1280467470.54449") :method
+.sub "!PREFIX__backslash"  :subid("94_1281989562.09477") :method
 .annotate 'line', 122
     $P329 = self."!PREFIX__!protoregex"("backslash")
     .return ($P329)
@@ -4307,7 +4307,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<w>"  :subid("95_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<w>"  :subid("95_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx331_tgt
     .local int rx331_pos
@@ -4383,7 +4383,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<w>"  :subid("96_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<w>"  :subid("96_1281989562.09477") :method
 .annotate 'line', 3
     new $P333, "ResizablePMCArray"
     push $P333, "N"
@@ -4399,7 +4399,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<b>"  :subid("97_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<b>"  :subid("97_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx337_tgt
     .local int rx337_pos
@@ -4475,7 +4475,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<b>"  :subid("98_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<b>"  :subid("98_1281989562.09477") :method
 .annotate 'line', 3
     new $P339, "ResizablePMCArray"
     push $P339, "B"
@@ -4485,7 +4485,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<e>"  :subid("99_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<e>"  :subid("99_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx343_tgt
     .local int rx343_pos
@@ -4561,7 +4561,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<e>"  :subid("100_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<e>"  :subid("100_1281989562.09477") :method
 .annotate 'line', 3
     new $P345, "ResizablePMCArray"
     push $P345, "E"
@@ -4571,7 +4571,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<f>"  :subid("101_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<f>"  :subid("101_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx349_tgt
     .local int rx349_pos
@@ -4647,7 +4647,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<f>"  :subid("102_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<f>"  :subid("102_1281989562.09477") :method
 .annotate 'line', 3
     new $P351, "ResizablePMCArray"
     push $P351, "F"
@@ -4657,7 +4657,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<h>"  :subid("103_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<h>"  :subid("103_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx355_tgt
     .local int rx355_pos
@@ -4733,7 +4733,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<h>"  :subid("104_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<h>"  :subid("104_1281989562.09477") :method
 .annotate 'line', 3
     new $P357, "ResizablePMCArray"
     push $P357, "H"
@@ -4743,7 +4743,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<r>"  :subid("105_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<r>"  :subid("105_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx361_tgt
     .local int rx361_pos
@@ -4819,7 +4819,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<r>"  :subid("106_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<r>"  :subid("106_1281989562.09477") :method
 .annotate 'line', 3
     new $P363, "ResizablePMCArray"
     push $P363, "R"
@@ -4829,7 +4829,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<t>"  :subid("107_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<t>"  :subid("107_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx367_tgt
     .local int rx367_pos
@@ -4905,7 +4905,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<t>"  :subid("108_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<t>"  :subid("108_1281989562.09477") :method
 .annotate 'line', 3
     new $P369, "ResizablePMCArray"
     push $P369, "T"
@@ -4915,7 +4915,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<v>"  :subid("109_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<v>"  :subid("109_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx373_tgt
     .local int rx373_pos
@@ -4991,7 +4991,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<v>"  :subid("110_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<v>"  :subid("110_1281989562.09477") :method
 .annotate 'line', 3
     new $P375, "ResizablePMCArray"
     push $P375, "V"
@@ -5001,7 +5001,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<o>"  :subid("111_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<o>"  :subid("111_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx379_tgt
     .local int rx379_pos
@@ -5072,8 +5072,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,8 +5086,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, 93, rx379_fail
     add rx379_pos, 1
   alt388_end:
   # rx pass
@@ -5111,7 +5111,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<o>"  :subid("112_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<o>"  :subid("112_1281989562.09477") :method
 .annotate 'line', 3
     $P381 = self."!PREFIX__!subrule"("octints", "O[")
     $P382 = self."!PREFIX__!subrule"("octint", "O")
@@ -5127,7 +5127,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<x>"  :subid("113_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<x>"  :subid("113_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx390_tgt
     .local int rx390_pos
@@ -5198,8 +5198,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,8 +5212,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, 93, rx390_fail
     add rx390_pos, 1
   alt399_end:
   # rx pass
@@ -5237,7 +5237,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<x>"  :subid("114_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<x>"  :subid("114_1281989562.09477") :method
 .annotate 'line', 3
     $P392 = self."!PREFIX__!subrule"("hexints", "X[")
     $P393 = self."!PREFIX__!subrule"("hexint", "X")
@@ -5253,7 +5253,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<c>"  :subid("115_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<c>"  :subid("115_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx401_tgt
     .local int rx401_pos
@@ -5336,7 +5336,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<c>"  :subid("116_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<c>"  :subid("116_1281989562.09477") :method
 .annotate 'line', 3
     $P403 = self."!PREFIX__!subrule"("charspec", "C")
     $P404 = self."!PREFIX__!subrule"("charspec", "c")
@@ -5348,7 +5348,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<A>"  :subid("117_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<A>"  :subid("117_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx409_tgt
     .local int rx409_pos
@@ -5386,8 +5386,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)
@@ -5415,7 +5415,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<A>"  :subid("118_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<A>"  :subid("118_1281989562.09477") :method
 .annotate 'line', 3
     $P411 = self."!PREFIX__!subrule"("obs", "A")
     new $P412, "ResizablePMCArray"
@@ -5425,7 +5425,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<z>"  :subid("119_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<z>"  :subid("119_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx415_tgt
     .local int rx415_pos
@@ -5463,8 +5463,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)
@@ -5492,7 +5492,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<z>"  :subid("120_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<z>"  :subid("120_1281989562.09477") :method
 .annotate 'line', 3
     $P417 = self."!PREFIX__!subrule"("obs", "z")
     new $P418, "ResizablePMCArray"
@@ -5502,7 +5502,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Z>"  :subid("121_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<Z>"  :subid("121_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx421_tgt
     .local int rx421_pos
@@ -5540,8 +5540,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)
@@ -5569,7 +5569,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Z>"  :subid("122_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<Z>"  :subid("122_1281989562.09477") :method
 .annotate 'line', 3
     $P423 = self."!PREFIX__!subrule"("obs", "Z")
     new $P424, "ResizablePMCArray"
@@ -5579,7 +5579,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Q>"  :subid("123_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<Q>"  :subid("123_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx427_tgt
     .local int rx427_pos
@@ -5617,8 +5617,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)
@@ -5646,7 +5646,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Q>"  :subid("124_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<Q>"  :subid("124_1281989562.09477") :method
 .annotate 'line', 3
     $P429 = self."!PREFIX__!subrule"("obs", "Q")
     new $P430, "ResizablePMCArray"
@@ -5656,7 +5656,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<misc>"  :subid("125_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "backslash:sym<misc>"  :subid("125_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx433_tgt
     .local int rx433_pos
@@ -5717,7 +5717,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<misc>"  :subid("126_1280467470.54449") :method
+.sub "!PREFIX__backslash:sym<misc>"  :subid("126_1281989562.09477") :method
 .annotate 'line', 3
     new $P435, "ResizablePMCArray"
     push $P435, ""
@@ -5726,7 +5726,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion"  :subid("127_1280467470.54449") :method
+.sub "assertion"  :subid("127_1281989562.09477") :method
 .annotate 'line', 140
     $P438 = self."!protoregex"("assertion")
     .return ($P438)
@@ -5734,7 +5734,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion"  :subid("128_1280467470.54449") :method
+.sub "!PREFIX__assertion"  :subid("128_1281989562.09477") :method
 .annotate 'line', 140
     $P440 = self."!PREFIX__!protoregex"("assertion")
     .return ($P440)
@@ -5742,9 +5742,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<?>"  :subid("129_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "assertion:sym<?>"  :subid("129_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
-    .const 'Sub' $P449 = "131_1280467470.54449" 
+    .const 'Sub' $P449 = "131_1281989562.09477" 
     capture_lex $P449
     .local string rx442_tgt
     .local int rx442_pos
@@ -5782,15 +5782,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_1281989562.09477" 
     capture_lex $P449
     $P10 = rx442_cur."before"($P449)
     unless $P10, rx442_fail
@@ -5825,7 +5825,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<?>"  :subid("130_1280467470.54449") :method
+.sub "!PREFIX__assertion:sym<?>"  :subid("130_1281989562.09477") :method
 .annotate 'line', 3
     $P444 = self."!PREFIX__!subrule"("assertion", "?")
     new $P445, "ResizablePMCArray"
@@ -5836,7 +5836,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block448"  :anon :subid("131_1280467470.54449") :method :outer("129_1280467470.54449")
+.sub "_block448"  :anon :subid("131_1281989562.09477") :method :outer("129_1281989562.09477")
 .annotate 'line', 142
     .local string rx450_tgt
     .local int rx450_pos
@@ -5873,8 +5873,8 @@
     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, "")
@@ -5896,9 +5896,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<!>"  :subid("132_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "assertion:sym<!>"  :subid("132_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
-    .const 'Sub' $P460 = "134_1280467470.54449" 
+    .const 'Sub' $P460 = "134_1281989562.09477" 
     capture_lex $P460
     .local string rx453_tgt
     .local int rx453_pos
@@ -5936,15 +5936,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_1281989562.09477" 
     capture_lex $P460
     $P10 = rx453_cur."before"($P460)
     unless $P10, rx453_fail
@@ -5979,7 +5979,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<!>"  :subid("133_1280467470.54449") :method
+.sub "!PREFIX__assertion:sym<!>"  :subid("133_1281989562.09477") :method
 .annotate 'line', 3
     $P455 = self."!PREFIX__!subrule"("assertion", "!")
     new $P456, "ResizablePMCArray"
@@ -5990,7 +5990,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block459"  :anon :subid("134_1280467470.54449") :method :outer("132_1280467470.54449")
+.sub "_block459"  :anon :subid("134_1281989562.09477") :method :outer("132_1281989562.09477")
 .annotate 'line', 143
     .local string rx461_tgt
     .local int rx461_pos
@@ -6027,8 +6027,8 @@
     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, "")
@@ -6050,7 +6050,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<method>"  :subid("135_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "assertion:sym<method>"  :subid("135_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx464_tgt
     .local int rx464_pos
@@ -6088,8 +6088,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)
@@ -6120,7 +6120,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<method>"  :subid("136_1280467470.54449") :method
+.sub "!PREFIX__assertion:sym<method>"  :subid("136_1281989562.09477") :method
 .annotate 'line', 3
     $P466 = self."!PREFIX__!subrule"("assertion", ".")
     new $P467, "ResizablePMCArray"
@@ -6130,9 +6130,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<name>"  :subid("137_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "assertion:sym<name>"  :subid("137_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
-    .const 'Sub' $P478 = "139_1280467470.54449" 
+    .const 'Sub' $P478 = "139_1281989562.09477" 
     capture_lex $P478
     .local string rx470_tgt
     .local int rx470_pos
@@ -6186,7 +6186,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_1281989562.09477" 
     capture_lex $P478
     $P10 = rx470_cur."before"($P478)
     unless $P10, rx470_fail
@@ -6199,8 +6199,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 +6218,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 +6237,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 +6251,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:
@@ -6296,7 +6296,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("138_1280467470.54449") :method
+.sub "!PREFIX__assertion:sym<name>"  :subid("138_1281989562.09477") :method
 .annotate 'line', 3
     $P472 = self."!PREFIX__!subrule"("identifier", "")
     new $P473, "ResizablePMCArray"
@@ -6306,7 +6306,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block477"  :anon :subid("139_1280467470.54449") :method :outer("137_1280467470.54449")
+.sub "_block477"  :anon :subid("139_1281989562.09477") :method :outer("137_1281989562.09477")
 .annotate 'line', 152
     .local string rx479_tgt
     .local int rx479_pos
@@ -6343,8 +6343,8 @@
     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, "")
@@ -6366,9 +6366,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<[>"  :subid("140_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "assertion:sym<[>"  :subid("140_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
-    .const 'Sub' $P487 = "142_1280467470.54449" 
+    .const 'Sub' $P487 = "142_1281989562.09477" 
     capture_lex $P487
     .local string rx482_tgt
     .local int rx482_pos
@@ -6405,7 +6405,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_1281989562.09477" 
     capture_lex $P487
     $P10 = rx482_cur."before"($P487)
     unless $P10, rx482_fail
@@ -6453,7 +6453,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<[>"  :subid("141_1280467470.54449") :method
+.sub "!PREFIX__assertion:sym<[>"  :subid("141_1281989562.09477") :method
 .annotate 'line', 3
     new $P484, "ResizablePMCArray"
     push $P484, ""
@@ -6462,7 +6462,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block486"  :anon :subid("142_1280467470.54449") :method :outer("140_1280467470.54449")
+.sub "_block486"  :anon :subid("142_1281989562.09477") :method :outer("140_1281989562.09477")
 .annotate 'line', 160
     .local string rx488_tgt
     .local int rx488_pos
@@ -6502,8 +6502,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 +6513,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,8 +6522,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, 45, rx488_fail
     add rx488_pos, 1
   alt490_end:
   # rx pass
@@ -6546,9 +6546,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "cclass_elem"  :subid("143_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "cclass_elem"  :subid("143_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
-    .const 'Sub' $P505 = "145_1280467470.54449" 
+    .const 'Sub' $P505 = "145_1281989562.09477" 
     capture_lex $P505
     .local string rx494_tgt
     .local int rx494_pos
@@ -6593,8 +6593,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 +6604,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 +6650,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 +6661,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_1281989562.09477" 
     capture_lex $P505
     $P10 = rx494_cur.$P505()
     unless $P10, rx494_fail
@@ -6690,8 +6690,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
@@ -6760,7 +6760,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__cclass_elem"  :subid("144_1280467470.54449") :method
+.sub "!PREFIX__cclass_elem"  :subid("144_1281989562.09477") :method
 .annotate 'line', 3
     new $P496, "ResizablePMCArray"
     push $P496, ""
@@ -6771,13 +6771,13 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block504"  :anon :subid("145_1280467470.54449") :method :outer("143_1280467470.54449")
+.sub "_block504"  :anon :subid("145_1281989562.09477") :method :outer("143_1281989562.09477")
 .annotate 'line', 166
-    .const 'Sub' $P520 = "148_1280467470.54449" 
+    .const 'Sub' $P520 = "148_1281989562.09477" 
     capture_lex $P520
-    .const 'Sub' $P515 = "147_1280467470.54449" 
+    .const 'Sub' $P515 = "147_1281989562.09477" 
     capture_lex $P515
-    .const 'Sub' $P511 = "146_1280467470.54449" 
+    .const 'Sub' $P511 = "146_1281989562.09477" 
     capture_lex $P511
     .local string rx506_tgt
     .local int rx506_pos
@@ -6823,8 +6823,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 +6845,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_1281989562.09477" 
     capture_lex $P511
     $P10 = rx506_cur.$P511()
     unless $P10, rx506_fail
@@ -6861,7 +6861,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_1281989562.09477" 
     capture_lex $P515
     $P10 = rx506_cur.$P515()
     unless $P10, rx506_fail
@@ -6881,8 +6881,8 @@
     add $I11, rx506_pos, 2
     gt $I11, rx506_eos, rx506_fail
     sub $I11, rx506_pos, rx506_off
-    substr $S10, rx506_tgt, $I11, 2
-    ne $S10, "..", rx506_fail
+    cmp_str_at $I11, rx506_tgt, "..", $I11, 2
+    ne $I11, 0, rx506_fail
     add rx506_pos, 2
   # rx charclass_q s r 0..-1
     sub $I10, rx506_pos, rx506_off
@@ -6890,7 +6890,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_1281989562.09477" 
     capture_lex $P520
     $P10 = rx506_cur.$P520()
     unless $P10, rx506_fail
@@ -6922,7 +6922,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block510"  :anon :subid("146_1280467470.54449") :method :outer("145_1280467470.54449")
+.sub "_block510"  :anon :subid("146_1281989562.09477") :method :outer("145_1281989562.09477")
 .annotate 'line', 168
     .local string rx512_tgt
     .local int rx512_pos
@@ -6978,7 +6978,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block514"  :anon :subid("147_1280467470.54449") :method :outer("145_1280467470.54449")
+.sub "_block514"  :anon :subid("147_1281989562.09477") :method :outer("145_1281989562.09477")
 .annotate 'line', 168
     .local string rx516_tgt
     .local int rx516_pos
@@ -7038,7 +7038,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block519"  :anon :subid("148_1280467470.54449") :method :outer("145_1280467470.54449")
+.sub "_block519"  :anon :subid("148_1281989562.09477") :method :outer("145_1281989562.09477")
 .annotate 'line', 168
     .local string rx521_tgt
     .local int rx521_pos
@@ -7094,9 +7094,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_internal"  :subid("149_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "mod_internal"  :subid("149_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
-    .const 'Sub' $P536 = "151_1280467470.54449" 
+    .const 'Sub' $P536 = "151_1281989562.09477" 
     capture_lex $P536
     .local string rx528_tgt
     .local int rx528_pos
@@ -7139,8 +7139,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 +7148,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_1281989562.09477" 
     capture_lex $P536
     $P10 = rx528_cur.$P536()
     unless $P10, rx528_fail
@@ -7186,8 +7186,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 +7204,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 +7231,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)
@@ -7260,7 +7260,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_internal"  :subid("150_1280467470.54449") :method
+.sub "!PREFIX__mod_internal"  :subid("150_1281989562.09477") :method
 .annotate 'line', 3
     $P530 = self."!PREFIX__!subrule"("mod_ident", ":")
     new $P531, "ResizablePMCArray"
@@ -7271,7 +7271,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block535"  :anon :subid("151_1280467470.54449") :method :outer("149_1280467470.54449")
+.sub "_block535"  :anon :subid("151_1281989562.09477") :method :outer("149_1281989562.09477")
 .annotate 'line', 178
     .local string rx537_tgt
     .local int rx537_pos
@@ -7311,8 +7311,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:
@@ -7343,7 +7343,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident"  :subid("152_1280467470.54449") :method
+.sub "mod_ident"  :subid("152_1281989562.09477") :method
 .annotate 'line', 183
     $P544 = self."!protoregex"("mod_ident")
     .return ($P544)
@@ -7351,7 +7351,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident"  :subid("153_1280467470.54449") :method
+.sub "!PREFIX__mod_ident"  :subid("153_1281989562.09477") :method
 .annotate 'line', 183
     $P546 = self."!PREFIX__!protoregex"("mod_ident")
     .return ($P546)
@@ -7359,7 +7359,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_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx548_tgt
     .local int rx548_pos
@@ -7400,8 +7400,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)
@@ -7422,8 +7422,8 @@
     add $I11, rx548_pos, 9
     gt $I11, rx548_eos, rx548_fail
     sub $I11, rx548_pos, rx548_off
-    substr $S10, rx548_tgt, $I11, 9
-    ne $S10, "gnorecase", rx548_fail
+    cmp_str_at $I11, rx548_tgt, "gnorecase", $I11, 9
+    ne $I11, 0, rx548_fail
     add rx548_pos, 9
     set_addr $I10, rxquantr553_done
     (rx548_rep) = rx548_cur."!mark_commit"($I10)
@@ -7449,7 +7449,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("155_1280467470.54449") :method
+.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("155_1281989562.09477") :method
 .annotate 'line', 3
     new $P550, "ResizablePMCArray"
     push $P550, "i"
@@ -7458,7 +7458,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_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx555_tgt
     .local int rx555_pos
@@ -7499,8 +7499,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)
@@ -7521,8 +7521,8 @@
     add $I11, rx555_pos, 6
     gt $I11, rx555_eos, rx555_fail
     sub $I11, rx555_pos, rx555_off
-    substr $S10, rx555_tgt, $I11, 6
-    ne $S10, "atchet", rx555_fail
+    cmp_str_at $I11, rx555_tgt, "atchet", $I11, 6
+    ne $I11, 0, rx555_fail
     add rx555_pos, 6
     set_addr $I10, rxquantr560_done
     (rx555_rep) = rx555_cur."!mark_commit"($I10)
@@ -7548,7 +7548,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("157_1280467470.54449") :method
+.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("157_1281989562.09477") :method
 .annotate 'line', 3
     new $P557, "ResizablePMCArray"
     push $P557, "r"
@@ -7557,7 +7557,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_1281989562.09477") :method :outer("11_1281989562.09477")
 .annotate 'line', 3
     .local string rx562_tgt
     .local int rx562_pos
@@ -7598,8 +7598,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)
@@ -7620,8 +7620,8 @@
     add $I11, rx562_pos, 7
     gt $I11, rx562_eos, rx562_fail
     sub $I11, rx562_pos, rx562_off
-    substr $S10, rx562_tgt, $I11, 7
-    ne $S10, "igspace", rx562_fail
+    cmp_str_at $I11, rx562_tgt, "igspace", $I11, 7
+    ne $I11, 0, rx562_fail
     add rx562_pos, 7
     set_addr $I10, rxquantr567_done
     (rx562_rep) = rx562_cur."!mark_commit"($I10)
@@ -7647,7 +7647,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("159_1280467470.54449") :method
+.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("159_1281989562.09477") :method
 .annotate 'line', 3
     new $P564, "ResizablePMCArray"
     push $P564, "s"
@@ -7656,18 +7656,18 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block568" :load :anon :subid("160_1280467470.54449")
+.sub "_block568" :load :anon :subid("160_1281989562.09477")
 .annotate 'line', 3
-    .const 'Sub' $P570 = "11_1280467470.54449" 
+    .const 'Sub' $P570 = "11_1281989562.09477" 
     $P571 = $P570()
     .return ($P571)
 .end
 
 
 .namespace []
-.sub "_block573" :load :anon :subid("161_1280467470.54449")
+.sub "_block573" :load :anon :subid("161_1281989562.09477")
 .annotate 'line', 1
-    .const 'Sub' $P575 = "10_1280467470.54449" 
+    .const 'Sub' $P575 = "10_1281989562.09477" 
     $P576 = $P575()
     .return ($P576)
 .end
@@ -7675,7 +7675,7 @@
 ### .include 'gen/p6regex-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467473.99327")
+.sub "_block11"  :anon :subid("10_1281989568.36484")
 .annotate 'line', 0
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     capture_lex $P14
@@ -7692,15 +7692,15 @@
     $P1634 = $P14()
 .annotate 'line', 1
     .return ($P1634)
-    .const 'Sub' $P1636 = "92_1280467473.99327" 
+    .const 'Sub' $P1636 = "92_1281989568.36484" 
     .return ($P1636)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post93") :outer("10_1280467473.99327")
+.sub "" :load :init :subid("post93") :outer("10_1281989568.36484")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467473.99327" 
+    .const 'Sub' $P12 = "10_1281989568.36484" 
     .local pmc block
     set block, $P12
     $P1639 = get_root_global ["parrot"], "P6metaclass"
@@ -7709,117 +7709,117 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block13"  :subid("11_1280467473.99327") :outer("10_1280467473.99327")
+.sub "_block13"  :subid("11_1281989568.36484") :outer("10_1281989568.36484")
 .annotate 'line', 4
-    .const 'Sub' $P1611 = "90_1280467473.99327" 
+    .const 'Sub' $P1611 = "90_1281989568.36484" 
     capture_lex $P1611
-    .const 'Sub' $P1591 = "89_1280467473.99327" 
+    .const 'Sub' $P1591 = "89_1281989568.36484" 
     capture_lex $P1591
-    .const 'Sub' $P1559 = "88_1280467473.99327" 
+    .const 'Sub' $P1559 = "88_1281989568.36484" 
     capture_lex $P1559
-    .const 'Sub' $P1490 = "84_1280467473.99327" 
+    .const 'Sub' $P1490 = "84_1281989568.36484" 
     capture_lex $P1490
-    .const 'Sub' $P1422 = "82_1280467473.99327" 
+    .const 'Sub' $P1422 = "82_1281989568.36484" 
     capture_lex $P1422
-    .const 'Sub' $P1350 = "79_1280467473.99327" 
+    .const 'Sub' $P1350 = "79_1281989568.36484" 
     capture_lex $P1350
-    .const 'Sub' $P1336 = "78_1280467473.99327" 
+    .const 'Sub' $P1336 = "78_1281989568.36484" 
     capture_lex $P1336
-    .const 'Sub' $P1312 = "77_1280467473.99327" 
+    .const 'Sub' $P1312 = "77_1281989568.36484" 
     capture_lex $P1312
-    .const 'Sub' $P1294 = "76_1280467473.99327" 
+    .const 'Sub' $P1294 = "76_1281989568.36484" 
     capture_lex $P1294
-    .const 'Sub' $P1280 = "75_1280467473.99327" 
+    .const 'Sub' $P1280 = "75_1281989568.36484" 
     capture_lex $P1280
-    .const 'Sub' $P1267 = "74_1280467473.99327" 
+    .const 'Sub' $P1267 = "74_1281989568.36484" 
     capture_lex $P1267
-    .const 'Sub' $P1236 = "73_1280467473.99327" 
+    .const 'Sub' $P1236 = "73_1281989568.36484" 
     capture_lex $P1236
-    .const 'Sub' $P1205 = "72_1280467473.99327" 
+    .const 'Sub' $P1205 = "72_1281989568.36484" 
     capture_lex $P1205
-    .const 'Sub' $P1189 = "71_1280467473.99327" 
+    .const 'Sub' $P1189 = "71_1281989568.36484" 
     capture_lex $P1189
-    .const 'Sub' $P1173 = "70_1280467473.99327" 
+    .const 'Sub' $P1173 = "70_1281989568.36484" 
     capture_lex $P1173
-    .const 'Sub' $P1157 = "69_1280467473.99327" 
+    .const 'Sub' $P1157 = "69_1281989568.36484" 
     capture_lex $P1157
-    .const 'Sub' $P1141 = "68_1280467473.99327" 
+    .const 'Sub' $P1141 = "68_1281989568.36484" 
     capture_lex $P1141
-    .const 'Sub' $P1125 = "67_1280467473.99327" 
+    .const 'Sub' $P1125 = "67_1281989568.36484" 
     capture_lex $P1125
-    .const 'Sub' $P1109 = "66_1280467473.99327" 
+    .const 'Sub' $P1109 = "66_1281989568.36484" 
     capture_lex $P1109
-    .const 'Sub' $P1093 = "65_1280467473.99327" 
+    .const 'Sub' $P1093 = "65_1281989568.36484" 
     capture_lex $P1093
-    .const 'Sub' $P1069 = "64_1280467473.99327" 
+    .const 'Sub' $P1069 = "64_1281989568.36484" 
     capture_lex $P1069
-    .const 'Sub' $P1054 = "63_1280467473.99327" 
+    .const 'Sub' $P1054 = "63_1281989568.36484" 
     capture_lex $P1054
-    .const 'Sub' $P996 = "62_1280467473.99327" 
+    .const 'Sub' $P996 = "62_1281989568.36484" 
     capture_lex $P996
-    .const 'Sub' $P975 = "61_1280467473.99327" 
+    .const 'Sub' $P975 = "61_1281989568.36484" 
     capture_lex $P975
-    .const 'Sub' $P953 = "60_1280467473.99327" 
+    .const 'Sub' $P953 = "60_1281989568.36484" 
     capture_lex $P953
-    .const 'Sub' $P943 = "59_1280467473.99327" 
+    .const 'Sub' $P943 = "59_1281989568.36484" 
     capture_lex $P943
-    .const 'Sub' $P933 = "58_1280467473.99327" 
+    .const 'Sub' $P933 = "58_1281989568.36484" 
     capture_lex $P933
-    .const 'Sub' $P923 = "57_1280467473.99327" 
+    .const 'Sub' $P923 = "57_1281989568.36484" 
     capture_lex $P923
-    .const 'Sub' $P911 = "56_1280467473.99327" 
+    .const 'Sub' $P911 = "56_1281989568.36484" 
     capture_lex $P911
-    .const 'Sub' $P899 = "55_1280467473.99327" 
+    .const 'Sub' $P899 = "55_1281989568.36484" 
     capture_lex $P899
-    .const 'Sub' $P887 = "54_1280467473.99327" 
+    .const 'Sub' $P887 = "54_1281989568.36484" 
     capture_lex $P887
-    .const 'Sub' $P875 = "53_1280467473.99327" 
+    .const 'Sub' $P875 = "53_1281989568.36484" 
     capture_lex $P875
-    .const 'Sub' $P863 = "52_1280467473.99327" 
+    .const 'Sub' $P863 = "52_1281989568.36484" 
     capture_lex $P863
-    .const 'Sub' $P851 = "51_1280467473.99327" 
+    .const 'Sub' $P851 = "51_1281989568.36484" 
     capture_lex $P851
-    .const 'Sub' $P839 = "50_1280467473.99327" 
+    .const 'Sub' $P839 = "50_1281989568.36484" 
     capture_lex $P839
-    .const 'Sub' $P827 = "49_1280467473.99327" 
+    .const 'Sub' $P827 = "49_1281989568.36484" 
     capture_lex $P827
-    .const 'Sub' $P799 = "48_1280467473.99327" 
+    .const 'Sub' $P799 = "48_1281989568.36484" 
     capture_lex $P799
-    .const 'Sub' $P771 = "47_1280467473.99327" 
+    .const 'Sub' $P771 = "47_1281989568.36484" 
     capture_lex $P771
-    .const 'Sub' $P753 = "46_1280467473.99327" 
+    .const 'Sub' $P753 = "46_1281989568.36484" 
     capture_lex $P753
-    .const 'Sub' $P743 = "45_1280467473.99327" 
+    .const 'Sub' $P743 = "45_1281989568.36484" 
     capture_lex $P743
-    .const 'Sub' $P725 = "44_1280467473.99327" 
+    .const 'Sub' $P725 = "44_1281989568.36484" 
     capture_lex $P725
-    .const 'Sub' $P652 = "42_1280467473.99327" 
+    .const 'Sub' $P652 = "42_1281989568.36484" 
     capture_lex $P652
-    .const 'Sub' $P635 = "41_1280467473.99327" 
+    .const 'Sub' $P635 = "41_1281989568.36484" 
     capture_lex $P635
-    .const 'Sub' $P620 = "40_1280467473.99327" 
+    .const 'Sub' $P620 = "40_1281989568.36484" 
     capture_lex $P620
-    .const 'Sub' $P605 = "39_1280467473.99327" 
+    .const 'Sub' $P605 = "39_1281989568.36484" 
     capture_lex $P605
-    .const 'Sub' $P579 = "38_1280467473.99327" 
+    .const 'Sub' $P579 = "38_1281989568.36484" 
     capture_lex $P579
-    .const 'Sub' $P528 = "36_1280467473.99327" 
+    .const 'Sub' $P528 = "36_1281989568.36484" 
     capture_lex $P528
-    .const 'Sub' $P460 = "34_1280467473.99327" 
+    .const 'Sub' $P460 = "34_1281989568.36484" 
     capture_lex $P460
-    .const 'Sub' $P404 = "31_1280467473.99327" 
+    .const 'Sub' $P404 = "31_1281989568.36484" 
     capture_lex $P404
-    .const 'Sub' $P389 = "30_1280467473.99327" 
+    .const 'Sub' $P389 = "30_1281989568.36484" 
     capture_lex $P389
-    .const 'Sub' $P363 = "28_1280467473.99327" 
+    .const 'Sub' $P363 = "28_1281989568.36484" 
     capture_lex $P363
-    .const 'Sub' $P346 = "27_1280467473.99327" 
+    .const 'Sub' $P346 = "27_1281989568.36484" 
     capture_lex $P346
-    .const 'Sub' $P312 = "26_1280467473.99327" 
+    .const 'Sub' $P312 = "26_1281989568.36484" 
     capture_lex $P312
-    .const 'Sub' $P57 = "13_1280467473.99327" 
+    .const 'Sub' $P57 = "13_1281989568.36484" 
     capture_lex $P57
-    .const 'Sub' $P16 = "12_1280467473.99327" 
+    .const 'Sub' $P16 = "12_1281989568.36484" 
     capture_lex $P16
     get_global $P15, "@MODIFIERS"
     unless_null $P15, vivify_95
@@ -7827,15 +7827,15 @@
     set_global "@MODIFIERS", $P15
   vivify_95:
 .annotate 'line', 492
-    .const 'Sub' $P16 = "12_1280467473.99327" 
+    .const 'Sub' $P16 = "12_1281989568.36484" 
     newclosure $P56, $P16
     .lex "buildsub", $P56
 .annotate 'line', 510
-    .const 'Sub' $P57 = "13_1280467473.99327" 
+    .const 'Sub' $P57 = "13_1281989568.36484" 
     newclosure $P311, $P57
     .lex "capnames", $P311
 .annotate 'line', 576
-    .const 'Sub' $P312 = "26_1280467473.99327" 
+    .const 'Sub' $P312 = "26_1281989568.36484" 
     newclosure $P344, $P312
     .lex "backmod", $P344
 .annotate 'line', 4
@@ -7851,17 +7851,17 @@
     find_lex $P1589, "capnames"
     find_lex $P1590, "backmod"
 .annotate 'line', 589
-    .const 'Sub' $P1611 = "90_1280467473.99327" 
+    .const 'Sub' $P1611 = "90_1281989568.36484" 
     newclosure $P1628, $P1611
 .annotate 'line', 4
     .return ($P1628)
-    .const 'Sub' $P1630 = "91_1280467473.99327" 
+    .const 'Sub' $P1630 = "91_1281989568.36484" 
     .return ($P1630)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "" :load :init :subid("post94") :outer("11_1280467473.99327")
+.sub "" :load :init :subid("post94") :outer("11_1281989568.36484")
 .annotate 'line', 4
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     .local pmc block
@@ -7878,7 +7878,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "buildsub"  :subid("12_1280467473.99327") :outer("11_1280467473.99327")
+.sub "buildsub"  :subid("12_1281989568.36484") :outer("11_1281989568.36484")
     .param pmc param_19
     .param pmc param_20 :optional
     .param int has_param_20 :opt_flag
@@ -7980,19 +7980,19 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "capnames"  :subid("13_1280467473.99327") :outer("11_1280467473.99327")
+.sub "capnames"  :subid("13_1281989568.36484") :outer("11_1281989568.36484")
     .param pmc param_60
     .param pmc param_61
 .annotate 'line', 510
-    .const 'Sub' $P286 = "24_1280467473.99327" 
+    .const 'Sub' $P286 = "24_1281989568.36484" 
     capture_lex $P286
-    .const 'Sub' $P223 = "21_1280467473.99327" 
+    .const 'Sub' $P223 = "21_1281989568.36484" 
     capture_lex $P223
-    .const 'Sub' $P181 = "19_1280467473.99327" 
+    .const 'Sub' $P181 = "19_1281989568.36484" 
     capture_lex $P181
-    .const 'Sub' $P139 = "17_1280467473.99327" 
+    .const 'Sub' $P139 = "17_1281989568.36484" 
     capture_lex $P139
-    .const 'Sub' $P72 = "14_1280467473.99327" 
+    .const 'Sub' $P72 = "14_1281989568.36484" 
     capture_lex $P72
     new $P59, 'ExceptionHandler'
     set_addr $P59, control_58
@@ -8048,21 +8048,21 @@
     set $S283, $P282
     iseq $I284, $S283, "quant"
     unless $I284, if_281_end
-    .const 'Sub' $P286 = "24_1280467473.99327" 
+    .const 'Sub' $P286 = "24_1281989568.36484" 
     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_1281989568.36484" 
     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_1281989568.36484" 
     capture_lex $P181
     $P181()
   if_171_end:
@@ -8082,7 +8082,7 @@
     unless $P133, loop168_done
     shift $P137, $P133
   loop168_redo:
-    .const 'Sub' $P139 = "17_1280467473.99327" 
+    .const 'Sub' $P139 = "17_1281989568.36484" 
     capture_lex $P139
     $P139($P137)
   loop168_next:
@@ -8101,7 +8101,7 @@
     goto if_67_end
   if_67:
 .annotate 'line', 513
-    .const 'Sub' $P72 = "14_1280467473.99327" 
+    .const 'Sub' $P72 = "14_1281989568.36484" 
     capture_lex $P72
     $P72()
   if_67_end:
@@ -8126,9 +8126,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_1281989568.36484") :outer("13_1281989568.36484")
 .annotate 'line', 565
-    .const 'Sub' $P297 = "25_1280467473.99327" 
+    .const 'Sub' $P297 = "25_1281989568.36484" 
     capture_lex $P297
 .annotate 'line', 566
     $P287 = root_new ['parrot';'Hash']
@@ -8157,7 +8157,7 @@
     unless $P292, loop302_done
     shift $P295, $P292
   loop302_redo:
-    .const 'Sub' $P297 = "25_1280467473.99327" 
+    .const 'Sub' $P297 = "25_1281989568.36484" 
     capture_lex $P297
     $P297($P295)
   loop302_next:
@@ -8187,7 +8187,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block296"  :anon :subid("25_1280467473.99327") :outer("24_1280467473.99327")
+.sub "_block296"  :anon :subid("25_1281989568.36484") :outer("24_1281989568.36484")
     .param pmc param_298
 .annotate 'line', 567
     .lex "$_", param_298
@@ -8208,11 +8208,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_1281989568.36484") :outer("13_1281989568.36484")
 .annotate 'line', 548
-    .const 'Sub' $P263 = "23_1280467473.99327" 
+    .const 'Sub' $P263 = "23_1281989568.36484" 
     capture_lex $P263
-    .const 'Sub' $P235 = "22_1280467473.99327" 
+    .const 'Sub' $P235 = "22_1281989568.36484" 
     capture_lex $P235
 .annotate 'line', 549
     new $P224, "Undef"
@@ -8247,7 +8247,7 @@
     unless $P230, loop251_done
     shift $P233, $P230
   loop251_redo:
-    .const 'Sub' $P235 = "22_1280467473.99327" 
+    .const 'Sub' $P235 = "22_1281989568.36484" 
     capture_lex $P235
     $P235($P233)
   loop251_next:
@@ -8286,7 +8286,7 @@
     unless $P258, loop276_done
     shift $P261, $P258
   loop276_redo:
-    .const 'Sub' $P263 = "23_1280467473.99327" 
+    .const 'Sub' $P263 = "23_1281989568.36484" 
     capture_lex $P263
     $P263($P261)
   loop276_next:
@@ -8316,7 +8316,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block234"  :anon :subid("22_1280467473.99327") :outer("21_1280467473.99327")
+.sub "_block234"  :anon :subid("22_1281989568.36484") :outer("21_1281989568.36484")
     .param pmc param_236
 .annotate 'line', 555
     .lex "$_", param_236
@@ -8356,7 +8356,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block262"  :anon :subid("23_1280467473.99327") :outer("21_1280467473.99327")
+.sub "_block262"  :anon :subid("23_1281989568.36484") :outer("21_1281989568.36484")
     .param pmc param_264
 .annotate 'line', 560
     .lex "$_", param_264
@@ -8397,9 +8397,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_1281989568.36484") :outer("13_1281989568.36484")
 .annotate 'line', 535
-    .const 'Sub' $P199 = "20_1280467473.99327" 
+    .const 'Sub' $P199 = "20_1281989568.36484" 
     capture_lex $P199
 .annotate 'line', 536
     new $P182, "Undef"
@@ -8442,7 +8442,7 @@
     unless $P194, loop215_done
     shift $P197, $P194
   loop215_redo:
-    .const 'Sub' $P199 = "20_1280467473.99327" 
+    .const 'Sub' $P199 = "20_1281989568.36484" 
     capture_lex $P199
     $P199($P197)
   loop215_next:
@@ -8462,7 +8462,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block198"  :anon :subid("20_1280467473.99327") :outer("19_1280467473.99327")
+.sub "_block198"  :anon :subid("20_1281989568.36484") :outer("19_1281989568.36484")
     .param pmc param_200
 .annotate 'line', 543
     .lex "$_", param_200
@@ -8503,10 +8503,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_1281989568.36484") :outer("13_1281989568.36484")
     .param pmc param_141
 .annotate 'line', 527
-    .const 'Sub' $P150 = "18_1280467473.99327" 
+    .const 'Sub' $P150 = "18_1281989568.36484" 
     capture_lex $P150
 .annotate 'line', 528
     $P140 = root_new ['parrot';'Hash']
@@ -8529,7 +8529,7 @@
     unless $P145, loop163_done
     shift $P148, $P145
   loop163_redo:
-    .const 'Sub' $P150 = "18_1280467473.99327" 
+    .const 'Sub' $P150 = "18_1281989568.36484" 
     capture_lex $P150
     $P150($P148)
   loop163_next:
@@ -8559,7 +8559,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block149"  :anon :subid("18_1280467473.99327") :outer("17_1280467473.99327")
+.sub "_block149"  :anon :subid("18_1281989568.36484") :outer("17_1281989568.36484")
     .param pmc param_151
 .annotate 'line', 529
     .lex "$_", param_151
@@ -8600,9 +8600,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_1281989568.36484") :outer("13_1281989568.36484")
 .annotate 'line', 513
-    .const 'Sub' $P81 = "15_1280467473.99327" 
+    .const 'Sub' $P81 = "15_1281989568.36484" 
     capture_lex $P81
 .annotate 'line', 514
     new $P73, "Undef"
@@ -8623,7 +8623,7 @@
     unless $P75, loop125_done
     shift $P79, $P75
   loop125_redo:
-    .const 'Sub' $P81 = "15_1280467473.99327" 
+    .const 'Sub' $P81 = "15_1281989568.36484" 
     capture_lex $P81
     $P81($P79)
   loop125_next:
@@ -8647,10 +8647,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_1281989568.36484") :outer("14_1281989568.36484")
     .param pmc param_83
 .annotate 'line', 515
-    .const 'Sub' $P92 = "16_1280467473.99327" 
+    .const 'Sub' $P92 = "16_1281989568.36484" 
     capture_lex $P92
 .annotate 'line', 516
     $P82 = root_new ['parrot';'Hash']
@@ -8673,7 +8673,7 @@
     unless $P87, loop112_done
     shift $P90, $P87
   loop112_redo:
-    .const 'Sub' $P92 = "16_1280467473.99327" 
+    .const 'Sub' $P92 = "16_1281989568.36484" 
     capture_lex $P92
     $P92($P90)
   loop112_next:
@@ -8722,7 +8722,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block91"  :anon :subid("16_1280467473.99327") :outer("15_1280467473.99327")
+.sub "_block91"  :anon :subid("16_1281989568.36484") :outer("15_1281989568.36484")
     .param pmc param_93
 .annotate 'line', 517
     .lex "$_", param_93
@@ -8782,7 +8782,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backmod"  :subid("26_1280467473.99327") :outer("11_1280467473.99327")
+.sub "backmod"  :subid("26_1281989568.36484") :outer("11_1281989568.36484")
     .param pmc param_315
     .param pmc param_316
 .annotate 'line', 576
@@ -8857,7 +8857,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "arg"  :subid("27_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "arg"  :subid("27_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_349
 .annotate 'line', 14
     new $P348, 'ExceptionHandler'
@@ -8914,10 +8914,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "arglist"  :subid("28_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "arglist"  :subid("28_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_366
 .annotate 'line', 18
-    .const 'Sub' $P376 = "29_1280467473.99327" 
+    .const 'Sub' $P376 = "29_1281989568.36484" 
     capture_lex $P376
     new $P365, 'ExceptionHandler'
     set_addr $P365, control_364
@@ -8951,7 +8951,7 @@
     unless $P370, loop382_done
     shift $P374, $P370
   loop382_redo:
-    .const 'Sub' $P376 = "29_1280467473.99327" 
+    .const 'Sub' $P376 = "29_1281989568.36484" 
     capture_lex $P376
     $P376($P374)
   loop382_next:
@@ -8980,7 +8980,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block375"  :anon :subid("29_1280467473.99327") :outer("28_1280467473.99327")
+.sub "_block375"  :anon :subid("29_1281989568.36484") :outer("28_1281989568.36484")
     .param pmc param_377
 .annotate 'line', 20
     .lex "$_", param_377
@@ -8994,7 +8994,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("30_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "TOP"  :subid("30_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_392
 .annotate 'line', 24
     new $P391, 'ExceptionHandler'
@@ -9037,14 +9037,14 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "nibbler"  :subid("31_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "nibbler"  :subid("31_1281989568.36484") :method :outer("11_1281989568.36484")
     .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_1281989568.36484" 
     capture_lex $P443
-    .const 'Sub' $P416 = "32_1280467473.99327" 
+    .const 'Sub' $P416 = "32_1281989568.36484" 
     capture_lex $P416
     new $P406, 'ExceptionHandler'
     set_addr $P406, control_405
@@ -9065,7 +9065,7 @@
     set $S413, $P412
     iseq $I414, $S413, "open"
     unless $I414, if_411_end
-    .const 'Sub' $P416 = "32_1280467473.99327" 
+    .const 'Sub' $P416 = "32_1281989568.36484" 
     capture_lex $P416
     $P416()
   if_411_end:
@@ -9128,7 +9128,7 @@
     unless $P437, loop449_done
     shift $P441, $P437
   loop449_redo:
-    .const 'Sub' $P443 = "33_1280467473.99327" 
+    .const 'Sub' $P443 = "33_1281989568.36484" 
     capture_lex $P443
     $P443($P441)
   loop449_next:
@@ -9159,7 +9159,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_1281989568.36484") :outer("31_1281989568.36484")
 .annotate 'line', 32
     $P417 = root_new ['parrot';'Hash']
     .lex "%old", $P417
@@ -9197,7 +9197,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block442"  :anon :subid("33_1280467473.99327") :outer("31_1280467473.99327")
+.sub "_block442"  :anon :subid("33_1281989568.36484") :outer("31_1281989568.36484")
     .param pmc param_444
 .annotate 'line', 42
     .lex "$_", param_444
@@ -9213,10 +9213,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "termish"  :subid("34_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "termish"  :subid("34_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_463
 .annotate 'line', 52
-    .const 'Sub' $P476 = "35_1280467473.99327" 
+    .const 'Sub' $P476 = "35_1281989568.36484" 
     capture_lex $P476
     new $P462, 'ExceptionHandler'
     set_addr $P462, control_461
@@ -9259,7 +9259,7 @@
     unless $P470, loop521_done
     shift $P474, $P470
   loop521_redo:
-    .const 'Sub' $P476 = "35_1280467473.99327" 
+    .const 'Sub' $P476 = "35_1281989568.36484" 
     capture_lex $P476
     $P476($P474)
   loop521_next:
@@ -9288,7 +9288,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block475"  :anon :subid("35_1280467473.99327") :outer("34_1280467473.99327")
+.sub "_block475"  :anon :subid("35_1281989568.36484") :outer("34_1281989568.36484")
     .param pmc param_478
 .annotate 'line', 56
     new $P477, "Undef"
@@ -9416,10 +9416,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_531
 .annotate 'line', 73
-    .const 'Sub' $P540 = "37_1280467473.99327" 
+    .const 'Sub' $P540 = "37_1281989568.36484" 
     capture_lex $P540
     new $P530, 'ExceptionHandler'
     set_addr $P530, control_529
@@ -9482,7 +9482,7 @@
     goto if_536_end
   if_536:
 .annotate 'line', 75
-    .const 'Sub' $P540 = "37_1280467473.99327" 
+    .const 'Sub' $P540 = "37_1281989568.36484" 
     capture_lex $P540
     $P540()
   if_536_end:
@@ -9536,7 +9536,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block539"  :anon :subid("37_1280467473.99327") :outer("36_1280467473.99327")
+.sub "_block539"  :anon :subid("37_1281989568.36484") :outer("36_1281989568.36484")
 .annotate 'line', 77
     new $P541, "Undef"
     .lex "$qast", $P541
@@ -9577,7 +9577,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "atom"  :subid("38_1280467473.99327") :method :outer("11_1280467473.99327")
+.sub "atom"  :subid("38_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_582
 .annotate 'line', 88
     new $P581, 'ExceptionHandler'
@@ -9656,7 +9656,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_608
 .annotate 'line', 98
     new $P607, 'ExceptionHandler'
@@ -9697,7 +9697,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_623
 .annotate 'line', 103
     new $P622, 'ExceptionHandler'
@@ -9738,7 +9738,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_638
 .annotate 'line', 108
     new $P637, 'ExceptionHandler'
@@ -9783,10 +9783,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_655
 .annotate 'line', 114
-    .const 'Sub' $P670 = "43_1280467473.99327" 
+    .const 'Sub' $P670 = "43_1281989568.36484" 
     capture_lex $P670
     new $P654, 'ExceptionHandler'
     set_addr $P654, control_653
@@ -9924,7 +9924,7 @@
     goto if_666_end
   if_666:
 .annotate 'line', 117
-    .const 'Sub' $P670 = "43_1280467473.99327" 
+    .const 'Sub' $P670 = "43_1281989568.36484" 
     capture_lex $P670
     $P670()
   if_666_end:
@@ -9952,7 +9952,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block669"  :anon :subid("43_1280467473.99327") :outer("42_1280467473.99327")
+.sub "_block669"  :anon :subid("43_1281989568.36484") :outer("42_1281989568.36484")
 .annotate 'line', 118
     new $P671, "Undef"
     .lex "$ast", $P671
@@ -9995,7 +9995,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_728
 .annotate 'line', 143
     new $P727, 'ExceptionHandler'
@@ -10048,7 +10048,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_746
 .annotate 'line', 152
     new $P745, 'ExceptionHandler'
@@ -10081,7 +10081,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_756
 .annotate 'line', 156
     new $P755, 'ExceptionHandler'
@@ -10130,7 +10130,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_774
 .annotate 'line', 163
     new $P773, 'ExceptionHandler'
@@ -10204,7 +10204,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_802
 .annotate 'line', 171
     new $P801, 'ExceptionHandler'
@@ -10278,7 +10278,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_830
 .annotate 'line', 179
     new $P829, 'ExceptionHandler'
@@ -10310,7 +10310,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_842
 .annotate 'line', 184
     new $P841, 'ExceptionHandler'
@@ -10342,7 +10342,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_854
 .annotate 'line', 189
     new $P853, 'ExceptionHandler'
@@ -10374,7 +10374,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_866
 .annotate 'line', 194
     new $P865, 'ExceptionHandler'
@@ -10406,7 +10406,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_878
 .annotate 'line', 199
     new $P877, 'ExceptionHandler'
@@ -10438,7 +10438,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_890
 .annotate 'line', 204
     new $P889, 'ExceptionHandler'
@@ -10470,7 +10470,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_902
 .annotate 'line', 209
     new $P901, 'ExceptionHandler'
@@ -10502,7 +10502,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_914
 .annotate 'line', 214
     new $P913, 'ExceptionHandler'
@@ -10534,7 +10534,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_926
 .annotate 'line', 219
     new $P925, 'ExceptionHandler'
@@ -10567,7 +10567,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_936
 .annotate 'line', 223
     new $P935, 'ExceptionHandler'
@@ -10600,7 +10600,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_946
 .annotate 'line', 227
     new $P945, 'ExceptionHandler'
@@ -10633,7 +10633,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_956
 .annotate 'line', 231
     new $P955, 'ExceptionHandler'
@@ -10696,7 +10696,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_978
 .annotate 'line', 244
     new $P977, 'ExceptionHandler'
@@ -10758,7 +10758,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_999
 .annotate 'line', 251
     new $P998, 'ExceptionHandler'
@@ -10921,7 +10921,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1057
 .annotate 'line', 271
     new $P1056, 'ExceptionHandler'
@@ -10961,7 +10961,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1072
 .annotate 'line', 279
     new $P1071, 'ExceptionHandler'
@@ -11028,7 +11028,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1096
 .annotate 'line', 285
     new $P1095, 'ExceptionHandler'
@@ -11072,7 +11072,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1112
 .annotate 'line', 291
     new $P1111, 'ExceptionHandler'
@@ -11116,7 +11116,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1128
 .annotate 'line', 297
     new $P1127, 'ExceptionHandler'
@@ -11160,7 +11160,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1144
 .annotate 'line', 303
     new $P1143, 'ExceptionHandler'
@@ -11204,7 +11204,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1160
 .annotate 'line', 309
     new $P1159, 'ExceptionHandler'
@@ -11248,7 +11248,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1176
 .annotate 'line', 315
     new $P1175, 'ExceptionHandler'
@@ -11292,7 +11292,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1192
 .annotate 'line', 321
     new $P1191, 'ExceptionHandler'
@@ -11336,7 +11336,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1208
 .annotate 'line', 328
     new $P1207, 'ExceptionHandler'
@@ -11420,7 +11420,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1239
 .annotate 'line', 337
     new $P1238, 'ExceptionHandler'
@@ -11504,7 +11504,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1270
 .annotate 'line', 346
     new $P1269, 'ExceptionHandler'
@@ -11540,7 +11540,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1283
 .annotate 'line', 350
     new $P1282, 'ExceptionHandler'
@@ -11574,7 +11574,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1297
 .annotate 'line', 356
     new $P1296, 'ExceptionHandler'
@@ -11635,7 +11635,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1315
 .annotate 'line', 366
     new $P1314, 'ExceptionHandler'
@@ -11704,7 +11704,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1339
 .annotate 'line', 379
     new $P1338, 'ExceptionHandler'
@@ -11748,12 +11748,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1353
 .annotate 'line', 386
-    .const 'Sub' $P1410 = "81_1280467473.99327" 
+    .const 'Sub' $P1410 = "81_1281989568.36484" 
     capture_lex $P1410
-    .const 'Sub' $P1376 = "80_1280467473.99327" 
+    .const 'Sub' $P1376 = "80_1281989568.36484" 
     capture_lex $P1376
     new $P1352, 'ExceptionHandler'
     set_addr $P1352, control_1351
@@ -11847,7 +11847,7 @@
     unless $P1401, loop1415_done
     shift $P1408, $P1401
   loop1415_redo:
-    .const 'Sub' $P1410 = "81_1280467473.99327" 
+    .const 'Sub' $P1410 = "81_1281989568.36484" 
     capture_lex $P1410
     $P1410($P1408)
   loop1415_next:
@@ -11887,7 +11887,7 @@
     goto if_1371_end
   if_1371:
 .annotate 'line', 393
-    .const 'Sub' $P1376 = "80_1280467473.99327" 
+    .const 'Sub' $P1376 = "80_1281989568.36484" 
     capture_lex $P1376
     $P1376()
   if_1371_end:
@@ -11929,7 +11929,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1409"  :anon :subid("81_1280467473.99327") :outer("79_1280467473.99327")
+.sub "_block1409"  :anon :subid("81_1281989568.36484") :outer("79_1281989568.36484")
     .param pmc param_1411
 .annotate 'line', 414
     .lex "$_", param_1411
@@ -11941,7 +11941,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1375"  :anon :subid("80_1280467473.99327") :outer("79_1280467473.99327")
+.sub "_block1375"  :anon :subid("80_1281989568.36484") :outer("79_1281989568.36484")
 .annotate 'line', 394
     new $P1377, "Undef"
     .lex "$regexsym", $P1377
@@ -11973,10 +11973,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1425
 .annotate 'line', 420
-    .const 'Sub' $P1460 = "83_1280467473.99327" 
+    .const 'Sub' $P1460 = "83_1281989568.36484" 
     capture_lex $P1460
     new $P1424, 'ExceptionHandler'
     set_addr $P1424, control_1423
@@ -12068,7 +12068,7 @@
     islt $I1458, $N1455, $N1457
     unless $I1458, loop1483_done
   loop1483_redo:
-    .const 'Sub' $P1460 = "83_1280467473.99327" 
+    .const 'Sub' $P1460 = "83_1281989568.36484" 
     capture_lex $P1460
     $P1460()
   loop1483_next:
@@ -12096,7 +12096,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1459"  :anon :subid("83_1280467473.99327") :outer("82_1280467473.99327")
+.sub "_block1459"  :anon :subid("83_1281989568.36484") :outer("82_1281989568.36484")
 .annotate 'line', 434
     new $P1461, "Undef"
     .lex "$ast", $P1461
@@ -12148,12 +12148,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1493
 .annotate 'line', 447
-    .const 'Sub' $P1518 = "86_1280467473.99327" 
+    .const 'Sub' $P1518 = "86_1281989568.36484" 
     capture_lex $P1518
-    .const 'Sub' $P1502 = "85_1280467473.99327" 
+    .const 'Sub' $P1502 = "85_1281989568.36484" 
     capture_lex $P1502
     new $P1492, 'ExceptionHandler'
     set_addr $P1492, control_1491
@@ -12202,7 +12202,7 @@
     unless $P1512, loop1543_done
     shift $P1516, $P1512
   loop1543_redo:
-    .const 'Sub' $P1518 = "86_1280467473.99327" 
+    .const 'Sub' $P1518 = "86_1281989568.36484" 
     capture_lex $P1518
     $P1518($P1516)
   loop1543_next:
@@ -12226,7 +12226,7 @@
     goto if_1498_end
   if_1498:
 .annotate 'line', 450
-    .const 'Sub' $P1502 = "85_1280467473.99327" 
+    .const 'Sub' $P1502 = "85_1281989568.36484" 
     capture_lex $P1502
     $P1502()
   if_1498_end:
@@ -12258,10 +12258,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1517"  :anon :subid("86_1280467473.99327") :outer("84_1280467473.99327")
+.sub "_block1517"  :anon :subid("86_1281989568.36484") :outer("84_1281989568.36484")
     .param pmc param_1519
 .annotate 'line', 454
-    .const 'Sub' $P1525 = "87_1280467473.99327" 
+    .const 'Sub' $P1525 = "87_1281989568.36484" 
     capture_lex $P1525
     .lex "$_", param_1519
 .annotate 'line', 455
@@ -12290,7 +12290,7 @@
 .annotate 'line', 455
     goto if_1521_end
   if_1521:
-    .const 'Sub' $P1525 = "87_1280467473.99327" 
+    .const 'Sub' $P1525 = "87_1281989568.36484" 
     capture_lex $P1525
     $P1538 = $P1525()
     set $P1520, $P1538
@@ -12301,7 +12301,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1524"  :anon :subid("87_1280467473.99327") :outer("86_1280467473.99327")
+.sub "_block1524"  :anon :subid("87_1281989568.36484") :outer("86_1281989568.36484")
 .annotate 'line', 456
     new $P1526, "Undef"
     .lex "$a", $P1526
@@ -12365,7 +12365,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1501"  :anon :subid("85_1280467473.99327") :outer("84_1280467473.99327")
+.sub "_block1501"  :anon :subid("85_1281989568.36484") :outer("84_1281989568.36484")
 .annotate 'line', 451
     new $P1503, "Undef"
     .lex "$name", $P1503
@@ -12394,7 +12394,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1562
 .annotate 'line', 485
     new $P1561, 'ExceptionHandler'
@@ -12493,7 +12493,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1594
     .param pmc param_1595
 .annotate 'line', 583
@@ -12539,7 +12539,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_1281989568.36484") :method :outer("11_1281989568.36484")
     .param pmc param_1614
 .annotate 'line', 589
     new $P1613, 'ExceptionHandler'
@@ -12586,18 +12586,18 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1629" :load :anon :subid("91_1280467473.99327")
+.sub "_block1629" :load :anon :subid("91_1281989568.36484")
 .annotate 'line', 4
-    .const 'Sub' $P1631 = "11_1280467473.99327" 
+    .const 'Sub' $P1631 = "11_1281989568.36484" 
     $P1632 = $P1631()
     .return ($P1632)
 .end
 
 
 .namespace []
-.sub "_block1635" :load :anon :subid("92_1280467473.99327")
+.sub "_block1635" :load :anon :subid("92_1281989568.36484")
 .annotate 'line', 1
-    .const 'Sub' $P1637 = "10_1280467473.99327" 
+    .const 'Sub' $P1637 = "10_1281989568.36484" 
     $P1638 = $P1637()
     .return ($P1638)
 .end

Modified: branches/substr_eq_at/ext/nqp-rx/src/stage0/Regex-s0.pir
==============================================================================
--- branches/substr_eq_at/ext/nqp-rx/src/stage0/Regex-s0.pir	Mon Aug 16 20:06:04 2010	(r48535)
+++ branches/substr_eq_at/ext/nqp-rx/src/stage0/Regex-s0.pir	Mon Aug 16 21:38:56 2010	(r48536)
@@ -3165,7 +3165,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 +3182,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'('cmp_str_at', '$I11', tgt, lpost, '$I11', litlen)
+    ops.'push_pirop'('ne', '$I11', 0, 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