[svn:parrot] r49243 - in branches/gc_massacre: . compilers/imcc compilers/opsc/src/Ops/Trans compilers/pct/src/PAST config/gen/makefiles docs docs/project examples/io ext/nqp-rx/src/stage0 include/parrot include/parrot/oplib runtime/parrot/library runtime/parrot/library/LWP src src/call src/gc src/interp src/io src/ops src/packfile src/pmc src/runcore src/string src/string/encoding t/dynoplibs t/dynpmc t/library t/pmc tools/release

bacek at svn.parrot.org bacek at svn.parrot.org
Wed Sep 22 10:45:56 UTC 2010


Author: bacek
Date: Wed Sep 22 10:45:52 2010
New Revision: 49243
URL: https://trac.parrot.org/parrot/changeset/49243

Log:
Merge branch 'master' into gc2

Conflicts:
	src/call/context_accessors.c
	src/gc/gc_ms.c
	src/gc/string_gc.c
	src/pmc/imageio.pmc

Added:
   branches/gc_massacre/include/parrot/imageio.h
   branches/gc_massacre/src/pmc/imageiofreeze.pmc
   branches/gc_massacre/src/pmc/imageiothaw.pmc
Deleted:
   branches/gc_massacre/src/pmc/imageio.pmc
   branches/gc_massacre/src/string/encoding/ascii.h
   branches/gc_massacre/src/string/encoding/binary.h
   branches/gc_massacre/src/string/encoding/latin1.h
   branches/gc_massacre/src/string/encoding/ucs2.h
   branches/gc_massacre/src/string/encoding/ucs4.h
   branches/gc_massacre/src/string/encoding/utf16.h
   branches/gc_massacre/src/string/encoding/utf8.h
Modified:
   branches/gc_massacre/CREDITS
   branches/gc_massacre/ChangeLog
   branches/gc_massacre/MANIFEST
   branches/gc_massacre/MANIFEST.generated
   branches/gc_massacre/NEWS
   branches/gc_massacre/PBC_COMPAT
   branches/gc_massacre/README
   branches/gc_massacre/VERSION
   branches/gc_massacre/compilers/imcc/parser_util.c
   branches/gc_massacre/compilers/imcc/pbc.c
   branches/gc_massacre/compilers/imcc/pcc.c
   branches/gc_massacre/compilers/imcc/symreg.c
   branches/gc_massacre/compilers/opsc/src/Ops/Trans/C.pm
   branches/gc_massacre/compilers/pct/src/PAST/Compiler.pir
   branches/gc_massacre/config/gen/makefiles/root.in
   branches/gc_massacre/docs/parrothist.pod
   branches/gc_massacre/docs/project/release_manager_guide.pod
   branches/gc_massacre/docs/tests.pod
   branches/gc_massacre/examples/io/post.pir
   branches/gc_massacre/ext/nqp-rx/src/stage0/HLL-s0.pir
   branches/gc_massacre/ext/nqp-rx/src/stage0/NQP-s0.pir
   branches/gc_massacre/ext/nqp-rx/src/stage0/P6Regex-s0.pir
   branches/gc_massacre/ext/nqp-rx/src/stage0/Regex-s0.pir
   branches/gc_massacre/include/parrot/context.h
   branches/gc_massacre/include/parrot/gc_api.h
   branches/gc_massacre/include/parrot/hash.h
   branches/gc_massacre/include/parrot/interpreter.h
   branches/gc_massacre/include/parrot/longopt.h
   branches/gc_massacre/include/parrot/oplib.h
   branches/gc_massacre/include/parrot/oplib/core_ops.h
   branches/gc_massacre/include/parrot/packfile.h
   branches/gc_massacre/runtime/parrot/library/LWP/Protocol.pir
   branches/gc_massacre/runtime/parrot/library/distutils.pir
   branches/gc_massacre/runtime/parrot/library/osutils.pir
   branches/gc_massacre/src/call/context_accessors.c
   branches/gc_massacre/src/gc/gc_ms.c
   branches/gc_massacre/src/gc/gc_private.h
   branches/gc_massacre/src/gc/string_gc.c
   branches/gc_massacre/src/gc/system.c
   branches/gc_massacre/src/hash.c
   branches/gc_massacre/src/interp/inter_create.c
   branches/gc_massacre/src/io/utf8.c
   branches/gc_massacre/src/longopt.c
   branches/gc_massacre/src/main.c
   branches/gc_massacre/src/ops/core_ops.c
   branches/gc_massacre/src/packfile/pf_items.c
   branches/gc_massacre/src/pmc/codestring.pmc
   branches/gc_massacre/src/pmc/exceptionhandler.pmc
   branches/gc_massacre/src/pmc/hash.pmc
   branches/gc_massacre/src/pmc/hashiterator.pmc
   branches/gc_massacre/src/pmc/lexpad.pmc
   branches/gc_massacre/src/pmc/nci.pmc
   branches/gc_massacre/src/pmc/sub.pmc
   branches/gc_massacre/src/pmc_freeze.c
   branches/gc_massacre/src/runcore/main.c
   branches/gc_massacre/src/runcore/trace.c
   branches/gc_massacre/src/string/api.c
   branches/gc_massacre/src/string/encoding/ascii.c
   branches/gc_massacre/src/string/encoding/binary.c
   branches/gc_massacre/src/string/encoding/latin1.c
   branches/gc_massacre/src/string/encoding/ucs2.c
   branches/gc_massacre/src/string/encoding/ucs4.c
   branches/gc_massacre/src/string/encoding/utf16.c
   branches/gc_massacre/src/string/encoding/utf8.c
   branches/gc_massacre/t/dynoplibs/trans-infnan.t
   branches/gc_massacre/t/dynpmc/rational.t
   branches/gc_massacre/t/library/osutils.t
   branches/gc_massacre/t/pmc/exceptionhandler.t
   branches/gc_massacre/t/pmc/hash.t
   branches/gc_massacre/t/pmc/imageio.t
   branches/gc_massacre/t/pmc/io.t
   branches/gc_massacre/t/pmc/stringbuilder.t
   branches/gc_massacre/tools/release/release.json

Modified: branches/gc_massacre/CREDITS
==============================================================================
--- branches/gc_massacre/CREDITS	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/CREDITS	Wed Sep 22 10:45:52 2010	(r49243)
@@ -402,7 +402,7 @@
 
 N: Gerd Pokorra
 E: pokorra at uni-siegen.de
-D: Release manager for 1.9.0, 2.3.0 and 2.5.0
+D: Release manager for 1.9.0, 2.3.0, 2.5.0 and 2.8.0
 
 N: Goplat
 D: Win98 and other fixes.

Modified: branches/gc_massacre/ChangeLog
==============================================================================
--- branches/gc_massacre/ChangeLog	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/ChangeLog	Wed Sep 22 10:45:52 2010	(r49243)
@@ -1,8 +1,12 @@
 #1 $Id$
 
+2010.09.21     Gerd
+	* Released 2.8.0
+	See NEWS for more.
+
 2010.08.17     mikehh
-    * Released 2.7.0
-    See NEWS for more.
+	* Released 2.7.0
+	See NEWS for more.
 
 2010.07.10     coke
 	* Released 2.6.0

Modified: branches/gc_massacre/MANIFEST
==============================================================================
--- branches/gc_massacre/MANIFEST	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/MANIFEST	Wed Sep 22 10:45:52 2010	(r49243)
@@ -1,7 +1,7 @@
 # ex: set ro:
 # $Id$
 #
-# generated by tools/dev/mk_manifest_and_skip.pl Thu Sep 16 15:48:25 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Sat Sep 18 03:19:23 2010 UT
 #
 # See below for documentation on the format of this file.
 #
@@ -963,6 +963,7 @@
 include/parrot/global_setup.h                               [main]include
 include/parrot/hash.h                                       [main]include
 include/parrot/hll.h                                        [main]include
+include/parrot/imageio.h                                    [main]include
 include/parrot/imcc.h                                       [main]include
 include/parrot/interpreter.h                                [main]include
 include/parrot/io.h                                         [main]include
@@ -1387,9 +1388,10 @@
 src/pmc/hash.pmc                                            []
 src/pmc/hashiterator.pmc                                    []
 src/pmc/hashiteratorkey.pmc                                 []
-src/pmc/imageio.pmc                                         []
+src/pmc/imageiofreeze.pmc                                   []
 src/pmc/imageiosize.pmc                                     []
 src/pmc/imageiostrings.pmc                                  []
+src/pmc/imageiothaw.pmc                                     []
 src/pmc/integer.pmc                                         []
 src/pmc/iterator.pmc                                        []
 src/pmc/key.pmc                                             []
@@ -1454,23 +1456,16 @@
 src/string/api.c                                            []
 src/string/encoding.c                                       []
 src/string/encoding/ascii.c                                 []
-src/string/encoding/ascii.h                                 []
 src/string/encoding/binary.c                                []
-src/string/encoding/binary.h                                []
 src/string/encoding/latin1.c                                []
-src/string/encoding/latin1.h                                []
 src/string/encoding/shared.c                                []
 src/string/encoding/shared.h                                []
 src/string/encoding/tables.c                                []
 src/string/encoding/tables.h                                []
 src/string/encoding/ucs2.c                                  []
-src/string/encoding/ucs2.h                                  []
 src/string/encoding/ucs4.c                                  []
-src/string/encoding/ucs4.h                                  []
 src/string/encoding/utf16.c                                 []
-src/string/encoding/utf16.h                                 []
 src/string/encoding/utf8.c                                  []
-src/string/encoding/utf8.h                                  []
 src/string/primitives.c                                     []
 src/string/unicode.h                                        []
 src/sub.c                                                   []

Modified: branches/gc_massacre/MANIFEST.generated
==============================================================================
--- branches/gc_massacre/MANIFEST.generated	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/MANIFEST.generated	Wed Sep 22 10:45:52 2010	(r49243)
@@ -2,11 +2,11 @@
 # See tools/dev/install_files.pl for documentation on the
 # format of this file.
 # Please re-sort this file after *EVERY* modification
-blib/lib/libparrot.2.7.0.dylib                   [main]lib
+blib/lib/libparrot.2.8.0.dylib                   [main]lib
 blib/lib/libparrot.a                             [main]lib
 blib/lib/libparrot.dylib                         [main]lib
 blib/lib/libparrot.so                            [main]lib
-blib/lib/libparrot.so.2.7.0                      [main]lib
+blib/lib/libparrot.so.2.8.0                      [main]lib
 compilers/data_json/data_json.pbc                [data_json]
 config/gen/call_list/opengl.in                   []
 docs/ops/bit.pod                                 [doc]
@@ -69,9 +69,10 @@
 include/pmc/pmc_hash.h                           [devel]include
 include/pmc/pmc_hashiterator.h                   [devel]include
 include/pmc/pmc_hashiteratorkey.h                [devel]include
-include/pmc/pmc_imageio.h                        [devel]include
+include/pmc/pmc_imageiofreeze.h                  [devel]include
 include/pmc/pmc_imageiosize.h                    [devel]include
 include/pmc/pmc_imageiostrings.h                 [devel]include
+include/pmc/pmc_imageiothaw.h                    [devel]include
 include/pmc/pmc_integer.h                        [devel]include
 include/pmc/pmc_iterator.h                       [devel]include
 include/pmc/pmc_key.h                            [devel]include
@@ -364,9 +365,10 @@
 src/pmc/hash.dump                                [devel]src
 src/pmc/hashiterator.dump                        [devel]src
 src/pmc/hashiteratorkey.dump                     [devel]src
-src/pmc/imageio.dump                             [devel]src
+src/pmc/imageiofreeze.dump                       [devel]src
 src/pmc/imageiosize.dump                         [devel]src
 src/pmc/imageiostrings.dump                      [devel]src
+src/pmc/imageiothaw.dump                         [devel]src
 src/pmc/integer.dump                             [devel]src
 src/pmc/iterator.dump                            [devel]src
 src/pmc/key.dump                                 [devel]src

Modified: branches/gc_massacre/NEWS
==============================================================================
--- branches/gc_massacre/NEWS	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/NEWS	Wed Sep 22 10:45:52 2010	(r49243)
@@ -13,11 +13,13 @@
   + Better organisation of programs by reposition it to "tools/build" and "tools/release"
   + Implemented Exception clone vtable function
   + Added experimental function Parrot_getpid and getpid method
+  + --gc-threshold command line argument added, which controls the % of memory wasted by the GC
   + Closed a lot of tickets
 - Testing
   + Added more core pmc tests
   + Rearranged some tests with C coverage
   + We now have Smolder back, at http://smolder.parrot.org . Submit reports with "make smoke"
+  + skip_all implementation in Parrot's Test::More completed
 - GitMigration
   + Set up a test site for github trac plugin at http://mksig.org/trac/
   + Code of Trac plugin at github is on http://github.com/cotto/github-trac

Modified: branches/gc_massacre/PBC_COMPAT
==============================================================================
--- branches/gc_massacre/PBC_COMPAT	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/PBC_COMPAT	Wed Sep 22 10:45:52 2010	(r49243)
@@ -28,6 +28,7 @@
 
 # please insert tab separated entries at the top of the list
 
+8.4	2010.09.19	cotto	add imageiothaw and imageiofreeze PMCs (plobsing)
 8.3	2010.09.15	luben	removed logical vtables
 8.2	2010.08.19	cotto	minor version bump for 2.7.0
 8.1	2010.08.10	plobsing	merge dynop_mapping branch

Modified: branches/gc_massacre/README
==============================================================================
--- branches/gc_massacre/README	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/README	Wed Sep 22 10:45:52 2010	(r49243)
@@ -1,4 +1,4 @@
-This is Parrot, version 2.7.0
+This is Parrot, version 2.8.0
 ------------------------------
 
 Parrot is Copyright (C) 2001-2010, Parrot Foundation.

Modified: branches/gc_massacre/VERSION
==============================================================================
--- branches/gc_massacre/VERSION	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/VERSION	Wed Sep 22 10:45:52 2010	(r49243)
@@ -1 +1 @@
-2.7.0
+2.8.0

Modified: branches/gc_massacre/compilers/imcc/parser_util.c
==============================================================================
--- branches/gc_massacre/compilers/imcc/parser_util.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/compilers/imcc/parser_util.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -267,8 +267,10 @@
         IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
                     "The opcode '%s' needs arguments", name);
 
-    r[0]           = mk_const(interp, r[0]->name, 'P');
-    r[0]->pmc_type = enum_class_FixedIntegerArray;
+    if (r[0]->set == 'S') {
+        r[0]           = mk_const(interp, r[0]->name, 'P');
+        r[0]->pmc_type = enum_class_FixedIntegerArray;
+    }
 
     op_fullname(fullname, name, r, 1, 0);
     op = (op_info_t *)parrot_hash_get(interp, interp->op_hash, fullname);

Modified: branches/gc_massacre/compilers/imcc/pbc.c
==============================================================================
--- branches/gc_massacre/compilers/imcc/pbc.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/compilers/imcc/pbc.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -703,11 +703,11 @@
 static
 opcode_t
 bytecode_map_op(PARROT_INTERP, op_info_t *info) {
-    int i;
     op_lib_t          *lib     = info->lib;
     op_func_t         op_func  = OP_INFO_OPFUNC(info);
     PackFile_ByteCode *bc      = interp->code;
     PackFile_ByteCode_OpMappingEntry *om;
+    opcode_t i;
 
     for (i = 0; i < bc->op_mapping.n_libs; i++) {
         if (lib == bc->op_mapping.libs[i].lib) {

Modified: branches/gc_massacre/compilers/imcc/pcc.c
==============================================================================
--- branches/gc_massacre/compilers/imcc/pcc.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/compilers/imcc/pcc.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -354,7 +354,8 @@
         bufpos--;
     memcpy(buf+bufpos, subf, lensubf);
 
-    regs[0] = mk_const(interp, buf, 'S');
+    regs[0] = mk_const(interp, buf, 'P');
+    regs[0]->pmc_type = enum_class_FixedIntegerArray;
     ins     = insINS(interp, unit, ins, op_name, regs, n + 1);
 
     if (n >= PCC_GET_ARGS_LIMIT) {

Modified: branches/gc_massacre/compilers/imcc/symreg.c
==============================================================================
--- branches/gc_massacre/compilers/imcc/symreg.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/compilers/imcc/symreg.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -859,11 +859,14 @@
     }
 
     errno = 0;
+
     if (base == 10) {
-        (void)strtol(digits, NULL, base);
+        long int unused = strtol(digits, NULL, base);
+        UNUSED(unused);
     }
     else {
-        (void)strtoul(digits + 2, NULL, base);
+        unsigned long int unused = strtoul(digits + 2, NULL, base);
+        UNUSED(unused);
     }
 
     return errno ? 1 : 0;

Modified: branches/gc_massacre/compilers/opsc/src/Ops/Trans/C.pm
==============================================================================
--- branches/gc_massacre/compilers/opsc/src/Ops/Trans/C.pm	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/compilers/opsc/src/Ops/Trans/C.pm	Wed Sep 22 10:45:52 2010	(r49243)
@@ -356,7 +356,7 @@
     HOP *hops = hop_buckets =
         mem_gc_allocate_n_zeroed_typed(interp, [[BS]]op_lib.op_count * 2, HOP );
 
-    size_t i;
+    opcode_t i;
 
     /* store full names */
     for (i = 0; i < [[BS]]op_lib.op_count; i++) {

Modified: branches/gc_massacre/compilers/pct/src/PAST/Compiler.pir
==============================================================================
--- branches/gc_massacre/compilers/pct/src/PAST/Compiler.pir	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/compilers/pct/src/PAST/Compiler.pir	Wed Sep 22 10:45:52 2010	(r49243)
@@ -931,9 +931,8 @@
     $S0 = self.'unique'('control_')
     ctrllabel = $P0.'new'('result'=>$S0)
     $S0 = self.'uniquereg'('P')
-    bpost.'push_pirop'('new', $S0, "'ExceptionHandler'")
+    bpost.'push_pirop'('new', $S0, "'ExceptionHandler'", '.CONTROL_RETURN')
     bpost.'push_pirop'('set_addr', $S0, ctrllabel)
-    bpost.'push_pirop'('callmethod', '"handle_types"', $S0, '.CONTROL_RETURN')
     bpost.'push_pirop'('push_eh', $S0)
     bpost.'add_directive'('.include "except_types.pasm"')
 

Modified: branches/gc_massacre/config/gen/makefiles/root.in
==============================================================================
--- branches/gc_massacre/config/gen/makefiles/root.in	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/config/gen/makefiles/root.in	Wed Sep 22 10:45:52 2010	(r49243)
@@ -1592,7 +1592,7 @@
 
 src/spf_vtable$(O) : $(PARROT_H_HEADERS) src/spf_vtable.str src/spf_vtable.c
 
-src/string/encoding$(O) : $(PARROT_H_HEADERS)
+src/string/encoding$(O) : $(PARROT_H_HEADERS) src/string/encoding.c
 
 src/string/encoding/tables$(O) : $(PARROT_H_HEADERS) \
     src/string/encoding/tables.h
@@ -1600,32 +1600,22 @@
     src/string/encoding/shared.h \
     src/string/encoding/tables.h
 src/string/encoding/ascii$(O) : $(PARROT_H_HEADERS) \
-    src/string/encoding/ascii.h \
     src/string/encoding/shared.h \
     src/string/encoding/tables.h
 src/string/encoding/latin1$(O) : $(PARROT_H_HEADERS) \
-    src/string/encoding/latin1.h \
     src/string/encoding/shared.h \
     src/string/encoding/tables.h
 src/string/encoding/binary$(O) : $(PARROT_H_HEADERS) \
-    src/string/encoding/binary.h \
     src/string/encoding/shared.h
 src/string/encoding/utf8$(O) : $(PARROT_H_HEADERS) \
-    src/string/encoding/utf8.h \
     src/string/encoding/shared.h \
     src/string/unicode.h
 src/string/encoding/utf16$(O) : $(PARROT_H_HEADERS) \
-    src/string/encoding/utf16.h \
-    src/string/encoding/shared.h \
-    src/string/unicode.h
+    src/string/encoding/shared.h
 src/string/encoding/ucs2$(O) : $(PARROT_H_HEADERS) \
-    src/string/encoding/ucs2.h \
-    src/string/encoding/shared.h \
-    src/string/unicode.h
+    src/string/encoding/shared.h
 src/string/encoding/ucs4$(O) : $(PARROT_H_HEADERS) \
-    src/string/encoding/ucs4.h \
-    src/string/encoding/shared.h \
-    src/string/unicode.h
+    src/string/encoding/shared.h
 
 src/pbc_merge$(O) : \
     $(INC_DIR)/embed.h \
@@ -2552,7 +2542,7 @@
 src/nci_test$(O): $(PARROT_H_HEADERS) src/nci_test.c
 	$(CC) $(CFLAGS) @optimize::src/nci_test.c@ @ccwarn::src/nci_test.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/nci_test.c
 
-$(LIBNCI_TEST_SO): src/nci_test$(O) $(LIBPARROT)
+$(LIBNCI_TEST_SO): src/nci_test$(O)
 	$(LD) $(LD_LOAD_FLAGS) @ncilib_link_extra@ $(LDFLAGS) \
     @ld_out@$@ src/nci_test$(O) $(C_LIBS)
 

Modified: branches/gc_massacre/docs/parrothist.pod
==============================================================================
--- branches/gc_massacre/docs/parrothist.pod	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/docs/parrothist.pod	Wed Sep 22 10:45:52 2010	(r49243)
@@ -113,5 +113,6 @@
 
  coke        2.6.0 *        2010-Jul-20     "Red-rumped"
  mikehh      2.7.0          2010-Aug-17     "Australian King"
+ Gerd        2.8.0          2010-Sep-21     "Tui Parakeet"
 
 =cut

Modified: branches/gc_massacre/docs/project/release_manager_guide.pod
==============================================================================
--- branches/gc_massacre/docs/project/release_manager_guide.pod	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/docs/project/release_manager_guide.pod	Wed Sep 22 10:45:52 2010	(r49243)
@@ -407,7 +407,6 @@
 visible at
 L<http://www.google.com/calendar/render?cid=ldhctdamsgfg5a1cord52po9h8@group.calendar.google.com>.
 
- - Sep 21, 2010 - 2.8   - gerd
  - Oct 19, 2010 - 2.9*  - gerd
  - Nov 16, 2010 - 2.10  - tcurtis
  - Dec 21, 2010 - 2.11  - whiteknight

Modified: branches/gc_massacre/docs/tests.pod
==============================================================================
--- branches/gc_massacre/docs/tests.pod	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/docs/tests.pod	Wed Sep 22 10:45:52 2010	(r49243)
@@ -24,7 +24,7 @@
 =head2 Submitting smolder test results
 
 Parrot has a status page with smoke test results at
-L<http://smolder.plusthree.com/app/public_projects/details/8>.
+L<http://smolder.parrot.org/app/projects/smoke_reports/1>.
 
 You can supply new tests results by just running C<make smoke>.  It will run the
 same tests as C<make test> would, but will upload the test results to the

Modified: branches/gc_massacre/examples/io/post.pir
==============================================================================
--- branches/gc_massacre/examples/io/post.pir	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/examples/io/post.pir	Wed Sep 22 10:45:52 2010	(r49243)
@@ -22,7 +22,7 @@
     push contents, 'username'
     push contents, 'parrot-autobot'
     push contents, 'password'
-    push contents, 'squ at wk'
+    push contents, 'qa_rocks'
     push contents, 'comments'
     push contents, "EXPERIMENTAL LWP.pir"
     push contents, 'report_file'
@@ -31,7 +31,7 @@
     $P0[0] = 'parrot_test_run.tar.gz'
     push contents, $P0
     load_bytecode 'LWP/UserAgent.pir'
-    .const string url = 'http://smolder.plusthree.com/app/projects/process_add_report/8'
+    .const string url = 'http://smolder.parrot.org/app/projects/process_add_report/1'
     .local pmc ua, response
     ua = new ['LWP';'UserAgent']
     ua.'env_proxy'()

Modified: branches/gc_massacre/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/gc_massacre/ext/nqp-rx/src/stage0/HLL-s0.pir	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/ext/nqp-rx/src/stage0/HLL-s0.pir	Wed Sep 22 10:45:52 2010	(r49243)
@@ -129,6 +129,7 @@
 # continue to build from an older Parrot until parrot's trunk
 # is working again.  When we're able to bump PARROT_REVISION,
 # this code can go away to fall back to Parrot's version (DRY).
+
 =over 4
 
 =item lineof(target, pos [, cache :named('cache')])
@@ -1004,29 +1005,32 @@
 ### .include 'gen/hllgrammar-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1283975938.50512")
+.sub "_block11"  :anon :subid("10_1284728468.35267")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Grammar"], "_block13" 
     capture_lex $P14
+.annotate 'line', 1
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
     $I0 = can $P0, "ctxsave"
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
+.annotate 'line', 5
     get_hll_global $P14, ["HLL";"Grammar"], "_block13" 
     capture_lex $P14
     $P332 = $P14()
+.annotate 'line', 1
     .return ($P332)
-    .const 'Sub' $P334 = "106_1283975938.50512" 
+    .const 'Sub' $P334 = "106_1284728468.35267" 
     .return ($P334)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post107") :outer("10_1283975938.50512")
+.sub "" :load :init :subid("post107") :outer("10_1284728468.35267")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1283975938.50512" 
+    .const 'Sub' $P12 = "10_1284728468.35267" 
     .local pmc block
     set block, $P12
     $P337 = get_root_global ["parrot"], "P6metaclass"
@@ -1035,83 +1039,83 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block13"  :subid("11_1283975938.50512") :outer("10_1283975938.50512")
-.annotate 'line', 0
-    .const 'Sub' $P319 = "103_1283975938.50512" 
+.sub "_block13"  :subid("11_1284728468.35267") :outer("10_1284728468.35267")
+.annotate 'line', 5
+    .const 'Sub' $P319 = "103_1284728468.35267" 
     capture_lex $P319
-    .const 'Sub' $P313 = "101_1283975938.50512" 
+    .const 'Sub' $P313 = "101_1284728468.35267" 
     capture_lex $P313
-    .const 'Sub' $P300 = "98_1283975938.50512" 
+    .const 'Sub' $P300 = "98_1284728468.35267" 
     capture_lex $P300
-    .const 'Sub' $P268 = "93_1283975938.50512" 
+    .const 'Sub' $P268 = "93_1284728468.35267" 
     capture_lex $P268
-    .const 'Sub' $P262 = "91_1283975938.50512" 
+    .const 'Sub' $P262 = "91_1284728468.35267" 
     capture_lex $P262
-    .const 'Sub' $P257 = "89_1283975938.50512" 
+    .const 'Sub' $P257 = "89_1284728468.35267" 
     capture_lex $P257
-    .const 'Sub' $P251 = "87_1283975938.50512" 
+    .const 'Sub' $P251 = "87_1284728468.35267" 
     capture_lex $P251
-    .const 'Sub' $P245 = "85_1283975938.50512" 
+    .const 'Sub' $P245 = "85_1284728468.35267" 
     capture_lex $P245
-    .const 'Sub' $P240 = "83_1283975938.50512" 
+    .const 'Sub' $P240 = "83_1284728468.35267" 
     capture_lex $P240
-    .const 'Sub' $P235 = "81_1283975938.50512" 
+    .const 'Sub' $P235 = "81_1284728468.35267" 
     capture_lex $P235
-    .const 'Sub' $P230 = "79_1283975938.50512" 
+    .const 'Sub' $P230 = "79_1284728468.35267" 
     capture_lex $P230
-    .const 'Sub' $P225 = "77_1283975938.50512" 
+    .const 'Sub' $P225 = "77_1284728468.35267" 
     capture_lex $P225
-    .const 'Sub' $P220 = "75_1283975938.50512" 
+    .const 'Sub' $P220 = "75_1284728468.35267" 
     capture_lex $P220
-    .const 'Sub' $P215 = "73_1283975938.50512" 
+    .const 'Sub' $P215 = "73_1284728468.35267" 
     capture_lex $P215
-    .const 'Sub' $P210 = "71_1283975938.50512" 
+    .const 'Sub' $P210 = "71_1284728468.35267" 
     capture_lex $P210
-    .const 'Sub' $P205 = "69_1283975938.50512" 
+    .const 'Sub' $P205 = "69_1284728468.35267" 
     capture_lex $P205
-    .const 'Sub' $P195 = "65_1283975938.50512" 
+    .const 'Sub' $P195 = "65_1284728468.35267" 
     capture_lex $P195
-    .const 'Sub' $P182 = "63_1283975938.50512" 
+    .const 'Sub' $P182 = "63_1284728468.35267" 
     capture_lex $P182
-    .const 'Sub' $P170 = "61_1283975938.50512" 
+    .const 'Sub' $P170 = "61_1284728468.35267" 
     capture_lex $P170
-    .const 'Sub' $P164 = "59_1283975938.50512" 
+    .const 'Sub' $P164 = "59_1284728468.35267" 
     capture_lex $P164
-    .const 'Sub' $P157 = "57_1283975938.50512" 
+    .const 'Sub' $P157 = "57_1284728468.35267" 
     capture_lex $P157
-    .const 'Sub' $P151 = "55_1283975938.50512" 
+    .const 'Sub' $P151 = "55_1284728468.35267" 
     capture_lex $P151
-    .const 'Sub' $P144 = "53_1283975938.50512" 
+    .const 'Sub' $P144 = "53_1284728468.35267" 
     capture_lex $P144
-    .const 'Sub' $P138 = "51_1283975938.50512" 
+    .const 'Sub' $P138 = "51_1284728468.35267" 
     capture_lex $P138
-    .const 'Sub' $P131 = "49_1283975938.50512" 
+    .const 'Sub' $P131 = "49_1284728468.35267" 
     capture_lex $P131
-    .const 'Sub' $P125 = "47_1283975938.50512" 
+    .const 'Sub' $P125 = "47_1284728468.35267" 
     capture_lex $P125
-    .const 'Sub' $P119 = "45_1283975938.50512" 
+    .const 'Sub' $P119 = "45_1284728468.35267" 
     capture_lex $P119
-    .const 'Sub' $P110 = "43_1283975938.50512" 
+    .const 'Sub' $P110 = "43_1284728468.35267" 
     capture_lex $P110
-    .const 'Sub' $P102 = "41_1283975938.50512" 
+    .const 'Sub' $P102 = "41_1284728468.35267" 
     capture_lex $P102
-    .const 'Sub' $P92 = "40_1283975938.50512" 
+    .const 'Sub' $P92 = "40_1284728468.35267" 
     capture_lex $P92
-    .const 'Sub' $P86 = "38_1283975938.50512" 
+    .const 'Sub' $P86 = "38_1284728468.35267" 
     capture_lex $P86
-    .const 'Sub' $P81 = "36_1283975938.50512" 
+    .const 'Sub' $P81 = "36_1284728468.35267" 
     capture_lex $P81
-    .const 'Sub' $P73 = "34_1283975938.50512" 
+    .const 'Sub' $P73 = "34_1284728468.35267" 
     capture_lex $P73
-    .const 'Sub' $P67 = "32_1283975938.50512" 
+    .const 'Sub' $P67 = "32_1284728468.35267" 
     capture_lex $P67
-    .const 'Sub' $P61 = "30_1283975938.50512" 
+    .const 'Sub' $P61 = "30_1284728468.35267" 
     capture_lex $P61
-    .const 'Sub' $P55 = "28_1283975938.50512" 
+    .const 'Sub' $P55 = "28_1284728468.35267" 
     capture_lex $P55
-    .const 'Sub' $P22 = "14_1283975938.50512" 
+    .const 'Sub' $P22 = "14_1284728468.35267" 
     capture_lex $P22
-    .const 'Sub' $P15 = "12_1283975938.50512" 
+    .const 'Sub' $P15 = "12_1284728468.35267" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -1119,17 +1123,19 @@
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
-    .const 'Sub' $P319 = "103_1283975938.50512" 
+.annotate 'line', 33
+    .const 'Sub' $P319 = "103_1284728468.35267" 
     capture_lex $P319
+.annotate 'line', 5
     .return ($P319)
-    .const 'Sub' $P329 = "105_1283975938.50512" 
+    .const 'Sub' $P329 = "105_1284728468.35267" 
     .return ($P329)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "ws"  :subid("12_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "ws"  :subid("12_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 5
     .local string rx16_tgt
     .local int rx16_pos
     .local int rx16_off
@@ -1228,8 +1234,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws"  :subid("13_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__ws"  :subid("13_1284728468.35267") :method
+.annotate 'line', 5
     new $P18, "ResizablePMCArray"
     push $P18, ""
     .return ($P18)
@@ -1237,8 +1243,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "termish"  :subid("14_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "termish"  :subid("14_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 5
     .local string rx23_tgt
     .local int rx23_pos
     .local int rx23_off
@@ -1247,7 +1253,7 @@
     .local pmc rx23_cur
     .local pmc rx23_debug
     (rx23_cur, rx23_pos, rx23_tgt, $I10) = self."!cursor_start"()
-    rx23_cur."!cursor_caparray"("prefixish", "postfixish")
+    rx23_cur."!cursor_caparray"("postfixish", "prefixish")
     getattribute rx23_debug, rx23_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx23_cur
     .local pmc match
@@ -1275,6 +1281,7 @@
     set_addr $I10, rxscan26_loop
     rx23_cur."!mark_push"(0, rx23_pos, $I10)
   rxscan26_done:
+.annotate 'line', 8
   # rx rxquantr27 ** 0..*
     set_addr $I10, rxquantr27_done
     rx23_cur."!mark_push"(0, rx23_pos, $I10)
@@ -1298,6 +1305,7 @@
     rx23_cur."!mark_push"(rx23_rep, rx23_pos, $I10)
     goto rxquantr27_loop
   rxquantr27_done:
+.annotate 'line', 9
   # rx subrule "term" subtype=capture negate=
     rx23_cur."!cursor_pos"(rx23_pos)
     $P10 = rx23_cur."term"()
@@ -1305,6 +1313,7 @@
     rx23_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("term")
     rx23_pos = $P10."pos"()
+.annotate 'line', 10
   # rx rxquantr29 ** 0..*
     set_addr $I10, rxquantr29_done
     rx23_cur."!mark_push"(0, rx23_pos, $I10)
@@ -1328,6 +1337,7 @@
     rx23_cur."!mark_push"(rx23_rep, rx23_pos, $I10)
     goto rxquantr29_loop
   rxquantr29_done:
+.annotate 'line', 7
   # rx pass
     rx23_cur."!cursor_pass"(rx23_pos, "termish")
     if_null rx23_debug, debug_113
@@ -1335,6 +1345,7 @@
   debug_113:
     .return (rx23_cur)
   rx23_restart:
+.annotate 'line', 5
     if_null rx23_debug, debug_114
     rx23_cur."!cursor_debug"("NEXT", "termish")
   debug_114:
@@ -1354,8 +1365,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish"  :subid("15_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__termish"  :subid("15_1284728468.35267") :method
+.annotate 'line', 5
     new $P25, "ResizablePMCArray"
     push $P25, ""
     .return ($P25)
@@ -1363,104 +1374,104 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term"  :subid("16_1283975938.50512") :method
-.annotate 'line', 0
+.sub "term"  :subid("16_1284728468.35267") :method
+.annotate 'line', 13
     $P32 = self."!protoregex"("term")
     .return ($P32)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term"  :subid("17_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__term"  :subid("17_1284728468.35267") :method
+.annotate 'line', 13
     $P34 = self."!PREFIX__!protoregex"("term")
     .return ($P34)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infix"  :subid("18_1283975938.50512") :method
-.annotate 'line', 0
+.sub "infix"  :subid("18_1284728468.35267") :method
+.annotate 'line', 14
     $P36 = self."!protoregex"("infix")
     .return ($P36)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix"  :subid("19_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__infix"  :subid("19_1284728468.35267") :method
+.annotate 'line', 14
     $P38 = self."!PREFIX__!protoregex"("infix")
     .return ($P38)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefix"  :subid("20_1283975938.50512") :method
-.annotate 'line', 0
+.sub "prefix"  :subid("20_1284728468.35267") :method
+.annotate 'line', 15
     $P40 = self."!protoregex"("prefix")
     .return ($P40)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix"  :subid("21_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__prefix"  :subid("21_1284728468.35267") :method
+.annotate 'line', 15
     $P42 = self."!PREFIX__!protoregex"("prefix")
     .return ($P42)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfix"  :subid("22_1283975938.50512") :method
-.annotate 'line', 0
+.sub "postfix"  :subid("22_1284728468.35267") :method
+.annotate 'line', 16
     $P44 = self."!protoregex"("postfix")
     .return ($P44)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix"  :subid("23_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__postfix"  :subid("23_1284728468.35267") :method
+.annotate 'line', 16
     $P46 = self."!PREFIX__!protoregex"("postfix")
     .return ($P46)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "circumfix"  :subid("24_1283975938.50512") :method
-.annotate 'line', 0
+.sub "circumfix"  :subid("24_1284728468.35267") :method
+.annotate 'line', 17
     $P48 = self."!protoregex"("circumfix")
     .return ($P48)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix"  :subid("25_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__circumfix"  :subid("25_1284728468.35267") :method
+.annotate 'line', 17
     $P50 = self."!PREFIX__!protoregex"("circumfix")
     .return ($P50)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postcircumfix"  :subid("26_1283975938.50512") :method
-.annotate 'line', 0
+.sub "postcircumfix"  :subid("26_1284728468.35267") :method
+.annotate 'line', 18
     $P52 = self."!protoregex"("postcircumfix")
     .return ($P52)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix"  :subid("27_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__postcircumfix"  :subid("27_1284728468.35267") :method
+.annotate 'line', 18
     $P54 = self."!PREFIX__!protoregex"("postcircumfix")
     .return ($P54)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>"  :subid("28_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "term:sym<circumfix>"  :subid("28_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 5
     .local string rx56_tgt
     .local int rx56_pos
     .local int rx56_off
@@ -1496,6 +1507,7 @@
     set_addr $I10, rxscan60_loop
     rx56_cur."!mark_push"(0, rx56_pos, $I10)
   rxscan60_done:
+.annotate 'line', 20
   # rx subrule "circumfix" subtype=capture negate=
     rx56_cur."!cursor_pos"(rx56_pos)
     $P10 = rx56_cur."circumfix"()
@@ -1510,6 +1522,7 @@
   debug_117:
     .return (rx56_cur)
   rx56_restart:
+.annotate 'line', 5
     if_null rx56_debug, debug_118
     rx56_cur."!cursor_debug"("NEXT", "term:sym<circumfix>")
   debug_118:
@@ -1529,8 +1542,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1284728468.35267") :method
+.annotate 'line', 5
     $P58 = self."!PREFIX__!subrule"("circumfix", "")
     new $P59, "ResizablePMCArray"
     push $P59, $P58
@@ -1539,8 +1552,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infixish"  :subid("30_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "infixish"  :subid("30_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 5
     .local string rx62_tgt
     .local int rx62_pos
     .local int rx62_off
@@ -1576,6 +1589,7 @@
     set_addr $I10, rxscan66_loop
     rx62_cur."!mark_push"(0, rx62_pos, $I10)
   rxscan66_done:
+.annotate 'line', 22
   # rx subrule "infix" subtype=capture negate=
     rx62_cur."!cursor_pos"(rx62_pos)
     $P10 = rx62_cur."infix"()
@@ -1590,6 +1604,7 @@
   debug_121:
     .return (rx62_cur)
   rx62_restart:
+.annotate 'line', 5
     if_null rx62_debug, debug_122
     rx62_cur."!cursor_debug"("NEXT", "infixish")
   debug_122:
@@ -1609,8 +1624,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("31_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__infixish"  :subid("31_1284728468.35267") :method
+.annotate 'line', 5
     $P64 = self."!PREFIX__!subrule"("infix", "")
     new $P65, "ResizablePMCArray"
     push $P65, $P64
@@ -1619,8 +1634,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefixish"  :subid("32_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "prefixish"  :subid("32_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 5
     .local string rx68_tgt
     .local int rx68_pos
     .local int rx68_off
@@ -1656,6 +1671,7 @@
     set_addr $I10, rxscan72_loop
     rx68_cur."!mark_push"(0, rx68_pos, $I10)
   rxscan72_done:
+.annotate 'line', 23
   # rx subrule "prefix" subtype=capture negate=
     rx68_cur."!cursor_pos"(rx68_pos)
     $P10 = rx68_cur."prefix"()
@@ -1675,6 +1691,7 @@
   debug_125:
     .return (rx68_cur)
   rx68_restart:
+.annotate 'line', 5
     if_null rx68_debug, debug_126
     rx68_cur."!cursor_debug"("NEXT", "prefixish")
   debug_126:
@@ -1694,8 +1711,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish"  :subid("33_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__prefixish"  :subid("33_1284728468.35267") :method
+.annotate 'line', 5
     $P70 = self."!PREFIX__!subrule"("prefix", "")
     new $P71, "ResizablePMCArray"
     push $P71, $P70
@@ -1704,8 +1721,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfixish"  :subid("34_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "postfixish"  :subid("34_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 5
     .local string rx74_tgt
     .local int rx74_pos
     .local int rx74_off
@@ -1742,8 +1759,10 @@
     rx74_cur."!mark_push"(0, rx74_pos, $I10)
   rxscan79_done:
   alt80_0:
+.annotate 'line', 24
     set_addr $I10, alt80_1
     rx74_cur."!mark_push"(0, rx74_pos, $I10)
+.annotate 'line', 25
   # rx subrule "postfix" subtype=capture negate=
     rx74_cur."!cursor_pos"(rx74_pos)
     $P10 = rx74_cur."postfix"()
@@ -1753,6 +1772,7 @@
     rx74_pos = $P10."pos"()
     goto alt80_end
   alt80_1:
+.annotate 'line', 26
   # rx subrule "postcircumfix" subtype=capture negate=
     rx74_cur."!cursor_pos"(rx74_pos)
     $P10 = rx74_cur."postcircumfix"()
@@ -1761,6 +1781,7 @@
     $P10."!cursor_names"("OPER=postcircumfix")
     rx74_pos = $P10."pos"()
   alt80_end:
+.annotate 'line', 24
   # rx pass
     rx74_cur."!cursor_pass"(rx74_pos, "postfixish")
     if_null rx74_debug, debug_129
@@ -1768,6 +1789,7 @@
   debug_129:
     .return (rx74_cur)
   rx74_restart:
+.annotate 'line', 5
     if_null rx74_debug, debug_130
     rx74_cur."!cursor_debug"("NEXT", "postfixish")
   debug_130:
@@ -1787,8 +1809,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish"  :subid("35_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__postfixish"  :subid("35_1284728468.35267") :method
+.annotate 'line', 5
     $P76 = self."!PREFIX__!subrule"("postcircumfix", "")
     $P77 = self."!PREFIX__!subrule"("postfix", "")
     new $P78, "ResizablePMCArray"
@@ -1799,8 +1821,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm"  :subid("36_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "nullterm"  :subid("36_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 5
     .local string rx82_tgt
     .local int rx82_pos
     .local int rx82_off
@@ -1836,6 +1858,7 @@
     set_addr $I10, rxscan85_loop
     rx82_cur."!mark_push"(0, rx82_pos, $I10)
   rxscan85_done:
+.annotate 'line', 29
   # rx pass
     rx82_cur."!cursor_pass"(rx82_pos, "nullterm")
     if_null rx82_debug, debug_133
@@ -1843,6 +1866,7 @@
   debug_133:
     .return (rx82_cur)
   rx82_restart:
+.annotate 'line', 5
     if_null rx82_debug, debug_134
     rx82_cur."!cursor_debug"("NEXT", "nullterm")
   debug_134:
@@ -1862,8 +1886,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm"  :subid("37_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__nullterm"  :subid("37_1284728468.35267") :method
+.annotate 'line', 5
     new $P84, "ResizablePMCArray"
     push $P84, ""
     .return ($P84)
@@ -1871,8 +1895,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm_alt"  :subid("38_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "nullterm_alt"  :subid("38_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 5
     .local string rx87_tgt
     .local int rx87_pos
     .local int rx87_off
@@ -1908,6 +1932,7 @@
     set_addr $I10, rxscan91_loop
     rx87_cur."!mark_push"(0, rx87_pos, $I10)
   rxscan91_done:
+.annotate 'line', 30
   # rx subrule "nullterm" subtype=capture negate=
     rx87_cur."!cursor_pos"(rx87_pos)
     $P10 = rx87_cur."nullterm"()
@@ -1922,6 +1947,7 @@
   debug_137:
     .return (rx87_cur)
   rx87_restart:
+.annotate 'line', 5
     if_null rx87_debug, debug_138
     rx87_cur."!cursor_debug"("NEXT", "nullterm_alt")
   debug_138:
@@ -1941,8 +1967,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt"  :subid("39_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__nullterm_alt"  :subid("39_1284728468.35267") :method
+.annotate 'line', 5
     $P89 = self."!PREFIX__!subrule"("nullterm", "")
     new $P90, "ResizablePMCArray"
     push $P90, $P89
@@ -1952,8 +1978,8 @@
 
 .namespace ["HLL";"Grammar"]
 .include "except_types.pasm"
-.sub "nulltermish"  :subid("40_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "nulltermish"  :subid("40_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     new $P94, 'ExceptionHandler'
     set_addr $P94, control_93
     $P94."handle_types"(.CONTROL_RETURN)
@@ -1979,8 +2005,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_delimited"  :subid("41_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "quote_delimited"  :subid("41_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx103_tgt
     .local int rx103_pos
     .local int rx103_off
@@ -2017,6 +2043,7 @@
     set_addr $I10, rxscan107_loop
     rx103_cur."!mark_push"(0, rx103_pos, $I10)
   rxscan107_done:
+.annotate 'line', 37
   # rx subrule "starter" subtype=capture negate=
     rx103_cur."!cursor_pos"(rx103_pos)
     $P10 = rx103_cur."starter"()
@@ -2054,6 +2081,7 @@
     rx103_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("stopper")
     rx103_pos = $P10."pos"()
+.annotate 'line', 36
   # rx pass
     rx103_cur."!cursor_pass"(rx103_pos, "quote_delimited")
     if_null rx103_debug, debug_141
@@ -2061,6 +2089,7 @@
   debug_141:
     .return (rx103_cur)
   rx103_restart:
+.annotate 'line', 33
     if_null rx103_debug, debug_142
     rx103_cur."!cursor_debug"("NEXT", "quote_delimited")
   debug_142:
@@ -2080,8 +2109,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited"  :subid("42_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote_delimited"  :subid("42_1284728468.35267") :method
+.annotate 'line', 33
     $P105 = self."!PREFIX__!subrule"("starter", "")
     new $P106, "ResizablePMCArray"
     push $P106, $P105
@@ -2090,8 +2119,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_atom"  :subid("43_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "quote_atom"  :subid("43_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx111_tgt
     .local int rx111_pos
     .local int rx111_off
@@ -2127,13 +2156,16 @@
     set_addr $I10, rxscan114_loop
     rx111_cur."!mark_push"(0, rx111_pos, $I10)
   rxscan114_done:
+.annotate 'line', 41
   # rx subrule "stopper" subtype=zerowidth negate=1
     rx111_cur."!cursor_pos"(rx111_pos)
     $P10 = rx111_cur."stopper"()
     if $P10, rx111_fail
   alt115_0:
+.annotate 'line', 42
     set_addr $I10, alt115_1
     rx111_cur."!mark_push"(0, rx111_pos, $I10)
+.annotate 'line', 43
   # rx subrule "quote_escape" subtype=capture negate=
     rx111_cur."!cursor_pos"(rx111_pos)
     $P10 = rx111_cur."quote_escape"()
@@ -2143,6 +2175,7 @@
     rx111_pos = $P10."pos"()
     goto alt115_end
   alt115_1:
+.annotate 'line', 44
   # rx rxquantr116 ** 1..*
     set_addr $I10, rxquantr116_done
     rx111_cur."!mark_push"(0, -1, $I10)
@@ -2165,6 +2198,7 @@
     goto rxquantr116_loop
   rxquantr116_done:
   alt115_end:
+.annotate 'line', 40
   # rx pass
     rx111_cur."!cursor_pass"(rx111_pos, "quote_atom")
     if_null rx111_debug, debug_145
@@ -2172,6 +2206,7 @@
   debug_145:
     .return (rx111_cur)
   rx111_restart:
+.annotate 'line', 33
     if_null rx111_debug, debug_146
     rx111_cur."!cursor_debug"("NEXT", "quote_atom")
   debug_146:
@@ -2191,8 +2226,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom"  :subid("44_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote_atom"  :subid("44_1284728468.35267") :method
+.annotate 'line', 33
     new $P113, "ResizablePMCArray"
     push $P113, ""
     .return ($P113)
@@ -2200,8 +2235,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decint"  :subid("45_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "decint"  :subid("45_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx120_tgt
     .local int rx120_pos
     .local int rx120_off
@@ -2237,6 +2272,7 @@
     set_addr $I10, rxscan123_loop
     rx120_cur."!mark_push"(0, rx120_pos, $I10)
   rxscan123_done:
+.annotate 'line', 48
   # rx rxquantr124 ** 1..*
     set_addr $I10, rxquantr124_done
     rx120_cur."!mark_push"(0, -1, $I10)
@@ -2267,6 +2303,7 @@
   debug_149:
     .return (rx120_cur)
   rx120_restart:
+.annotate 'line', 33
     if_null rx120_debug, debug_150
     rx120_cur."!cursor_debug"("NEXT", "decint")
   debug_150:
@@ -2286,8 +2323,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint"  :subid("46_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__decint"  :subid("46_1284728468.35267") :method
+.annotate 'line', 33
     new $P122, "ResizablePMCArray"
     push $P122, ""
     .return ($P122)
@@ -2295,8 +2332,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decints"  :subid("47_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "decints"  :subid("47_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx126_tgt
     .local int rx126_pos
     .local int rx126_off
@@ -2333,6 +2370,7 @@
     set_addr $I10, rxscan129_loop
     rx126_cur."!mark_push"(0, rx126_pos, $I10)
   rxscan129_done:
+.annotate 'line', 49
   # rx rxquantr130 ** 1..*
     set_addr $I10, rxquantr130_done
     rx126_cur."!mark_push"(0, -1, $I10)
@@ -2374,6 +2412,7 @@
   debug_153:
     .return (rx126_cur)
   rx126_restart:
+.annotate 'line', 33
     if_null rx126_debug, debug_154
     rx126_cur."!cursor_debug"("NEXT", "decints")
   debug_154:
@@ -2393,8 +2432,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decints"  :subid("48_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__decints"  :subid("48_1284728468.35267") :method
+.annotate 'line', 33
     new $P128, "ResizablePMCArray"
     push $P128, ""
     .return ($P128)
@@ -2402,8 +2441,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexint"  :subid("49_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "hexint"  :subid("49_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx132_tgt
     .local int rx132_pos
     .local int rx132_off
@@ -2439,6 +2478,7 @@
     set_addr $I10, rxscan135_loop
     rx132_cur."!mark_push"(0, rx132_pos, $I10)
   rxscan135_done:
+.annotate 'line', 51
   # rx rxquantr136 ** 1..*
     set_addr $I10, rxquantr136_done
     rx132_cur."!mark_push"(0, -1, $I10)
@@ -2479,6 +2519,7 @@
   debug_157:
     .return (rx132_cur)
   rx132_restart:
+.annotate 'line', 33
     if_null rx132_debug, debug_158
     rx132_cur."!cursor_debug"("NEXT", "hexint")
   debug_158:
@@ -2498,8 +2539,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint"  :subid("50_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__hexint"  :subid("50_1284728468.35267") :method
+.annotate 'line', 33
     new $P134, "ResizablePMCArray"
     push $P134, ""
     .return ($P134)
@@ -2507,8 +2548,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexints"  :subid("51_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "hexints"  :subid("51_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx139_tgt
     .local int rx139_pos
     .local int rx139_off
@@ -2545,6 +2586,7 @@
     set_addr $I10, rxscan142_loop
     rx139_cur."!mark_push"(0, rx139_pos, $I10)
   rxscan142_done:
+.annotate 'line', 52
   # rx rxquantr143 ** 1..*
     set_addr $I10, rxquantr143_done
     rx139_cur."!mark_push"(0, -1, $I10)
@@ -2586,6 +2628,7 @@
   debug_161:
     .return (rx139_cur)
   rx139_restart:
+.annotate 'line', 33
     if_null rx139_debug, debug_162
     rx139_cur."!cursor_debug"("NEXT", "hexints")
   debug_162:
@@ -2605,8 +2648,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints"  :subid("52_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__hexints"  :subid("52_1284728468.35267") :method
+.annotate 'line', 33
     new $P141, "ResizablePMCArray"
     push $P141, ""
     .return ($P141)
@@ -2614,8 +2657,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octint"  :subid("53_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "octint"  :subid("53_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx145_tgt
     .local int rx145_pos
     .local int rx145_off
@@ -2651,6 +2694,7 @@
     set_addr $I10, rxscan148_loop
     rx145_cur."!mark_push"(0, rx145_pos, $I10)
   rxscan148_done:
+.annotate 'line', 54
   # rx rxquantr149 ** 1..*
     set_addr $I10, rxquantr149_done
     rx145_cur."!mark_push"(0, -1, $I10)
@@ -2691,6 +2735,7 @@
   debug_165:
     .return (rx145_cur)
   rx145_restart:
+.annotate 'line', 33
     if_null rx145_debug, debug_166
     rx145_cur."!cursor_debug"("NEXT", "octint")
   debug_166:
@@ -2710,8 +2755,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint"  :subid("54_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__octint"  :subid("54_1284728468.35267") :method
+.annotate 'line', 33
     new $P147, "ResizablePMCArray"
     push $P147, ""
     .return ($P147)
@@ -2719,8 +2764,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octints"  :subid("55_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "octints"  :subid("55_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx152_tgt
     .local int rx152_pos
     .local int rx152_off
@@ -2757,6 +2802,7 @@
     set_addr $I10, rxscan155_loop
     rx152_cur."!mark_push"(0, rx152_pos, $I10)
   rxscan155_done:
+.annotate 'line', 55
   # rx rxquantr156 ** 1..*
     set_addr $I10, rxquantr156_done
     rx152_cur."!mark_push"(0, -1, $I10)
@@ -2798,6 +2844,7 @@
   debug_169:
     .return (rx152_cur)
   rx152_restart:
+.annotate 'line', 33
     if_null rx152_debug, debug_170
     rx152_cur."!cursor_debug"("NEXT", "octints")
   debug_170:
@@ -2817,8 +2864,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints"  :subid("56_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__octints"  :subid("56_1284728468.35267") :method
+.annotate 'line', 33
     new $P154, "ResizablePMCArray"
     push $P154, ""
     .return ($P154)
@@ -2826,8 +2873,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binint"  :subid("57_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "binint"  :subid("57_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx158_tgt
     .local int rx158_pos
     .local int rx158_off
@@ -2863,6 +2910,7 @@
     set_addr $I10, rxscan161_loop
     rx158_cur."!mark_push"(0, rx158_pos, $I10)
   rxscan161_done:
+.annotate 'line', 57
   # rx rxquantr162 ** 1..*
     set_addr $I10, rxquantr162_done
     rx158_cur."!mark_push"(0, -1, $I10)
@@ -2903,6 +2951,7 @@
   debug_173:
     .return (rx158_cur)
   rx158_restart:
+.annotate 'line', 33
     if_null rx158_debug, debug_174
     rx158_cur."!cursor_debug"("NEXT", "binint")
   debug_174:
@@ -2922,8 +2971,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint"  :subid("58_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__binint"  :subid("58_1284728468.35267") :method
+.annotate 'line', 33
     new $P160, "ResizablePMCArray"
     push $P160, ""
     .return ($P160)
@@ -2931,8 +2980,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binints"  :subid("59_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "binints"  :subid("59_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx165_tgt
     .local int rx165_pos
     .local int rx165_off
@@ -2969,6 +3018,7 @@
     set_addr $I10, rxscan168_loop
     rx165_cur."!mark_push"(0, rx165_pos, $I10)
   rxscan168_done:
+.annotate 'line', 58
   # rx rxquantr169 ** 1..*
     set_addr $I10, rxquantr169_done
     rx165_cur."!mark_push"(0, -1, $I10)
@@ -3010,6 +3060,7 @@
   debug_177:
     .return (rx165_cur)
   rx165_restart:
+.annotate 'line', 33
     if_null rx165_debug, debug_178
     rx165_cur."!cursor_debug"("NEXT", "binints")
   debug_178:
@@ -3029,8 +3080,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints"  :subid("60_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__binints"  :subid("60_1284728468.35267") :method
+.annotate 'line', 33
     new $P167, "ResizablePMCArray"
     push $P167, ""
     .return ($P167)
@@ -3038,8 +3089,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "integer"  :subid("61_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "integer"  :subid("61_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx171_tgt
     .local int rx171_pos
     .local int rx171_off
@@ -3076,8 +3127,10 @@
     rx171_cur."!mark_push"(0, rx171_pos, $I10)
   rxscan179_done:
   alt180_0:
+.annotate 'line', 61
     set_addr $I10, alt180_1
     rx171_cur."!mark_push"(0, rx171_pos, $I10)
+.annotate 'line', 62
   # rx literal  "0"
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
@@ -3106,6 +3159,7 @@
   alt181_1:
     set_addr $I10, alt181_2
     rx171_cur."!mark_push"(0, rx171_pos, $I10)
+.annotate 'line', 63
   # rx literal  "o"
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
@@ -3124,6 +3178,7 @@
   alt181_2:
     set_addr $I10, alt181_3
     rx171_cur."!mark_push"(0, rx171_pos, $I10)
+.annotate 'line', 64
   # rx literal  "x"
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
@@ -3140,6 +3195,7 @@
     rx171_pos = $P10."pos"()
     goto alt181_end
   alt181_3:
+.annotate 'line', 65
   # rx literal  "d"
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
@@ -3155,8 +3211,10 @@
     $P10."!cursor_names"("VALUE=decint")
     rx171_pos = $P10."pos"()
   alt181_end:
+.annotate 'line', 62
     goto alt180_end
   alt180_1:
+.annotate 'line', 67
   # rx subrule "decint" subtype=capture negate=
     rx171_cur."!cursor_pos"(rx171_pos)
     $P10 = rx171_cur."decint"()
@@ -3165,6 +3223,7 @@
     $P10."!cursor_names"("VALUE=decint")
     rx171_pos = $P10."pos"()
   alt180_end:
+.annotate 'line', 60
   # rx pass
     rx171_cur."!cursor_pass"(rx171_pos, "integer")
     if_null rx171_debug, debug_181
@@ -3172,6 +3231,7 @@
   debug_181:
     .return (rx171_cur)
   rx171_restart:
+.annotate 'line', 33
     if_null rx171_debug, debug_182
     rx171_cur."!cursor_debug"("NEXT", "integer")
   debug_182:
@@ -3191,8 +3251,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer"  :subid("62_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__integer"  :subid("62_1284728468.35267") :method
+.annotate 'line', 33
     $P173 = self."!PREFIX__!subrule"("decint", "")
     $P174 = self."!PREFIX__!subrule"("decint", "0d")
     $P175 = self."!PREFIX__!subrule"("hexint", "0x")
@@ -3209,8 +3269,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "dec_number"  :subid("63_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "dec_number"  :subid("63_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx183_tgt
     .local int rx183_pos
     .local int rx183_off
@@ -3248,8 +3308,10 @@
     rx183_cur."!mark_push"(0, rx183_pos, $I10)
   rxscan186_done:
   alt187_0:
+.annotate 'line', 71
     set_addr $I10, alt187_1
     rx183_cur."!mark_push"(0, rx183_pos, $I10)
+.annotate 'line', 72
   # rx subcapture "coeff"
     set_addr $I10, rxcap_188_fail
     rx183_cur."!mark_push"(0, rx183_pos, $I10)
@@ -3301,6 +3363,7 @@
   alt187_1:
     set_addr $I10, alt187_2
     rx183_cur."!mark_push"(0, rx183_pos, $I10)
+.annotate 'line', 73
   # rx subcapture "coeff"
     set_addr $I10, rxcap_191_fail
     rx183_cur."!mark_push"(0, rx183_pos, $I10)
@@ -3356,6 +3419,7 @@
   rxquantr192_done:
     goto alt187_end
   alt187_2:
+.annotate 'line', 74
   # rx subcapture "coeff"
     set_addr $I10, rxcap_194_fail
     rx183_cur."!mark_push"(0, rx183_pos, $I10)
@@ -3384,6 +3448,7 @@
     $P10."!cursor_names"("escale")
     rx183_pos = $P10."pos"()
   alt187_end:
+.annotate 'line', 71
   # rx pass
     rx183_cur."!cursor_pass"(rx183_pos, "dec_number")
     if_null rx183_debug, debug_185
@@ -3391,6 +3456,7 @@
   debug_185:
     .return (rx183_cur)
   rx183_restart:
+.annotate 'line', 33
     if_null rx183_debug, debug_186
     rx183_cur."!cursor_debug"("NEXT", "dec_number")
   debug_186:
@@ -3410,8 +3476,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number"  :subid("64_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__dec_number"  :subid("64_1284728468.35267") :method
+.annotate 'line', 33
     new $P185, "ResizablePMCArray"
     push $P185, ""
     push $P185, ""
@@ -3421,8 +3487,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "escale"  :subid("65_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "escale"  :subid("65_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx196_tgt
     .local int rx196_pos
     .local int rx196_off
@@ -3458,6 +3524,7 @@
     set_addr $I10, rxscan199_loop
     rx196_cur."!mark_push"(0, rx196_pos, $I10)
   rxscan199_done:
+.annotate 'line', 77
   # rx enumcharlist negate=0 
     ge rx196_pos, rx196_eos, rx196_fail
     sub $I10, rx196_pos, rx196_off
@@ -3492,6 +3559,7 @@
   debug_189:
     .return (rx196_cur)
   rx196_restart:
+.annotate 'line', 33
     if_null rx196_debug, debug_190
     rx196_cur."!cursor_debug"("NEXT", "escale")
   debug_190:
@@ -3511,8 +3579,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale"  :subid("66_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__escale"  :subid("66_1284728468.35267") :method
+.annotate 'line', 33
     new $P198, "ResizablePMCArray"
     push $P198, "e"
     push $P198, "E"
@@ -3521,24 +3589,24 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape"  :subid("67_1283975938.50512") :method
-.annotate 'line', 0
+.sub "quote_escape"  :subid("67_1284728468.35267") :method
+.annotate 'line', 79
     $P202 = self."!protoregex"("quote_escape")
     .return ($P202)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape"  :subid("68_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote_escape"  :subid("68_1284728468.35267") :method
+.annotate 'line', 79
     $P204 = self."!PREFIX__!protoregex"("quote_escape")
     .return ($P204)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>"  :subid("69_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "quote_escape:sym<backslash>"  :subid("69_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx206_tgt
     .local int rx206_pos
     .local int rx206_off
@@ -3574,6 +3642,7 @@
     set_addr $I10, rxscan209_loop
     rx206_cur."!mark_push"(0, rx206_pos, $I10)
   rxscan209_done:
+.annotate 'line', 80
   # rx literal  "\\\\"
     add $I11, rx206_pos, 2
     gt $I11, rx206_eos, rx206_fail
@@ -3592,6 +3661,7 @@
   debug_193:
     .return (rx206_cur)
   rx206_restart:
+.annotate 'line', 33
     if_null rx206_debug, debug_194
     rx206_cur."!cursor_debug"("NEXT", "quote_escape:sym<backslash>")
   debug_194:
@@ -3611,8 +3681,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1284728468.35267") :method
+.annotate 'line', 33
     new $P208, "ResizablePMCArray"
     push $P208, "\\\\"
     .return ($P208)
@@ -3620,8 +3690,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>"  :subid("71_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "quote_escape:sym<stopper>"  :subid("71_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx211_tgt
     .local int rx211_pos
     .local int rx211_off
@@ -3657,6 +3727,7 @@
     set_addr $I10, rxscan214_loop
     rx211_cur."!mark_push"(0, rx211_pos, $I10)
   rxscan214_done:
+.annotate 'line', 81
   # rx literal  "\\"
     add $I11, rx211_pos, 1
     gt $I11, rx211_eos, rx211_fail
@@ -3682,6 +3753,7 @@
   debug_197:
     .return (rx211_cur)
   rx211_restart:
+.annotate 'line', 33
     if_null rx211_debug, debug_198
     rx211_cur."!cursor_debug"("NEXT", "quote_escape:sym<stopper>")
   debug_198:
@@ -3701,8 +3773,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1284728468.35267") :method
+.annotate 'line', 33
     new $P213, "ResizablePMCArray"
     push $P213, "\\"
     .return ($P213)
@@ -3710,8 +3782,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>"  :subid("73_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "quote_escape:sym<bs>"  :subid("73_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx216_tgt
     .local int rx216_pos
     .local int rx216_off
@@ -3747,6 +3819,7 @@
     set_addr $I10, rxscan219_loop
     rx216_cur."!mark_push"(0, rx216_pos, $I10)
   rxscan219_done:
+.annotate 'line', 83
   # rx literal  "\\b"
     add $I11, rx216_pos, 2
     gt $I11, rx216_eos, rx216_fail
@@ -3765,6 +3838,7 @@
   debug_201:
     .return (rx216_cur)
   rx216_restart:
+.annotate 'line', 33
     if_null rx216_debug, debug_202
     rx216_cur."!cursor_debug"("NEXT", "quote_escape:sym<bs>")
   debug_202:
@@ -3784,8 +3858,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1284728468.35267") :method
+.annotate 'line', 33
     new $P218, "ResizablePMCArray"
     push $P218, "\\b"
     .return ($P218)
@@ -3793,8 +3867,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>"  :subid("75_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "quote_escape:sym<nl>"  :subid("75_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx221_tgt
     .local int rx221_pos
     .local int rx221_off
@@ -3830,6 +3904,7 @@
     set_addr $I10, rxscan224_loop
     rx221_cur."!mark_push"(0, rx221_pos, $I10)
   rxscan224_done:
+.annotate 'line', 84
   # rx literal  "\\n"
     add $I11, rx221_pos, 2
     gt $I11, rx221_eos, rx221_fail
@@ -3848,6 +3923,7 @@
   debug_205:
     .return (rx221_cur)
   rx221_restart:
+.annotate 'line', 33
     if_null rx221_debug, debug_206
     rx221_cur."!cursor_debug"("NEXT", "quote_escape:sym<nl>")
   debug_206:
@@ -3867,8 +3943,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1284728468.35267") :method
+.annotate 'line', 33
     new $P223, "ResizablePMCArray"
     push $P223, "\\n"
     .return ($P223)
@@ -3876,8 +3952,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>"  :subid("77_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "quote_escape:sym<cr>"  :subid("77_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx226_tgt
     .local int rx226_pos
     .local int rx226_off
@@ -3913,6 +3989,7 @@
     set_addr $I10, rxscan229_loop
     rx226_cur."!mark_push"(0, rx226_pos, $I10)
   rxscan229_done:
+.annotate 'line', 85
   # rx literal  "\\r"
     add $I11, rx226_pos, 2
     gt $I11, rx226_eos, rx226_fail
@@ -3931,6 +4008,7 @@
   debug_209:
     .return (rx226_cur)
   rx226_restart:
+.annotate 'line', 33
     if_null rx226_debug, debug_210
     rx226_cur."!cursor_debug"("NEXT", "quote_escape:sym<cr>")
   debug_210:
@@ -3950,8 +4028,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1284728468.35267") :method
+.annotate 'line', 33
     new $P228, "ResizablePMCArray"
     push $P228, "\\r"
     .return ($P228)
@@ -3959,8 +4037,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>"  :subid("79_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "quote_escape:sym<tab>"  :subid("79_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx231_tgt
     .local int rx231_pos
     .local int rx231_off
@@ -3996,6 +4074,7 @@
     set_addr $I10, rxscan234_loop
     rx231_cur."!mark_push"(0, rx231_pos, $I10)
   rxscan234_done:
+.annotate 'line', 86
   # rx literal  "\\t"
     add $I11, rx231_pos, 2
     gt $I11, rx231_eos, rx231_fail
@@ -4014,6 +4093,7 @@
   debug_213:
     .return (rx231_cur)
   rx231_restart:
+.annotate 'line', 33
     if_null rx231_debug, debug_214
     rx231_cur."!cursor_debug"("NEXT", "quote_escape:sym<tab>")
   debug_214:
@@ -4033,8 +4113,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1284728468.35267") :method
+.annotate 'line', 33
     new $P233, "ResizablePMCArray"
     push $P233, "\\t"
     .return ($P233)
@@ -4042,8 +4122,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<ff>"  :subid("81_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "quote_escape:sym<ff>"  :subid("81_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx236_tgt
     .local int rx236_pos
     .local int rx236_off
@@ -4079,6 +4159,7 @@
     set_addr $I10, rxscan239_loop
     rx236_cur."!mark_push"(0, rx236_pos, $I10)
   rxscan239_done:
+.annotate 'line', 87
   # rx literal  "\\f"
     add $I11, rx236_pos, 2
     gt $I11, rx236_eos, rx236_fail
@@ -4097,6 +4178,7 @@
   debug_217:
     .return (rx236_cur)
   rx236_restart:
+.annotate 'line', 33
     if_null rx236_debug, debug_218
     rx236_cur."!cursor_debug"("NEXT", "quote_escape:sym<ff>")
   debug_218:
@@ -4116,8 +4198,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1284728468.35267") :method
+.annotate 'line', 33
     new $P238, "ResizablePMCArray"
     push $P238, "\\f"
     .return ($P238)
@@ -4125,8 +4207,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<esc>"  :subid("83_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "quote_escape:sym<esc>"  :subid("83_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx241_tgt
     .local int rx241_pos
     .local int rx241_off
@@ -4162,6 +4244,7 @@
     set_addr $I10, rxscan244_loop
     rx241_cur."!mark_push"(0, rx241_pos, $I10)
   rxscan244_done:
+.annotate 'line', 88
   # rx literal  "\\e"
     add $I11, rx241_pos, 2
     gt $I11, rx241_eos, rx241_fail
@@ -4180,6 +4263,7 @@
   debug_221:
     .return (rx241_cur)
   rx241_restart:
+.annotate 'line', 33
     if_null rx241_debug, debug_222
     rx241_cur."!cursor_debug"("NEXT", "quote_escape:sym<esc>")
   debug_222:
@@ -4199,8 +4283,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1284728468.35267") :method
+.annotate 'line', 33
     new $P243, "ResizablePMCArray"
     push $P243, "\\e"
     .return ($P243)
@@ -4208,8 +4292,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>"  :subid("85_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "quote_escape:sym<hex>"  :subid("85_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx246_tgt
     .local int rx246_pos
     .local int rx246_off
@@ -4245,6 +4329,7 @@
     set_addr $I10, rxscan249_loop
     rx246_cur."!mark_push"(0, rx246_pos, $I10)
   rxscan249_done:
+.annotate 'line', 90
   # rx literal  unicode:"\\x"
     add $I11, rx246_pos, 2
     gt $I11, rx246_eos, rx246_fail
@@ -4257,6 +4342,7 @@
     $P10 = rx246_cur."quotemod_check"("b")
     unless $P10, rx246_fail
   alt250_0:
+.annotate 'line', 91
     set_addr $I10, alt250_1
     rx246_cur."!mark_push"(0, rx246_pos, $I10)
   # rx subrule "hexint" subtype=capture negate=
@@ -4290,6 +4376,7 @@
     ne $I11, 93, rx246_fail
     add rx246_pos, 1
   alt250_end:
+.annotate 'line', 89
   # rx pass
     rx246_cur."!cursor_pass"(rx246_pos, "quote_escape:sym<hex>")
     if_null rx246_debug, debug_225
@@ -4297,6 +4384,7 @@
   debug_225:
     .return (rx246_cur)
   rx246_restart:
+.annotate 'line', 33
     if_null rx246_debug, debug_226
     rx246_cur."!cursor_debug"("NEXT", "quote_escape:sym<hex>")
   debug_226:
@@ -4316,8 +4404,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1284728468.35267") :method
+.annotate 'line', 33
     new $P248, "ResizablePMCArray"
     push $P248, unicode:"\\x"
     .return ($P248)
@@ -4325,8 +4413,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>"  :subid("87_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "quote_escape:sym<oct>"  :subid("87_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx252_tgt
     .local int rx252_pos
     .local int rx252_off
@@ -4362,6 +4450,7 @@
     set_addr $I10, rxscan255_loop
     rx252_cur."!mark_push"(0, rx252_pos, $I10)
   rxscan255_done:
+.annotate 'line', 94
   # rx literal  "\\o"
     add $I11, rx252_pos, 2
     gt $I11, rx252_eos, rx252_fail
@@ -4374,6 +4463,7 @@
     $P10 = rx252_cur."quotemod_check"("b")
     unless $P10, rx252_fail
   alt256_0:
+.annotate 'line', 95
     set_addr $I10, alt256_1
     rx252_cur."!mark_push"(0, rx252_pos, $I10)
   # rx subrule "octint" subtype=capture negate=
@@ -4407,6 +4497,7 @@
     ne $I11, 93, rx252_fail
     add rx252_pos, 1
   alt256_end:
+.annotate 'line', 93
   # rx pass
     rx252_cur."!cursor_pass"(rx252_pos, "quote_escape:sym<oct>")
     if_null rx252_debug, debug_229
@@ -4414,6 +4505,7 @@
   debug_229:
     .return (rx252_cur)
   rx252_restart:
+.annotate 'line', 33
     if_null rx252_debug, debug_230
     rx252_cur."!cursor_debug"("NEXT", "quote_escape:sym<oct>")
   debug_230:
@@ -4433,8 +4525,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1284728468.35267") :method
+.annotate 'line', 33
     new $P254, "ResizablePMCArray"
     push $P254, "\\o"
     .return ($P254)
@@ -4442,8 +4534,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>"  :subid("89_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "quote_escape:sym<chr>"  :subid("89_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx258_tgt
     .local int rx258_pos
     .local int rx258_off
@@ -4479,6 +4571,7 @@
     set_addr $I10, rxscan261_loop
     rx258_cur."!mark_push"(0, rx258_pos, $I10)
   rxscan261_done:
+.annotate 'line', 97
   # rx literal  "\\c"
     add $I11, rx258_pos, 2
     gt $I11, rx258_eos, rx258_fail
@@ -4504,6 +4597,7 @@
   debug_233:
     .return (rx258_cur)
   rx258_restart:
+.annotate 'line', 33
     if_null rx258_debug, debug_234
     rx258_cur."!cursor_debug"("NEXT", "quote_escape:sym<chr>")
   debug_234:
@@ -4523,8 +4617,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1284728468.35267") :method
+.annotate 'line', 33
     new $P260, "ResizablePMCArray"
     push $P260, "\\c"
     .return ($P260)
@@ -4532,8 +4626,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<0>"  :subid("91_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "quote_escape:sym<0>"  :subid("91_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx263_tgt
     .local int rx263_pos
     .local int rx263_off
@@ -4569,6 +4663,7 @@
     set_addr $I10, rxscan266_loop
     rx263_cur."!mark_push"(0, rx263_pos, $I10)
   rxscan266_done:
+.annotate 'line', 98
   # rx literal  "\\"
     add $I11, rx263_pos, 1
     gt $I11, rx263_eos, rx263_fail
@@ -4608,6 +4703,7 @@
   debug_237:
     .return (rx263_cur)
   rx263_restart:
+.annotate 'line', 33
     if_null rx263_debug, debug_238
     rx263_cur."!cursor_debug"("NEXT", "quote_escape:sym<0>")
   debug_238:
@@ -4627,8 +4723,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1284728468.35267") :method
+.annotate 'line', 33
     new $P265, "ResizablePMCArray"
     push $P265, "\\0"
     .return ($P265)
@@ -4636,13 +4732,13 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<misc>"  :subid("93_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
-    .const 'Sub' $P288 = "97_1283975938.50512" 
+.sub "quote_escape:sym<misc>"  :subid("93_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
+    .const 'Sub' $P288 = "97_1284728468.35267" 
     capture_lex $P288
-    .const 'Sub' $P281 = "96_1283975938.50512" 
+    .const 'Sub' $P281 = "96_1284728468.35267" 
     capture_lex $P281
-    .const 'Sub' $P276 = "95_1283975938.50512" 
+    .const 'Sub' $P276 = "95_1284728468.35267" 
     capture_lex $P276
     .local string rx269_tgt
     .local int rx269_pos
@@ -4679,11 +4775,12 @@
     set_addr $I10, rxscan272_loop
     rx269_cur."!mark_push"(0, rx269_pos, $I10)
   rxscan272_done:
+.annotate 'line', 100
     rx269_cur."!cursor_pos"(rx269_pos)
     find_lex $P273, unicode:"$\x{a2}"
     $P274 = $P273."MATCH"()
     store_lex "$/", $P274
-    .const 'Sub' $P276 = "95_1283975938.50512" 
+    .const 'Sub' $P276 = "95_1284728468.35267" 
     capture_lex $P276
     $P277 = $P276()
   # rx literal  "\\"
@@ -4694,18 +4791,22 @@
     ne $I11, 92, rx269_fail
     add rx269_pos, 1
   alt278_0:
+.annotate 'line', 101
     set_addr $I10, alt278_1
     rx269_cur."!mark_push"(0, rx269_pos, $I10)
+.annotate 'line', 102
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx269_cur."!cursor_pos"(rx269_pos)
     $P10 = rx269_cur."quotemod_check"("b")
     unless $P10, rx269_fail
   alt279_0:
+.annotate 'line', 103
     set_addr $I10, alt279_1
     rx269_cur."!mark_push"(0, rx269_pos, $I10)
+.annotate 'line', 104
   # rx subrule $P281 subtype=capture negate=
     rx269_cur."!cursor_pos"(rx269_pos)
-    .const 'Sub' $P281 = "96_1283975938.50512" 
+    .const 'Sub' $P281 = "96_1284728468.35267" 
     capture_lex $P281
     $P10 = rx269_cur.$P281()
     unless $P10, rx269_fail
@@ -4714,6 +4815,7 @@
     rx269_pos = $P10."pos"()
     goto alt279_end
   alt279_1:
+.annotate 'line', 105
   # rx subcapture "x"
     set_addr $I10, rxcap_284_fail
     rx269_cur."!mark_push"(0, rx269_pos, $I10)
@@ -4738,12 +4840,14 @@
     find_lex $P285, unicode:"$\x{a2}"
     $P286 = $P285."MATCH"()
     store_lex "$/", $P286
-    .const 'Sub' $P288 = "97_1283975938.50512" 
+    .const 'Sub' $P288 = "97_1284728468.35267" 
     capture_lex $P288
     $P298 = $P288()
   alt279_end:
+.annotate 'line', 102
     goto alt278_end
   alt278_1:
+.annotate 'line', 107
   # rx subcapture "textq"
     set_addr $I10, rxcap_299_fail
     rx269_cur."!mark_push"(0, rx269_pos, $I10)
@@ -4762,6 +4866,7 @@
     goto rx269_fail
   rxcap_299_done:
   alt278_end:
+.annotate 'line', 99
   # rx pass
     rx269_cur."!cursor_pass"(rx269_pos, "quote_escape:sym<misc>")
     if_null rx269_debug, debug_247
@@ -4769,6 +4874,7 @@
   debug_247:
     .return (rx269_cur)
   rx269_restart:
+.annotate 'line', 33
     if_null rx269_debug, debug_248
     rx269_cur."!cursor_debug"("NEXT", "quote_escape:sym<misc>")
   debug_248:
@@ -4788,8 +4894,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1284728468.35267") :method
+.annotate 'line', 33
     new $P271, "ResizablePMCArray"
     push $P271, ""
     .return ($P271)
@@ -4797,15 +4903,15 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block275"  :anon :subid("95_1283975938.50512") :outer("93_1283975938.50512")
-.annotate 'line', 0
+.sub "_block275"  :anon :subid("95_1284728468.35267") :outer("93_1284728468.35267")
+.annotate 'line', 100
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block280"  :anon :subid("96_1283975938.50512") :method :outer("93_1283975938.50512")
-.annotate 'line', 0
+.sub "_block280"  :anon :subid("96_1284728468.35267") :method :outer("93_1284728468.35267")
+.annotate 'line', 104
     .local string rx282_tgt
     .local int rx282_pos
     .local int rx282_off
@@ -4873,8 +4979,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block287"  :anon :subid("97_1283975938.50512") :outer("93_1283975938.50512")
-.annotate 'line', 0
+.sub "_block287"  :anon :subid("97_1284728468.35267") :outer("93_1284728468.35267")
+.annotate 'line', 105
     find_lex $P289, "$/"
     $P290 = $P289."CURSOR"()
     new $P291, "String"
@@ -4896,9 +5002,9 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charname"  :subid("98_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
-    .const 'Sub' $P310 = "100_1283975938.50512" 
+.sub "charname"  :subid("98_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
+    .const 'Sub' $P310 = "100_1284728468.35267" 
     capture_lex $P310
     .local string rx301_tgt
     .local int rx301_pos
@@ -4936,8 +5042,10 @@
     rx301_cur."!mark_push"(0, rx301_pos, $I10)
   rxscan305_done:
   alt306_0:
+.annotate 'line', 111
     set_addr $I10, alt306_1
     rx301_cur."!mark_push"(0, rx301_pos, $I10)
+.annotate 'line', 112
   # rx subrule "integer" subtype=capture negate=
     rx301_cur."!cursor_pos"(rx301_pos)
     $P10 = rx301_cur."integer"()
@@ -4947,6 +5055,7 @@
     rx301_pos = $P10."pos"()
     goto alt306_end
   alt306_1:
+.annotate 'line', 113
   # rx enumcharlist negate=0 
     ge rx301_pos, rx301_eos, rx301_fail
     sub $I10, rx301_pos, rx301_off
@@ -4976,13 +5085,15 @@
     index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)", $S10
     lt $I11, 0, rx301_fail
     inc rx301_pos
+.annotate 'line', 114
   # rx subrule "before" subtype=zerowidth negate=
     rx301_cur."!cursor_pos"(rx301_pos)
-    .const 'Sub' $P310 = "100_1283975938.50512" 
+    .const 'Sub' $P310 = "100_1284728468.35267" 
     capture_lex $P310
     $P10 = rx301_cur."before"($P310)
     unless $P10, rx301_fail
   alt306_end:
+.annotate 'line', 111
   # rx pass
     rx301_cur."!cursor_pass"(rx301_pos, "charname")
     if_null rx301_debug, debug_255
@@ -4990,6 +5101,7 @@
   debug_255:
     .return (rx301_cur)
   rx301_restart:
+.annotate 'line', 33
     if_null rx301_debug, debug_256
     rx301_cur."!cursor_debug"("NEXT", "charname")
   debug_256:
@@ -5009,8 +5121,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname"  :subid("99_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__charname"  :subid("99_1284728468.35267") :method
+.annotate 'line', 33
     $P303 = self."!PREFIX__!subrule"("integer", "")
     new $P304, "ResizablePMCArray"
     push $P304, "Z"
@@ -5071,8 +5183,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block309"  :anon :subid("100_1283975938.50512") :method :outer("98_1283975938.50512")
-.annotate 'line', 0
+.sub "_block309"  :anon :subid("100_1284728468.35267") :method :outer("98_1284728468.35267")
+.annotate 'line', 114
     .local string rx311_tgt
     .local int rx311_pos
     .local int rx311_off
@@ -5145,8 +5257,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charnames"  :subid("101_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "charnames"  :subid("101_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx314_tgt
     .local int rx314_pos
     .local int rx314_off
@@ -5183,6 +5295,7 @@
     set_addr $I10, rxscan317_loop
     rx314_cur."!mark_push"(0, rx314_pos, $I10)
   rxscan317_done:
+.annotate 'line', 116
   # rx rxquantr318 ** 1..*
     set_addr $I10, rxquantr318_done
     rx314_cur."!mark_push"(0, -1, $I10)
@@ -5224,6 +5337,7 @@
   debug_259:
     .return (rx314_cur)
   rx314_restart:
+.annotate 'line', 33
     if_null rx314_debug, debug_260
     rx314_cur."!cursor_debug"("NEXT", "charnames")
   debug_260:
@@ -5243,8 +5357,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames"  :subid("102_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__charnames"  :subid("102_1284728468.35267") :method
+.annotate 'line', 33
     new $P316, "ResizablePMCArray"
     push $P316, ""
     .return ($P316)
@@ -5252,8 +5366,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charspec"  :subid("103_1283975938.50512") :method :outer("11_1283975938.50512")
-.annotate 'line', 0
+.sub "charspec"  :subid("103_1284728468.35267") :method :outer("11_1284728468.35267")
+.annotate 'line', 33
     .local string rx320_tgt
     .local int rx320_pos
     .local int rx320_off
@@ -5290,8 +5404,10 @@
     rx320_cur."!mark_push"(0, rx320_pos, $I10)
   rxscan325_done:
   alt326_0:
+.annotate 'line', 118
     set_addr $I10, alt326_1
     rx320_cur."!mark_push"(0, rx320_pos, $I10)
+.annotate 'line', 119
   # rx literal  "["
     add $I11, rx320_pos, 1
     gt $I11, rx320_eos, rx320_fail
@@ -5317,6 +5433,7 @@
   alt326_1:
     set_addr $I10, alt326_2
     rx320_cur."!mark_push"(0, rx320_pos, $I10)
+.annotate 'line', 120
   # rx charclass_q d r 1..-1
     sub $I10, rx320_pos, rx320_off
     find_not_cclass $I11, 8, rx320_tgt, $I10, rx320_eos
@@ -5350,6 +5467,7 @@
   alt326_2:
     set_addr $I10, alt326_3
     rx320_cur."!mark_push"(0, rx320_pos, $I10)
+.annotate 'line', 121
   # rx enumcharlist negate=0 
     ge rx320_pos, rx320_eos, rx320_fail
     sub $I10, rx320_pos, rx320_off
@@ -5359,12 +5477,14 @@
     inc rx320_pos
     goto alt326_end
   alt326_3:
+.annotate 'line', 122
   # rx subrule "panic" subtype=method negate=
     rx320_cur."!cursor_pos"(rx320_pos)
     $P10 = rx320_cur."panic"("Unrecognized \\c character")
     unless $P10, rx320_fail
     rx320_pos = $P10."pos"()
   alt326_end:
+.annotate 'line', 117
   # rx pass
     rx320_cur."!cursor_pass"(rx320_pos, "charspec")
     if_null rx320_debug, debug_263
@@ -5372,6 +5492,7 @@
   debug_263:
     .return (rx320_cur)
   rx320_restart:
+.annotate 'line', 33
     if_null rx320_debug, debug_264
     rx320_cur."!cursor_debug"("NEXT", "charspec")
   debug_264:
@@ -5391,8 +5512,8 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec"  :subid("104_1283975938.50512") :method
-.annotate 'line', 0
+.sub "!PREFIX__charspec"  :subid("104_1284728468.35267") :method
+.annotate 'line', 33
     $P322 = self."!PREFIX__!subrule"("panic", "")
     $P323 = self."!PREFIX__!subrule"("charnames", "[")
     new $P324, "ResizablePMCArray"
@@ -5432,18 +5553,18 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block328" :load :anon :subid("105_1283975938.50512")
-.annotate 'line', 0
-    .const 'Sub' $P330 = "11_1283975938.50512" 
+.sub "_block328" :load :anon :subid("105_1284728468.35267")
+.annotate 'line', 5
+    .const 'Sub' $P330 = "11_1284728468.35267" 
     $P331 = $P330()
     .return ($P331)
 .end
 
 
 .namespace []
-.sub "_block333" :load :anon :subid("106_1283975938.50512")
-.annotate 'line', 0
-    .const 'Sub' $P335 = "10_1283975938.50512" 
+.sub "_block333" :load :anon :subid("106_1284728468.35267")
+.annotate 'line', 1
+    .const 'Sub' $P335 = "10_1284728468.35267" 
     $P336 = $P335()
     .return ($P336)
 .end
@@ -5451,29 +5572,32 @@
 ### .include 'gen/hllgrammar-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1283975939.60403")
+.sub "_block11"  :anon :subid("10_1284728469.44803")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Actions"], "_block13" 
     capture_lex $P14
+.annotate 'line', 1
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
     $I0 = can $P0, "ctxsave"
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
+.annotate 'line', 3
     get_hll_global $P14, ["HLL";"Actions"], "_block13" 
     capture_lex $P14
     $P627 = $P14()
+.annotate 'line', 1
     .return ($P627)
-    .const 'Sub' $P629 = "55_1283975939.60403" 
+    .const 'Sub' $P629 = "55_1284728469.44803" 
     .return ($P629)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post56") :outer("10_1283975939.60403")
+.sub "" :load :init :subid("post56") :outer("10_1284728469.44803")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1283975939.60403" 
+    .const 'Sub' $P12 = "10_1284728469.44803" 
     .local pmc block
     set block, $P12
     $P632 = get_root_global ["parrot"], "P6metaclass"
@@ -5482,75 +5606,75 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block13"  :subid("11_1283975939.60403") :outer("10_1283975939.60403")
-.annotate 'line', 0
-    .const 'Sub' $P605 = "53_1283975939.60403" 
+.sub "_block13"  :subid("11_1284728469.44803") :outer("10_1284728469.44803")
+.annotate 'line', 3
+    .const 'Sub' $P605 = "53_1284728469.44803" 
     capture_lex $P605
-    .const 'Sub' $P580 = "51_1283975939.60403" 
+    .const 'Sub' $P580 = "51_1284728469.44803" 
     capture_lex $P580
-    .const 'Sub' $P550 = "50_1283975939.60403" 
+    .const 'Sub' $P550 = "50_1284728469.44803" 
     capture_lex $P550
-    .const 'Sub' $P531 = "49_1283975939.60403" 
+    .const 'Sub' $P531 = "49_1284728469.44803" 
     capture_lex $P531
-    .const 'Sub' $P524 = "48_1283975939.60403" 
+    .const 'Sub' $P524 = "48_1284728469.44803" 
     capture_lex $P524
-    .const 'Sub' $P514 = "47_1283975939.60403" 
+    .const 'Sub' $P514 = "47_1284728469.44803" 
     capture_lex $P514
-    .const 'Sub' $P497 = "46_1283975939.60403" 
+    .const 'Sub' $P497 = "46_1284728469.44803" 
     capture_lex $P497
-    .const 'Sub' $P480 = "45_1283975939.60403" 
+    .const 'Sub' $P480 = "45_1284728469.44803" 
     capture_lex $P480
-    .const 'Sub' $P473 = "44_1283975939.60403" 
+    .const 'Sub' $P473 = "44_1284728469.44803" 
     capture_lex $P473
-    .const 'Sub' $P466 = "43_1283975939.60403" 
+    .const 'Sub' $P466 = "43_1284728469.44803" 
     capture_lex $P466
-    .const 'Sub' $P459 = "42_1283975939.60403" 
+    .const 'Sub' $P459 = "42_1284728469.44803" 
     capture_lex $P459
-    .const 'Sub' $P452 = "41_1283975939.60403" 
+    .const 'Sub' $P452 = "41_1284728469.44803" 
     capture_lex $P452
-    .const 'Sub' $P445 = "40_1283975939.60403" 
+    .const 'Sub' $P445 = "40_1284728469.44803" 
     capture_lex $P445
-    .const 'Sub' $P438 = "39_1283975939.60403" 
+    .const 'Sub' $P438 = "39_1284728469.44803" 
     capture_lex $P438
-    .const 'Sub' $P428 = "38_1283975939.60403" 
+    .const 'Sub' $P428 = "38_1284728469.44803" 
     capture_lex $P428
-    .const 'Sub' $P421 = "37_1283975939.60403" 
+    .const 'Sub' $P421 = "37_1284728469.44803" 
     capture_lex $P421
-    .const 'Sub' $P405 = "36_1283975939.60403" 
+    .const 'Sub' $P405 = "36_1284728469.44803" 
     capture_lex $P405
-    .const 'Sub' $P330 = "34_1283975939.60403" 
+    .const 'Sub' $P330 = "34_1284728469.44803" 
     capture_lex $P330
-    .const 'Sub' $P267 = "31_1283975939.60403" 
+    .const 'Sub' $P267 = "31_1284728469.44803" 
     capture_lex $P267
-    .const 'Sub' $P258 = "30_1283975939.60403" 
+    .const 'Sub' $P258 = "30_1284728469.44803" 
     capture_lex $P258
-    .const 'Sub' $P249 = "29_1283975939.60403" 
+    .const 'Sub' $P249 = "29_1284728469.44803" 
     capture_lex $P249
-    .const 'Sub' $P240 = "28_1283975939.60403" 
+    .const 'Sub' $P240 = "28_1284728469.44803" 
     capture_lex $P240
-    .const 'Sub' $P231 = "27_1283975939.60403" 
+    .const 'Sub' $P231 = "27_1284728469.44803" 
     capture_lex $P231
-    .const 'Sub' $P222 = "26_1283975939.60403" 
+    .const 'Sub' $P222 = "26_1284728469.44803" 
     capture_lex $P222
-    .const 'Sub' $P212 = "25_1283975939.60403" 
+    .const 'Sub' $P212 = "25_1284728469.44803" 
     capture_lex $P212
-    .const 'Sub' $P202 = "24_1283975939.60403" 
+    .const 'Sub' $P202 = "24_1284728469.44803" 
     capture_lex $P202
-    .const 'Sub' $P194 = "23_1283975939.60403" 
+    .const 'Sub' $P194 = "23_1284728469.44803" 
     capture_lex $P194
-    .const 'Sub' $P184 = "22_1283975939.60403" 
+    .const 'Sub' $P184 = "22_1284728469.44803" 
     capture_lex $P184
-    .const 'Sub' $P174 = "21_1283975939.60403" 
+    .const 'Sub' $P174 = "21_1284728469.44803" 
     capture_lex $P174
-    .const 'Sub' $P73 = "18_1283975939.60403" 
+    .const 'Sub' $P73 = "18_1284728469.44803" 
     capture_lex $P73
-    .const 'Sub' $P35 = "15_1283975939.60403" 
+    .const 'Sub' $P35 = "15_1284728469.44803" 
     capture_lex $P35
-    .const 'Sub' $P28 = "14_1283975939.60403" 
+    .const 'Sub' $P28 = "14_1284728469.44803" 
     capture_lex $P28
-    .const 'Sub' $P22 = "13_1283975939.60403" 
+    .const 'Sub' $P22 = "13_1284728469.44803" 
     capture_lex $P22
-    .const 'Sub' $P15 = "12_1283975939.60403" 
+    .const 'Sub' $P15 = "12_1284728469.44803" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -5558,26 +5682,29 @@
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
-    .const 'Sub' $P605 = "53_1283975939.60403" 
+.annotate 'line', 225
+    .const 'Sub' $P605 = "53_1284728469.44803" 
     newclosure $P622, $P605
+.annotate 'line', 3
     .return ($P622)
-    .const 'Sub' $P624 = "54_1283975939.60403" 
+    .const 'Sub' $P624 = "54_1284728469.44803" 
     .return ($P624)
 .end
 
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "string_to_int"  :subid("12_1283975939.60403") :outer("11_1283975939.60403")
+.sub "string_to_int"  :subid("12_1284728469.44803") :outer("11_1284728469.44803")
     .param pmc param_18
     .param pmc param_19
-.annotate 'line', 0
+.annotate 'line', 3
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
     $P17."handle_types"(.CONTROL_RETURN)
     push_eh $P17
     .lex "$src", param_18
     .lex "$base", param_19
+.annotate 'line', 4
 
         .local pmc src
         .local string src_s
@@ -5609,6 +5736,7 @@
       str_done:
         $P20 = box result
     
+.annotate 'line', 3
     .return ($P20)
   control_16:
     .local pmc exception 
@@ -5620,14 +5748,15 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "ints_to_string"  :subid("13_1283975939.60403") :outer("11_1283975939.60403")
+.sub "ints_to_string"  :subid("13_1284728469.44803") :outer("11_1284728469.44803")
     .param pmc param_25
-.annotate 'line', 0
+.annotate 'line', 37
     new $P24, 'ExceptionHandler'
     set_addr $P24, control_23
     $P24."handle_types"(.CONTROL_RETURN)
     push_eh $P24
     .lex "$ints", param_25
+.annotate 'line', 38
 
         .local string result
         result = ''
@@ -5649,6 +5778,7 @@
       ints_done:
         $P26 = box result
     
+.annotate 'line', 37
     .return ($P26)
   control_23:
     .local pmc exception 
@@ -5660,14 +5790,16 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "CTXSAVE"  :subid("14_1283975939.60403") :method :outer("11_1283975939.60403")
-.annotate 'line', 0
+.sub "CTXSAVE"  :subid("14_1284728469.44803") :method :outer("11_1284728469.44803")
+.annotate 'line', 62
     new $P30, 'ExceptionHandler'
     set_addr $P30, control_29
     $P30."handle_types"(.CONTROL_RETURN)
     push_eh $P30
     .lex "self", self
+.annotate 'line', 63
     get_hll_global $P31, ["PAST"], "Op"
+.annotate 'line', 69
     new $P32, "ResizablePMCArray"
     push $P32, "    $P0 = find_dynamic_lex \"$*CTXSAVE\""
     push $P32, "    if null $P0 goto ctxsave_done"
@@ -5676,6 +5808,7 @@
     push $P32, "    $P0.\"ctxsave\"()"
     push $P32, "  ctxsave_done:"
     $P33 = $P31."new"($P32 :named("inline"))
+.annotate 'line', 62
     .return ($P33)
   control_29:
     .local pmc exception 
@@ -5687,10 +5820,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "SET_BLOCK_OUTER_CTX"  :subid("15_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "SET_BLOCK_OUTER_CTX"  :subid("15_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_38
-.annotate 'line', 0
-    .const 'Sub' $P48 = "16_1283975939.60403" 
+.annotate 'line', 76
+    .const 'Sub' $P48 = "16_1284728469.44803" 
     capture_lex $P48
     new $P37, 'ExceptionHandler'
     set_addr $P37, control_36
@@ -5698,6 +5831,7 @@
     push_eh $P37
     .lex "self", self
     .lex "$block", param_38
+.annotate 'line', 77
     new $P39, "Undef"
     .lex "$outer_ctx", $P39
     find_dynamic_lex $P40, "%*COMPILING"
@@ -5716,6 +5850,7 @@
     new $P42, "Undef"
   vivify_60:
     store_lex "$outer_ctx", $P42
+.annotate 'line', 78
     find_lex $P45, "$outer_ctx"
     defined $I46, $P45
     if $I46, if_44
@@ -5723,11 +5858,12 @@
     set $P43, $I46
     goto if_44_end
   if_44:
-    .const 'Sub' $P48 = "16_1283975939.60403" 
+    .const 'Sub' $P48 = "16_1284728469.44803" 
     capture_lex $P48
     $P71 = $P48()
     set $P43, $P71
   if_44_end:
+.annotate 'line', 76
     .return ($P43)
   control_36:
     .local pmc exception 
@@ -5739,21 +5875,25 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "_block47"  :anon :subid("16_1283975939.60403") :outer("15_1283975939.60403")
-.annotate 'line', 0
-    .const 'Sub' $P62 = "17_1283975939.60403" 
+.sub "_block47"  :anon :subid("16_1284728469.44803") :outer("15_1284728469.44803")
+.annotate 'line', 78
+    .const 'Sub' $P62 = "17_1284728469.44803" 
     capture_lex $P62
+.annotate 'line', 79
     $P49 = root_new ['parrot';'ResizablePMCArray']
     .lex "@ns", $P49
     find_lex $P50, "$outer_ctx"
     getattribute $P51, $P50, "current_namespace"
     $P52 = $P51."get_name"()
     store_lex "@ns", $P52
+.annotate 'line', 80
     find_lex $P53, "@ns"
     $P53."shift"()
+.annotate 'line', 81
     find_lex $P54, "$block"
     find_lex $P55, "@ns"
     $P54."namespace"($P55)
+.annotate 'line', 82
     find_lex $P57, "$outer_ctx"
     $P58 = $P57."lexpad_full"()
     defined $I59, $P58
@@ -5767,7 +5907,7 @@
     unless $P56, loop68_done
     shift $P60, $P56
   loop68_redo:
-    .const 'Sub' $P62 = "17_1283975939.60403" 
+    .const 'Sub' $P62 = "17_1284728469.44803" 
     capture_lex $P62
     $P62($P60)
   loop68_next:
@@ -5781,33 +5921,36 @@
   loop68_done:
     pop_eh 
   for_undef_61:
+.annotate 'line', 78
     .return ($P56)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block61"  :anon :subid("17_1283975939.60403") :outer("16_1283975939.60403")
+.sub "_block61"  :anon :subid("17_1284728469.44803") :outer("16_1284728469.44803")
     .param pmc param_63
-.annotate 'line', 0
+.annotate 'line', 82
     .lex "$_", param_63
+.annotate 'line', 83
     find_lex $P64, "$block"
     find_lex $P65, "$_"
     $P66 = $P65."key"()
     $P67 = $P64."symbol"($P66, "lexical" :named("scope"))
+.annotate 'line', 82
     .return ($P67)
 .end
 
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "EXPR"  :subid("18_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "EXPR"  :subid("18_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_76
     .param pmc param_77 :optional
     .param int has_param_77 :opt_flag
-.annotate 'line', 0
-    .const 'Sub' $P156 = "20_1283975939.60403" 
+.annotate 'line', 89
+    .const 'Sub' $P156 = "20_1284728469.44803" 
     capture_lex $P156
-    .const 'Sub' $P123 = "19_1283975939.60403" 
+    .const 'Sub' $P123 = "19_1284728469.44803" 
     capture_lex $P123
     new $P75, 'ExceptionHandler'
     set_addr $P75, control_74
@@ -5820,8 +5963,10 @@
     set param_77, $P78
   optparam_62:
     .lex "$key", param_77
+.annotate 'line', 91
     new $P79, "Undef"
     .lex "$past", $P79
+.annotate 'line', 90
     find_lex $P81, "$key"
     if $P81, unless_80_end
     new $P82, "Exception"
@@ -5831,6 +5976,7 @@
     setattribute $P82, 'payload', $P83
     throw $P82
   unless_80_end:
+.annotate 'line', 91
     find_lex $P85, "$/"
     $P86 = $P85."ast"()
     set $P84, $P86
@@ -5848,12 +5994,15 @@
     set $P84, $P91
   default_87:
     store_lex "$past", $P84
+.annotate 'line', 92
     find_lex $P93, "$past"
     if $P93, unless_92_end
+.annotate 'line', 93
     get_hll_global $P94, ["PAST"], "Op"
     find_lex $P95, "$/"
     $P96 = $P94."new"($P95 :named("node"))
     store_lex "$past", $P96
+.annotate 'line', 94
     find_lex $P98, "$/"
     unless_null $P98, vivify_65
     $P98 = root_new ['parrot';'Hash']
@@ -5871,6 +6020,7 @@
     new $P101, "Undef"
   vivify_68:
     if $P101, if_97
+.annotate 'line', 95
     find_lex $P109, "$/"
     unless_null $P109, vivify_69
     $P109 = root_new ['parrot';'Hash']
@@ -5910,6 +6060,7 @@
   if_108_end:
     goto if_97_end
   if_97:
+.annotate 'line', 94
     find_lex $P102, "$past"
     find_lex $P103, "$/"
     unless_null $P103, vivify_77
@@ -5930,18 +6081,21 @@
     set $S107, $P106
     $P102."pasttype"($S107)
   if_97_end:
+.annotate 'line', 96
     find_lex $P120, "$past"
     $P121 = $P120."name"()
     if $P121, unless_119_end
-    .const 'Sub' $P123 = "19_1283975939.60403" 
+    .const 'Sub' $P123 = "19_1284728469.44803" 
     capture_lex $P123
     $P123()
   unless_119_end:
   unless_92_end:
+.annotate 'line', 107
     find_lex $P143, "$key"
     set $S144, $P143
     iseq $I145, $S144, "POSTFIX"
     if $I145, if_142
+.annotate 'line', 109
     find_lex $P151, "$/"
     $P152 = $P151."list"()
     defined $I153, $P152
@@ -5955,7 +6109,7 @@
     unless $P150, loop167_done
     shift $P154, $P150
   loop167_redo:
-    .const 'Sub' $P156 = "20_1283975939.60403" 
+    .const 'Sub' $P156 = "20_1284728469.44803" 
     capture_lex $P156
     $P156($P154)
   loop167_next:
@@ -5969,8 +6123,10 @@
   loop167_done:
     pop_eh 
   for_undef_84:
+.annotate 'line', 108
     goto if_142_end
   if_142:
+.annotate 'line', 107
     find_lex $P146, "$past"
     find_lex $P147, "$/"
     unless_null $P147, vivify_85
@@ -5983,9 +6139,11 @@
     $P149 = $P148."ast"()
     $P146."unshift"($P149)
   if_142_end:
+.annotate 'line', 111
     find_lex $P170, "$/"
     find_lex $P171, "$past"
     $P172 = $P170."!make"($P171)
+.annotate 'line', 89
     .return ($P172)
   control_74:
     .local pmc exception 
@@ -5996,10 +6154,11 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block122"  :anon :subid("19_1283975939.60403") :outer("18_1283975939.60403")
-.annotate 'line', 0
+.sub "_block122"  :anon :subid("19_1284728469.44803") :outer("18_1284728469.44803")
+.annotate 'line', 98
     new $P124, "Undef"
     .lex "$name", $P124
+.annotate 'line', 97
     find_lex $P126, "$key"
     set $S127, $P126
     iseq $I128, $S127, "LIST"
@@ -6008,6 +6167,7 @@
     assign $P129, "infix"
     store_lex "$key", $P129
   if_125_end:
+.annotate 'line', 98
 
                 $P0 = find_lex '$key'
                 $S0 = $P0
@@ -6015,6 +6175,7 @@
                 $P130 = box $S0
             
     concat $P131, $P130, ":<"
+.annotate 'line', 103
     find_lex $P132, "$/"
     unless_null $P132, vivify_81
     $P132 = root_new ['parrot';'Hash']
@@ -6030,20 +6191,22 @@
     concat $P135, $P131, $P134
     concat $P136, $P135, ">"
     store_lex "$name", $P136
+.annotate 'line', 104
     find_lex $P137, "$past"
     new $P138, "String"
     assign $P138, "&"
     find_lex $P139, "$name"
     concat $P140, $P138, $P139
     $P141 = $P137."name"($P140)
+.annotate 'line', 96
     .return ($P141)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block155"  :anon :subid("20_1283975939.60403") :outer("18_1283975939.60403")
+.sub "_block155"  :anon :subid("20_1284728469.44803") :outer("18_1284728469.44803")
     .param pmc param_157
-.annotate 'line', 0
+.annotate 'line', 109
     .lex "$_", param_157
     find_lex $P160, "$_"
     $P161 = $P160."ast"()
@@ -6065,9 +6228,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<circumfix>"  :subid("21_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "term:sym<circumfix>"  :subid("21_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_177
-.annotate 'line', 0
+.annotate 'line', 114
     new $P176, 'ExceptionHandler'
     set_addr $P176, control_175
     $P176."handle_types"(.CONTROL_RETURN)
@@ -6096,9 +6259,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "termish"  :subid("22_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "termish"  :subid("22_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_187
-.annotate 'line', 0
+.annotate 'line', 116
     new $P186, 'ExceptionHandler'
     set_addr $P186, control_185
     $P186."handle_types"(.CONTROL_RETURN)
@@ -6127,9 +6290,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "nullterm"  :subid("23_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "nullterm"  :subid("23_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_197
-.annotate 'line', 0
+.annotate 'line', 117
     new $P196, 'ExceptionHandler'
     set_addr $P196, control_195
     $P196."handle_types"(.CONTROL_RETURN)
@@ -6150,9 +6313,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "nullterm_alt"  :subid("24_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "nullterm_alt"  :subid("24_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_205
-.annotate 'line', 0
+.annotate 'line', 118
     new $P204, 'ExceptionHandler'
     set_addr $P204, control_203
     $P204."handle_types"(.CONTROL_RETURN)
@@ -6181,9 +6344,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "integer"  :subid("25_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "integer"  :subid("25_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_215
-.annotate 'line', 0
+.annotate 'line', 120
     new $P214, 'ExceptionHandler'
     set_addr $P214, control_213
     $P214."handle_types"(.CONTROL_RETURN)
@@ -6212,9 +6375,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "dec_number"  :subid("26_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "dec_number"  :subid("26_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_225
-.annotate 'line', 0
+.annotate 'line', 122
     new $P224, 'ExceptionHandler'
     set_addr $P224, control_223
     $P224."handle_types"(.CONTROL_RETURN)
@@ -6236,9 +6399,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "decint"  :subid("27_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "decint"  :subid("27_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_234
-.annotate 'line', 0
+.annotate 'line', 124
     new $P233, 'ExceptionHandler'
     set_addr $P233, control_232
     $P233."handle_types"(.CONTROL_RETURN)
@@ -6260,9 +6423,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "hexint"  :subid("28_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "hexint"  :subid("28_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_243
-.annotate 'line', 0
+.annotate 'line', 125
     new $P242, 'ExceptionHandler'
     set_addr $P242, control_241
     $P242."handle_types"(.CONTROL_RETURN)
@@ -6284,9 +6447,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "octint"  :subid("29_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "octint"  :subid("29_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_252
-.annotate 'line', 0
+.annotate 'line', 126
     new $P251, 'ExceptionHandler'
     set_addr $P251, control_250
     $P251."handle_types"(.CONTROL_RETURN)
@@ -6308,9 +6471,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "binint"  :subid("30_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "binint"  :subid("30_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_261
-.annotate 'line', 0
+.annotate 'line', 127
     new $P260, 'ExceptionHandler'
     set_addr $P260, control_259
     $P260."handle_types"(.CONTROL_RETURN)
@@ -6332,10 +6495,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_EXPR"  :subid("31_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "quote_EXPR"  :subid("31_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_270
-.annotate 'line', 0
-    .const 'Sub' $P286 = "32_1283975939.60403" 
+.annotate 'line', 129
+    .const 'Sub' $P286 = "32_1284728469.44803" 
     capture_lex $P286
     new $P269, 'ExceptionHandler'
     set_addr $P269, control_268
@@ -6343,6 +6506,7 @@
     push_eh $P269
     .lex "self", self
     .lex "$/", param_270
+.annotate 'line', 130
     new $P271, "Undef"
     .lex "$past", $P271
     find_lex $P272, "$/"
@@ -6355,38 +6519,46 @@
   vivify_96:
     $P274 = $P273."ast"()
     store_lex "$past", $P274
+.annotate 'line', 131
     find_lex $P276, "$/"
     $P277 = $P276."CURSOR"()
     $P278 = $P277."quotemod_check"("w")
     unless $P278, if_275_end
+.annotate 'line', 132
     get_hll_global $P280, ["PAST"], "Node"
     find_lex $P281, "$past"
     $P282 = $P280."ACCEPTS"($P281)
     if $P282, if_279
-    .const 'Sub' $P286 = "32_1283975939.60403" 
+.annotate 'line', 135
+    .const 'Sub' $P286 = "32_1284728469.44803" 
     capture_lex $P286
     $P286()
     goto if_279_end
   if_279:
+.annotate 'line', 133
     find_lex $P283, "$/"
     $P284 = $P283."CURSOR"()
     $P284."panic"("Can't form :w list from non-constant strings (yet)")
   if_279_end:
   if_275_end:
+.annotate 'line', 146
     get_hll_global $P318, ["PAST"], "Node"
     find_lex $P319, "$past"
     $P320 = $P318."ACCEPTS"($P319)
     isfalse $I321, $P320
     unless $I321, if_317_end
+.annotate 'line', 147
     get_hll_global $P322, ["PAST"], "Val"
     find_lex $P323, "$past"
     set $S324, $P323
     $P325 = $P322."new"($S324 :named("value"))
     store_lex "$past", $P325
   if_317_end:
+.annotate 'line', 149
     find_lex $P326, "$/"
     find_lex $P327, "$past"
     $P328 = $P326."!make"($P327)
+.annotate 'line', 129
     .return ($P328)
   control_268:
     .local pmc exception 
@@ -6398,10 +6570,11 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "_block285"  :anon :subid("32_1283975939.60403") :outer("31_1283975939.60403")
-.annotate 'line', 0
-    .const 'Sub' $P305 = "33_1283975939.60403" 
+.sub "_block285"  :anon :subid("32_1284728469.44803") :outer("31_1284728469.44803")
+.annotate 'line', 135
+    .const 'Sub' $P305 = "33_1284728469.44803" 
     capture_lex $P305
+.annotate 'line', 136
     $P287 = root_new ['parrot';'ResizablePMCArray']
     .lex "@words", $P287
     get_hll_global $P288, ["HLL";"Grammar"], "split_words"
@@ -6409,10 +6582,12 @@
     find_lex $P290, "$past"
     $P291 = $P288($P289, $P290)
     store_lex "@words", $P291
+.annotate 'line', 137
     find_lex $P294, "@words"
     set $N295, $P294
     isne $I296, $N295, 1.0
     if $I296, if_293
+.annotate 'line', 142
     find_lex $P313, "@words"
     unless_null $P313, vivify_97
     $P313 = root_new ['parrot';'ResizablePMCArray']
@@ -6425,13 +6600,17 @@
     new $P316, 'String'
     set $P316, $S315
     store_lex "$past", $P316
+.annotate 'line', 141
     set $P292, $P316
+.annotate 'line', 137
     goto if_293_end
   if_293:
+.annotate 'line', 138
     get_hll_global $P297, ["PAST"], "Op"
     find_lex $P298, "$/"
     $P299 = $P297."new"("list" :named("pasttype"), $P298 :named("node"))
     store_lex "$past", $P299
+.annotate 'line', 139
     find_lex $P301, "@words"
     defined $I302, $P301
     unless $I302, for_undef_99
@@ -6444,7 +6623,7 @@
     unless $P300, loop310_done
     shift $P303, $P300
   loop310_redo:
-    .const 'Sub' $P305 = "33_1283975939.60403" 
+    .const 'Sub' $P305 = "33_1284728469.44803" 
     capture_lex $P305
     $P305($P303)
   loop310_next:
@@ -6458,16 +6637,18 @@
   loop310_done:
     pop_eh 
   for_undef_99:
+.annotate 'line', 137
     set $P292, $P300
   if_293_end:
+.annotate 'line', 135
     .return ($P292)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block304"  :anon :subid("33_1283975939.60403") :outer("32_1283975939.60403")
+.sub "_block304"  :anon :subid("33_1284728469.44803") :outer("32_1284728469.44803")
     .param pmc param_306
-.annotate 'line', 0
+.annotate 'line', 139
     .lex "$_", param_306
     find_lex $P307, "$past"
     find_lex $P308, "$_"
@@ -6478,10 +6659,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_delimited"  :subid("34_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "quote_delimited"  :subid("34_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_333
-.annotate 'line', 0
-    .const 'Sub' $P345 = "35_1283975939.60403" 
+.annotate 'line', 152
+    .const 'Sub' $P345 = "35_1284728469.44803" 
     capture_lex $P345
     new $P332, 'ExceptionHandler'
     set_addr $P332, control_331
@@ -6489,16 +6670,22 @@
     push_eh $P332
     .lex "self", self
     .lex "$/", param_333
+.annotate 'line', 153
     $P334 = root_new ['parrot';'ResizablePMCArray']
     .lex "@parts", $P334
+.annotate 'line', 154
     new $P335, "Undef"
     .lex "$lastlit", $P335
+.annotate 'line', 170
     new $P336, "Undef"
     .lex "$past", $P336
+.annotate 'line', 152
     find_lex $P337, "@parts"
+.annotate 'line', 154
     new $P338, "String"
     assign $P338, ""
     store_lex "$lastlit", $P338
+.annotate 'line', 155
     find_lex $P340, "$/"
     unless_null $P340, vivify_100
     $P340 = root_new ['parrot';'Hash']
@@ -6518,7 +6705,7 @@
     unless $P339, loop377_done
     shift $P343, $P339
   loop377_redo:
-    .const 'Sub' $P345 = "35_1283975939.60403" 
+    .const 'Sub' $P345 = "35_1284728469.44803" 
     capture_lex $P345
     $P345($P343)
   loop377_next:
@@ -6532,6 +6719,7 @@
   loop377_done:
     pop_eh 
   for_undef_102:
+.annotate 'line', 169
     find_lex $P381, "$lastlit"
     set $S382, $P381
     isgt $I383, $S382, ""
@@ -6540,6 +6728,7 @@
     find_lex $P385, "$lastlit"
     $P384."push"($P385)
   if_380_end:
+.annotate 'line', 170
     find_lex $P388, "@parts"
     if $P388, if_387
     new $P391, "String"
@@ -6552,6 +6741,7 @@
     set $P386, $P390
   if_387_end:
     store_lex "$past", $P386
+.annotate 'line', 171
     new $P399, 'ExceptionHandler'
     set_addr $P399, loop398_handler
     $P399."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
@@ -6560,6 +6750,7 @@
     find_lex $P392, "@parts"
     unless $P392, loop398_done
   loop398_redo:
+.annotate 'line', 172
     get_hll_global $P393, ["PAST"], "Op"
     find_lex $P394, "$past"
     find_lex $P395, "@parts"
@@ -6567,6 +6758,7 @@
     $P397 = $P393."new"($P394, $P396, "concat" :named("pirop"))
     store_lex "$past", $P397
   loop398_next:
+.annotate 'line', 171
     goto loop398_test
   loop398_handler:
     .local pmc exception 
@@ -6576,9 +6768,11 @@
     eq $P400, .CONTROL_LOOP_REDO, loop398_redo
   loop398_done:
     pop_eh 
+.annotate 'line', 174
     find_lex $P401, "$/"
     find_lex $P402, "$past"
     $P403 = $P401."!make"($P402)
+.annotate 'line', 152
     .return ($P403)
   control_331:
     .local pmc exception 
@@ -6589,24 +6783,27 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block344"  :anon :subid("35_1283975939.60403") :outer("34_1283975939.60403")
+.sub "_block344"  :anon :subid("35_1284728469.44803") :outer("34_1284728469.44803")
     .param pmc param_347
-.annotate 'line', 0
+.annotate 'line', 156
     new $P346, "Undef"
     .lex "$ast", $P346
     .lex "$_", param_347
     find_lex $P348, "$_"
     $P349 = $P348."ast"()
     store_lex "$ast", $P349
+.annotate 'line', 157
     get_hll_global $P352, ["PAST"], "Node"
     find_lex $P353, "$ast"
     $P354 = $P352."ACCEPTS"($P353)
     isfalse $I355, $P354
     if $I355, if_351
+.annotate 'line', 160
     find_lex $P361, "$ast"
     get_hll_global $P362, ["PAST"], "Val"
     $P363 = $P361."isa"($P362)
     if $P363, if_360
+.annotate 'line', 164
     find_lex $P369, "$lastlit"
     set $S370, $P369
     isgt $I371, $S370, ""
@@ -6615,46 +6812,57 @@
     find_lex $P373, "$lastlit"
     $P372."push"($P373)
   if_368_end:
+.annotate 'line', 165
     find_lex $P374, "@parts"
     find_lex $P375, "$ast"
     $P374."push"($P375)
+.annotate 'line', 166
     new $P376, "String"
     assign $P376, ""
     store_lex "$lastlit", $P376
+.annotate 'line', 163
     set $P359, $P376
+.annotate 'line', 160
     goto if_360_end
   if_360:
+.annotate 'line', 161
     find_lex $P364, "$lastlit"
     find_lex $P365, "$ast"
     $S366 = $P365."value"()
     concat $P367, $P364, $S366
     store_lex "$lastlit", $P367
+.annotate 'line', 160
     set $P359, $P367
   if_360_end:
     set $P350, $P359
+.annotate 'line', 157
     goto if_351_end
   if_351:
+.annotate 'line', 158
     find_lex $P356, "$lastlit"
     find_lex $P357, "$ast"
     concat $P358, $P356, $P357
     store_lex "$lastlit", $P358
+.annotate 'line', 157
     set $P350, $P358
   if_351_end:
+.annotate 'line', 155
     .return ($P350)
 .end
 
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_atom"  :subid("36_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "quote_atom"  :subid("36_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_408
-.annotate 'line', 0
+.annotate 'line', 177
     new $P407, 'ExceptionHandler'
     set_addr $P407, control_406
     $P407."handle_types"(.CONTROL_RETURN)
     push_eh $P407
     .lex "self", self
     .lex "$/", param_408
+.annotate 'line', 178
     find_lex $P409, "$/"
     find_lex $P412, "$/"
     unless_null $P412, vivify_103
@@ -6683,6 +6891,7 @@
     set $P410, $P416
   if_411_end:
     $P419 = $P409."!make"($P410)
+.annotate 'line', 177
     .return ($P419)
   control_406:
     .local pmc exception 
@@ -6694,9 +6903,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<backslash>"  :subid("37_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "quote_escape:sym<backslash>"  :subid("37_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_424
-.annotate 'line', 0
+.annotate 'line', 181
     new $P423, 'ExceptionHandler'
     set_addr $P423, control_422
     $P423."handle_types"(.CONTROL_RETURN)
@@ -6716,9 +6925,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<stopper>"  :subid("38_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "quote_escape:sym<stopper>"  :subid("38_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_431
-.annotate 'line', 0
+.annotate 'line', 182
     new $P430, 'ExceptionHandler'
     set_addr $P430, control_429
     $P430."handle_types"(.CONTROL_RETURN)
@@ -6747,9 +6956,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<bs>"  :subid("39_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "quote_escape:sym<bs>"  :subid("39_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_441
-.annotate 'line', 0
+.annotate 'line', 184
     new $P440, 'ExceptionHandler'
     set_addr $P440, control_439
     $P440."handle_types"(.CONTROL_RETURN)
@@ -6769,9 +6978,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<nl>"  :subid("40_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "quote_escape:sym<nl>"  :subid("40_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_448
-.annotate 'line', 0
+.annotate 'line', 185
     new $P447, 'ExceptionHandler'
     set_addr $P447, control_446
     $P447."handle_types"(.CONTROL_RETURN)
@@ -6791,9 +7000,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<cr>"  :subid("41_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "quote_escape:sym<cr>"  :subid("41_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_455
-.annotate 'line', 0
+.annotate 'line', 186
     new $P454, 'ExceptionHandler'
     set_addr $P454, control_453
     $P454."handle_types"(.CONTROL_RETURN)
@@ -6813,9 +7022,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<tab>"  :subid("42_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "quote_escape:sym<tab>"  :subid("42_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_462
-.annotate 'line', 0
+.annotate 'line', 187
     new $P461, 'ExceptionHandler'
     set_addr $P461, control_460
     $P461."handle_types"(.CONTROL_RETURN)
@@ -6835,9 +7044,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<ff>"  :subid("43_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "quote_escape:sym<ff>"  :subid("43_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_469
-.annotate 'line', 0
+.annotate 'line', 188
     new $P468, 'ExceptionHandler'
     set_addr $P468, control_467
     $P468."handle_types"(.CONTROL_RETURN)
@@ -6857,9 +7066,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<esc>"  :subid("44_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "quote_escape:sym<esc>"  :subid("44_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_476
-.annotate 'line', 0
+.annotate 'line', 189
     new $P475, 'ExceptionHandler'
     set_addr $P475, control_474
     $P475."handle_types"(.CONTROL_RETURN)
@@ -6879,15 +7088,16 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<hex>"  :subid("45_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "quote_escape:sym<hex>"  :subid("45_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_483
-.annotate 'line', 0
+.annotate 'line', 191
     new $P482, 'ExceptionHandler'
     set_addr $P482, control_481
     $P482."handle_types"(.CONTROL_RETURN)
     push_eh $P482
     .lex "self", self
     .lex "$/", param_483
+.annotate 'line', 192
     find_lex $P484, "$/"
     find_lex $P487, "$/"
     unless_null $P487, vivify_109
@@ -6925,6 +7135,7 @@
   if_486_end:
     $P494 = "ints_to_string"($P485)
     $P495 = $P484."!make"($P494)
+.annotate 'line', 191
     .return ($P495)
   control_481:
     .local pmc exception 
@@ -6936,15 +7147,16 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<oct>"  :subid("46_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "quote_escape:sym<oct>"  :subid("46_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_500
-.annotate 'line', 0
+.annotate 'line', 195
     new $P499, 'ExceptionHandler'
     set_addr $P499, control_498
     $P499."handle_types"(.CONTROL_RETURN)
     push_eh $P499
     .lex "self", self
     .lex "$/", param_500
+.annotate 'line', 196
     find_lex $P501, "$/"
     find_lex $P504, "$/"
     unless_null $P504, vivify_116
@@ -6982,6 +7194,7 @@
   if_503_end:
     $P511 = "ints_to_string"($P502)
     $P512 = $P501."!make"($P511)
+.annotate 'line', 195
     .return ($P512)
   control_498:
     .local pmc exception 
@@ -6993,15 +7206,16 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<chr>"  :subid("47_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "quote_escape:sym<chr>"  :subid("47_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_517
-.annotate 'line', 0
+.annotate 'line', 199
     new $P516, 'ExceptionHandler'
     set_addr $P516, control_515
     $P516."handle_types"(.CONTROL_RETURN)
     push_eh $P516
     .lex "self", self
     .lex "$/", param_517
+.annotate 'line', 200
     find_lex $P518, "$/"
     find_lex $P519, "$/"
     unless_null $P519, vivify_123
@@ -7013,6 +7227,7 @@
   vivify_124:
     $P521 = $P520."ast"()
     $P522 = $P518."!make"($P521)
+.annotate 'line', 199
     .return ($P522)
   control_515:
     .local pmc exception 
@@ -7024,17 +7239,19 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<0>"  :subid("48_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "quote_escape:sym<0>"  :subid("48_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_527
-.annotate 'line', 0
+.annotate 'line', 203
     new $P526, 'ExceptionHandler'
     set_addr $P526, control_525
     $P526."handle_types"(.CONTROL_RETURN)
     push_eh $P526
     .lex "self", self
     .lex "$/", param_527
+.annotate 'line', 204
     find_lex $P528, "$/"
     $P529 = $P528."!make"(unicode:"\x{0}")
+.annotate 'line', 203
     .return ($P529)
   control_525:
     .local pmc exception 
@@ -7046,15 +7263,16 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<misc>"  :subid("49_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "quote_escape:sym<misc>"  :subid("49_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_534
-.annotate 'line', 0
+.annotate 'line', 207
     new $P533, 'ExceptionHandler'
     set_addr $P533, control_532
     $P533."handle_types"(.CONTROL_RETURN)
     push_eh $P533
     .lex "self", self
     .lex "$/", param_534
+.annotate 'line', 208
     find_lex $P535, "$/"
     find_lex $P538, "$/"
     unless_null $P538, vivify_125
@@ -7092,6 +7310,7 @@
     set $P536, $P544
   if_537_end:
     $P548 = $P535."!make"($P536)
+.annotate 'line', 207
     .return ($P548)
   control_532:
     .local pmc exception 
@@ -7103,17 +7322,19 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charname"  :subid("50_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "charname"  :subid("50_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_553
-.annotate 'line', 0
+.annotate 'line', 211
     new $P552, 'ExceptionHandler'
     set_addr $P552, control_551
     $P552."handle_types"(.CONTROL_RETURN)
     push_eh $P552
     .lex "self", self
     .lex "$/", param_553
+.annotate 'line', 212
     new $P554, "Undef"
     .lex "$codepoint", $P554
+.annotate 'line', 213
     find_lex $P557, "$/"
     unless_null $P557, vivify_131
     $P557 = root_new ['parrot';'Hash']
@@ -7123,11 +7344,13 @@
     new $P558, "Undef"
   vivify_132:
     if $P558, if_556
+.annotate 'line', 214
     find_lex $P562, "$/"
     set $S563, $P562
     find_codepoint $I564, $S563
     new $P555, 'Integer'
     set $P555, $I564
+.annotate 'line', 213
     goto if_556_end
   if_556:
     find_lex $P559, "$/"
@@ -7142,6 +7365,7 @@
     set $P555, $P561
   if_556_end:
     store_lex "$codepoint", $P555
+.annotate 'line', 215
     find_lex $P566, "$codepoint"
     set $N567, $P566
     islt $I568, $N567, 0.0
@@ -7154,11 +7378,13 @@
     concat $P573, $P571, $P572
     $P570."panic"($P573)
   if_565_end:
+.annotate 'line', 216
     find_lex $P574, "$/"
     find_lex $P575, "$codepoint"
     set $I576, $P575
     chr $S577, $I576
     $P578 = $P574."!make"($S577)
+.annotate 'line', 211
     .return ($P578)
   control_551:
     .local pmc exception 
@@ -7170,10 +7396,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charnames"  :subid("51_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "charnames"  :subid("51_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_583
-.annotate 'line', 0
-    .const 'Sub' $P592 = "52_1283975939.60403" 
+.annotate 'line', 219
+    .const 'Sub' $P592 = "52_1284728469.44803" 
     capture_lex $P592
     new $P582, 'ExceptionHandler'
     set_addr $P582, control_581
@@ -7181,11 +7407,13 @@
     push_eh $P582
     .lex "self", self
     .lex "$/", param_583
+.annotate 'line', 220
     new $P584, "Undef"
     .lex "$str", $P584
     new $P585, "String"
     assign $P585, ""
     store_lex "$str", $P585
+.annotate 'line', 221
     find_lex $P587, "$/"
     unless_null $P587, vivify_135
     $P587 = root_new ['parrot';'Hash']
@@ -7205,7 +7433,7 @@
     unless $P586, loop598_done
     shift $P590, $P586
   loop598_redo:
-    .const 'Sub' $P592 = "52_1283975939.60403" 
+    .const 'Sub' $P592 = "52_1284728469.44803" 
     capture_lex $P592
     $P592($P590)
   loop598_next:
@@ -7219,9 +7447,11 @@
   loop598_done:
     pop_eh 
   for_undef_137:
+.annotate 'line', 222
     find_lex $P601, "$/"
     find_lex $P602, "$str"
     $P603 = $P601."!make"($P602)
+.annotate 'line', 219
     .return ($P603)
   control_581:
     .local pmc exception 
@@ -7232,9 +7462,9 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block591"  :anon :subid("52_1283975939.60403") :outer("51_1283975939.60403")
+.sub "_block591"  :anon :subid("52_1284728469.44803") :outer("51_1284728469.44803")
     .param pmc param_593
-.annotate 'line', 0
+.annotate 'line', 221
     .lex "$_", param_593
     find_lex $P594, "$str"
     find_lex $P595, "$_"
@@ -7247,15 +7477,16 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charspec"  :subid("53_1283975939.60403") :method :outer("11_1283975939.60403")
+.sub "charspec"  :subid("53_1284728469.44803") :method :outer("11_1284728469.44803")
     .param pmc param_608
-.annotate 'line', 0
+.annotate 'line', 225
     new $P607, 'ExceptionHandler'
     set_addr $P607, control_606
     $P607."handle_types"(.CONTROL_RETURN)
     push_eh $P607
     .lex "self", self
     .lex "$/", param_608
+.annotate 'line', 226
     find_lex $P609, "$/"
     find_lex $P612, "$/"
     unless_null $P612, vivify_138
@@ -7285,6 +7516,7 @@
     set $P610, $P616
   if_611_end:
     $P620 = $P609."!make"($P610)
+.annotate 'line', 225
     .return ($P620)
   control_606:
     .local pmc exception 
@@ -7295,18 +7527,18 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block623" :load :anon :subid("54_1283975939.60403")
-.annotate 'line', 0
-    .const 'Sub' $P625 = "11_1283975939.60403" 
+.sub "_block623" :load :anon :subid("54_1284728469.44803")
+.annotate 'line', 3
+    .const 'Sub' $P625 = "11_1284728469.44803" 
     $P626 = $P625()
     .return ($P626)
 .end
 
 
 .namespace []
-.sub "_block628" :load :anon :subid("55_1283975939.60403")
-.annotate 'line', 0
-    .const 'Sub' $P630 = "10_1283975939.60403" 
+.sub "_block628" :load :anon :subid("55_1284728469.44803")
+.annotate 'line', 1
+    .const 'Sub' $P630 = "10_1284728469.44803" 
     $P631 = $P630()
     .return ($P631)
 .end
@@ -7314,32 +7546,37 @@
 ### .include 'gen/hllcompiler.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1283975940.27824")
+.sub "_block11"  :anon :subid("10_1284728470.10282")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     capture_lex $P14
+.annotate 'line', 1
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
     $I0 = can $P0, "ctxsave"
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
+.annotate 'line', 6
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     capture_lex $P14
     $P497 = $P14()
+.annotate 'line', 1
     .return ($P497)
-    .const 'Sub' $P499 = "36_1283975940.27824" 
+    .const 'Sub' $P499 = "36_1284728470.10282" 
     .return ($P499)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post37") :outer("10_1283975940.27824")
+.sub "" :load :init :subid("post37") :outer("10_1284728470.10282")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1283975940.27824" 
+    .const 'Sub' $P12 = "10_1284728470.10282" 
     .local pmc block
     set block, $P12
+.annotate 'line', 2
     load_bytecode "PCT/HLLCompiler.pbc"
+.annotate 'line', 1
     $P502 = get_root_global ["parrot"], "P6metaclass"
     new $P503, "ResizablePMCArray"
     push $P503, "$!language"
@@ -7348,44 +7585,49 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block13"  :subid("11_1283975940.27824") :outer("10_1283975940.27824")
-.annotate 'line', 0
-    .const 'Sub' $P489 = "35_1283975940.27824" 
+.sub "_block13"  :subid("11_1284728470.10282") :outer("10_1284728470.10282")
+.annotate 'line', 6
+    .const 'Sub' $P489 = "35_1284728470.10282" 
     capture_lex $P489
-    .const 'Sub' $P447 = "33_1283975940.27824" 
+    .const 'Sub' $P447 = "33_1284728470.10282" 
     capture_lex $P447
-    .const 'Sub' $P298 = "26_1283975940.27824" 
+    .const 'Sub' $P298 = "26_1284728470.10282" 
     capture_lex $P298
-    .const 'Sub' $P283 = "25_1283975940.27824" 
+    .const 'Sub' $P283 = "25_1284728470.10282" 
     capture_lex $P283
-    .const 'Sub' $P188 = "20_1283975940.27824" 
+    .const 'Sub' $P188 = "20_1284728470.10282" 
     capture_lex $P188
-    .const 'Sub' $P153 = "18_1283975940.27824" 
+    .const 'Sub' $P153 = "18_1284728470.10282" 
     capture_lex $P153
-    .const 'Sub' $P138 = "17_1283975940.27824" 
+    .const 'Sub' $P138 = "17_1284728470.10282" 
     capture_lex $P138
-    .const 'Sub' $P122 = "16_1283975940.27824" 
+    .const 'Sub' $P122 = "16_1284728470.10282" 
     capture_lex $P122
-    .const 'Sub' $P33 = "13_1283975940.27824" 
+    .const 'Sub' $P33 = "13_1284728470.10282" 
     capture_lex $P33
-    .const 'Sub' $P15 = "12_1283975940.27824" 
+    .const 'Sub' $P15 = "12_1284728470.10282" 
     capture_lex $P15
-    .const 'Sub' $P15 = "12_1283975940.27824" 
+.annotate 'line', 14
+    .const 'Sub' $P15 = "12_1284728470.10282" 
     newclosure $P31, $P15
     .lex "value_type", $P31
+.annotate 'line', 10
     find_lex $P32, "value_type"
-    .const 'Sub' $P489 = "35_1283975940.27824" 
+.annotate 'line', 165
+    .const 'Sub' $P489 = "35_1284728470.10282" 
     newclosure $P495, $P489
+.annotate 'line', 6
     .return ($P495)
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post38") :outer("11_1283975940.27824")
-.annotate 'line', 0
+.sub "" :load :init :subid("post38") :outer("11_1284728470.10282")
+.annotate 'line', 6
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     .local pmc block
     set block, $P14
+.annotate 'line', 11
     get_hll_global $P496, ["HLL"], "Compiler"
     $P496."language"("parrot")
 .end
@@ -7393,17 +7635,19 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "value_type"  :subid("12_1283975940.27824") :outer("11_1283975940.27824")
+.sub "value_type"  :subid("12_1284728470.10282") :outer("11_1284728470.10282")
     .param pmc param_18
-.annotate 'line', 0
+.annotate 'line', 14
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
     $P17."handle_types"(.CONTROL_RETURN)
     push_eh $P17
     .lex "$value", param_18
+.annotate 'line', 15
     find_lex $P21, "$value"
     isa $I22, $P21, "NameSpace"
     if $I22, if_20
+.annotate 'line', 17
     find_lex $P26, "$value"
     isa $I27, $P26, "Sub"
     if $I27, if_25
@@ -7417,12 +7661,14 @@
     set $P24, $P28
   if_25_end:
     set $P19, $P24
+.annotate 'line', 15
     goto if_20_end
   if_20:
     new $P23, "String"
     assign $P23, "namespace"
     set $P19, $P23
   if_20_end:
+.annotate 'line', 14
     .return ($P19)
   control_16:
     .local pmc exception 
@@ -7434,15 +7680,15 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "get_exports"  :subid("13_1283975940.27824") :method :outer("11_1283975940.27824")
+.sub "get_exports"  :subid("13_1284728470.10282") :method :outer("11_1284728470.10282")
     .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', 0
-    .const 'Sub' $P105 = "15_1283975940.27824" 
+.annotate 'line', 20
+    .const 'Sub' $P105 = "15_1284728470.10282" 
     capture_lex $P105
-    .const 'Sub' $P84 = "14_1283975940.27824" 
+    .const 'Sub' $P84 = "14_1284728470.10282" 
     capture_lex $P84
     new $P35, 'ExceptionHandler'
     set_addr $P35, control_34
@@ -7456,21 +7702,26 @@
   optparam_39:
     .lex "$tagset", param_37
     .lex "@symbols", param_39
+.annotate 'line', 27
     $P40 = root_new ['parrot';'Hash']
     .lex "%exports", $P40
+.annotate 'line', 28
     $P41 = root_new ['parrot';'Hash']
     .lex "%source", $P41
+.annotate 'line', 22
     find_lex $P43, "$module"
     does $I44, $P43, "hash"
     new $P45, 'Integer'
     set $P45, $I44
     isfalse $I46, $P45
     unless $I46, if_42_end
+.annotate 'line', 23
     find_lex $P47, "self"
     find_lex $P48, "$module"
     $P49 = $P47."get_module"($P48)
     store_lex "$module", $P49
   if_42_end:
+.annotate 'line', 26
     find_lex $P51, "$tagset"
     set $P50, $P51
     defined $I53, $P50
@@ -7490,6 +7741,7 @@
   default_52:
     store_lex "$tagset", $P50
     find_lex $P59, "%exports"
+.annotate 'line', 28
     find_lex $P60, "$tagset"
     set $S61, $P60
     find_lex $P62, "$module"
@@ -7505,12 +7757,14 @@
     new $P64, "Undef"
   vivify_42:
     store_lex "%source", $P64
+.annotate 'line', 29
     find_lex $P66, "%source"
     defined $I67, $P66
     new $P68, 'Integer'
     set $P68, $I67
     isfalse $I69, $P68
     unless $I69, if_65_end
+.annotate 'line', 30
     find_lex $P72, "$tagset"
     set $S73, $P72
     iseq $I74, $S73, "ALL"
@@ -7524,8 +7778,10 @@
   if_71_end:
     store_lex "%source", $P70
   if_65_end:
+.annotate 'line', 32
     find_lex $P78, "@symbols"
     if $P78, if_77
+.annotate 'line', 39
     find_lex $P101, "%source"
     defined $I102, $P101
     unless $I102, for_undef_43
@@ -7538,7 +7794,7 @@
     unless $P100, loop117_done
     shift $P103, $P100
   loop117_redo:
-    .const 'Sub' $P105 = "15_1283975940.27824" 
+    .const 'Sub' $P105 = "15_1284728470.10282" 
     capture_lex $P105
     $P105($P103)
   loop117_next:
@@ -7552,8 +7808,10 @@
   loop117_done:
     pop_eh 
   for_undef_43:
+.annotate 'line', 38
     goto if_77_end
   if_77:
+.annotate 'line', 33
     find_lex $P80, "@symbols"
     defined $I81, $P80
     unless $I81, for_undef_46
@@ -7566,7 +7824,7 @@
     unless $P79, loop97_done
     shift $P82, $P79
   loop97_redo:
-    .const 'Sub' $P84 = "14_1283975940.27824" 
+    .const 'Sub' $P84 = "14_1284728470.10282" 
     capture_lex $P84
     $P84($P82)
   loop97_next:
@@ -7581,7 +7839,9 @@
     pop_eh 
   for_undef_46:
   if_77_end:
+.annotate 'line', 32
     find_lex $P120, "%exports"
+.annotate 'line', 20
     .return ($P120)
   control_34:
     .local pmc exception 
@@ -7592,15 +7852,16 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block104"  :anon :subid("15_1283975940.27824") :outer("13_1283975940.27824")
+.sub "_block104"  :anon :subid("15_1284728470.10282") :outer("13_1284728470.10282")
     .param pmc param_107
-.annotate 'line', 0
+.annotate 'line', 40
     new $P106, "Undef"
     .lex "$value", $P106
     .lex "$_", param_107
     find_lex $P108, "$_"
     $P109 = $P108."value"()
     store_lex "$value", $P109
+.annotate 'line', 41
     find_lex $P110, "$value"
     find_lex $P111, "$_"
     $P112 = $P111."key"()
@@ -7617,14 +7878,15 @@
     set $P115[$P114], $P116
   vivify_45:
     set $P116[$P112], $P110
+.annotate 'line', 39
     .return ($P110)
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block83"  :anon :subid("14_1283975940.27824") :outer("13_1283975940.27824")
+.sub "_block83"  :anon :subid("14_1284728470.10282") :outer("13_1284728470.10282")
     .param pmc param_86
-.annotate 'line', 0
+.annotate 'line', 34
     new $P85, "Undef"
     .lex "$value", $P85
     .lex "$_", param_86
@@ -7639,6 +7901,7 @@
     new $P90, "Undef"
   vivify_48:
     store_lex "$value", $P90
+.annotate 'line', 35
     find_lex $P91, "$value"
     find_lex $P92, "$_"
     find_lex $P93, "$value"
@@ -7654,27 +7917,30 @@
     set $P95[$P94], $P96
   vivify_50:
     set $P96[$P92], $P91
+.annotate 'line', 33
     .return ($P91)
 .end
 
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "get_module"  :subid("16_1283975940.27824") :method :outer("11_1283975940.27824")
+.sub "get_module"  :subid("16_1284728470.10282") :method :outer("11_1284728470.10282")
     .param pmc param_125
-.annotate 'line', 0
+.annotate 'line', 47
     new $P124, 'ExceptionHandler'
     set_addr $P124, control_123
     $P124."handle_types"(.CONTROL_RETURN)
     push_eh $P124
     .lex "self", self
     .lex "$name", param_125
+.annotate 'line', 48
     $P126 = root_new ['parrot';'ResizablePMCArray']
     .lex "@name", $P126
     find_lex $P127, "self"
     find_lex $P128, "$name"
     $P129 = $P127."parse_name"($P128)
     store_lex "@name", $P129
+.annotate 'line', 49
     find_lex $P130, "@name"
     find_lex $P131, "self"
     getattribute $P132, $P131, "$!language"
@@ -7684,8 +7950,10 @@
     set $S133, $P132
     downcase $S134, $S133
     $P130."unshift"($S134)
+.annotate 'line', 50
     find_lex $P135, "@name"
     get_root_namespace $P136, $P135
+.annotate 'line', 47
     .return ($P136)
   control_123:
     .local pmc exception 
@@ -7697,10 +7965,10 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "language"  :subid("17_1283975940.27824") :method :outer("11_1283975940.27824")
+.sub "language"  :subid("17_1284728470.10282") :method :outer("11_1284728470.10282")
     .param pmc param_141 :optional
     .param int has_param_141 :opt_flag
-.annotate 'line', 0
+.annotate 'line', 53
     new $P140, 'ExceptionHandler'
     set_addr $P140, control_139
     $P140."handle_types"(.CONTROL_RETURN)
@@ -7711,21 +7979,26 @@
     set param_141, $P142
   optparam_52:
     .lex "$name", param_141
+.annotate 'line', 54
     find_lex $P144, "$name"
     unless $P144, if_143_end
+.annotate 'line', 55
     find_lex $P145, "$name"
     find_lex $P146, "self"
     setattribute $P146, "$!language", $P145
+.annotate 'line', 56
     find_lex $P147, "$name"
     set $S148, $P147
     find_lex $P149, "self"
     compreg $S148, $P149
   if_143_end:
+.annotate 'line', 54
     find_lex $P150, "self"
     getattribute $P151, $P150, "$!language"
     unless_null $P151, vivify_53
     new $P151, "Undef"
   vivify_53:
+.annotate 'line', 53
     .return ($P151)
   control_139:
     .local pmc exception 
@@ -7737,10 +8010,10 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "load_module"  :subid("18_1283975940.27824") :method :outer("11_1283975940.27824")
+.sub "load_module"  :subid("18_1284728470.10282") :method :outer("11_1284728470.10282")
     .param pmc param_156
-.annotate 'line', 0
-    .const 'Sub' $P166 = "19_1283975940.27824" 
+.annotate 'line', 61
+    .const 'Sub' $P166 = "19_1284728470.10282" 
     capture_lex $P166
     new $P155, 'ExceptionHandler'
     set_addr $P155, control_154
@@ -7748,10 +8021,13 @@
     push_eh $P155
     .lex "self", self
     .lex "$name", param_156
+.annotate 'line', 62
     new $P157, "Undef"
     .lex "$base", $P157
+.annotate 'line', 63
     new $P158, "Undef"
     .lex "$loaded", $P158
+.annotate 'line', 62
     find_lex $P159, "self"
     find_lex $P160, "$name"
     $P161 = $P159."parse_name"($P160)
@@ -7759,12 +8035,15 @@
     new $P163, 'String'
     set $P163, $S162
     store_lex "$base", $P163
+.annotate 'line', 63
     new $P164, "Integer"
     assign $P164, 0
     store_lex "$loaded", $P164
-    .const 'Sub' $P166 = "19_1283975940.27824" 
+.annotate 'line', 64
+    .const 'Sub' $P166 = "19_1284728470.10282" 
     capture_lex $P166
     $P166()
+.annotate 'line', 65
     find_lex $P179, "$loaded"
     if $P179, unless_178_end
     find_lex $P180, "$base"
@@ -7775,9 +8054,11 @@
     assign $P183, 1
     store_lex "$loaded", $P183
   unless_178_end:
+.annotate 'line', 66
     find_lex $P184, "self"
     find_lex $P185, "$name"
     $P186 = $P184."get_module"($P185)
+.annotate 'line', 61
     .return ($P186)
   control_154:
     .local pmc exception 
@@ -7789,8 +8070,8 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block165"  :anon :subid("19_1283975940.27824") :outer("18_1283975940.27824")
-.annotate 'line', 0
+.sub "_block165"  :anon :subid("19_1284728470.10282") :outer("18_1284728470.10282")
+.annotate 'line', 64
     new $P173, 'ExceptionHandler'
     set_addr $P173, control_172
     $P173."handle_types_except"(.CONTROL_RETURN,  .CONTROL_OK,  .CONTROL_BREAK,  .CONTROL_CONTINUE,  .CONTROL_TAKE,  .CONTROL_LEAVE,  .CONTROL_EXIT,  .CONTROL_LOOP_NEXT,  .CONTROL_LOOP_LAST,  .CONTROL_LOOP_REDO)
@@ -7823,11 +8104,11 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "import"  :subid("20_1283975940.27824") :method :outer("11_1283975940.27824")
+.sub "import"  :subid("20_1284728470.10282") :method :outer("11_1284728470.10282")
     .param pmc param_191
     .param pmc param_192
-.annotate 'line', 0
-    .const 'Sub' $P198 = "21_1283975940.27824" 
+.annotate 'line', 69
+    .const 'Sub' $P198 = "21_1284728470.10282" 
     capture_lex $P198
     new $P190, 'ExceptionHandler'
     set_addr $P190, control_189
@@ -7836,6 +8117,7 @@
     .lex "self", self
     .lex "$target", param_191
     .lex "%exports", param_192
+.annotate 'line', 70
     find_lex $P194, "%exports"
     defined $I195, $P194
     unless $I195, for_undef_54
@@ -7848,7 +8130,7 @@
     unless $P193, loop279_done
     shift $P196, $P193
   loop279_redo:
-    .const 'Sub' $P198 = "21_1283975940.27824" 
+    .const 'Sub' $P198 = "21_1284728470.10282" 
     capture_lex $P198
     $P198($P196)
   loop279_next:
@@ -7862,6 +8144,7 @@
   loop279_done:
     pop_eh 
   for_undef_54:
+.annotate 'line', 69
     .return ($P193)
   control_189:
     .local pmc exception 
@@ -7873,26 +8156,31 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block197"  :anon :subid("21_1283975940.27824") :outer("20_1283975940.27824")
+.sub "_block197"  :anon :subid("21_1284728470.10282") :outer("20_1284728470.10282")
     .param pmc param_201
-.annotate 'line', 0
-    .const 'Sub' $P268 = "24_1283975940.27824" 
+.annotate 'line', 70
+    .const 'Sub' $P268 = "24_1284728470.10282" 
     capture_lex $P268
-    .const 'Sub' $P248 = "23_1283975940.27824" 
+    .const 'Sub' $P248 = "23_1284728470.10282" 
     capture_lex $P248
-    .const 'Sub' $P219 = "22_1283975940.27824" 
+    .const 'Sub' $P219 = "22_1284728470.10282" 
     capture_lex $P219
+.annotate 'line', 71
     new $P199, "Undef"
     .lex "$type", $P199
+.annotate 'line', 72
     $P200 = root_new ['parrot';'Hash']
     .lex "%items", $P200
     .lex "$_", param_201
+.annotate 'line', 71
     find_lex $P202, "$_"
     $P203 = $P202."key"()
     store_lex "$type", $P203
+.annotate 'line', 72
     find_lex $P204, "$_"
     $P205 = $P204."value"()
     store_lex "%items", $P205
+.annotate 'line', 73
     find_lex $P208, "self"
     new $P209, 'String'
     set $P209, "import_"
@@ -7901,6 +8189,7 @@
     set $S212, $P211
     can $I213, $P208, $S212
     if $I213, if_207
+.annotate 'line', 76
     find_lex $P237, "$target"
     new $P238, 'String'
     set $P238, "add_"
@@ -7909,6 +8198,7 @@
     set $S241, $P240
     can $I242, $P237, $S241
     if $I242, if_236
+.annotate 'line', 80
     find_lex $P264, "%items"
     defined $I265, $P264
     unless $I265, for_undef_55
@@ -7921,7 +8211,7 @@
     unless $P263, loop276_done
     shift $P266, $P263
   loop276_redo:
-    .const 'Sub' $P268 = "24_1283975940.27824" 
+    .const 'Sub' $P268 = "24_1284728470.10282" 
     capture_lex $P268
     $P268($P266)
   loop276_next:
@@ -7935,9 +8225,12 @@
   loop276_done:
     pop_eh 
   for_undef_55:
+.annotate 'line', 79
     set $P235, $P263
+.annotate 'line', 76
     goto if_236_end
   if_236:
+.annotate 'line', 77
     find_lex $P244, "%items"
     defined $I245, $P244
     unless $I245, for_undef_57
@@ -7950,7 +8243,7 @@
     unless $P243, loop260_done
     shift $P246, $P243
   loop260_redo:
-    .const 'Sub' $P248 = "23_1283975940.27824" 
+    .const 'Sub' $P248 = "23_1284728470.10282" 
     capture_lex $P248
     $P248($P246)
   loop260_next:
@@ -7964,11 +8257,14 @@
   loop260_done:
     pop_eh 
   for_undef_57:
+.annotate 'line', 76
     set $P235, $P243
   if_236_end:
     set $P206, $P235
+.annotate 'line', 73
     goto if_207_end
   if_207:
+.annotate 'line', 74
     find_lex $P215, "%items"
     defined $I216, $P215
     unless $I216, for_undef_58
@@ -7981,7 +8277,7 @@
     unless $P214, loop232_done
     shift $P217, $P214
   loop232_redo:
-    .const 'Sub' $P219 = "22_1283975940.27824" 
+    .const 'Sub' $P219 = "22_1284728470.10282" 
     capture_lex $P219
     $P219($P217)
   loop232_next:
@@ -7995,16 +8291,18 @@
   loop232_done:
     pop_eh 
   for_undef_58:
+.annotate 'line', 73
     set $P206, $P214
   if_207_end:
+.annotate 'line', 70
     .return ($P206)
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block267"  :anon :subid("24_1283975940.27824") :outer("21_1283975940.27824")
+.sub "_block267"  :anon :subid("24_1284728470.10282") :outer("21_1284728470.10282")
     .param pmc param_269
-.annotate 'line', 0
+.annotate 'line', 80
     .lex "$_", param_269
     find_lex $P270, "$_"
     $P271 = $P270."value"()
@@ -8022,9 +8320,9 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block247"  :anon :subid("23_1283975940.27824") :outer("21_1283975940.27824")
+.sub "_block247"  :anon :subid("23_1284728470.10282") :outer("21_1284728470.10282")
     .param pmc param_249
-.annotate 'line', 0
+.annotate 'line', 77
     .lex "$_", param_249
     find_lex $P250, "$target"
     find_lex $P251, "$_"
@@ -8042,9 +8340,9 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block218"  :anon :subid("22_1283975940.27824") :outer("21_1283975940.27824")
+.sub "_block218"  :anon :subid("22_1284728470.10282") :outer("21_1284728470.10282")
     .param pmc param_220
-.annotate 'line', 0
+.annotate 'line', 74
     .lex "$_", param_220
     find_lex $P221, "self"
     find_lex $P222, "$target"
@@ -8064,15 +8362,16 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "autoprint"  :subid("25_1283975940.27824") :method :outer("11_1283975940.27824")
+.sub "autoprint"  :subid("25_1284728470.10282") :method :outer("11_1284728470.10282")
     .param pmc param_286
-.annotate 'line', 0
+.annotate 'line', 85
     new $P285, 'ExceptionHandler'
     set_addr $P285, control_284
     $P285."handle_types"(.CONTROL_RETURN)
     push_eh $P285
     .lex "self", self
     .lex "$value", param_286
+.annotate 'line', 87
     getinterp $P289
     $P290 = $P289."stdhandle"(1)
     $N291 = $P290."tell"()
@@ -8090,10 +8389,12 @@
     set $P287, $I294
     goto unless_288_end
   unless_288:
+.annotate 'line', 86
     find_lex $P295, "$value"
     set $S296, $P295
     say $S296
   unless_288_end:
+.annotate 'line', 85
     .return ($P287)
   control_284:
     .local pmc exception 
@@ -8105,10 +8406,10 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "interactive"  :subid("26_1283975940.27824") :method :outer("11_1283975940.27824")
+.sub "interactive"  :subid("26_1284728470.10282") :method :outer("11_1284728470.10282")
     .param pmc param_301 :slurpy :named
-.annotate 'line', 0
-    .const 'Sub' $P333 = "27_1283975940.27824" 
+.annotate 'line', 90
+    .const 'Sub' $P333 = "27_1284728470.10282" 
     capture_lex $P333
     new $P300, 'ExceptionHandler'
     set_addr $P300, control_299
@@ -8116,14 +8417,19 @@
     push_eh $P300
     .lex "self", self
     .lex "%adverbs", param_301
+.annotate 'line', 91
     new $P302, "Undef"
     .lex "$target", $P302
+.annotate 'line', 95
     new $P303, "Undef"
     .lex "$stdin", $P303
+.annotate 'line', 96
     new $P304, "Undef"
     .lex "$encoding", $P304
+.annotate 'line', 101
     new $P305, "Undef"
     .lex "$save_ctx", $P305
+.annotate 'line', 91
     find_lex $P306, "%adverbs"
     unless_null $P306, vivify_61
     $P306 = root_new ['parrot';'Hash']
@@ -8137,14 +8443,17 @@
     new $P310, 'String'
     set $P310, $S309
     store_lex "$target", $P310
+.annotate 'line', 93
     getinterp $P311
     $P312 = $P311."stdhandle"(2)
     find_lex $P313, "self"
     $S314 = $P313."commandline_banner"()
     print $P312, $S314
+.annotate 'line', 95
     getinterp $P315
     $P316 = $P315."stdhandle"(0)
     store_lex "$stdin", $P316
+.annotate 'line', 96
     find_lex $P317, "%adverbs"
     unless_null $P317, vivify_63
     $P317 = root_new ['parrot';'Hash']
@@ -8157,6 +8466,7 @@
     new $P320, 'String'
     set $P320, $S319
     store_lex "$encoding", $P320
+.annotate 'line', 97
     find_lex $P324, "$encoding"
     if $P324, if_323
     set $P322, $P324
@@ -8169,11 +8479,14 @@
     set $P322, $I327
   if_323_end:
     unless $P322, if_321_end
+.annotate 'line', 98
     find_lex $P328, "$stdin"
     find_lex $P329, "$encoding"
     $P328."encoding"($P329)
   if_321_end:
+.annotate 'line', 97
     find_lex $P330, "$save_ctx"
+.annotate 'line', 102
     new $P444, 'ExceptionHandler'
     set_addr $P444, loop443_handler
     $P444."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
@@ -8183,7 +8496,7 @@
     assign $P331, 1
     unless $P331, loop443_done
   loop443_redo:
-    .const 'Sub' $P333 = "27_1283975940.27824" 
+    .const 'Sub' $P333 = "27_1284728470.10282" 
     capture_lex $P333
     $P333()
   loop443_next:
@@ -8196,6 +8509,7 @@
     eq $P445, .CONTROL_LOOP_REDO, loop443_redo
   loop443_done:
     pop_eh 
+.annotate 'line', 90
     .return ($P331)
   control_299:
     .local pmc exception 
@@ -8207,25 +8521,32 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block332"  :anon :subid("27_1283975940.27824") :outer("26_1283975940.27824")
-.annotate 'line', 0
-    .const 'Sub' $P365 = "28_1283975940.27824" 
+.sub "_block332"  :anon :subid("27_1284728470.10282") :outer("26_1284728470.10282")
+.annotate 'line', 102
+    .const 'Sub' $P365 = "28_1284728470.10282" 
     capture_lex $P365
+.annotate 'line', 105
     new $P334, "Undef"
     .lex "$prompt", $P334
+.annotate 'line', 106
     new $P335, "Undef"
     .lex "$code", $P335
+.annotate 'line', 111
     new $P336, "Undef"
     .lex "$*AUTOPRINTPOS", $P336
+.annotate 'line', 112
     new $P337, "Undef"
     .lex "$*CTXSAVE", $P337
+.annotate 'line', 113
     new $P338, "Undef"
     .lex "$*MAIN_CTX", $P338
+.annotate 'line', 103
     find_lex $P340, "$stdin"
     if $P340, unless_339_end
     set $I341, .CONTROL_LOOP_LAST
     die 0, $I341
   unless_339_end:
+.annotate 'line', 105
     find_lex $P343, "self"
     $P344 = $P343."commandline_prompt"()
     set $P342, $P344
@@ -8236,21 +8557,25 @@
     set $P342, $P347
   default_345:
     store_lex "$prompt", $P342
+.annotate 'line', 106
     find_lex $P348, "$stdin"
     find_lex $P349, "$prompt"
     set $S350, $P349
     $P351 = $P348."readline_interactive"($S350)
     store_lex "$code", $P351
+.annotate 'line', 108
     find_lex $P353, "$code"
     isnull $I354, $P353
     unless $I354, if_352_end
     set $I355, .CONTROL_LOOP_LAST
     die 0, $I355
   if_352_end:
+.annotate 'line', 111
     getinterp $P356
     $P357 = $P356."stdhandle"(1)
     $P358 = $P357."tell"()
     store_lex "$*AUTOPRINTPOS", $P358
+.annotate 'line', 112
     find_lex $P359, "self"
     store_lex "$*CTXSAVE", $P359
     find_lex $P360, "$*MAIN_CTX"
@@ -8260,37 +8585,43 @@
     die "Contextual $*MAIN_CTX not found"
   vivify_66:
   vivify_65:
+.annotate 'line', 115
     find_lex $P363, "$code"
     if $P363, if_362
     set $P361, $P363
     goto if_362_end
   if_362:
-    .const 'Sub' $P365 = "28_1283975940.27824" 
+    .const 'Sub' $P365 = "28_1284728470.10282" 
     capture_lex $P365
     $P442 = $P365()
     set $P361, $P442
   if_362_end:
+.annotate 'line', 102
     .return ($P361)
 .end
 
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block364"  :anon :subid("28_1283975940.27824") :outer("27_1283975940.27824")
-.annotate 'line', 0
-    .const 'Sub' $P398 = "31_1283975940.27824" 
+.sub "_block364"  :anon :subid("28_1284728470.10282") :outer("27_1284728470.10282")
+.annotate 'line', 115
+    .const 'Sub' $P398 = "31_1284728470.10282" 
     capture_lex $P398
-    .const 'Sub' $P371 = "29_1283975940.27824" 
+    .const 'Sub' $P371 = "29_1284728470.10282" 
     capture_lex $P371
+.annotate 'line', 117
     new $P366, "Undef"
     .lex "$output", $P366
+.annotate 'line', 116
     find_lex $P367, "$code"
     concat $P368, $P367, "\n"
     store_lex "$code", $P368
     find_lex $P369, "$output"
-    .const 'Sub' $P371 = "29_1283975940.27824" 
+.annotate 'line', 118
+    .const 'Sub' $P371 = "29_1284728470.10282" 
     capture_lex $P371
     $P371()
+.annotate 'line', 125
     find_dynamic_lex $P395, "$*MAIN_CTX"
     unless_null $P395, vivify_67
     get_hll_global $P395, "$MAIN_CTX"
@@ -8300,68 +8631,83 @@
   vivify_67:
     defined $I396, $P395
     unless $I396, if_394_end
-    .const 'Sub' $P398 = "31_1283975940.27824" 
+    .const 'Sub' $P398 = "31_1284728470.10282" 
     capture_lex $P398
     $P398()
   if_394_end:
+.annotate 'line', 133
     find_lex $P421, "$output"
     isnull $I422, $P421
     unless $I422, if_420_end
     set $I423, .CONTROL_LOOP_NEXT
     die 0, $I423
   if_420_end:
+.annotate 'line', 135
     find_lex $P426, "$target"
     isfalse $I427, $P426
     if $I427, if_425
+.annotate 'line', 137
     find_lex $P433, "$target"
     set $S434, $P433
     iseq $I435, $S434, "pir"
     if $I435, if_432
+.annotate 'line', 140
     find_lex $P437, "self"
     find_lex $P438, "$output"
     find_lex $P439, "$target"
     find_lex $P440, "%adverbs"
     $P441 = $P437."dumper"($P438, $P439, $P440 :flat)
+.annotate 'line', 139
     set $P431, $P441
+.annotate 'line', 137
     goto if_432_end
   if_432:
+.annotate 'line', 138
     find_lex $P436, "$output"
     say $P436
   if_432_end:
+.annotate 'line', 137
     set $P424, $P431
+.annotate 'line', 135
     goto if_425_end
   if_425:
+.annotate 'line', 136
     find_lex $P428, "self"
     find_lex $P429, "$output"
     $P430 = $P428."autoprint"($P429)
+.annotate 'line', 135
     set $P424, $P430
   if_425_end:
+.annotate 'line', 115
     .return ($P424)
 .end
 
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block370"  :anon :subid("29_1283975940.27824") :outer("28_1283975940.27824")
-.annotate 'line', 0
-    .const 'Sub' $P383 = "30_1283975940.27824" 
+.sub "_block370"  :anon :subid("29_1284728470.10282") :outer("28_1284728470.10282")
+.annotate 'line', 118
+    .const 'Sub' $P383 = "30_1284728470.10282" 
     capture_lex $P383
     new $P379, 'ExceptionHandler'
     set_addr $P379, control_378
     $P379."handle_types_except"(.CONTROL_RETURN,  .CONTROL_OK,  .CONTROL_BREAK,  .CONTROL_CONTINUE,  .CONTROL_TAKE,  .CONTROL_LEAVE,  .CONTROL_EXIT,  .CONTROL_LOOP_NEXT,  .CONTROL_LOOP_LAST,  .CONTROL_LOOP_REDO)
     push_eh $P379
+.annotate 'line', 119
     find_lex $P372, "self"
     find_lex $P373, "$code"
     find_lex $P374, "$save_ctx"
     find_lex $P375, "%adverbs"
     $P376 = $P372."eval"($P373, $P375 :flat, $P374 :named("outer_ctx"))
     store_lex "$output", $P376
+.annotate 'line', 118
     pop_eh 
     goto skip_handler_377
   control_378:
+.annotate 'line', 120
     .local pmc exception 
     .get_results (exception) 
-    .const 'Sub' $P383 = "30_1283975940.27824" 
+    .const 'Sub' $P383 = "30_1284728470.10282" 
     newclosure $P391, $P383
     $P391(exception)
     new $P392, 'Integer'
@@ -8374,48 +8720,56 @@
   nothandled_381:
     rethrow exception
   skip_handler_377:
+.annotate 'line', 118
     .return ()
 .end
 
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block382"  :anon :subid("30_1283975940.27824") :outer("29_1283975940.27824")
+.sub "_block382"  :anon :subid("30_1284728470.10282") :outer("29_1284728470.10282")
     .param pmc param_384
-.annotate 'line', 0
+.annotate 'line', 120
     .lex "$_", param_384
     find_lex $P385, "$_"
     .lex "$!", $P385
+.annotate 'line', 121
     find_lex $P386, "$!"
     set $S387, $P386
     new $P388, 'String'
     set $P388, $S387
     concat $P389, $P388, "\n"
     print $P389
+.annotate 'line', 122
     set $I390, .CONTROL_LOOP_NEXT
     die 0, $I390
+.annotate 'line', 120
     .return ()
 .end
 
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block397"  :anon :subid("31_1283975940.27824") :outer("28_1283975940.27824")
-.annotate 'line', 0
-    .const 'Sub' $P409 = "32_1283975940.27824" 
+.sub "_block397"  :anon :subid("31_1284728470.10282") :outer("28_1284728470.10282")
+.annotate 'line', 125
+    .const 'Sub' $P409 = "32_1284728470.10282" 
     capture_lex $P409
+.annotate 'line', 126
     get_global $P399, "$interactive_ctx"
     unless_null $P399, vivify_69
     new $P399, "Undef"
     set_global "$interactive_ctx", $P399
   vivify_69:
+.annotate 'line', 127
     get_global $P400, "%interactive_pad"
     unless_null $P400, vivify_70
     $P400 = root_new ['parrot';'Hash']
     set_global "%interactive_pad", $P400
   vivify_70:
+.annotate 'line', 125
     get_global $P401, "$interactive_ctx"
     get_global $P402, "%interactive_pad"
+.annotate 'line', 128
     find_dynamic_lex $P404, "$*MAIN_CTX"
     unless_null $P404, vivify_71
     get_hll_global $P404, "$MAIN_CTX"
@@ -8435,7 +8789,7 @@
     unless $P403, loop416_done
     shift $P407, $P403
   loop416_redo:
-    .const 'Sub' $P409 = "32_1283975940.27824" 
+    .const 'Sub' $P409 = "32_1284728470.10282" 
     capture_lex $P409
     $P409($P407)
   loop416_next:
@@ -8449,17 +8803,20 @@
   loop416_done:
     pop_eh 
   for_undef_73:
+.annotate 'line', 131
     get_global $P419, "$interactive_ctx"
     store_lex "$save_ctx", $P419
+.annotate 'line', 125
     .return ($P419)
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block408"  :anon :subid("32_1283975940.27824") :outer("31_1283975940.27824")
+.sub "_block408"  :anon :subid("32_1284728470.10282") :outer("31_1284728470.10282")
     .param pmc param_410
-.annotate 'line', 0
+.annotate 'line', 128
     .lex "$_", param_410
+.annotate 'line', 129
     find_lex $P411, "$_"
     $P412 = $P411."value"()
     find_lex $P413, "$_"
@@ -8470,18 +8827,19 @@
     set_global "%interactive_pad", $P415
   vivify_74:
     set $P415[$P414], $P412
+.annotate 'line', 128
     .return ($P412)
 .end
 
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "eval"  :subid("33_1283975940.27824") :method :outer("11_1283975940.27824")
+.sub "eval"  :subid("33_1284728470.10282") :method :outer("11_1284728470.10282")
     .param pmc param_450
     .param pmc param_451 :slurpy
     .param pmc param_452 :slurpy :named
-.annotate 'line', 0
-    .const 'Sub' $P471 = "34_1283975940.27824" 
+.annotate 'line', 146
+    .const 'Sub' $P471 = "34_1284728470.10282" 
     capture_lex $P471
     new $P449, 'ExceptionHandler'
     set_addr $P449, control_448
@@ -8491,14 +8849,18 @@
     .lex "$code", param_450
     .lex "@args", param_451
     .lex "%adverbs", param_452
+.annotate 'line', 147
     new $P453, "Undef"
     .lex "$output", $P453
+.annotate 'line', 146
     find_lex $P454, "$output"
+.annotate 'line', 148
     find_lex $P455, "self"
     find_lex $P456, "$code"
     find_lex $P457, "%adverbs"
     $P458 = $P455."compile"($P456, $P457 :flat)
     store_lex "$output", $P458
+.annotate 'line', 150
     find_lex $P462, "$output"
     isa $I463, $P462, "String"
     new $P464, 'Integer'
@@ -8509,6 +8871,7 @@
     set $P460, $I465
     goto if_461_end
   if_461:
+.annotate 'line', 151
     find_lex $P466, "%adverbs"
     unless_null $P466, vivify_75
     $P466 = root_new ['parrot';'Hash']
@@ -8523,11 +8886,13 @@
     set $P460, $I469
   if_461_end:
     unless $P460, if_459_end
-    .const 'Sub' $P471 = "34_1283975940.27824" 
+    .const 'Sub' $P471 = "34_1284728470.10282" 
     capture_lex $P471
     $P471()
   if_459_end:
+.annotate 'line', 150
     find_lex $P487, "$output"
+.annotate 'line', 146
     .return ($P487)
   control_448:
     .local pmc exception 
@@ -8538,8 +8903,8 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block470"  :anon :subid("34_1283975940.27824") :outer("33_1283975940.27824")
-.annotate 'line', 0
+.sub "_block470"  :anon :subid("34_1284728470.10282") :outer("33_1284728470.10282")
+.annotate 'line', 152
     new $P472, "Undef"
     .lex "$outer_ctx", $P472
     find_lex $P473, "%adverbs"
@@ -8551,9 +8916,11 @@
     new $P474, "Undef"
   vivify_78:
     store_lex "$outer_ctx", $P474
+.annotate 'line', 153
     find_lex $P476, "$outer_ctx"
     defined $I477, $P476
     unless $I477, if_475_end
+.annotate 'line', 154
     find_lex $P478, "$output"
     unless_null $P478, vivify_79
     $P478 = root_new ['parrot';'ResizablePMCArray']
@@ -8565,6 +8932,7 @@
     find_lex $P480, "$outer_ctx"
     $P479."set_outer_ctx"($P480)
   if_475_end:
+.annotate 'line', 157
     find_lex $P481, "%adverbs"
     unless_null $P481, vivify_81
     $P481 = root_new ['parrot';'Hash']
@@ -8575,32 +8943,38 @@
   vivify_82:
     set $I483, $P482
     trace $I483
+.annotate 'line', 158
     find_lex $P484, "$output"
     find_lex $P485, "@args"
     $P486 = $P484($P485 :flat)
     store_lex "$output", $P486
+.annotate 'line', 159
     trace 0
+.annotate 'line', 151
     .return ()
 .end
 
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "ctxsave"  :subid("35_1283975940.27824") :method :outer("11_1283975940.27824")
-.annotate 'line', 0
+.sub "ctxsave"  :subid("35_1284728470.10282") :method :outer("11_1284728470.10282")
+.annotate 'line', 165
     new $P491, 'ExceptionHandler'
     set_addr $P491, control_490
     $P491."handle_types"(.CONTROL_RETURN)
     push_eh $P491
     .lex "self", self
+.annotate 'line', 167
 
                 $P0 = getinterp
                 $P492 = $P0['context';1]
             
     store_dynamic_lex "$*MAIN_CTX", $P492
+.annotate 'line', 171
     new $P493, "Integer"
     assign $P493, 0
     store_dynamic_lex "$*CTXSAVE", $P493
+.annotate 'line', 165
     .return ($P493)
   control_490:
     .local pmc exception 
@@ -8611,9 +8985,9 @@
 
 
 .namespace []
-.sub "_block498" :load :anon :subid("36_1283975940.27824")
-.annotate 'line', 0
-    .const 'Sub' $P500 = "10_1283975940.27824" 
+.sub "_block498" :load :anon :subid("36_1284728470.10282")
+.annotate 'line', 1
+    .const 'Sub' $P500 = "10_1284728470.10282" 
     $P501 = $P500()
     .return ($P501)
 .end

Modified: branches/gc_massacre/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/gc_massacre/ext/nqp-rx/src/stage0/NQP-s0.pir	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/ext/nqp-rx/src/stage0/NQP-s0.pir	Wed Sep 22 10:45:52 2010	(r49243)
@@ -15,352 +15,359 @@
 ### .include 'gen/nqp-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1283975947.19641")
+.sub "_block11"  :anon :subid("10_1284728478.15265")
 .annotate 'line', 0
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
+.annotate 'line', 1
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
     $I0 = can $P0, "ctxsave"
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
+.annotate 'line', 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
-    $P1423 = $P14()
-    .return ($P1423)
-    .const 'Sub' $P1425 = "371_1283975947.19641" 
-    .return ($P1425)
+    $P1452 = $P14()
+.annotate 'line', 1
+    .return ($P1452)
+    .const 'Sub' $P1454 = "377_1284728478.15265" 
+    .return ($P1454)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post372") :outer("10_1283975947.19641")
+.sub "" :load :init :subid("post378") :outer("10_1284728478.15265")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1283975947.19641" 
+    .const 'Sub' $P12 = "10_1284728478.15265" 
     .local pmc block
     set block, $P12
-    $P1428 = get_root_global ["parrot"], "P6metaclass"
-    $P1428."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
+    $P1457 = get_root_global ["parrot"], "P6metaclass"
+    $P1457."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block13"  :subid("11_1283975947.19641") :outer("10_1283975947.19641")
-.annotate 'line', 0
-    get_hll_global $P1340, ["NQP";"Regex"], "_block1339" 
-    capture_lex $P1340
-    .const 'Sub' $P1326 = "348_1283975947.19641" 
-    capture_lex $P1326
-    .const 'Sub' $P1320 = "346_1283975947.19641" 
-    capture_lex $P1320
-    .const 'Sub' $P1314 = "344_1283975947.19641" 
-    capture_lex $P1314
-    .const 'Sub' $P1308 = "342_1283975947.19641" 
-    capture_lex $P1308
-    .const 'Sub' $P1302 = "340_1283975947.19641" 
-    capture_lex $P1302
-    .const 'Sub' $P1296 = "338_1283975947.19641" 
-    capture_lex $P1296
-    .const 'Sub' $P1289 = "336_1283975947.19641" 
-    capture_lex $P1289
-    .const 'Sub' $P1282 = "334_1283975947.19641" 
-    capture_lex $P1282
-    .const 'Sub' $P1275 = "332_1283975947.19641" 
-    capture_lex $P1275
-    .const 'Sub' $P1268 = "330_1283975947.19641" 
-    capture_lex $P1268
-    .const 'Sub' $P1262 = "328_1283975947.19641" 
-    capture_lex $P1262
-    .const 'Sub' $P1255 = "326_1283975947.19641" 
-    capture_lex $P1255
-    .const 'Sub' $P1248 = "324_1283975947.19641" 
-    capture_lex $P1248
-    .const 'Sub' $P1241 = "322_1283975947.19641" 
-    capture_lex $P1241
-    .const 'Sub' $P1234 = "320_1283975947.19641" 
-    capture_lex $P1234
-    .const 'Sub' $P1227 = "318_1283975947.19641" 
-    capture_lex $P1227
-    .const 'Sub' $P1220 = "316_1283975947.19641" 
-    capture_lex $P1220
-    .const 'Sub' $P1213 = "314_1283975947.19641" 
-    capture_lex $P1213
-    .const 'Sub' $P1206 = "312_1283975947.19641" 
-    capture_lex $P1206
-    .const 'Sub' $P1199 = "310_1283975947.19641" 
-    capture_lex $P1199
-    .const 'Sub' $P1192 = "308_1283975947.19641" 
-    capture_lex $P1192
-    .const 'Sub' $P1185 = "306_1283975947.19641" 
-    capture_lex $P1185
-    .const 'Sub' $P1178 = "304_1283975947.19641" 
-    capture_lex $P1178
-    .const 'Sub' $P1171 = "302_1283975947.19641" 
-    capture_lex $P1171
-    .const 'Sub' $P1164 = "300_1283975947.19641" 
-    capture_lex $P1164
-    .const 'Sub' $P1157 = "298_1283975947.19641" 
-    capture_lex $P1157
-    .const 'Sub' $P1150 = "296_1283975947.19641" 
-    capture_lex $P1150
-    .const 'Sub' $P1143 = "294_1283975947.19641" 
-    capture_lex $P1143
-    .const 'Sub' $P1136 = "292_1283975947.19641" 
-    capture_lex $P1136
-    .const 'Sub' $P1129 = "290_1283975947.19641" 
-    capture_lex $P1129
-    .const 'Sub' $P1122 = "288_1283975947.19641" 
-    capture_lex $P1122
-    .const 'Sub' $P1115 = "286_1283975947.19641" 
-    capture_lex $P1115
-    .const 'Sub' $P1108 = "284_1283975947.19641" 
-    capture_lex $P1108
-    .const 'Sub' $P1101 = "282_1283975947.19641" 
-    capture_lex $P1101
-    .const 'Sub' $P1094 = "280_1283975947.19641" 
-    capture_lex $P1094
-    .const 'Sub' $P1087 = "278_1283975947.19641" 
-    capture_lex $P1087
-    .const 'Sub' $P1080 = "276_1283975947.19641" 
-    capture_lex $P1080
-    .const 'Sub' $P1073 = "274_1283975947.19641" 
-    capture_lex $P1073
-    .const 'Sub' $P1066 = "272_1283975947.19641" 
-    capture_lex $P1066
-    .const 'Sub' $P1059 = "270_1283975947.19641" 
-    capture_lex $P1059
-    .const 'Sub' $P1053 = "268_1283975947.19641" 
-    capture_lex $P1053
-    .const 'Sub' $P1046 = "266_1283975947.19641" 
-    capture_lex $P1046
-    .const 'Sub' $P1039 = "264_1283975947.19641" 
-    capture_lex $P1039
-    .const 'Sub' $P1032 = "262_1283975947.19641" 
-    capture_lex $P1032
-    .const 'Sub' $P1025 = "260_1283975947.19641" 
-    capture_lex $P1025
-    .const 'Sub' $P1018 = "258_1283975947.19641" 
-    capture_lex $P1018
-    .const 'Sub' $P1011 = "256_1283975947.19641" 
-    capture_lex $P1011
-    .const 'Sub' $P1004 = "254_1283975947.19641" 
+.sub "_block13"  :subid("11_1284728478.15265") :outer("10_1284728478.15265")
+.annotate 'line', 4
+    get_hll_global $P1369, ["NQP";"Regex"], "_block1368" 
+    capture_lex $P1369
+    .const 'Sub' $P1355 = "354_1284728478.15265" 
+    capture_lex $P1355
+    .const 'Sub' $P1349 = "352_1284728478.15265" 
+    capture_lex $P1349
+    .const 'Sub' $P1343 = "350_1284728478.15265" 
+    capture_lex $P1343
+    .const 'Sub' $P1337 = "348_1284728478.15265" 
+    capture_lex $P1337
+    .const 'Sub' $P1331 = "346_1284728478.15265" 
+    capture_lex $P1331
+    .const 'Sub' $P1325 = "344_1284728478.15265" 
+    capture_lex $P1325
+    .const 'Sub' $P1318 = "342_1284728478.15265" 
+    capture_lex $P1318
+    .const 'Sub' $P1311 = "340_1284728478.15265" 
+    capture_lex $P1311
+    .const 'Sub' $P1304 = "338_1284728478.15265" 
+    capture_lex $P1304
+    .const 'Sub' $P1297 = "336_1284728478.15265" 
+    capture_lex $P1297
+    .const 'Sub' $P1291 = "334_1284728478.15265" 
+    capture_lex $P1291
+    .const 'Sub' $P1284 = "332_1284728478.15265" 
+    capture_lex $P1284
+    .const 'Sub' $P1277 = "330_1284728478.15265" 
+    capture_lex $P1277
+    .const 'Sub' $P1270 = "328_1284728478.15265" 
+    capture_lex $P1270
+    .const 'Sub' $P1263 = "326_1284728478.15265" 
+    capture_lex $P1263
+    .const 'Sub' $P1256 = "324_1284728478.15265" 
+    capture_lex $P1256
+    .const 'Sub' $P1249 = "322_1284728478.15265" 
+    capture_lex $P1249
+    .const 'Sub' $P1242 = "320_1284728478.15265" 
+    capture_lex $P1242
+    .const 'Sub' $P1235 = "318_1284728478.15265" 
+    capture_lex $P1235
+    .const 'Sub' $P1228 = "316_1284728478.15265" 
+    capture_lex $P1228
+    .const 'Sub' $P1221 = "314_1284728478.15265" 
+    capture_lex $P1221
+    .const 'Sub' $P1214 = "312_1284728478.15265" 
+    capture_lex $P1214
+    .const 'Sub' $P1207 = "310_1284728478.15265" 
+    capture_lex $P1207
+    .const 'Sub' $P1200 = "308_1284728478.15265" 
+    capture_lex $P1200
+    .const 'Sub' $P1193 = "306_1284728478.15265" 
+    capture_lex $P1193
+    .const 'Sub' $P1186 = "304_1284728478.15265" 
+    capture_lex $P1186
+    .const 'Sub' $P1179 = "302_1284728478.15265" 
+    capture_lex $P1179
+    .const 'Sub' $P1172 = "300_1284728478.15265" 
+    capture_lex $P1172
+    .const 'Sub' $P1165 = "298_1284728478.15265" 
+    capture_lex $P1165
+    .const 'Sub' $P1158 = "296_1284728478.15265" 
+    capture_lex $P1158
+    .const 'Sub' $P1151 = "294_1284728478.15265" 
+    capture_lex $P1151
+    .const 'Sub' $P1144 = "292_1284728478.15265" 
+    capture_lex $P1144
+    .const 'Sub' $P1137 = "290_1284728478.15265" 
+    capture_lex $P1137
+    .const 'Sub' $P1130 = "288_1284728478.15265" 
+    capture_lex $P1130
+    .const 'Sub' $P1123 = "286_1284728478.15265" 
+    capture_lex $P1123
+    .const 'Sub' $P1116 = "284_1284728478.15265" 
+    capture_lex $P1116
+    .const 'Sub' $P1109 = "282_1284728478.15265" 
+    capture_lex $P1109
+    .const 'Sub' $P1102 = "280_1284728478.15265" 
+    capture_lex $P1102
+    .const 'Sub' $P1095 = "278_1284728478.15265" 
+    capture_lex $P1095
+    .const 'Sub' $P1088 = "276_1284728478.15265" 
+    capture_lex $P1088
+    .const 'Sub' $P1082 = "274_1284728478.15265" 
+    capture_lex $P1082
+    .const 'Sub' $P1075 = "272_1284728478.15265" 
+    capture_lex $P1075
+    .const 'Sub' $P1068 = "270_1284728478.15265" 
+    capture_lex $P1068
+    .const 'Sub' $P1061 = "268_1284728478.15265" 
+    capture_lex $P1061
+    .const 'Sub' $P1054 = "266_1284728478.15265" 
+    capture_lex $P1054
+    .const 'Sub' $P1047 = "264_1284728478.15265" 
+    capture_lex $P1047
+    .const 'Sub' $P1040 = "262_1284728478.15265" 
+    capture_lex $P1040
+    .const 'Sub' $P1033 = "260_1284728478.15265" 
+    capture_lex $P1033
+    .const 'Sub' $P1027 = "258_1284728478.15265" 
+    capture_lex $P1027
+    .const 'Sub' $P1021 = "256_1284728478.15265" 
+    capture_lex $P1021
+    .const 'Sub' $P1016 = "254_1284728478.15265" 
+    capture_lex $P1016
+    .const 'Sub' $P1010 = "252_1284728478.15265" 
+    capture_lex $P1010
+    .const 'Sub' $P1004 = "250_1284728478.15265" 
     capture_lex $P1004
-    .const 'Sub' $P998 = "252_1283975947.19641" 
-    capture_lex $P998
-    .const 'Sub' $P992 = "250_1283975947.19641" 
-    capture_lex $P992
-    .const 'Sub' $P987 = "248_1283975947.19641" 
-    capture_lex $P987
-    .const 'Sub' $P981 = "246_1283975947.19641" 
-    capture_lex $P981
-    .const 'Sub' $P975 = "244_1283975947.19641" 
-    capture_lex $P975
-    .const 'Sub' $P970 = "242_1283975947.19641" 
-    capture_lex $P970
-    .const 'Sub' $P965 = "240_1283975947.19641" 
-    capture_lex $P965
-    .const 'Sub' $P957 = "238_1283975947.19641" 
-    capture_lex $P957
-    .const 'Sub' $P948 = "236_1283975947.19641" 
-    capture_lex $P948
-    .const 'Sub' $P943 = "234_1283975947.19641" 
-    capture_lex $P943
-    .const 'Sub' $P938 = "232_1283975947.19641" 
-    capture_lex $P938
-    .const 'Sub' $P933 = "230_1283975947.19641" 
-    capture_lex $P933
-    .const 'Sub' $P925 = "228_1283975947.19641" 
+    .const 'Sub' $P999 = "248_1284728478.15265" 
+    capture_lex $P999
+    .const 'Sub' $P994 = "246_1284728478.15265" 
+    capture_lex $P994
+    .const 'Sub' $P986 = "244_1284728478.15265" 
+    capture_lex $P986
+    .const 'Sub' $P977 = "242_1284728478.15265" 
+    capture_lex $P977
+    .const 'Sub' $P972 = "240_1284728478.15265" 
+    capture_lex $P972
+    .const 'Sub' $P967 = "238_1284728478.15265" 
+    capture_lex $P967
+    .const 'Sub' $P962 = "236_1284728478.15265" 
+    capture_lex $P962
+    .const 'Sub' $P954 = "234_1284728478.15265" 
+    capture_lex $P954
+    .const 'Sub' $P946 = "232_1284728478.15265" 
+    capture_lex $P946
+    .const 'Sub' $P941 = "230_1284728478.15265" 
+    capture_lex $P941
+    .const 'Sub' $P936 = "228_1284728478.15265" 
+    capture_lex $P936
+    .const 'Sub' $P931 = "226_1284728478.15265" 
+    capture_lex $P931
+    .const 'Sub' $P925 = "224_1284728478.15265" 
     capture_lex $P925
-    .const 'Sub' $P917 = "226_1283975947.19641" 
-    capture_lex $P917
-    .const 'Sub' $P912 = "224_1283975947.19641" 
-    capture_lex $P912
-    .const 'Sub' $P907 = "222_1283975947.19641" 
+    .const 'Sub' $P919 = "222_1284728478.15265" 
+    capture_lex $P919
+    .const 'Sub' $P913 = "220_1284728478.15265" 
+    capture_lex $P913
+    .const 'Sub' $P907 = "218_1284728478.15265" 
     capture_lex $P907
-    .const 'Sub' $P902 = "220_1283975947.19641" 
-    capture_lex $P902
-    .const 'Sub' $P896 = "218_1283975947.19641" 
+    .const 'Sub' $P901 = "216_1284728478.15265" 
+    capture_lex $P901
+    .const 'Sub' $P896 = "214_1284728478.15265" 
     capture_lex $P896
-    .const 'Sub' $P890 = "216_1283975947.19641" 
-    capture_lex $P890
-    .const 'Sub' $P884 = "214_1283975947.19641" 
-    capture_lex $P884
-    .const 'Sub' $P878 = "212_1283975947.19641" 
-    capture_lex $P878
-    .const 'Sub' $P872 = "210_1283975947.19641" 
-    capture_lex $P872
-    .const 'Sub' $P867 = "208_1283975947.19641" 
-    capture_lex $P867
-    .const 'Sub' $P862 = "206_1283975947.19641" 
-    capture_lex $P862
-    .const 'Sub' $P850 = "202_1283975947.19641" 
-    capture_lex $P850
-    .const 'Sub' $P842 = "200_1283975947.19641" 
-    capture_lex $P842
-    .const 'Sub' $P836 = "198_1283975947.19641" 
+    .const 'Sub' $P891 = "212_1284728478.15265" 
+    capture_lex $P891
+    .const 'Sub' $P879 = "208_1284728478.15265" 
+    capture_lex $P879
+    .const 'Sub' $P871 = "206_1284728478.15265" 
+    capture_lex $P871
+    .const 'Sub' $P865 = "204_1284728478.15265" 
+    capture_lex $P865
+    .const 'Sub' $P858 = "202_1284728478.15265" 
+    capture_lex $P858
+    .const 'Sub' $P852 = "200_1284728478.15265" 
+    capture_lex $P852
+    .const 'Sub' $P844 = "198_1284728478.15265" 
+    capture_lex $P844
+    .const 'Sub' $P836 = "196_1284728478.15265" 
     capture_lex $P836
-    .const 'Sub' $P829 = "196_1283975947.19641" 
-    capture_lex $P829
-    .const 'Sub' $P823 = "194_1283975947.19641" 
-    capture_lex $P823
-    .const 'Sub' $P815 = "192_1283975947.19641" 
-    capture_lex $P815
-    .const 'Sub' $P807 = "190_1283975947.19641" 
-    capture_lex $P807
-    .const 'Sub' $P801 = "188_1283975947.19641" 
-    capture_lex $P801
-    .const 'Sub' $P795 = "186_1283975947.19641" 
-    capture_lex $P795
-    .const 'Sub' $P781 = "182_1283975947.19641" 
-    capture_lex $P781
-    .const 'Sub' $P744 = "180_1283975947.19641" 
-    capture_lex $P744
-    .const 'Sub' $P735 = "178_1283975947.19641" 
+    .const 'Sub' $P830 = "194_1284728478.15265" 
+    capture_lex $P830
+    .const 'Sub' $P824 = "192_1284728478.15265" 
+    capture_lex $P824
+    .const 'Sub' $P810 = "188_1284728478.15265" 
+    capture_lex $P810
+    .const 'Sub' $P773 = "186_1284728478.15265" 
+    capture_lex $P773
+    .const 'Sub' $P762 = "184_1284728478.15265" 
+    capture_lex $P762
+    .const 'Sub' $P750 = "180_1284728478.15265" 
+    capture_lex $P750
+    .const 'Sub' $P741 = "178_1284728478.15265" 
+    capture_lex $P741
+    .const 'Sub' $P735 = "176_1284728478.15265" 
     capture_lex $P735
-    .const 'Sub' $P729 = "176_1283975947.19641" 
-    capture_lex $P729
-    .const 'Sub' $P719 = "174_1283975947.19641" 
-    capture_lex $P719
-    .const 'Sub' $P706 = "172_1283975947.19641" 
-    capture_lex $P706
-    .const 'Sub' $P699 = "170_1283975947.19641" 
-    capture_lex $P699
-    .const 'Sub' $P691 = "168_1283975947.19641" 
-    capture_lex $P691
-    .const 'Sub' $P681 = "166_1283975947.19641" 
-    capture_lex $P681
-    .const 'Sub' $P657 = "162_1283975947.19641" 
-    capture_lex $P657
-    .const 'Sub' $P634 = "160_1283975947.19641" 
+    .const 'Sub' $P725 = "174_1284728478.15265" 
+    capture_lex $P725
+    .const 'Sub' $P712 = "172_1284728478.15265" 
+    capture_lex $P712
+    .const 'Sub' $P705 = "170_1284728478.15265" 
+    capture_lex $P705
+    .const 'Sub' $P697 = "168_1284728478.15265" 
+    capture_lex $P697
+    .const 'Sub' $P687 = "166_1284728478.15265" 
+    capture_lex $P687
+    .const 'Sub' $P660 = "162_1284728478.15265" 
+    capture_lex $P660
+    .const 'Sub' $P634 = "160_1284728478.15265" 
     capture_lex $P634
-    .const 'Sub' $P627 = "158_1283975947.19641" 
+    .const 'Sub' $P627 = "158_1284728478.15265" 
     capture_lex $P627
-    .const 'Sub' $P620 = "156_1283975947.19641" 
+    .const 'Sub' $P620 = "156_1284728478.15265" 
     capture_lex $P620
-    .const 'Sub' $P610 = "152_1283975947.19641" 
+    .const 'Sub' $P610 = "152_1284728478.15265" 
     capture_lex $P610
-    .const 'Sub' $P602 = "150_1283975947.19641" 
+    .const 'Sub' $P602 = "150_1284728478.15265" 
     capture_lex $P602
-    .const 'Sub' $P596 = "148_1283975947.19641" 
+    .const 'Sub' $P596 = "148_1284728478.15265" 
     capture_lex $P596
-    .const 'Sub' $P583 = "146_1283975947.19641" 
+    .const 'Sub' $P583 = "146_1284728478.15265" 
     capture_lex $P583
-    .const 'Sub' $P576 = "144_1283975947.19641" 
+    .const 'Sub' $P576 = "144_1284728478.15265" 
     capture_lex $P576
-    .const 'Sub' $P569 = "142_1283975947.19641" 
+    .const 'Sub' $P569 = "142_1284728478.15265" 
     capture_lex $P569
-    .const 'Sub' $P562 = "140_1283975947.19641" 
+    .const 'Sub' $P562 = "140_1284728478.15265" 
     capture_lex $P562
-    .const 'Sub' $P535 = "136_1283975947.19641" 
+    .const 'Sub' $P535 = "136_1284728478.15265" 
     capture_lex $P535
-    .const 'Sub' $P526 = "134_1283975947.19641" 
+    .const 'Sub' $P526 = "134_1284728478.15265" 
     capture_lex $P526
-    .const 'Sub' $P519 = "132_1283975947.19641" 
+    .const 'Sub' $P519 = "132_1284728478.15265" 
     capture_lex $P519
-    .const 'Sub' $P510 = "128_1283975947.19641" 
+    .const 'Sub' $P510 = "128_1284728478.15265" 
     capture_lex $P510
-    .const 'Sub' $P505 = "126_1283975947.19641" 
+    .const 'Sub' $P505 = "126_1284728478.15265" 
     capture_lex $P505
-    .const 'Sub' $P493 = "124_1283975947.19641" 
+    .const 'Sub' $P493 = "124_1284728478.15265" 
     capture_lex $P493
-    .const 'Sub' $P481 = "122_1283975947.19641" 
+    .const 'Sub' $P481 = "122_1284728478.15265" 
     capture_lex $P481
-    .const 'Sub' $P474 = "120_1283975947.19641" 
+    .const 'Sub' $P474 = "120_1284728478.15265" 
     capture_lex $P474
-    .const 'Sub' $P469 = "118_1283975947.19641" 
+    .const 'Sub' $P469 = "118_1284728478.15265" 
     capture_lex $P469
-    .const 'Sub' $P463 = "116_1283975947.19641" 
+    .const 'Sub' $P463 = "116_1284728478.15265" 
     capture_lex $P463
-    .const 'Sub' $P457 = "114_1283975947.19641" 
+    .const 'Sub' $P457 = "114_1284728478.15265" 
     capture_lex $P457
-    .const 'Sub' $P447 = "111_1283975947.19641" 
+    .const 'Sub' $P447 = "111_1284728478.15265" 
     capture_lex $P447
-    .const 'Sub' $P441 = "109_1283975947.19641" 
+    .const 'Sub' $P441 = "109_1284728478.15265" 
     capture_lex $P441
-    .const 'Sub' $P435 = "107_1283975947.19641" 
+    .const 'Sub' $P435 = "107_1284728478.15265" 
     capture_lex $P435
-    .const 'Sub' $P429 = "105_1283975947.19641" 
+    .const 'Sub' $P429 = "105_1284728478.15265" 
     capture_lex $P429
-    .const 'Sub' $P423 = "103_1283975947.19641" 
+    .const 'Sub' $P423 = "103_1284728478.15265" 
     capture_lex $P423
-    .const 'Sub' $P417 = "101_1283975947.19641" 
+    .const 'Sub' $P417 = "101_1284728478.15265" 
     capture_lex $P417
-    .const 'Sub' $P411 = "99_1283975947.19641" 
+    .const 'Sub' $P411 = "99_1284728478.15265" 
     capture_lex $P411
-    .const 'Sub' $P402 = "97_1283975947.19641" 
+    .const 'Sub' $P402 = "97_1284728478.15265" 
     capture_lex $P402
-    .const 'Sub' $P393 = "95_1283975947.19641" 
+    .const 'Sub' $P393 = "95_1284728478.15265" 
     capture_lex $P393
-    .const 'Sub' $P384 = "93_1283975947.19641" 
+    .const 'Sub' $P384 = "93_1284728478.15265" 
     capture_lex $P384
-    .const 'Sub' $P371 = "89_1283975947.19641" 
+    .const 'Sub' $P371 = "89_1284728478.15265" 
     capture_lex $P371
-    .const 'Sub' $P362 = "87_1283975947.19641" 
+    .const 'Sub' $P362 = "87_1284728478.15265" 
     capture_lex $P362
-    .const 'Sub' $P352 = "83_1283975947.19641" 
+    .const 'Sub' $P352 = "83_1284728478.15265" 
     capture_lex $P352
-    .const 'Sub' $P345 = "81_1283975947.19641" 
+    .const 'Sub' $P345 = "81_1284728478.15265" 
     capture_lex $P345
-    .const 'Sub' $P338 = "79_1283975947.19641" 
+    .const 'Sub' $P338 = "79_1284728478.15265" 
     capture_lex $P338
-    .const 'Sub' $P326 = "75_1283975947.19641" 
+    .const 'Sub' $P326 = "75_1284728478.15265" 
     capture_lex $P326
-    .const 'Sub' $P318 = "73_1283975947.19641" 
+    .const 'Sub' $P318 = "73_1284728478.15265" 
     capture_lex $P318
-    .const 'Sub' $P310 = "71_1283975947.19641" 
+    .const 'Sub' $P310 = "71_1284728478.15265" 
     capture_lex $P310
-    .const 'Sub' $P290 = "69_1283975947.19641" 
+    .const 'Sub' $P290 = "69_1284728478.15265" 
     capture_lex $P290
-    .const 'Sub' $P281 = "67_1283975947.19641" 
+    .const 'Sub' $P281 = "67_1284728478.15265" 
     capture_lex $P281
-    .const 'Sub' $P263 = "64_1283975947.19641" 
+    .const 'Sub' $P263 = "64_1284728478.15265" 
     capture_lex $P263
-    .const 'Sub' $P245 = "62_1283975947.19641" 
+    .const 'Sub' $P245 = "62_1284728478.15265" 
     capture_lex $P245
-    .const 'Sub' $P236 = "58_1283975947.19641" 
+    .const 'Sub' $P236 = "58_1284728478.15265" 
     capture_lex $P236
-    .const 'Sub' $P231 = "56_1283975947.19641" 
+    .const 'Sub' $P231 = "56_1284728478.15265" 
     capture_lex $P231
-    .const 'Sub' $P222 = "52_1283975947.19641" 
+    .const 'Sub' $P222 = "52_1284728478.15265" 
     capture_lex $P222
-    .const 'Sub' $P217 = "50_1283975947.19641" 
+    .const 'Sub' $P217 = "50_1284728478.15265" 
     capture_lex $P217
-    .const 'Sub' $P212 = "48_1283975947.19641" 
+    .const 'Sub' $P212 = "48_1284728478.15265" 
     capture_lex $P212
-    .const 'Sub' $P203 = "46_1283975947.19641" 
+    .const 'Sub' $P203 = "46_1284728478.15265" 
     capture_lex $P203
-    .const 'Sub' $P196 = "44_1283975947.19641" 
+    .const 'Sub' $P196 = "44_1284728478.15265" 
     capture_lex $P196
-    .const 'Sub' $P190 = "42_1283975947.19641" 
+    .const 'Sub' $P190 = "42_1284728478.15265" 
     capture_lex $P190
-    .const 'Sub' $P182 = "40_1283975947.19641" 
+    .const 'Sub' $P182 = "40_1284728478.15265" 
     capture_lex $P182
-    .const 'Sub' $P176 = "38_1283975947.19641" 
+    .const 'Sub' $P176 = "38_1284728478.15265" 
     capture_lex $P176
-    .const 'Sub' $P170 = "36_1283975947.19641" 
+    .const 'Sub' $P170 = "36_1284728478.15265" 
     capture_lex $P170
-    .const 'Sub' $P155 = "33_1283975947.19641" 
+    .const 'Sub' $P155 = "33_1284728478.15265" 
     capture_lex $P155
-    .const 'Sub' $P141 = "31_1283975947.19641" 
+    .const 'Sub' $P141 = "31_1284728478.15265" 
     capture_lex $P141
-    .const 'Sub' $P134 = "29_1283975947.19641" 
+    .const 'Sub' $P134 = "29_1284728478.15265" 
     capture_lex $P134
-    .const 'Sub' $P95 = "26_1283975947.19641" 
+    .const 'Sub' $P95 = "26_1284728478.15265" 
     capture_lex $P95
-    .const 'Sub' $P80 = "23_1283975947.19641" 
+    .const 'Sub' $P80 = "23_1284728478.15265" 
     capture_lex $P80
-    .const 'Sub' $P69 = "21_1283975947.19641" 
+    .const 'Sub' $P69 = "21_1284728478.15265" 
     capture_lex $P69
-    .const 'Sub' $P57 = "19_1283975947.19641" 
+    .const 'Sub' $P57 = "19_1284728478.15265" 
     capture_lex $P57
-    .const 'Sub' $P49 = "17_1283975947.19641" 
+    .const 'Sub' $P49 = "17_1284728478.15265" 
     capture_lex $P49
-    .const 'Sub' $P42 = "15_1283975947.19641" 
+    .const 'Sub' $P42 = "15_1284728478.15265" 
     capture_lex $P42
-    .const 'Sub' $P35 = "13_1283975947.19641" 
+    .const 'Sub' $P35 = "13_1284728478.15265" 
     capture_lex $P35
-    .const 'Sub' $P15 = "12_1283975947.19641" 
+    .const 'Sub' $P15 = "12_1284728478.15265" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -368,126 +375,156 @@
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
-    get_hll_global $P1340, ["NQP";"Regex"], "_block1339" 
-    capture_lex $P1340
-    $P1402 = $P1340()
-    .return ($P1402)
-    .const 'Sub' $P1404 = "370_1283975947.19641" 
-    .return ($P1404)
+.annotate 'line', 574
+    get_hll_global $P1369, ["NQP";"Regex"], "_block1368" 
+    capture_lex $P1369
+    $P1431 = $P1369()
+.annotate 'line', 4
+    .return ($P1431)
+    .const 'Sub' $P1433 = "376_1284728478.15265" 
+    .return ($P1433)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post373") :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "" :load :init :subid("post379") :outer("11_1284728478.15265")
+.annotate 'line', 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     .local pmc block
     set block, $P14
-    get_hll_global $P1407, ["NQP"], "Grammar"
-    $P1407."O"(":prec<y=>, :assoc<unary>", "%methodop")
-    get_hll_global $P1408, ["NQP"], "Grammar"
-    $P1408."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
-    get_hll_global $P1409, ["NQP"], "Grammar"
-    $P1409."O"(":prec<w=>, :assoc<left>", "%exponentiation")
-    get_hll_global $P1410, ["NQP"], "Grammar"
-    $P1410."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
-    get_hll_global $P1411, ["NQP"], "Grammar"
-    $P1411."O"(":prec<u=>, :assoc<left>", "%multiplicative")
-    get_hll_global $P1412, ["NQP"], "Grammar"
-    $P1412."O"(":prec<t=>, :assoc<left>", "%additive")
-    get_hll_global $P1413, ["NQP"], "Grammar"
-    $P1413."O"(":prec<r=>, :assoc<left>", "%concatenation")
-    get_hll_global $P1414, ["NQP"], "Grammar"
-    $P1414."O"(":prec<m=>, :assoc<left>", "%relational")
-    get_hll_global $P1415, ["NQP"], "Grammar"
-    $P1415."O"(":prec<l=>, :assoc<left>", "%tight_and")
-    get_hll_global $P1416, ["NQP"], "Grammar"
-    $P1416."O"(":prec<k=>, :assoc<left>", "%tight_or")
-    get_hll_global $P1417, ["NQP"], "Grammar"
-    $P1417."O"(":prec<j=>, :assoc<right>", "%conditional")
-    get_hll_global $P1418, ["NQP"], "Grammar"
-    $P1418."O"(":prec<i=>, :assoc<right>", "%assignment")
-    get_hll_global $P1419, ["NQP"], "Grammar"
-    $P1419."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
-    get_hll_global $P1420, ["NQP"], "Grammar"
-    $P1420."O"(":prec<f=>, :assoc<list>", "%list_infix")
-    get_hll_global $P1421, ["NQP"], "Grammar"
-    $P1421."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
-    $P1422 = get_root_global ["parrot"], "P6metaclass"
-    $P1422."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
+.annotate 'line', 455
+    get_hll_global $P1436, ["NQP"], "Grammar"
+    $P1436."O"(":prec<y=>, :assoc<unary>", "%methodop")
+.annotate 'line', 456
+    get_hll_global $P1437, ["NQP"], "Grammar"
+    $P1437."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
+.annotate 'line', 457
+    get_hll_global $P1438, ["NQP"], "Grammar"
+    $P1438."O"(":prec<w=>, :assoc<left>", "%exponentiation")
+.annotate 'line', 458
+    get_hll_global $P1439, ["NQP"], "Grammar"
+    $P1439."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
+.annotate 'line', 459
+    get_hll_global $P1440, ["NQP"], "Grammar"
+    $P1440."O"(":prec<u=>, :assoc<left>", "%multiplicative")
+.annotate 'line', 460
+    get_hll_global $P1441, ["NQP"], "Grammar"
+    $P1441."O"(":prec<t=>, :assoc<left>", "%additive")
+.annotate 'line', 461
+    get_hll_global $P1442, ["NQP"], "Grammar"
+    $P1442."O"(":prec<r=>, :assoc<left>", "%concatenation")
+.annotate 'line', 462
+    get_hll_global $P1443, ["NQP"], "Grammar"
+    $P1443."O"(":prec<m=>, :assoc<left>", "%relational")
+.annotate 'line', 463
+    get_hll_global $P1444, ["NQP"], "Grammar"
+    $P1444."O"(":prec<l=>, :assoc<left>", "%tight_and")
+.annotate 'line', 464
+    get_hll_global $P1445, ["NQP"], "Grammar"
+    $P1445."O"(":prec<k=>, :assoc<left>", "%tight_or")
+.annotate 'line', 465
+    get_hll_global $P1446, ["NQP"], "Grammar"
+    $P1446."O"(":prec<j=>, :assoc<right>", "%conditional")
+.annotate 'line', 466
+    get_hll_global $P1447, ["NQP"], "Grammar"
+    $P1447."O"(":prec<i=>, :assoc<right>", "%assignment")
+.annotate 'line', 467
+    get_hll_global $P1448, ["NQP"], "Grammar"
+    $P1448."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
+.annotate 'line', 468
+    get_hll_global $P1449, ["NQP"], "Grammar"
+    $P1449."O"(":prec<f=>, :assoc<list>", "%list_infix")
+.annotate 'line', 469
+    get_hll_global $P1450, ["NQP"], "Grammar"
+    $P1450."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
+.annotate 'line', 454
+    $P1451 = get_root_global ["parrot"], "P6metaclass"
+    $P1451."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Grammar"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("12_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "TOP"  :subid("12_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
     $P17."handle_types"(.CONTROL_RETURN)
     push_eh $P17
     .lex "self", self
+.annotate 'line', 5
     $P18 = root_new ['parrot';'Hash']
     .lex "%*LANG", $P18
+.annotate 'line', 10
     new $P19, "Undef"
     .lex "$*SCOPE", $P19
+.annotate 'line', 11
     new $P20, "Undef"
     .lex "$*MULTINESS", $P20
+.annotate 'line', 4
     find_lex $P21, "%*LANG"
-    unless_null $P21, vivify_374
+    unless_null $P21, vivify_380
     get_hll_global $P21, "%LANG"
-    unless_null $P21, vivify_375
+    unless_null $P21, vivify_381
     die "Contextual %*LANG not found"
-  vivify_375:
-  vivify_374:
+  vivify_381:
+  vivify_380:
+.annotate 'line', 6
     get_hll_global $P22, ["NQP"], "Regex"
     find_lex $P23, "%*LANG"
-    unless_null $P23, vivify_376
+    unless_null $P23, vivify_382
     get_hll_global $P23, "%LANG"
-    unless_null $P23, vivify_377
+    unless_null $P23, vivify_383
     die "Contextual %*LANG not found"
-  vivify_377:
+  vivify_383:
     store_lex "%*LANG", $P23
-  vivify_376:
+  vivify_382:
     set $P23["Regex"], $P22
+.annotate 'line', 7
     get_hll_global $P24, ["NQP"], "RegexActions"
     find_lex $P25, "%*LANG"
-    unless_null $P25, vivify_378
+    unless_null $P25, vivify_384
     get_hll_global $P25, "%LANG"
-    unless_null $P25, vivify_379
+    unless_null $P25, vivify_385
     die "Contextual %*LANG not found"
-  vivify_379:
+  vivify_385:
     store_lex "%*LANG", $P25
-  vivify_378:
+  vivify_384:
     set $P25["Regex-actions"], $P24
+.annotate 'line', 8
     get_hll_global $P26, ["NQP"], "Grammar"
     find_lex $P27, "%*LANG"
-    unless_null $P27, vivify_380
+    unless_null $P27, vivify_386
     get_hll_global $P27, "%LANG"
-    unless_null $P27, vivify_381
+    unless_null $P27, vivify_387
     die "Contextual %*LANG not found"
-  vivify_381:
+  vivify_387:
     store_lex "%*LANG", $P27
-  vivify_380:
+  vivify_386:
     set $P27["MAIN"], $P26
+.annotate 'line', 9
     get_hll_global $P28, ["NQP"], "Actions"
     find_lex $P29, "%*LANG"
-    unless_null $P29, vivify_382
+    unless_null $P29, vivify_388
     get_hll_global $P29, "%LANG"
-    unless_null $P29, vivify_383
+    unless_null $P29, vivify_389
     die "Contextual %*LANG not found"
-  vivify_383:
+  vivify_389:
     store_lex "%*LANG", $P29
-  vivify_382:
+  vivify_388:
     set $P29["MAIN-actions"], $P28
+.annotate 'line', 10
     new $P30, "String"
     assign $P30, ""
     store_lex "$*SCOPE", $P30
+.annotate 'line', 11
     new $P31, "String"
     assign $P31, ""
     store_lex "$*MULTINESS", $P31
+.annotate 'line', 12
     find_lex $P32, "self"
     $P33 = $P32."comp_unit"()
+.annotate 'line', 4
     .return ($P33)
   control_16:
     .local pmc exception 
@@ -498,8 +535,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "identifier"  :subid("13_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "identifier"  :subid("13_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx36_tgt
     .local int rx36_pos
     .local int rx36_off
@@ -520,9 +557,9 @@
     substr rx36_tgt, rx36_tgt, rx36_off
   rx36_start:
     eq $I10, 1, rx36_restart
-    if_null rx36_debug, debug_384
+    if_null rx36_debug, debug_390
     rx36_cur."!cursor_debug"("START", "identifier")
-  debug_384:
+  debug_390:
     $I10 = self.'from'()
     ne $I10, -1, rxscan40_done
     goto rxscan40_scan
@@ -535,6 +572,7 @@
     set_addr $I10, rxscan40_loop
     rx36_cur."!mark_push"(0, rx36_pos, $I10)
   rxscan40_done:
+.annotate 'line', 17
   # rx subrule "ident" subtype=method negate=
     rx36_cur."!cursor_pos"(rx36_pos)
     $P10 = rx36_cur."ident"()
@@ -564,14 +602,15 @@
   rxquantr41_done:
   # rx pass
     rx36_cur."!cursor_pass"(rx36_pos, "identifier")
-    if_null rx36_debug, debug_385
+    if_null rx36_debug, debug_391
     rx36_cur."!cursor_debug"("PASS", "identifier", " at pos=", rx36_pos)
-  debug_385:
+  debug_391:
     .return (rx36_cur)
   rx36_restart:
-    if_null rx36_debug, debug_386
+.annotate 'line', 4
+    if_null rx36_debug, debug_392
     rx36_cur."!cursor_debug"("NEXT", "identifier")
-  debug_386:
+  debug_392:
   rx36_fail:
     (rx36_rep, rx36_pos, $I10, $P10) = rx36_cur."!mark_fail"(0)
     lt rx36_pos, -1, rx36_done
@@ -579,17 +618,17 @@
     jump $I10
   rx36_done:
     rx36_cur."!cursor_fail"()
-    if_null rx36_debug, debug_387
+    if_null rx36_debug, debug_393
     rx36_cur."!cursor_debug"("FAIL", "identifier")
-  debug_387:
+  debug_393:
     .return (rx36_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("14_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__identifier"  :subid("14_1284728478.15265") :method
+.annotate 'line', 4
     $P38 = self."!PREFIX__!subrule"("ident", "")
     new $P39, "ResizablePMCArray"
     push $P39, $P38
@@ -598,8 +637,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "name"  :subid("15_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "name"  :subid("15_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx43_tgt
     .local int rx43_pos
     .local int rx43_off
@@ -621,9 +660,9 @@
     substr rx43_tgt, rx43_tgt, rx43_off
   rx43_start:
     eq $I10, 1, rx43_restart
-    if_null rx43_debug, debug_388
+    if_null rx43_debug, debug_394
     rx43_cur."!cursor_debug"("START", "name")
-  debug_388:
+  debug_394:
     $I10 = self.'from'()
     ne $I10, -1, rxscan46_done
     goto rxscan46_scan
@@ -636,6 +675,7 @@
     set_addr $I10, rxscan46_loop
     rx43_cur."!mark_push"(0, rx43_pos, $I10)
   rxscan46_done:
+.annotate 'line', 19
   # rx rxquantr47 ** 1..*
     set_addr $I10, rxquantr47_done
     rx43_cur."!mark_push"(0, -1, $I10)
@@ -668,14 +708,15 @@
   rxquantr47_done:
   # rx pass
     rx43_cur."!cursor_pass"(rx43_pos, "name")
-    if_null rx43_debug, debug_389
+    if_null rx43_debug, debug_395
     rx43_cur."!cursor_debug"("PASS", "name", " at pos=", rx43_pos)
-  debug_389:
+  debug_395:
     .return (rx43_cur)
   rx43_restart:
-    if_null rx43_debug, debug_390
+.annotate 'line', 4
+    if_null rx43_debug, debug_396
     rx43_cur."!cursor_debug"("NEXT", "name")
-  debug_390:
+  debug_396:
   rx43_fail:
     (rx43_rep, rx43_pos, $I10, $P10) = rx43_cur."!mark_fail"(0)
     lt rx43_pos, -1, rx43_done
@@ -683,17 +724,17 @@
     jump $I10
   rx43_done:
     rx43_cur."!cursor_fail"()
-    if_null rx43_debug, debug_391
+    if_null rx43_debug, debug_397
     rx43_cur."!cursor_debug"("FAIL", "name")
-  debug_391:
+  debug_397:
     .return (rx43_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name"  :subid("16_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__name"  :subid("16_1284728478.15265") :method
+.annotate 'line', 4
     new $P45, "ResizablePMCArray"
     push $P45, ""
     .return ($P45)
@@ -701,8 +742,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "deflongname"  :subid("17_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "deflongname"  :subid("17_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx50_tgt
     .local int rx50_pos
     .local int rx50_off
@@ -724,9 +765,9 @@
     substr rx50_tgt, rx50_tgt, rx50_off
   rx50_start:
     eq $I10, 1, rx50_restart
-    if_null rx50_debug, debug_392
+    if_null rx50_debug, debug_398
     rx50_cur."!cursor_debug"("START", "deflongname")
-  debug_392:
+  debug_398:
     $I10 = self.'from'()
     ne $I10, -1, rxscan54_done
     goto rxscan54_scan
@@ -739,6 +780,7 @@
     set_addr $I10, rxscan54_loop
     rx50_cur."!mark_push"(0, rx50_pos, $I10)
   rxscan54_done:
+.annotate 'line', 22
   # rx subrule "identifier" subtype=capture negate=
     rx50_cur."!cursor_pos"(rx50_pos)
     $P10 = rx50_cur."identifier"()
@@ -766,16 +808,18 @@
     set_addr $I10, rxquantr55_done
     (rx50_rep) = rx50_cur."!mark_commit"($I10)
   rxquantr55_done:
+.annotate 'line', 21
   # rx pass
     rx50_cur."!cursor_pass"(rx50_pos, "deflongname")
-    if_null rx50_debug, debug_393
+    if_null rx50_debug, debug_399
     rx50_cur."!cursor_debug"("PASS", "deflongname", " at pos=", rx50_pos)
-  debug_393:
+  debug_399:
     .return (rx50_cur)
   rx50_restart:
-    if_null rx50_debug, debug_394
+.annotate 'line', 4
+    if_null rx50_debug, debug_400
     rx50_cur."!cursor_debug"("NEXT", "deflongname")
-  debug_394:
+  debug_400:
   rx50_fail:
     (rx50_rep, rx50_pos, $I10, $P10) = rx50_cur."!mark_fail"(0)
     lt rx50_pos, -1, rx50_done
@@ -783,17 +827,17 @@
     jump $I10
   rx50_done:
     rx50_cur."!cursor_fail"()
-    if_null rx50_debug, debug_395
+    if_null rx50_debug, debug_401
     rx50_cur."!cursor_debug"("FAIL", "deflongname")
-  debug_395:
+  debug_401:
     .return (rx50_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname"  :subid("18_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__deflongname"  :subid("18_1284728478.15265") :method
+.annotate 'line', 4
     $P52 = self."!PREFIX__!subrule"("identifier", "")
     new $P53, "ResizablePMCArray"
     push $P53, $P52
@@ -802,8 +846,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ENDSTMT"  :subid("19_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "ENDSTMT"  :subid("19_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx58_tgt
     .local int rx58_pos
     .local int rx58_off
@@ -824,9 +868,9 @@
     substr rx58_tgt, rx58_tgt, rx58_off
   rx58_start:
     eq $I10, 1, rx58_restart
-    if_null rx58_debug, debug_396
+    if_null rx58_debug, debug_402
     rx58_cur."!cursor_debug"("START", "ENDSTMT")
-  debug_396:
+  debug_402:
     $I10 = self.'from'()
     ne $I10, -1, rxscan61_done
     goto rxscan61_scan
@@ -839,13 +883,16 @@
     set_addr $I10, rxscan61_loop
     rx58_cur."!mark_push"(0, rx58_pos, $I10)
   rxscan61_done:
+.annotate 'line', 29
   # rx rxquantr62 ** 0..1
     set_addr $I10, rxquantr62_done
     rx58_cur."!mark_push"(0, rx58_pos, $I10)
   rxquantr62_loop:
   alt63_0:
+.annotate 'line', 26
     set_addr $I10, alt63_1
     rx58_cur."!mark_push"(0, rx58_pos, $I10)
+.annotate 'line', 27
   # rx enumcharlist_q negate=0  r 0..-1
     sub $I10, rx58_pos, rx58_off
     set rx58_rep, 0
@@ -882,6 +929,7 @@
     unless $P10, rx58_fail
     goto alt63_end
   alt63_1:
+.annotate 'line', 28
   # rx rxquantr66 ** 0..1
     set_addr $I10, rxquantr66_done
     rx58_cur."!mark_push"(0, rx58_pos, $I10)
@@ -921,19 +969,22 @@
     $P10 = rx58_cur."MARKER"("endstmt")
     unless $P10, rx58_fail
   alt63_end:
+.annotate 'line', 29
     set_addr $I10, rxquantr62_done
     (rx58_rep) = rx58_cur."!mark_commit"($I10)
   rxquantr62_done:
+.annotate 'line', 25
   # rx pass
     rx58_cur."!cursor_pass"(rx58_pos, "ENDSTMT")
-    if_null rx58_debug, debug_397
+    if_null rx58_debug, debug_403
     rx58_cur."!cursor_debug"("PASS", "ENDSTMT", " at pos=", rx58_pos)
-  debug_397:
+  debug_403:
     .return (rx58_cur)
   rx58_restart:
-    if_null rx58_debug, debug_398
+.annotate 'line', 4
+    if_null rx58_debug, debug_404
     rx58_cur."!cursor_debug"("NEXT", "ENDSTMT")
-  debug_398:
+  debug_404:
   rx58_fail:
     (rx58_rep, rx58_pos, $I10, $P10) = rx58_cur."!mark_fail"(0)
     lt rx58_pos, -1, rx58_done
@@ -941,17 +992,17 @@
     jump $I10
   rx58_done:
     rx58_cur."!cursor_fail"()
-    if_null rx58_debug, debug_399
+    if_null rx58_debug, debug_405
     rx58_cur."!cursor_debug"("FAIL", "ENDSTMT")
-  debug_399:
+  debug_405:
     .return (rx58_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT"  :subid("20_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__ENDSTMT"  :subid("20_1284728478.15265") :method
+.annotate 'line', 4
     new $P60, "ResizablePMCArray"
     push $P60, ""
     .return ($P60)
@@ -959,8 +1010,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ws"  :subid("21_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "ws"  :subid("21_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx70_tgt
     .local int rx70_pos
     .local int rx70_off
@@ -981,9 +1032,9 @@
     substr rx70_tgt, rx70_tgt, rx70_off
   rx70_start:
     eq $I10, 1, rx70_restart
-    if_null rx70_debug, debug_400
+    if_null rx70_debug, debug_406
     rx70_cur."!cursor_debug"("START", "ws")
-  debug_400:
+  debug_406:
     $I10 = self.'from'()
     ne $I10, -1, rxscan73_done
     goto rxscan73_scan
@@ -997,23 +1048,28 @@
     rx70_cur."!mark_push"(0, rx70_pos, $I10)
   rxscan73_done:
   alt74_0:
+.annotate 'line', 32
     set_addr $I10, alt74_1
     rx70_cur."!mark_push"(0, rx70_pos, $I10)
+.annotate 'line', 33
   # rx subrule "MARKED" subtype=zerowidth negate=
     rx70_cur."!cursor_pos"(rx70_pos)
     $P10 = rx70_cur."MARKED"("ws")
     unless $P10, rx70_fail
     goto alt74_end
   alt74_1:
+.annotate 'line', 34
   # rx subrule "ww" subtype=zerowidth negate=1
     rx70_cur."!cursor_pos"(rx70_pos)
     $P10 = rx70_cur."ww"()
     if $P10, rx70_fail
+.annotate 'line', 39
   # rx rxquantr75 ** 0..*
     set_addr $I10, rxquantr75_done
     rx70_cur."!mark_push"(0, rx70_pos, $I10)
   rxquantr75_loop:
   alt76_0:
+.annotate 'line', 35
     set_addr $I10, alt76_1
     rx70_cur."!mark_push"(0, rx70_pos, $I10)
   # rx enumcharlist_q negate=0  r 1..-1
@@ -1036,6 +1092,7 @@
   alt76_1:
     set_addr $I10, alt76_2
     rx70_cur."!mark_push"(0, rx70_pos, $I10)
+.annotate 'line', 36
   # rx literal  "#"
     add $I11, rx70_pos, 1
     gt $I11, rx70_eos, rx70_fail
@@ -1051,6 +1108,7 @@
   alt76_2:
     set_addr $I10, alt76_3
     rx70_cur."!mark_push"(0, rx70_pos, $I10)
+.annotate 'line', 37
   # rxanchor bol
     eq rx70_pos, 0, rxanchor78_done
     ge rx70_pos, rx70_eos, rx70_fail
@@ -1066,6 +1124,7 @@
     rx70_pos = $P10."pos"()
     goto alt76_end
   alt76_3:
+.annotate 'line', 38
   # rx enumcharlist_q negate=0  r 1..-1
     sub $I10, rx70_pos, rx70_off
     set rx70_rep, 0
@@ -1083,27 +1142,31 @@
     lt rx70_rep, 1, rx70_fail
     add rx70_pos, rx70_pos, rx70_rep
   alt76_end:
+.annotate 'line', 39
     set_addr $I10, rxquantr75_done
     (rx70_rep) = rx70_cur."!mark_commit"($I10)
     set_addr $I10, rxquantr75_done
     rx70_cur."!mark_push"(rx70_rep, rx70_pos, $I10)
     goto rxquantr75_loop
   rxquantr75_done:
+.annotate 'line', 40
   # rx subrule "MARKER" subtype=zerowidth negate=
     rx70_cur."!cursor_pos"(rx70_pos)
     $P10 = rx70_cur."MARKER"("ws")
     unless $P10, rx70_fail
   alt74_end:
+.annotate 'line', 32
   # rx pass
     rx70_cur."!cursor_pass"(rx70_pos, "ws")
-    if_null rx70_debug, debug_401
+    if_null rx70_debug, debug_407
     rx70_cur."!cursor_debug"("PASS", "ws", " at pos=", rx70_pos)
-  debug_401:
+  debug_407:
     .return (rx70_cur)
   rx70_restart:
-    if_null rx70_debug, debug_402
+.annotate 'line', 4
+    if_null rx70_debug, debug_408
     rx70_cur."!cursor_debug"("NEXT", "ws")
-  debug_402:
+  debug_408:
   rx70_fail:
     (rx70_rep, rx70_pos, $I10, $P10) = rx70_cur."!mark_fail"(0)
     lt rx70_pos, -1, rx70_done
@@ -1111,17 +1174,17 @@
     jump $I10
   rx70_done:
     rx70_cur."!cursor_fail"()
-    if_null rx70_debug, debug_403
+    if_null rx70_debug, debug_409
     rx70_cur."!cursor_debug"("FAIL", "ws")
-  debug_403:
+  debug_409:
     .return (rx70_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws"  :subid("22_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__ws"  :subid("22_1284728478.15265") :method
+.annotate 'line', 4
     new $P72, "ResizablePMCArray"
     push $P72, ""
     push $P72, ""
@@ -1130,9 +1193,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "unv"  :subid("23_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .const 'Sub' $P88 = "25_1283975947.19641" 
+.sub "unv"  :subid("23_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .const 'Sub' $P88 = "25_1284728478.15265" 
     capture_lex $P88
     .local string rx81_tgt
     .local int rx81_pos
@@ -1154,9 +1217,9 @@
     substr rx81_tgt, rx81_tgt, rx81_off
   rx81_start:
     eq $I10, 1, rx81_restart
-    if_null rx81_debug, debug_404
+    if_null rx81_debug, debug_410
     rx81_cur."!cursor_debug"("START", "unv")
-  debug_404:
+  debug_410:
     $I10 = self.'from'()
     ne $I10, -1, rxscan84_done
     goto rxscan84_scan
@@ -1170,8 +1233,10 @@
     rx81_cur."!mark_push"(0, rx81_pos, $I10)
   rxscan84_done:
   alt85_0:
+.annotate 'line', 45
     set_addr $I10, alt85_1
     rx81_cur."!mark_push"(0, rx81_pos, $I10)
+.annotate 'line', 46
   # rxanchor bol
     eq rx81_pos, 0, rxanchor86_done
     ge rx81_pos, rx81_eos, rx81_fail
@@ -1182,7 +1247,7 @@
   rxanchor86_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx81_cur."!cursor_pos"(rx81_pos)
-    .const 'Sub' $P88 = "25_1283975947.19641" 
+    .const 'Sub' $P88 = "25_1284728478.15265" 
     capture_lex $P88
     $P10 = rx81_cur."before"($P88)
     unless $P10, rx81_fail
@@ -1195,6 +1260,7 @@
   alt85_1:
     set_addr $I10, alt85_2
     rx81_cur."!mark_push"(0, rx81_pos, $I10)
+.annotate 'line', 47
   # rx enumcharlist_q negate=0  r 0..-1
     sub $I10, rx81_pos, rx81_off
     set rx81_rep, 0
@@ -1223,6 +1289,7 @@
     add rx81_pos, rx81_off, $I11
     goto alt85_end
   alt85_2:
+.annotate 'line', 48
   # rx enumcharlist_q negate=0  r 1..-1
     sub $I10, rx81_pos, rx81_off
     set rx81_rep, 0
@@ -1240,16 +1307,18 @@
     lt rx81_rep, 1, rx81_fail
     add rx81_pos, rx81_pos, rx81_rep
   alt85_end:
+.annotate 'line', 43
   # rx pass
     rx81_cur."!cursor_pass"(rx81_pos, "unv")
-    if_null rx81_debug, debug_409
+    if_null rx81_debug, debug_415
     rx81_cur."!cursor_debug"("PASS", "unv", " at pos=", rx81_pos)
-  debug_409:
+  debug_415:
     .return (rx81_cur)
   rx81_restart:
-    if_null rx81_debug, debug_410
+.annotate 'line', 4
+    if_null rx81_debug, debug_416
     rx81_cur."!cursor_debug"("NEXT", "unv")
-  debug_410:
+  debug_416:
   rx81_fail:
     (rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0)
     lt rx81_pos, -1, rx81_done
@@ -1257,17 +1326,17 @@
     jump $I10
   rx81_done:
     rx81_cur."!cursor_fail"()
-    if_null rx81_debug, debug_411
+    if_null rx81_debug, debug_417
     rx81_cur."!cursor_debug"("FAIL", "unv")
-  debug_411:
+  debug_417:
     .return (rx81_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv"  :subid("24_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__unv"  :subid("24_1284728478.15265") :method
+.annotate 'line', 4
     new $P83, "ResizablePMCArray"
     push $P83, ""
     push $P83, ""
@@ -1277,8 +1346,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block87"  :anon :subid("25_1283975947.19641") :method :outer("23_1283975947.19641")
-.annotate 'line', 0
+.sub "_block87"  :anon :subid("25_1284728478.15265") :method :outer("23_1284728478.15265")
+.annotate 'line', 46
     .local string rx89_tgt
     .local int rx89_pos
     .local int rx89_off
@@ -1299,9 +1368,9 @@
     substr rx89_tgt, rx89_tgt, rx89_off
   rx89_start:
     eq $I10, 1, rx89_restart
-    if_null rx89_debug, debug_405
+    if_null rx89_debug, debug_411
     rx89_cur."!cursor_debug"("START", "")
-  debug_405:
+  debug_411:
     $I10 = self.'from'()
     ne $I10, -1, rxscan90_done
     goto rxscan90_scan
@@ -1357,14 +1426,14 @@
   alt92_end:
   # rx pass
     rx89_cur."!cursor_pass"(rx89_pos, "")
-    if_null rx89_debug, debug_406
+    if_null rx89_debug, debug_412
     rx89_cur."!cursor_debug"("PASS", "", " at pos=", rx89_pos)
-  debug_406:
+  debug_412:
     .return (rx89_cur)
   rx89_restart:
-    if_null rx89_debug, debug_407
+    if_null rx89_debug, debug_413
     rx89_cur."!cursor_debug"("NEXT", "")
-  debug_407:
+  debug_413:
   rx89_fail:
     (rx89_rep, rx89_pos, $I10, $P10) = rx89_cur."!mark_fail"(0)
     lt rx89_pos, -1, rx89_done
@@ -1372,18 +1441,18 @@
     jump $I10
   rx89_done:
     rx89_cur."!cursor_fail"()
-    if_null rx89_debug, debug_408
+    if_null rx89_debug, debug_414
     rx89_cur."!cursor_debug"("FAIL", "")
-  debug_408:
+  debug_414:
     .return (rx89_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pod_comment"  :subid("26_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .const 'Sub' $P127 = "28_1283975947.19641" 
+.sub "pod_comment"  :subid("26_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .const 'Sub' $P127 = "28_1284728478.15265" 
     capture_lex $P127
     .local string rx96_tgt
     .local int rx96_pos
@@ -1405,9 +1474,9 @@
     substr rx96_tgt, rx96_tgt, rx96_off
   rx96_start:
     eq $I10, 1, rx96_restart
-    if_null rx96_debug, debug_412
+    if_null rx96_debug, debug_418
     rx96_cur."!cursor_debug"("START", "pod_comment")
-  debug_412:
+  debug_418:
     $I10 = self.'from'()
     ne $I10, -1, rxscan99_done
     goto rxscan99_scan
@@ -1420,6 +1489,7 @@
     set_addr $I10, rxscan99_loop
     rx96_cur."!mark_push"(0, rx96_pos, $I10)
   rxscan99_done:
+.annotate 'line', 53
   # rxanchor bol
     eq rx96_pos, 0, rxanchor100_done
     ge rx96_pos, rx96_eos, rx96_fail
@@ -1451,8 +1521,10 @@
     ne $I11, 61, rx96_fail
     add rx96_pos, 1
   alt102_0:
+.annotate 'line', 54
     set_addr $I10, alt102_1
     rx96_cur."!mark_push"(0, rx96_pos, $I10)
+.annotate 'line', 55
   # rx literal  "begin"
     add $I11, rx96_pos, 5
     gt $I11, rx96_eos, rx96_fail
@@ -1492,6 +1564,7 @@
     is_cclass $I11, 8192, rx96_tgt, $I10
     unless $I11, rx96_fail
   alt104_0:
+.annotate 'line', 56
     set_addr $I10, alt104_1
     rx96_cur."!mark_push"(0, rx96_pos, $I10)
   # rx rxquantf105 ** 0..*
@@ -1578,10 +1651,12 @@
     find_not_cclass $I11, 65535, rx96_tgt, $I10, rx96_eos
     add rx96_pos, rx96_off, $I11
   alt104_end:
+.annotate 'line', 55
     goto alt102_end
   alt102_1:
     set_addr $I10, alt102_2
     rx96_cur."!mark_push"(0, rx96_pos, $I10)
+.annotate 'line', 57
   # rx literal  "begin"
     add $I11, rx96_pos, 5
     gt $I11, rx96_eos, rx96_fail
@@ -1613,8 +1688,10 @@
     $P10."!cursor_names"("identifier")
     rx96_pos = $P10."pos"()
   alt110_0:
+.annotate 'line', 58
     set_addr $I10, alt110_1
     rx96_cur."!mark_push"(0, rx96_pos, $I10)
+.annotate 'line', 59
   # rx rxquantf111 ** 0..*
     set_addr $I10, rxquantf111_loop
     rx96_cur."!mark_push"(0, rx96_pos, $I10)
@@ -1692,16 +1769,19 @@
     add rx96_pos, rx96_off, $I11
     goto alt110_end
   alt110_1:
+.annotate 'line', 60
   # rx subrule "panic" subtype=method negate=
     rx96_cur."!cursor_pos"(rx96_pos)
     $P10 = rx96_cur."panic"("=begin without matching =end")
     unless $P10, rx96_fail
     rx96_pos = $P10."pos"()
   alt110_end:
+.annotate 'line', 57
     goto alt102_end
   alt102_2:
     set_addr $I10, alt102_3
     rx96_cur."!mark_push"(0, rx96_pos, $I10)
+.annotate 'line', 62
   # rx literal  "begin"
     add $I11, rx96_pos, 5
     gt $I11, rx96_eos, rx96_fail
@@ -1733,6 +1813,7 @@
   rxenumcharlistq116_done:
     add rx96_pos, rx96_pos, rx96_rep
   alt117_0:
+.annotate 'line', 63
     set_addr $I10, alt117_1
     rx96_cur."!mark_push"(0, rx96_pos, $I10)
   # rxanchor eol
@@ -1765,8 +1846,10 @@
     rx96_pos = $P10."pos"()
   alt117_end:
   alt119_0:
+.annotate 'line', 64
     set_addr $I10, alt119_1
     rx96_cur."!mark_push"(0, rx96_pos, $I10)
+.annotate 'line', 65
   # rx rxquantf120 ** 0..*
     set_addr $I10, rxquantf120_loop
     rx96_cur."!mark_push"(0, rx96_pos, $I10)
@@ -1823,16 +1906,19 @@
     add rx96_pos, rx96_off, $I11
     goto alt119_end
   alt119_1:
+.annotate 'line', 66
   # rx subrule "panic" subtype=method negate=
     rx96_cur."!cursor_pos"(rx96_pos)
     $P10 = rx96_cur."panic"("=begin without matching =end")
     unless $P10, rx96_fail
     rx96_pos = $P10."pos"()
   alt119_end:
+.annotate 'line', 62
     goto alt102_end
   alt102_3:
     set_addr $I10, alt102_4
     rx96_cur."!mark_push"(0, rx96_pos, $I10)
+.annotate 'line', 68
   # rx subrule "identifier" subtype=capture negate=
     rx96_cur."!cursor_pos"(rx96_pos)
     $P10 = rx96_cur."identifier"()
@@ -1840,6 +1926,7 @@
     rx96_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
     rx96_pos = $P10."pos"()
+.annotate 'line', 69
   # rx rxquantf123 ** 0..*
     set_addr $I10, rxquantf123_loop
     rx96_cur."!mark_push"(0, rx96_pos, $I10)
@@ -1861,13 +1948,15 @@
   rxanchor125_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx96_cur."!cursor_pos"(rx96_pos)
-    .const 'Sub' $P127 = "28_1283975947.19641" 
+    .const 'Sub' $P127 = "28_1284728478.15265" 
     capture_lex $P127
     $P10 = rx96_cur."before"($P127)
     unless $P10, rx96_fail
+.annotate 'line', 68
     goto alt102_end
   alt102_4:
   alt133_0:
+.annotate 'line', 75
     set_addr $I10, alt133_1
     rx96_cur."!mark_push"(0, rx96_pos, $I10)
   # rx charclass s
@@ -1884,21 +1973,24 @@
     unless $P10, rx96_fail
     rx96_pos = $P10."pos"()
   alt133_end:
+.annotate 'line', 76
   # rx charclass_q N r 0..-1
     sub $I10, rx96_pos, rx96_off
     find_cclass $I11, 4096, rx96_tgt, $I10, rx96_eos
     add rx96_pos, rx96_off, $I11
   alt102_end:
+.annotate 'line', 52
   # rx pass
     rx96_cur."!cursor_pass"(rx96_pos, "pod_comment")
-    if_null rx96_debug, debug_417
+    if_null rx96_debug, debug_423
     rx96_cur."!cursor_debug"("PASS", "pod_comment", " at pos=", rx96_pos)
-  debug_417:
+  debug_423:
     .return (rx96_cur)
   rx96_restart:
-    if_null rx96_debug, debug_418
+.annotate 'line', 4
+    if_null rx96_debug, debug_424
     rx96_cur."!cursor_debug"("NEXT", "pod_comment")
-  debug_418:
+  debug_424:
   rx96_fail:
     (rx96_rep, rx96_pos, $I10, $P10) = rx96_cur."!mark_fail"(0)
     lt rx96_pos, -1, rx96_done
@@ -1906,17 +1998,17 @@
     jump $I10
   rx96_done:
     rx96_cur."!cursor_fail"()
-    if_null rx96_debug, debug_419
+    if_null rx96_debug, debug_425
     rx96_cur."!cursor_debug"("FAIL", "pod_comment")
-  debug_419:
+  debug_425:
     .return (rx96_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment"  :subid("27_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__pod_comment"  :subid("27_1284728478.15265") :method
+.annotate 'line', 4
     new $P98, "ResizablePMCArray"
     push $P98, ""
     .return ($P98)
@@ -1924,8 +2016,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block126"  :anon :subid("28_1283975947.19641") :method :outer("26_1283975947.19641")
-.annotate 'line', 0
+.sub "_block126"  :anon :subid("28_1284728478.15265") :method :outer("26_1284728478.15265")
+.annotate 'line', 69
     .local string rx128_tgt
     .local int rx128_pos
     .local int rx128_off
@@ -1946,9 +2038,9 @@
     substr rx128_tgt, rx128_tgt, rx128_off
   rx128_start:
     eq $I10, 1, rx128_restart
-    if_null rx128_debug, debug_413
+    if_null rx128_debug, debug_419
     rx128_cur."!cursor_debug"("START", "")
-  debug_413:
+  debug_419:
     $I10 = self.'from'()
     ne $I10, -1, rxscan129_done
     goto rxscan129_scan
@@ -1979,6 +2071,7 @@
   alt131_0:
     set_addr $I10, alt131_1
     rx128_cur."!mark_push"(0, rx128_pos, $I10)
+.annotate 'line', 70
   # rx literal  "="
     add $I11, rx128_pos, 1
     gt $I11, rx128_eos, rx128_fail
@@ -1986,10 +2079,12 @@
     ord $I11, rx128_tgt, $I11
     ne $I11, 61, rx128_fail
     add rx128_pos, 1
+.annotate 'line', 72
   # rx rxquantr132 ** 0..1
     set_addr $I10, rxquantr132_done
     rx128_cur."!mark_push"(0, rx128_pos, $I10)
   rxquantr132_loop:
+.annotate 'line', 71
   # rx literal  "cut"
     add $I11, rx128_pos, 3
     gt $I11, rx128_eos, rx128_fail
@@ -2005,6 +2100,7 @@
     dec $I10
     is_cclass $I11, 8192, rx128_tgt, $I10
     unless $I11, rx128_fail
+.annotate 'line', 72
   # rx subrule "panic" subtype=method negate=
     rx128_cur."!cursor_pos"(rx128_pos)
     $P10 = rx128_cur."panic"("Obsolete pod format, please use =begin/=end instead")
@@ -2013,8 +2109,10 @@
     set_addr $I10, rxquantr132_done
     (rx128_rep) = rx128_cur."!mark_commit"($I10)
   rxquantr132_done:
+.annotate 'line', 69
     goto alt131_end
   alt131_1:
+.annotate 'line', 73
   # rx charclass nl
     ge rx128_pos, rx128_eos, rx128_fail
     sub $I10, rx128_pos, rx128_off
@@ -2025,16 +2123,17 @@
     add rx128_pos, $I11
     inc rx128_pos
   alt131_end:
+.annotate 'line', 69
   # rx pass
     rx128_cur."!cursor_pass"(rx128_pos, "")
-    if_null rx128_debug, debug_414
+    if_null rx128_debug, debug_420
     rx128_cur."!cursor_debug"("PASS", "", " at pos=", rx128_pos)
-  debug_414:
+  debug_420:
     .return (rx128_cur)
   rx128_restart:
-    if_null rx128_debug, debug_415
+    if_null rx128_debug, debug_421
     rx128_cur."!cursor_debug"("NEXT", "")
-  debug_415:
+  debug_421:
   rx128_fail:
     (rx128_rep, rx128_pos, $I10, $P10) = rx128_cur."!mark_fail"(0)
     lt rx128_pos, -1, rx128_done
@@ -2042,17 +2141,17 @@
     jump $I10
   rx128_done:
     rx128_cur."!cursor_fail"()
-    if_null rx128_debug, debug_416
+    if_null rx128_debug, debug_422
     rx128_cur."!cursor_debug"("FAIL", "")
-  debug_416:
+  debug_422:
     .return (rx128_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "comp_unit"  :subid("29_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "comp_unit"  :subid("29_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx135_tgt
     .local int rx135_pos
     .local int rx135_off
@@ -2073,9 +2172,9 @@
     substr rx135_tgt, rx135_tgt, rx135_off
   rx135_start:
     eq $I10, 1, rx135_restart
-    if_null rx135_debug, debug_420
+    if_null rx135_debug, debug_426
     rx135_cur."!cursor_debug"("START", "comp_unit")
-  debug_420:
+  debug_426:
     $I10 = self.'from'()
     ne $I10, -1, rxscan139_done
     goto rxscan139_scan
@@ -2088,16 +2187,19 @@
     set_addr $I10, rxscan139_loop
     rx135_cur."!mark_push"(0, rx135_pos, $I10)
   rxscan139_done:
+.annotate 'line', 84
   # rx subrule "newpad" subtype=method negate=
     rx135_cur."!cursor_pos"(rx135_pos)
     $P10 = rx135_cur."newpad"()
     unless $P10, rx135_fail
     rx135_pos = $P10."pos"()
+.annotate 'line', 85
   # rx subrule "outerctx" subtype=method negate=
     rx135_cur."!cursor_pos"(rx135_pos)
     $P10 = rx135_cur."outerctx"()
     unless $P10, rx135_fail
     rx135_pos = $P10."pos"()
+.annotate 'line', 86
   # rx subrule "statementlist" subtype=capture negate=
     rx135_cur."!cursor_pos"(rx135_pos)
     $P10 = rx135_cur."statementlist"()
@@ -2106,6 +2208,7 @@
     $P10."!cursor_names"("statementlist")
     rx135_pos = $P10."pos"()
   alt140_0:
+.annotate 'line', 87
     set_addr $I10, alt140_1
     rx135_cur."!mark_push"(0, rx135_pos, $I10)
   # rxanchor eos
@@ -2118,16 +2221,18 @@
     unless $P10, rx135_fail
     rx135_pos = $P10."pos"()
   alt140_end:
+.annotate 'line', 83
   # rx pass
     rx135_cur."!cursor_pass"(rx135_pos, "comp_unit")
-    if_null rx135_debug, debug_421
+    if_null rx135_debug, debug_427
     rx135_cur."!cursor_debug"("PASS", "comp_unit", " at pos=", rx135_pos)
-  debug_421:
+  debug_427:
     .return (rx135_cur)
   rx135_restart:
-    if_null rx135_debug, debug_422
+.annotate 'line', 4
+    if_null rx135_debug, debug_428
     rx135_cur."!cursor_debug"("NEXT", "comp_unit")
-  debug_422:
+  debug_428:
   rx135_fail:
     (rx135_rep, rx135_pos, $I10, $P10) = rx135_cur."!mark_fail"(0)
     lt rx135_pos, -1, rx135_done
@@ -2135,17 +2240,17 @@
     jump $I10
   rx135_done:
     rx135_cur."!cursor_fail"()
-    if_null rx135_debug, debug_423
+    if_null rx135_debug, debug_429
     rx135_cur."!cursor_debug"("FAIL", "comp_unit")
-  debug_423:
+  debug_429:
     .return (rx135_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit"  :subid("30_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__comp_unit"  :subid("30_1284728478.15265") :method
+.annotate 'line', 4
     $P137 = self."!PREFIX__!subrule"("newpad", "")
     new $P138, "ResizablePMCArray"
     push $P138, $P137
@@ -2154,8 +2259,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statementlist"  :subid("31_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "statementlist"  :subid("31_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx142_tgt
     .local int rx142_pos
     .local int rx142_off
@@ -2177,9 +2282,9 @@
     substr rx142_tgt, rx142_tgt, rx142_off
   rx142_start:
     eq $I10, 1, rx142_restart
-    if_null rx142_debug, debug_424
+    if_null rx142_debug, debug_430
     rx142_cur."!cursor_debug"("START", "statementlist")
-  debug_424:
+  debug_430:
     $I10 = self.'from'()
     ne $I10, -1, rxscan147_done
     goto rxscan147_scan
@@ -2193,8 +2298,10 @@
     rx142_cur."!mark_push"(0, rx142_pos, $I10)
   rxscan147_done:
   alt148_0:
+.annotate 'line', 90
     set_addr $I10, alt148_1
     rx142_cur."!mark_push"(0, rx142_pos, $I10)
+.annotate 'line', 91
   # rx subrule "ws" subtype=method negate=
     rx142_cur."!cursor_pos"(rx142_pos)
     $P10 = rx142_cur."ws"()
@@ -2209,6 +2316,7 @@
     rx142_pos = $P10."pos"()
     goto alt148_end
   alt148_1:
+.annotate 'line', 92
   # rx subrule "ws" subtype=method negate=
     rx142_cur."!cursor_pos"(rx142_pos)
     $P10 = rx142_cur."ws"()
@@ -2247,16 +2355,18 @@
     unless $P10, rx142_fail
     rx142_pos = $P10."pos"()
   alt148_end:
+.annotate 'line', 90
   # rx pass
     rx142_cur."!cursor_pass"(rx142_pos, "statementlist")
-    if_null rx142_debug, debug_425
+    if_null rx142_debug, debug_431
     rx142_cur."!cursor_debug"("PASS", "statementlist", " at pos=", rx142_pos)
-  debug_425:
+  debug_431:
     .return (rx142_cur)
   rx142_restart:
-    if_null rx142_debug, debug_426
+.annotate 'line', 4
+    if_null rx142_debug, debug_432
     rx142_cur."!cursor_debug"("NEXT", "statementlist")
-  debug_426:
+  debug_432:
   rx142_fail:
     (rx142_rep, rx142_pos, $I10, $P10) = rx142_cur."!mark_fail"(0)
     lt rx142_pos, -1, rx142_done
@@ -2264,17 +2374,17 @@
     jump $I10
   rx142_done:
     rx142_cur."!cursor_fail"()
-    if_null rx142_debug, debug_427
+    if_null rx142_debug, debug_433
     rx142_cur."!cursor_debug"("FAIL", "statementlist")
-  debug_427:
+  debug_433:
     .return (rx142_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist"  :subid("32_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statementlist"  :subid("32_1284728478.15265") :method
+.annotate 'line', 4
     $P144 = self."!PREFIX__!subrule"("ws", "")
     $P145 = self."!PREFIX__!subrule"("ws", "")
     new $P146, "ResizablePMCArray"
@@ -2285,9 +2395,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement"  :subid("33_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .const 'Sub' $P161 = "35_1283975947.19641" 
+.sub "statement"  :subid("33_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .const 'Sub' $P161 = "35_1284728478.15265" 
     capture_lex $P161
     .local string rx156_tgt
     .local int rx156_pos
@@ -2297,7 +2407,7 @@
     .local pmc rx156_cur
     .local pmc rx156_debug
     (rx156_cur, rx156_pos, rx156_tgt, $I10) = self."!cursor_start"()
-    rx156_cur."!cursor_caparray"("statement_mod_cond", "statement_mod_loop")
+    rx156_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
     getattribute rx156_debug, rx156_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx156_cur
     .local pmc match
@@ -2310,9 +2420,9 @@
     substr rx156_tgt, rx156_tgt, rx156_off
   rx156_start:
     eq $I10, 1, rx156_restart
-    if_null rx156_debug, debug_428
+    if_null rx156_debug, debug_434
     rx156_cur."!cursor_debug"("START", "statement")
-  debug_428:
+  debug_434:
     $I10 = self.'from'()
     ne $I10, -1, rxscan159_done
     goto rxscan159_scan
@@ -2325,15 +2435,18 @@
     set_addr $I10, rxscan159_loop
     rx156_cur."!mark_push"(0, rx156_pos, $I10)
   rxscan159_done:
+.annotate 'line', 96
   # rx subrule "before" subtype=zerowidth negate=1
     rx156_cur."!cursor_pos"(rx156_pos)
-    .const 'Sub' $P161 = "35_1283975947.19641" 
+    .const 'Sub' $P161 = "35_1284728478.15265" 
     capture_lex $P161
     $P10 = rx156_cur."before"($P161)
     if $P10, rx156_fail
   alt165_0:
+.annotate 'line', 97
     set_addr $I10, alt165_1
     rx156_cur."!mark_push"(0, rx156_pos, $I10)
+.annotate 'line', 98
   # rx subrule "statement_control" subtype=capture negate=
     rx156_cur."!cursor_pos"(rx156_pos)
     $P10 = rx156_cur."statement_control"()
@@ -2343,6 +2456,7 @@
     rx156_pos = $P10."pos"()
     goto alt165_end
   alt165_1:
+.annotate 'line', 99
   # rx subrule "EXPR" subtype=capture negate=
     rx156_cur."!cursor_pos"(rx156_pos)
     $P10 = rx156_cur."EXPR"()
@@ -2355,13 +2469,16 @@
     $P10 = rx156_cur."ws"()
     unless $P10, rx156_fail
     rx156_pos = $P10."pos"()
+.annotate 'line', 104
   # rx rxquantr166 ** 0..1
     set_addr $I10, rxquantr166_done
     rx156_cur."!mark_push"(0, rx156_pos, $I10)
   rxquantr166_loop:
   alt167_0:
+.annotate 'line', 100
     set_addr $I10, alt167_1
     rx156_cur."!mark_push"(0, rx156_pos, $I10)
+.annotate 'line', 101
   # rx subrule "MARKED" subtype=zerowidth negate=
     rx156_cur."!cursor_pos"(rx156_pos)
     $P10 = rx156_cur."MARKED"("endstmt")
@@ -2370,6 +2487,7 @@
   alt167_1:
     set_addr $I10, alt167_2
     rx156_cur."!mark_push"(0, rx156_pos, $I10)
+.annotate 'line', 102
   # rx subrule "statement_mod_cond" subtype=capture negate=
     rx156_cur."!cursor_pos"(rx156_pos)
     $P10 = rx156_cur."statement_mod_cond"()
@@ -2399,6 +2517,7 @@
   rxquantr168_done:
     goto alt167_end
   alt167_2:
+.annotate 'line', 103
   # rx subrule "statement_mod_loop" subtype=capture negate=
     rx156_cur."!cursor_pos"(rx156_pos)
     $P10 = rx156_cur."statement_mod_loop"()
@@ -2407,20 +2526,23 @@
     $P10."!cursor_names"("statement_mod_loop")
     rx156_pos = $P10."pos"()
   alt167_end:
+.annotate 'line', 104
     set_addr $I10, rxquantr166_done
     (rx156_rep) = rx156_cur."!mark_commit"($I10)
   rxquantr166_done:
   alt165_end:
+.annotate 'line', 95
   # rx pass
     rx156_cur."!cursor_pass"(rx156_pos, "statement")
-    if_null rx156_debug, debug_433
+    if_null rx156_debug, debug_439
     rx156_cur."!cursor_debug"("PASS", "statement", " at pos=", rx156_pos)
-  debug_433:
+  debug_439:
     .return (rx156_cur)
   rx156_restart:
-    if_null rx156_debug, debug_434
+.annotate 'line', 4
+    if_null rx156_debug, debug_440
     rx156_cur."!cursor_debug"("NEXT", "statement")
-  debug_434:
+  debug_440:
   rx156_fail:
     (rx156_rep, rx156_pos, $I10, $P10) = rx156_cur."!mark_fail"(0)
     lt rx156_pos, -1, rx156_done
@@ -2428,17 +2550,17 @@
     jump $I10
   rx156_done:
     rx156_cur."!cursor_fail"()
-    if_null rx156_debug, debug_435
+    if_null rx156_debug, debug_441
     rx156_cur."!cursor_debug"("FAIL", "statement")
-  debug_435:
+  debug_441:
     .return (rx156_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement"  :subid("34_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement"  :subid("34_1284728478.15265") :method
+.annotate 'line', 4
     new $P158, "ResizablePMCArray"
     push $P158, ""
     .return ($P158)
@@ -2446,8 +2568,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block160"  :anon :subid("35_1283975947.19641") :method :outer("33_1283975947.19641")
-.annotate 'line', 0
+.sub "_block160"  :anon :subid("35_1284728478.15265") :method :outer("33_1284728478.15265")
+.annotate 'line', 96
     .local string rx162_tgt
     .local int rx162_pos
     .local int rx162_off
@@ -2468,9 +2590,9 @@
     substr rx162_tgt, rx162_tgt, rx162_off
   rx162_start:
     eq $I10, 1, rx162_restart
-    if_null rx162_debug, debug_429
+    if_null rx162_debug, debug_435
     rx162_cur."!cursor_debug"("START", "")
-  debug_429:
+  debug_435:
     $I10 = self.'from'()
     ne $I10, -1, rxscan163_done
     goto rxscan163_scan
@@ -2500,14 +2622,14 @@
   alt164_end:
   # rx pass
     rx162_cur."!cursor_pass"(rx162_pos, "")
-    if_null rx162_debug, debug_430
+    if_null rx162_debug, debug_436
     rx162_cur."!cursor_debug"("PASS", "", " at pos=", rx162_pos)
-  debug_430:
+  debug_436:
     .return (rx162_cur)
   rx162_restart:
-    if_null rx162_debug, debug_431
+    if_null rx162_debug, debug_437
     rx162_cur."!cursor_debug"("NEXT", "")
-  debug_431:
+  debug_437:
   rx162_fail:
     (rx162_rep, rx162_pos, $I10, $P10) = rx162_cur."!mark_fail"(0)
     lt rx162_pos, -1, rx162_done
@@ -2515,17 +2637,17 @@
     jump $I10
   rx162_done:
     rx162_cur."!cursor_fail"()
-    if_null rx162_debug, debug_432
+    if_null rx162_debug, debug_438
     rx162_cur."!cursor_debug"("FAIL", "")
-  debug_432:
+  debug_438:
     .return (rx162_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "eat_terminator"  :subid("36_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "eat_terminator"  :subid("36_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx171_tgt
     .local int rx171_pos
     .local int rx171_off
@@ -2546,9 +2668,9 @@
     substr rx171_tgt, rx171_tgt, rx171_off
   rx171_start:
     eq $I10, 1, rx171_restart
-    if_null rx171_debug, debug_436
+    if_null rx171_debug, debug_442
     rx171_cur."!cursor_debug"("START", "eat_terminator")
-  debug_436:
+  debug_442:
     $I10 = self.'from'()
     ne $I10, -1, rxscan174_done
     goto rxscan174_scan
@@ -2562,8 +2684,10 @@
     rx171_cur."!mark_push"(0, rx171_pos, $I10)
   rxscan174_done:
   alt175_0:
+.annotate 'line', 108
     set_addr $I10, alt175_1
     rx171_cur."!mark_push"(0, rx171_pos, $I10)
+.annotate 'line', 109
   # rx literal  ";"
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
@@ -2575,6 +2699,7 @@
   alt175_1:
     set_addr $I10, alt175_2
     rx171_cur."!mark_push"(0, rx171_pos, $I10)
+.annotate 'line', 110
   # rx subrule "MARKED" subtype=zerowidth negate=
     rx171_cur."!cursor_pos"(rx171_pos)
     $P10 = rx171_cur."MARKED"("endstmt")
@@ -2583,25 +2708,29 @@
   alt175_2:
     set_addr $I10, alt175_3
     rx171_cur."!mark_push"(0, rx171_pos, $I10)
+.annotate 'line', 111
   # rx subrule "terminator" subtype=zerowidth negate=
     rx171_cur."!cursor_pos"(rx171_pos)
     $P10 = rx171_cur."terminator"()
     unless $P10, rx171_fail
     goto alt175_end
   alt175_3:
+.annotate 'line', 112
   # rxanchor eos
     ne rx171_pos, rx171_eos, rx171_fail
   alt175_end:
+.annotate 'line', 108
   # rx pass
     rx171_cur."!cursor_pass"(rx171_pos, "eat_terminator")
-    if_null rx171_debug, debug_437
+    if_null rx171_debug, debug_443
     rx171_cur."!cursor_debug"("PASS", "eat_terminator", " at pos=", rx171_pos)
-  debug_437:
+  debug_443:
     .return (rx171_cur)
   rx171_restart:
-    if_null rx171_debug, debug_438
+.annotate 'line', 4
+    if_null rx171_debug, debug_444
     rx171_cur."!cursor_debug"("NEXT", "eat_terminator")
-  debug_438:
+  debug_444:
   rx171_fail:
     (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0)
     lt rx171_pos, -1, rx171_done
@@ -2609,17 +2738,17 @@
     jump $I10
   rx171_done:
     rx171_cur."!cursor_fail"()
-    if_null rx171_debug, debug_439
+    if_null rx171_debug, debug_445
     rx171_cur."!cursor_debug"("FAIL", "eat_terminator")
-  debug_439:
+  debug_445:
     .return (rx171_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator"  :subid("37_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__eat_terminator"  :subid("37_1284728478.15265") :method
+.annotate 'line', 4
     new $P173, "ResizablePMCArray"
     push $P173, ""
     push $P173, ""
@@ -2630,8 +2759,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "xblock"  :subid("38_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "xblock"  :subid("38_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx177_tgt
     .local int rx177_pos
     .local int rx177_off
@@ -2652,9 +2781,9 @@
     substr rx177_tgt, rx177_tgt, rx177_off
   rx177_start:
     eq $I10, 1, rx177_restart
-    if_null rx177_debug, debug_440
+    if_null rx177_debug, debug_446
     rx177_cur."!cursor_debug"("START", "xblock")
-  debug_440:
+  debug_446:
     $I10 = self.'from'()
     ne $I10, -1, rxscan181_done
     goto rxscan181_scan
@@ -2667,6 +2796,7 @@
     set_addr $I10, rxscan181_loop
     rx177_cur."!mark_push"(0, rx177_pos, $I10)
   rxscan181_done:
+.annotate 'line', 116
   # rx subrule "EXPR" subtype=capture negate=
     rx177_cur."!cursor_pos"(rx177_pos)
     $P10 = rx177_cur."EXPR"()
@@ -2686,16 +2816,18 @@
     rx177_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pblock")
     rx177_pos = $P10."pos"()
+.annotate 'line', 115
   # rx pass
     rx177_cur."!cursor_pass"(rx177_pos, "xblock")
-    if_null rx177_debug, debug_441
+    if_null rx177_debug, debug_447
     rx177_cur."!cursor_debug"("PASS", "xblock", " at pos=", rx177_pos)
-  debug_441:
+  debug_447:
     .return (rx177_cur)
   rx177_restart:
-    if_null rx177_debug, debug_442
+.annotate 'line', 4
+    if_null rx177_debug, debug_448
     rx177_cur."!cursor_debug"("NEXT", "xblock")
-  debug_442:
+  debug_448:
   rx177_fail:
     (rx177_rep, rx177_pos, $I10, $P10) = rx177_cur."!mark_fail"(0)
     lt rx177_pos, -1, rx177_done
@@ -2703,17 +2835,17 @@
     jump $I10
   rx177_done:
     rx177_cur."!cursor_fail"()
-    if_null rx177_debug, debug_443
+    if_null rx177_debug, debug_449
     rx177_cur."!cursor_debug"("FAIL", "xblock")
-  debug_443:
+  debug_449:
     .return (rx177_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__xblock"  :subid("39_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__xblock"  :subid("39_1284728478.15265") :method
+.annotate 'line', 4
     $P179 = self."!PREFIX__!subrule"("EXPR", "")
     new $P180, "ResizablePMCArray"
     push $P180, $P179
@@ -2722,8 +2854,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pblock"  :subid("40_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "pblock"  :subid("40_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx183_tgt
     .local int rx183_pos
     .local int rx183_off
@@ -2744,9 +2876,9 @@
     substr rx183_tgt, rx183_tgt, rx183_off
   rx183_start:
     eq $I10, 1, rx183_restart
-    if_null rx183_debug, debug_444
+    if_null rx183_debug, debug_450
     rx183_cur."!cursor_debug"("START", "pblock")
-  debug_444:
+  debug_450:
     $I10 = self.'from'()
     ne $I10, -1, rxscan188_done
     goto rxscan188_scan
@@ -2760,18 +2892,22 @@
     rx183_cur."!mark_push"(0, rx183_pos, $I10)
   rxscan188_done:
   alt189_0:
+.annotate 'line', 119
     set_addr $I10, alt189_1
     rx183_cur."!mark_push"(0, rx183_pos, $I10)
+.annotate 'line', 120
   # rx subrule "lambda" subtype=method negate=
     rx183_cur."!cursor_pos"(rx183_pos)
     $P10 = rx183_cur."lambda"()
     unless $P10, rx183_fail
     rx183_pos = $P10."pos"()
+.annotate 'line', 121
   # rx subrule "newpad" subtype=method negate=
     rx183_cur."!cursor_pos"(rx183_pos)
     $P10 = rx183_cur."newpad"()
     unless $P10, rx183_fail
     rx183_pos = $P10."pos"()
+.annotate 'line', 122
   # rx subrule "signature" subtype=capture negate=
     rx183_cur."!cursor_pos"(rx183_pos)
     $P10 = rx183_cur."signature"()
@@ -2779,6 +2915,7 @@
     rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
     rx183_pos = $P10."pos"()
+.annotate 'line', 123
   # rx subrule "blockoid" subtype=capture negate=
     rx183_cur."!cursor_pos"(rx183_pos)
     $P10 = rx183_cur."blockoid"()
@@ -2786,21 +2923,24 @@
     rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
     rx183_pos = $P10."pos"()
+.annotate 'line', 120
     goto alt189_end
   alt189_1:
     set_addr $I10, alt189_2
     rx183_cur."!mark_push"(0, rx183_pos, $I10)
+.annotate 'line', 124
   # rx enumcharlist negate=0 zerowidth
-    ge rx183_pos, rx183_eos, rx183_fail
     sub $I10, rx183_pos, rx183_off
     substr $S10, rx183_tgt, $I10, 1
     index $I11, "{", $S10
     lt $I11, 0, rx183_fail
+.annotate 'line', 125
   # rx subrule "newpad" subtype=method negate=
     rx183_cur."!cursor_pos"(rx183_pos)
     $P10 = rx183_cur."newpad"()
     unless $P10, rx183_fail
     rx183_pos = $P10."pos"()
+.annotate 'line', 126
   # rx subrule "blockoid" subtype=capture negate=
     rx183_cur."!cursor_pos"(rx183_pos)
     $P10 = rx183_cur."blockoid"()
@@ -2808,24 +2948,28 @@
     rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
     rx183_pos = $P10."pos"()
+.annotate 'line', 124
     goto alt189_end
   alt189_2:
+.annotate 'line', 127
   # rx subrule "panic" subtype=method negate=
     rx183_cur."!cursor_pos"(rx183_pos)
     $P10 = rx183_cur."panic"("Missing block")
     unless $P10, rx183_fail
     rx183_pos = $P10."pos"()
   alt189_end:
+.annotate 'line', 119
   # rx pass
     rx183_cur."!cursor_pass"(rx183_pos, "pblock")
-    if_null rx183_debug, debug_445
+    if_null rx183_debug, debug_451
     rx183_cur."!cursor_debug"("PASS", "pblock", " at pos=", rx183_pos)
-  debug_445:
+  debug_451:
     .return (rx183_cur)
   rx183_restart:
-    if_null rx183_debug, debug_446
+.annotate 'line', 4
+    if_null rx183_debug, debug_452
     rx183_cur."!cursor_debug"("NEXT", "pblock")
-  debug_446:
+  debug_452:
   rx183_fail:
     (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
     lt rx183_pos, -1, rx183_done
@@ -2833,17 +2977,17 @@
     jump $I10
   rx183_done:
     rx183_cur."!cursor_fail"()
-    if_null rx183_debug, debug_447
+    if_null rx183_debug, debug_453
     rx183_cur."!cursor_debug"("FAIL", "pblock")
-  debug_447:
+  debug_453:
     .return (rx183_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock"  :subid("41_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__pblock"  :subid("41_1284728478.15265") :method
+.annotate 'line', 4
     $P185 = self."!PREFIX__!subrule"("panic", "")
     $P186 = self."!PREFIX__!subrule"("lambda", "")
     new $P187, "ResizablePMCArray"
@@ -2855,8 +2999,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "lambda"  :subid("42_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "lambda"  :subid("42_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx191_tgt
     .local int rx191_pos
     .local int rx191_off
@@ -2877,9 +3021,9 @@
     substr rx191_tgt, rx191_tgt, rx191_off
   rx191_start:
     eq $I10, 1, rx191_restart
-    if_null rx191_debug, debug_448
+    if_null rx191_debug, debug_454
     rx191_cur."!cursor_debug"("START", "lambda")
-  debug_448:
+  debug_454:
     $I10 = self.'from'()
     ne $I10, -1, rxscan194_done
     goto rxscan194_scan
@@ -2893,6 +3037,7 @@
     rx191_cur."!mark_push"(0, rx191_pos, $I10)
   rxscan194_done:
   alt195_0:
+.annotate 'line', 130
     set_addr $I10, alt195_1
     rx191_cur."!mark_push"(0, rx191_pos, $I10)
   # rx literal  "->"
@@ -2914,14 +3059,15 @@
   alt195_end:
   # rx pass
     rx191_cur."!cursor_pass"(rx191_pos, "lambda")
-    if_null rx191_debug, debug_449
+    if_null rx191_debug, debug_455
     rx191_cur."!cursor_debug"("PASS", "lambda", " at pos=", rx191_pos)
-  debug_449:
+  debug_455:
     .return (rx191_cur)
   rx191_restart:
-    if_null rx191_debug, debug_450
+.annotate 'line', 4
+    if_null rx191_debug, debug_456
     rx191_cur."!cursor_debug"("NEXT", "lambda")
-  debug_450:
+  debug_456:
   rx191_fail:
     (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0)
     lt rx191_pos, -1, rx191_done
@@ -2929,17 +3075,17 @@
     jump $I10
   rx191_done:
     rx191_cur."!cursor_fail"()
-    if_null rx191_debug, debug_451
+    if_null rx191_debug, debug_457
     rx191_cur."!cursor_debug"("FAIL", "lambda")
-  debug_451:
+  debug_457:
     .return (rx191_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda"  :subid("43_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__lambda"  :subid("43_1284728478.15265") :method
+.annotate 'line', 4
     new $P193, "ResizablePMCArray"
     push $P193, "<->"
     push $P193, "->"
@@ -2948,8 +3094,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "block"  :subid("44_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "block"  :subid("44_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx197_tgt
     .local int rx197_pos
     .local int rx197_off
@@ -2970,9 +3116,9 @@
     substr rx197_tgt, rx197_tgt, rx197_off
   rx197_start:
     eq $I10, 1, rx197_restart
-    if_null rx197_debug, debug_452
+    if_null rx197_debug, debug_458
     rx197_cur."!cursor_debug"("START", "block")
-  debug_452:
+  debug_458:
     $I10 = self.'from'()
     ne $I10, -1, rxscan201_done
     goto rxscan201_scan
@@ -2986,10 +3132,10 @@
     rx197_cur."!mark_push"(0, rx197_pos, $I10)
   rxscan201_done:
   alt202_0:
+.annotate 'line', 133
     set_addr $I10, alt202_1
     rx197_cur."!mark_push"(0, rx197_pos, $I10)
   # rx enumcharlist negate=0 zerowidth
-    ge rx197_pos, rx197_eos, rx197_fail
     sub $I10, rx197_pos, rx197_off
     substr $S10, rx197_tgt, $I10, 1
     index $I11, "{", $S10
@@ -3002,11 +3148,13 @@
     unless $P10, rx197_fail
     rx197_pos = $P10."pos"()
   alt202_end:
+.annotate 'line', 134
   # rx subrule "newpad" subtype=method negate=
     rx197_cur."!cursor_pos"(rx197_pos)
     $P10 = rx197_cur."newpad"()
     unless $P10, rx197_fail
     rx197_pos = $P10."pos"()
+.annotate 'line', 135
   # rx subrule "blockoid" subtype=capture negate=
     rx197_cur."!cursor_pos"(rx197_pos)
     $P10 = rx197_cur."blockoid"()
@@ -3014,16 +3162,18 @@
     rx197_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
     rx197_pos = $P10."pos"()
+.annotate 'line', 132
   # rx pass
     rx197_cur."!cursor_pass"(rx197_pos, "block")
-    if_null rx197_debug, debug_453
+    if_null rx197_debug, debug_459
     rx197_cur."!cursor_debug"("PASS", "block", " at pos=", rx197_pos)
-  debug_453:
+  debug_459:
     .return (rx197_cur)
   rx197_restart:
-    if_null rx197_debug, debug_454
+.annotate 'line', 4
+    if_null rx197_debug, debug_460
     rx197_cur."!cursor_debug"("NEXT", "block")
-  debug_454:
+  debug_460:
   rx197_fail:
     (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0)
     lt rx197_pos, -1, rx197_done
@@ -3031,17 +3181,17 @@
     jump $I10
   rx197_done:
     rx197_cur."!cursor_fail"()
-    if_null rx197_debug, debug_455
+    if_null rx197_debug, debug_461
     rx197_cur."!cursor_debug"("FAIL", "block")
-  debug_455:
+  debug_461:
     .return (rx197_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block"  :subid("45_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__block"  :subid("45_1284728478.15265") :method
+.annotate 'line', 4
     $P199 = self."!PREFIX__!subrule"("panic", "")
     new $P200, "ResizablePMCArray"
     push $P200, $P199
@@ -3051,8 +3201,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blockoid"  :subid("46_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "blockoid"  :subid("46_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx204_tgt
     .local int rx204_pos
     .local int rx204_off
@@ -3073,9 +3223,9 @@
     substr rx204_tgt, rx204_tgt, rx204_off
   rx204_start:
     eq $I10, 1, rx204_restart
-    if_null rx204_debug, debug_456
+    if_null rx204_debug, debug_462
     rx204_cur."!cursor_debug"("START", "blockoid")
-  debug_456:
+  debug_462:
     $I10 = self.'from'()
     ne $I10, -1, rxscan208_done
     goto rxscan208_scan
@@ -3088,11 +3238,13 @@
     set_addr $I10, rxscan208_loop
     rx204_cur."!mark_push"(0, rx204_pos, $I10)
   rxscan208_done:
+.annotate 'line', 139
   # rx subrule "finishpad" subtype=method negate=
     rx204_cur."!cursor_pos"(rx204_pos)
     $P10 = rx204_cur."finishpad"()
     unless $P10, rx204_fail
     rx204_pos = $P10."pos"()
+.annotate 'line', 140
   # rx literal  "{"
     add $I11, rx204_pos, 1
     gt $I11, rx204_eos, rx204_fail
@@ -3132,20 +3284,23 @@
     rx204_cur."!mark_push"(0, rx204_pos, $I10, $P10)
     rx204_pos = $P10."pos"()
   alt209_end:
+.annotate 'line', 141
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
     rx204_cur."!cursor_pos"(rx204_pos)
     $P10 = rx204_cur."ENDSTMT"()
     unless $P10, rx204_fail
+.annotate 'line', 138
   # rx pass
     rx204_cur."!cursor_pass"(rx204_pos, "blockoid")
-    if_null rx204_debug, debug_457
+    if_null rx204_debug, debug_463
     rx204_cur."!cursor_debug"("PASS", "blockoid", " at pos=", rx204_pos)
-  debug_457:
+  debug_463:
     .return (rx204_cur)
   rx204_restart:
-    if_null rx204_debug, debug_458
+.annotate 'line', 4
+    if_null rx204_debug, debug_464
     rx204_cur."!cursor_debug"("NEXT", "blockoid")
-  debug_458:
+  debug_464:
   rx204_fail:
     (rx204_rep, rx204_pos, $I10, $P10) = rx204_cur."!mark_fail"(0)
     lt rx204_pos, -1, rx204_done
@@ -3153,17 +3308,17 @@
     jump $I10
   rx204_done:
     rx204_cur."!cursor_fail"()
-    if_null rx204_debug, debug_459
+    if_null rx204_debug, debug_465
     rx204_cur."!cursor_debug"("FAIL", "blockoid")
-  debug_459:
+  debug_465:
     .return (rx204_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid"  :subid("47_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__blockoid"  :subid("47_1284728478.15265") :method
+.annotate 'line', 4
     $P206 = self."!PREFIX__!subrule"("finishpad", "")
     new $P207, "ResizablePMCArray"
     push $P207, $P206
@@ -3172,8 +3327,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "newpad"  :subid("48_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "newpad"  :subid("48_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx213_tgt
     .local int rx213_pos
     .local int rx213_off
@@ -3194,9 +3349,9 @@
     substr rx213_tgt, rx213_tgt, rx213_off
   rx213_start:
     eq $I10, 1, rx213_restart
-    if_null rx213_debug, debug_460
+    if_null rx213_debug, debug_466
     rx213_cur."!cursor_debug"("START", "newpad")
-  debug_460:
+  debug_466:
     $I10 = self.'from'()
     ne $I10, -1, rxscan216_done
     goto rxscan216_scan
@@ -3209,16 +3364,18 @@
     set_addr $I10, rxscan216_loop
     rx213_cur."!mark_push"(0, rx213_pos, $I10)
   rxscan216_done:
+.annotate 'line', 144
   # rx pass
     rx213_cur."!cursor_pass"(rx213_pos, "newpad")
-    if_null rx213_debug, debug_461
+    if_null rx213_debug, debug_467
     rx213_cur."!cursor_debug"("PASS", "newpad", " at pos=", rx213_pos)
-  debug_461:
+  debug_467:
     .return (rx213_cur)
   rx213_restart:
-    if_null rx213_debug, debug_462
+.annotate 'line', 4
+    if_null rx213_debug, debug_468
     rx213_cur."!cursor_debug"("NEXT", "newpad")
-  debug_462:
+  debug_468:
   rx213_fail:
     (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0)
     lt rx213_pos, -1, rx213_done
@@ -3226,17 +3383,17 @@
     jump $I10
   rx213_done:
     rx213_cur."!cursor_fail"()
-    if_null rx213_debug, debug_463
+    if_null rx213_debug, debug_469
     rx213_cur."!cursor_debug"("FAIL", "newpad")
-  debug_463:
+  debug_469:
     .return (rx213_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad"  :subid("49_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__newpad"  :subid("49_1284728478.15265") :method
+.annotate 'line', 4
     new $P215, "ResizablePMCArray"
     push $P215, ""
     .return ($P215)
@@ -3244,8 +3401,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "outerctx"  :subid("50_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "outerctx"  :subid("50_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx218_tgt
     .local int rx218_pos
     .local int rx218_off
@@ -3266,9 +3423,9 @@
     substr rx218_tgt, rx218_tgt, rx218_off
   rx218_start:
     eq $I10, 1, rx218_restart
-    if_null rx218_debug, debug_464
+    if_null rx218_debug, debug_470
     rx218_cur."!cursor_debug"("START", "outerctx")
-  debug_464:
+  debug_470:
     $I10 = self.'from'()
     ne $I10, -1, rxscan221_done
     goto rxscan221_scan
@@ -3281,16 +3438,18 @@
     set_addr $I10, rxscan221_loop
     rx218_cur."!mark_push"(0, rx218_pos, $I10)
   rxscan221_done:
+.annotate 'line', 145
   # rx pass
     rx218_cur."!cursor_pass"(rx218_pos, "outerctx")
-    if_null rx218_debug, debug_465
+    if_null rx218_debug, debug_471
     rx218_cur."!cursor_debug"("PASS", "outerctx", " at pos=", rx218_pos)
-  debug_465:
+  debug_471:
     .return (rx218_cur)
   rx218_restart:
-    if_null rx218_debug, debug_466
+.annotate 'line', 4
+    if_null rx218_debug, debug_472
     rx218_cur."!cursor_debug"("NEXT", "outerctx")
-  debug_466:
+  debug_472:
   rx218_fail:
     (rx218_rep, rx218_pos, $I10, $P10) = rx218_cur."!mark_fail"(0)
     lt rx218_pos, -1, rx218_done
@@ -3298,17 +3457,17 @@
     jump $I10
   rx218_done:
     rx218_cur."!cursor_fail"()
-    if_null rx218_debug, debug_467
+    if_null rx218_debug, debug_473
     rx218_cur."!cursor_debug"("FAIL", "outerctx")
-  debug_467:
+  debug_473:
     .return (rx218_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__outerctx"  :subid("51_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__outerctx"  :subid("51_1284728478.15265") :method
+.annotate 'line', 4
     new $P220, "ResizablePMCArray"
     push $P220, ""
     .return ($P220)
@@ -3316,8 +3475,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "finishpad"  :subid("52_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "finishpad"  :subid("52_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx223_tgt
     .local int rx223_pos
     .local int rx223_off
@@ -3338,9 +3497,9 @@
     substr rx223_tgt, rx223_tgt, rx223_off
   rx223_start:
     eq $I10, 1, rx223_restart
-    if_null rx223_debug, debug_468
+    if_null rx223_debug, debug_474
     rx223_cur."!cursor_debug"("START", "finishpad")
-  debug_468:
+  debug_474:
     $I10 = self.'from'()
     ne $I10, -1, rxscan226_done
     goto rxscan226_scan
@@ -3353,16 +3512,18 @@
     set_addr $I10, rxscan226_loop
     rx223_cur."!mark_push"(0, rx223_pos, $I10)
   rxscan226_done:
+.annotate 'line', 146
   # rx pass
     rx223_cur."!cursor_pass"(rx223_pos, "finishpad")
-    if_null rx223_debug, debug_469
+    if_null rx223_debug, debug_475
     rx223_cur."!cursor_debug"("PASS", "finishpad", " at pos=", rx223_pos)
-  debug_469:
+  debug_475:
     .return (rx223_cur)
   rx223_restart:
-    if_null rx223_debug, debug_470
+.annotate 'line', 4
+    if_null rx223_debug, debug_476
     rx223_cur."!cursor_debug"("NEXT", "finishpad")
-  debug_470:
+  debug_476:
   rx223_fail:
     (rx223_rep, rx223_pos, $I10, $P10) = rx223_cur."!mark_fail"(0)
     lt rx223_pos, -1, rx223_done
@@ -3370,17 +3531,17 @@
     jump $I10
   rx223_done:
     rx223_cur."!cursor_fail"()
-    if_null rx223_debug, debug_471
+    if_null rx223_debug, debug_477
     rx223_cur."!cursor_debug"("FAIL", "finishpad")
-  debug_471:
+  debug_477:
     .return (rx223_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad"  :subid("53_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__finishpad"  :subid("53_1284728478.15265") :method
+.annotate 'line', 4
     new $P225, "ResizablePMCArray"
     push $P225, ""
     .return ($P225)
@@ -3388,24 +3549,24 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator"  :subid("54_1283975947.19641") :method
-.annotate 'line', 0
+.sub "terminator"  :subid("54_1284728478.15265") :method
+.annotate 'line', 148
     $P228 = self."!protoregex"("terminator")
     .return ($P228)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator"  :subid("55_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__terminator"  :subid("55_1284728478.15265") :method
+.annotate 'line', 148
     $P230 = self."!PREFIX__!protoregex"("terminator")
     .return ($P230)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>"  :subid("56_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "terminator:sym<;>"  :subid("56_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx232_tgt
     .local int rx232_pos
     .local int rx232_off
@@ -3426,9 +3587,9 @@
     substr rx232_tgt, rx232_tgt, rx232_off
   rx232_start:
     eq $I10, 1, rx232_restart
-    if_null rx232_debug, debug_472
+    if_null rx232_debug, debug_478
     rx232_cur."!cursor_debug"("START", "terminator:sym<;>")
-  debug_472:
+  debug_478:
     $I10 = self.'from'()
     ne $I10, -1, rxscan235_done
     goto rxscan235_scan
@@ -3441,22 +3602,23 @@
     set_addr $I10, rxscan235_loop
     rx232_cur."!mark_push"(0, rx232_pos, $I10)
   rxscan235_done:
+.annotate 'line', 150
   # rx enumcharlist negate=0 zerowidth
-    ge rx232_pos, rx232_eos, rx232_fail
     sub $I10, rx232_pos, rx232_off
     substr $S10, rx232_tgt, $I10, 1
     index $I11, ";", $S10
     lt $I11, 0, rx232_fail
   # rx pass
     rx232_cur."!cursor_pass"(rx232_pos, "terminator:sym<;>")
-    if_null rx232_debug, debug_473
+    if_null rx232_debug, debug_479
     rx232_cur."!cursor_debug"("PASS", "terminator:sym<;>", " at pos=", rx232_pos)
-  debug_473:
+  debug_479:
     .return (rx232_cur)
   rx232_restart:
-    if_null rx232_debug, debug_474
+.annotate 'line', 4
+    if_null rx232_debug, debug_480
     rx232_cur."!cursor_debug"("NEXT", "terminator:sym<;>")
-  debug_474:
+  debug_480:
   rx232_fail:
     (rx232_rep, rx232_pos, $I10, $P10) = rx232_cur."!mark_fail"(0)
     lt rx232_pos, -1, rx232_done
@@ -3464,17 +3626,17 @@
     jump $I10
   rx232_done:
     rx232_cur."!cursor_fail"()
-    if_null rx232_debug, debug_475
+    if_null rx232_debug, debug_481
     rx232_cur."!cursor_debug"("FAIL", "terminator:sym<;>")
-  debug_475:
+  debug_481:
     .return (rx232_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>"  :subid("57_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__terminator:sym<;>"  :subid("57_1284728478.15265") :method
+.annotate 'line', 4
     new $P234, "ResizablePMCArray"
     push $P234, ";"
     .return ($P234)
@@ -3482,8 +3644,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>"  :subid("58_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "terminator:sym<}>"  :subid("58_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx237_tgt
     .local int rx237_pos
     .local int rx237_off
@@ -3504,9 +3666,9 @@
     substr rx237_tgt, rx237_tgt, rx237_off
   rx237_start:
     eq $I10, 1, rx237_restart
-    if_null rx237_debug, debug_476
+    if_null rx237_debug, debug_482
     rx237_cur."!cursor_debug"("START", "terminator:sym<}>")
-  debug_476:
+  debug_482:
     $I10 = self.'from'()
     ne $I10, -1, rxscan240_done
     goto rxscan240_scan
@@ -3519,22 +3681,23 @@
     set_addr $I10, rxscan240_loop
     rx237_cur."!mark_push"(0, rx237_pos, $I10)
   rxscan240_done:
+.annotate 'line', 151
   # rx enumcharlist negate=0 zerowidth
-    ge rx237_pos, rx237_eos, rx237_fail
     sub $I10, rx237_pos, rx237_off
     substr $S10, rx237_tgt, $I10, 1
     index $I11, "}", $S10
     lt $I11, 0, rx237_fail
   # rx pass
     rx237_cur."!cursor_pass"(rx237_pos, "terminator:sym<}>")
-    if_null rx237_debug, debug_477
+    if_null rx237_debug, debug_483
     rx237_cur."!cursor_debug"("PASS", "terminator:sym<}>", " at pos=", rx237_pos)
-  debug_477:
+  debug_483:
     .return (rx237_cur)
   rx237_restart:
-    if_null rx237_debug, debug_478
+.annotate 'line', 4
+    if_null rx237_debug, debug_484
     rx237_cur."!cursor_debug"("NEXT", "terminator:sym<}>")
-  debug_478:
+  debug_484:
   rx237_fail:
     (rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0)
     lt rx237_pos, -1, rx237_done
@@ -3542,17 +3705,17 @@
     jump $I10
   rx237_done:
     rx237_cur."!cursor_fail"()
-    if_null rx237_debug, debug_479
+    if_null rx237_debug, debug_485
     rx237_cur."!cursor_debug"("FAIL", "terminator:sym<}>")
-  debug_479:
+  debug_485:
     .return (rx237_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>"  :subid("59_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__terminator:sym<}>"  :subid("59_1284728478.15265") :method
+.annotate 'line', 4
     new $P239, "ResizablePMCArray"
     push $P239, "}"
     .return ($P239)
@@ -3560,24 +3723,24 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control"  :subid("60_1283975947.19641") :method
-.annotate 'line', 0
+.sub "statement_control"  :subid("60_1284728478.15265") :method
+.annotate 'line', 155
     $P242 = self."!protoregex"("statement_control")
     .return ($P242)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control"  :subid("61_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_control"  :subid("61_1284728478.15265") :method
+.annotate 'line', 155
     $P244 = self."!PREFIX__!protoregex"("statement_control")
     .return ($P244)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<if>"  :subid("62_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "statement_control:sym<if>"  :subid("62_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx246_tgt
     .local int rx246_pos
     .local int rx246_off
@@ -3599,9 +3762,9 @@
     substr rx246_tgt, rx246_tgt, rx246_off
   rx246_start:
     eq $I10, 1, rx246_restart
-    if_null rx246_debug, debug_480
+    if_null rx246_debug, debug_486
     rx246_cur."!cursor_debug"("START", "statement_control:sym<if>")
-  debug_480:
+  debug_486:
     $I10 = self.'from'()
     ne $I10, -1, rxscan249_done
     goto rxscan249_scan
@@ -3614,6 +3777,7 @@
     set_addr $I10, rxscan249_loop
     rx246_cur."!mark_push"(0, rx246_pos, $I10)
   rxscan249_done:
+.annotate 'line', 158
   # rx subcapture "sym"
     set_addr $I10, rxcap_250_fail
     rx246_cur."!mark_push"(0, rx246_pos, $I10)
@@ -3646,6 +3810,7 @@
     $P10 = rx246_cur."ws"()
     unless $P10, rx246_fail
     rx246_pos = $P10."pos"()
+.annotate 'line', 159
   # rx subrule "xblock" subtype=capture negate=
     rx246_cur."!cursor_pos"(rx246_pos)
     $P10 = rx246_cur."xblock"()
@@ -3658,6 +3823,7 @@
     $P10 = rx246_cur."ws"()
     unless $P10, rx246_fail
     rx246_pos = $P10."pos"()
+.annotate 'line', 160
   # rx rxquantr253 ** 0..*
     set_addr $I10, rxquantr253_done
     rx246_cur."!mark_push"(0, rx246_pos, $I10)
@@ -3708,6 +3874,7 @@
     $P10 = rx246_cur."ws"()
     unless $P10, rx246_fail
     rx246_pos = $P10."pos"()
+.annotate 'line', 161
   # rx rxquantr258 ** 0..1
     set_addr $I10, rxquantr258_done
     rx246_cur."!mark_push"(0, rx246_pos, $I10)
@@ -3755,16 +3922,18 @@
     $P10 = rx246_cur."ws"()
     unless $P10, rx246_fail
     rx246_pos = $P10."pos"()
+.annotate 'line', 157
   # rx pass
     rx246_cur."!cursor_pass"(rx246_pos, "statement_control:sym<if>")
-    if_null rx246_debug, debug_481
+    if_null rx246_debug, debug_487
     rx246_cur."!cursor_debug"("PASS", "statement_control:sym<if>", " at pos=", rx246_pos)
-  debug_481:
+  debug_487:
     .return (rx246_cur)
   rx246_restart:
-    if_null rx246_debug, debug_482
+.annotate 'line', 4
+    if_null rx246_debug, debug_488
     rx246_cur."!cursor_debug"("NEXT", "statement_control:sym<if>")
-  debug_482:
+  debug_488:
   rx246_fail:
     (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
     lt rx246_pos, -1, rx246_done
@@ -3772,17 +3941,17 @@
     jump $I10
   rx246_done:
     rx246_cur."!cursor_fail"()
-    if_null rx246_debug, debug_483
+    if_null rx246_debug, debug_489
     rx246_cur."!cursor_debug"("FAIL", "statement_control:sym<if>")
-  debug_483:
+  debug_489:
     .return (rx246_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>"  :subid("63_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_control:sym<if>"  :subid("63_1284728478.15265") :method
+.annotate 'line', 4
     new $P248, "ResizablePMCArray"
     push $P248, "if"
     .return ($P248)
@@ -3790,9 +3959,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<unless>"  :subid("64_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .const 'Sub' $P274 = "66_1283975947.19641" 
+.sub "statement_control:sym<unless>"  :subid("64_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .const 'Sub' $P274 = "66_1284728478.15265" 
     capture_lex $P274
     .local string rx264_tgt
     .local int rx264_pos
@@ -3814,9 +3983,9 @@
     substr rx264_tgt, rx264_tgt, rx264_off
   rx264_start:
     eq $I10, 1, rx264_restart
-    if_null rx264_debug, debug_484
+    if_null rx264_debug, debug_490
     rx264_cur."!cursor_debug"("START", "statement_control:sym<unless>")
-  debug_484:
+  debug_490:
     $I10 = self.'from'()
     ne $I10, -1, rxscan267_done
     goto rxscan267_scan
@@ -3829,6 +3998,7 @@
     set_addr $I10, rxscan267_loop
     rx264_cur."!mark_push"(0, rx264_pos, $I10)
   rxscan267_done:
+.annotate 'line', 165
   # rx subcapture "sym"
     set_addr $I10, rxcap_268_fail
     rx264_cur."!mark_push"(0, rx264_pos, $I10)
@@ -3861,6 +4031,7 @@
     $P10 = rx264_cur."ws"()
     unless $P10, rx264_fail
     rx264_pos = $P10."pos"()
+.annotate 'line', 166
   # rx subrule "xblock" subtype=capture negate=
     rx264_cur."!cursor_pos"(rx264_pos)
     $P10 = rx264_cur."xblock"()
@@ -3874,6 +4045,7 @@
     unless $P10, rx264_fail
     rx264_pos = $P10."pos"()
   alt271_0:
+.annotate 'line', 167
     set_addr $I10, alt271_1
     rx264_cur."!mark_push"(0, rx264_pos, $I10)
   # rx subrule "ws" subtype=method negate=
@@ -3883,7 +4055,7 @@
     rx264_pos = $P10."pos"()
   # rx subrule "before" subtype=zerowidth negate=1
     rx264_cur."!cursor_pos"(rx264_pos)
-    .const 'Sub' $P274 = "66_1283975947.19641" 
+    .const 'Sub' $P274 = "66_1284728478.15265" 
     capture_lex $P274
     $P10 = rx264_cur."before"($P274)
     if $P10, rx264_fail
@@ -3915,16 +4087,18 @@
     $P10 = rx264_cur."ws"()
     unless $P10, rx264_fail
     rx264_pos = $P10."pos"()
+.annotate 'line', 164
   # rx pass
     rx264_cur."!cursor_pass"(rx264_pos, "statement_control:sym<unless>")
-    if_null rx264_debug, debug_489
+    if_null rx264_debug, debug_495
     rx264_cur."!cursor_debug"("PASS", "statement_control:sym<unless>", " at pos=", rx264_pos)
-  debug_489:
+  debug_495:
     .return (rx264_cur)
   rx264_restart:
-    if_null rx264_debug, debug_490
+.annotate 'line', 4
+    if_null rx264_debug, debug_496
     rx264_cur."!cursor_debug"("NEXT", "statement_control:sym<unless>")
-  debug_490:
+  debug_496:
   rx264_fail:
     (rx264_rep, rx264_pos, $I10, $P10) = rx264_cur."!mark_fail"(0)
     lt rx264_pos, -1, rx264_done
@@ -3932,17 +4106,17 @@
     jump $I10
   rx264_done:
     rx264_cur."!cursor_fail"()
-    if_null rx264_debug, debug_491
+    if_null rx264_debug, debug_497
     rx264_cur."!cursor_debug"("FAIL", "statement_control:sym<unless>")
-  debug_491:
+  debug_497:
     .return (rx264_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>"  :subid("65_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_control:sym<unless>"  :subid("65_1284728478.15265") :method
+.annotate 'line', 4
     new $P266, "ResizablePMCArray"
     push $P266, "unless"
     .return ($P266)
@@ -3950,8 +4124,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block273"  :anon :subid("66_1283975947.19641") :method :outer("64_1283975947.19641")
-.annotate 'line', 0
+.sub "_block273"  :anon :subid("66_1284728478.15265") :method :outer("64_1284728478.15265")
+.annotate 'line', 167
     .local string rx275_tgt
     .local int rx275_pos
     .local int rx275_off
@@ -3972,9 +4146,9 @@
     substr rx275_tgt, rx275_tgt, rx275_off
   rx275_start:
     eq $I10, 1, rx275_restart
-    if_null rx275_debug, debug_485
+    if_null rx275_debug, debug_491
     rx275_cur."!cursor_debug"("START", "")
-  debug_485:
+  debug_491:
     $I10 = self.'from'()
     ne $I10, -1, rxscan276_done
     goto rxscan276_scan
@@ -3996,14 +4170,14 @@
     add rx275_pos, 4
   # rx pass
     rx275_cur."!cursor_pass"(rx275_pos, "")
-    if_null rx275_debug, debug_486
+    if_null rx275_debug, debug_492
     rx275_cur."!cursor_debug"("PASS", "", " at pos=", rx275_pos)
-  debug_486:
+  debug_492:
     .return (rx275_cur)
   rx275_restart:
-    if_null rx275_debug, debug_487
+    if_null rx275_debug, debug_493
     rx275_cur."!cursor_debug"("NEXT", "")
-  debug_487:
+  debug_493:
   rx275_fail:
     (rx275_rep, rx275_pos, $I10, $P10) = rx275_cur."!mark_fail"(0)
     lt rx275_pos, -1, rx275_done
@@ -4011,17 +4185,17 @@
     jump $I10
   rx275_done:
     rx275_cur."!cursor_fail"()
-    if_null rx275_debug, debug_488
+    if_null rx275_debug, debug_494
     rx275_cur."!cursor_debug"("FAIL", "")
-  debug_488:
+  debug_494:
     .return (rx275_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>"  :subid("67_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "statement_control:sym<while>"  :subid("67_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx282_tgt
     .local int rx282_pos
     .local int rx282_off
@@ -4042,9 +4216,9 @@
     substr rx282_tgt, rx282_tgt, rx282_off
   rx282_start:
     eq $I10, 1, rx282_restart
-    if_null rx282_debug, debug_492
+    if_null rx282_debug, debug_498
     rx282_cur."!cursor_debug"("START", "statement_control:sym<while>")
-  debug_492:
+  debug_498:
     $I10 = self.'from'()
     ne $I10, -1, rxscan285_done
     goto rxscan285_scan
@@ -4057,6 +4231,7 @@
     set_addr $I10, rxscan285_loop
     rx282_cur."!mark_push"(0, rx282_pos, $I10)
   rxscan285_done:
+.annotate 'line', 171
   # rx subcapture "sym"
     set_addr $I10, rxcap_287_fail
     rx282_cur."!mark_push"(0, rx282_pos, $I10)
@@ -4102,6 +4277,7 @@
     $P10 = rx282_cur."ws"()
     unless $P10, rx282_fail
     rx282_pos = $P10."pos"()
+.annotate 'line', 172
   # rx subrule "xblock" subtype=capture negate=
     rx282_cur."!cursor_pos"(rx282_pos)
     $P10 = rx282_cur."xblock"()
@@ -4114,16 +4290,18 @@
     $P10 = rx282_cur."ws"()
     unless $P10, rx282_fail
     rx282_pos = $P10."pos"()
+.annotate 'line', 170
   # rx pass
     rx282_cur."!cursor_pass"(rx282_pos, "statement_control:sym<while>")
-    if_null rx282_debug, debug_493
+    if_null rx282_debug, debug_499
     rx282_cur."!cursor_debug"("PASS", "statement_control:sym<while>", " at pos=", rx282_pos)
-  debug_493:
+  debug_499:
     .return (rx282_cur)
   rx282_restart:
-    if_null rx282_debug, debug_494
+.annotate 'line', 4
+    if_null rx282_debug, debug_500
     rx282_cur."!cursor_debug"("NEXT", "statement_control:sym<while>")
-  debug_494:
+  debug_500:
   rx282_fail:
     (rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0)
     lt rx282_pos, -1, rx282_done
@@ -4131,17 +4309,17 @@
     jump $I10
   rx282_done:
     rx282_cur."!cursor_fail"()
-    if_null rx282_debug, debug_495
+    if_null rx282_debug, debug_501
     rx282_cur."!cursor_debug"("FAIL", "statement_control:sym<while>")
-  debug_495:
+  debug_501:
     .return (rx282_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>"  :subid("68_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_control:sym<while>"  :subid("68_1284728478.15265") :method
+.annotate 'line', 4
     new $P284, "ResizablePMCArray"
     push $P284, "until"
     push $P284, "while"
@@ -4150,8 +4328,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<repeat>"  :subid("69_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "statement_control:sym<repeat>"  :subid("69_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx291_tgt
     .local int rx291_pos
     .local int rx291_off
@@ -4172,9 +4350,9 @@
     substr rx291_tgt, rx291_tgt, rx291_off
   rx291_start:
     eq $I10, 1, rx291_restart
-    if_null rx291_debug, debug_496
+    if_null rx291_debug, debug_502
     rx291_cur."!cursor_debug"("START", "statement_control:sym<repeat>")
-  debug_496:
+  debug_502:
     $I10 = self.'from'()
     ne $I10, -1, rxscan294_done
     goto rxscan294_scan
@@ -4187,6 +4365,7 @@
     set_addr $I10, rxscan294_loop
     rx291_cur."!mark_push"(0, rx291_pos, $I10)
   rxscan294_done:
+.annotate 'line', 176
   # rx subcapture "sym"
     set_addr $I10, rxcap_295_fail
     rx291_cur."!mark_push"(0, rx291_pos, $I10)
@@ -4220,8 +4399,10 @@
     unless $P10, rx291_fail
     rx291_pos = $P10."pos"()
   alt297_0:
+.annotate 'line', 177
     set_addr $I10, alt297_1
     rx291_cur."!mark_push"(0, rx291_pos, $I10)
+.annotate 'line', 178
   # rx subrule "ws" subtype=method negate=
     rx291_cur."!cursor_pos"(rx291_pos)
     $P10 = rx291_cur."ws"()
@@ -4286,6 +4467,7 @@
     rx291_pos = $P10."pos"()
     goto alt297_end
   alt297_1:
+.annotate 'line', 179
   # rx subrule "ws" subtype=method negate=
     rx291_cur."!cursor_pos"(rx291_pos)
     $P10 = rx291_cur."ws"()
@@ -4361,21 +4543,24 @@
     unless $P10, rx291_fail
     rx291_pos = $P10."pos"()
   alt297_end:
+.annotate 'line', 180
   # rx subrule "ws" subtype=method negate=
     rx291_cur."!cursor_pos"(rx291_pos)
     $P10 = rx291_cur."ws"()
     unless $P10, rx291_fail
     rx291_pos = $P10."pos"()
+.annotate 'line', 175
   # rx pass
     rx291_cur."!cursor_pass"(rx291_pos, "statement_control:sym<repeat>")
-    if_null rx291_debug, debug_497
+    if_null rx291_debug, debug_503
     rx291_cur."!cursor_debug"("PASS", "statement_control:sym<repeat>", " at pos=", rx291_pos)
-  debug_497:
+  debug_503:
     .return (rx291_cur)
   rx291_restart:
-    if_null rx291_debug, debug_498
+.annotate 'line', 4
+    if_null rx291_debug, debug_504
     rx291_cur."!cursor_debug"("NEXT", "statement_control:sym<repeat>")
-  debug_498:
+  debug_504:
   rx291_fail:
     (rx291_rep, rx291_pos, $I10, $P10) = rx291_cur."!mark_fail"(0)
     lt rx291_pos, -1, rx291_done
@@ -4383,17 +4568,17 @@
     jump $I10
   rx291_done:
     rx291_cur."!cursor_fail"()
-    if_null rx291_debug, debug_499
+    if_null rx291_debug, debug_505
     rx291_cur."!cursor_debug"("FAIL", "statement_control:sym<repeat>")
-  debug_499:
+  debug_505:
     .return (rx291_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>"  :subid("70_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_control:sym<repeat>"  :subid("70_1284728478.15265") :method
+.annotate 'line', 4
     new $P293, "ResizablePMCArray"
     push $P293, "repeat"
     .return ($P293)
@@ -4401,8 +4586,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<for>"  :subid("71_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "statement_control:sym<for>"  :subid("71_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx311_tgt
     .local int rx311_pos
     .local int rx311_off
@@ -4423,9 +4608,9 @@
     substr rx311_tgt, rx311_tgt, rx311_off
   rx311_start:
     eq $I10, 1, rx311_restart
-    if_null rx311_debug, debug_500
+    if_null rx311_debug, debug_506
     rx311_cur."!cursor_debug"("START", "statement_control:sym<for>")
-  debug_500:
+  debug_506:
     $I10 = self.'from'()
     ne $I10, -1, rxscan314_done
     goto rxscan314_scan
@@ -4438,6 +4623,7 @@
     set_addr $I10, rxscan314_loop
     rx311_cur."!mark_push"(0, rx311_pos, $I10)
   rxscan314_done:
+.annotate 'line', 184
   # rx subcapture "sym"
     set_addr $I10, rxcap_315_fail
     rx311_cur."!mark_push"(0, rx311_pos, $I10)
@@ -4470,6 +4656,7 @@
     $P10 = rx311_cur."ws"()
     unless $P10, rx311_fail
     rx311_pos = $P10."pos"()
+.annotate 'line', 185
   # rx subrule "xblock" subtype=capture negate=
     rx311_cur."!cursor_pos"(rx311_pos)
     $P10 = rx311_cur."xblock"()
@@ -4482,16 +4669,18 @@
     $P10 = rx311_cur."ws"()
     unless $P10, rx311_fail
     rx311_pos = $P10."pos"()
+.annotate 'line', 183
   # rx pass
     rx311_cur."!cursor_pass"(rx311_pos, "statement_control:sym<for>")
-    if_null rx311_debug, debug_501
+    if_null rx311_debug, debug_507
     rx311_cur."!cursor_debug"("PASS", "statement_control:sym<for>", " at pos=", rx311_pos)
-  debug_501:
+  debug_507:
     .return (rx311_cur)
   rx311_restart:
-    if_null rx311_debug, debug_502
+.annotate 'line', 4
+    if_null rx311_debug, debug_508
     rx311_cur."!cursor_debug"("NEXT", "statement_control:sym<for>")
-  debug_502:
+  debug_508:
   rx311_fail:
     (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0)
     lt rx311_pos, -1, rx311_done
@@ -4499,17 +4688,17 @@
     jump $I10
   rx311_done:
     rx311_cur."!cursor_fail"()
-    if_null rx311_debug, debug_503
+    if_null rx311_debug, debug_509
     rx311_cur."!cursor_debug"("FAIL", "statement_control:sym<for>")
-  debug_503:
+  debug_509:
     .return (rx311_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>"  :subid("72_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_control:sym<for>"  :subid("72_1284728478.15265") :method
+.annotate 'line', 4
     new $P313, "ResizablePMCArray"
     push $P313, "for"
     .return ($P313)
@@ -4517,8 +4706,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CATCH>"  :subid("73_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "statement_control:sym<CATCH>"  :subid("73_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx319_tgt
     .local int rx319_pos
     .local int rx319_off
@@ -4539,9 +4728,9 @@
     substr rx319_tgt, rx319_tgt, rx319_off
   rx319_start:
     eq $I10, 1, rx319_restart
-    if_null rx319_debug, debug_504
+    if_null rx319_debug, debug_510
     rx319_cur."!cursor_debug"("START", "statement_control:sym<CATCH>")
-  debug_504:
+  debug_510:
     $I10 = self.'from'()
     ne $I10, -1, rxscan322_done
     goto rxscan322_scan
@@ -4554,6 +4743,7 @@
     set_addr $I10, rxscan322_loop
     rx319_cur."!mark_push"(0, rx319_pos, $I10)
   rxscan322_done:
+.annotate 'line', 189
   # rx subcapture "sym"
     set_addr $I10, rxcap_323_fail
     rx319_cur."!mark_push"(0, rx319_pos, $I10)
@@ -4586,6 +4776,7 @@
     $P10 = rx319_cur."ws"()
     unless $P10, rx319_fail
     rx319_pos = $P10."pos"()
+.annotate 'line', 190
   # rx subrule "block" subtype=capture negate=
     rx319_cur."!cursor_pos"(rx319_pos)
     $P10 = rx319_cur."block"()
@@ -4598,16 +4789,18 @@
     $P10 = rx319_cur."ws"()
     unless $P10, rx319_fail
     rx319_pos = $P10."pos"()
+.annotate 'line', 188
   # rx pass
     rx319_cur."!cursor_pass"(rx319_pos, "statement_control:sym<CATCH>")
-    if_null rx319_debug, debug_505
+    if_null rx319_debug, debug_511
     rx319_cur."!cursor_debug"("PASS", "statement_control:sym<CATCH>", " at pos=", rx319_pos)
-  debug_505:
+  debug_511:
     .return (rx319_cur)
   rx319_restart:
-    if_null rx319_debug, debug_506
+.annotate 'line', 4
+    if_null rx319_debug, debug_512
     rx319_cur."!cursor_debug"("NEXT", "statement_control:sym<CATCH>")
-  debug_506:
+  debug_512:
   rx319_fail:
     (rx319_rep, rx319_pos, $I10, $P10) = rx319_cur."!mark_fail"(0)
     lt rx319_pos, -1, rx319_done
@@ -4615,17 +4808,17 @@
     jump $I10
   rx319_done:
     rx319_cur."!cursor_fail"()
-    if_null rx319_debug, debug_507
+    if_null rx319_debug, debug_513
     rx319_cur."!cursor_debug"("FAIL", "statement_control:sym<CATCH>")
-  debug_507:
+  debug_513:
     .return (rx319_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("74_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("74_1284728478.15265") :method
+.annotate 'line', 4
     new $P321, "ResizablePMCArray"
     push $P321, "CATCH"
     .return ($P321)
@@ -4633,8 +4826,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CONTROL>"  :subid("75_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "statement_control:sym<CONTROL>"  :subid("75_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx327_tgt
     .local int rx327_pos
     .local int rx327_off
@@ -4655,9 +4848,9 @@
     substr rx327_tgt, rx327_tgt, rx327_off
   rx327_start:
     eq $I10, 1, rx327_restart
-    if_null rx327_debug, debug_508
+    if_null rx327_debug, debug_514
     rx327_cur."!cursor_debug"("START", "statement_control:sym<CONTROL>")
-  debug_508:
+  debug_514:
     $I10 = self.'from'()
     ne $I10, -1, rxscan330_done
     goto rxscan330_scan
@@ -4670,6 +4863,7 @@
     set_addr $I10, rxscan330_loop
     rx327_cur."!mark_push"(0, rx327_pos, $I10)
   rxscan330_done:
+.annotate 'line', 194
   # rx subcapture "sym"
     set_addr $I10, rxcap_331_fail
     rx327_cur."!mark_push"(0, rx327_pos, $I10)
@@ -4702,6 +4896,7 @@
     $P10 = rx327_cur."ws"()
     unless $P10, rx327_fail
     rx327_pos = $P10."pos"()
+.annotate 'line', 195
   # rx subrule "block" subtype=capture negate=
     rx327_cur."!cursor_pos"(rx327_pos)
     $P10 = rx327_cur."block"()
@@ -4714,16 +4909,18 @@
     $P10 = rx327_cur."ws"()
     unless $P10, rx327_fail
     rx327_pos = $P10."pos"()
+.annotate 'line', 193
   # rx pass
     rx327_cur."!cursor_pass"(rx327_pos, "statement_control:sym<CONTROL>")
-    if_null rx327_debug, debug_509
+    if_null rx327_debug, debug_515
     rx327_cur."!cursor_debug"("PASS", "statement_control:sym<CONTROL>", " at pos=", rx327_pos)
-  debug_509:
+  debug_515:
     .return (rx327_cur)
   rx327_restart:
-    if_null rx327_debug, debug_510
+.annotate 'line', 4
+    if_null rx327_debug, debug_516
     rx327_cur."!cursor_debug"("NEXT", "statement_control:sym<CONTROL>")
-  debug_510:
+  debug_516:
   rx327_fail:
     (rx327_rep, rx327_pos, $I10, $P10) = rx327_cur."!mark_fail"(0)
     lt rx327_pos, -1, rx327_done
@@ -4731,17 +4928,17 @@
     jump $I10
   rx327_done:
     rx327_cur."!cursor_fail"()
-    if_null rx327_debug, debug_511
+    if_null rx327_debug, debug_517
     rx327_cur."!cursor_debug"("FAIL", "statement_control:sym<CONTROL>")
-  debug_511:
+  debug_517:
     .return (rx327_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("76_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("76_1284728478.15265") :method
+.annotate 'line', 4
     new $P329, "ResizablePMCArray"
     push $P329, "CONTROL"
     .return ($P329)
@@ -4749,24 +4946,24 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix"  :subid("77_1283975947.19641") :method
-.annotate 'line', 0
+.sub "statement_prefix"  :subid("77_1284728478.15265") :method
+.annotate 'line', 198
     $P335 = self."!protoregex"("statement_prefix")
     .return ($P335)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix"  :subid("78_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_prefix"  :subid("78_1284728478.15265") :method
+.annotate 'line', 198
     $P337 = self."!PREFIX__!protoregex"("statement_prefix")
     .return ($P337)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<INIT>"  :subid("79_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "statement_prefix:sym<INIT>"  :subid("79_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx339_tgt
     .local int rx339_pos
     .local int rx339_off
@@ -4787,9 +4984,9 @@
     substr rx339_tgt, rx339_tgt, rx339_off
   rx339_start:
     eq $I10, 1, rx339_restart
-    if_null rx339_debug, debug_512
+    if_null rx339_debug, debug_518
     rx339_cur."!cursor_debug"("START", "statement_prefix:sym<INIT>")
-  debug_512:
+  debug_518:
     $I10 = self.'from'()
     ne $I10, -1, rxscan343_done
     goto rxscan343_scan
@@ -4802,6 +4999,7 @@
     set_addr $I10, rxscan343_loop
     rx339_cur."!mark_push"(0, rx339_pos, $I10)
   rxscan343_done:
+.annotate 'line', 199
   # rx subcapture "sym"
     set_addr $I10, rxcap_344_fail
     rx339_cur."!mark_push"(0, rx339_pos, $I10)
@@ -4832,14 +5030,15 @@
     rx339_pos = $P10."pos"()
   # rx pass
     rx339_cur."!cursor_pass"(rx339_pos, "statement_prefix:sym<INIT>")
-    if_null rx339_debug, debug_513
+    if_null rx339_debug, debug_519
     rx339_cur."!cursor_debug"("PASS", "statement_prefix:sym<INIT>", " at pos=", rx339_pos)
-  debug_513:
+  debug_519:
     .return (rx339_cur)
   rx339_restart:
-    if_null rx339_debug, debug_514
+.annotate 'line', 4
+    if_null rx339_debug, debug_520
     rx339_cur."!cursor_debug"("NEXT", "statement_prefix:sym<INIT>")
-  debug_514:
+  debug_520:
   rx339_fail:
     (rx339_rep, rx339_pos, $I10, $P10) = rx339_cur."!mark_fail"(0)
     lt rx339_pos, -1, rx339_done
@@ -4847,17 +5046,17 @@
     jump $I10
   rx339_done:
     rx339_cur."!cursor_fail"()
-    if_null rx339_debug, debug_515
+    if_null rx339_debug, debug_521
     rx339_cur."!cursor_debug"("FAIL", "statement_prefix:sym<INIT>")
-  debug_515:
+  debug_521:
     .return (rx339_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("80_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("80_1284728478.15265") :method
+.annotate 'line', 4
     $P341 = self."!PREFIX__!subrule"("blorst", "INIT")
     new $P342, "ResizablePMCArray"
     push $P342, $P341
@@ -4866,8 +5065,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<try>"  :subid("81_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "statement_prefix:sym<try>"  :subid("81_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx346_tgt
     .local int rx346_pos
     .local int rx346_off
@@ -4888,9 +5087,9 @@
     substr rx346_tgt, rx346_tgt, rx346_off
   rx346_start:
     eq $I10, 1, rx346_restart
-    if_null rx346_debug, debug_516
+    if_null rx346_debug, debug_522
     rx346_cur."!cursor_debug"("START", "statement_prefix:sym<try>")
-  debug_516:
+  debug_522:
     $I10 = self.'from'()
     ne $I10, -1, rxscan350_done
     goto rxscan350_scan
@@ -4903,6 +5102,7 @@
     set_addr $I10, rxscan350_loop
     rx346_cur."!mark_push"(0, rx346_pos, $I10)
   rxscan350_done:
+.annotate 'line', 202
   # rx subcapture "sym"
     set_addr $I10, rxcap_351_fail
     rx346_cur."!mark_push"(0, rx346_pos, $I10)
@@ -4924,6 +5124,7 @@
   rxcap_351_fail:
     goto rx346_fail
   rxcap_351_done:
+.annotate 'line', 203
   # rx subrule "blorst" subtype=capture negate=
     rx346_cur."!cursor_pos"(rx346_pos)
     $P10 = rx346_cur."blorst"()
@@ -4931,16 +5132,18 @@
     rx346_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blorst")
     rx346_pos = $P10."pos"()
+.annotate 'line', 201
   # rx pass
     rx346_cur."!cursor_pass"(rx346_pos, "statement_prefix:sym<try>")
-    if_null rx346_debug, debug_517
+    if_null rx346_debug, debug_523
     rx346_cur."!cursor_debug"("PASS", "statement_prefix:sym<try>", " at pos=", rx346_pos)
-  debug_517:
+  debug_523:
     .return (rx346_cur)
   rx346_restart:
-    if_null rx346_debug, debug_518
+.annotate 'line', 4
+    if_null rx346_debug, debug_524
     rx346_cur."!cursor_debug"("NEXT", "statement_prefix:sym<try>")
-  debug_518:
+  debug_524:
   rx346_fail:
     (rx346_rep, rx346_pos, $I10, $P10) = rx346_cur."!mark_fail"(0)
     lt rx346_pos, -1, rx346_done
@@ -4948,17 +5151,17 @@
     jump $I10
   rx346_done:
     rx346_cur."!cursor_fail"()
-    if_null rx346_debug, debug_519
+    if_null rx346_debug, debug_525
     rx346_cur."!cursor_debug"("FAIL", "statement_prefix:sym<try>")
-  debug_519:
+  debug_525:
     .return (rx346_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>"  :subid("82_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_prefix:sym<try>"  :subid("82_1284728478.15265") :method
+.annotate 'line', 4
     $P348 = self."!PREFIX__!subrule"("blorst", "try")
     new $P349, "ResizablePMCArray"
     push $P349, $P348
@@ -4967,8 +5170,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blorst"  :subid("83_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "blorst"  :subid("83_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx353_tgt
     .local int rx353_pos
     .local int rx353_off
@@ -4989,9 +5192,9 @@
     substr rx353_tgt, rx353_tgt, rx353_off
   rx353_start:
     eq $I10, 1, rx353_restart
-    if_null rx353_debug, debug_520
+    if_null rx353_debug, debug_526
     rx353_cur."!cursor_debug"("START", "blorst")
-  debug_520:
+  debug_526:
     $I10 = self.'from'()
     ne $I10, -1, rxscan356_done
     goto rxscan356_scan
@@ -5004,6 +5207,7 @@
     set_addr $I10, rxscan356_loop
     rx353_cur."!mark_push"(0, rx353_pos, $I10)
   rxscan356_done:
+.annotate 'line', 207
   # rx charclass s
     ge rx353_pos, rx353_eos, rx353_fail
     sub $I10, rx353_pos, rx353_off
@@ -5019,7 +5223,6 @@
     set_addr $I10, alt357_1
     rx353_cur."!mark_push"(0, rx353_pos, $I10)
   # rx enumcharlist negate=0 zerowidth
-    ge rx353_pos, rx353_eos, rx353_fail
     sub $I10, rx353_pos, rx353_off
     substr $S10, rx353_tgt, $I10, 1
     index $I11, "{", $S10
@@ -5041,16 +5244,18 @@
     $P10."!cursor_names"("statement")
     rx353_pos = $P10."pos"()
   alt357_end:
+.annotate 'line', 206
   # rx pass
     rx353_cur."!cursor_pass"(rx353_pos, "blorst")
-    if_null rx353_debug, debug_521
+    if_null rx353_debug, debug_527
     rx353_cur."!cursor_debug"("PASS", "blorst", " at pos=", rx353_pos)
-  debug_521:
+  debug_527:
     .return (rx353_cur)
   rx353_restart:
-    if_null rx353_debug, debug_522
+.annotate 'line', 4
+    if_null rx353_debug, debug_528
     rx353_cur."!cursor_debug"("NEXT", "blorst")
-  debug_522:
+  debug_528:
   rx353_fail:
     (rx353_rep, rx353_pos, $I10, $P10) = rx353_cur."!mark_fail"(0)
     lt rx353_pos, -1, rx353_done
@@ -5058,17 +5263,17 @@
     jump $I10
   rx353_done:
     rx353_cur."!cursor_fail"()
-    if_null rx353_debug, debug_523
+    if_null rx353_debug, debug_529
     rx353_cur."!cursor_debug"("FAIL", "blorst")
-  debug_523:
+  debug_529:
     .return (rx353_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst"  :subid("84_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__blorst"  :subid("84_1284728478.15265") :method
+.annotate 'line', 4
     new $P355, "ResizablePMCArray"
     push $P355, ""
     .return ($P355)
@@ -5076,24 +5281,24 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond"  :subid("85_1283975947.19641") :method
-.annotate 'line', 0
+.sub "statement_mod_cond"  :subid("85_1284728478.15265") :method
+.annotate 'line', 212
     $P359 = self."!protoregex"("statement_mod_cond")
     .return ($P359)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond"  :subid("86_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_mod_cond"  :subid("86_1284728478.15265") :method
+.annotate 'line', 212
     $P361 = self."!PREFIX__!protoregex"("statement_mod_cond")
     .return ($P361)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<if>"  :subid("87_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "statement_mod_cond:sym<if>"  :subid("87_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx363_tgt
     .local int rx363_pos
     .local int rx363_off
@@ -5114,9 +5319,9 @@
     substr rx363_tgt, rx363_tgt, rx363_off
   rx363_start:
     eq $I10, 1, rx363_restart
-    if_null rx363_debug, debug_524
+    if_null rx363_debug, debug_530
     rx363_cur."!cursor_debug"("START", "statement_mod_cond:sym<if>")
-  debug_524:
+  debug_530:
     $I10 = self.'from'()
     ne $I10, -1, rxscan367_done
     goto rxscan367_scan
@@ -5129,6 +5334,7 @@
     set_addr $I10, rxscan367_loop
     rx363_cur."!mark_push"(0, rx363_pos, $I10)
   rxscan367_done:
+.annotate 'line', 214
   # rx subcapture "sym"
     set_addr $I10, rxcap_368_fail
     rx363_cur."!mark_push"(0, rx363_pos, $I10)
@@ -5169,14 +5375,15 @@
     rx363_pos = $P10."pos"()
   # rx pass
     rx363_cur."!cursor_pass"(rx363_pos, "statement_mod_cond:sym<if>")
-    if_null rx363_debug, debug_525
+    if_null rx363_debug, debug_531
     rx363_cur."!cursor_debug"("PASS", "statement_mod_cond:sym<if>", " at pos=", rx363_pos)
-  debug_525:
+  debug_531:
     .return (rx363_cur)
   rx363_restart:
-    if_null rx363_debug, debug_526
+.annotate 'line', 4
+    if_null rx363_debug, debug_532
     rx363_cur."!cursor_debug"("NEXT", "statement_mod_cond:sym<if>")
-  debug_526:
+  debug_532:
   rx363_fail:
     (rx363_rep, rx363_pos, $I10, $P10) = rx363_cur."!mark_fail"(0)
     lt rx363_pos, -1, rx363_done
@@ -5184,17 +5391,17 @@
     jump $I10
   rx363_done:
     rx363_cur."!cursor_fail"()
-    if_null rx363_debug, debug_527
+    if_null rx363_debug, debug_533
     rx363_cur."!cursor_debug"("FAIL", "statement_mod_cond:sym<if>")
-  debug_527:
+  debug_533:
     .return (rx363_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("88_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("88_1284728478.15265") :method
+.annotate 'line', 4
     $P365 = self."!PREFIX__!subrule"("ws", "if")
     new $P366, "ResizablePMCArray"
     push $P366, $P365
@@ -5203,8 +5410,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<unless>"  :subid("89_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "statement_mod_cond:sym<unless>"  :subid("89_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx372_tgt
     .local int rx372_pos
     .local int rx372_off
@@ -5225,9 +5432,9 @@
     substr rx372_tgt, rx372_tgt, rx372_off
   rx372_start:
     eq $I10, 1, rx372_restart
-    if_null rx372_debug, debug_528
+    if_null rx372_debug, debug_534
     rx372_cur."!cursor_debug"("START", "statement_mod_cond:sym<unless>")
-  debug_528:
+  debug_534:
     $I10 = self.'from'()
     ne $I10, -1, rxscan376_done
     goto rxscan376_scan
@@ -5240,6 +5447,7 @@
     set_addr $I10, rxscan376_loop
     rx372_cur."!mark_push"(0, rx372_pos, $I10)
   rxscan376_done:
+.annotate 'line', 215
   # rx subcapture "sym"
     set_addr $I10, rxcap_377_fail
     rx372_cur."!mark_push"(0, rx372_pos, $I10)
@@ -5280,14 +5488,15 @@
     rx372_pos = $P10."pos"()
   # rx pass
     rx372_cur."!cursor_pass"(rx372_pos, "statement_mod_cond:sym<unless>")
-    if_null rx372_debug, debug_529
+    if_null rx372_debug, debug_535
     rx372_cur."!cursor_debug"("PASS", "statement_mod_cond:sym<unless>", " at pos=", rx372_pos)
-  debug_529:
+  debug_535:
     .return (rx372_cur)
   rx372_restart:
-    if_null rx372_debug, debug_530
+.annotate 'line', 4
+    if_null rx372_debug, debug_536
     rx372_cur."!cursor_debug"("NEXT", "statement_mod_cond:sym<unless>")
-  debug_530:
+  debug_536:
   rx372_fail:
     (rx372_rep, rx372_pos, $I10, $P10) = rx372_cur."!mark_fail"(0)
     lt rx372_pos, -1, rx372_done
@@ -5295,17 +5504,17 @@
     jump $I10
   rx372_done:
     rx372_cur."!cursor_fail"()
-    if_null rx372_debug, debug_531
+    if_null rx372_debug, debug_537
     rx372_cur."!cursor_debug"("FAIL", "statement_mod_cond:sym<unless>")
-  debug_531:
+  debug_537:
     .return (rx372_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("90_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("90_1284728478.15265") :method
+.annotate 'line', 4
     $P374 = self."!PREFIX__!subrule"("ws", "unless")
     new $P375, "ResizablePMCArray"
     push $P375, $P374
@@ -5314,24 +5523,24 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop"  :subid("91_1283975947.19641") :method
-.annotate 'line', 0
+.sub "statement_mod_loop"  :subid("91_1284728478.15265") :method
+.annotate 'line', 217
     $P381 = self."!protoregex"("statement_mod_loop")
     .return ($P381)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop"  :subid("92_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_mod_loop"  :subid("92_1284728478.15265") :method
+.annotate 'line', 217
     $P383 = self."!PREFIX__!protoregex"("statement_mod_loop")
     .return ($P383)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<while>"  :subid("93_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "statement_mod_loop:sym<while>"  :subid("93_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx385_tgt
     .local int rx385_pos
     .local int rx385_off
@@ -5352,9 +5561,9 @@
     substr rx385_tgt, rx385_tgt, rx385_off
   rx385_start:
     eq $I10, 1, rx385_restart
-    if_null rx385_debug, debug_532
+    if_null rx385_debug, debug_538
     rx385_cur."!cursor_debug"("START", "statement_mod_loop:sym<while>")
-  debug_532:
+  debug_538:
     $I10 = self.'from'()
     ne $I10, -1, rxscan389_done
     goto rxscan389_scan
@@ -5367,6 +5576,7 @@
     set_addr $I10, rxscan389_loop
     rx385_cur."!mark_push"(0, rx385_pos, $I10)
   rxscan389_done:
+.annotate 'line', 219
   # rx subcapture "sym"
     set_addr $I10, rxcap_390_fail
     rx385_cur."!mark_push"(0, rx385_pos, $I10)
@@ -5407,14 +5617,15 @@
     rx385_pos = $P10."pos"()
   # rx pass
     rx385_cur."!cursor_pass"(rx385_pos, "statement_mod_loop:sym<while>")
-    if_null rx385_debug, debug_533
+    if_null rx385_debug, debug_539
     rx385_cur."!cursor_debug"("PASS", "statement_mod_loop:sym<while>", " at pos=", rx385_pos)
-  debug_533:
+  debug_539:
     .return (rx385_cur)
   rx385_restart:
-    if_null rx385_debug, debug_534
+.annotate 'line', 4
+    if_null rx385_debug, debug_540
     rx385_cur."!cursor_debug"("NEXT", "statement_mod_loop:sym<while>")
-  debug_534:
+  debug_540:
   rx385_fail:
     (rx385_rep, rx385_pos, $I10, $P10) = rx385_cur."!mark_fail"(0)
     lt rx385_pos, -1, rx385_done
@@ -5422,17 +5633,17 @@
     jump $I10
   rx385_done:
     rx385_cur."!cursor_fail"()
-    if_null rx385_debug, debug_535
+    if_null rx385_debug, debug_541
     rx385_cur."!cursor_debug"("FAIL", "statement_mod_loop:sym<while>")
-  debug_535:
+  debug_541:
     .return (rx385_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("94_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("94_1284728478.15265") :method
+.annotate 'line', 4
     $P387 = self."!PREFIX__!subrule"("ws", "while")
     new $P388, "ResizablePMCArray"
     push $P388, $P387
@@ -5441,8 +5652,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<until>"  :subid("95_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "statement_mod_loop:sym<until>"  :subid("95_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx394_tgt
     .local int rx394_pos
     .local int rx394_off
@@ -5463,9 +5674,9 @@
     substr rx394_tgt, rx394_tgt, rx394_off
   rx394_start:
     eq $I10, 1, rx394_restart
-    if_null rx394_debug, debug_536
+    if_null rx394_debug, debug_542
     rx394_cur."!cursor_debug"("START", "statement_mod_loop:sym<until>")
-  debug_536:
+  debug_542:
     $I10 = self.'from'()
     ne $I10, -1, rxscan398_done
     goto rxscan398_scan
@@ -5478,6 +5689,7 @@
     set_addr $I10, rxscan398_loop
     rx394_cur."!mark_push"(0, rx394_pos, $I10)
   rxscan398_done:
+.annotate 'line', 220
   # rx subcapture "sym"
     set_addr $I10, rxcap_399_fail
     rx394_cur."!mark_push"(0, rx394_pos, $I10)
@@ -5518,14 +5730,15 @@
     rx394_pos = $P10."pos"()
   # rx pass
     rx394_cur."!cursor_pass"(rx394_pos, "statement_mod_loop:sym<until>")
-    if_null rx394_debug, debug_537
+    if_null rx394_debug, debug_543
     rx394_cur."!cursor_debug"("PASS", "statement_mod_loop:sym<until>", " at pos=", rx394_pos)
-  debug_537:
+  debug_543:
     .return (rx394_cur)
   rx394_restart:
-    if_null rx394_debug, debug_538
+.annotate 'line', 4
+    if_null rx394_debug, debug_544
     rx394_cur."!cursor_debug"("NEXT", "statement_mod_loop:sym<until>")
-  debug_538:
+  debug_544:
   rx394_fail:
     (rx394_rep, rx394_pos, $I10, $P10) = rx394_cur."!mark_fail"(0)
     lt rx394_pos, -1, rx394_done
@@ -5533,17 +5746,17 @@
     jump $I10
   rx394_done:
     rx394_cur."!cursor_fail"()
-    if_null rx394_debug, debug_539
+    if_null rx394_debug, debug_545
     rx394_cur."!cursor_debug"("FAIL", "statement_mod_loop:sym<until>")
-  debug_539:
+  debug_545:
     .return (rx394_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("96_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("96_1284728478.15265") :method
+.annotate 'line', 4
     $P396 = self."!PREFIX__!subrule"("ws", "until")
     new $P397, "ResizablePMCArray"
     push $P397, $P396
@@ -5552,8 +5765,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<for>"  :subid("97_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "statement_mod_loop:sym<for>"  :subid("97_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx403_tgt
     .local int rx403_pos
     .local int rx403_off
@@ -5574,9 +5787,9 @@
     substr rx403_tgt, rx403_tgt, rx403_off
   rx403_start:
     eq $I10, 1, rx403_restart
-    if_null rx403_debug, debug_540
+    if_null rx403_debug, debug_546
     rx403_cur."!cursor_debug"("START", "statement_mod_loop:sym<for>")
-  debug_540:
+  debug_546:
     $I10 = self.'from'()
     ne $I10, -1, rxscan407_done
     goto rxscan407_scan
@@ -5589,6 +5802,7 @@
     set_addr $I10, rxscan407_loop
     rx403_cur."!mark_push"(0, rx403_pos, $I10)
   rxscan407_done:
+.annotate 'line', 221
   # rx subcapture "sym"
     set_addr $I10, rxcap_408_fail
     rx403_cur."!mark_push"(0, rx403_pos, $I10)
@@ -5629,14 +5843,15 @@
     rx403_pos = $P10."pos"()
   # rx pass
     rx403_cur."!cursor_pass"(rx403_pos, "statement_mod_loop:sym<for>")
-    if_null rx403_debug, debug_541
+    if_null rx403_debug, debug_547
     rx403_cur."!cursor_debug"("PASS", "statement_mod_loop:sym<for>", " at pos=", rx403_pos)
-  debug_541:
+  debug_547:
     .return (rx403_cur)
   rx403_restart:
-    if_null rx403_debug, debug_542
+.annotate 'line', 4
+    if_null rx403_debug, debug_548
     rx403_cur."!cursor_debug"("NEXT", "statement_mod_loop:sym<for>")
-  debug_542:
+  debug_548:
   rx403_fail:
     (rx403_rep, rx403_pos, $I10, $P10) = rx403_cur."!mark_fail"(0)
     lt rx403_pos, -1, rx403_done
@@ -5644,17 +5859,17 @@
     jump $I10
   rx403_done:
     rx403_cur."!cursor_fail"()
-    if_null rx403_debug, debug_543
+    if_null rx403_debug, debug_549
     rx403_cur."!cursor_debug"("FAIL", "statement_mod_loop:sym<for>")
-  debug_543:
+  debug_549:
     .return (rx403_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<for>"  :subid("98_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__statement_mod_loop:sym<for>"  :subid("98_1284728478.15265") :method
+.annotate 'line', 4
     $P405 = self."!PREFIX__!subrule"("ws", "for")
     new $P406, "ResizablePMCArray"
     push $P406, $P405
@@ -5663,8 +5878,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>"  :subid("99_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "term:sym<fatarrow>"  :subid("99_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx412_tgt
     .local int rx412_pos
     .local int rx412_off
@@ -5685,9 +5900,9 @@
     substr rx412_tgt, rx412_tgt, rx412_off
   rx412_start:
     eq $I10, 1, rx412_restart
-    if_null rx412_debug, debug_544
+    if_null rx412_debug, debug_550
     rx412_cur."!cursor_debug"("START", "term:sym<fatarrow>")
-  debug_544:
+  debug_550:
     $I10 = self.'from'()
     ne $I10, -1, rxscan416_done
     goto rxscan416_scan
@@ -5700,6 +5915,7 @@
     set_addr $I10, rxscan416_loop
     rx412_cur."!mark_push"(0, rx412_pos, $I10)
   rxscan416_done:
+.annotate 'line', 225
   # rx subrule "fatarrow" subtype=capture negate=
     rx412_cur."!cursor_pos"(rx412_pos)
     $P10 = rx412_cur."fatarrow"()
@@ -5709,14 +5925,15 @@
     rx412_pos = $P10."pos"()
   # rx pass
     rx412_cur."!cursor_pass"(rx412_pos, "term:sym<fatarrow>")
-    if_null rx412_debug, debug_545
+    if_null rx412_debug, debug_551
     rx412_cur."!cursor_debug"("PASS", "term:sym<fatarrow>", " at pos=", rx412_pos)
-  debug_545:
+  debug_551:
     .return (rx412_cur)
   rx412_restart:
-    if_null rx412_debug, debug_546
+.annotate 'line', 4
+    if_null rx412_debug, debug_552
     rx412_cur."!cursor_debug"("NEXT", "term:sym<fatarrow>")
-  debug_546:
+  debug_552:
   rx412_fail:
     (rx412_rep, rx412_pos, $I10, $P10) = rx412_cur."!mark_fail"(0)
     lt rx412_pos, -1, rx412_done
@@ -5724,17 +5941,17 @@
     jump $I10
   rx412_done:
     rx412_cur."!cursor_fail"()
-    if_null rx412_debug, debug_547
+    if_null rx412_debug, debug_553
     rx412_cur."!cursor_debug"("FAIL", "term:sym<fatarrow>")
-  debug_547:
+  debug_553:
     .return (rx412_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>"  :subid("100_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__term:sym<fatarrow>"  :subid("100_1284728478.15265") :method
+.annotate 'line', 4
     $P414 = self."!PREFIX__!subrule"("fatarrow", "")
     new $P415, "ResizablePMCArray"
     push $P415, $P414
@@ -5743,8 +5960,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>"  :subid("101_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "term:sym<colonpair>"  :subid("101_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx418_tgt
     .local int rx418_pos
     .local int rx418_off
@@ -5765,9 +5982,9 @@
     substr rx418_tgt, rx418_tgt, rx418_off
   rx418_start:
     eq $I10, 1, rx418_restart
-    if_null rx418_debug, debug_548
+    if_null rx418_debug, debug_554
     rx418_cur."!cursor_debug"("START", "term:sym<colonpair>")
-  debug_548:
+  debug_554:
     $I10 = self.'from'()
     ne $I10, -1, rxscan422_done
     goto rxscan422_scan
@@ -5780,6 +5997,7 @@
     set_addr $I10, rxscan422_loop
     rx418_cur."!mark_push"(0, rx418_pos, $I10)
   rxscan422_done:
+.annotate 'line', 226
   # rx subrule "colonpair" subtype=capture negate=
     rx418_cur."!cursor_pos"(rx418_pos)
     $P10 = rx418_cur."colonpair"()
@@ -5789,14 +6007,15 @@
     rx418_pos = $P10."pos"()
   # rx pass
     rx418_cur."!cursor_pass"(rx418_pos, "term:sym<colonpair>")
-    if_null rx418_debug, debug_549
+    if_null rx418_debug, debug_555
     rx418_cur."!cursor_debug"("PASS", "term:sym<colonpair>", " at pos=", rx418_pos)
-  debug_549:
+  debug_555:
     .return (rx418_cur)
   rx418_restart:
-    if_null rx418_debug, debug_550
+.annotate 'line', 4
+    if_null rx418_debug, debug_556
     rx418_cur."!cursor_debug"("NEXT", "term:sym<colonpair>")
-  debug_550:
+  debug_556:
   rx418_fail:
     (rx418_rep, rx418_pos, $I10, $P10) = rx418_cur."!mark_fail"(0)
     lt rx418_pos, -1, rx418_done
@@ -5804,17 +6023,17 @@
     jump $I10
   rx418_done:
     rx418_cur."!cursor_fail"()
-    if_null rx418_debug, debug_551
+    if_null rx418_debug, debug_557
     rx418_cur."!cursor_debug"("FAIL", "term:sym<colonpair>")
-  debug_551:
+  debug_557:
     .return (rx418_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>"  :subid("102_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__term:sym<colonpair>"  :subid("102_1284728478.15265") :method
+.annotate 'line', 4
     $P420 = self."!PREFIX__!subrule"("colonpair", "")
     new $P421, "ResizablePMCArray"
     push $P421, $P420
@@ -5823,8 +6042,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>"  :subid("103_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "term:sym<variable>"  :subid("103_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx424_tgt
     .local int rx424_pos
     .local int rx424_off
@@ -5845,9 +6064,9 @@
     substr rx424_tgt, rx424_tgt, rx424_off
   rx424_start:
     eq $I10, 1, rx424_restart
-    if_null rx424_debug, debug_552
+    if_null rx424_debug, debug_558
     rx424_cur."!cursor_debug"("START", "term:sym<variable>")
-  debug_552:
+  debug_558:
     $I10 = self.'from'()
     ne $I10, -1, rxscan428_done
     goto rxscan428_scan
@@ -5860,6 +6079,7 @@
     set_addr $I10, rxscan428_loop
     rx424_cur."!mark_push"(0, rx424_pos, $I10)
   rxscan428_done:
+.annotate 'line', 227
   # rx subrule "variable" subtype=capture negate=
     rx424_cur."!cursor_pos"(rx424_pos)
     $P10 = rx424_cur."variable"()
@@ -5869,14 +6089,15 @@
     rx424_pos = $P10."pos"()
   # rx pass
     rx424_cur."!cursor_pass"(rx424_pos, "term:sym<variable>")
-    if_null rx424_debug, debug_553
+    if_null rx424_debug, debug_559
     rx424_cur."!cursor_debug"("PASS", "term:sym<variable>", " at pos=", rx424_pos)
-  debug_553:
+  debug_559:
     .return (rx424_cur)
   rx424_restart:
-    if_null rx424_debug, debug_554
+.annotate 'line', 4
+    if_null rx424_debug, debug_560
     rx424_cur."!cursor_debug"("NEXT", "term:sym<variable>")
-  debug_554:
+  debug_560:
   rx424_fail:
     (rx424_rep, rx424_pos, $I10, $P10) = rx424_cur."!mark_fail"(0)
     lt rx424_pos, -1, rx424_done
@@ -5884,17 +6105,17 @@
     jump $I10
   rx424_done:
     rx424_cur."!cursor_fail"()
-    if_null rx424_debug, debug_555
+    if_null rx424_debug, debug_561
     rx424_cur."!cursor_debug"("FAIL", "term:sym<variable>")
-  debug_555:
+  debug_561:
     .return (rx424_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>"  :subid("104_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__term:sym<variable>"  :subid("104_1284728478.15265") :method
+.annotate 'line', 4
     $P426 = self."!PREFIX__!subrule"("variable", "")
     new $P427, "ResizablePMCArray"
     push $P427, $P426
@@ -5903,8 +6124,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<package_declarator>"  :subid("105_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "term:sym<package_declarator>"  :subid("105_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx430_tgt
     .local int rx430_pos
     .local int rx430_off
@@ -5925,9 +6146,9 @@
     substr rx430_tgt, rx430_tgt, rx430_off
   rx430_start:
     eq $I10, 1, rx430_restart
-    if_null rx430_debug, debug_556
+    if_null rx430_debug, debug_562
     rx430_cur."!cursor_debug"("START", "term:sym<package_declarator>")
-  debug_556:
+  debug_562:
     $I10 = self.'from'()
     ne $I10, -1, rxscan434_done
     goto rxscan434_scan
@@ -5940,6 +6161,7 @@
     set_addr $I10, rxscan434_loop
     rx430_cur."!mark_push"(0, rx430_pos, $I10)
   rxscan434_done:
+.annotate 'line', 228
   # rx subrule "package_declarator" subtype=capture negate=
     rx430_cur."!cursor_pos"(rx430_pos)
     $P10 = rx430_cur."package_declarator"()
@@ -5949,14 +6171,15 @@
     rx430_pos = $P10."pos"()
   # rx pass
     rx430_cur."!cursor_pass"(rx430_pos, "term:sym<package_declarator>")
-    if_null rx430_debug, debug_557
+    if_null rx430_debug, debug_563
     rx430_cur."!cursor_debug"("PASS", "term:sym<package_declarator>", " at pos=", rx430_pos)
-  debug_557:
+  debug_563:
     .return (rx430_cur)
   rx430_restart:
-    if_null rx430_debug, debug_558
+.annotate 'line', 4
+    if_null rx430_debug, debug_564
     rx430_cur."!cursor_debug"("NEXT", "term:sym<package_declarator>")
-  debug_558:
+  debug_564:
   rx430_fail:
     (rx430_rep, rx430_pos, $I10, $P10) = rx430_cur."!mark_fail"(0)
     lt rx430_pos, -1, rx430_done
@@ -5964,17 +6187,17 @@
     jump $I10
   rx430_done:
     rx430_cur."!cursor_fail"()
-    if_null rx430_debug, debug_559
+    if_null rx430_debug, debug_565
     rx430_cur."!cursor_debug"("FAIL", "term:sym<package_declarator>")
-  debug_559:
+  debug_565:
     .return (rx430_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>"  :subid("106_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__term:sym<package_declarator>"  :subid("106_1284728478.15265") :method
+.annotate 'line', 4
     $P432 = self."!PREFIX__!subrule"("package_declarator", "")
     new $P433, "ResizablePMCArray"
     push $P433, $P432
@@ -5983,8 +6206,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<scope_declarator>"  :subid("107_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "term:sym<scope_declarator>"  :subid("107_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx436_tgt
     .local int rx436_pos
     .local int rx436_off
@@ -6005,9 +6228,9 @@
     substr rx436_tgt, rx436_tgt, rx436_off
   rx436_start:
     eq $I10, 1, rx436_restart
-    if_null rx436_debug, debug_560
+    if_null rx436_debug, debug_566
     rx436_cur."!cursor_debug"("START", "term:sym<scope_declarator>")
-  debug_560:
+  debug_566:
     $I10 = self.'from'()
     ne $I10, -1, rxscan440_done
     goto rxscan440_scan
@@ -6020,6 +6243,7 @@
     set_addr $I10, rxscan440_loop
     rx436_cur."!mark_push"(0, rx436_pos, $I10)
   rxscan440_done:
+.annotate 'line', 229
   # rx subrule "scope_declarator" subtype=capture negate=
     rx436_cur."!cursor_pos"(rx436_pos)
     $P10 = rx436_cur."scope_declarator"()
@@ -6029,14 +6253,15 @@
     rx436_pos = $P10."pos"()
   # rx pass
     rx436_cur."!cursor_pass"(rx436_pos, "term:sym<scope_declarator>")
-    if_null rx436_debug, debug_561
+    if_null rx436_debug, debug_567
     rx436_cur."!cursor_debug"("PASS", "term:sym<scope_declarator>", " at pos=", rx436_pos)
-  debug_561:
+  debug_567:
     .return (rx436_cur)
   rx436_restart:
-    if_null rx436_debug, debug_562
+.annotate 'line', 4
+    if_null rx436_debug, debug_568
     rx436_cur."!cursor_debug"("NEXT", "term:sym<scope_declarator>")
-  debug_562:
+  debug_568:
   rx436_fail:
     (rx436_rep, rx436_pos, $I10, $P10) = rx436_cur."!mark_fail"(0)
     lt rx436_pos, -1, rx436_done
@@ -6044,17 +6269,17 @@
     jump $I10
   rx436_done:
     rx436_cur."!cursor_fail"()
-    if_null rx436_debug, debug_563
+    if_null rx436_debug, debug_569
     rx436_cur."!cursor_debug"("FAIL", "term:sym<scope_declarator>")
-  debug_563:
+  debug_569:
     .return (rx436_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>"  :subid("108_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__term:sym<scope_declarator>"  :subid("108_1284728478.15265") :method
+.annotate 'line', 4
     $P438 = self."!PREFIX__!subrule"("scope_declarator", "")
     new $P439, "ResizablePMCArray"
     push $P439, $P438
@@ -6063,8 +6288,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<routine_declarator>"  :subid("109_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "term:sym<routine_declarator>"  :subid("109_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx442_tgt
     .local int rx442_pos
     .local int rx442_off
@@ -6085,9 +6310,9 @@
     substr rx442_tgt, rx442_tgt, rx442_off
   rx442_start:
     eq $I10, 1, rx442_restart
-    if_null rx442_debug, debug_564
+    if_null rx442_debug, debug_570
     rx442_cur."!cursor_debug"("START", "term:sym<routine_declarator>")
-  debug_564:
+  debug_570:
     $I10 = self.'from'()
     ne $I10, -1, rxscan446_done
     goto rxscan446_scan
@@ -6100,6 +6325,7 @@
     set_addr $I10, rxscan446_loop
     rx442_cur."!mark_push"(0, rx442_pos, $I10)
   rxscan446_done:
+.annotate 'line', 230
   # rx subrule "routine_declarator" subtype=capture negate=
     rx442_cur."!cursor_pos"(rx442_pos)
     $P10 = rx442_cur."routine_declarator"()
@@ -6109,14 +6335,15 @@
     rx442_pos = $P10."pos"()
   # rx pass
     rx442_cur."!cursor_pass"(rx442_pos, "term:sym<routine_declarator>")
-    if_null rx442_debug, debug_565
+    if_null rx442_debug, debug_571
     rx442_cur."!cursor_debug"("PASS", "term:sym<routine_declarator>", " at pos=", rx442_pos)
-  debug_565:
+  debug_571:
     .return (rx442_cur)
   rx442_restart:
-    if_null rx442_debug, debug_566
+.annotate 'line', 4
+    if_null rx442_debug, debug_572
     rx442_cur."!cursor_debug"("NEXT", "term:sym<routine_declarator>")
-  debug_566:
+  debug_572:
   rx442_fail:
     (rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0)
     lt rx442_pos, -1, rx442_done
@@ -6124,17 +6351,17 @@
     jump $I10
   rx442_done:
     rx442_cur."!cursor_fail"()
-    if_null rx442_debug, debug_567
+    if_null rx442_debug, debug_573
     rx442_cur."!cursor_debug"("FAIL", "term:sym<routine_declarator>")
-  debug_567:
+  debug_573:
     .return (rx442_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>"  :subid("110_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__term:sym<routine_declarator>"  :subid("110_1284728478.15265") :method
+.annotate 'line', 4
     $P444 = self."!PREFIX__!subrule"("routine_declarator", "")
     new $P445, "ResizablePMCArray"
     push $P445, $P444
@@ -6143,9 +6370,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<multi_declarator>"  :subid("111_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .const 'Sub' $P453 = "113_1283975947.19641" 
+.sub "term:sym<multi_declarator>"  :subid("111_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .const 'Sub' $P453 = "113_1284728478.15265" 
     capture_lex $P453
     .local string rx448_tgt
     .local int rx448_pos
@@ -6167,9 +6394,9 @@
     substr rx448_tgt, rx448_tgt, rx448_off
   rx448_start:
     eq $I10, 1, rx448_restart
-    if_null rx448_debug, debug_568
+    if_null rx448_debug, debug_574
     rx448_cur."!cursor_debug"("START", "term:sym<multi_declarator>")
-  debug_568:
+  debug_574:
     $I10 = self.'from'()
     ne $I10, -1, rxscan451_done
     goto rxscan451_scan
@@ -6182,9 +6409,10 @@
     set_addr $I10, rxscan451_loop
     rx448_cur."!mark_push"(0, rx448_pos, $I10)
   rxscan451_done:
+.annotate 'line', 231
   # rx subrule "before" subtype=zerowidth negate=
     rx448_cur."!cursor_pos"(rx448_pos)
-    .const 'Sub' $P453 = "113_1283975947.19641" 
+    .const 'Sub' $P453 = "113_1284728478.15265" 
     capture_lex $P453
     $P10 = rx448_cur."before"($P453)
     unless $P10, rx448_fail
@@ -6197,14 +6425,15 @@
     rx448_pos = $P10."pos"()
   # rx pass
     rx448_cur."!cursor_pass"(rx448_pos, "term:sym<multi_declarator>")
-    if_null rx448_debug, debug_573
+    if_null rx448_debug, debug_579
     rx448_cur."!cursor_debug"("PASS", "term:sym<multi_declarator>", " at pos=", rx448_pos)
-  debug_573:
+  debug_579:
     .return (rx448_cur)
   rx448_restart:
-    if_null rx448_debug, debug_574
+.annotate 'line', 4
+    if_null rx448_debug, debug_580
     rx448_cur."!cursor_debug"("NEXT", "term:sym<multi_declarator>")
-  debug_574:
+  debug_580:
   rx448_fail:
     (rx448_rep, rx448_pos, $I10, $P10) = rx448_cur."!mark_fail"(0)
     lt rx448_pos, -1, rx448_done
@@ -6212,17 +6441,17 @@
     jump $I10
   rx448_done:
     rx448_cur."!cursor_fail"()
-    if_null rx448_debug, debug_575
+    if_null rx448_debug, debug_581
     rx448_cur."!cursor_debug"("FAIL", "term:sym<multi_declarator>")
-  debug_575:
+  debug_581:
     .return (rx448_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<multi_declarator>"  :subid("112_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__term:sym<multi_declarator>"  :subid("112_1284728478.15265") :method
+.annotate 'line', 4
     new $P450, "ResizablePMCArray"
     push $P450, ""
     .return ($P450)
@@ -6230,8 +6459,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block452"  :anon :subid("113_1283975947.19641") :method :outer("111_1283975947.19641")
-.annotate 'line', 0
+.sub "_block452"  :anon :subid("113_1284728478.15265") :method :outer("111_1284728478.15265")
+.annotate 'line', 231
     .local string rx454_tgt
     .local int rx454_pos
     .local int rx454_off
@@ -6252,9 +6481,9 @@
     substr rx454_tgt, rx454_tgt, rx454_off
   rx454_start:
     eq $I10, 1, rx454_restart
-    if_null rx454_debug, debug_569
+    if_null rx454_debug, debug_575
     rx454_cur."!cursor_debug"("START", "")
-  debug_569:
+  debug_575:
     $I10 = self.'from'()
     ne $I10, -1, rxscan455_done
     goto rxscan455_scan
@@ -6300,14 +6529,14 @@
   alt456_end:
   # rx pass
     rx454_cur."!cursor_pass"(rx454_pos, "")
-    if_null rx454_debug, debug_570
+    if_null rx454_debug, debug_576
     rx454_cur."!cursor_debug"("PASS", "", " at pos=", rx454_pos)
-  debug_570:
+  debug_576:
     .return (rx454_cur)
   rx454_restart:
-    if_null rx454_debug, debug_571
+    if_null rx454_debug, debug_577
     rx454_cur."!cursor_debug"("NEXT", "")
-  debug_571:
+  debug_577:
   rx454_fail:
     (rx454_rep, rx454_pos, $I10, $P10) = rx454_cur."!mark_fail"(0)
     lt rx454_pos, -1, rx454_done
@@ -6315,17 +6544,17 @@
     jump $I10
   rx454_done:
     rx454_cur."!cursor_fail"()
-    if_null rx454_debug, debug_572
+    if_null rx454_debug, debug_578
     rx454_cur."!cursor_debug"("FAIL", "")
-  debug_572:
+  debug_578:
     .return (rx454_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>"  :subid("114_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "term:sym<regex_declarator>"  :subid("114_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx458_tgt
     .local int rx458_pos
     .local int rx458_off
@@ -6346,9 +6575,9 @@
     substr rx458_tgt, rx458_tgt, rx458_off
   rx458_start:
     eq $I10, 1, rx458_restart
-    if_null rx458_debug, debug_576
+    if_null rx458_debug, debug_582
     rx458_cur."!cursor_debug"("START", "term:sym<regex_declarator>")
-  debug_576:
+  debug_582:
     $I10 = self.'from'()
     ne $I10, -1, rxscan462_done
     goto rxscan462_scan
@@ -6361,6 +6590,7 @@
     set_addr $I10, rxscan462_loop
     rx458_cur."!mark_push"(0, rx458_pos, $I10)
   rxscan462_done:
+.annotate 'line', 232
   # rx subrule "regex_declarator" subtype=capture negate=
     rx458_cur."!cursor_pos"(rx458_pos)
     $P10 = rx458_cur."regex_declarator"()
@@ -6370,14 +6600,15 @@
     rx458_pos = $P10."pos"()
   # rx pass
     rx458_cur."!cursor_pass"(rx458_pos, "term:sym<regex_declarator>")
-    if_null rx458_debug, debug_577
+    if_null rx458_debug, debug_583
     rx458_cur."!cursor_debug"("PASS", "term:sym<regex_declarator>", " at pos=", rx458_pos)
-  debug_577:
+  debug_583:
     .return (rx458_cur)
   rx458_restart:
-    if_null rx458_debug, debug_578
+.annotate 'line', 4
+    if_null rx458_debug, debug_584
     rx458_cur."!cursor_debug"("NEXT", "term:sym<regex_declarator>")
-  debug_578:
+  debug_584:
   rx458_fail:
     (rx458_rep, rx458_pos, $I10, $P10) = rx458_cur."!mark_fail"(0)
     lt rx458_pos, -1, rx458_done
@@ -6385,17 +6616,17 @@
     jump $I10
   rx458_done:
     rx458_cur."!cursor_fail"()
-    if_null rx458_debug, debug_579
+    if_null rx458_debug, debug_585
     rx458_cur."!cursor_debug"("FAIL", "term:sym<regex_declarator>")
-  debug_579:
+  debug_585:
     .return (rx458_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>"  :subid("115_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__term:sym<regex_declarator>"  :subid("115_1284728478.15265") :method
+.annotate 'line', 4
     $P460 = self."!PREFIX__!subrule"("regex_declarator", "")
     new $P461, "ResizablePMCArray"
     push $P461, $P460
@@ -6404,8 +6635,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<statement_prefix>"  :subid("116_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "term:sym<statement_prefix>"  :subid("116_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx464_tgt
     .local int rx464_pos
     .local int rx464_off
@@ -6426,9 +6657,9 @@
     substr rx464_tgt, rx464_tgt, rx464_off
   rx464_start:
     eq $I10, 1, rx464_restart
-    if_null rx464_debug, debug_580
+    if_null rx464_debug, debug_586
     rx464_cur."!cursor_debug"("START", "term:sym<statement_prefix>")
-  debug_580:
+  debug_586:
     $I10 = self.'from'()
     ne $I10, -1, rxscan468_done
     goto rxscan468_scan
@@ -6441,6 +6672,7 @@
     set_addr $I10, rxscan468_loop
     rx464_cur."!mark_push"(0, rx464_pos, $I10)
   rxscan468_done:
+.annotate 'line', 233
   # rx subrule "statement_prefix" subtype=capture negate=
     rx464_cur."!cursor_pos"(rx464_pos)
     $P10 = rx464_cur."statement_prefix"()
@@ -6450,14 +6682,15 @@
     rx464_pos = $P10."pos"()
   # rx pass
     rx464_cur."!cursor_pass"(rx464_pos, "term:sym<statement_prefix>")
-    if_null rx464_debug, debug_581
+    if_null rx464_debug, debug_587
     rx464_cur."!cursor_debug"("PASS", "term:sym<statement_prefix>", " at pos=", rx464_pos)
-  debug_581:
+  debug_587:
     .return (rx464_cur)
   rx464_restart:
-    if_null rx464_debug, debug_582
+.annotate 'line', 4
+    if_null rx464_debug, debug_588
     rx464_cur."!cursor_debug"("NEXT", "term:sym<statement_prefix>")
-  debug_582:
+  debug_588:
   rx464_fail:
     (rx464_rep, rx464_pos, $I10, $P10) = rx464_cur."!mark_fail"(0)
     lt rx464_pos, -1, rx464_done
@@ -6465,17 +6698,17 @@
     jump $I10
   rx464_done:
     rx464_cur."!cursor_fail"()
-    if_null rx464_debug, debug_583
+    if_null rx464_debug, debug_589
     rx464_cur."!cursor_debug"("FAIL", "term:sym<statement_prefix>")
-  debug_583:
+  debug_589:
     .return (rx464_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>"  :subid("117_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__term:sym<statement_prefix>"  :subid("117_1284728478.15265") :method
+.annotate 'line', 4
     $P466 = self."!PREFIX__!subrule"("statement_prefix", "")
     new $P467, "ResizablePMCArray"
     push $P467, $P466
@@ -6484,8 +6717,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>"  :subid("118_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "term:sym<lambda>"  :subid("118_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx470_tgt
     .local int rx470_pos
     .local int rx470_off
@@ -6506,9 +6739,9 @@
     substr rx470_tgt, rx470_tgt, rx470_off
   rx470_start:
     eq $I10, 1, rx470_restart
-    if_null rx470_debug, debug_584
+    if_null rx470_debug, debug_590
     rx470_cur."!cursor_debug"("START", "term:sym<lambda>")
-  debug_584:
+  debug_590:
     $I10 = self.'from'()
     ne $I10, -1, rxscan473_done
     goto rxscan473_scan
@@ -6521,6 +6754,7 @@
     set_addr $I10, rxscan473_loop
     rx470_cur."!mark_push"(0, rx470_pos, $I10)
   rxscan473_done:
+.annotate 'line', 234
   # rx subrule "lambda" subtype=zerowidth negate=
     rx470_cur."!cursor_pos"(rx470_pos)
     $P10 = rx470_cur."lambda"()
@@ -6534,14 +6768,15 @@
     rx470_pos = $P10."pos"()
   # rx pass
     rx470_cur."!cursor_pass"(rx470_pos, "term:sym<lambda>")
-    if_null rx470_debug, debug_585
+    if_null rx470_debug, debug_591
     rx470_cur."!cursor_debug"("PASS", "term:sym<lambda>", " at pos=", rx470_pos)
-  debug_585:
+  debug_591:
     .return (rx470_cur)
   rx470_restart:
-    if_null rx470_debug, debug_586
+.annotate 'line', 4
+    if_null rx470_debug, debug_592
     rx470_cur."!cursor_debug"("NEXT", "term:sym<lambda>")
-  debug_586:
+  debug_592:
   rx470_fail:
     (rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0)
     lt rx470_pos, -1, rx470_done
@@ -6549,17 +6784,17 @@
     jump $I10
   rx470_done:
     rx470_cur."!cursor_fail"()
-    if_null rx470_debug, debug_587
+    if_null rx470_debug, debug_593
     rx470_cur."!cursor_debug"("FAIL", "term:sym<lambda>")
-  debug_587:
+  debug_593:
     .return (rx470_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>"  :subid("119_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__term:sym<lambda>"  :subid("119_1284728478.15265") :method
+.annotate 'line', 4
     new $P472, "ResizablePMCArray"
     push $P472, ""
     .return ($P472)
@@ -6567,8 +6802,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "fatarrow"  :subid("120_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "fatarrow"  :subid("120_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx475_tgt
     .local int rx475_pos
     .local int rx475_off
@@ -6589,9 +6824,9 @@
     substr rx475_tgt, rx475_tgt, rx475_off
   rx475_start:
     eq $I10, 1, rx475_restart
-    if_null rx475_debug, debug_588
+    if_null rx475_debug, debug_594
     rx475_cur."!cursor_debug"("START", "fatarrow")
-  debug_588:
+  debug_594:
     $I10 = self.'from'()
     ne $I10, -1, rxscan479_done
     goto rxscan479_scan
@@ -6604,6 +6839,7 @@
     set_addr $I10, rxscan479_loop
     rx475_cur."!mark_push"(0, rx475_pos, $I10)
   rxscan479_done:
+.annotate 'line', 237
   # rx subrule "identifier" subtype=capture negate=
     rx475_cur."!cursor_pos"(rx475_pos)
     $P10 = rx475_cur."identifier"()
@@ -6645,16 +6881,18 @@
     rx475_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("val")
     rx475_pos = $P10."pos"()
+.annotate 'line', 236
   # rx pass
     rx475_cur."!cursor_pass"(rx475_pos, "fatarrow")
-    if_null rx475_debug, debug_589
+    if_null rx475_debug, debug_595
     rx475_cur."!cursor_debug"("PASS", "fatarrow", " at pos=", rx475_pos)
-  debug_589:
+  debug_595:
     .return (rx475_cur)
   rx475_restart:
-    if_null rx475_debug, debug_590
+.annotate 'line', 4
+    if_null rx475_debug, debug_596
     rx475_cur."!cursor_debug"("NEXT", "fatarrow")
-  debug_590:
+  debug_596:
   rx475_fail:
     (rx475_rep, rx475_pos, $I10, $P10) = rx475_cur."!mark_fail"(0)
     lt rx475_pos, -1, rx475_done
@@ -6662,17 +6900,17 @@
     jump $I10
   rx475_done:
     rx475_cur."!cursor_fail"()
-    if_null rx475_debug, debug_591
+    if_null rx475_debug, debug_597
     rx475_cur."!cursor_debug"("FAIL", "fatarrow")
-  debug_591:
+  debug_597:
     .return (rx475_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow"  :subid("121_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__fatarrow"  :subid("121_1284728478.15265") :method
+.annotate 'line', 4
     $P477 = self."!PREFIX__!subrule"("identifier", "")
     new $P478, "ResizablePMCArray"
     push $P478, $P477
@@ -6681,8 +6919,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "colonpair"  :subid("122_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "colonpair"  :subid("122_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx482_tgt
     .local int rx482_pos
     .local int rx482_off
@@ -6704,9 +6942,9 @@
     substr rx482_tgt, rx482_tgt, rx482_off
   rx482_start:
     eq $I10, 1, rx482_restart
-    if_null rx482_debug, debug_592
+    if_null rx482_debug, debug_598
     rx482_cur."!cursor_debug"("START", "colonpair")
-  debug_592:
+  debug_598:
     $I10 = self.'from'()
     ne $I10, -1, rxscan488_done
     goto rxscan488_scan
@@ -6719,6 +6957,7 @@
     set_addr $I10, rxscan488_loop
     rx482_cur."!mark_push"(0, rx482_pos, $I10)
   rxscan488_done:
+.annotate 'line', 241
   # rx literal  ":"
     add $I11, rx482_pos, 1
     gt $I11, rx482_eos, rx482_fail
@@ -6727,8 +6966,10 @@
     ne $I11, 58, rx482_fail
     add rx482_pos, 1
   alt489_0:
+.annotate 'line', 242
     set_addr $I10, alt489_1
     rx482_cur."!mark_push"(0, rx482_pos, $I10)
+.annotate 'line', 243
   # rx subcapture "not"
     set_addr $I10, rxcap_490_fail
     rx482_cur."!mark_push"(0, rx482_pos, $I10)
@@ -6761,6 +7002,7 @@
   alt489_1:
     set_addr $I10, alt489_2
     rx482_cur."!mark_push"(0, rx482_pos, $I10)
+.annotate 'line', 244
   # rx subrule "identifier" subtype=capture negate=
     rx482_cur."!cursor_pos"(rx482_pos)
     $P10 = rx482_cur."identifier"()
@@ -6790,6 +7032,7 @@
   rxquantr491_done:
     goto alt489_end
   alt489_2:
+.annotate 'line', 245
   # rx subrule "circumfix" subtype=capture negate=
     rx482_cur."!cursor_pos"(rx482_pos)
     $P10 = rx482_cur."circumfix"()
@@ -6798,16 +7041,18 @@
     $P10."!cursor_names"("circumfix")
     rx482_pos = $P10."pos"()
   alt489_end:
+.annotate 'line', 240
   # rx pass
     rx482_cur."!cursor_pass"(rx482_pos, "colonpair")
-    if_null rx482_debug, debug_593
+    if_null rx482_debug, debug_599
     rx482_cur."!cursor_debug"("PASS", "colonpair", " at pos=", rx482_pos)
-  debug_593:
+  debug_599:
     .return (rx482_cur)
   rx482_restart:
-    if_null rx482_debug, debug_594
+.annotate 'line', 4
+    if_null rx482_debug, debug_600
     rx482_cur."!cursor_debug"("NEXT", "colonpair")
-  debug_594:
+  debug_600:
   rx482_fail:
     (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0)
     lt rx482_pos, -1, rx482_done
@@ -6815,17 +7060,17 @@
     jump $I10
   rx482_done:
     rx482_cur."!cursor_fail"()
-    if_null rx482_debug, debug_595
+    if_null rx482_debug, debug_601
     rx482_cur."!cursor_debug"("FAIL", "colonpair")
-  debug_595:
+  debug_601:
     .return (rx482_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair"  :subid("123_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__colonpair"  :subid("123_1284728478.15265") :method
+.annotate 'line', 4
     $P484 = self."!PREFIX__!subrule"("circumfix", ":")
     $P485 = self."!PREFIX__!subrule"("identifier", ":")
     $P486 = self."!PREFIX__!subrule"("identifier", ":!")
@@ -6838,8 +7083,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable"  :subid("124_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "variable"  :subid("124_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx494_tgt
     .local int rx494_pos
     .local int rx494_off
@@ -6861,9 +7106,9 @@
     substr rx494_tgt, rx494_tgt, rx494_off
   rx494_start:
     eq $I10, 1, rx494_restart
-    if_null rx494_debug, debug_596
+    if_null rx494_debug, debug_602
     rx494_cur."!cursor_debug"("START", "variable")
-  debug_596:
+  debug_602:
     $I10 = self.'from'()
     ne $I10, -1, rxscan499_done
     goto rxscan499_scan
@@ -6877,8 +7122,10 @@
     rx494_cur."!mark_push"(0, rx494_pos, $I10)
   rxscan499_done:
   alt500_0:
+.annotate 'line', 249
     set_addr $I10, alt500_1
     rx494_cur."!mark_push"(0, rx494_pos, $I10)
+.annotate 'line', 250
   # rx subrule "sigil" subtype=capture negate=
     rx494_cur."!cursor_pos"(rx494_pos)
     $P10 = rx494_cur."sigil"()
@@ -6917,6 +7164,7 @@
   alt500_1:
     set_addr $I10, alt500_2
     rx494_cur."!mark_push"(0, rx494_pos, $I10)
+.annotate 'line', 251
   # rx subrule "sigil" subtype=capture negate=
     rx494_cur."!cursor_pos"(rx494_pos)
     $P10 = rx494_cur."sigil"()
@@ -6925,7 +7173,6 @@
     $P10."!cursor_names"("sigil")
     rx494_pos = $P10."pos"()
   # rx enumcharlist negate=0 zerowidth
-    ge rx494_pos, rx494_eos, rx494_fail
     sub $I10, rx494_pos, rx494_off
     substr $S10, rx494_tgt, $I10, 1
     index $I11, "<[", $S10
@@ -6939,6 +7186,7 @@
     rx494_pos = $P10."pos"()
     goto alt500_end
   alt500_2:
+.annotate 'line', 252
   # rx subcapture "sigil"
     set_addr $I10, rxcap_503_fail
     rx494_cur."!mark_push"(0, rx494_pos, $I10)
@@ -6982,16 +7230,18 @@
     goto rx494_fail
   rxcap_504_done:
   alt500_end:
+.annotate 'line', 249
   # rx pass
     rx494_cur."!cursor_pass"(rx494_pos, "variable")
-    if_null rx494_debug, debug_597
+    if_null rx494_debug, debug_603
     rx494_cur."!cursor_debug"("PASS", "variable", " at pos=", rx494_pos)
-  debug_597:
+  debug_603:
     .return (rx494_cur)
   rx494_restart:
-    if_null rx494_debug, debug_598
+.annotate 'line', 4
+    if_null rx494_debug, debug_604
     rx494_cur."!cursor_debug"("NEXT", "variable")
-  debug_598:
+  debug_604:
   rx494_fail:
     (rx494_rep, rx494_pos, $I10, $P10) = rx494_cur."!mark_fail"(0)
     lt rx494_pos, -1, rx494_done
@@ -6999,17 +7249,17 @@
     jump $I10
   rx494_done:
     rx494_cur."!cursor_fail"()
-    if_null rx494_debug, debug_599
+    if_null rx494_debug, debug_605
     rx494_cur."!cursor_debug"("FAIL", "variable")
-  debug_599:
+  debug_605:
     .return (rx494_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable"  :subid("125_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__variable"  :subid("125_1284728478.15265") :method
+.annotate 'line', 4
     $P496 = self."!PREFIX__!subrule"("sigil", "")
     $P497 = self."!PREFIX__!subrule"("sigil", "")
     new $P498, "ResizablePMCArray"
@@ -7023,8 +7273,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "sigil"  :subid("126_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "sigil"  :subid("126_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx506_tgt
     .local int rx506_pos
     .local int rx506_off
@@ -7045,9 +7295,9 @@
     substr rx506_tgt, rx506_tgt, rx506_off
   rx506_start:
     eq $I10, 1, rx506_restart
-    if_null rx506_debug, debug_600
+    if_null rx506_debug, debug_606
     rx506_cur."!cursor_debug"("START", "sigil")
-  debug_600:
+  debug_606:
     $I10 = self.'from'()
     ne $I10, -1, rxscan509_done
     goto rxscan509_scan
@@ -7060,6 +7310,7 @@
     set_addr $I10, rxscan509_loop
     rx506_cur."!mark_push"(0, rx506_pos, $I10)
   rxscan509_done:
+.annotate 'line', 255
   # rx enumcharlist negate=0 
     ge rx506_pos, rx506_eos, rx506_fail
     sub $I10, rx506_pos, rx506_off
@@ -7069,14 +7320,15 @@
     inc rx506_pos
   # rx pass
     rx506_cur."!cursor_pass"(rx506_pos, "sigil")
-    if_null rx506_debug, debug_601
+    if_null rx506_debug, debug_607
     rx506_cur."!cursor_debug"("PASS", "sigil", " at pos=", rx506_pos)
-  debug_601:
+  debug_607:
     .return (rx506_cur)
   rx506_restart:
-    if_null rx506_debug, debug_602
+.annotate 'line', 4
+    if_null rx506_debug, debug_608
     rx506_cur."!cursor_debug"("NEXT", "sigil")
-  debug_602:
+  debug_608:
   rx506_fail:
     (rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0)
     lt rx506_pos, -1, rx506_done
@@ -7084,17 +7336,17 @@
     jump $I10
   rx506_done:
     rx506_cur."!cursor_fail"()
-    if_null rx506_debug, debug_603
+    if_null rx506_debug, debug_609
     rx506_cur."!cursor_debug"("FAIL", "sigil")
-  debug_603:
+  debug_609:
     .return (rx506_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil"  :subid("127_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__sigil"  :subid("127_1284728478.15265") :method
+.annotate 'line', 4
     new $P508, "ResizablePMCArray"
     push $P508, "&"
     push $P508, "%"
@@ -7105,8 +7357,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "twigil"  :subid("128_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "twigil"  :subid("128_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx511_tgt
     .local int rx511_pos
     .local int rx511_off
@@ -7127,9 +7379,9 @@
     substr rx511_tgt, rx511_tgt, rx511_off
   rx511_start:
     eq $I10, 1, rx511_restart
-    if_null rx511_debug, debug_604
+    if_null rx511_debug, debug_610
     rx511_cur."!cursor_debug"("START", "twigil")
-  debug_604:
+  debug_610:
     $I10 = self.'from'()
     ne $I10, -1, rxscan514_done
     goto rxscan514_scan
@@ -7142,6 +7394,7 @@
     set_addr $I10, rxscan514_loop
     rx511_cur."!mark_push"(0, rx511_pos, $I10)
   rxscan514_done:
+.annotate 'line', 257
   # rx enumcharlist negate=0 
     ge rx511_pos, rx511_eos, rx511_fail
     sub $I10, rx511_pos, rx511_off
@@ -7151,14 +7404,15 @@
     inc rx511_pos
   # rx pass
     rx511_cur."!cursor_pass"(rx511_pos, "twigil")
-    if_null rx511_debug, debug_605
+    if_null rx511_debug, debug_611
     rx511_cur."!cursor_debug"("PASS", "twigil", " at pos=", rx511_pos)
-  debug_605:
+  debug_611:
     .return (rx511_cur)
   rx511_restart:
-    if_null rx511_debug, debug_606
+.annotate 'line', 4
+    if_null rx511_debug, debug_612
     rx511_cur."!cursor_debug"("NEXT", "twigil")
-  debug_606:
+  debug_612:
   rx511_fail:
     (rx511_rep, rx511_pos, $I10, $P10) = rx511_cur."!mark_fail"(0)
     lt rx511_pos, -1, rx511_done
@@ -7166,17 +7420,17 @@
     jump $I10
   rx511_done:
     rx511_cur."!cursor_fail"()
-    if_null rx511_debug, debug_607
+    if_null rx511_debug, debug_613
     rx511_cur."!cursor_debug"("FAIL", "twigil")
-  debug_607:
+  debug_613:
     .return (rx511_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil"  :subid("129_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__twigil"  :subid("129_1284728478.15265") :method
+.annotate 'line', 4
     new $P513, "ResizablePMCArray"
     push $P513, "?"
     push $P513, "!"
@@ -7186,24 +7440,24 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator"  :subid("130_1283975947.19641") :method
-.annotate 'line', 0
+.sub "package_declarator"  :subid("130_1284728478.15265") :method
+.annotate 'line', 259
     $P516 = self."!protoregex"("package_declarator")
     .return ($P516)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator"  :subid("131_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__package_declarator"  :subid("131_1284728478.15265") :method
+.annotate 'line', 259
     $P518 = self."!PREFIX__!protoregex"("package_declarator")
     .return ($P518)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<module>"  :subid("132_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "package_declarator:sym<module>"  :subid("132_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx520_tgt
     .local int rx520_pos
     .local int rx520_off
@@ -7224,9 +7478,9 @@
     substr rx520_tgt, rx520_tgt, rx520_off
   rx520_start:
     eq $I10, 1, rx520_restart
-    if_null rx520_debug, debug_608
+    if_null rx520_debug, debug_614
     rx520_cur."!cursor_debug"("START", "package_declarator:sym<module>")
-  debug_608:
+  debug_614:
     $I10 = self.'from'()
     ne $I10, -1, rxscan524_done
     goto rxscan524_scan
@@ -7239,6 +7493,7 @@
     set_addr $I10, rxscan524_loop
     rx520_cur."!mark_push"(0, rx520_pos, $I10)
   rxscan524_done:
+.annotate 'line', 260
   # rx subcapture "sym"
     set_addr $I10, rxcap_525_fail
     rx520_cur."!mark_push"(0, rx520_pos, $I10)
@@ -7269,14 +7524,15 @@
     rx520_pos = $P10."pos"()
   # rx pass
     rx520_cur."!cursor_pass"(rx520_pos, "package_declarator:sym<module>")
-    if_null rx520_debug, debug_609
+    if_null rx520_debug, debug_615
     rx520_cur."!cursor_debug"("PASS", "package_declarator:sym<module>", " at pos=", rx520_pos)
-  debug_609:
+  debug_615:
     .return (rx520_cur)
   rx520_restart:
-    if_null rx520_debug, debug_610
+.annotate 'line', 4
+    if_null rx520_debug, debug_616
     rx520_cur."!cursor_debug"("NEXT", "package_declarator:sym<module>")
-  debug_610:
+  debug_616:
   rx520_fail:
     (rx520_rep, rx520_pos, $I10, $P10) = rx520_cur."!mark_fail"(0)
     lt rx520_pos, -1, rx520_done
@@ -7284,17 +7540,17 @@
     jump $I10
   rx520_done:
     rx520_cur."!cursor_fail"()
-    if_null rx520_debug, debug_611
+    if_null rx520_debug, debug_617
     rx520_cur."!cursor_debug"("FAIL", "package_declarator:sym<module>")
-  debug_611:
+  debug_617:
     .return (rx520_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>"  :subid("133_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__package_declarator:sym<module>"  :subid("133_1284728478.15265") :method
+.annotate 'line', 4
     $P522 = self."!PREFIX__!subrule"("package_def", "module")
     new $P523, "ResizablePMCArray"
     push $P523, $P522
@@ -7303,8 +7559,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<class>"  :subid("134_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "package_declarator:sym<class>"  :subid("134_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx527_tgt
     .local int rx527_pos
     .local int rx527_off
@@ -7325,9 +7581,9 @@
     substr rx527_tgt, rx527_tgt, rx527_off
   rx527_start:
     eq $I10, 1, rx527_restart
-    if_null rx527_debug, debug_612
+    if_null rx527_debug, debug_618
     rx527_cur."!cursor_debug"("START", "package_declarator:sym<class>")
-  debug_612:
+  debug_618:
     $I10 = self.'from'()
     ne $I10, -1, rxscan532_done
     goto rxscan532_scan
@@ -7340,6 +7596,7 @@
     set_addr $I10, rxscan532_loop
     rx527_cur."!mark_push"(0, rx527_pos, $I10)
   rxscan532_done:
+.annotate 'line', 261
   # rx subcapture "sym"
     set_addr $I10, rxcap_534_fail
     rx527_cur."!mark_push"(0, rx527_pos, $I10)
@@ -7383,14 +7640,15 @@
     rx527_pos = $P10."pos"()
   # rx pass
     rx527_cur."!cursor_pass"(rx527_pos, "package_declarator:sym<class>")
-    if_null rx527_debug, debug_613
+    if_null rx527_debug, debug_619
     rx527_cur."!cursor_debug"("PASS", "package_declarator:sym<class>", " at pos=", rx527_pos)
-  debug_613:
+  debug_619:
     .return (rx527_cur)
   rx527_restart:
-    if_null rx527_debug, debug_614
+.annotate 'line', 4
+    if_null rx527_debug, debug_620
     rx527_cur."!cursor_debug"("NEXT", "package_declarator:sym<class>")
-  debug_614:
+  debug_620:
   rx527_fail:
     (rx527_rep, rx527_pos, $I10, $P10) = rx527_cur."!mark_fail"(0)
     lt rx527_pos, -1, rx527_done
@@ -7398,17 +7656,17 @@
     jump $I10
   rx527_done:
     rx527_cur."!cursor_fail"()
-    if_null rx527_debug, debug_615
+    if_null rx527_debug, debug_621
     rx527_cur."!cursor_debug"("FAIL", "package_declarator:sym<class>")
-  debug_615:
+  debug_621:
     .return (rx527_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>"  :subid("135_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__package_declarator:sym<class>"  :subid("135_1284728478.15265") :method
+.annotate 'line', 4
     $P529 = self."!PREFIX__!subrule"("package_def", "grammar")
     $P530 = self."!PREFIX__!subrule"("package_def", "class")
     new $P531, "ResizablePMCArray"
@@ -7419,8 +7677,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_def"  :subid("136_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "package_def"  :subid("136_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx536_tgt
     .local int rx536_pos
     .local int rx536_off
@@ -7442,9 +7700,9 @@
     substr rx536_tgt, rx536_tgt, rx536_off
   rx536_start:
     eq $I10, 1, rx536_restart
-    if_null rx536_debug, debug_616
+    if_null rx536_debug, debug_622
     rx536_cur."!cursor_debug"("START", "package_def")
-  debug_616:
+  debug_622:
     $I10 = self.'from'()
     ne $I10, -1, rxscan540_done
     goto rxscan540_scan
@@ -7457,11 +7715,13 @@
     set_addr $I10, rxscan540_loop
     rx536_cur."!mark_push"(0, rx536_pos, $I10)
   rxscan540_done:
+.annotate 'line', 263
   # rx subrule "ws" subtype=method negate=
     rx536_cur."!cursor_pos"(rx536_pos)
     $P10 = rx536_cur."ws"()
     unless $P10, rx536_fail
     rx536_pos = $P10."pos"()
+.annotate 'line', 264
   # rx subrule "name" subtype=capture negate=
     rx536_cur."!cursor_pos"(rx536_pos)
     $P10 = rx536_cur."name"()
@@ -7474,6 +7734,7 @@
     $P10 = rx536_cur."ws"()
     unless $P10, rx536_fail
     rx536_pos = $P10."pos"()
+.annotate 'line', 265
   # rx rxquantr543 ** 0..1
     set_addr $I10, rxquantr543_done
     rx536_cur."!mark_push"(0, rx536_pos, $I10)
@@ -7516,8 +7777,10 @@
     unless $P10, rx536_fail
     rx536_pos = $P10."pos"()
   alt548_0:
+.annotate 'line', 266
     set_addr $I10, alt548_1
     rx536_cur."!mark_push"(0, rx536_pos, $I10)
+.annotate 'line', 267
   # rx subrule "ws" subtype=method negate=
     rx536_cur."!cursor_pos"(rx536_pos)
     $P10 = rx536_cur."ws"()
@@ -7551,13 +7814,13 @@
   alt548_1:
     set_addr $I10, alt548_2
     rx536_cur."!mark_push"(0, rx536_pos, $I10)
+.annotate 'line', 268
   # rx subrule "ws" subtype=method negate=
     rx536_cur."!cursor_pos"(rx536_pos)
     $P10 = rx536_cur."ws"()
     unless $P10, rx536_fail
     rx536_pos = $P10."pos"()
   # rx enumcharlist negate=0 zerowidth
-    ge rx536_pos, rx536_eos, rx536_fail
     sub $I10, rx536_pos, rx536_off
     substr $S10, rx536_tgt, $I10, 1
     index $I11, "{", $S10
@@ -7581,6 +7844,7 @@
     rx536_pos = $P10."pos"()
     goto alt548_end
   alt548_2:
+.annotate 'line', 269
   # rx subrule "ws" subtype=method negate=
     rx536_cur."!cursor_pos"(rx536_pos)
     $P10 = rx536_cur."ws"()
@@ -7597,21 +7861,24 @@
     unless $P10, rx536_fail
     rx536_pos = $P10."pos"()
   alt548_end:
+.annotate 'line', 270
   # rx subrule "ws" subtype=method negate=
     rx536_cur."!cursor_pos"(rx536_pos)
     $P10 = rx536_cur."ws"()
     unless $P10, rx536_fail
     rx536_pos = $P10."pos"()
+.annotate 'line', 263
   # rx pass
     rx536_cur."!cursor_pass"(rx536_pos, "package_def")
-    if_null rx536_debug, debug_617
+    if_null rx536_debug, debug_623
     rx536_cur."!cursor_debug"("PASS", "package_def", " at pos=", rx536_pos)
-  debug_617:
+  debug_623:
     .return (rx536_cur)
   rx536_restart:
-    if_null rx536_debug, debug_618
+.annotate 'line', 4
+    if_null rx536_debug, debug_624
     rx536_cur."!cursor_debug"("NEXT", "package_def")
-  debug_618:
+  debug_624:
   rx536_fail:
     (rx536_rep, rx536_pos, $I10, $P10) = rx536_cur."!mark_fail"(0)
     lt rx536_pos, -1, rx536_done
@@ -7619,17 +7886,17 @@
     jump $I10
   rx536_done:
     rx536_cur."!cursor_fail"()
-    if_null rx536_debug, debug_619
+    if_null rx536_debug, debug_625
     rx536_cur."!cursor_debug"("FAIL", "package_def")
-  debug_619:
+  debug_625:
     .return (rx536_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def"  :subid("137_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__package_def"  :subid("137_1284728478.15265") :method
+.annotate 'line', 4
     $P538 = self."!PREFIX__!subrule"("ws", "")
     new $P539, "ResizablePMCArray"
     push $P539, $P538
@@ -7638,24 +7905,24 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator"  :subid("138_1283975947.19641") :method
-.annotate 'line', 0
+.sub "scope_declarator"  :subid("138_1284728478.15265") :method
+.annotate 'line', 273
     $P559 = self."!protoregex"("scope_declarator")
     .return ($P559)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator"  :subid("139_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__scope_declarator"  :subid("139_1284728478.15265") :method
+.annotate 'line', 273
     $P561 = self."!PREFIX__!protoregex"("scope_declarator")
     .return ($P561)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<my>"  :subid("140_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "scope_declarator:sym<my>"  :subid("140_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx563_tgt
     .local int rx563_pos
     .local int rx563_off
@@ -7676,9 +7943,9 @@
     substr rx563_tgt, rx563_tgt, rx563_off
   rx563_start:
     eq $I10, 1, rx563_restart
-    if_null rx563_debug, debug_620
+    if_null rx563_debug, debug_626
     rx563_cur."!cursor_debug"("START", "scope_declarator:sym<my>")
-  debug_620:
+  debug_626:
     $I10 = self.'from'()
     ne $I10, -1, rxscan567_done
     goto rxscan567_scan
@@ -7691,6 +7958,7 @@
     set_addr $I10, rxscan567_loop
     rx563_cur."!mark_push"(0, rx563_pos, $I10)
   rxscan567_done:
+.annotate 'line', 274
   # rx subcapture "sym"
     set_addr $I10, rxcap_568_fail
     rx563_cur."!mark_push"(0, rx563_pos, $I10)
@@ -7721,14 +7989,15 @@
     rx563_pos = $P10."pos"()
   # rx pass
     rx563_cur."!cursor_pass"(rx563_pos, "scope_declarator:sym<my>")
-    if_null rx563_debug, debug_621
+    if_null rx563_debug, debug_627
     rx563_cur."!cursor_debug"("PASS", "scope_declarator:sym<my>", " at pos=", rx563_pos)
-  debug_621:
+  debug_627:
     .return (rx563_cur)
   rx563_restart:
-    if_null rx563_debug, debug_622
+.annotate 'line', 4
+    if_null rx563_debug, debug_628
     rx563_cur."!cursor_debug"("NEXT", "scope_declarator:sym<my>")
-  debug_622:
+  debug_628:
   rx563_fail:
     (rx563_rep, rx563_pos, $I10, $P10) = rx563_cur."!mark_fail"(0)
     lt rx563_pos, -1, rx563_done
@@ -7736,17 +8005,17 @@
     jump $I10
   rx563_done:
     rx563_cur."!cursor_fail"()
-    if_null rx563_debug, debug_623
+    if_null rx563_debug, debug_629
     rx563_cur."!cursor_debug"("FAIL", "scope_declarator:sym<my>")
-  debug_623:
+  debug_629:
     .return (rx563_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>"  :subid("141_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__scope_declarator:sym<my>"  :subid("141_1284728478.15265") :method
+.annotate 'line', 4
     $P565 = self."!PREFIX__!subrule"("scoped", "my")
     new $P566, "ResizablePMCArray"
     push $P566, $P565
@@ -7755,8 +8024,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<our>"  :subid("142_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "scope_declarator:sym<our>"  :subid("142_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx570_tgt
     .local int rx570_pos
     .local int rx570_off
@@ -7777,9 +8046,9 @@
     substr rx570_tgt, rx570_tgt, rx570_off
   rx570_start:
     eq $I10, 1, rx570_restart
-    if_null rx570_debug, debug_624
+    if_null rx570_debug, debug_630
     rx570_cur."!cursor_debug"("START", "scope_declarator:sym<our>")
-  debug_624:
+  debug_630:
     $I10 = self.'from'()
     ne $I10, -1, rxscan574_done
     goto rxscan574_scan
@@ -7792,6 +8061,7 @@
     set_addr $I10, rxscan574_loop
     rx570_cur."!mark_push"(0, rx570_pos, $I10)
   rxscan574_done:
+.annotate 'line', 275
   # rx subcapture "sym"
     set_addr $I10, rxcap_575_fail
     rx570_cur."!mark_push"(0, rx570_pos, $I10)
@@ -7822,14 +8092,15 @@
     rx570_pos = $P10."pos"()
   # rx pass
     rx570_cur."!cursor_pass"(rx570_pos, "scope_declarator:sym<our>")
-    if_null rx570_debug, debug_625
+    if_null rx570_debug, debug_631
     rx570_cur."!cursor_debug"("PASS", "scope_declarator:sym<our>", " at pos=", rx570_pos)
-  debug_625:
+  debug_631:
     .return (rx570_cur)
   rx570_restart:
-    if_null rx570_debug, debug_626
+.annotate 'line', 4
+    if_null rx570_debug, debug_632
     rx570_cur."!cursor_debug"("NEXT", "scope_declarator:sym<our>")
-  debug_626:
+  debug_632:
   rx570_fail:
     (rx570_rep, rx570_pos, $I10, $P10) = rx570_cur."!mark_fail"(0)
     lt rx570_pos, -1, rx570_done
@@ -7837,17 +8108,17 @@
     jump $I10
   rx570_done:
     rx570_cur."!cursor_fail"()
-    if_null rx570_debug, debug_627
+    if_null rx570_debug, debug_633
     rx570_cur."!cursor_debug"("FAIL", "scope_declarator:sym<our>")
-  debug_627:
+  debug_633:
     .return (rx570_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>"  :subid("143_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__scope_declarator:sym<our>"  :subid("143_1284728478.15265") :method
+.annotate 'line', 4
     $P572 = self."!PREFIX__!subrule"("scoped", "our")
     new $P573, "ResizablePMCArray"
     push $P573, $P572
@@ -7856,8 +8127,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<has>"  :subid("144_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "scope_declarator:sym<has>"  :subid("144_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx577_tgt
     .local int rx577_pos
     .local int rx577_off
@@ -7878,9 +8149,9 @@
     substr rx577_tgt, rx577_tgt, rx577_off
   rx577_start:
     eq $I10, 1, rx577_restart
-    if_null rx577_debug, debug_628
+    if_null rx577_debug, debug_634
     rx577_cur."!cursor_debug"("START", "scope_declarator:sym<has>")
-  debug_628:
+  debug_634:
     $I10 = self.'from'()
     ne $I10, -1, rxscan581_done
     goto rxscan581_scan
@@ -7893,6 +8164,7 @@
     set_addr $I10, rxscan581_loop
     rx577_cur."!mark_push"(0, rx577_pos, $I10)
   rxscan581_done:
+.annotate 'line', 276
   # rx subcapture "sym"
     set_addr $I10, rxcap_582_fail
     rx577_cur."!mark_push"(0, rx577_pos, $I10)
@@ -7923,14 +8195,15 @@
     rx577_pos = $P10."pos"()
   # rx pass
     rx577_cur."!cursor_pass"(rx577_pos, "scope_declarator:sym<has>")
-    if_null rx577_debug, debug_629
+    if_null rx577_debug, debug_635
     rx577_cur."!cursor_debug"("PASS", "scope_declarator:sym<has>", " at pos=", rx577_pos)
-  debug_629:
+  debug_635:
     .return (rx577_cur)
   rx577_restart:
-    if_null rx577_debug, debug_630
+.annotate 'line', 4
+    if_null rx577_debug, debug_636
     rx577_cur."!cursor_debug"("NEXT", "scope_declarator:sym<has>")
-  debug_630:
+  debug_636:
   rx577_fail:
     (rx577_rep, rx577_pos, $I10, $P10) = rx577_cur."!mark_fail"(0)
     lt rx577_pos, -1, rx577_done
@@ -7938,17 +8211,17 @@
     jump $I10
   rx577_done:
     rx577_cur."!cursor_fail"()
-    if_null rx577_debug, debug_631
+    if_null rx577_debug, debug_637
     rx577_cur."!cursor_debug"("FAIL", "scope_declarator:sym<has>")
-  debug_631:
+  debug_637:
     .return (rx577_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>"  :subid("145_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__scope_declarator:sym<has>"  :subid("145_1284728478.15265") :method
+.annotate 'line', 4
     $P579 = self."!PREFIX__!subrule"("scoped", "has")
     new $P580, "ResizablePMCArray"
     push $P580, $P579
@@ -7957,10 +8230,11 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scoped"  :subid("146_1283975947.19641") :method :outer("11_1283975947.19641")
+.sub "scoped"  :subid("146_1284728478.15265") :method :outer("11_1284728478.15265")
     .param pmc param_584
-.annotate 'line', 0
+.annotate 'line', 278
     .lex "$*SCOPE", param_584
+.annotate 'line', 4
     .local string rx585_tgt
     .local int rx585_pos
     .local int rx585_off
@@ -7981,9 +8255,9 @@
     substr rx585_tgt, rx585_tgt, rx585_off
   rx585_start:
     eq $I10, 1, rx585_restart
-    if_null rx585_debug, debug_632
+    if_null rx585_debug, debug_638
     rx585_cur."!cursor_debug"("START", "scoped")
-  debug_632:
+  debug_638:
     $I10 = self.'from'()
     ne $I10, -1, rxscan590_done
     goto rxscan590_scan
@@ -7997,8 +8271,10 @@
     rx585_cur."!mark_push"(0, rx585_pos, $I10)
   rxscan590_done:
   alt591_0:
+.annotate 'line', 278
     set_addr $I10, alt591_1
     rx585_cur."!mark_push"(0, rx585_pos, $I10)
+.annotate 'line', 279
   # rx subrule "ws" subtype=method negate=
     rx585_cur."!cursor_pos"(rx585_pos)
     $P10 = rx585_cur."ws"()
@@ -8018,6 +8294,7 @@
     rx585_pos = $P10."pos"()
     goto alt591_end
   alt591_1:
+.annotate 'line', 280
   # rx subrule "ws" subtype=method negate=
     rx585_cur."!cursor_pos"(rx585_pos)
     $P10 = rx585_cur."ws"()
@@ -8036,16 +8313,18 @@
     unless $P10, rx585_fail
     rx585_pos = $P10."pos"()
   alt591_end:
+.annotate 'line', 278
   # rx pass
     rx585_cur."!cursor_pass"(rx585_pos, "scoped")
-    if_null rx585_debug, debug_633
+    if_null rx585_debug, debug_639
     rx585_cur."!cursor_debug"("PASS", "scoped", " at pos=", rx585_pos)
-  debug_633:
+  debug_639:
     .return (rx585_cur)
   rx585_restart:
-    if_null rx585_debug, debug_634
+.annotate 'line', 4
+    if_null rx585_debug, debug_640
     rx585_cur."!cursor_debug"("NEXT", "scoped")
-  debug_634:
+  debug_640:
   rx585_fail:
     (rx585_rep, rx585_pos, $I10, $P10) = rx585_cur."!mark_fail"(0)
     lt rx585_pos, -1, rx585_done
@@ -8053,17 +8332,17 @@
     jump $I10
   rx585_done:
     rx585_cur."!cursor_fail"()
-    if_null rx585_debug, debug_635
+    if_null rx585_debug, debug_641
     rx585_cur."!cursor_debug"("FAIL", "scoped")
-  debug_635:
+  debug_641:
     .return (rx585_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped"  :subid("147_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__scoped"  :subid("147_1284728478.15265") :method
+.annotate 'line', 4
     $P587 = self."!PREFIX__!subrule"("ws", "")
     $P588 = self."!PREFIX__!subrule"("ws", "")
     new $P589, "ResizablePMCArray"
@@ -8074,8 +8353,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "typename"  :subid("148_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "typename"  :subid("148_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx597_tgt
     .local int rx597_pos
     .local int rx597_off
@@ -8096,9 +8375,9 @@
     substr rx597_tgt, rx597_tgt, rx597_off
   rx597_start:
     eq $I10, 1, rx597_restart
-    if_null rx597_debug, debug_636
+    if_null rx597_debug, debug_642
     rx597_cur."!cursor_debug"("START", "typename")
-  debug_636:
+  debug_642:
     $I10 = self.'from'()
     ne $I10, -1, rxscan601_done
     goto rxscan601_scan
@@ -8111,6 +8390,7 @@
     set_addr $I10, rxscan601_loop
     rx597_cur."!mark_push"(0, rx597_pos, $I10)
   rxscan601_done:
+.annotate 'line', 283
   # rx subrule "name" subtype=capture negate=
     rx597_cur."!cursor_pos"(rx597_pos)
     $P10 = rx597_cur."name"()
@@ -8120,14 +8400,15 @@
     rx597_pos = $P10."pos"()
   # rx pass
     rx597_cur."!cursor_pass"(rx597_pos, "typename")
-    if_null rx597_debug, debug_637
+    if_null rx597_debug, debug_643
     rx597_cur."!cursor_debug"("PASS", "typename", " at pos=", rx597_pos)
-  debug_637:
+  debug_643:
     .return (rx597_cur)
   rx597_restart:
-    if_null rx597_debug, debug_638
+.annotate 'line', 4
+    if_null rx597_debug, debug_644
     rx597_cur."!cursor_debug"("NEXT", "typename")
-  debug_638:
+  debug_644:
   rx597_fail:
     (rx597_rep, rx597_pos, $I10, $P10) = rx597_cur."!mark_fail"(0)
     lt rx597_pos, -1, rx597_done
@@ -8135,17 +8416,17 @@
     jump $I10
   rx597_done:
     rx597_cur."!cursor_fail"()
-    if_null rx597_debug, debug_639
+    if_null rx597_debug, debug_645
     rx597_cur."!cursor_debug"("FAIL", "typename")
-  debug_639:
+  debug_645:
     .return (rx597_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__typename"  :subid("149_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__typename"  :subid("149_1284728478.15265") :method
+.annotate 'line', 4
     $P599 = self."!PREFIX__!subrule"("name", "")
     new $P600, "ResizablePMCArray"
     push $P600, $P599
@@ -8154,8 +8435,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "declarator"  :subid("150_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "declarator"  :subid("150_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx603_tgt
     .local int rx603_pos
     .local int rx603_off
@@ -8176,9 +8457,9 @@
     substr rx603_tgt, rx603_tgt, rx603_off
   rx603_start:
     eq $I10, 1, rx603_restart
-    if_null rx603_debug, debug_640
+    if_null rx603_debug, debug_646
     rx603_cur."!cursor_debug"("START", "declarator")
-  debug_640:
+  debug_646:
     $I10 = self.'from'()
     ne $I10, -1, rxscan608_done
     goto rxscan608_scan
@@ -8192,8 +8473,10 @@
     rx603_cur."!mark_push"(0, rx603_pos, $I10)
   rxscan608_done:
   alt609_0:
+.annotate 'line', 285
     set_addr $I10, alt609_1
     rx603_cur."!mark_push"(0, rx603_pos, $I10)
+.annotate 'line', 286
   # rx subrule "variable_declarator" subtype=capture negate=
     rx603_cur."!cursor_pos"(rx603_pos)
     $P10 = rx603_cur."variable_declarator"()
@@ -8203,6 +8486,7 @@
     rx603_pos = $P10."pos"()
     goto alt609_end
   alt609_1:
+.annotate 'line', 287
   # rx subrule "routine_declarator" subtype=capture negate=
     rx603_cur."!cursor_pos"(rx603_pos)
     $P10 = rx603_cur."routine_declarator"()
@@ -8211,16 +8495,18 @@
     $P10."!cursor_names"("routine_declarator")
     rx603_pos = $P10."pos"()
   alt609_end:
+.annotate 'line', 285
   # rx pass
     rx603_cur."!cursor_pass"(rx603_pos, "declarator")
-    if_null rx603_debug, debug_641
+    if_null rx603_debug, debug_647
     rx603_cur."!cursor_debug"("PASS", "declarator", " at pos=", rx603_pos)
-  debug_641:
+  debug_647:
     .return (rx603_cur)
   rx603_restart:
-    if_null rx603_debug, debug_642
+.annotate 'line', 4
+    if_null rx603_debug, debug_648
     rx603_cur."!cursor_debug"("NEXT", "declarator")
-  debug_642:
+  debug_648:
   rx603_fail:
     (rx603_rep, rx603_pos, $I10, $P10) = rx603_cur."!mark_fail"(0)
     lt rx603_pos, -1, rx603_done
@@ -8228,17 +8514,17 @@
     jump $I10
   rx603_done:
     rx603_cur."!cursor_fail"()
-    if_null rx603_debug, debug_643
+    if_null rx603_debug, debug_649
     rx603_cur."!cursor_debug"("FAIL", "declarator")
-  debug_643:
+  debug_649:
     .return (rx603_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__declarator"  :subid("151_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__declarator"  :subid("151_1284728478.15265") :method
+.annotate 'line', 4
     $P605 = self."!PREFIX__!subrule"("routine_declarator", "")
     $P606 = self."!PREFIX__!subrule"("variable_declarator", "")
     new $P607, "ResizablePMCArray"
@@ -8249,8 +8535,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable_declarator"  :subid("152_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "variable_declarator"  :subid("152_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx611_tgt
     .local int rx611_pos
     .local int rx611_off
@@ -8271,9 +8557,9 @@
     substr rx611_tgt, rx611_tgt, rx611_off
   rx611_start:
     eq $I10, 1, rx611_restart
-    if_null rx611_debug, debug_644
+    if_null rx611_debug, debug_650
     rx611_cur."!cursor_debug"("START", "variable_declarator")
-  debug_644:
+  debug_650:
     $I10 = self.'from'()
     ne $I10, -1, rxscan615_done
     goto rxscan615_scan
@@ -8286,6 +8572,7 @@
     set_addr $I10, rxscan615_loop
     rx611_cur."!mark_push"(0, rx611_pos, $I10)
   rxscan615_done:
+.annotate 'line', 290
   # rx subrule "variable" subtype=capture negate=
     rx611_cur."!cursor_pos"(rx611_pos)
     $P10 = rx611_cur."variable"()
@@ -8295,14 +8582,15 @@
     rx611_pos = $P10."pos"()
   # rx pass
     rx611_cur."!cursor_pass"(rx611_pos, "variable_declarator")
-    if_null rx611_debug, debug_645
+    if_null rx611_debug, debug_651
     rx611_cur."!cursor_debug"("PASS", "variable_declarator", " at pos=", rx611_pos)
-  debug_645:
+  debug_651:
     .return (rx611_cur)
   rx611_restart:
-    if_null rx611_debug, debug_646
+.annotate 'line', 4
+    if_null rx611_debug, debug_652
     rx611_cur."!cursor_debug"("NEXT", "variable_declarator")
-  debug_646:
+  debug_652:
   rx611_fail:
     (rx611_rep, rx611_pos, $I10, $P10) = rx611_cur."!mark_fail"(0)
     lt rx611_pos, -1, rx611_done
@@ -8310,17 +8598,17 @@
     jump $I10
   rx611_done:
     rx611_cur."!cursor_fail"()
-    if_null rx611_debug, debug_647
+    if_null rx611_debug, debug_653
     rx611_cur."!cursor_debug"("FAIL", "variable_declarator")
-  debug_647:
+  debug_653:
     .return (rx611_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator"  :subid("153_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__variable_declarator"  :subid("153_1284728478.15265") :method
+.annotate 'line', 4
     $P613 = self."!PREFIX__!subrule"("variable", "")
     new $P614, "ResizablePMCArray"
     push $P614, $P613
@@ -8329,24 +8617,24 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator"  :subid("154_1283975947.19641") :method
-.annotate 'line', 0
+.sub "routine_declarator"  :subid("154_1284728478.15265") :method
+.annotate 'line', 292
     $P617 = self."!protoregex"("routine_declarator")
     .return ($P617)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator"  :subid("155_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__routine_declarator"  :subid("155_1284728478.15265") :method
+.annotate 'line', 292
     $P619 = self."!PREFIX__!protoregex"("routine_declarator")
     .return ($P619)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<sub>"  :subid("156_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "routine_declarator:sym<sub>"  :subid("156_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx621_tgt
     .local int rx621_pos
     .local int rx621_off
@@ -8367,9 +8655,9 @@
     substr rx621_tgt, rx621_tgt, rx621_off
   rx621_start:
     eq $I10, 1, rx621_restart
-    if_null rx621_debug, debug_648
+    if_null rx621_debug, debug_654
     rx621_cur."!cursor_debug"("START", "routine_declarator:sym<sub>")
-  debug_648:
+  debug_654:
     $I10 = self.'from'()
     ne $I10, -1, rxscan625_done
     goto rxscan625_scan
@@ -8382,6 +8670,7 @@
     set_addr $I10, rxscan625_loop
     rx621_cur."!mark_push"(0, rx621_pos, $I10)
   rxscan625_done:
+.annotate 'line', 293
   # rx subcapture "sym"
     set_addr $I10, rxcap_626_fail
     rx621_cur."!mark_push"(0, rx621_pos, $I10)
@@ -8412,14 +8701,15 @@
     rx621_pos = $P10."pos"()
   # rx pass
     rx621_cur."!cursor_pass"(rx621_pos, "routine_declarator:sym<sub>")
-    if_null rx621_debug, debug_649
+    if_null rx621_debug, debug_655
     rx621_cur."!cursor_debug"("PASS", "routine_declarator:sym<sub>", " at pos=", rx621_pos)
-  debug_649:
+  debug_655:
     .return (rx621_cur)
   rx621_restart:
-    if_null rx621_debug, debug_650
+.annotate 'line', 4
+    if_null rx621_debug, debug_656
     rx621_cur."!cursor_debug"("NEXT", "routine_declarator:sym<sub>")
-  debug_650:
+  debug_656:
   rx621_fail:
     (rx621_rep, rx621_pos, $I10, $P10) = rx621_cur."!mark_fail"(0)
     lt rx621_pos, -1, rx621_done
@@ -8427,17 +8717,17 @@
     jump $I10
   rx621_done:
     rx621_cur."!cursor_fail"()
-    if_null rx621_debug, debug_651
+    if_null rx621_debug, debug_657
     rx621_cur."!cursor_debug"("FAIL", "routine_declarator:sym<sub>")
-  debug_651:
+  debug_657:
     .return (rx621_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("157_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("157_1284728478.15265") :method
+.annotate 'line', 4
     $P623 = self."!PREFIX__!subrule"("routine_def", "sub")
     new $P624, "ResizablePMCArray"
     push $P624, $P623
@@ -8446,8 +8736,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<method>"  :subid("158_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "routine_declarator:sym<method>"  :subid("158_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx628_tgt
     .local int rx628_pos
     .local int rx628_off
@@ -8468,9 +8758,9 @@
     substr rx628_tgt, rx628_tgt, rx628_off
   rx628_start:
     eq $I10, 1, rx628_restart
-    if_null rx628_debug, debug_652
+    if_null rx628_debug, debug_658
     rx628_cur."!cursor_debug"("START", "routine_declarator:sym<method>")
-  debug_652:
+  debug_658:
     $I10 = self.'from'()
     ne $I10, -1, rxscan632_done
     goto rxscan632_scan
@@ -8483,6 +8773,7 @@
     set_addr $I10, rxscan632_loop
     rx628_cur."!mark_push"(0, rx628_pos, $I10)
   rxscan632_done:
+.annotate 'line', 294
   # rx subcapture "sym"
     set_addr $I10, rxcap_633_fail
     rx628_cur."!mark_push"(0, rx628_pos, $I10)
@@ -8513,14 +8804,15 @@
     rx628_pos = $P10."pos"()
   # rx pass
     rx628_cur."!cursor_pass"(rx628_pos, "routine_declarator:sym<method>")
-    if_null rx628_debug, debug_653
+    if_null rx628_debug, debug_659
     rx628_cur."!cursor_debug"("PASS", "routine_declarator:sym<method>", " at pos=", rx628_pos)
-  debug_653:
+  debug_659:
     .return (rx628_cur)
   rx628_restart:
-    if_null rx628_debug, debug_654
+.annotate 'line', 4
+    if_null rx628_debug, debug_660
     rx628_cur."!cursor_debug"("NEXT", "routine_declarator:sym<method>")
-  debug_654:
+  debug_660:
   rx628_fail:
     (rx628_rep, rx628_pos, $I10, $P10) = rx628_cur."!mark_fail"(0)
     lt rx628_pos, -1, rx628_done
@@ -8528,17 +8820,17 @@
     jump $I10
   rx628_done:
     rx628_cur."!cursor_fail"()
-    if_null rx628_debug, debug_655
+    if_null rx628_debug, debug_661
     rx628_cur."!cursor_debug"("FAIL", "routine_declarator:sym<method>")
-  debug_655:
+  debug_661:
     .return (rx628_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>"  :subid("159_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__routine_declarator:sym<method>"  :subid("159_1284728478.15265") :method
+.annotate 'line', 4
     $P630 = self."!PREFIX__!subrule"("method_def", "method")
     new $P631, "ResizablePMCArray"
     push $P631, $P630
@@ -8547,8 +8839,8 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_def"  :subid("160_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "routine_def"  :subid("160_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx635_tgt
     .local int rx635_pos
     .local int rx635_off
@@ -8557,7 +8849,7 @@
     .local pmc rx635_cur
     .local pmc rx635_debug
     (rx635_cur, rx635_pos, rx635_tgt, $I10) = self."!cursor_start"()
-    rx635_cur."!cursor_caparray"("deflongname", "sigil")
+    rx635_cur."!cursor_caparray"("deflongname", "sigil", "trait")
     getattribute rx635_debug, rx635_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx635_cur
     .local pmc match
@@ -8570,9 +8862,9 @@
     substr rx635_tgt, rx635_tgt, rx635_off
   rx635_start:
     eq $I10, 1, rx635_restart
-    if_null rx635_debug, debug_656
+    if_null rx635_debug, debug_662
     rx635_cur."!cursor_debug"("START", "routine_def")
-  debug_656:
+  debug_662:
     $I10 = self.'from'()
     ne $I10, -1, rxscan639_done
     goto rxscan639_scan
@@ -8585,11 +8877,13 @@
     set_addr $I10, rxscan639_loop
     rx635_cur."!mark_push"(0, rx635_pos, $I10)
   rxscan639_done:
+.annotate 'line', 296
   # rx subrule "ws" subtype=method negate=
     rx635_cur."!cursor_pos"(rx635_pos)
     $P10 = rx635_cur."ws"()
     unless $P10, rx635_fail
     rx635_pos = $P10."pos"()
+.annotate 'line', 297
   # rx rxquantr641 ** 0..1
     set_addr $I10, rxquantr641_done
     rx635_cur."!mark_push"(0, rx635_pos, $I10)
@@ -8647,6 +8941,7 @@
     $P10 = rx635_cur."ws"()
     unless $P10, rx635_fail
     rx635_pos = $P10."pos"()
+.annotate 'line', 298
   # rx subrule "newpad" subtype=method negate=
     rx635_cur."!cursor_pos"(rx635_pos)
     $P10 = rx635_cur."newpad"()
@@ -8658,6 +8953,7 @@
     unless $P10, rx635_fail
     rx635_pos = $P10."pos"()
   alt648_0:
+.annotate 'line', 299
     set_addr $I10, alt648_1
     rx635_cur."!mark_push"(0, rx635_pos, $I10)
   # rx subrule "ws" subtype=method negate=
@@ -8703,6 +8999,7 @@
     rx635_pos = $P10."pos"()
     goto alt648_end
   alt648_1:
+.annotate 'line', 300
   # rx subrule "ws" subtype=method negate=
     rx635_cur."!cursor_pos"(rx635_pos)
     $P10 = rx635_cur."ws"()
@@ -8724,6 +9021,36 @@
     $P10 = rx635_cur."ws"()
     unless $P10, rx635_fail
     rx635_pos = $P10."pos"()
+.annotate 'line', 301
+  # rx rxquantr656 ** 0..*
+    set_addr $I10, rxquantr656_done
+    rx635_cur."!mark_push"(0, rx635_pos, $I10)
+  rxquantr656_loop:
+  # rx subrule "trait" subtype=capture negate=
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."trait"()
+    unless $P10, rx635_fail
+    goto rxsubrule657_pass
+  rxsubrule657_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx635_fail
+  rxsubrule657_pass:
+    set_addr $I10, rxsubrule657_back
+    rx635_cur."!mark_push"(0, rx635_pos, $I10, $P10)
+    $P10."!cursor_names"("trait")
+    rx635_pos = $P10."pos"()
+    set_addr $I10, rxquantr656_done
+    (rx635_rep) = rx635_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr656_done
+    rx635_cur."!mark_push"(rx635_rep, rx635_pos, $I10)
+    goto rxquantr656_loop
+  rxquantr656_done:
+  # rx subrule "ws" subtype=method negate=
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
+.annotate 'line', 302
   # rx subrule "blockoid" subtype=capture negate=
     rx635_cur."!cursor_pos"(rx635_pos)
     $P10 = rx635_cur."blockoid"()
@@ -8736,16 +9063,18 @@
     $P10 = rx635_cur."ws"()
     unless $P10, rx635_fail
     rx635_pos = $P10."pos"()
+.annotate 'line', 296
   # rx pass
     rx635_cur."!cursor_pass"(rx635_pos, "routine_def")
-    if_null rx635_debug, debug_657
+    if_null rx635_debug, debug_663
     rx635_cur."!cursor_debug"("PASS", "routine_def", " at pos=", rx635_pos)
-  debug_657:
+  debug_663:
     .return (rx635_cur)
   rx635_restart:
-    if_null rx635_debug, debug_658
+.annotate 'line', 4
+    if_null rx635_debug, debug_664
     rx635_cur."!cursor_debug"("NEXT", "routine_def")
-  debug_658:
+  debug_664:
   rx635_fail:
     (rx635_rep, rx635_pos, $I10, $P10) = rx635_cur."!mark_fail"(0)
     lt rx635_pos, -1, rx635_done
@@ -8753,17 +9082,17 @@
     jump $I10
   rx635_done:
     rx635_cur."!cursor_fail"()
-    if_null rx635_debug, debug_659
+    if_null rx635_debug, debug_665
     rx635_cur."!cursor_debug"("FAIL", "routine_def")
-  debug_659:
+  debug_665:
     .return (rx635_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def"  :subid("161_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__routine_def"  :subid("161_1284728478.15265") :method
+.annotate 'line', 4
     $P637 = self."!PREFIX__!subrule"("ws", "")
     new $P638, "ResizablePMCArray"
     push $P638, $P637
@@ -8772,980 +9101,954 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "method_def"  :subid("162_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx658_tgt
-    .local int rx658_pos
-    .local int rx658_off
-    .local int rx658_eos
-    .local int rx658_rep
-    .local pmc rx658_cur
-    .local pmc rx658_debug
-    (rx658_cur, rx658_pos, rx658_tgt, $I10) = self."!cursor_start"()
-    rx658_cur."!cursor_caparray"("deflongname")
-    getattribute rx658_debug, rx658_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx658_cur
-    .local pmc match
-    .lex "$/", match
-    length rx658_eos, rx658_tgt
-    gt rx658_pos, rx658_eos, rx658_done
-    set rx658_off, 0
-    lt rx658_pos, 2, rx658_start
-    sub rx658_off, rx658_pos, 1
-    substr rx658_tgt, rx658_tgt, rx658_off
-  rx658_start:
-    eq $I10, 1, rx658_restart
-    if_null rx658_debug, debug_660
-    rx658_cur."!cursor_debug"("START", "method_def")
-  debug_660:
+.sub "method_def"  :subid("162_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx661_tgt
+    .local int rx661_pos
+    .local int rx661_off
+    .local int rx661_eos
+    .local int rx661_rep
+    .local pmc rx661_cur
+    .local pmc rx661_debug
+    (rx661_cur, rx661_pos, rx661_tgt, $I10) = self."!cursor_start"()
+    rx661_cur."!cursor_caparray"("deflongname", "trait")
+    getattribute rx661_debug, rx661_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx661_cur
+    .local pmc match
+    .lex "$/", match
+    length rx661_eos, rx661_tgt
+    gt rx661_pos, rx661_eos, rx661_done
+    set rx661_off, 0
+    lt rx661_pos, 2, rx661_start
+    sub rx661_off, rx661_pos, 1
+    substr rx661_tgt, rx661_tgt, rx661_off
+  rx661_start:
+    eq $I10, 1, rx661_restart
+    if_null rx661_debug, debug_666
+    rx661_cur."!cursor_debug"("START", "method_def")
+  debug_666:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan662_done
-    goto rxscan662_scan
-  rxscan662_loop:
-    ($P10) = rx658_cur."from"()
-    inc $P10
-    set rx658_pos, $P10
-    ge rx658_pos, rx658_eos, rxscan662_done
-  rxscan662_scan:
-    set_addr $I10, rxscan662_loop
-    rx658_cur."!mark_push"(0, rx658_pos, $I10)
-  rxscan662_done:
-  # rx subrule "ws" subtype=method negate=
-    rx658_cur."!cursor_pos"(rx658_pos)
-    $P10 = rx658_cur."ws"()
-    unless $P10, rx658_fail
-    rx658_pos = $P10."pos"()
-  # rx rxquantr664 ** 0..1
-    set_addr $I10, rxquantr664_done
-    rx658_cur."!mark_push"(0, rx658_pos, $I10)
-  rxquantr664_loop:
+    ne $I10, -1, rxscan665_done
+    goto rxscan665_scan
+  rxscan665_loop:
+    ($P10) = rx661_cur."from"()
+    inc $P10
+    set rx661_pos, $P10
+    ge rx661_pos, rx661_eos, rxscan665_done
+  rxscan665_scan:
+    set_addr $I10, rxscan665_loop
+    rx661_cur."!mark_push"(0, rx661_pos, $I10)
+  rxscan665_done:
+.annotate 'line', 305
+  # rx subrule "ws" subtype=method negate=
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."ws"()
+    unless $P10, rx661_fail
+    rx661_pos = $P10."pos"()
+.annotate 'line', 306
+  # rx rxquantr667 ** 0..1
+    set_addr $I10, rxquantr667_done
+    rx661_cur."!mark_push"(0, rx661_pos, $I10)
+  rxquantr667_loop:
   # rx subrule "deflongname" subtype=capture negate=
-    rx658_cur."!cursor_pos"(rx658_pos)
-    $P10 = rx658_cur."deflongname"()
-    unless $P10, rx658_fail
-    goto rxsubrule665_pass
-  rxsubrule665_back:
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."deflongname"()
+    unless $P10, rx661_fail
+    goto rxsubrule668_pass
+  rxsubrule668_back:
     $P10 = $P10."!cursor_next"()
-    unless $P10, rx658_fail
-  rxsubrule665_pass:
-    set_addr $I10, rxsubrule665_back
-    rx658_cur."!mark_push"(0, rx658_pos, $I10, $P10)
+    unless $P10, rx661_fail
+  rxsubrule668_pass:
+    set_addr $I10, rxsubrule668_back
+    rx661_cur."!mark_push"(0, rx661_pos, $I10, $P10)
     $P10."!cursor_names"("deflongname")
-    rx658_pos = $P10."pos"()
-    set_addr $I10, rxquantr664_done
-    (rx658_rep) = rx658_cur."!mark_commit"($I10)
-  rxquantr664_done:
-  # rx subrule "ws" subtype=method negate=
-    rx658_cur."!cursor_pos"(rx658_pos)
-    $P10 = rx658_cur."ws"()
-    unless $P10, rx658_fail
-    rx658_pos = $P10."pos"()
+    rx661_pos = $P10."pos"()
+    set_addr $I10, rxquantr667_done
+    (rx661_rep) = rx661_cur."!mark_commit"($I10)
+  rxquantr667_done:
+  # rx subrule "ws" subtype=method negate=
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."ws"()
+    unless $P10, rx661_fail
+    rx661_pos = $P10."pos"()
+.annotate 'line', 307
   # rx subrule "newpad" subtype=method negate=
-    rx658_cur."!cursor_pos"(rx658_pos)
-    $P10 = rx658_cur."newpad"()
-    unless $P10, rx658_fail
-    rx658_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx658_cur."!cursor_pos"(rx658_pos)
-    $P10 = rx658_cur."ws"()
-    unless $P10, rx658_fail
-    rx658_pos = $P10."pos"()
-  alt668_0:
-    set_addr $I10, alt668_1
-    rx658_cur."!mark_push"(0, rx658_pos, $I10)
-  # rx subrule "ws" subtype=method negate=
-    rx658_cur."!cursor_pos"(rx658_pos)
-    $P10 = rx658_cur."ws"()
-    unless $P10, rx658_fail
-    rx658_pos = $P10."pos"()
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."newpad"()
+    unless $P10, rx661_fail
+    rx661_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."ws"()
+    unless $P10, rx661_fail
+    rx661_pos = $P10."pos"()
+  alt671_0:
+.annotate 'line', 308
+    set_addr $I10, alt671_1
+    rx661_cur."!mark_push"(0, rx661_pos, $I10)
+  # rx subrule "ws" subtype=method negate=
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."ws"()
+    unless $P10, rx661_fail
+    rx661_pos = $P10."pos"()
   # rx literal  "("
-    add $I11, rx658_pos, 1
-    gt $I11, rx658_eos, rx658_fail
-    sub $I11, rx658_pos, rx658_off
-    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)
-    $P10 = rx658_cur."ws"()
-    unless $P10, rx658_fail
-    rx658_pos = $P10."pos"()
+    add $I11, rx661_pos, 1
+    gt $I11, rx661_eos, rx661_fail
+    sub $I11, rx661_pos, rx661_off
+    ord $I11, rx661_tgt, $I11
+    ne $I11, 40, rx661_fail
+    add rx661_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."ws"()
+    unless $P10, rx661_fail
+    rx661_pos = $P10."pos"()
   # rx subrule "signature" subtype=capture negate=
-    rx658_cur."!cursor_pos"(rx658_pos)
-    $P10 = rx658_cur."signature"()
-    unless $P10, rx658_fail
-    rx658_cur."!mark_push"(0, -1, 0, $P10)
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."signature"()
+    unless $P10, rx661_fail
+    rx661_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx658_pos = $P10."pos"()
+    rx661_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx658_cur."!cursor_pos"(rx658_pos)
-    $P10 = rx658_cur."ws"()
-    unless $P10, rx658_fail
-    rx658_pos = $P10."pos"()
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."ws"()
+    unless $P10, rx661_fail
+    rx661_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx658_pos, 1
-    gt $I11, rx658_eos, rx658_fail
-    sub $I11, rx658_pos, rx658_off
-    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)
-    $P10 = rx658_cur."ws"()
-    unless $P10, rx658_fail
-    rx658_pos = $P10."pos"()
-    goto alt668_end
-  alt668_1:
-  # rx subrule "ws" subtype=method negate=
-    rx658_cur."!cursor_pos"(rx658_pos)
-    $P10 = rx658_cur."ws"()
-    unless $P10, rx658_fail
-    rx658_pos = $P10."pos"()
+    add $I11, rx661_pos, 1
+    gt $I11, rx661_eos, rx661_fail
+    sub $I11, rx661_pos, rx661_off
+    ord $I11, rx661_tgt, $I11
+    ne $I11, 41, rx661_fail
+    add rx661_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."ws"()
+    unless $P10, rx661_fail
+    rx661_pos = $P10."pos"()
+    goto alt671_end
+  alt671_1:
+.annotate 'line', 309
+  # rx subrule "ws" subtype=method negate=
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."ws"()
+    unless $P10, rx661_fail
+    rx661_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx658_cur."!cursor_pos"(rx658_pos)
-    $P10 = rx658_cur."panic"("Routine declaration requires a signature")
-    unless $P10, rx658_fail
-    rx658_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx658_cur."!cursor_pos"(rx658_pos)
-    $P10 = rx658_cur."ws"()
-    unless $P10, rx658_fail
-    rx658_pos = $P10."pos"()
-  alt668_end:
-  # rx subrule "ws" subtype=method negate=
-    rx658_cur."!cursor_pos"(rx658_pos)
-    $P10 = rx658_cur."ws"()
-    unless $P10, rx658_fail
-    rx658_pos = $P10."pos"()
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."panic"("Routine declaration requires a signature")
+    unless $P10, rx661_fail
+    rx661_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."ws"()
+    unless $P10, rx661_fail
+    rx661_pos = $P10."pos"()
+  alt671_end:
+  # rx subrule "ws" subtype=method negate=
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."ws"()
+    unless $P10, rx661_fail
+    rx661_pos = $P10."pos"()
+.annotate 'line', 310
+  # rx rxquantr679 ** 0..*
+    set_addr $I10, rxquantr679_done
+    rx661_cur."!mark_push"(0, rx661_pos, $I10)
+  rxquantr679_loop:
+  # rx subrule "trait" subtype=capture negate=
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."trait"()
+    unless $P10, rx661_fail
+    goto rxsubrule680_pass
+  rxsubrule680_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx661_fail
+  rxsubrule680_pass:
+    set_addr $I10, rxsubrule680_back
+    rx661_cur."!mark_push"(0, rx661_pos, $I10, $P10)
+    $P10."!cursor_names"("trait")
+    rx661_pos = $P10."pos"()
+    set_addr $I10, rxquantr679_done
+    (rx661_rep) = rx661_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr679_done
+    rx661_cur."!mark_push"(rx661_rep, rx661_pos, $I10)
+    goto rxquantr679_loop
+  rxquantr679_done:
+  # rx subrule "ws" subtype=method negate=
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."ws"()
+    unless $P10, rx661_fail
+    rx661_pos = $P10."pos"()
+.annotate 'line', 311
   # rx subrule "blockoid" subtype=capture negate=
-    rx658_cur."!cursor_pos"(rx658_pos)
-    $P10 = rx658_cur."blockoid"()
-    unless $P10, rx658_fail
-    rx658_cur."!mark_push"(0, -1, 0, $P10)
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."blockoid"()
+    unless $P10, rx661_fail
+    rx661_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx658_pos = $P10."pos"()
+    rx661_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx658_cur."!cursor_pos"(rx658_pos)
-    $P10 = rx658_cur."ws"()
-    unless $P10, rx658_fail
-    rx658_pos = $P10."pos"()
-  # rx pass
-    rx658_cur."!cursor_pass"(rx658_pos, "method_def")
-    if_null rx658_debug, debug_661
-    rx658_cur."!cursor_debug"("PASS", "method_def", " at pos=", rx658_pos)
-  debug_661:
-    .return (rx658_cur)
-  rx658_restart:
-    if_null rx658_debug, debug_662
-    rx658_cur."!cursor_debug"("NEXT", "method_def")
-  debug_662:
-  rx658_fail:
-    (rx658_rep, rx658_pos, $I10, $P10) = rx658_cur."!mark_fail"(0)
-    lt rx658_pos, -1, rx658_done
-    eq rx658_pos, -1, rx658_fail
-    jump $I10
-  rx658_done:
-    rx658_cur."!cursor_fail"()
-    if_null rx658_debug, debug_663
-    rx658_cur."!cursor_debug"("FAIL", "method_def")
-  debug_663:
-    .return (rx658_cur)
+    rx661_cur."!cursor_pos"(rx661_pos)
+    $P10 = rx661_cur."ws"()
+    unless $P10, rx661_fail
+    rx661_pos = $P10."pos"()
+.annotate 'line', 305
+  # rx pass
+    rx661_cur."!cursor_pass"(rx661_pos, "method_def")
+    if_null rx661_debug, debug_667
+    rx661_cur."!cursor_debug"("PASS", "method_def", " at pos=", rx661_pos)
+  debug_667:
+    .return (rx661_cur)
+  rx661_restart:
+.annotate 'line', 4
+    if_null rx661_debug, debug_668
+    rx661_cur."!cursor_debug"("NEXT", "method_def")
+  debug_668:
+  rx661_fail:
+    (rx661_rep, rx661_pos, $I10, $P10) = rx661_cur."!mark_fail"(0)
+    lt rx661_pos, -1, rx661_done
+    eq rx661_pos, -1, rx661_fail
+    jump $I10
+  rx661_done:
+    rx661_cur."!cursor_fail"()
+    if_null rx661_debug, debug_669
+    rx661_cur."!cursor_debug"("FAIL", "method_def")
+  debug_669:
+    .return (rx661_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def"  :subid("163_1283975947.19641") :method
-.annotate 'line', 0
-    $P660 = self."!PREFIX__!subrule"("ws", "")
-    new $P661, "ResizablePMCArray"
-    push $P661, $P660
-    .return ($P661)
+.sub "!PREFIX__method_def"  :subid("163_1284728478.15265") :method
+.annotate 'line', 4
+    $P663 = self."!PREFIX__!subrule"("ws", "")
+    new $P664, "ResizablePMCArray"
+    push $P664, $P663
+    .return ($P664)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator"  :subid("164_1283975947.19641") :method
-.annotate 'line', 0
-    $P678 = self."!protoregex"("multi_declarator")
-    .return ($P678)
+.sub "multi_declarator"  :subid("164_1284728478.15265") :method
+.annotate 'line', 314
+    $P684 = self."!protoregex"("multi_declarator")
+    .return ($P684)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator"  :subid("165_1283975947.19641") :method
-.annotate 'line', 0
-    $P680 = self."!PREFIX__!protoregex"("multi_declarator")
-    .return ($P680)
+.sub "!PREFIX__multi_declarator"  :subid("165_1284728478.15265") :method
+.annotate 'line', 314
+    $P686 = self."!PREFIX__!protoregex"("multi_declarator")
+    .return ($P686)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator:sym<multi>"  :subid("166_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    new $P682, "Undef"
-    .lex "$*MULTINESS", $P682
-    .local string rx683_tgt
-    .local int rx683_pos
-    .local int rx683_off
-    .local int rx683_eos
-    .local int rx683_rep
-    .local pmc rx683_cur
-    .local pmc rx683_debug
-    (rx683_cur, rx683_pos, rx683_tgt, $I10) = self."!cursor_start"()
-    getattribute rx683_debug, rx683_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx683_cur
-    .local pmc match
-    .lex "$/", match
-    length rx683_eos, rx683_tgt
-    gt rx683_pos, rx683_eos, rx683_done
-    set rx683_off, 0
-    lt rx683_pos, 2, rx683_start
-    sub rx683_off, rx683_pos, 1
-    substr rx683_tgt, rx683_tgt, rx683_off
-  rx683_start:
-    eq $I10, 1, rx683_restart
-    if_null rx683_debug, debug_664
-    rx683_cur."!cursor_debug"("START", "multi_declarator:sym<multi>")
-  debug_664:
+.sub "multi_declarator:sym<multi>"  :subid("166_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 316
+    new $P688, "Undef"
+    .lex "$*MULTINESS", $P688
+.annotate 'line', 4
+    .local string rx689_tgt
+    .local int rx689_pos
+    .local int rx689_off
+    .local int rx689_eos
+    .local int rx689_rep
+    .local pmc rx689_cur
+    .local pmc rx689_debug
+    (rx689_cur, rx689_pos, rx689_tgt, $I10) = self."!cursor_start"()
+    getattribute rx689_debug, rx689_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx689_cur
+    .local pmc match
+    .lex "$/", match
+    length rx689_eos, rx689_tgt
+    gt rx689_pos, rx689_eos, rx689_done
+    set rx689_off, 0
+    lt rx689_pos, 2, rx689_start
+    sub rx689_off, rx689_pos, 1
+    substr rx689_tgt, rx689_tgt, rx689_off
+  rx689_start:
+    eq $I10, 1, rx689_restart
+    if_null rx689_debug, debug_670
+    rx689_cur."!cursor_debug"("START", "multi_declarator:sym<multi>")
+  debug_670:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan687_done
-    goto rxscan687_scan
-  rxscan687_loop:
-    ($P10) = rx683_cur."from"()
-    inc $P10
-    set rx683_pos, $P10
-    ge rx683_pos, rx683_eos, rxscan687_done
-  rxscan687_scan:
-    set_addr $I10, rxscan687_loop
-    rx683_cur."!mark_push"(0, rx683_pos, $I10)
-  rxscan687_done:
-    rx683_cur."!cursor_pos"(rx683_pos)
-    new $P688, "String"
-    assign $P688, "multi"
-    store_lex "$*MULTINESS", $P688
+    ne $I10, -1, rxscan693_done
+    goto rxscan693_scan
+  rxscan693_loop:
+    ($P10) = rx689_cur."from"()
+    inc $P10
+    set rx689_pos, $P10
+    ge rx689_pos, rx689_eos, rxscan693_done
+  rxscan693_scan:
+    set_addr $I10, rxscan693_loop
+    rx689_cur."!mark_push"(0, rx689_pos, $I10)
+  rxscan693_done:
+.annotate 'line', 316
+    rx689_cur."!cursor_pos"(rx689_pos)
+    new $P694, "String"
+    assign $P694, "multi"
+    store_lex "$*MULTINESS", $P694
+.annotate 'line', 317
   # rx subcapture "sym"
-    set_addr $I10, rxcap_689_fail
-    rx683_cur."!mark_push"(0, rx683_pos, $I10)
+    set_addr $I10, rxcap_695_fail
+    rx689_cur."!mark_push"(0, rx689_pos, $I10)
   # rx literal  "multi"
-    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
-    add rx683_pos, 5
-    set_addr $I10, rxcap_689_fail
-    ($I12, $I11) = rx683_cur."!mark_peek"($I10)
-    rx683_cur."!cursor_pos"($I11)
-    ($P10) = rx683_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx683_pos, "")
-    rx683_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx689_pos, 5
+    gt $I11, rx689_eos, rx689_fail
+    sub $I11, rx689_pos, rx689_off
+    substr $S10, rx689_tgt, $I11, 5
+    ne $S10, "multi", rx689_fail
+    add rx689_pos, 5
+    set_addr $I10, rxcap_695_fail
+    ($I12, $I11) = rx689_cur."!mark_peek"($I10)
+    rx689_cur."!cursor_pos"($I11)
+    ($P10) = rx689_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx689_pos, "")
+    rx689_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_689_done
-  rxcap_689_fail:
-    goto rx683_fail
-  rxcap_689_done:
-  # rx subrule "ws" subtype=method negate=
-    rx683_cur."!cursor_pos"(rx683_pos)
-    $P10 = rx683_cur."ws"()
-    unless $P10, rx683_fail
-    rx683_pos = $P10."pos"()
-  alt690_0:
-    set_addr $I10, alt690_1
-    rx683_cur."!mark_push"(0, rx683_pos, $I10)
+    goto rxcap_695_done
+  rxcap_695_fail:
+    goto rx689_fail
+  rxcap_695_done:
+.annotate 'line', 318
+  # rx subrule "ws" subtype=method negate=
+    rx689_cur."!cursor_pos"(rx689_pos)
+    $P10 = rx689_cur."ws"()
+    unless $P10, rx689_fail
+    rx689_pos = $P10."pos"()
+  alt696_0:
+    set_addr $I10, alt696_1
+    rx689_cur."!mark_push"(0, rx689_pos, $I10)
   # rx subrule "declarator" subtype=capture negate=
-    rx683_cur."!cursor_pos"(rx683_pos)
-    $P10 = rx683_cur."declarator"()
-    unless $P10, rx683_fail
-    rx683_cur."!mark_push"(0, -1, 0, $P10)
+    rx689_cur."!cursor_pos"(rx689_pos)
+    $P10 = rx689_cur."declarator"()
+    unless $P10, rx689_fail
+    rx689_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("declarator")
-    rx683_pos = $P10."pos"()
-    goto alt690_end
-  alt690_1:
-    set_addr $I10, alt690_2
-    rx683_cur."!mark_push"(0, rx683_pos, $I10)
+    rx689_pos = $P10."pos"()
+    goto alt696_end
+  alt696_1:
+    set_addr $I10, alt696_2
+    rx689_cur."!mark_push"(0, rx689_pos, $I10)
   # rx subrule "routine_def" subtype=capture negate=
-    rx683_cur."!cursor_pos"(rx683_pos)
-    $P10 = rx683_cur."routine_def"()
-    unless $P10, rx683_fail
-    rx683_cur."!mark_push"(0, -1, 0, $P10)
+    rx689_cur."!cursor_pos"(rx689_pos)
+    $P10 = rx689_cur."routine_def"()
+    unless $P10, rx689_fail
+    rx689_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("routine_def")
-    rx683_pos = $P10."pos"()
-    goto alt690_end
-  alt690_2:
+    rx689_pos = $P10."pos"()
+    goto alt696_end
+  alt696_2:
   # rx subrule "panic" subtype=method negate=
-    rx683_cur."!cursor_pos"(rx683_pos)
-    $P10 = rx683_cur."panic"("Malformed multi")
-    unless $P10, rx683_fail
-    rx683_pos = $P10."pos"()
-  alt690_end:
-  # rx pass
-    rx683_cur."!cursor_pass"(rx683_pos, "multi_declarator:sym<multi>")
-    if_null rx683_debug, debug_665
-    rx683_cur."!cursor_debug"("PASS", "multi_declarator:sym<multi>", " at pos=", rx683_pos)
-  debug_665:
-    .return (rx683_cur)
-  rx683_restart:
-    if_null rx683_debug, debug_666
-    rx683_cur."!cursor_debug"("NEXT", "multi_declarator:sym<multi>")
-  debug_666:
-  rx683_fail:
-    (rx683_rep, rx683_pos, $I10, $P10) = rx683_cur."!mark_fail"(0)
-    lt rx683_pos, -1, rx683_done
-    eq rx683_pos, -1, rx683_fail
-    jump $I10
-  rx683_done:
-    rx683_cur."!cursor_fail"()
-    if_null rx683_debug, debug_667
-    rx683_cur."!cursor_debug"("FAIL", "multi_declarator:sym<multi>")
-  debug_667:
-    .return (rx683_cur)
+    rx689_cur."!cursor_pos"(rx689_pos)
+    $P10 = rx689_cur."panic"("Malformed multi")
+    unless $P10, rx689_fail
+    rx689_pos = $P10."pos"()
+  alt696_end:
+.annotate 'line', 315
+  # rx pass
+    rx689_cur."!cursor_pass"(rx689_pos, "multi_declarator:sym<multi>")
+    if_null rx689_debug, debug_671
+    rx689_cur."!cursor_debug"("PASS", "multi_declarator:sym<multi>", " at pos=", rx689_pos)
+  debug_671:
+    .return (rx689_cur)
+  rx689_restart:
+.annotate 'line', 4
+    if_null rx689_debug, debug_672
+    rx689_cur."!cursor_debug"("NEXT", "multi_declarator:sym<multi>")
+  debug_672:
+  rx689_fail:
+    (rx689_rep, rx689_pos, $I10, $P10) = rx689_cur."!mark_fail"(0)
+    lt rx689_pos, -1, rx689_done
+    eq rx689_pos, -1, rx689_fail
+    jump $I10
+  rx689_done:
+    rx689_cur."!cursor_fail"()
+    if_null rx689_debug, debug_673
+    rx689_cur."!cursor_debug"("FAIL", "multi_declarator:sym<multi>")
+  debug_673:
+    .return (rx689_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<multi>"  :subid("167_1283975947.19641") :method
-.annotate 'line', 0
-    $P685 = self."!PREFIX__!subrule"("ws", "multi")
-    new $P686, "ResizablePMCArray"
-    push $P686, $P685
-    .return ($P686)
+.sub "!PREFIX__multi_declarator:sym<multi>"  :subid("167_1284728478.15265") :method
+.annotate 'line', 4
+    $P691 = self."!PREFIX__!subrule"("ws", "multi")
+    new $P692, "ResizablePMCArray"
+    push $P692, $P691
+    .return ($P692)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator:sym<null>"  :subid("168_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    new $P692, "Undef"
-    .lex "$*MULTINESS", $P692
-    .local string rx693_tgt
-    .local int rx693_pos
-    .local int rx693_off
-    .local int rx693_eos
-    .local int rx693_rep
-    .local pmc rx693_cur
-    .local pmc rx693_debug
-    (rx693_cur, rx693_pos, rx693_tgt, $I10) = self."!cursor_start"()
-    getattribute rx693_debug, rx693_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx693_cur
-    .local pmc match
-    .lex "$/", match
-    length rx693_eos, rx693_tgt
-    gt rx693_pos, rx693_eos, rx693_done
-    set rx693_off, 0
-    lt rx693_pos, 2, rx693_start
-    sub rx693_off, rx693_pos, 1
-    substr rx693_tgt, rx693_tgt, rx693_off
-  rx693_start:
-    eq $I10, 1, rx693_restart
-    if_null rx693_debug, debug_668
-    rx693_cur."!cursor_debug"("START", "multi_declarator:sym<null>")
-  debug_668:
+.sub "multi_declarator:sym<null>"  :subid("168_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 321
+    new $P698, "Undef"
+    .lex "$*MULTINESS", $P698
+.annotate 'line', 4
+    .local string rx699_tgt
+    .local int rx699_pos
+    .local int rx699_off
+    .local int rx699_eos
+    .local int rx699_rep
+    .local pmc rx699_cur
+    .local pmc rx699_debug
+    (rx699_cur, rx699_pos, rx699_tgt, $I10) = self."!cursor_start"()
+    getattribute rx699_debug, rx699_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx699_cur
+    .local pmc match
+    .lex "$/", match
+    length rx699_eos, rx699_tgt
+    gt rx699_pos, rx699_eos, rx699_done
+    set rx699_off, 0
+    lt rx699_pos, 2, rx699_start
+    sub rx699_off, rx699_pos, 1
+    substr rx699_tgt, rx699_tgt, rx699_off
+  rx699_start:
+    eq $I10, 1, rx699_restart
+    if_null rx699_debug, debug_674
+    rx699_cur."!cursor_debug"("START", "multi_declarator:sym<null>")
+  debug_674:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan697_done
-    goto rxscan697_scan
-  rxscan697_loop:
-    ($P10) = rx693_cur."from"()
-    inc $P10
-    set rx693_pos, $P10
-    ge rx693_pos, rx693_eos, rxscan697_done
-  rxscan697_scan:
-    set_addr $I10, rxscan697_loop
-    rx693_cur."!mark_push"(0, rx693_pos, $I10)
-  rxscan697_done:
-    rx693_cur."!cursor_pos"(rx693_pos)
-    new $P698, "String"
-    assign $P698, ""
-    store_lex "$*MULTINESS", $P698
+    ne $I10, -1, rxscan703_done
+    goto rxscan703_scan
+  rxscan703_loop:
+    ($P10) = rx699_cur."from"()
+    inc $P10
+    set rx699_pos, $P10
+    ge rx699_pos, rx699_eos, rxscan703_done
+  rxscan703_scan:
+    set_addr $I10, rxscan703_loop
+    rx699_cur."!mark_push"(0, rx699_pos, $I10)
+  rxscan703_done:
+.annotate 'line', 321
+    rx699_cur."!cursor_pos"(rx699_pos)
+    new $P704, "String"
+    assign $P704, ""
+    store_lex "$*MULTINESS", $P704
+.annotate 'line', 322
   # rx subrule "declarator" subtype=capture negate=
-    rx693_cur."!cursor_pos"(rx693_pos)
-    $P10 = rx693_cur."declarator"()
-    unless $P10, rx693_fail
-    rx693_cur."!mark_push"(0, -1, 0, $P10)
+    rx699_cur."!cursor_pos"(rx699_pos)
+    $P10 = rx699_cur."declarator"()
+    unless $P10, rx699_fail
+    rx699_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("declarator")
-    rx693_pos = $P10."pos"()
+    rx699_pos = $P10."pos"()
+.annotate 'line', 320
   # rx pass
-    rx693_cur."!cursor_pass"(rx693_pos, "multi_declarator:sym<null>")
-    if_null rx693_debug, debug_669
-    rx693_cur."!cursor_debug"("PASS", "multi_declarator:sym<null>", " at pos=", rx693_pos)
-  debug_669:
-    .return (rx693_cur)
-  rx693_restart:
-    if_null rx693_debug, debug_670
-    rx693_cur."!cursor_debug"("NEXT", "multi_declarator:sym<null>")
-  debug_670:
-  rx693_fail:
-    (rx693_rep, rx693_pos, $I10, $P10) = rx693_cur."!mark_fail"(0)
-    lt rx693_pos, -1, rx693_done
-    eq rx693_pos, -1, rx693_fail
-    jump $I10
-  rx693_done:
-    rx693_cur."!cursor_fail"()
-    if_null rx693_debug, debug_671
-    rx693_cur."!cursor_debug"("FAIL", "multi_declarator:sym<null>")
-  debug_671:
-    .return (rx693_cur)
+    rx699_cur."!cursor_pass"(rx699_pos, "multi_declarator:sym<null>")
+    if_null rx699_debug, debug_675
+    rx699_cur."!cursor_debug"("PASS", "multi_declarator:sym<null>", " at pos=", rx699_pos)
+  debug_675:
+    .return (rx699_cur)
+  rx699_restart:
+.annotate 'line', 4
+    if_null rx699_debug, debug_676
+    rx699_cur."!cursor_debug"("NEXT", "multi_declarator:sym<null>")
+  debug_676:
+  rx699_fail:
+    (rx699_rep, rx699_pos, $I10, $P10) = rx699_cur."!mark_fail"(0)
+    lt rx699_pos, -1, rx699_done
+    eq rx699_pos, -1, rx699_fail
+    jump $I10
+  rx699_done:
+    rx699_cur."!cursor_fail"()
+    if_null rx699_debug, debug_677
+    rx699_cur."!cursor_debug"("FAIL", "multi_declarator:sym<null>")
+  debug_677:
+    .return (rx699_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<null>"  :subid("169_1283975947.19641") :method
-.annotate 'line', 0
-    $P695 = self."!PREFIX__!subrule"("declarator", "")
-    new $P696, "ResizablePMCArray"
-    push $P696, $P695
-    .return ($P696)
+.sub "!PREFIX__multi_declarator:sym<null>"  :subid("169_1284728478.15265") :method
+.annotate 'line', 4
+    $P701 = self."!PREFIX__!subrule"("declarator", "")
+    new $P702, "ResizablePMCArray"
+    push $P702, $P701
+    .return ($P702)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "signature"  :subid("170_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx700_tgt
-    .local int rx700_pos
-    .local int rx700_off
-    .local int rx700_eos
-    .local int rx700_rep
-    .local pmc rx700_cur
-    .local pmc rx700_debug
-    (rx700_cur, rx700_pos, rx700_tgt, $I10) = self."!cursor_start"()
-    rx700_cur."!cursor_caparray"("parameter")
-    getattribute rx700_debug, rx700_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx700_cur
-    .local pmc match
-    .lex "$/", match
-    length rx700_eos, rx700_tgt
-    gt rx700_pos, rx700_eos, rx700_done
-    set rx700_off, 0
-    lt rx700_pos, 2, rx700_start
-    sub rx700_off, rx700_pos, 1
-    substr rx700_tgt, rx700_tgt, rx700_off
-  rx700_start:
-    eq $I10, 1, rx700_restart
-    if_null rx700_debug, debug_672
-    rx700_cur."!cursor_debug"("START", "signature")
-  debug_672:
+.sub "signature"  :subid("170_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx706_tgt
+    .local int rx706_pos
+    .local int rx706_off
+    .local int rx706_eos
+    .local int rx706_rep
+    .local pmc rx706_cur
+    .local pmc rx706_debug
+    (rx706_cur, rx706_pos, rx706_tgt, $I10) = self."!cursor_start"()
+    rx706_cur."!cursor_caparray"("parameter")
+    getattribute rx706_debug, rx706_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx706_cur
+    .local pmc match
+    .lex "$/", match
+    length rx706_eos, rx706_tgt
+    gt rx706_pos, rx706_eos, rx706_done
+    set rx706_off, 0
+    lt rx706_pos, 2, rx706_start
+    sub rx706_off, rx706_pos, 1
+    substr rx706_tgt, rx706_tgt, rx706_off
+  rx706_start:
+    eq $I10, 1, rx706_restart
+    if_null rx706_debug, debug_678
+    rx706_cur."!cursor_debug"("START", "signature")
+  debug_678:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan703_done
-    goto rxscan703_scan
-  rxscan703_loop:
-    ($P10) = rx700_cur."from"()
-    inc $P10
-    set rx700_pos, $P10
-    ge rx700_pos, rx700_eos, rxscan703_done
-  rxscan703_scan:
-    set_addr $I10, rxscan703_loop
-    rx700_cur."!mark_push"(0, rx700_pos, $I10)
-  rxscan703_done:
-  # rx rxquantr704 ** 0..1
-    set_addr $I10, rxquantr704_done
-    rx700_cur."!mark_push"(0, rx700_pos, $I10)
-  rxquantr704_loop:
-  # rx rxquantr705 ** 1..*
-    set_addr $I10, rxquantr705_done
-    rx700_cur."!mark_push"(0, -1, $I10)
-  rxquantr705_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx700_cur."!cursor_pos"(rx700_pos)
-    $P10 = rx700_cur."ws"()
-    unless $P10, rx700_fail
-    rx700_pos = $P10."pos"()
+    ne $I10, -1, rxscan709_done
+    goto rxscan709_scan
+  rxscan709_loop:
+    ($P10) = rx706_cur."from"()
+    inc $P10
+    set rx706_pos, $P10
+    ge rx706_pos, rx706_eos, rxscan709_done
+  rxscan709_scan:
+    set_addr $I10, rxscan709_loop
+    rx706_cur."!mark_push"(0, rx706_pos, $I10)
+  rxscan709_done:
+.annotate 'line', 325
+  # rx rxquantr710 ** 0..1
+    set_addr $I10, rxquantr710_done
+    rx706_cur."!mark_push"(0, rx706_pos, $I10)
+  rxquantr710_loop:
+  # rx rxquantr711 ** 1..*
+    set_addr $I10, rxquantr711_done
+    rx706_cur."!mark_push"(0, -1, $I10)
+  rxquantr711_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx706_cur."!cursor_pos"(rx706_pos)
+    $P10 = rx706_cur."ws"()
+    unless $P10, rx706_fail
+    rx706_pos = $P10."pos"()
   # rx subrule "parameter" subtype=capture negate=
-    rx700_cur."!cursor_pos"(rx700_pos)
-    $P10 = rx700_cur."parameter"()
-    unless $P10, rx700_fail
-    rx700_cur."!mark_push"(0, -1, 0, $P10)
+    rx706_cur."!cursor_pos"(rx706_pos)
+    $P10 = rx706_cur."parameter"()
+    unless $P10, rx706_fail
+    rx706_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("parameter")
-    rx700_pos = $P10."pos"()
+    rx706_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx700_cur."!cursor_pos"(rx700_pos)
-    $P10 = rx700_cur."ws"()
-    unless $P10, rx700_fail
-    rx700_pos = $P10."pos"()
-    set_addr $I10, rxquantr705_done
-    (rx700_rep) = rx700_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr705_done
-    rx700_cur."!mark_push"(rx700_rep, rx700_pos, $I10)
+    rx706_cur."!cursor_pos"(rx706_pos)
+    $P10 = rx706_cur."ws"()
+    unless $P10, rx706_fail
+    rx706_pos = $P10."pos"()
+    set_addr $I10, rxquantr711_done
+    (rx706_rep) = rx706_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr711_done
+    rx706_cur."!mark_push"(rx706_rep, rx706_pos, $I10)
   # rx literal  ","
-    add $I11, rx700_pos, 1
-    gt $I11, rx700_eos, rx700_fail
-    sub $I11, rx700_pos, rx700_off
-    ord $I11, rx700_tgt, $I11
-    ne $I11, 44, rx700_fail
-    add rx700_pos, 1
-    goto rxquantr705_loop
-  rxquantr705_done:
-    set_addr $I10, rxquantr704_done
-    (rx700_rep) = rx700_cur."!mark_commit"($I10)
-  rxquantr704_done:
-  # rx pass
-    rx700_cur."!cursor_pass"(rx700_pos, "signature")
-    if_null rx700_debug, debug_673
-    rx700_cur."!cursor_debug"("PASS", "signature", " at pos=", rx700_pos)
-  debug_673:
-    .return (rx700_cur)
-  rx700_restart:
-    if_null rx700_debug, debug_674
-    rx700_cur."!cursor_debug"("NEXT", "signature")
-  debug_674:
-  rx700_fail:
-    (rx700_rep, rx700_pos, $I10, $P10) = rx700_cur."!mark_fail"(0)
-    lt rx700_pos, -1, rx700_done
-    eq rx700_pos, -1, rx700_fail
-    jump $I10
-  rx700_done:
-    rx700_cur."!cursor_fail"()
-    if_null rx700_debug, debug_675
-    rx700_cur."!cursor_debug"("FAIL", "signature")
-  debug_675:
-    .return (rx700_cur)
+    add $I11, rx706_pos, 1
+    gt $I11, rx706_eos, rx706_fail
+    sub $I11, rx706_pos, rx706_off
+    ord $I11, rx706_tgt, $I11
+    ne $I11, 44, rx706_fail
+    add rx706_pos, 1
+    goto rxquantr711_loop
+  rxquantr711_done:
+    set_addr $I10, rxquantr710_done
+    (rx706_rep) = rx706_cur."!mark_commit"($I10)
+  rxquantr710_done:
+  # rx pass
+    rx706_cur."!cursor_pass"(rx706_pos, "signature")
+    if_null rx706_debug, debug_679
+    rx706_cur."!cursor_debug"("PASS", "signature", " at pos=", rx706_pos)
+  debug_679:
+    .return (rx706_cur)
+  rx706_restart:
+.annotate 'line', 4
+    if_null rx706_debug, debug_680
+    rx706_cur."!cursor_debug"("NEXT", "signature")
+  debug_680:
+  rx706_fail:
+    (rx706_rep, rx706_pos, $I10, $P10) = rx706_cur."!mark_fail"(0)
+    lt rx706_pos, -1, rx706_done
+    eq rx706_pos, -1, rx706_fail
+    jump $I10
+  rx706_done:
+    rx706_cur."!cursor_fail"()
+    if_null rx706_debug, debug_681
+    rx706_cur."!cursor_debug"("FAIL", "signature")
+  debug_681:
+    .return (rx706_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature"  :subid("171_1283975947.19641") :method
-.annotate 'line', 0
-    new $P702, "ResizablePMCArray"
-    push $P702, ""
-    .return ($P702)
+.sub "!PREFIX__signature"  :subid("171_1284728478.15265") :method
+.annotate 'line', 4
+    new $P708, "ResizablePMCArray"
+    push $P708, ""
+    .return ($P708)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "parameter"  :subid("172_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx707_tgt
-    .local int rx707_pos
-    .local int rx707_off
-    .local int rx707_eos
-    .local int rx707_rep
-    .local pmc rx707_cur
-    .local pmc rx707_debug
-    (rx707_cur, rx707_pos, rx707_tgt, $I10) = self."!cursor_start"()
-    rx707_cur."!cursor_caparray"("default_value", "typename")
-    getattribute rx707_debug, rx707_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx707_cur
-    .local pmc match
-    .lex "$/", match
-    length rx707_eos, rx707_tgt
-    gt rx707_pos, rx707_eos, rx707_done
-    set rx707_off, 0
-    lt rx707_pos, 2, rx707_start
-    sub rx707_off, rx707_pos, 1
-    substr rx707_tgt, rx707_tgt, rx707_off
-  rx707_start:
-    eq $I10, 1, rx707_restart
-    if_null rx707_debug, debug_676
-    rx707_cur."!cursor_debug"("START", "parameter")
-  debug_676:
+.sub "parameter"  :subid("172_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx713_tgt
+    .local int rx713_pos
+    .local int rx713_off
+    .local int rx713_eos
+    .local int rx713_rep
+    .local pmc rx713_cur
+    .local pmc rx713_debug
+    (rx713_cur, rx713_pos, rx713_tgt, $I10) = self."!cursor_start"()
+    rx713_cur."!cursor_caparray"("default_value", "typename")
+    getattribute rx713_debug, rx713_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx713_cur
+    .local pmc match
+    .lex "$/", match
+    length rx713_eos, rx713_tgt
+    gt rx713_pos, rx713_eos, rx713_done
+    set rx713_off, 0
+    lt rx713_pos, 2, rx713_start
+    sub rx713_off, rx713_pos, 1
+    substr rx713_tgt, rx713_tgt, rx713_off
+  rx713_start:
+    eq $I10, 1, rx713_restart
+    if_null rx713_debug, debug_682
+    rx713_cur."!cursor_debug"("START", "parameter")
+  debug_682:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan710_done
-    goto rxscan710_scan
-  rxscan710_loop:
-    ($P10) = rx707_cur."from"()
-    inc $P10
-    set rx707_pos, $P10
-    ge rx707_pos, rx707_eos, rxscan710_done
-  rxscan710_scan:
-    set_addr $I10, rxscan710_loop
-    rx707_cur."!mark_push"(0, rx707_pos, $I10)
-  rxscan710_done:
-  # rx rxquantr711 ** 0..*
-    set_addr $I10, rxquantr711_done
-    rx707_cur."!mark_push"(0, rx707_pos, $I10)
-  rxquantr711_loop:
+    ne $I10, -1, rxscan716_done
+    goto rxscan716_scan
+  rxscan716_loop:
+    ($P10) = rx713_cur."from"()
+    inc $P10
+    set rx713_pos, $P10
+    ge rx713_pos, rx713_eos, rxscan716_done
+  rxscan716_scan:
+    set_addr $I10, rxscan716_loop
+    rx713_cur."!mark_push"(0, rx713_pos, $I10)
+  rxscan716_done:
+.annotate 'line', 328
+  # rx rxquantr717 ** 0..*
+    set_addr $I10, rxquantr717_done
+    rx713_cur."!mark_push"(0, rx713_pos, $I10)
+  rxquantr717_loop:
   # rx subrule "typename" subtype=capture negate=
-    rx707_cur."!cursor_pos"(rx707_pos)
-    $P10 = rx707_cur."typename"()
-    unless $P10, rx707_fail
-    rx707_cur."!mark_push"(0, -1, 0, $P10)
+    rx713_cur."!cursor_pos"(rx713_pos)
+    $P10 = rx713_cur."typename"()
+    unless $P10, rx713_fail
+    rx713_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("typename")
-    rx707_pos = $P10."pos"()
+    rx713_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx707_cur."!cursor_pos"(rx707_pos)
-    $P10 = rx707_cur."ws"()
-    unless $P10, rx707_fail
-    rx707_pos = $P10."pos"()
-    set_addr $I10, rxquantr711_done
-    (rx707_rep) = rx707_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr711_done
-    rx707_cur."!mark_push"(rx707_rep, rx707_pos, $I10)
-    goto rxquantr711_loop
-  rxquantr711_done:
-  alt712_0:
-    set_addr $I10, alt712_1
-    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+    rx713_cur."!cursor_pos"(rx713_pos)
+    $P10 = rx713_cur."ws"()
+    unless $P10, rx713_fail
+    rx713_pos = $P10."pos"()
+    set_addr $I10, rxquantr717_done
+    (rx713_rep) = rx713_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr717_done
+    rx713_cur."!mark_push"(rx713_rep, rx713_pos, $I10)
+    goto rxquantr717_loop
+  rxquantr717_done:
+  alt718_0:
+.annotate 'line', 329
+    set_addr $I10, alt718_1
+    rx713_cur."!mark_push"(0, rx713_pos, $I10)
+.annotate 'line', 330
   # rx subcapture "quant"
-    set_addr $I10, rxcap_713_fail
-    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+    set_addr $I10, rxcap_719_fail
+    rx713_cur."!mark_push"(0, rx713_pos, $I10)
   # rx literal  "*"
-    add $I11, rx707_pos, 1
-    gt $I11, rx707_eos, rx707_fail
-    sub $I11, rx707_pos, rx707_off
-    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)
-    rx707_cur."!cursor_pos"($I11)
-    ($P10) = rx707_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx707_pos, "")
-    rx707_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx713_pos, 1
+    gt $I11, rx713_eos, rx713_fail
+    sub $I11, rx713_pos, rx713_off
+    ord $I11, rx713_tgt, $I11
+    ne $I11, 42, rx713_fail
+    add rx713_pos, 1
+    set_addr $I10, rxcap_719_fail
+    ($I12, $I11) = rx713_cur."!mark_peek"($I10)
+    rx713_cur."!cursor_pos"($I11)
+    ($P10) = rx713_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx713_pos, "")
+    rx713_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quant")
-    goto rxcap_713_done
-  rxcap_713_fail:
-    goto rx707_fail
-  rxcap_713_done:
+    goto rxcap_719_done
+  rxcap_719_fail:
+    goto rx713_fail
+  rxcap_719_done:
   # rx subrule "param_var" subtype=capture negate=
-    rx707_cur."!cursor_pos"(rx707_pos)
-    $P10 = rx707_cur."param_var"()
-    unless $P10, rx707_fail
-    rx707_cur."!mark_push"(0, -1, 0, $P10)
+    rx713_cur."!cursor_pos"(rx713_pos)
+    $P10 = rx713_cur."param_var"()
+    unless $P10, rx713_fail
+    rx713_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("param_var")
-    rx707_pos = $P10."pos"()
-    goto alt712_end
-  alt712_1:
-  alt714_0:
-    set_addr $I10, alt714_1
-    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+    rx713_pos = $P10."pos"()
+    goto alt718_end
+  alt718_1:
+  alt720_0:
+.annotate 'line', 331
+    set_addr $I10, alt720_1
+    rx713_cur."!mark_push"(0, rx713_pos, $I10)
   # rx subrule "param_var" subtype=capture negate=
-    rx707_cur."!cursor_pos"(rx707_pos)
-    $P10 = rx707_cur."param_var"()
-    unless $P10, rx707_fail
-    rx707_cur."!mark_push"(0, -1, 0, $P10)
+    rx713_cur."!cursor_pos"(rx713_pos)
+    $P10 = rx713_cur."param_var"()
+    unless $P10, rx713_fail
+    rx713_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("param_var")
-    rx707_pos = $P10."pos"()
-    goto alt714_end
-  alt714_1:
+    rx713_pos = $P10."pos"()
+    goto alt720_end
+  alt720_1:
   # rx subrule "named_param" subtype=capture negate=
-    rx707_cur."!cursor_pos"(rx707_pos)
-    $P10 = rx707_cur."named_param"()
-    unless $P10, rx707_fail
-    rx707_cur."!mark_push"(0, -1, 0, $P10)
+    rx713_cur."!cursor_pos"(rx713_pos)
+    $P10 = rx713_cur."named_param"()
+    unless $P10, rx713_fail
+    rx713_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("named_param")
-    rx707_pos = $P10."pos"()
-  alt714_end:
+    rx713_pos = $P10."pos"()
+  alt720_end:
   # rx subcapture "quant"
-    set_addr $I10, rxcap_716_fail
-    rx707_cur."!mark_push"(0, rx707_pos, $I10)
-  alt715_0:
-    set_addr $I10, alt715_1
-    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+    set_addr $I10, rxcap_722_fail
+    rx713_cur."!mark_push"(0, rx713_pos, $I10)
+  alt721_0:
+    set_addr $I10, alt721_1
+    rx713_cur."!mark_push"(0, rx713_pos, $I10)
   # rx literal  "?"
-    add $I11, rx707_pos, 1
-    gt $I11, rx707_eos, rx707_fail
-    sub $I11, rx707_pos, rx707_off
-    ord $I11, rx707_tgt, $I11
-    ne $I11, 63, rx707_fail
-    add rx707_pos, 1
-    goto alt715_end
-  alt715_1:
-    set_addr $I10, alt715_2
-    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+    add $I11, rx713_pos, 1
+    gt $I11, rx713_eos, rx713_fail
+    sub $I11, rx713_pos, rx713_off
+    ord $I11, rx713_tgt, $I11
+    ne $I11, 63, rx713_fail
+    add rx713_pos, 1
+    goto alt721_end
+  alt721_1:
+    set_addr $I10, alt721_2
+    rx713_cur."!mark_push"(0, rx713_pos, $I10)
   # rx literal  "!"
-    add $I11, rx707_pos, 1
-    gt $I11, rx707_eos, rx707_fail
-    sub $I11, rx707_pos, rx707_off
-    ord $I11, rx707_tgt, $I11
-    ne $I11, 33, rx707_fail
-    add rx707_pos, 1
-    goto alt715_end
-  alt715_2:
-  alt715_end:
-    set_addr $I10, rxcap_716_fail
-    ($I12, $I11) = rx707_cur."!mark_peek"($I10)
-    rx707_cur."!cursor_pos"($I11)
-    ($P10) = rx707_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx707_pos, "")
-    rx707_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx713_pos, 1
+    gt $I11, rx713_eos, rx713_fail
+    sub $I11, rx713_pos, rx713_off
+    ord $I11, rx713_tgt, $I11
+    ne $I11, 33, rx713_fail
+    add rx713_pos, 1
+    goto alt721_end
+  alt721_2:
+  alt721_end:
+    set_addr $I10, rxcap_722_fail
+    ($I12, $I11) = rx713_cur."!mark_peek"($I10)
+    rx713_cur."!cursor_pos"($I11)
+    ($P10) = rx713_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx713_pos, "")
+    rx713_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quant")
-    goto rxcap_716_done
-  rxcap_716_fail:
-    goto rx707_fail
-  rxcap_716_done:
-  alt712_end:
-  # rx rxquantr717 ** 0..1
-    set_addr $I10, rxquantr717_done
-    rx707_cur."!mark_push"(0, rx707_pos, $I10)
-  rxquantr717_loop:
+    goto rxcap_722_done
+  rxcap_722_fail:
+    goto rx713_fail
+  rxcap_722_done:
+  alt718_end:
+.annotate 'line', 333
+  # rx rxquantr723 ** 0..1
+    set_addr $I10, rxquantr723_done
+    rx713_cur."!mark_push"(0, rx713_pos, $I10)
+  rxquantr723_loop:
   # rx subrule "default_value" subtype=capture negate=
-    rx707_cur."!cursor_pos"(rx707_pos)
-    $P10 = rx707_cur."default_value"()
-    unless $P10, rx707_fail
-    goto rxsubrule718_pass
-  rxsubrule718_back:
+    rx713_cur."!cursor_pos"(rx713_pos)
+    $P10 = rx713_cur."default_value"()
+    unless $P10, rx713_fail
+    goto rxsubrule724_pass
+  rxsubrule724_back:
     $P10 = $P10."!cursor_next"()
-    unless $P10, rx707_fail
-  rxsubrule718_pass:
-    set_addr $I10, rxsubrule718_back
-    rx707_cur."!mark_push"(0, rx707_pos, $I10, $P10)
+    unless $P10, rx713_fail
+  rxsubrule724_pass:
+    set_addr $I10, rxsubrule724_back
+    rx713_cur."!mark_push"(0, rx713_pos, $I10, $P10)
     $P10."!cursor_names"("default_value")
-    rx707_pos = $P10."pos"()
-    set_addr $I10, rxquantr717_done
-    (rx707_rep) = rx707_cur."!mark_commit"($I10)
-  rxquantr717_done:
-  # rx pass
-    rx707_cur."!cursor_pass"(rx707_pos, "parameter")
-    if_null rx707_debug, debug_677
-    rx707_cur."!cursor_debug"("PASS", "parameter", " at pos=", rx707_pos)
-  debug_677:
-    .return (rx707_cur)
-  rx707_restart:
-    if_null rx707_debug, debug_678
-    rx707_cur."!cursor_debug"("NEXT", "parameter")
-  debug_678:
-  rx707_fail:
-    (rx707_rep, rx707_pos, $I10, $P10) = rx707_cur."!mark_fail"(0)
-    lt rx707_pos, -1, rx707_done
-    eq rx707_pos, -1, rx707_fail
-    jump $I10
-  rx707_done:
-    rx707_cur."!cursor_fail"()
-    if_null rx707_debug, debug_679
-    rx707_cur."!cursor_debug"("FAIL", "parameter")
-  debug_679:
-    .return (rx707_cur)
+    rx713_pos = $P10."pos"()
+    set_addr $I10, rxquantr723_done
+    (rx713_rep) = rx713_cur."!mark_commit"($I10)
+  rxquantr723_done:
+.annotate 'line', 327
+  # rx pass
+    rx713_cur."!cursor_pass"(rx713_pos, "parameter")
+    if_null rx713_debug, debug_683
+    rx713_cur."!cursor_debug"("PASS", "parameter", " at pos=", rx713_pos)
+  debug_683:
+    .return (rx713_cur)
+  rx713_restart:
+.annotate 'line', 4
+    if_null rx713_debug, debug_684
+    rx713_cur."!cursor_debug"("NEXT", "parameter")
+  debug_684:
+  rx713_fail:
+    (rx713_rep, rx713_pos, $I10, $P10) = rx713_cur."!mark_fail"(0)
+    lt rx713_pos, -1, rx713_done
+    eq rx713_pos, -1, rx713_fail
+    jump $I10
+  rx713_done:
+    rx713_cur."!cursor_fail"()
+    if_null rx713_debug, debug_685
+    rx713_cur."!cursor_debug"("FAIL", "parameter")
+  debug_685:
+    .return (rx713_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter"  :subid("173_1283975947.19641") :method
-.annotate 'line', 0
-    new $P709, "ResizablePMCArray"
-    push $P709, ""
-    .return ($P709)
+.sub "!PREFIX__parameter"  :subid("173_1284728478.15265") :method
+.annotate 'line', 4
+    new $P715, "ResizablePMCArray"
+    push $P715, ""
+    .return ($P715)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "param_var"  :subid("174_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx720_tgt
-    .local int rx720_pos
-    .local int rx720_off
-    .local int rx720_eos
-    .local int rx720_rep
-    .local pmc rx720_cur
-    .local pmc rx720_debug
-    (rx720_cur, rx720_pos, rx720_tgt, $I10) = self."!cursor_start"()
-    rx720_cur."!cursor_caparray"("twigil")
-    getattribute rx720_debug, rx720_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx720_cur
-    .local pmc match
-    .lex "$/", match
-    length rx720_eos, rx720_tgt
-    gt rx720_pos, rx720_eos, rx720_done
-    set rx720_off, 0
-    lt rx720_pos, 2, rx720_start
-    sub rx720_off, rx720_pos, 1
-    substr rx720_tgt, rx720_tgt, rx720_off
-  rx720_start:
-    eq $I10, 1, rx720_restart
-    if_null rx720_debug, debug_680
-    rx720_cur."!cursor_debug"("START", "param_var")
-  debug_680:
+.sub "param_var"  :subid("174_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx726_tgt
+    .local int rx726_pos
+    .local int rx726_off
+    .local int rx726_eos
+    .local int rx726_rep
+    .local pmc rx726_cur
+    .local pmc rx726_debug
+    (rx726_cur, rx726_pos, rx726_tgt, $I10) = self."!cursor_start"()
+    rx726_cur."!cursor_caparray"("twigil")
+    getattribute rx726_debug, rx726_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx726_cur
+    .local pmc match
+    .lex "$/", match
+    length rx726_eos, rx726_tgt
+    gt rx726_pos, rx726_eos, rx726_done
+    set rx726_off, 0
+    lt rx726_pos, 2, rx726_start
+    sub rx726_off, rx726_pos, 1
+    substr rx726_tgt, rx726_tgt, rx726_off
+  rx726_start:
+    eq $I10, 1, rx726_restart
+    if_null rx726_debug, debug_686
+    rx726_cur."!cursor_debug"("START", "param_var")
+  debug_686:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan724_done
-    goto rxscan724_scan
-  rxscan724_loop:
-    ($P10) = rx720_cur."from"()
-    inc $P10
-    set rx720_pos, $P10
-    ge rx720_pos, rx720_eos, rxscan724_done
-  rxscan724_scan:
-    set_addr $I10, rxscan724_loop
-    rx720_cur."!mark_push"(0, rx720_pos, $I10)
-  rxscan724_done:
+    ne $I10, -1, rxscan730_done
+    goto rxscan730_scan
+  rxscan730_loop:
+    ($P10) = rx726_cur."from"()
+    inc $P10
+    set rx726_pos, $P10
+    ge rx726_pos, rx726_eos, rxscan730_done
+  rxscan730_scan:
+    set_addr $I10, rxscan730_loop
+    rx726_cur."!mark_push"(0, rx726_pos, $I10)
+  rxscan730_done:
+.annotate 'line', 337
   # rx subrule "sigil" subtype=capture negate=
-    rx720_cur."!cursor_pos"(rx720_pos)
-    $P10 = rx720_cur."sigil"()
-    unless $P10, rx720_fail
-    rx720_cur."!mark_push"(0, -1, 0, $P10)
+    rx726_cur."!cursor_pos"(rx726_pos)
+    $P10 = rx726_cur."sigil"()
+    unless $P10, rx726_fail
+    rx726_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    rx720_pos = $P10."pos"()
-  # rx rxquantr725 ** 0..1
-    set_addr $I10, rxquantr725_done
-    rx720_cur."!mark_push"(0, rx720_pos, $I10)
-  rxquantr725_loop:
+    rx726_pos = $P10."pos"()
+  # rx rxquantr731 ** 0..1
+    set_addr $I10, rxquantr731_done
+    rx726_cur."!mark_push"(0, rx726_pos, $I10)
+  rxquantr731_loop:
   # rx subrule "twigil" subtype=capture negate=
-    rx720_cur."!cursor_pos"(rx720_pos)
-    $P10 = rx720_cur."twigil"()
-    unless $P10, rx720_fail
-    goto rxsubrule726_pass
-  rxsubrule726_back:
+    rx726_cur."!cursor_pos"(rx726_pos)
+    $P10 = rx726_cur."twigil"()
+    unless $P10, rx726_fail
+    goto rxsubrule732_pass
+  rxsubrule732_back:
     $P10 = $P10."!cursor_next"()
-    unless $P10, rx720_fail
-  rxsubrule726_pass:
-    set_addr $I10, rxsubrule726_back
-    rx720_cur."!mark_push"(0, rx720_pos, $I10, $P10)
+    unless $P10, rx726_fail
+  rxsubrule732_pass:
+    set_addr $I10, rxsubrule732_back
+    rx726_cur."!mark_push"(0, rx726_pos, $I10, $P10)
     $P10."!cursor_names"("twigil")
-    rx720_pos = $P10."pos"()
-    set_addr $I10, rxquantr725_done
-    (rx720_rep) = rx720_cur."!mark_commit"($I10)
-  rxquantr725_done:
-  alt727_0:
-    set_addr $I10, alt727_1
-    rx720_cur."!mark_push"(0, rx720_pos, $I10)
+    rx726_pos = $P10."pos"()
+    set_addr $I10, rxquantr731_done
+    (rx726_rep) = rx726_cur."!mark_commit"($I10)
+  rxquantr731_done:
+  alt733_0:
+.annotate 'line', 338
+    set_addr $I10, alt733_1
+    rx726_cur."!mark_push"(0, rx726_pos, $I10)
   # rx subrule "ident" subtype=capture negate=
-    rx720_cur."!cursor_pos"(rx720_pos)
-    $P10 = rx720_cur."ident"()
-    unless $P10, rx720_fail
-    rx720_cur."!mark_push"(0, -1, 0, $P10)
+    rx726_cur."!cursor_pos"(rx726_pos)
+    $P10 = rx726_cur."ident"()
+    unless $P10, rx726_fail
+    rx726_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    rx720_pos = $P10."pos"()
-    goto alt727_end
-  alt727_1:
+    rx726_pos = $P10."pos"()
+    goto alt733_end
+  alt733_1:
   # rx subcapture "name"
-    set_addr $I10, rxcap_728_fail
-    rx720_cur."!mark_push"(0, rx720_pos, $I10)
+    set_addr $I10, rxcap_734_fail
+    rx726_cur."!mark_push"(0, rx726_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx720_pos, rx720_eos, rx720_fail
-    sub $I10, rx720_pos, rx720_off
-    substr $S10, rx720_tgt, $I10, 1
+    ge rx726_pos, rx726_eos, rx726_fail
+    sub $I10, rx726_pos, rx726_off
+    substr $S10, rx726_tgt, $I10, 1
     index $I11, "/!", $S10
-    lt $I11, 0, rx720_fail
-    inc rx720_pos
-    set_addr $I10, rxcap_728_fail
-    ($I12, $I11) = rx720_cur."!mark_peek"($I10)
-    rx720_cur."!cursor_pos"($I11)
-    ($P10) = rx720_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx720_pos, "")
-    rx720_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx726_fail
+    inc rx726_pos
+    set_addr $I10, rxcap_734_fail
+    ($I12, $I11) = rx726_cur."!mark_peek"($I10)
+    rx726_cur."!cursor_pos"($I11)
+    ($P10) = rx726_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx726_pos, "")
+    rx726_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    goto rxcap_728_done
-  rxcap_728_fail:
-    goto rx720_fail
-  rxcap_728_done:
-  alt727_end:
-  # rx pass
-    rx720_cur."!cursor_pass"(rx720_pos, "param_var")
-    if_null rx720_debug, debug_681
-    rx720_cur."!cursor_debug"("PASS", "param_var", " at pos=", rx720_pos)
-  debug_681:
-    .return (rx720_cur)
-  rx720_restart:
-    if_null rx720_debug, debug_682
-    rx720_cur."!cursor_debug"("NEXT", "param_var")
-  debug_682:
-  rx720_fail:
-    (rx720_rep, rx720_pos, $I10, $P10) = rx720_cur."!mark_fail"(0)
-    lt rx720_pos, -1, rx720_done
-    eq rx720_pos, -1, rx720_fail
-    jump $I10
-  rx720_done:
-    rx720_cur."!cursor_fail"()
-    if_null rx720_debug, debug_683
-    rx720_cur."!cursor_debug"("FAIL", "param_var")
-  debug_683:
-    .return (rx720_cur)
-    .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var"  :subid("175_1283975947.19641") :method
-.annotate 'line', 0
-    $P722 = self."!PREFIX__!subrule"("sigil", "")
-    new $P723, "ResizablePMCArray"
-    push $P723, $P722
-    .return ($P723)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "named_param"  :subid("176_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx730_tgt
-    .local int rx730_pos
-    .local int rx730_off
-    .local int rx730_eos
-    .local int rx730_rep
-    .local pmc rx730_cur
-    .local pmc rx730_debug
-    (rx730_cur, rx730_pos, rx730_tgt, $I10) = self."!cursor_start"()
-    getattribute rx730_debug, rx730_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx730_cur
-    .local pmc match
-    .lex "$/", match
-    length rx730_eos, rx730_tgt
-    gt rx730_pos, rx730_eos, rx730_done
-    set rx730_off, 0
-    lt rx730_pos, 2, rx730_start
-    sub rx730_off, rx730_pos, 1
-    substr rx730_tgt, rx730_tgt, rx730_off
-  rx730_start:
-    eq $I10, 1, rx730_restart
-    if_null rx730_debug, debug_684
-    rx730_cur."!cursor_debug"("START", "named_param")
-  debug_684:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan734_done
-    goto rxscan734_scan
-  rxscan734_loop:
-    ($P10) = rx730_cur."from"()
-    inc $P10
-    set rx730_pos, $P10
-    ge rx730_pos, rx730_eos, rxscan734_done
-  rxscan734_scan:
-    set_addr $I10, rxscan734_loop
-    rx730_cur."!mark_push"(0, rx730_pos, $I10)
-  rxscan734_done:
-  # rx literal  ":"
-    add $I11, rx730_pos, 1
-    gt $I11, rx730_eos, rx730_fail
-    sub $I11, rx730_pos, rx730_off
-    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)
-    $P10 = rx730_cur."param_var"()
-    unless $P10, rx730_fail
-    rx730_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("param_var")
-    rx730_pos = $P10."pos"()
-  # rx pass
-    rx730_cur."!cursor_pass"(rx730_pos, "named_param")
-    if_null rx730_debug, debug_685
-    rx730_cur."!cursor_debug"("PASS", "named_param", " at pos=", rx730_pos)
-  debug_685:
-    .return (rx730_cur)
-  rx730_restart:
-    if_null rx730_debug, debug_686
-    rx730_cur."!cursor_debug"("NEXT", "named_param")
-  debug_686:
-  rx730_fail:
-    (rx730_rep, rx730_pos, $I10, $P10) = rx730_cur."!mark_fail"(0)
-    lt rx730_pos, -1, rx730_done
-    eq rx730_pos, -1, rx730_fail
-    jump $I10
-  rx730_done:
-    rx730_cur."!cursor_fail"()
-    if_null rx730_debug, debug_687
-    rx730_cur."!cursor_debug"("FAIL", "named_param")
+    goto rxcap_734_done
+  rxcap_734_fail:
+    goto rx726_fail
+  rxcap_734_done:
+  alt733_end:
+.annotate 'line', 336
+  # rx pass
+    rx726_cur."!cursor_pass"(rx726_pos, "param_var")
+    if_null rx726_debug, debug_687
+    rx726_cur."!cursor_debug"("PASS", "param_var", " at pos=", rx726_pos)
   debug_687:
-    .return (rx730_cur)
+    .return (rx726_cur)
+  rx726_restart:
+.annotate 'line', 4
+    if_null rx726_debug, debug_688
+    rx726_cur."!cursor_debug"("NEXT", "param_var")
+  debug_688:
+  rx726_fail:
+    (rx726_rep, rx726_pos, $I10, $P10) = rx726_cur."!mark_fail"(0)
+    lt rx726_pos, -1, rx726_done
+    eq rx726_pos, -1, rx726_fail
+    jump $I10
+  rx726_done:
+    rx726_cur."!cursor_fail"()
+    if_null rx726_debug, debug_689
+    rx726_cur."!cursor_debug"("FAIL", "param_var")
+  debug_689:
+    .return (rx726_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param"  :subid("177_1283975947.19641") :method
-.annotate 'line', 0
-    $P732 = self."!PREFIX__!subrule"("param_var", ":")
-    new $P733, "ResizablePMCArray"
-    push $P733, $P732
-    .return ($P733)
+.sub "!PREFIX__param_var"  :subid("175_1284728478.15265") :method
+.annotate 'line', 4
+    $P728 = self."!PREFIX__!subrule"("sigil", "")
+    new $P729, "ResizablePMCArray"
+    push $P729, $P728
+    .return ($P729)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "default_value"  :subid("178_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "named_param"  :subid("176_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx736_tgt
     .local int rx736_pos
     .local int rx736_off
@@ -9766,9 +10069,9 @@
     substr rx736_tgt, rx736_tgt, rx736_off
   rx736_start:
     eq $I10, 1, rx736_restart
-    if_null rx736_debug, debug_688
-    rx736_cur."!cursor_debug"("START", "default_value")
-  debug_688:
+    if_null rx736_debug, debug_690
+    rx736_cur."!cursor_debug"("START", "named_param")
+  debug_690:
     $I10 = self.'from'()
     ne $I10, -1, rxscan740_done
     goto rxscan740_scan
@@ -9781,45 +10084,33 @@
     set_addr $I10, rxscan740_loop
     rx736_cur."!mark_push"(0, rx736_pos, $I10)
   rxscan740_done:
-  # rx subrule "ws" subtype=method negate=
-    rx736_cur."!cursor_pos"(rx736_pos)
-    $P10 = rx736_cur."ws"()
-    unless $P10, rx736_fail
-    rx736_pos = $P10."pos"()
-  # rx literal  "="
+.annotate 'line', 342
+  # rx literal  ":"
     add $I11, rx736_pos, 1
     gt $I11, rx736_eos, rx736_fail
     sub $I11, rx736_pos, rx736_off
     ord $I11, rx736_tgt, $I11
-    ne $I11, 61, rx736_fail
+    ne $I11, 58, rx736_fail
     add rx736_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx736_cur."!cursor_pos"(rx736_pos)
-    $P10 = rx736_cur."ws"()
-    unless $P10, rx736_fail
-    rx736_pos = $P10."pos"()
-  # rx subrule "EXPR" subtype=capture negate=
+  # rx subrule "param_var" subtype=capture negate=
     rx736_cur."!cursor_pos"(rx736_pos)
-    $P10 = rx736_cur."EXPR"("i=")
+    $P10 = rx736_cur."param_var"()
     unless $P10, rx736_fail
     rx736_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("EXPR")
-    rx736_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx736_cur."!cursor_pos"(rx736_pos)
-    $P10 = rx736_cur."ws"()
-    unless $P10, rx736_fail
+    $P10."!cursor_names"("param_var")
     rx736_pos = $P10."pos"()
+.annotate 'line', 341
   # rx pass
-    rx736_cur."!cursor_pass"(rx736_pos, "default_value")
-    if_null rx736_debug, debug_689
-    rx736_cur."!cursor_debug"("PASS", "default_value", " at pos=", rx736_pos)
-  debug_689:
+    rx736_cur."!cursor_pass"(rx736_pos, "named_param")
+    if_null rx736_debug, debug_691
+    rx736_cur."!cursor_debug"("PASS", "named_param", " at pos=", rx736_pos)
+  debug_691:
     .return (rx736_cur)
   rx736_restart:
-    if_null rx736_debug, debug_690
-    rx736_cur."!cursor_debug"("NEXT", "default_value")
-  debug_690:
+.annotate 'line', 4
+    if_null rx736_debug, debug_692
+    rx736_cur."!cursor_debug"("NEXT", "named_param")
+  debug_692:
   rx736_fail:
     (rx736_rep, rx736_pos, $I10, $P10) = rx736_cur."!mark_fail"(0)
     lt rx736_pos, -1, rx736_done
@@ -9827,18 +10118,18 @@
     jump $I10
   rx736_done:
     rx736_cur."!cursor_fail"()
-    if_null rx736_debug, debug_691
-    rx736_cur."!cursor_debug"("FAIL", "default_value")
-  debug_691:
+    if_null rx736_debug, debug_693
+    rx736_cur."!cursor_debug"("FAIL", "named_param")
+  debug_693:
     .return (rx736_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value"  :subid("179_1283975947.19641") :method
-.annotate 'line', 0
-    $P738 = self."!PREFIX__!subrule"("ws", "")
+.sub "!PREFIX__named_param"  :subid("177_1284728478.15265") :method
+.annotate 'line', 4
+    $P738 = self."!PREFIX__!subrule"("param_var", ":")
     new $P739, "ResizablePMCArray"
     push $P739, $P738
     .return ($P739)
@@ -9846,1204 +10137,1174 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "regex_declarator"  :subid("180_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx745_tgt
-    .local int rx745_pos
-    .local int rx745_off
-    .local int rx745_eos
-    .local int rx745_rep
-    .local pmc rx745_cur
-    .local pmc rx745_debug
-    (rx745_cur, rx745_pos, rx745_tgt, $I10) = self."!cursor_start"()
-    rx745_cur."!cursor_caparray"("signature")
-    getattribute rx745_debug, rx745_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx745_cur
-    .local pmc match
-    .lex "$/", match
-    length rx745_eos, rx745_tgt
-    gt rx745_pos, rx745_eos, rx745_done
-    set rx745_off, 0
-    lt rx745_pos, 2, rx745_start
-    sub rx745_off, rx745_pos, 1
-    substr rx745_tgt, rx745_tgt, rx745_off
-  rx745_start:
-    eq $I10, 1, rx745_restart
-    if_null rx745_debug, debug_692
-    rx745_cur."!cursor_debug"("START", "regex_declarator")
-  debug_692:
+.sub "default_value"  :subid("178_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx742_tgt
+    .local int rx742_pos
+    .local int rx742_off
+    .local int rx742_eos
+    .local int rx742_rep
+    .local pmc rx742_cur
+    .local pmc rx742_debug
+    (rx742_cur, rx742_pos, rx742_tgt, $I10) = self."!cursor_start"()
+    getattribute rx742_debug, rx742_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx742_cur
+    .local pmc match
+    .lex "$/", match
+    length rx742_eos, rx742_tgt
+    gt rx742_pos, rx742_eos, rx742_done
+    set rx742_off, 0
+    lt rx742_pos, 2, rx742_start
+    sub rx742_off, rx742_pos, 1
+    substr rx742_tgt, rx742_tgt, rx742_off
+  rx742_start:
+    eq $I10, 1, rx742_restart
+    if_null rx742_debug, debug_694
+    rx742_cur."!cursor_debug"("START", "default_value")
+  debug_694:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan746_done
+    goto rxscan746_scan
+  rxscan746_loop:
+    ($P10) = rx742_cur."from"()
+    inc $P10
+    set rx742_pos, $P10
+    ge rx742_pos, rx742_eos, rxscan746_done
+  rxscan746_scan:
+    set_addr $I10, rxscan746_loop
+    rx742_cur."!mark_push"(0, rx742_pos, $I10)
+  rxscan746_done:
+.annotate 'line', 345
+  # rx subrule "ws" subtype=method negate=
+    rx742_cur."!cursor_pos"(rx742_pos)
+    $P10 = rx742_cur."ws"()
+    unless $P10, rx742_fail
+    rx742_pos = $P10."pos"()
+  # rx literal  "="
+    add $I11, rx742_pos, 1
+    gt $I11, rx742_eos, rx742_fail
+    sub $I11, rx742_pos, rx742_off
+    ord $I11, rx742_tgt, $I11
+    ne $I11, 61, rx742_fail
+    add rx742_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx742_cur."!cursor_pos"(rx742_pos)
+    $P10 = rx742_cur."ws"()
+    unless $P10, rx742_fail
+    rx742_pos = $P10."pos"()
+  # rx subrule "EXPR" subtype=capture negate=
+    rx742_cur."!cursor_pos"(rx742_pos)
+    $P10 = rx742_cur."EXPR"("i=")
+    unless $P10, rx742_fail
+    rx742_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("EXPR")
+    rx742_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx742_cur."!cursor_pos"(rx742_pos)
+    $P10 = rx742_cur."ws"()
+    unless $P10, rx742_fail
+    rx742_pos = $P10."pos"()
+  # rx pass
+    rx742_cur."!cursor_pass"(rx742_pos, "default_value")
+    if_null rx742_debug, debug_695
+    rx742_cur."!cursor_debug"("PASS", "default_value", " at pos=", rx742_pos)
+  debug_695:
+    .return (rx742_cur)
+  rx742_restart:
+.annotate 'line', 4
+    if_null rx742_debug, debug_696
+    rx742_cur."!cursor_debug"("NEXT", "default_value")
+  debug_696:
+  rx742_fail:
+    (rx742_rep, rx742_pos, $I10, $P10) = rx742_cur."!mark_fail"(0)
+    lt rx742_pos, -1, rx742_done
+    eq rx742_pos, -1, rx742_fail
+    jump $I10
+  rx742_done:
+    rx742_cur."!cursor_fail"()
+    if_null rx742_debug, debug_697
+    rx742_cur."!cursor_debug"("FAIL", "default_value")
+  debug_697:
+    .return (rx742_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__default_value"  :subid("179_1284728478.15265") :method
+.annotate 'line', 4
+    $P744 = self."!PREFIX__!subrule"("ws", "")
+    new $P745, "ResizablePMCArray"
+    push $P745, $P744
+    .return ($P745)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "trait"  :subid("180_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx751_tgt
+    .local int rx751_pos
+    .local int rx751_off
+    .local int rx751_eos
+    .local int rx751_rep
+    .local pmc rx751_cur
+    .local pmc rx751_debug
+    (rx751_cur, rx751_pos, rx751_tgt, $I10) = self."!cursor_start"()
+    getattribute rx751_debug, rx751_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx751_cur
+    .local pmc match
+    .lex "$/", match
+    length rx751_eos, rx751_tgt
+    gt rx751_pos, rx751_eos, rx751_done
+    set rx751_off, 0
+    lt rx751_pos, 2, rx751_start
+    sub rx751_off, rx751_pos, 1
+    substr rx751_tgt, rx751_tgt, rx751_off
+  rx751_start:
+    eq $I10, 1, rx751_restart
+    if_null rx751_debug, debug_698
+    rx751_cur."!cursor_debug"("START", "trait")
+  debug_698:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan755_done
+    goto rxscan755_scan
+  rxscan755_loop:
+    ($P10) = rx751_cur."from"()
+    inc $P10
+    set rx751_pos, $P10
+    ge rx751_pos, rx751_eos, rxscan755_done
+  rxscan755_scan:
+    set_addr $I10, rxscan755_loop
+    rx751_cur."!mark_push"(0, rx751_pos, $I10)
+  rxscan755_done:
+.annotate 'line', 347
+  # rx subrule "ws" subtype=method negate=
+    rx751_cur."!cursor_pos"(rx751_pos)
+    $P10 = rx751_cur."ws"()
+    unless $P10, rx751_fail
+    rx751_pos = $P10."pos"()
+  # rx subrule "trait_mod" subtype=capture negate=
+    rx751_cur."!cursor_pos"(rx751_pos)
+    $P10 = rx751_cur."trait_mod"()
+    unless $P10, rx751_fail
+    rx751_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("trait_mod")
+    rx751_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx751_cur."!cursor_pos"(rx751_pos)
+    $P10 = rx751_cur."ws"()
+    unless $P10, rx751_fail
+    rx751_pos = $P10."pos"()
+  # rx pass
+    rx751_cur."!cursor_pass"(rx751_pos, "trait")
+    if_null rx751_debug, debug_699
+    rx751_cur."!cursor_debug"("PASS", "trait", " at pos=", rx751_pos)
+  debug_699:
+    .return (rx751_cur)
+  rx751_restart:
+.annotate 'line', 4
+    if_null rx751_debug, debug_700
+    rx751_cur."!cursor_debug"("NEXT", "trait")
+  debug_700:
+  rx751_fail:
+    (rx751_rep, rx751_pos, $I10, $P10) = rx751_cur."!mark_fail"(0)
+    lt rx751_pos, -1, rx751_done
+    eq rx751_pos, -1, rx751_fail
+    jump $I10
+  rx751_done:
+    rx751_cur."!cursor_fail"()
+    if_null rx751_debug, debug_701
+    rx751_cur."!cursor_debug"("FAIL", "trait")
+  debug_701:
+    .return (rx751_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__trait"  :subid("181_1284728478.15265") :method
+.annotate 'line', 4
+    $P753 = self."!PREFIX__!subrule"("ws", "")
+    new $P754, "ResizablePMCArray"
+    push $P754, $P753
+    .return ($P754)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "trait_mod"  :subid("182_1284728478.15265") :method
+.annotate 'line', 349
+    $P759 = self."!protoregex"("trait_mod")
+    .return ($P759)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__trait_mod"  :subid("183_1284728478.15265") :method
+.annotate 'line', 349
+    $P761 = self."!PREFIX__!protoregex"("trait_mod")
+    .return ($P761)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "trait_mod:sym<is>"  :subid("184_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx763_tgt
+    .local int rx763_pos
+    .local int rx763_off
+    .local int rx763_eos
+    .local int rx763_rep
+    .local pmc rx763_cur
+    .local pmc rx763_debug
+    (rx763_cur, rx763_pos, rx763_tgt, $I10) = self."!cursor_start"()
+    rx763_cur."!cursor_caparray"("circumfix")
+    getattribute rx763_debug, rx763_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx763_cur
+    .local pmc match
+    .lex "$/", match
+    length rx763_eos, rx763_tgt
+    gt rx763_pos, rx763_eos, rx763_done
+    set rx763_off, 0
+    lt rx763_pos, 2, rx763_start
+    sub rx763_off, rx763_pos, 1
+    substr rx763_tgt, rx763_tgt, rx763_off
+  rx763_start:
+    eq $I10, 1, rx763_restart
+    if_null rx763_debug, debug_702
+    rx763_cur."!cursor_debug"("START", "trait_mod:sym<is>")
+  debug_702:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan767_done
+    goto rxscan767_scan
+  rxscan767_loop:
+    ($P10) = rx763_cur."from"()
+    inc $P10
+    set rx763_pos, $P10
+    ge rx763_pos, rx763_eos, rxscan767_done
+  rxscan767_scan:
+    set_addr $I10, rxscan767_loop
+    rx763_cur."!mark_push"(0, rx763_pos, $I10)
+  rxscan767_done:
+.annotate 'line', 350
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_768_fail
+    rx763_cur."!mark_push"(0, rx763_pos, $I10)
+  # rx literal  "is"
+    add $I11, rx763_pos, 2
+    gt $I11, rx763_eos, rx763_fail
+    sub $I11, rx763_pos, rx763_off
+    substr $S10, rx763_tgt, $I11, 2
+    ne $S10, "is", rx763_fail
+    add rx763_pos, 2
+    set_addr $I10, rxcap_768_fail
+    ($I12, $I11) = rx763_cur."!mark_peek"($I10)
+    rx763_cur."!cursor_pos"($I11)
+    ($P10) = rx763_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx763_pos, "")
+    rx763_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_768_done
+  rxcap_768_fail:
+    goto rx763_fail
+  rxcap_768_done:
+  # rx subrule "ws" subtype=method negate=
+    rx763_cur."!cursor_pos"(rx763_pos)
+    $P10 = rx763_cur."ws"()
+    unless $P10, rx763_fail
+    rx763_pos = $P10."pos"()
+  # rx subrule "deflongname" subtype=capture negate=
+    rx763_cur."!cursor_pos"(rx763_pos)
+    $P10 = rx763_cur."deflongname"()
+    unless $P10, rx763_fail
+    rx763_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("longname")
+    rx763_pos = $P10."pos"()
+  # rx rxquantr770 ** 0..1
+    set_addr $I10, rxquantr770_done
+    rx763_cur."!mark_push"(0, rx763_pos, $I10)
+  rxquantr770_loop:
+  # rx subrule "circumfix" subtype=capture negate=
+    rx763_cur."!cursor_pos"(rx763_pos)
+    $P10 = rx763_cur."circumfix"()
+    unless $P10, rx763_fail
+    goto rxsubrule771_pass
+  rxsubrule771_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx763_fail
+  rxsubrule771_pass:
+    set_addr $I10, rxsubrule771_back
+    rx763_cur."!mark_push"(0, rx763_pos, $I10, $P10)
+    $P10."!cursor_names"("circumfix")
+    rx763_pos = $P10."pos"()
+    set_addr $I10, rxquantr770_done
+    (rx763_rep) = rx763_cur."!mark_commit"($I10)
+  rxquantr770_done:
+  # rx subrule "ws" subtype=method negate=
+    rx763_cur."!cursor_pos"(rx763_pos)
+    $P10 = rx763_cur."ws"()
+    unless $P10, rx763_fail
+    rx763_pos = $P10."pos"()
+  # rx pass
+    rx763_cur."!cursor_pass"(rx763_pos, "trait_mod:sym<is>")
+    if_null rx763_debug, debug_703
+    rx763_cur."!cursor_debug"("PASS", "trait_mod:sym<is>", " at pos=", rx763_pos)
+  debug_703:
+    .return (rx763_cur)
+  rx763_restart:
+.annotate 'line', 4
+    if_null rx763_debug, debug_704
+    rx763_cur."!cursor_debug"("NEXT", "trait_mod:sym<is>")
+  debug_704:
+  rx763_fail:
+    (rx763_rep, rx763_pos, $I10, $P10) = rx763_cur."!mark_fail"(0)
+    lt rx763_pos, -1, rx763_done
+    eq rx763_pos, -1, rx763_fail
+    jump $I10
+  rx763_done:
+    rx763_cur."!cursor_fail"()
+    if_null rx763_debug, debug_705
+    rx763_cur."!cursor_debug"("FAIL", "trait_mod:sym<is>")
+  debug_705:
+    .return (rx763_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__trait_mod:sym<is>"  :subid("185_1284728478.15265") :method
+.annotate 'line', 4
+    $P765 = self."!PREFIX__!subrule"("ws", "is")
+    new $P766, "ResizablePMCArray"
+    push $P766, $P765
+    .return ($P766)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "regex_declarator"  :subid("186_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx774_tgt
+    .local int rx774_pos
+    .local int rx774_off
+    .local int rx774_eos
+    .local int rx774_rep
+    .local pmc rx774_cur
+    .local pmc rx774_debug
+    (rx774_cur, rx774_pos, rx774_tgt, $I10) = self."!cursor_start"()
+    rx774_cur."!cursor_caparray"("signature")
+    getattribute rx774_debug, rx774_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx774_cur
+    .local pmc match
+    .lex "$/", match
+    length rx774_eos, rx774_tgt
+    gt rx774_pos, rx774_eos, rx774_done
+    set rx774_off, 0
+    lt rx774_pos, 2, rx774_start
+    sub rx774_off, rx774_pos, 1
+    substr rx774_tgt, rx774_tgt, rx774_off
+  rx774_start:
+    eq $I10, 1, rx774_restart
+    if_null rx774_debug, debug_706
+    rx774_cur."!cursor_debug"("START", "regex_declarator")
+  debug_706:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan749_done
-    goto rxscan749_scan
-  rxscan749_loop:
-    ($P10) = rx745_cur."from"()
-    inc $P10
-    set rx745_pos, $P10
-    ge rx745_pos, rx745_eos, rxscan749_done
-  rxscan749_scan:
-    set_addr $I10, rxscan749_loop
-    rx745_cur."!mark_push"(0, rx745_pos, $I10)
-  rxscan749_done:
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
-  alt751_0:
-    set_addr $I10, alt751_1
-    rx745_cur."!mark_push"(0, rx745_pos, $I10)
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
+    ne $I10, -1, rxscan778_done
+    goto rxscan778_scan
+  rxscan778_loop:
+    ($P10) = rx774_cur."from"()
+    inc $P10
+    set rx774_pos, $P10
+    ge rx774_pos, rx774_eos, rxscan778_done
+  rxscan778_scan:
+    set_addr $I10, rxscan778_loop
+    rx774_cur."!mark_push"(0, rx774_pos, $I10)
+  rxscan778_done:
+.annotate 'line', 352
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+  alt780_0:
+.annotate 'line', 353
+    set_addr $I10, alt780_1
+    rx774_cur."!mark_push"(0, rx774_pos, $I10)
+.annotate 'line', 354
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
   # rx subcapture "proto"
-    set_addr $I10, rxcap_753_fail
-    rx745_cur."!mark_push"(0, rx745_pos, $I10)
+    set_addr $I10, rxcap_782_fail
+    rx774_cur."!mark_push"(0, rx774_pos, $I10)
   # rx literal  "proto"
-    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
-    add rx745_pos, 5
-    set_addr $I10, rxcap_753_fail
-    ($I12, $I11) = rx745_cur."!mark_peek"($I10)
-    rx745_cur."!cursor_pos"($I11)
-    ($P10) = rx745_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx745_pos, "")
-    rx745_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx774_pos, 5
+    gt $I11, rx774_eos, rx774_fail
+    sub $I11, rx774_pos, rx774_off
+    substr $S10, rx774_tgt, $I11, 5
+    ne $S10, "proto", rx774_fail
+    add rx774_pos, 5
+    set_addr $I10, rxcap_782_fail
+    ($I12, $I11) = rx774_cur."!mark_peek"($I10)
+    rx774_cur."!cursor_pos"($I11)
+    ($P10) = rx774_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx774_pos, "")
+    rx774_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("proto")
-    goto rxcap_753_done
-  rxcap_753_fail:
-    goto rx745_fail
-  rxcap_753_done:
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
-  alt755_0:
-    set_addr $I10, alt755_1
-    rx745_cur."!mark_push"(0, rx745_pos, $I10)
+    goto rxcap_782_done
+  rxcap_782_fail:
+    goto rx774_fail
+  rxcap_782_done:
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+  alt784_0:
+    set_addr $I10, alt784_1
+    rx774_cur."!mark_push"(0, rx774_pos, $I10)
   # rx literal  "regex"
-    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
-    add rx745_pos, 5
-    goto alt755_end
-  alt755_1:
-    set_addr $I10, alt755_2
-    rx745_cur."!mark_push"(0, rx745_pos, $I10)
+    add $I11, rx774_pos, 5
+    gt $I11, rx774_eos, rx774_fail
+    sub $I11, rx774_pos, rx774_off
+    substr $S10, rx774_tgt, $I11, 5
+    ne $S10, "regex", rx774_fail
+    add rx774_pos, 5
+    goto alt784_end
+  alt784_1:
+    set_addr $I10, alt784_2
+    rx774_cur."!mark_push"(0, rx774_pos, $I10)
   # rx literal  "token"
-    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
-    add rx745_pos, 5
-    goto alt755_end
-  alt755_2:
+    add $I11, rx774_pos, 5
+    gt $I11, rx774_eos, rx774_fail
+    sub $I11, rx774_pos, rx774_off
+    substr $S10, rx774_tgt, $I11, 5
+    ne $S10, "token", rx774_fail
+    add rx774_pos, 5
+    goto alt784_end
+  alt784_2:
   # rx literal  "rule"
-    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
-    add rx745_pos, 4
-  alt755_end:
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
+    add $I11, rx774_pos, 4
+    gt $I11, rx774_eos, rx774_fail
+    sub $I11, rx774_pos, rx774_off
+    substr $S10, rx774_tgt, $I11, 4
+    ne $S10, "rule", rx774_fail
+    add rx774_pos, 4
+  alt784_end:
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+.annotate 'line', 355
   # rx subrule "deflongname" subtype=capture negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."deflongname"()
-    unless $P10, rx745_fail
-    rx745_cur."!mark_push"(0, -1, 0, $P10)
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."deflongname"()
+    unless $P10, rx774_fail
+    rx774_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx745_pos = $P10."pos"()
+    rx774_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+  alt787_0:
+.annotate 'line', 356
+    set_addr $I10, alt787_1
+    rx774_cur."!mark_push"(0, rx774_pos, $I10)
+.annotate 'line', 357
   # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
-  alt758_0:
-    set_addr $I10, alt758_1
-    rx745_cur."!mark_push"(0, rx745_pos, $I10)
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
   # rx literal  "{"
-    add $I11, rx745_pos, 1
-    gt $I11, rx745_eos, rx745_fail
-    sub $I11, rx745_pos, rx745_off
-    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)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
+    add $I11, rx774_pos, 1
+    gt $I11, rx774_eos, rx774_fail
+    sub $I11, rx774_pos, rx774_off
+    ord $I11, rx774_tgt, $I11
+    ne $I11, 123, rx774_fail
+    add rx774_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
   # rx literal  "<...>"
-    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
-    add rx745_pos, 5
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
+    add $I11, rx774_pos, 5
+    gt $I11, rx774_eos, rx774_fail
+    sub $I11, rx774_pos, rx774_off
+    substr $S10, rx774_tgt, $I11, 5
+    ne $S10, "<...>", rx774_fail
+    add rx774_pos, 5
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
   # rx literal  "}"
-    add $I11, rx745_pos, 1
-    gt $I11, rx745_eos, rx745_fail
-    sub $I11, rx745_pos, rx745_off
-    ord $I11, rx745_tgt, $I11
-    ne $I11, 125, rx745_fail
-    add rx745_pos, 1
+    add $I11, rx774_pos, 1
+    gt $I11, rx774_eos, rx774_fail
+    sub $I11, rx774_pos, rx774_off
+    ord $I11, rx774_tgt, $I11
+    ne $I11, 125, rx774_fail
+    add rx774_pos, 1
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ENDSTMT"()
-    unless $P10, rx745_fail
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
-    goto alt758_end
-  alt758_1:
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ENDSTMT"()
+    unless $P10, rx774_fail
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+    goto alt787_end
+  alt787_1:
+.annotate 'line', 358
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."panic"("Proto regex body must be <...>")
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
-  alt758_end:
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
-    goto alt751_end
-  alt751_1:
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."panic"("Proto regex body must be <...>")
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+  alt787_end:
+.annotate 'line', 359
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+.annotate 'line', 354
+    goto alt780_end
+  alt780_1:
+.annotate 'line', 360
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
   # rx subcapture "sym"
-    set_addr $I10, rxcap_768_fail
-    rx745_cur."!mark_push"(0, rx745_pos, $I10)
-  alt767_0:
-    set_addr $I10, alt767_1
-    rx745_cur."!mark_push"(0, rx745_pos, $I10)
+    set_addr $I10, rxcap_797_fail
+    rx774_cur."!mark_push"(0, rx774_pos, $I10)
+  alt796_0:
+    set_addr $I10, alt796_1
+    rx774_cur."!mark_push"(0, rx774_pos, $I10)
   # rx literal  "regex"
-    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
-    add rx745_pos, 5
-    goto alt767_end
-  alt767_1:
-    set_addr $I10, alt767_2
-    rx745_cur."!mark_push"(0, rx745_pos, $I10)
+    add $I11, rx774_pos, 5
+    gt $I11, rx774_eos, rx774_fail
+    sub $I11, rx774_pos, rx774_off
+    substr $S10, rx774_tgt, $I11, 5
+    ne $S10, "regex", rx774_fail
+    add rx774_pos, 5
+    goto alt796_end
+  alt796_1:
+    set_addr $I10, alt796_2
+    rx774_cur."!mark_push"(0, rx774_pos, $I10)
   # rx literal  "token"
-    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
-    add rx745_pos, 5
-    goto alt767_end
-  alt767_2:
+    add $I11, rx774_pos, 5
+    gt $I11, rx774_eos, rx774_fail
+    sub $I11, rx774_pos, rx774_off
+    substr $S10, rx774_tgt, $I11, 5
+    ne $S10, "token", rx774_fail
+    add rx774_pos, 5
+    goto alt796_end
+  alt796_2:
   # rx literal  "rule"
-    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
-    add rx745_pos, 4
-  alt767_end:
-    set_addr $I10, rxcap_768_fail
-    ($I12, $I11) = rx745_cur."!mark_peek"($I10)
-    rx745_cur."!cursor_pos"($I11)
-    ($P10) = rx745_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx745_pos, "")
-    rx745_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx774_pos, 4
+    gt $I11, rx774_eos, rx774_fail
+    sub $I11, rx774_pos, rx774_off
+    substr $S10, rx774_tgt, $I11, 4
+    ne $S10, "rule", rx774_fail
+    add rx774_pos, 4
+  alt796_end:
+    set_addr $I10, rxcap_797_fail
+    ($I12, $I11) = rx774_cur."!mark_peek"($I10)
+    rx774_cur."!cursor_pos"($I11)
+    ($P10) = rx774_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx774_pos, "")
+    rx774_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_768_done
-  rxcap_768_fail:
-    goto rx745_fail
-  rxcap_768_done:
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
+    goto rxcap_797_done
+  rxcap_797_fail:
+    goto rx774_fail
+  rxcap_797_done:
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+.annotate 'line', 361
   # rx subrule "deflongname" subtype=capture negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."deflongname"()
-    unless $P10, rx745_fail
-    rx745_cur."!mark_push"(0, -1, 0, $P10)
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."deflongname"()
+    unless $P10, rx774_fail
+    rx774_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx745_pos = $P10."pos"()
+    rx774_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+.annotate 'line', 362
   # rx subrule "newpad" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."newpad"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
-  # rx rxquantr772 ** 0..1
-    set_addr $I10, rxquantr772_done
-    rx745_cur."!mark_push"(0, rx745_pos, $I10)
-  rxquantr772_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."newpad"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+.annotate 'line', 363
+  # rx rxquantr801 ** 0..1
+    set_addr $I10, rxquantr801_done
+    rx774_cur."!mark_push"(0, rx774_pos, $I10)
+  rxquantr801_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
   # rx literal  "("
-    add $I11, rx745_pos, 1
-    gt $I11, rx745_eos, rx745_fail
-    sub $I11, rx745_pos, rx745_off
-    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)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
+    add $I11, rx774_pos, 1
+    gt $I11, rx774_eos, rx774_fail
+    sub $I11, rx774_pos, rx774_off
+    ord $I11, rx774_tgt, $I11
+    ne $I11, 40, rx774_fail
+    add rx774_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
   # rx subrule "signature" subtype=capture negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."signature"()
-    unless $P10, rx745_fail
-    rx745_cur."!mark_push"(0, -1, 0, $P10)
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."signature"()
+    unless $P10, rx774_fail
+    rx774_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx745_pos = $P10."pos"()
+    rx774_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx745_pos, 1
-    gt $I11, rx745_eos, rx745_fail
-    sub $I11, rx745_pos, rx745_off
-    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)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
-    set_addr $I10, rxquantr772_done
-    (rx745_rep) = rx745_cur."!mark_commit"($I10)
-  rxquantr772_done:
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
+    add $I11, rx774_pos, 1
+    gt $I11, rx774_eos, rx774_fail
+    sub $I11, rx774_pos, rx774_off
+    ord $I11, rx774_tgt, $I11
+    ne $I11, 41, rx774_fail
+    add rx774_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+    set_addr $I10, rxquantr801_done
+    (rx774_rep) = rx774_cur."!mark_commit"($I10)
+  rxquantr801_done:
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+.annotate 'line', 364
   # rx reduce name="regex_declarator" key="open"
-    rx745_cur."!cursor_pos"(rx745_pos)
-    rx745_cur."!reduce"("regex_declarator", "open")
+    rx774_cur."!cursor_pos"(rx774_pos)
+    rx774_cur."!reduce"("regex_declarator", "open")
   # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+.annotate 'line', 365
   # rx literal  "{"
-    add $I11, rx745_pos, 1
-    gt $I11, rx745_eos, rx745_fail
-    sub $I11, rx745_pos, rx745_off
-    ord $I11, rx745_tgt, $I11
-    ne $I11, 123, rx745_fail
-    add rx745_pos, 1
+    add $I11, rx774_pos, 1
+    gt $I11, rx774_eos, rx774_fail
+    sub $I11, rx774_pos, rx774_off
+    ord $I11, rx774_tgt, $I11
+    ne $I11, 123, rx774_fail
+    add rx774_pos, 1
   # rx subrule "LANG" subtype=capture negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."LANG"("Regex", "nibbler")
-    unless $P10, rx745_fail
-    rx745_cur."!mark_push"(0, -1, 0, $P10)
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."LANG"("Regex", "nibbler")
+    unless $P10, rx774_fail
+    rx774_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("p6regex")
-    rx745_pos = $P10."pos"()
+    rx774_pos = $P10."pos"()
   # rx literal  "}"
-    add $I11, rx745_pos, 1
-    gt $I11, rx745_eos, rx745_fail
-    sub $I11, rx745_pos, rx745_off
-    ord $I11, rx745_tgt, $I11
-    ne $I11, 125, rx745_fail
-    add rx745_pos, 1
+    add $I11, rx774_pos, 1
+    gt $I11, rx774_eos, rx774_fail
+    sub $I11, rx774_pos, rx774_off
+    ord $I11, rx774_tgt, $I11
+    ne $I11, 125, rx774_fail
+    add rx774_pos, 1
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ENDSTMT"()
-    unless $P10, rx745_fail
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
-  alt751_end:
-  # rx subrule "ws" subtype=method negate=
-    rx745_cur."!cursor_pos"(rx745_pos)
-    $P10 = rx745_cur."ws"()
-    unless $P10, rx745_fail
-    rx745_pos = $P10."pos"()
-  # rx pass
-    rx745_cur."!cursor_pass"(rx745_pos, "regex_declarator")
-    if_null rx745_debug, debug_693
-    rx745_cur."!cursor_debug"("PASS", "regex_declarator", " at pos=", rx745_pos)
-  debug_693:
-    .return (rx745_cur)
-  rx745_restart:
-    if_null rx745_debug, debug_694
-    rx745_cur."!cursor_debug"("NEXT", "regex_declarator")
-  debug_694:
-  rx745_fail:
-    (rx745_rep, rx745_pos, $I10, $P10) = rx745_cur."!mark_fail"(0)
-    lt rx745_pos, -1, rx745_done
-    eq rx745_pos, -1, rx745_fail
-    jump $I10
-  rx745_done:
-    rx745_cur."!cursor_fail"()
-    if_null rx745_debug, debug_695
-    rx745_cur."!cursor_debug"("FAIL", "regex_declarator")
-  debug_695:
-    .return (rx745_cur)
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ENDSTMT"()
+    unless $P10, rx774_fail
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+  alt780_end:
+.annotate 'line', 366
+  # rx subrule "ws" subtype=method negate=
+    rx774_cur."!cursor_pos"(rx774_pos)
+    $P10 = rx774_cur."ws"()
+    unless $P10, rx774_fail
+    rx774_pos = $P10."pos"()
+.annotate 'line', 352
+  # rx pass
+    rx774_cur."!cursor_pass"(rx774_pos, "regex_declarator")
+    if_null rx774_debug, debug_707
+    rx774_cur."!cursor_debug"("PASS", "regex_declarator", " at pos=", rx774_pos)
+  debug_707:
+    .return (rx774_cur)
+  rx774_restart:
+.annotate 'line', 4
+    if_null rx774_debug, debug_708
+    rx774_cur."!cursor_debug"("NEXT", "regex_declarator")
+  debug_708:
+  rx774_fail:
+    (rx774_rep, rx774_pos, $I10, $P10) = rx774_cur."!mark_fail"(0)
+    lt rx774_pos, -1, rx774_done
+    eq rx774_pos, -1, rx774_fail
+    jump $I10
+  rx774_done:
+    rx774_cur."!cursor_fail"()
+    if_null rx774_debug, debug_709
+    rx774_cur."!cursor_debug"("FAIL", "regex_declarator")
+  debug_709:
+    .return (rx774_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator"  :subid("181_1283975947.19641") :method
-.annotate 'line', 0
-    $P747 = self."!PREFIX__!subrule"("ws", "")
-    new $P748, "ResizablePMCArray"
-    push $P748, $P747
-    .return ($P748)
+.sub "!PREFIX__regex_declarator"  :subid("187_1284728478.15265") :method
+.annotate 'line', 4
+    $P776 = self."!PREFIX__!subrule"("ws", "")
+    new $P777, "ResizablePMCArray"
+    push $P777, $P776
+    .return ($P777)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "dotty"  :subid("182_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx782_tgt
-    .local int rx782_pos
-    .local int rx782_off
-    .local int rx782_eos
-    .local int rx782_rep
-    .local pmc rx782_cur
-    .local pmc rx782_debug
-    (rx782_cur, rx782_pos, rx782_tgt, $I10) = self."!cursor_start"()
-    rx782_cur."!cursor_caparray"("args")
-    getattribute rx782_debug, rx782_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx782_cur
-    .local pmc match
-    .lex "$/", match
-    length rx782_eos, rx782_tgt
-    gt rx782_pos, rx782_eos, rx782_done
-    set rx782_off, 0
-    lt rx782_pos, 2, rx782_start
-    sub rx782_off, rx782_pos, 1
-    substr rx782_tgt, rx782_tgt, rx782_off
-  rx782_start:
-    eq $I10, 1, rx782_restart
-    if_null rx782_debug, debug_696
-    rx782_cur."!cursor_debug"("START", "dotty")
-  debug_696:
+.sub "dotty"  :subid("188_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx811_tgt
+    .local int rx811_pos
+    .local int rx811_off
+    .local int rx811_eos
+    .local int rx811_rep
+    .local pmc rx811_cur
+    .local pmc rx811_debug
+    (rx811_cur, rx811_pos, rx811_tgt, $I10) = self."!cursor_start"()
+    rx811_cur."!cursor_caparray"("args")
+    getattribute rx811_debug, rx811_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx811_cur
+    .local pmc match
+    .lex "$/", match
+    length rx811_eos, rx811_tgt
+    gt rx811_pos, rx811_eos, rx811_done
+    set rx811_off, 0
+    lt rx811_pos, 2, rx811_start
+    sub rx811_off, rx811_pos, 1
+    substr rx811_tgt, rx811_tgt, rx811_off
+  rx811_start:
+    eq $I10, 1, rx811_restart
+    if_null rx811_debug, debug_710
+    rx811_cur."!cursor_debug"("START", "dotty")
+  debug_710:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan786_done
-    goto rxscan786_scan
-  rxscan786_loop:
-    ($P10) = rx782_cur."from"()
-    inc $P10
-    set rx782_pos, $P10
-    ge rx782_pos, rx782_eos, rxscan786_done
-  rxscan786_scan:
-    set_addr $I10, rxscan786_loop
-    rx782_cur."!mark_push"(0, rx782_pos, $I10)
-  rxscan786_done:
+    ne $I10, -1, rxscan815_done
+    goto rxscan815_scan
+  rxscan815_loop:
+    ($P10) = rx811_cur."from"()
+    inc $P10
+    set rx811_pos, $P10
+    ge rx811_pos, rx811_eos, rxscan815_done
+  rxscan815_scan:
+    set_addr $I10, rxscan815_loop
+    rx811_cur."!mark_push"(0, rx811_pos, $I10)
+  rxscan815_done:
+.annotate 'line', 370
   # rx literal  "."
-    add $I11, rx782_pos, 1
-    gt $I11, rx782_eos, rx782_fail
-    sub $I11, rx782_pos, rx782_off
-    ord $I11, rx782_tgt, $I11
-    ne $I11, 46, rx782_fail
-    add rx782_pos, 1
-  alt787_0:
-    set_addr $I10, alt787_1
-    rx782_cur."!mark_push"(0, rx782_pos, $I10)
+    add $I11, rx811_pos, 1
+    gt $I11, rx811_eos, rx811_fail
+    sub $I11, rx811_pos, rx811_off
+    ord $I11, rx811_tgt, $I11
+    ne $I11, 46, rx811_fail
+    add rx811_pos, 1
+  alt816_0:
+.annotate 'line', 371
+    set_addr $I10, alt816_1
+    rx811_cur."!mark_push"(0, rx811_pos, $I10)
   # rx subrule "deflongname" subtype=capture negate=
-    rx782_cur."!cursor_pos"(rx782_pos)
-    $P10 = rx782_cur."deflongname"()
-    unless $P10, rx782_fail
-    rx782_cur."!mark_push"(0, -1, 0, $P10)
+    rx811_cur."!cursor_pos"(rx811_pos)
+    $P10 = rx811_cur."deflongname"()
+    unless $P10, rx811_fail
+    rx811_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("longname=deflongname")
-    rx782_pos = $P10."pos"()
-    goto alt787_end
-  alt787_1:
+    rx811_pos = $P10."pos"()
+    goto alt816_end
+  alt816_1:
+.annotate 'line', 372
   # rx enumcharlist negate=0 zerowidth
-    ge rx782_pos, rx782_eos, rx782_fail
-    sub $I10, rx782_pos, rx782_off
-    substr $S10, rx782_tgt, $I10, 1
+    sub $I10, rx811_pos, rx811_off
+    substr $S10, rx811_tgt, $I10, 1
     index $I11, "'\"", $S10
-    lt $I11, 0, rx782_fail
+    lt $I11, 0, rx811_fail
   # rx subrule "quote" subtype=capture negate=
-    rx782_cur."!cursor_pos"(rx782_pos)
-    $P10 = rx782_cur."quote"()
-    unless $P10, rx782_fail
-    rx782_cur."!mark_push"(0, -1, 0, $P10)
+    rx811_cur."!cursor_pos"(rx811_pos)
+    $P10 = rx811_cur."quote"()
+    unless $P10, rx811_fail
+    rx811_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote")
-    rx782_pos = $P10."pos"()
-  alt788_0:
-    set_addr $I10, alt788_1
-    rx782_cur."!mark_push"(0, rx782_pos, $I10)
+    rx811_pos = $P10."pos"()
+  alt817_0:
+.annotate 'line', 373
+    set_addr $I10, alt817_1
+    rx811_cur."!mark_push"(0, rx811_pos, $I10)
   # rx enumcharlist negate=0 zerowidth
-    ge rx782_pos, rx782_eos, rx782_fail
-    sub $I10, rx782_pos, rx782_off
-    substr $S10, rx782_tgt, $I10, 1
+    sub $I10, rx811_pos, rx811_off
+    substr $S10, rx811_tgt, $I10, 1
     index $I11, "(", $S10
-    lt $I11, 0, rx782_fail
-    goto alt788_end
-  alt788_1:
+    lt $I11, 0, rx811_fail
+    goto alt817_end
+  alt817_1:
   # rx subrule "panic" subtype=method negate=
-    rx782_cur."!cursor_pos"(rx782_pos)
-    $P10 = rx782_cur."panic"("Quoted method name requires parenthesized arguments")
-    unless $P10, rx782_fail
-    rx782_pos = $P10."pos"()
-  alt788_end:
-  alt787_end:
-  # rx rxquantr789 ** 0..1
-    set_addr $I10, rxquantr789_done
-    rx782_cur."!mark_push"(0, rx782_pos, $I10)
-  rxquantr789_loop:
-  alt790_0:
-    set_addr $I10, alt790_1
-    rx782_cur."!mark_push"(0, rx782_pos, $I10)
+    rx811_cur."!cursor_pos"(rx811_pos)
+    $P10 = rx811_cur."panic"("Quoted method name requires parenthesized arguments")
+    unless $P10, rx811_fail
+    rx811_pos = $P10."pos"()
+  alt817_end:
+  alt816_end:
+.annotate 'line', 379
+  # rx rxquantr818 ** 0..1
+    set_addr $I10, rxquantr818_done
+    rx811_cur."!mark_push"(0, rx811_pos, $I10)
+  rxquantr818_loop:
+  alt819_0:
+.annotate 'line', 376
+    set_addr $I10, alt819_1
+    rx811_cur."!mark_push"(0, rx811_pos, $I10)
+.annotate 'line', 377
   # rx enumcharlist negate=0 zerowidth
-    ge rx782_pos, rx782_eos, rx782_fail
-    sub $I10, rx782_pos, rx782_off
-    substr $S10, rx782_tgt, $I10, 1
+    sub $I10, rx811_pos, rx811_off
+    substr $S10, rx811_tgt, $I10, 1
     index $I11, "(", $S10
-    lt $I11, 0, rx782_fail
+    lt $I11, 0, rx811_fail
   # rx subrule "args" subtype=capture negate=
-    rx782_cur."!cursor_pos"(rx782_pos)
-    $P10 = rx782_cur."args"()
-    unless $P10, rx782_fail
-    rx782_cur."!mark_push"(0, -1, 0, $P10)
+    rx811_cur."!cursor_pos"(rx811_pos)
+    $P10 = rx811_cur."args"()
+    unless $P10, rx811_fail
+    rx811_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx782_pos = $P10."pos"()
-    goto alt790_end
-  alt790_1:
+    rx811_pos = $P10."pos"()
+    goto alt819_end
+  alt819_1:
+.annotate 'line', 378
   # rx literal  ":"
-    add $I11, rx782_pos, 1
-    gt $I11, rx782_eos, rx782_fail
-    sub $I11, rx782_pos, rx782_off
-    ord $I11, rx782_tgt, $I11
-    ne $I11, 58, rx782_fail
-    add rx782_pos, 1
+    add $I11, rx811_pos, 1
+    gt $I11, rx811_eos, rx811_fail
+    sub $I11, rx811_pos, rx811_off
+    ord $I11, rx811_tgt, $I11
+    ne $I11, 58, rx811_fail
+    add rx811_pos, 1
   # rx charclass s
-    ge rx782_pos, rx782_eos, rx782_fail
-    sub $I10, rx782_pos, rx782_off
-    is_cclass $I11, 32, rx782_tgt, $I10
-    unless $I11, rx782_fail
-    inc rx782_pos
+    ge rx811_pos, rx811_eos, rx811_fail
+    sub $I10, rx811_pos, rx811_off
+    is_cclass $I11, 32, rx811_tgt, $I10
+    unless $I11, rx811_fail
+    inc rx811_pos
   # rx subrule "arglist" subtype=capture negate=
-    rx782_cur."!cursor_pos"(rx782_pos)
-    $P10 = rx782_cur."arglist"()
-    unless $P10, rx782_fail
-    rx782_cur."!mark_push"(0, -1, 0, $P10)
+    rx811_cur."!cursor_pos"(rx811_pos)
+    $P10 = rx811_cur."arglist"()
+    unless $P10, rx811_fail
+    rx811_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx782_pos = $P10."pos"()
-  alt790_end:
-    set_addr $I10, rxquantr789_done
-    (rx782_rep) = rx782_cur."!mark_commit"($I10)
-  rxquantr789_done:
-  # rx pass
-    rx782_cur."!cursor_pass"(rx782_pos, "dotty")
-    if_null rx782_debug, debug_697
-    rx782_cur."!cursor_debug"("PASS", "dotty", " at pos=", rx782_pos)
-  debug_697:
-    .return (rx782_cur)
-  rx782_restart:
-    if_null rx782_debug, debug_698
-    rx782_cur."!cursor_debug"("NEXT", "dotty")
-  debug_698:
-  rx782_fail:
-    (rx782_rep, rx782_pos, $I10, $P10) = rx782_cur."!mark_fail"(0)
-    lt rx782_pos, -1, rx782_done
-    eq rx782_pos, -1, rx782_fail
-    jump $I10
-  rx782_done:
-    rx782_cur."!cursor_fail"()
-    if_null rx782_debug, debug_699
-    rx782_cur."!cursor_debug"("FAIL", "dotty")
-  debug_699:
-    .return (rx782_cur)
+    rx811_pos = $P10."pos"()
+  alt819_end:
+.annotate 'line', 379
+    set_addr $I10, rxquantr818_done
+    (rx811_rep) = rx811_cur."!mark_commit"($I10)
+  rxquantr818_done:
+.annotate 'line', 369
+  # rx pass
+    rx811_cur."!cursor_pass"(rx811_pos, "dotty")
+    if_null rx811_debug, debug_711
+    rx811_cur."!cursor_debug"("PASS", "dotty", " at pos=", rx811_pos)
+  debug_711:
+    .return (rx811_cur)
+  rx811_restart:
+.annotate 'line', 4
+    if_null rx811_debug, debug_712
+    rx811_cur."!cursor_debug"("NEXT", "dotty")
+  debug_712:
+  rx811_fail:
+    (rx811_rep, rx811_pos, $I10, $P10) = rx811_cur."!mark_fail"(0)
+    lt rx811_pos, -1, rx811_done
+    eq rx811_pos, -1, rx811_fail
+    jump $I10
+  rx811_done:
+    rx811_cur."!cursor_fail"()
+    if_null rx811_debug, debug_713
+    rx811_cur."!cursor_debug"("FAIL", "dotty")
+  debug_713:
+    .return (rx811_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty"  :subid("183_1283975947.19641") :method
-.annotate 'line', 0
-    $P784 = self."!PREFIX__!subrule"("deflongname", ".")
-    new $P785, "ResizablePMCArray"
-    push $P785, "'"
-    push $P785, "\""
-    push $P785, $P784
-    .return ($P785)
+.sub "!PREFIX__dotty"  :subid("189_1284728478.15265") :method
+.annotate 'line', 4
+    $P813 = self."!PREFIX__!subrule"("deflongname", ".")
+    new $P814, "ResizablePMCArray"
+    push $P814, "'"
+    push $P814, "\""
+    push $P814, $P813
+    .return ($P814)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term"  :subid("184_1283975947.19641") :method
-.annotate 'line', 0
-    $P792 = self."!protoregex"("term")
-    .return ($P792)
+.sub "term"  :subid("190_1284728478.15265") :method
+.annotate 'line', 383
+    $P821 = self."!protoregex"("term")
+    .return ($P821)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term"  :subid("185_1283975947.19641") :method
-.annotate 'line', 0
-    $P794 = self."!PREFIX__!protoregex"("term")
-    .return ($P794)
+.sub "!PREFIX__term"  :subid("191_1284728478.15265") :method
+.annotate 'line', 383
+    $P823 = self."!PREFIX__!protoregex"("term")
+    .return ($P823)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<self>"  :subid("186_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx796_tgt
-    .local int rx796_pos
-    .local int rx796_off
-    .local int rx796_eos
-    .local int rx796_rep
-    .local pmc rx796_cur
-    .local pmc rx796_debug
-    (rx796_cur, rx796_pos, rx796_tgt, $I10) = self."!cursor_start"()
-    getattribute rx796_debug, rx796_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx796_cur
-    .local pmc match
-    .lex "$/", match
-    length rx796_eos, rx796_tgt
-    gt rx796_pos, rx796_eos, rx796_done
-    set rx796_off, 0
-    lt rx796_pos, 2, rx796_start
-    sub rx796_off, rx796_pos, 1
-    substr rx796_tgt, rx796_tgt, rx796_off
-  rx796_start:
-    eq $I10, 1, rx796_restart
-    if_null rx796_debug, debug_700
-    rx796_cur."!cursor_debug"("START", "term:sym<self>")
-  debug_700:
+.sub "term:sym<self>"  :subid("192_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx825_tgt
+    .local int rx825_pos
+    .local int rx825_off
+    .local int rx825_eos
+    .local int rx825_rep
+    .local pmc rx825_cur
+    .local pmc rx825_debug
+    (rx825_cur, rx825_pos, rx825_tgt, $I10) = self."!cursor_start"()
+    getattribute rx825_debug, rx825_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx825_cur
+    .local pmc match
+    .lex "$/", match
+    length rx825_eos, rx825_tgt
+    gt rx825_pos, rx825_eos, rx825_done
+    set rx825_off, 0
+    lt rx825_pos, 2, rx825_start
+    sub rx825_off, rx825_pos, 1
+    substr rx825_tgt, rx825_tgt, rx825_off
+  rx825_start:
+    eq $I10, 1, rx825_restart
+    if_null rx825_debug, debug_714
+    rx825_cur."!cursor_debug"("START", "term:sym<self>")
+  debug_714:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan799_done
-    goto rxscan799_scan
-  rxscan799_loop:
-    ($P10) = rx796_cur."from"()
-    inc $P10
-    set rx796_pos, $P10
-    ge rx796_pos, rx796_eos, rxscan799_done
-  rxscan799_scan:
-    set_addr $I10, rxscan799_loop
-    rx796_cur."!mark_push"(0, rx796_pos, $I10)
-  rxscan799_done:
+    ne $I10, -1, rxscan828_done
+    goto rxscan828_scan
+  rxscan828_loop:
+    ($P10) = rx825_cur."from"()
+    inc $P10
+    set rx825_pos, $P10
+    ge rx825_pos, rx825_eos, rxscan828_done
+  rxscan828_scan:
+    set_addr $I10, rxscan828_loop
+    rx825_cur."!mark_push"(0, rx825_pos, $I10)
+  rxscan828_done:
+.annotate 'line', 385
   # rx subcapture "sym"
-    set_addr $I10, rxcap_800_fail
-    rx796_cur."!mark_push"(0, rx796_pos, $I10)
+    set_addr $I10, rxcap_829_fail
+    rx825_cur."!mark_push"(0, rx825_pos, $I10)
   # rx literal  "self"
-    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
-    add rx796_pos, 4
-    set_addr $I10, rxcap_800_fail
-    ($I12, $I11) = rx796_cur."!mark_peek"($I10)
-    rx796_cur."!cursor_pos"($I11)
-    ($P10) = rx796_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx796_pos, "")
-    rx796_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx825_pos, 4
+    gt $I11, rx825_eos, rx825_fail
+    sub $I11, rx825_pos, rx825_off
+    substr $S10, rx825_tgt, $I11, 4
+    ne $S10, "self", rx825_fail
+    add rx825_pos, 4
+    set_addr $I10, rxcap_829_fail
+    ($I12, $I11) = rx825_cur."!mark_peek"($I10)
+    rx825_cur."!cursor_pos"($I11)
+    ($P10) = rx825_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx825_pos, "")
+    rx825_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_800_done
-  rxcap_800_fail:
-    goto rx796_fail
-  rxcap_800_done:
+    goto rxcap_829_done
+  rxcap_829_fail:
+    goto rx825_fail
+  rxcap_829_done:
   # rxanchor rwb
-    le rx796_pos, 0, rx796_fail
-    sub $I10, rx796_pos, rx796_off
-    is_cclass $I11, 8192, rx796_tgt, $I10
-    if $I11, rx796_fail
+    le rx825_pos, 0, rx825_fail
+    sub $I10, rx825_pos, rx825_off
+    is_cclass $I11, 8192, rx825_tgt, $I10
+    if $I11, rx825_fail
     dec $I10
-    is_cclass $I11, 8192, rx796_tgt, $I10
-    unless $I11, rx796_fail
+    is_cclass $I11, 8192, rx825_tgt, $I10
+    unless $I11, rx825_fail
   # rx pass
-    rx796_cur."!cursor_pass"(rx796_pos, "term:sym<self>")
-    if_null rx796_debug, debug_701
-    rx796_cur."!cursor_debug"("PASS", "term:sym<self>", " at pos=", rx796_pos)
-  debug_701:
-    .return (rx796_cur)
-  rx796_restart:
-    if_null rx796_debug, debug_702
-    rx796_cur."!cursor_debug"("NEXT", "term:sym<self>")
-  debug_702:
-  rx796_fail:
-    (rx796_rep, rx796_pos, $I10, $P10) = rx796_cur."!mark_fail"(0)
-    lt rx796_pos, -1, rx796_done
-    eq rx796_pos, -1, rx796_fail
-    jump $I10
-  rx796_done:
-    rx796_cur."!cursor_fail"()
-    if_null rx796_debug, debug_703
-    rx796_cur."!cursor_debug"("FAIL", "term:sym<self>")
-  debug_703:
-    .return (rx796_cur)
+    rx825_cur."!cursor_pass"(rx825_pos, "term:sym<self>")
+    if_null rx825_debug, debug_715
+    rx825_cur."!cursor_debug"("PASS", "term:sym<self>", " at pos=", rx825_pos)
+  debug_715:
+    .return (rx825_cur)
+  rx825_restart:
+.annotate 'line', 4
+    if_null rx825_debug, debug_716
+    rx825_cur."!cursor_debug"("NEXT", "term:sym<self>")
+  debug_716:
+  rx825_fail:
+    (rx825_rep, rx825_pos, $I10, $P10) = rx825_cur."!mark_fail"(0)
+    lt rx825_pos, -1, rx825_done
+    eq rx825_pos, -1, rx825_fail
+    jump $I10
+  rx825_done:
+    rx825_cur."!cursor_fail"()
+    if_null rx825_debug, debug_717
+    rx825_cur."!cursor_debug"("FAIL", "term:sym<self>")
+  debug_717:
+    .return (rx825_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>"  :subid("187_1283975947.19641") :method
-.annotate 'line', 0
-    new $P798, "ResizablePMCArray"
-    push $P798, "self"
-    .return ($P798)
+.sub "!PREFIX__term:sym<self>"  :subid("193_1284728478.15265") :method
+.annotate 'line', 4
+    new $P827, "ResizablePMCArray"
+    push $P827, "self"
+    .return ($P827)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>"  :subid("188_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx802_tgt
-    .local int rx802_pos
-    .local int rx802_off
-    .local int rx802_eos
-    .local int rx802_rep
-    .local pmc rx802_cur
-    .local pmc rx802_debug
-    (rx802_cur, rx802_pos, rx802_tgt, $I10) = self."!cursor_start"()
-    getattribute rx802_debug, rx802_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx802_cur
-    .local pmc match
-    .lex "$/", match
-    length rx802_eos, rx802_tgt
-    gt rx802_pos, rx802_eos, rx802_done
-    set rx802_off, 0
-    lt rx802_pos, 2, rx802_start
-    sub rx802_off, rx802_pos, 1
-    substr rx802_tgt, rx802_tgt, rx802_off
-  rx802_start:
-    eq $I10, 1, rx802_restart
-    if_null rx802_debug, debug_704
-    rx802_cur."!cursor_debug"("START", "term:sym<identifier>")
-  debug_704:
+.sub "term:sym<identifier>"  :subid("194_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx831_tgt
+    .local int rx831_pos
+    .local int rx831_off
+    .local int rx831_eos
+    .local int rx831_rep
+    .local pmc rx831_cur
+    .local pmc rx831_debug
+    (rx831_cur, rx831_pos, rx831_tgt, $I10) = self."!cursor_start"()
+    getattribute rx831_debug, rx831_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx831_cur
+    .local pmc match
+    .lex "$/", match
+    length rx831_eos, rx831_tgt
+    gt rx831_pos, rx831_eos, rx831_done
+    set rx831_off, 0
+    lt rx831_pos, 2, rx831_start
+    sub rx831_off, rx831_pos, 1
+    substr rx831_tgt, rx831_tgt, rx831_off
+  rx831_start:
+    eq $I10, 1, rx831_restart
+    if_null rx831_debug, debug_718
+    rx831_cur."!cursor_debug"("START", "term:sym<identifier>")
+  debug_718:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan806_done
-    goto rxscan806_scan
-  rxscan806_loop:
-    ($P10) = rx802_cur."from"()
-    inc $P10
-    set rx802_pos, $P10
-    ge rx802_pos, rx802_eos, rxscan806_done
-  rxscan806_scan:
-    set_addr $I10, rxscan806_loop
-    rx802_cur."!mark_push"(0, rx802_pos, $I10)
-  rxscan806_done:
+    ne $I10, -1, rxscan835_done
+    goto rxscan835_scan
+  rxscan835_loop:
+    ($P10) = rx831_cur."from"()
+    inc $P10
+    set rx831_pos, $P10
+    ge rx831_pos, rx831_eos, rxscan835_done
+  rxscan835_scan:
+    set_addr $I10, rxscan835_loop
+    rx831_cur."!mark_push"(0, rx831_pos, $I10)
+  rxscan835_done:
+.annotate 'line', 388
   # rx subrule "deflongname" subtype=capture negate=
-    rx802_cur."!cursor_pos"(rx802_pos)
-    $P10 = rx802_cur."deflongname"()
-    unless $P10, rx802_fail
-    rx802_cur."!mark_push"(0, -1, 0, $P10)
+    rx831_cur."!cursor_pos"(rx831_pos)
+    $P10 = rx831_cur."deflongname"()
+    unless $P10, rx831_fail
+    rx831_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx802_pos = $P10."pos"()
+    rx831_pos = $P10."pos"()
   # rx enumcharlist negate=0 zerowidth
-    ge rx802_pos, rx802_eos, rx802_fail
-    sub $I10, rx802_pos, rx802_off
-    substr $S10, rx802_tgt, $I10, 1
+    sub $I10, rx831_pos, rx831_off
+    substr $S10, rx831_tgt, $I10, 1
     index $I11, "(", $S10
-    lt $I11, 0, rx802_fail
+    lt $I11, 0, rx831_fail
   # rx subrule "args" subtype=capture negate=
-    rx802_cur."!cursor_pos"(rx802_pos)
-    $P10 = rx802_cur."args"()
-    unless $P10, rx802_fail
-    rx802_cur."!mark_push"(0, -1, 0, $P10)
+    rx831_cur."!cursor_pos"(rx831_pos)
+    $P10 = rx831_cur."args"()
+    unless $P10, rx831_fail
+    rx831_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx802_pos = $P10."pos"()
+    rx831_pos = $P10."pos"()
+.annotate 'line', 387
   # rx pass
-    rx802_cur."!cursor_pass"(rx802_pos, "term:sym<identifier>")
-    if_null rx802_debug, debug_705
-    rx802_cur."!cursor_debug"("PASS", "term:sym<identifier>", " at pos=", rx802_pos)
-  debug_705:
-    .return (rx802_cur)
-  rx802_restart:
-    if_null rx802_debug, debug_706
-    rx802_cur."!cursor_debug"("NEXT", "term:sym<identifier>")
-  debug_706:
-  rx802_fail:
-    (rx802_rep, rx802_pos, $I10, $P10) = rx802_cur."!mark_fail"(0)
-    lt rx802_pos, -1, rx802_done
-    eq rx802_pos, -1, rx802_fail
-    jump $I10
-  rx802_done:
-    rx802_cur."!cursor_fail"()
-    if_null rx802_debug, debug_707
-    rx802_cur."!cursor_debug"("FAIL", "term:sym<identifier>")
-  debug_707:
-    .return (rx802_cur)
-    .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>"  :subid("189_1283975947.19641") :method
-.annotate 'line', 0
-    $P804 = self."!PREFIX__!subrule"("deflongname", "")
-    new $P805, "ResizablePMCArray"
-    push $P805, $P804
-    .return ($P805)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "term:sym<name>"  :subid("190_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx808_tgt
-    .local int rx808_pos
-    .local int rx808_off
-    .local int rx808_eos
-    .local int rx808_rep
-    .local pmc rx808_cur
-    .local pmc rx808_debug
-    (rx808_cur, rx808_pos, rx808_tgt, $I10) = self."!cursor_start"()
-    rx808_cur."!cursor_caparray"("args")
-    getattribute rx808_debug, rx808_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx808_cur
-    .local pmc match
-    .lex "$/", match
-    length rx808_eos, rx808_tgt
-    gt rx808_pos, rx808_eos, rx808_done
-    set rx808_off, 0
-    lt rx808_pos, 2, rx808_start
-    sub rx808_off, rx808_pos, 1
-    substr rx808_tgt, rx808_tgt, rx808_off
-  rx808_start:
-    eq $I10, 1, rx808_restart
-    if_null rx808_debug, debug_708
-    rx808_cur."!cursor_debug"("START", "term:sym<name>")
-  debug_708:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan812_done
-    goto rxscan812_scan
-  rxscan812_loop:
-    ($P10) = rx808_cur."from"()
-    inc $P10
-    set rx808_pos, $P10
-    ge rx808_pos, rx808_eos, rxscan812_done
-  rxscan812_scan:
-    set_addr $I10, rxscan812_loop
-    rx808_cur."!mark_push"(0, rx808_pos, $I10)
-  rxscan812_done:
-  # rx subrule "name" subtype=capture negate=
-    rx808_cur."!cursor_pos"(rx808_pos)
-    $P10 = rx808_cur."name"()
-    unless $P10, rx808_fail
-    rx808_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("name")
-    rx808_pos = $P10."pos"()
-  # rx rxquantr813 ** 0..1
-    set_addr $I10, rxquantr813_done
-    rx808_cur."!mark_push"(0, rx808_pos, $I10)
-  rxquantr813_loop:
-  # rx subrule "args" subtype=capture negate=
-    rx808_cur."!cursor_pos"(rx808_pos)
-    $P10 = rx808_cur."args"()
-    unless $P10, rx808_fail
-    goto rxsubrule814_pass
-  rxsubrule814_back:
-    $P10 = $P10."!cursor_next"()
-    unless $P10, rx808_fail
-  rxsubrule814_pass:
-    set_addr $I10, rxsubrule814_back
-    rx808_cur."!mark_push"(0, rx808_pos, $I10, $P10)
-    $P10."!cursor_names"("args")
-    rx808_pos = $P10."pos"()
-    set_addr $I10, rxquantr813_done
-    (rx808_rep) = rx808_cur."!mark_commit"($I10)
-  rxquantr813_done:
-  # rx pass
-    rx808_cur."!cursor_pass"(rx808_pos, "term:sym<name>")
-    if_null rx808_debug, debug_709
-    rx808_cur."!cursor_debug"("PASS", "term:sym<name>", " at pos=", rx808_pos)
-  debug_709:
-    .return (rx808_cur)
-  rx808_restart:
-    if_null rx808_debug, debug_710
-    rx808_cur."!cursor_debug"("NEXT", "term:sym<name>")
-  debug_710:
-  rx808_fail:
-    (rx808_rep, rx808_pos, $I10, $P10) = rx808_cur."!mark_fail"(0)
-    lt rx808_pos, -1, rx808_done
-    eq rx808_pos, -1, rx808_fail
-    jump $I10
-  rx808_done:
-    rx808_cur."!cursor_fail"()
-    if_null rx808_debug, debug_711
-    rx808_cur."!cursor_debug"("FAIL", "term:sym<name>")
-  debug_711:
-    .return (rx808_cur)
-    .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>"  :subid("191_1283975947.19641") :method
-.annotate 'line', 0
-    $P810 = self."!PREFIX__!subrule"("name", "")
-    new $P811, "ResizablePMCArray"
-    push $P811, $P810
-    .return ($P811)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "term:sym<pir::op>"  :subid("192_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx816_tgt
-    .local int rx816_pos
-    .local int rx816_off
-    .local int rx816_eos
-    .local int rx816_rep
-    .local pmc rx816_cur
-    .local pmc rx816_debug
-    (rx816_cur, rx816_pos, rx816_tgt, $I10) = self."!cursor_start"()
-    rx816_cur."!cursor_caparray"("args")
-    getattribute rx816_debug, rx816_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx816_cur
-    .local pmc match
-    .lex "$/", match
-    length rx816_eos, rx816_tgt
-    gt rx816_pos, rx816_eos, rx816_done
-    set rx816_off, 0
-    lt rx816_pos, 2, rx816_start
-    sub rx816_off, rx816_pos, 1
-    substr rx816_tgt, rx816_tgt, rx816_off
-  rx816_start:
-    eq $I10, 1, rx816_restart
-    if_null rx816_debug, debug_712
-    rx816_cur."!cursor_debug"("START", "term:sym<pir::op>")
-  debug_712:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan819_done
-    goto rxscan819_scan
-  rxscan819_loop:
-    ($P10) = rx816_cur."from"()
-    inc $P10
-    set rx816_pos, $P10
-    ge rx816_pos, rx816_eos, rxscan819_done
-  rxscan819_scan:
-    set_addr $I10, rxscan819_loop
-    rx816_cur."!mark_push"(0, rx816_pos, $I10)
-  rxscan819_done:
-  # rx literal  "pir::"
-    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
-    add rx816_pos, 5
-  # rx subcapture "op"
-    set_addr $I10, rxcap_820_fail
-    rx816_cur."!mark_push"(0, rx816_pos, $I10)
-  # rx charclass_q w r 1..-1
-    sub $I10, rx816_pos, rx816_off
-    find_not_cclass $I11, 8192, rx816_tgt, $I10, rx816_eos
-    add $I12, $I10, 1
-    lt $I11, $I12, rx816_fail
-    add rx816_pos, rx816_off, $I11
-    set_addr $I10, rxcap_820_fail
-    ($I12, $I11) = rx816_cur."!mark_peek"($I10)
-    rx816_cur."!cursor_pos"($I11)
-    ($P10) = rx816_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx816_pos, "")
-    rx816_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("op")
-    goto rxcap_820_done
-  rxcap_820_fail:
-    goto rx816_fail
-  rxcap_820_done:
-  # rx rxquantr821 ** 0..1
-    set_addr $I10, rxquantr821_done
-    rx816_cur."!mark_push"(0, rx816_pos, $I10)
-  rxquantr821_loop:
-  # rx subrule "args" subtype=capture negate=
-    rx816_cur."!cursor_pos"(rx816_pos)
-    $P10 = rx816_cur."args"()
-    unless $P10, rx816_fail
-    goto rxsubrule822_pass
-  rxsubrule822_back:
-    $P10 = $P10."!cursor_next"()
-    unless $P10, rx816_fail
-  rxsubrule822_pass:
-    set_addr $I10, rxsubrule822_back
-    rx816_cur."!mark_push"(0, rx816_pos, $I10, $P10)
-    $P10."!cursor_names"("args")
-    rx816_pos = $P10."pos"()
-    set_addr $I10, rxquantr821_done
-    (rx816_rep) = rx816_cur."!mark_commit"($I10)
-  rxquantr821_done:
-  # rx pass
-    rx816_cur."!cursor_pass"(rx816_pos, "term:sym<pir::op>")
-    if_null rx816_debug, debug_713
-    rx816_cur."!cursor_debug"("PASS", "term:sym<pir::op>", " at pos=", rx816_pos)
-  debug_713:
-    .return (rx816_cur)
-  rx816_restart:
-    if_null rx816_debug, debug_714
-    rx816_cur."!cursor_debug"("NEXT", "term:sym<pir::op>")
-  debug_714:
-  rx816_fail:
-    (rx816_rep, rx816_pos, $I10, $P10) = rx816_cur."!mark_fail"(0)
-    lt rx816_pos, -1, rx816_done
-    eq rx816_pos, -1, rx816_fail
-    jump $I10
-  rx816_done:
-    rx816_cur."!cursor_fail"()
-    if_null rx816_debug, debug_715
-    rx816_cur."!cursor_debug"("FAIL", "term:sym<pir::op>")
-  debug_715:
-    .return (rx816_cur)
-    .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>"  :subid("193_1283975947.19641") :method
-.annotate 'line', 0
-    new $P818, "ResizablePMCArray"
-    push $P818, "pir::"
-    .return ($P818)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "args"  :subid("194_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx824_tgt
-    .local int rx824_pos
-    .local int rx824_off
-    .local int rx824_eos
-    .local int rx824_rep
-    .local pmc rx824_cur
-    .local pmc rx824_debug
-    (rx824_cur, rx824_pos, rx824_tgt, $I10) = self."!cursor_start"()
-    getattribute rx824_debug, rx824_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx824_cur
-    .local pmc match
-    .lex "$/", match
-    length rx824_eos, rx824_tgt
-    gt rx824_pos, rx824_eos, rx824_done
-    set rx824_off, 0
-    lt rx824_pos, 2, rx824_start
-    sub rx824_off, rx824_pos, 1
-    substr rx824_tgt, rx824_tgt, rx824_off
-  rx824_start:
-    eq $I10, 1, rx824_restart
-    if_null rx824_debug, debug_716
-    rx824_cur."!cursor_debug"("START", "args")
-  debug_716:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan828_done
-    goto rxscan828_scan
-  rxscan828_loop:
-    ($P10) = rx824_cur."from"()
-    inc $P10
-    set rx824_pos, $P10
-    ge rx824_pos, rx824_eos, rxscan828_done
-  rxscan828_scan:
-    set_addr $I10, rxscan828_loop
-    rx824_cur."!mark_push"(0, rx824_pos, $I10)
-  rxscan828_done:
-  # rx literal  "("
-    add $I11, rx824_pos, 1
-    gt $I11, rx824_eos, rx824_fail
-    sub $I11, rx824_pos, rx824_off
-    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)
-    $P10 = rx824_cur."arglist"()
-    unless $P10, rx824_fail
-    rx824_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("arglist")
-    rx824_pos = $P10."pos"()
-  # rx literal  ")"
-    add $I11, rx824_pos, 1
-    gt $I11, rx824_eos, rx824_fail
-    sub $I11, rx824_pos, rx824_off
-    ord $I11, rx824_tgt, $I11
-    ne $I11, 41, rx824_fail
-    add rx824_pos, 1
-  # rx pass
-    rx824_cur."!cursor_pass"(rx824_pos, "args")
-    if_null rx824_debug, debug_717
-    rx824_cur."!cursor_debug"("PASS", "args", " at pos=", rx824_pos)
-  debug_717:
-    .return (rx824_cur)
-  rx824_restart:
-    if_null rx824_debug, debug_718
-    rx824_cur."!cursor_debug"("NEXT", "args")
-  debug_718:
-  rx824_fail:
-    (rx824_rep, rx824_pos, $I10, $P10) = rx824_cur."!mark_fail"(0)
-    lt rx824_pos, -1, rx824_done
-    eq rx824_pos, -1, rx824_fail
-    jump $I10
-  rx824_done:
-    rx824_cur."!cursor_fail"()
-    if_null rx824_debug, debug_719
-    rx824_cur."!cursor_debug"("FAIL", "args")
+    rx831_cur."!cursor_pass"(rx831_pos, "term:sym<identifier>")
+    if_null rx831_debug, debug_719
+    rx831_cur."!cursor_debug"("PASS", "term:sym<identifier>", " at pos=", rx831_pos)
   debug_719:
-    .return (rx824_cur)
-    .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args"  :subid("195_1283975947.19641") :method
-.annotate 'line', 0
-    $P826 = self."!PREFIX__!subrule"("arglist", "(")
-    new $P827, "ResizablePMCArray"
-    push $P827, $P826
-    .return ($P827)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "arglist"  :subid("196_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx830_tgt
-    .local int rx830_pos
-    .local int rx830_off
-    .local int rx830_eos
-    .local int rx830_rep
-    .local pmc rx830_cur
-    .local pmc rx830_debug
-    (rx830_cur, rx830_pos, rx830_tgt, $I10) = self."!cursor_start"()
-    getattribute rx830_debug, rx830_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx830_cur
-    .local pmc match
-    .lex "$/", match
-    length rx830_eos, rx830_tgt
-    gt rx830_pos, rx830_eos, rx830_done
-    set rx830_off, 0
-    lt rx830_pos, 2, rx830_start
-    sub rx830_off, rx830_pos, 1
-    substr rx830_tgt, rx830_tgt, rx830_off
-  rx830_start:
-    eq $I10, 1, rx830_restart
-    if_null rx830_debug, debug_720
-    rx830_cur."!cursor_debug"("START", "arglist")
+    .return (rx831_cur)
+  rx831_restart:
+.annotate 'line', 4
+    if_null rx831_debug, debug_720
+    rx831_cur."!cursor_debug"("NEXT", "term:sym<identifier>")
   debug_720:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan834_done
-    goto rxscan834_scan
-  rxscan834_loop:
-    ($P10) = rx830_cur."from"()
-    inc $P10
-    set rx830_pos, $P10
-    ge rx830_pos, rx830_eos, rxscan834_done
-  rxscan834_scan:
-    set_addr $I10, rxscan834_loop
-    rx830_cur."!mark_push"(0, rx830_pos, $I10)
-  rxscan834_done:
-  # rx subrule "ws" subtype=method negate=
-    rx830_cur."!cursor_pos"(rx830_pos)
-    $P10 = rx830_cur."ws"()
-    unless $P10, rx830_fail
-    rx830_pos = $P10."pos"()
-  alt835_0:
-    set_addr $I10, alt835_1
-    rx830_cur."!mark_push"(0, rx830_pos, $I10)
-  # rx subrule "EXPR" subtype=capture negate=
-    rx830_cur."!cursor_pos"(rx830_pos)
-    $P10 = rx830_cur."EXPR"("f=")
-    unless $P10, rx830_fail
-    rx830_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("EXPR")
-    rx830_pos = $P10."pos"()
-    goto alt835_end
-  alt835_1:
-  alt835_end:
-  # rx pass
-    rx830_cur."!cursor_pass"(rx830_pos, "arglist")
-    if_null rx830_debug, debug_721
-    rx830_cur."!cursor_debug"("PASS", "arglist", " at pos=", rx830_pos)
+  rx831_fail:
+    (rx831_rep, rx831_pos, $I10, $P10) = rx831_cur."!mark_fail"(0)
+    lt rx831_pos, -1, rx831_done
+    eq rx831_pos, -1, rx831_fail
+    jump $I10
+  rx831_done:
+    rx831_cur."!cursor_fail"()
+    if_null rx831_debug, debug_721
+    rx831_cur."!cursor_debug"("FAIL", "term:sym<identifier>")
   debug_721:
-    .return (rx830_cur)
-  rx830_restart:
-    if_null rx830_debug, debug_722
-    rx830_cur."!cursor_debug"("NEXT", "arglist")
-  debug_722:
-  rx830_fail:
-    (rx830_rep, rx830_pos, $I10, $P10) = rx830_cur."!mark_fail"(0)
-    lt rx830_pos, -1, rx830_done
-    eq rx830_pos, -1, rx830_fail
-    jump $I10
-  rx830_done:
-    rx830_cur."!cursor_fail"()
-    if_null rx830_debug, debug_723
-    rx830_cur."!cursor_debug"("FAIL", "arglist")
-  debug_723:
-    .return (rx830_cur)
+    .return (rx831_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("197_1283975947.19641") :method
-.annotate 'line', 0
-    $P832 = self."!PREFIX__!subrule"("ws", "")
-    new $P833, "ResizablePMCArray"
-    push $P833, $P832
-    .return ($P833)
+.sub "!PREFIX__term:sym<identifier>"  :subid("195_1284728478.15265") :method
+.annotate 'line', 4
+    $P833 = self."!PREFIX__!subrule"("deflongname", "")
+    new $P834, "ResizablePMCArray"
+    push $P834, $P833
+    .return ($P834)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<value>"  :subid("198_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "term:sym<name>"  :subid("196_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx837_tgt
     .local int rx837_pos
     .local int rx837_off
@@ -11052,6 +11313,7 @@
     .local pmc rx837_cur
     .local pmc rx837_debug
     (rx837_cur, rx837_pos, rx837_tgt, $I10) = self."!cursor_start"()
+    rx837_cur."!cursor_caparray"("args")
     getattribute rx837_debug, rx837_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx837_cur
     .local pmc match
@@ -11064,9 +11326,9 @@
     substr rx837_tgt, rx837_tgt, rx837_off
   rx837_start:
     eq $I10, 1, rx837_restart
-    if_null rx837_debug, debug_724
-    rx837_cur."!cursor_debug"("START", "term:sym<value>")
-  debug_724:
+    if_null rx837_debug, debug_722
+    rx837_cur."!cursor_debug"("START", "term:sym<name>")
+  debug_722:
     $I10 = self.'from'()
     ne $I10, -1, rxscan841_done
     goto rxscan841_scan
@@ -11079,23 +11341,46 @@
     set_addr $I10, rxscan841_loop
     rx837_cur."!mark_push"(0, rx837_pos, $I10)
   rxscan841_done:
-  # rx subrule "value" subtype=capture negate=
+.annotate 'line', 392
+  # rx subrule "name" subtype=capture negate=
     rx837_cur."!cursor_pos"(rx837_pos)
-    $P10 = rx837_cur."value"()
+    $P10 = rx837_cur."name"()
     unless $P10, rx837_fail
     rx837_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("value")
+    $P10."!cursor_names"("name")
     rx837_pos = $P10."pos"()
-  # rx pass
-    rx837_cur."!cursor_pass"(rx837_pos, "term:sym<value>")
-    if_null rx837_debug, debug_725
-    rx837_cur."!cursor_debug"("PASS", "term:sym<value>", " at pos=", rx837_pos)
-  debug_725:
+  # rx rxquantr842 ** 0..1
+    set_addr $I10, rxquantr842_done
+    rx837_cur."!mark_push"(0, rx837_pos, $I10)
+  rxquantr842_loop:
+  # rx subrule "args" subtype=capture negate=
+    rx837_cur."!cursor_pos"(rx837_pos)
+    $P10 = rx837_cur."args"()
+    unless $P10, rx837_fail
+    goto rxsubrule843_pass
+  rxsubrule843_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx837_fail
+  rxsubrule843_pass:
+    set_addr $I10, rxsubrule843_back
+    rx837_cur."!mark_push"(0, rx837_pos, $I10, $P10)
+    $P10."!cursor_names"("args")
+    rx837_pos = $P10."pos"()
+    set_addr $I10, rxquantr842_done
+    (rx837_rep) = rx837_cur."!mark_commit"($I10)
+  rxquantr842_done:
+.annotate 'line', 391
+  # rx pass
+    rx837_cur."!cursor_pass"(rx837_pos, "term:sym<name>")
+    if_null rx837_debug, debug_723
+    rx837_cur."!cursor_debug"("PASS", "term:sym<name>", " at pos=", rx837_pos)
+  debug_723:
     .return (rx837_cur)
   rx837_restart:
-    if_null rx837_debug, debug_726
-    rx837_cur."!cursor_debug"("NEXT", "term:sym<value>")
-  debug_726:
+.annotate 'line', 4
+    if_null rx837_debug, debug_724
+    rx837_cur."!cursor_debug"("NEXT", "term:sym<name>")
+  debug_724:
   rx837_fail:
     (rx837_rep, rx837_pos, $I10, $P10) = rx837_cur."!mark_fail"(0)
     lt rx837_pos, -1, rx837_done
@@ -11103,18 +11388,18 @@
     jump $I10
   rx837_done:
     rx837_cur."!cursor_fail"()
-    if_null rx837_debug, debug_727
-    rx837_cur."!cursor_debug"("FAIL", "term:sym<value>")
-  debug_727:
+    if_null rx837_debug, debug_725
+    rx837_cur."!cursor_debug"("FAIL", "term:sym<name>")
+  debug_725:
     .return (rx837_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>"  :subid("199_1283975947.19641") :method
-.annotate 'line', 0
-    $P839 = self."!PREFIX__!subrule"("value", "")
+.sub "!PREFIX__term:sym<name>"  :subid("197_1284728478.15265") :method
+.annotate 'line', 4
+    $P839 = self."!PREFIX__!subrule"("name", "")
     new $P840, "ResizablePMCArray"
     push $P840, $P839
     .return ($P840)
@@ -11122,819 +11407,731 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "value"  :subid("200_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx843_tgt
-    .local int rx843_pos
-    .local int rx843_off
-    .local int rx843_eos
-    .local int rx843_rep
-    .local pmc rx843_cur
-    .local pmc rx843_debug
-    (rx843_cur, rx843_pos, rx843_tgt, $I10) = self."!cursor_start"()
-    getattribute rx843_debug, rx843_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx843_cur
-    .local pmc match
-    .lex "$/", match
-    length rx843_eos, rx843_tgt
-    gt rx843_pos, rx843_eos, rx843_done
-    set rx843_off, 0
-    lt rx843_pos, 2, rx843_start
-    sub rx843_off, rx843_pos, 1
-    substr rx843_tgt, rx843_tgt, rx843_off
-  rx843_start:
-    eq $I10, 1, rx843_restart
-    if_null rx843_debug, debug_728
-    rx843_cur."!cursor_debug"("START", "value")
-  debug_728:
+.sub "term:sym<pir::op>"  :subid("198_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx845_tgt
+    .local int rx845_pos
+    .local int rx845_off
+    .local int rx845_eos
+    .local int rx845_rep
+    .local pmc rx845_cur
+    .local pmc rx845_debug
+    (rx845_cur, rx845_pos, rx845_tgt, $I10) = self."!cursor_start"()
+    rx845_cur."!cursor_caparray"("args")
+    getattribute rx845_debug, rx845_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx845_cur
+    .local pmc match
+    .lex "$/", match
+    length rx845_eos, rx845_tgt
+    gt rx845_pos, rx845_eos, rx845_done
+    set rx845_off, 0
+    lt rx845_pos, 2, rx845_start
+    sub rx845_off, rx845_pos, 1
+    substr rx845_tgt, rx845_tgt, rx845_off
+  rx845_start:
+    eq $I10, 1, rx845_restart
+    if_null rx845_debug, debug_726
+    rx845_cur."!cursor_debug"("START", "term:sym<pir::op>")
+  debug_726:
     $I10 = self.'from'()
     ne $I10, -1, rxscan848_done
     goto rxscan848_scan
   rxscan848_loop:
-    ($P10) = rx843_cur."from"()
+    ($P10) = rx845_cur."from"()
     inc $P10
-    set rx843_pos, $P10
-    ge rx843_pos, rx843_eos, rxscan848_done
+    set rx845_pos, $P10
+    ge rx845_pos, rx845_eos, rxscan848_done
   rxscan848_scan:
     set_addr $I10, rxscan848_loop
-    rx843_cur."!mark_push"(0, rx843_pos, $I10)
+    rx845_cur."!mark_push"(0, rx845_pos, $I10)
   rxscan848_done:
-  alt849_0:
-    set_addr $I10, alt849_1
-    rx843_cur."!mark_push"(0, rx843_pos, $I10)
-  # rx subrule "quote" subtype=capture negate=
-    rx843_cur."!cursor_pos"(rx843_pos)
-    $P10 = rx843_cur."quote"()
-    unless $P10, rx843_fail
-    rx843_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote")
-    rx843_pos = $P10."pos"()
-    goto alt849_end
-  alt849_1:
-  # rx subrule "number" subtype=capture negate=
-    rx843_cur."!cursor_pos"(rx843_pos)
-    $P10 = rx843_cur."number"()
-    unless $P10, rx843_fail
-    rx843_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("number")
-    rx843_pos = $P10."pos"()
-  alt849_end:
-  # rx pass
-    rx843_cur."!cursor_pass"(rx843_pos, "value")
-    if_null rx843_debug, debug_729
-    rx843_cur."!cursor_debug"("PASS", "value", " at pos=", rx843_pos)
+.annotate 'line', 396
+  # rx literal  "pir::"
+    add $I11, rx845_pos, 5
+    gt $I11, rx845_eos, rx845_fail
+    sub $I11, rx845_pos, rx845_off
+    substr $S10, rx845_tgt, $I11, 5
+    ne $S10, "pir::", rx845_fail
+    add rx845_pos, 5
+  # rx subcapture "op"
+    set_addr $I10, rxcap_849_fail
+    rx845_cur."!mark_push"(0, rx845_pos, $I10)
+  # rx charclass_q w r 1..-1
+    sub $I10, rx845_pos, rx845_off
+    find_not_cclass $I11, 8192, rx845_tgt, $I10, rx845_eos
+    add $I12, $I10, 1
+    lt $I11, $I12, rx845_fail
+    add rx845_pos, rx845_off, $I11
+    set_addr $I10, rxcap_849_fail
+    ($I12, $I11) = rx845_cur."!mark_peek"($I10)
+    rx845_cur."!cursor_pos"($I11)
+    ($P10) = rx845_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx845_pos, "")
+    rx845_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("op")
+    goto rxcap_849_done
+  rxcap_849_fail:
+    goto rx845_fail
+  rxcap_849_done:
+  # rx rxquantr850 ** 0..1
+    set_addr $I10, rxquantr850_done
+    rx845_cur."!mark_push"(0, rx845_pos, $I10)
+  rxquantr850_loop:
+  # rx subrule "args" subtype=capture negate=
+    rx845_cur."!cursor_pos"(rx845_pos)
+    $P10 = rx845_cur."args"()
+    unless $P10, rx845_fail
+    goto rxsubrule851_pass
+  rxsubrule851_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx845_fail
+  rxsubrule851_pass:
+    set_addr $I10, rxsubrule851_back
+    rx845_cur."!mark_push"(0, rx845_pos, $I10, $P10)
+    $P10."!cursor_names"("args")
+    rx845_pos = $P10."pos"()
+    set_addr $I10, rxquantr850_done
+    (rx845_rep) = rx845_cur."!mark_commit"($I10)
+  rxquantr850_done:
+.annotate 'line', 395
+  # rx pass
+    rx845_cur."!cursor_pass"(rx845_pos, "term:sym<pir::op>")
+    if_null rx845_debug, debug_727
+    rx845_cur."!cursor_debug"("PASS", "term:sym<pir::op>", " at pos=", rx845_pos)
+  debug_727:
+    .return (rx845_cur)
+  rx845_restart:
+.annotate 'line', 4
+    if_null rx845_debug, debug_728
+    rx845_cur."!cursor_debug"("NEXT", "term:sym<pir::op>")
+  debug_728:
+  rx845_fail:
+    (rx845_rep, rx845_pos, $I10, $P10) = rx845_cur."!mark_fail"(0)
+    lt rx845_pos, -1, rx845_done
+    eq rx845_pos, -1, rx845_fail
+    jump $I10
+  rx845_done:
+    rx845_cur."!cursor_fail"()
+    if_null rx845_debug, debug_729
+    rx845_cur."!cursor_debug"("FAIL", "term:sym<pir::op>")
   debug_729:
-    .return (rx843_cur)
-  rx843_restart:
-    if_null rx843_debug, debug_730
-    rx843_cur."!cursor_debug"("NEXT", "value")
-  debug_730:
-  rx843_fail:
-    (rx843_rep, rx843_pos, $I10, $P10) = rx843_cur."!mark_fail"(0)
-    lt rx843_pos, -1, rx843_done
-    eq rx843_pos, -1, rx843_fail
-    jump $I10
-  rx843_done:
-    rx843_cur."!cursor_fail"()
-    if_null rx843_debug, debug_731
-    rx843_cur."!cursor_debug"("FAIL", "value")
-  debug_731:
-    .return (rx843_cur)
+    .return (rx845_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value"  :subid("201_1283975947.19641") :method
-.annotate 'line', 0
-    $P845 = self."!PREFIX__!subrule"("number", "")
-    $P846 = self."!PREFIX__!subrule"("quote", "")
+.sub "!PREFIX__term:sym<pir::op>"  :subid("199_1284728478.15265") :method
+.annotate 'line', 4
     new $P847, "ResizablePMCArray"
-    push $P847, $P845
-    push $P847, $P846
+    push $P847, "pir::"
     .return ($P847)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "number"  :subid("202_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx851_tgt
-    .local int rx851_pos
-    .local int rx851_off
-    .local int rx851_eos
-    .local int rx851_rep
-    .local pmc rx851_cur
-    .local pmc rx851_debug
-    (rx851_cur, rx851_pos, rx851_tgt, $I10) = self."!cursor_start"()
-    getattribute rx851_debug, rx851_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx851_cur
-    .local pmc match
-    .lex "$/", match
-    length rx851_eos, rx851_tgt
-    gt rx851_pos, rx851_eos, rx851_done
-    set rx851_off, 0
-    lt rx851_pos, 2, rx851_start
-    sub rx851_off, rx851_pos, 1
-    substr rx851_tgt, rx851_tgt, rx851_off
-  rx851_start:
-    eq $I10, 1, rx851_restart
-    if_null rx851_debug, debug_732
-    rx851_cur."!cursor_debug"("START", "number")
-  debug_732:
+.sub "args"  :subid("200_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx853_tgt
+    .local int rx853_pos
+    .local int rx853_off
+    .local int rx853_eos
+    .local int rx853_rep
+    .local pmc rx853_cur
+    .local pmc rx853_debug
+    (rx853_cur, rx853_pos, rx853_tgt, $I10) = self."!cursor_start"()
+    getattribute rx853_debug, rx853_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx853_cur
+    .local pmc match
+    .lex "$/", match
+    length rx853_eos, rx853_tgt
+    gt rx853_pos, rx853_eos, rx853_done
+    set rx853_off, 0
+    lt rx853_pos, 2, rx853_start
+    sub rx853_off, rx853_pos, 1
+    substr rx853_tgt, rx853_tgt, rx853_off
+  rx853_start:
+    eq $I10, 1, rx853_restart
+    if_null rx853_debug, debug_730
+    rx853_cur."!cursor_debug"("START", "args")
+  debug_730:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan854_done
-    goto rxscan854_scan
-  rxscan854_loop:
-    ($P10) = rx851_cur."from"()
-    inc $P10
-    set rx851_pos, $P10
-    ge rx851_pos, rx851_eos, rxscan854_done
-  rxscan854_scan:
-    set_addr $I10, rxscan854_loop
-    rx851_cur."!mark_push"(0, rx851_pos, $I10)
-  rxscan854_done:
-  # rx subcapture "sign"
-    set_addr $I10, rxcap_856_fail
-    rx851_cur."!mark_push"(0, rx851_pos, $I10)
-  # rx enumcharlist_q negate=0  r 0..1
-    sub $I10, rx851_pos, rx851_off
-    set rx851_rep, 0
-    sub $I12, rx851_eos, rx851_pos
-    le $I12, 1, rxenumcharlistq855_loop
-    set $I12, 1
-  rxenumcharlistq855_loop:
-    le $I12, 0, rxenumcharlistq855_done
-    substr $S10, rx851_tgt, $I10, 1
-    index $I11, "+-", $S10
-    lt $I11, 0, rxenumcharlistq855_done
-    inc rx851_rep
-  rxenumcharlistq855_done:
-    add rx851_pos, rx851_pos, rx851_rep
-    set_addr $I10, rxcap_856_fail
-    ($I12, $I11) = rx851_cur."!mark_peek"($I10)
-    rx851_cur."!cursor_pos"($I11)
-    ($P10) = rx851_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx851_pos, "")
-    rx851_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sign")
-    goto rxcap_856_done
-  rxcap_856_fail:
-    goto rx851_fail
-  rxcap_856_done:
-  alt857_0:
-    set_addr $I10, alt857_1
-    rx851_cur."!mark_push"(0, rx851_pos, $I10)
-  # rx subrule "dec_number" subtype=capture negate=
-    rx851_cur."!cursor_pos"(rx851_pos)
-    $P10 = rx851_cur."dec_number"()
-    unless $P10, rx851_fail
-    rx851_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("dec_number")
-    rx851_pos = $P10."pos"()
-    goto alt857_end
-  alt857_1:
-  # rx subrule "integer" subtype=capture negate=
-    rx851_cur."!cursor_pos"(rx851_pos)
-    $P10 = rx851_cur."integer"()
-    unless $P10, rx851_fail
-    rx851_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("integer")
-    rx851_pos = $P10."pos"()
-  alt857_end:
-  # rx pass
-    rx851_cur."!cursor_pass"(rx851_pos, "number")
-    if_null rx851_debug, debug_733
-    rx851_cur."!cursor_debug"("PASS", "number", " at pos=", rx851_pos)
+    ne $I10, -1, rxscan857_done
+    goto rxscan857_scan
+  rxscan857_loop:
+    ($P10) = rx853_cur."from"()
+    inc $P10
+    set rx853_pos, $P10
+    ge rx853_pos, rx853_eos, rxscan857_done
+  rxscan857_scan:
+    set_addr $I10, rxscan857_loop
+    rx853_cur."!mark_push"(0, rx853_pos, $I10)
+  rxscan857_done:
+.annotate 'line', 400
+  # rx literal  "("
+    add $I11, rx853_pos, 1
+    gt $I11, rx853_eos, rx853_fail
+    sub $I11, rx853_pos, rx853_off
+    ord $I11, rx853_tgt, $I11
+    ne $I11, 40, rx853_fail
+    add rx853_pos, 1
+  # rx subrule "arglist" subtype=capture negate=
+    rx853_cur."!cursor_pos"(rx853_pos)
+    $P10 = rx853_cur."arglist"()
+    unless $P10, rx853_fail
+    rx853_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("arglist")
+    rx853_pos = $P10."pos"()
+  # rx literal  ")"
+    add $I11, rx853_pos, 1
+    gt $I11, rx853_eos, rx853_fail
+    sub $I11, rx853_pos, rx853_off
+    ord $I11, rx853_tgt, $I11
+    ne $I11, 41, rx853_fail
+    add rx853_pos, 1
+  # rx pass
+    rx853_cur."!cursor_pass"(rx853_pos, "args")
+    if_null rx853_debug, debug_731
+    rx853_cur."!cursor_debug"("PASS", "args", " at pos=", rx853_pos)
+  debug_731:
+    .return (rx853_cur)
+  rx853_restart:
+.annotate 'line', 4
+    if_null rx853_debug, debug_732
+    rx853_cur."!cursor_debug"("NEXT", "args")
+  debug_732:
+  rx853_fail:
+    (rx853_rep, rx853_pos, $I10, $P10) = rx853_cur."!mark_fail"(0)
+    lt rx853_pos, -1, rx853_done
+    eq rx853_pos, -1, rx853_fail
+    jump $I10
+  rx853_done:
+    rx853_cur."!cursor_fail"()
+    if_null rx853_debug, debug_733
+    rx853_cur."!cursor_debug"("FAIL", "args")
   debug_733:
-    .return (rx851_cur)
-  rx851_restart:
-    if_null rx851_debug, debug_734
-    rx851_cur."!cursor_debug"("NEXT", "number")
-  debug_734:
-  rx851_fail:
-    (rx851_rep, rx851_pos, $I10, $P10) = rx851_cur."!mark_fail"(0)
-    lt rx851_pos, -1, rx851_done
-    eq rx851_pos, -1, rx851_fail
-    jump $I10
-  rx851_done:
-    rx851_cur."!cursor_fail"()
-    if_null rx851_debug, debug_735
-    rx851_cur."!cursor_debug"("FAIL", "number")
-  debug_735:
-    .return (rx851_cur)
+    .return (rx853_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number"  :subid("203_1283975947.19641") :method
-.annotate 'line', 0
-    new $P853, "ResizablePMCArray"
-    push $P853, ""
-    .return ($P853)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "quote"  :subid("204_1283975947.19641") :method
-.annotate 'line', 0
-    $P859 = self."!protoregex"("quote")
-    .return ($P859)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote"  :subid("205_1283975947.19641") :method
-.annotate 'line', 0
-    $P861 = self."!PREFIX__!protoregex"("quote")
-    .return ($P861)
+.sub "!PREFIX__args"  :subid("201_1284728478.15265") :method
+.annotate 'line', 4
+    $P855 = self."!PREFIX__!subrule"("arglist", "(")
+    new $P856, "ResizablePMCArray"
+    push $P856, $P855
+    .return ($P856)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>"  :subid("206_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx863_tgt
-    .local int rx863_pos
-    .local int rx863_off
-    .local int rx863_eos
-    .local int rx863_rep
-    .local pmc rx863_cur
-    .local pmc rx863_debug
-    (rx863_cur, rx863_pos, rx863_tgt, $I10) = self."!cursor_start"()
-    getattribute rx863_debug, rx863_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx863_cur
-    .local pmc match
-    .lex "$/", match
-    length rx863_eos, rx863_tgt
-    gt rx863_pos, rx863_eos, rx863_done
-    set rx863_off, 0
-    lt rx863_pos, 2, rx863_start
-    sub rx863_off, rx863_pos, 1
-    substr rx863_tgt, rx863_tgt, rx863_off
-  rx863_start:
-    eq $I10, 1, rx863_restart
-    if_null rx863_debug, debug_736
-    rx863_cur."!cursor_debug"("START", "quote:sym<apos>")
-  debug_736:
+.sub "arglist"  :subid("202_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx859_tgt
+    .local int rx859_pos
+    .local int rx859_off
+    .local int rx859_eos
+    .local int rx859_rep
+    .local pmc rx859_cur
+    .local pmc rx859_debug
+    (rx859_cur, rx859_pos, rx859_tgt, $I10) = self."!cursor_start"()
+    getattribute rx859_debug, rx859_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx859_cur
+    .local pmc match
+    .lex "$/", match
+    length rx859_eos, rx859_tgt
+    gt rx859_pos, rx859_eos, rx859_done
+    set rx859_off, 0
+    lt rx859_pos, 2, rx859_start
+    sub rx859_off, rx859_pos, 1
+    substr rx859_tgt, rx859_tgt, rx859_off
+  rx859_start:
+    eq $I10, 1, rx859_restart
+    if_null rx859_debug, debug_734
+    rx859_cur."!cursor_debug"("START", "arglist")
+  debug_734:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan866_done
-    goto rxscan866_scan
-  rxscan866_loop:
-    ($P10) = rx863_cur."from"()
-    inc $P10
-    set rx863_pos, $P10
-    ge rx863_pos, rx863_eos, rxscan866_done
-  rxscan866_scan:
-    set_addr $I10, rxscan866_loop
-    rx863_cur."!mark_push"(0, rx863_pos, $I10)
-  rxscan866_done:
-  # rx enumcharlist negate=0 zerowidth
-    ge rx863_pos, rx863_eos, rx863_fail
-    sub $I10, rx863_pos, rx863_off
-    substr $S10, rx863_tgt, $I10, 1
-    index $I11, "'", $S10
-    lt $I11, 0, rx863_fail
-  # rx subrule "quote_EXPR" subtype=capture negate=
-    rx863_cur."!cursor_pos"(rx863_pos)
-    $P10 = rx863_cur."quote_EXPR"(":q")
-    unless $P10, rx863_fail
-    rx863_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
-    rx863_pos = $P10."pos"()
-  # rx pass
-    rx863_cur."!cursor_pass"(rx863_pos, "quote:sym<apos>")
-    if_null rx863_debug, debug_737
-    rx863_cur."!cursor_debug"("PASS", "quote:sym<apos>", " at pos=", rx863_pos)
+    ne $I10, -1, rxscan863_done
+    goto rxscan863_scan
+  rxscan863_loop:
+    ($P10) = rx859_cur."from"()
+    inc $P10
+    set rx859_pos, $P10
+    ge rx859_pos, rx859_eos, rxscan863_done
+  rxscan863_scan:
+    set_addr $I10, rxscan863_loop
+    rx859_cur."!mark_push"(0, rx859_pos, $I10)
+  rxscan863_done:
+.annotate 'line', 404
+  # rx subrule "ws" subtype=method negate=
+    rx859_cur."!cursor_pos"(rx859_pos)
+    $P10 = rx859_cur."ws"()
+    unless $P10, rx859_fail
+    rx859_pos = $P10."pos"()
+  alt864_0:
+.annotate 'line', 405
+    set_addr $I10, alt864_1
+    rx859_cur."!mark_push"(0, rx859_pos, $I10)
+.annotate 'line', 406
+  # rx subrule "EXPR" subtype=capture negate=
+    rx859_cur."!cursor_pos"(rx859_pos)
+    $P10 = rx859_cur."EXPR"("f=")
+    unless $P10, rx859_fail
+    rx859_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("EXPR")
+    rx859_pos = $P10."pos"()
+    goto alt864_end
+  alt864_1:
+  alt864_end:
+.annotate 'line', 403
+  # rx pass
+    rx859_cur."!cursor_pass"(rx859_pos, "arglist")
+    if_null rx859_debug, debug_735
+    rx859_cur."!cursor_debug"("PASS", "arglist", " at pos=", rx859_pos)
+  debug_735:
+    .return (rx859_cur)
+  rx859_restart:
+.annotate 'line', 4
+    if_null rx859_debug, debug_736
+    rx859_cur."!cursor_debug"("NEXT", "arglist")
+  debug_736:
+  rx859_fail:
+    (rx859_rep, rx859_pos, $I10, $P10) = rx859_cur."!mark_fail"(0)
+    lt rx859_pos, -1, rx859_done
+    eq rx859_pos, -1, rx859_fail
+    jump $I10
+  rx859_done:
+    rx859_cur."!cursor_fail"()
+    if_null rx859_debug, debug_737
+    rx859_cur."!cursor_debug"("FAIL", "arglist")
   debug_737:
-    .return (rx863_cur)
-  rx863_restart:
-    if_null rx863_debug, debug_738
-    rx863_cur."!cursor_debug"("NEXT", "quote:sym<apos>")
-  debug_738:
-  rx863_fail:
-    (rx863_rep, rx863_pos, $I10, $P10) = rx863_cur."!mark_fail"(0)
-    lt rx863_pos, -1, rx863_done
-    eq rx863_pos, -1, rx863_fail
-    jump $I10
-  rx863_done:
-    rx863_cur."!cursor_fail"()
-    if_null rx863_debug, debug_739
-    rx863_cur."!cursor_debug"("FAIL", "quote:sym<apos>")
-  debug_739:
-    .return (rx863_cur)
+    .return (rx859_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>"  :subid("207_1283975947.19641") :method
-.annotate 'line', 0
-    new $P865, "ResizablePMCArray"
-    push $P865, "'"
-    .return ($P865)
+.sub "!PREFIX__arglist"  :subid("203_1284728478.15265") :method
+.annotate 'line', 4
+    $P861 = self."!PREFIX__!subrule"("ws", "")
+    new $P862, "ResizablePMCArray"
+    push $P862, $P861
+    .return ($P862)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>"  :subid("208_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx868_tgt
-    .local int rx868_pos
-    .local int rx868_off
-    .local int rx868_eos
-    .local int rx868_rep
-    .local pmc rx868_cur
-    .local pmc rx868_debug
-    (rx868_cur, rx868_pos, rx868_tgt, $I10) = self."!cursor_start"()
-    getattribute rx868_debug, rx868_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx868_cur
-    .local pmc match
-    .lex "$/", match
-    length rx868_eos, rx868_tgt
-    gt rx868_pos, rx868_eos, rx868_done
-    set rx868_off, 0
-    lt rx868_pos, 2, rx868_start
-    sub rx868_off, rx868_pos, 1
-    substr rx868_tgt, rx868_tgt, rx868_off
-  rx868_start:
-    eq $I10, 1, rx868_restart
-    if_null rx868_debug, debug_740
-    rx868_cur."!cursor_debug"("START", "quote:sym<dblq>")
-  debug_740:
+.sub "term:sym<value>"  :subid("204_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx866_tgt
+    .local int rx866_pos
+    .local int rx866_off
+    .local int rx866_eos
+    .local int rx866_rep
+    .local pmc rx866_cur
+    .local pmc rx866_debug
+    (rx866_cur, rx866_pos, rx866_tgt, $I10) = self."!cursor_start"()
+    getattribute rx866_debug, rx866_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx866_cur
+    .local pmc match
+    .lex "$/", match
+    length rx866_eos, rx866_tgt
+    gt rx866_pos, rx866_eos, rx866_done
+    set rx866_off, 0
+    lt rx866_pos, 2, rx866_start
+    sub rx866_off, rx866_pos, 1
+    substr rx866_tgt, rx866_tgt, rx866_off
+  rx866_start:
+    eq $I10, 1, rx866_restart
+    if_null rx866_debug, debug_738
+    rx866_cur."!cursor_debug"("START", "term:sym<value>")
+  debug_738:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan871_done
-    goto rxscan871_scan
-  rxscan871_loop:
-    ($P10) = rx868_cur."from"()
-    inc $P10
-    set rx868_pos, $P10
-    ge rx868_pos, rx868_eos, rxscan871_done
-  rxscan871_scan:
-    set_addr $I10, rxscan871_loop
-    rx868_cur."!mark_push"(0, rx868_pos, $I10)
-  rxscan871_done:
-  # rx enumcharlist negate=0 zerowidth
-    ge rx868_pos, rx868_eos, rx868_fail
-    sub $I10, rx868_pos, rx868_off
-    substr $S10, rx868_tgt, $I10, 1
-    index $I11, "\"", $S10
-    lt $I11, 0, rx868_fail
-  # rx subrule "quote_EXPR" subtype=capture negate=
-    rx868_cur."!cursor_pos"(rx868_pos)
-    $P10 = rx868_cur."quote_EXPR"(":qq")
-    unless $P10, rx868_fail
-    rx868_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
-    rx868_pos = $P10."pos"()
+    ne $I10, -1, rxscan870_done
+    goto rxscan870_scan
+  rxscan870_loop:
+    ($P10) = rx866_cur."from"()
+    inc $P10
+    set rx866_pos, $P10
+    ge rx866_pos, rx866_eos, rxscan870_done
+  rxscan870_scan:
+    set_addr $I10, rxscan870_loop
+    rx866_cur."!mark_push"(0, rx866_pos, $I10)
+  rxscan870_done:
+.annotate 'line', 412
+  # rx subrule "value" subtype=capture negate=
+    rx866_cur."!cursor_pos"(rx866_pos)
+    $P10 = rx866_cur."value"()
+    unless $P10, rx866_fail
+    rx866_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("value")
+    rx866_pos = $P10."pos"()
   # rx pass
-    rx868_cur."!cursor_pass"(rx868_pos, "quote:sym<dblq>")
-    if_null rx868_debug, debug_741
-    rx868_cur."!cursor_debug"("PASS", "quote:sym<dblq>", " at pos=", rx868_pos)
+    rx866_cur."!cursor_pass"(rx866_pos, "term:sym<value>")
+    if_null rx866_debug, debug_739
+    rx866_cur."!cursor_debug"("PASS", "term:sym<value>", " at pos=", rx866_pos)
+  debug_739:
+    .return (rx866_cur)
+  rx866_restart:
+.annotate 'line', 4
+    if_null rx866_debug, debug_740
+    rx866_cur."!cursor_debug"("NEXT", "term:sym<value>")
+  debug_740:
+  rx866_fail:
+    (rx866_rep, rx866_pos, $I10, $P10) = rx866_cur."!mark_fail"(0)
+    lt rx866_pos, -1, rx866_done
+    eq rx866_pos, -1, rx866_fail
+    jump $I10
+  rx866_done:
+    rx866_cur."!cursor_fail"()
+    if_null rx866_debug, debug_741
+    rx866_cur."!cursor_debug"("FAIL", "term:sym<value>")
   debug_741:
-    .return (rx868_cur)
-  rx868_restart:
-    if_null rx868_debug, debug_742
-    rx868_cur."!cursor_debug"("NEXT", "quote:sym<dblq>")
-  debug_742:
-  rx868_fail:
-    (rx868_rep, rx868_pos, $I10, $P10) = rx868_cur."!mark_fail"(0)
-    lt rx868_pos, -1, rx868_done
-    eq rx868_pos, -1, rx868_fail
-    jump $I10
-  rx868_done:
-    rx868_cur."!cursor_fail"()
-    if_null rx868_debug, debug_743
-    rx868_cur."!cursor_debug"("FAIL", "quote:sym<dblq>")
-  debug_743:
-    .return (rx868_cur)
+    .return (rx866_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<dblq>"  :subid("209_1283975947.19641") :method
-.annotate 'line', 0
-    new $P870, "ResizablePMCArray"
-    push $P870, "\""
-    .return ($P870)
+.sub "!PREFIX__term:sym<value>"  :subid("205_1284728478.15265") :method
+.annotate 'line', 4
+    $P868 = self."!PREFIX__!subrule"("value", "")
+    new $P869, "ResizablePMCArray"
+    push $P869, $P868
+    .return ($P869)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<q>"  :subid("210_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx873_tgt
-    .local int rx873_pos
-    .local int rx873_off
-    .local int rx873_eos
-    .local int rx873_rep
-    .local pmc rx873_cur
-    .local pmc rx873_debug
-    (rx873_cur, rx873_pos, rx873_tgt, $I10) = self."!cursor_start"()
-    getattribute rx873_debug, rx873_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx873_cur
-    .local pmc match
-    .lex "$/", match
-    length rx873_eos, rx873_tgt
-    gt rx873_pos, rx873_eos, rx873_done
-    set rx873_off, 0
-    lt rx873_pos, 2, rx873_start
-    sub rx873_off, rx873_pos, 1
-    substr rx873_tgt, rx873_tgt, rx873_off
-  rx873_start:
-    eq $I10, 1, rx873_restart
-    if_null rx873_debug, debug_744
-    rx873_cur."!cursor_debug"("START", "quote:sym<q>")
-  debug_744:
+.sub "value"  :subid("206_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx872_tgt
+    .local int rx872_pos
+    .local int rx872_off
+    .local int rx872_eos
+    .local int rx872_rep
+    .local pmc rx872_cur
+    .local pmc rx872_debug
+    (rx872_cur, rx872_pos, rx872_tgt, $I10) = self."!cursor_start"()
+    getattribute rx872_debug, rx872_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx872_cur
+    .local pmc match
+    .lex "$/", match
+    length rx872_eos, rx872_tgt
+    gt rx872_pos, rx872_eos, rx872_done
+    set rx872_off, 0
+    lt rx872_pos, 2, rx872_start
+    sub rx872_off, rx872_pos, 1
+    substr rx872_tgt, rx872_tgt, rx872_off
+  rx872_start:
+    eq $I10, 1, rx872_restart
+    if_null rx872_debug, debug_742
+    rx872_cur."!cursor_debug"("START", "value")
+  debug_742:
     $I10 = self.'from'()
     ne $I10, -1, rxscan877_done
     goto rxscan877_scan
   rxscan877_loop:
-    ($P10) = rx873_cur."from"()
+    ($P10) = rx872_cur."from"()
     inc $P10
-    set rx873_pos, $P10
-    ge rx873_pos, rx873_eos, rxscan877_done
+    set rx872_pos, $P10
+    ge rx872_pos, rx872_eos, rxscan877_done
   rxscan877_scan:
     set_addr $I10, rxscan877_loop
-    rx873_cur."!mark_push"(0, rx873_pos, $I10)
+    rx872_cur."!mark_push"(0, rx872_pos, $I10)
   rxscan877_done:
-  # rx literal  "q"
-    add $I11, rx873_pos, 1
-    gt $I11, rx873_eos, rx873_fail
-    sub $I11, rx873_pos, rx873_off
-    ord $I11, rx873_tgt, $I11
-    ne $I11, 113, rx873_fail
-    add rx873_pos, 1
-  # rxanchor rwb
-    le rx873_pos, 0, rx873_fail
-    sub $I10, rx873_pos, rx873_off
-    is_cclass $I11, 8192, rx873_tgt, $I10
-    if $I11, rx873_fail
-    dec $I10
-    is_cclass $I11, 8192, rx873_tgt, $I10
-    unless $I11, rx873_fail
-  # rx enumcharlist negate=1 zerowidth
-    ge rx873_pos, rx873_eos, rx873_fail
-    sub $I10, rx873_pos, rx873_off
-    substr $S10, rx873_tgt, $I10, 1
-    index $I11, "(", $S10
-    ge $I11, 0, rx873_fail
-  # rx subrule "ws" subtype=method negate=
-    rx873_cur."!cursor_pos"(rx873_pos)
-    $P10 = rx873_cur."ws"()
-    unless $P10, rx873_fail
-    rx873_pos = $P10."pos"()
-  # rx subrule "quote_EXPR" subtype=capture negate=
-    rx873_cur."!cursor_pos"(rx873_pos)
-    $P10 = rx873_cur."quote_EXPR"(":q")
-    unless $P10, rx873_fail
-    rx873_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
-    rx873_pos = $P10."pos"()
-  # rx pass
-    rx873_cur."!cursor_pass"(rx873_pos, "quote:sym<q>")
-    if_null rx873_debug, debug_745
-    rx873_cur."!cursor_debug"("PASS", "quote:sym<q>", " at pos=", rx873_pos)
+  alt878_0:
+.annotate 'line', 414
+    set_addr $I10, alt878_1
+    rx872_cur."!mark_push"(0, rx872_pos, $I10)
+.annotate 'line', 415
+  # rx subrule "quote" subtype=capture negate=
+    rx872_cur."!cursor_pos"(rx872_pos)
+    $P10 = rx872_cur."quote"()
+    unless $P10, rx872_fail
+    rx872_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("quote")
+    rx872_pos = $P10."pos"()
+    goto alt878_end
+  alt878_1:
+.annotate 'line', 416
+  # rx subrule "number" subtype=capture negate=
+    rx872_cur."!cursor_pos"(rx872_pos)
+    $P10 = rx872_cur."number"()
+    unless $P10, rx872_fail
+    rx872_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("number")
+    rx872_pos = $P10."pos"()
+  alt878_end:
+.annotate 'line', 414
+  # rx pass
+    rx872_cur."!cursor_pass"(rx872_pos, "value")
+    if_null rx872_debug, debug_743
+    rx872_cur."!cursor_debug"("PASS", "value", " at pos=", rx872_pos)
+  debug_743:
+    .return (rx872_cur)
+  rx872_restart:
+.annotate 'line', 4
+    if_null rx872_debug, debug_744
+    rx872_cur."!cursor_debug"("NEXT", "value")
+  debug_744:
+  rx872_fail:
+    (rx872_rep, rx872_pos, $I10, $P10) = rx872_cur."!mark_fail"(0)
+    lt rx872_pos, -1, rx872_done
+    eq rx872_pos, -1, rx872_fail
+    jump $I10
+  rx872_done:
+    rx872_cur."!cursor_fail"()
+    if_null rx872_debug, debug_745
+    rx872_cur."!cursor_debug"("FAIL", "value")
   debug_745:
-    .return (rx873_cur)
-  rx873_restart:
-    if_null rx873_debug, debug_746
-    rx873_cur."!cursor_debug"("NEXT", "quote:sym<q>")
-  debug_746:
-  rx873_fail:
-    (rx873_rep, rx873_pos, $I10, $P10) = rx873_cur."!mark_fail"(0)
-    lt rx873_pos, -1, rx873_done
-    eq rx873_pos, -1, rx873_fail
-    jump $I10
-  rx873_done:
-    rx873_cur."!cursor_fail"()
-    if_null rx873_debug, debug_747
-    rx873_cur."!cursor_debug"("FAIL", "quote:sym<q>")
-  debug_747:
-    .return (rx873_cur)
+    .return (rx872_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<q>"  :subid("211_1283975947.19641") :method
-.annotate 'line', 0
-    $P875 = self."!PREFIX__!subrule"("ws", "q")
+.sub "!PREFIX__value"  :subid("207_1284728478.15265") :method
+.annotate 'line', 4
+    $P874 = self."!PREFIX__!subrule"("number", "")
+    $P875 = self."!PREFIX__!subrule"("quote", "")
     new $P876, "ResizablePMCArray"
+    push $P876, $P874
     push $P876, $P875
     .return ($P876)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<qq>"  :subid("212_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx879_tgt
-    .local int rx879_pos
-    .local int rx879_off
-    .local int rx879_eos
-    .local int rx879_rep
-    .local pmc rx879_cur
-    .local pmc rx879_debug
-    (rx879_cur, rx879_pos, rx879_tgt, $I10) = self."!cursor_start"()
-    getattribute rx879_debug, rx879_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx879_cur
-    .local pmc match
-    .lex "$/", match
-    length rx879_eos, rx879_tgt
-    gt rx879_pos, rx879_eos, rx879_done
-    set rx879_off, 0
-    lt rx879_pos, 2, rx879_start
-    sub rx879_off, rx879_pos, 1
-    substr rx879_tgt, rx879_tgt, rx879_off
-  rx879_start:
-    eq $I10, 1, rx879_restart
-    if_null rx879_debug, debug_748
-    rx879_cur."!cursor_debug"("START", "quote:sym<qq>")
-  debug_748:
+.sub "number"  :subid("208_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx880_tgt
+    .local int rx880_pos
+    .local int rx880_off
+    .local int rx880_eos
+    .local int rx880_rep
+    .local pmc rx880_cur
+    .local pmc rx880_debug
+    (rx880_cur, rx880_pos, rx880_tgt, $I10) = self."!cursor_start"()
+    getattribute rx880_debug, rx880_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx880_cur
+    .local pmc match
+    .lex "$/", match
+    length rx880_eos, rx880_tgt
+    gt rx880_pos, rx880_eos, rx880_done
+    set rx880_off, 0
+    lt rx880_pos, 2, rx880_start
+    sub rx880_off, rx880_pos, 1
+    substr rx880_tgt, rx880_tgt, rx880_off
+  rx880_start:
+    eq $I10, 1, rx880_restart
+    if_null rx880_debug, debug_746
+    rx880_cur."!cursor_debug"("START", "number")
+  debug_746:
     $I10 = self.'from'()
     ne $I10, -1, rxscan883_done
     goto rxscan883_scan
   rxscan883_loop:
-    ($P10) = rx879_cur."from"()
+    ($P10) = rx880_cur."from"()
     inc $P10
-    set rx879_pos, $P10
-    ge rx879_pos, rx879_eos, rxscan883_done
+    set rx880_pos, $P10
+    ge rx880_pos, rx880_eos, rxscan883_done
   rxscan883_scan:
     set_addr $I10, rxscan883_loop
-    rx879_cur."!mark_push"(0, rx879_pos, $I10)
+    rx880_cur."!mark_push"(0, rx880_pos, $I10)
   rxscan883_done:
-  # rx literal  "qq"
-    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
-    add rx879_pos, 2
-  # rxanchor rwb
-    le rx879_pos, 0, rx879_fail
-    sub $I10, rx879_pos, rx879_off
-    is_cclass $I11, 8192, rx879_tgt, $I10
-    if $I11, rx879_fail
-    dec $I10
-    is_cclass $I11, 8192, rx879_tgt, $I10
-    unless $I11, rx879_fail
-  # rx enumcharlist negate=1 zerowidth
-    ge rx879_pos, rx879_eos, rx879_fail
-    sub $I10, rx879_pos, rx879_off
-    substr $S10, rx879_tgt, $I10, 1
-    index $I11, "(", $S10
-    ge $I11, 0, rx879_fail
-  # rx subrule "ws" subtype=method negate=
-    rx879_cur."!cursor_pos"(rx879_pos)
-    $P10 = rx879_cur."ws"()
-    unless $P10, rx879_fail
-    rx879_pos = $P10."pos"()
-  # rx subrule "quote_EXPR" subtype=capture negate=
-    rx879_cur."!cursor_pos"(rx879_pos)
-    $P10 = rx879_cur."quote_EXPR"(":qq")
-    unless $P10, rx879_fail
-    rx879_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
-    rx879_pos = $P10."pos"()
-  # rx pass
-    rx879_cur."!cursor_pass"(rx879_pos, "quote:sym<qq>")
-    if_null rx879_debug, debug_749
-    rx879_cur."!cursor_debug"("PASS", "quote:sym<qq>", " at pos=", rx879_pos)
+.annotate 'line', 420
+  # rx subcapture "sign"
+    set_addr $I10, rxcap_885_fail
+    rx880_cur."!mark_push"(0, rx880_pos, $I10)
+  # rx enumcharlist_q negate=0  r 0..1
+    sub $I10, rx880_pos, rx880_off
+    set rx880_rep, 0
+    sub $I12, rx880_eos, rx880_pos
+    le $I12, 1, rxenumcharlistq884_loop
+    set $I12, 1
+  rxenumcharlistq884_loop:
+    le $I12, 0, rxenumcharlistq884_done
+    substr $S10, rx880_tgt, $I10, 1
+    index $I11, "+-", $S10
+    lt $I11, 0, rxenumcharlistq884_done
+    inc rx880_rep
+  rxenumcharlistq884_done:
+    add rx880_pos, rx880_pos, rx880_rep
+    set_addr $I10, rxcap_885_fail
+    ($I12, $I11) = rx880_cur."!mark_peek"($I10)
+    rx880_cur."!cursor_pos"($I11)
+    ($P10) = rx880_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx880_pos, "")
+    rx880_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sign")
+    goto rxcap_885_done
+  rxcap_885_fail:
+    goto rx880_fail
+  rxcap_885_done:
+  alt886_0:
+.annotate 'line', 421
+    set_addr $I10, alt886_1
+    rx880_cur."!mark_push"(0, rx880_pos, $I10)
+  # rx subrule "dec_number" subtype=capture negate=
+    rx880_cur."!cursor_pos"(rx880_pos)
+    $P10 = rx880_cur."dec_number"()
+    unless $P10, rx880_fail
+    rx880_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("dec_number")
+    rx880_pos = $P10."pos"()
+    goto alt886_end
+  alt886_1:
+  # rx subrule "integer" subtype=capture negate=
+    rx880_cur."!cursor_pos"(rx880_pos)
+    $P10 = rx880_cur."integer"()
+    unless $P10, rx880_fail
+    rx880_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("integer")
+    rx880_pos = $P10."pos"()
+  alt886_end:
+.annotate 'line', 419
+  # rx pass
+    rx880_cur."!cursor_pass"(rx880_pos, "number")
+    if_null rx880_debug, debug_747
+    rx880_cur."!cursor_debug"("PASS", "number", " at pos=", rx880_pos)
+  debug_747:
+    .return (rx880_cur)
+  rx880_restart:
+.annotate 'line', 4
+    if_null rx880_debug, debug_748
+    rx880_cur."!cursor_debug"("NEXT", "number")
+  debug_748:
+  rx880_fail:
+    (rx880_rep, rx880_pos, $I10, $P10) = rx880_cur."!mark_fail"(0)
+    lt rx880_pos, -1, rx880_done
+    eq rx880_pos, -1, rx880_fail
+    jump $I10
+  rx880_done:
+    rx880_cur."!cursor_fail"()
+    if_null rx880_debug, debug_749
+    rx880_cur."!cursor_debug"("FAIL", "number")
   debug_749:
-    .return (rx879_cur)
-  rx879_restart:
-    if_null rx879_debug, debug_750
-    rx879_cur."!cursor_debug"("NEXT", "quote:sym<qq>")
-  debug_750:
-  rx879_fail:
-    (rx879_rep, rx879_pos, $I10, $P10) = rx879_cur."!mark_fail"(0)
-    lt rx879_pos, -1, rx879_done
-    eq rx879_pos, -1, rx879_fail
-    jump $I10
-  rx879_done:
-    rx879_cur."!cursor_fail"()
-    if_null rx879_debug, debug_751
-    rx879_cur."!cursor_debug"("FAIL", "quote:sym<qq>")
-  debug_751:
-    .return (rx879_cur)
+    .return (rx880_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<qq>"  :subid("213_1283975947.19641") :method
-.annotate 'line', 0
-    $P881 = self."!PREFIX__!subrule"("ws", "qq")
+.sub "!PREFIX__number"  :subid("209_1284728478.15265") :method
+.annotate 'line', 4
     new $P882, "ResizablePMCArray"
-    push $P882, $P881
+    push $P882, ""
     .return ($P882)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q>"  :subid("214_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx885_tgt
-    .local int rx885_pos
-    .local int rx885_off
-    .local int rx885_eos
-    .local int rx885_rep
-    .local pmc rx885_cur
-    .local pmc rx885_debug
-    (rx885_cur, rx885_pos, rx885_tgt, $I10) = self."!cursor_start"()
-    getattribute rx885_debug, rx885_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx885_cur
-    .local pmc match
-    .lex "$/", match
-    length rx885_eos, rx885_tgt
-    gt rx885_pos, rx885_eos, rx885_done
-    set rx885_off, 0
-    lt rx885_pos, 2, rx885_start
-    sub rx885_off, rx885_pos, 1
-    substr rx885_tgt, rx885_tgt, rx885_off
-  rx885_start:
-    eq $I10, 1, rx885_restart
-    if_null rx885_debug, debug_752
-    rx885_cur."!cursor_debug"("START", "quote:sym<Q>")
-  debug_752:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan889_done
-    goto rxscan889_scan
-  rxscan889_loop:
-    ($P10) = rx885_cur."from"()
-    inc $P10
-    set rx885_pos, $P10
-    ge rx885_pos, rx885_eos, rxscan889_done
-  rxscan889_scan:
-    set_addr $I10, rxscan889_loop
-    rx885_cur."!mark_push"(0, rx885_pos, $I10)
-  rxscan889_done:
-  # rx literal  "Q"
-    add $I11, rx885_pos, 1
-    gt $I11, rx885_eos, rx885_fail
-    sub $I11, rx885_pos, rx885_off
-    ord $I11, rx885_tgt, $I11
-    ne $I11, 81, rx885_fail
-    add rx885_pos, 1
-  # rxanchor rwb
-    le rx885_pos, 0, rx885_fail
-    sub $I10, rx885_pos, rx885_off
-    is_cclass $I11, 8192, rx885_tgt, $I10
-    if $I11, rx885_fail
-    dec $I10
-    is_cclass $I11, 8192, rx885_tgt, $I10
-    unless $I11, rx885_fail
-  # rx enumcharlist negate=1 zerowidth
-    ge rx885_pos, rx885_eos, rx885_fail
-    sub $I10, rx885_pos, rx885_off
-    substr $S10, rx885_tgt, $I10, 1
-    index $I11, "(", $S10
-    ge $I11, 0, rx885_fail
-  # rx subrule "ws" subtype=method negate=
-    rx885_cur."!cursor_pos"(rx885_pos)
-    $P10 = rx885_cur."ws"()
-    unless $P10, rx885_fail
-    rx885_pos = $P10."pos"()
-  # rx subrule "quote_EXPR" subtype=capture negate=
-    rx885_cur."!cursor_pos"(rx885_pos)
-    $P10 = rx885_cur."quote_EXPR"()
-    unless $P10, rx885_fail
-    rx885_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
-    rx885_pos = $P10."pos"()
-  # rx pass
-    rx885_cur."!cursor_pass"(rx885_pos, "quote:sym<Q>")
-    if_null rx885_debug, debug_753
-    rx885_cur."!cursor_debug"("PASS", "quote:sym<Q>", " at pos=", rx885_pos)
-  debug_753:
-    .return (rx885_cur)
-  rx885_restart:
-    if_null rx885_debug, debug_754
-    rx885_cur."!cursor_debug"("NEXT", "quote:sym<Q>")
-  debug_754:
-  rx885_fail:
-    (rx885_rep, rx885_pos, $I10, $P10) = rx885_cur."!mark_fail"(0)
-    lt rx885_pos, -1, rx885_done
-    eq rx885_pos, -1, rx885_fail
-    jump $I10
-  rx885_done:
-    rx885_cur."!cursor_fail"()
-    if_null rx885_debug, debug_755
-    rx885_cur."!cursor_debug"("FAIL", "quote:sym<Q>")
-  debug_755:
-    .return (rx885_cur)
-    .return ()
+.sub "quote"  :subid("210_1284728478.15265") :method
+.annotate 'line', 424
+    $P888 = self."!protoregex"("quote")
+    .return ($P888)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q>"  :subid("215_1283975947.19641") :method
-.annotate 'line', 0
-    $P887 = self."!PREFIX__!subrule"("ws", "Q")
-    new $P888, "ResizablePMCArray"
-    push $P888, $P887
-    .return ($P888)
+.sub "!PREFIX__quote"  :subid("211_1284728478.15265") :method
+.annotate 'line', 424
+    $P890 = self."!PREFIX__!protoregex"("quote")
+    .return ($P890)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q:PIR>"  :subid("216_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx891_tgt
-    .local int rx891_pos
-    .local int rx891_off
-    .local int rx891_eos
-    .local int rx891_rep
-    .local pmc rx891_cur
-    .local pmc rx891_debug
-    (rx891_cur, rx891_pos, rx891_tgt, $I10) = self."!cursor_start"()
-    getattribute rx891_debug, rx891_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx891_cur
-    .local pmc match
-    .lex "$/", match
-    length rx891_eos, rx891_tgt
-    gt rx891_pos, rx891_eos, rx891_done
-    set rx891_off, 0
-    lt rx891_pos, 2, rx891_start
-    sub rx891_off, rx891_pos, 1
-    substr rx891_tgt, rx891_tgt, rx891_off
-  rx891_start:
-    eq $I10, 1, rx891_restart
-    if_null rx891_debug, debug_756
-    rx891_cur."!cursor_debug"("START", "quote:sym<Q:PIR>")
-  debug_756:
+.sub "quote:sym<apos>"  :subid("212_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx892_tgt
+    .local int rx892_pos
+    .local int rx892_off
+    .local int rx892_eos
+    .local int rx892_rep
+    .local pmc rx892_cur
+    .local pmc rx892_debug
+    (rx892_cur, rx892_pos, rx892_tgt, $I10) = self."!cursor_start"()
+    getattribute rx892_debug, rx892_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx892_cur
+    .local pmc match
+    .lex "$/", match
+    length rx892_eos, rx892_tgt
+    gt rx892_pos, rx892_eos, rx892_done
+    set rx892_off, 0
+    lt rx892_pos, 2, rx892_start
+    sub rx892_off, rx892_pos, 1
+    substr rx892_tgt, rx892_tgt, rx892_off
+  rx892_start:
+    eq $I10, 1, rx892_restart
+    if_null rx892_debug, debug_750
+    rx892_cur."!cursor_debug"("START", "quote:sym<apos>")
+  debug_750:
     $I10 = self.'from'()
     ne $I10, -1, rxscan895_done
     goto rxscan895_scan
   rxscan895_loop:
-    ($P10) = rx891_cur."from"()
+    ($P10) = rx892_cur."from"()
     inc $P10
-    set rx891_pos, $P10
-    ge rx891_pos, rx891_eos, rxscan895_done
+    set rx892_pos, $P10
+    ge rx892_pos, rx892_eos, rxscan895_done
   rxscan895_scan:
     set_addr $I10, rxscan895_loop
-    rx891_cur."!mark_push"(0, rx891_pos, $I10)
+    rx892_cur."!mark_push"(0, rx892_pos, $I10)
   rxscan895_done:
-  # rx literal  "Q:PIR"
-    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
-    add rx891_pos, 5
-  # rx subrule "ws" subtype=method negate=
-    rx891_cur."!cursor_pos"(rx891_pos)
-    $P10 = rx891_cur."ws"()
-    unless $P10, rx891_fail
-    rx891_pos = $P10."pos"()
+.annotate 'line', 425
+  # rx enumcharlist negate=0 zerowidth
+    sub $I10, rx892_pos, rx892_off
+    substr $S10, rx892_tgt, $I10, 1
+    index $I11, "'", $S10
+    lt $I11, 0, rx892_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx891_cur."!cursor_pos"(rx891_pos)
-    $P10 = rx891_cur."quote_EXPR"()
-    unless $P10, rx891_fail
-    rx891_cur."!mark_push"(0, -1, 0, $P10)
+    rx892_cur."!cursor_pos"(rx892_pos)
+    $P10 = rx892_cur."quote_EXPR"(":q")
+    unless $P10, rx892_fail
+    rx892_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx891_pos = $P10."pos"()
+    rx892_pos = $P10."pos"()
   # rx pass
-    rx891_cur."!cursor_pass"(rx891_pos, "quote:sym<Q:PIR>")
-    if_null rx891_debug, debug_757
-    rx891_cur."!cursor_debug"("PASS", "quote:sym<Q:PIR>", " at pos=", rx891_pos)
-  debug_757:
-    .return (rx891_cur)
-  rx891_restart:
-    if_null rx891_debug, debug_758
-    rx891_cur."!cursor_debug"("NEXT", "quote:sym<Q:PIR>")
-  debug_758:
-  rx891_fail:
-    (rx891_rep, rx891_pos, $I10, $P10) = rx891_cur."!mark_fail"(0)
-    lt rx891_pos, -1, rx891_done
-    eq rx891_pos, -1, rx891_fail
-    jump $I10
-  rx891_done:
-    rx891_cur."!cursor_fail"()
-    if_null rx891_debug, debug_759
-    rx891_cur."!cursor_debug"("FAIL", "quote:sym<Q:PIR>")
-  debug_759:
-    .return (rx891_cur)
+    rx892_cur."!cursor_pass"(rx892_pos, "quote:sym<apos>")
+    if_null rx892_debug, debug_751
+    rx892_cur."!cursor_debug"("PASS", "quote:sym<apos>", " at pos=", rx892_pos)
+  debug_751:
+    .return (rx892_cur)
+  rx892_restart:
+.annotate 'line', 4
+    if_null rx892_debug, debug_752
+    rx892_cur."!cursor_debug"("NEXT", "quote:sym<apos>")
+  debug_752:
+  rx892_fail:
+    (rx892_rep, rx892_pos, $I10, $P10) = rx892_cur."!mark_fail"(0)
+    lt rx892_pos, -1, rx892_done
+    eq rx892_pos, -1, rx892_fail
+    jump $I10
+  rx892_done:
+    rx892_cur."!cursor_fail"()
+    if_null rx892_debug, debug_753
+    rx892_cur."!cursor_debug"("FAIL", "quote:sym<apos>")
+  debug_753:
+    .return (rx892_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("217_1283975947.19641") :method
-.annotate 'line', 0
-    $P893 = self."!PREFIX__!subrule"("ws", "Q:PIR")
+.sub "!PREFIX__quote:sym<apos>"  :subid("213_1284728478.15265") :method
+.annotate 'line', 4
     new $P894, "ResizablePMCArray"
-    push $P894, $P893
+    push $P894, "'"
     .return ($P894)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym</ />"  :subid("218_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "quote:sym<dblq>"  :subid("214_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx897_tgt
     .local int rx897_pos
     .local int rx897_off
@@ -11955,60 +12152,45 @@
     substr rx897_tgt, rx897_tgt, rx897_off
   rx897_start:
     eq $I10, 1, rx897_restart
-    if_null rx897_debug, debug_760
-    rx897_cur."!cursor_debug"("START", "quote:sym</ />")
-  debug_760:
+    if_null rx897_debug, debug_754
+    rx897_cur."!cursor_debug"("START", "quote:sym<dblq>")
+  debug_754:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan901_done
-    goto rxscan901_scan
-  rxscan901_loop:
+    ne $I10, -1, rxscan900_done
+    goto rxscan900_scan
+  rxscan900_loop:
     ($P10) = rx897_cur."from"()
     inc $P10
     set rx897_pos, $P10
-    ge rx897_pos, rx897_eos, rxscan901_done
-  rxscan901_scan:
-    set_addr $I10, rxscan901_loop
+    ge rx897_pos, rx897_eos, rxscan900_done
+  rxscan900_scan:
+    set_addr $I10, rxscan900_loop
     rx897_cur."!mark_push"(0, rx897_pos, $I10)
-  rxscan901_done:
-  # rx literal  "/"
-    add $I11, rx897_pos, 1
-    gt $I11, rx897_eos, rx897_fail
-    sub $I11, rx897_pos, rx897_off
-    ord $I11, rx897_tgt, $I11
-    ne $I11, 47, rx897_fail
-    add rx897_pos, 1
-  # rx subrule "newpad" subtype=method negate=
-    rx897_cur."!cursor_pos"(rx897_pos)
-    $P10 = rx897_cur."newpad"()
-    unless $P10, rx897_fail
-    rx897_pos = $P10."pos"()
-  # rx reduce name="quote:sym</ />" key="open"
-    rx897_cur."!cursor_pos"(rx897_pos)
-    rx897_cur."!reduce"("quote:sym</ />", "open")
-  # rx subrule "LANG" subtype=capture negate=
+  rxscan900_done:
+.annotate 'line', 426
+  # rx enumcharlist negate=0 zerowidth
+    sub $I10, rx897_pos, rx897_off
+    substr $S10, rx897_tgt, $I10, 1
+    index $I11, "\"", $S10
+    lt $I11, 0, rx897_fail
+  # rx subrule "quote_EXPR" subtype=capture negate=
     rx897_cur."!cursor_pos"(rx897_pos)
-    $P10 = rx897_cur."LANG"("Regex", "nibbler")
+    $P10 = rx897_cur."quote_EXPR"(":qq")
     unless $P10, rx897_fail
     rx897_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("p6regex")
+    $P10."!cursor_names"("quote_EXPR")
     rx897_pos = $P10."pos"()
-  # rx literal  "/"
-    add $I11, rx897_pos, 1
-    gt $I11, rx897_eos, rx897_fail
-    sub $I11, rx897_pos, rx897_off
-    ord $I11, rx897_tgt, $I11
-    ne $I11, 47, rx897_fail
-    add rx897_pos, 1
-  # rx pass
-    rx897_cur."!cursor_pass"(rx897_pos, "quote:sym</ />")
-    if_null rx897_debug, debug_761
-    rx897_cur."!cursor_debug"("PASS", "quote:sym</ />", " at pos=", rx897_pos)
-  debug_761:
+  # rx pass
+    rx897_cur."!cursor_pass"(rx897_pos, "quote:sym<dblq>")
+    if_null rx897_debug, debug_755
+    rx897_cur."!cursor_debug"("PASS", "quote:sym<dblq>", " at pos=", rx897_pos)
+  debug_755:
     .return (rx897_cur)
   rx897_restart:
-    if_null rx897_debug, debug_762
-    rx897_cur."!cursor_debug"("NEXT", "quote:sym</ />")
-  debug_762:
+.annotate 'line', 4
+    if_null rx897_debug, debug_756
+    rx897_cur."!cursor_debug"("NEXT", "quote:sym<dblq>")
+  debug_756:
   rx897_fail:
     (rx897_rep, rx897_pos, $I10, $P10) = rx897_cur."!mark_fail"(0)
     lt rx897_pos, -1, rx897_done
@@ -12016,116 +12198,133 @@
     jump $I10
   rx897_done:
     rx897_cur."!cursor_fail"()
-    if_null rx897_debug, debug_763
-    rx897_cur."!cursor_debug"("FAIL", "quote:sym</ />")
-  debug_763:
+    if_null rx897_debug, debug_757
+    rx897_cur."!cursor_debug"("FAIL", "quote:sym<dblq>")
+  debug_757:
     .return (rx897_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym</ />"  :subid("219_1283975947.19641") :method
-.annotate 'line', 0
-    $P899 = self."!PREFIX__!subrule"("newpad", "/")
-    new $P900, "ResizablePMCArray"
-    push $P900, $P899
-    .return ($P900)
+.sub "!PREFIX__quote:sym<dblq>"  :subid("215_1284728478.15265") :method
+.annotate 'line', 4
+    new $P899, "ResizablePMCArray"
+    push $P899, "\""
+    .return ($P899)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<$>"  :subid("220_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx903_tgt
-    .local int rx903_pos
-    .local int rx903_off
-    .local int rx903_eos
-    .local int rx903_rep
-    .local pmc rx903_cur
-    .local pmc rx903_debug
-    (rx903_cur, rx903_pos, rx903_tgt, $I10) = self."!cursor_start"()
-    getattribute rx903_debug, rx903_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx903_cur
-    .local pmc match
-    .lex "$/", match
-    length rx903_eos, rx903_tgt
-    gt rx903_pos, rx903_eos, rx903_done
-    set rx903_off, 0
-    lt rx903_pos, 2, rx903_start
-    sub rx903_off, rx903_pos, 1
-    substr rx903_tgt, rx903_tgt, rx903_off
-  rx903_start:
-    eq $I10, 1, rx903_restart
-    if_null rx903_debug, debug_764
-    rx903_cur."!cursor_debug"("START", "quote_escape:sym<$>")
-  debug_764:
+.sub "quote:sym<q>"  :subid("216_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx902_tgt
+    .local int rx902_pos
+    .local int rx902_off
+    .local int rx902_eos
+    .local int rx902_rep
+    .local pmc rx902_cur
+    .local pmc rx902_debug
+    (rx902_cur, rx902_pos, rx902_tgt, $I10) = self."!cursor_start"()
+    getattribute rx902_debug, rx902_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx902_cur
+    .local pmc match
+    .lex "$/", match
+    length rx902_eos, rx902_tgt
+    gt rx902_pos, rx902_eos, rx902_done
+    set rx902_off, 0
+    lt rx902_pos, 2, rx902_start
+    sub rx902_off, rx902_pos, 1
+    substr rx902_tgt, rx902_tgt, rx902_off
+  rx902_start:
+    eq $I10, 1, rx902_restart
+    if_null rx902_debug, debug_758
+    rx902_cur."!cursor_debug"("START", "quote:sym<q>")
+  debug_758:
     $I10 = self.'from'()
     ne $I10, -1, rxscan906_done
     goto rxscan906_scan
   rxscan906_loop:
-    ($P10) = rx903_cur."from"()
+    ($P10) = rx902_cur."from"()
     inc $P10
-    set rx903_pos, $P10
-    ge rx903_pos, rx903_eos, rxscan906_done
+    set rx902_pos, $P10
+    ge rx902_pos, rx902_eos, rxscan906_done
   rxscan906_scan:
     set_addr $I10, rxscan906_loop
-    rx903_cur."!mark_push"(0, rx903_pos, $I10)
+    rx902_cur."!mark_push"(0, rx902_pos, $I10)
   rxscan906_done:
-  # rx enumcharlist negate=0 zerowidth
-    ge rx903_pos, rx903_eos, rx903_fail
-    sub $I10, rx903_pos, rx903_off
-    substr $S10, rx903_tgt, $I10, 1
-    index $I11, "$", $S10
-    lt $I11, 0, rx903_fail
-  # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx903_cur."!cursor_pos"(rx903_pos)
-    $P10 = rx903_cur."quotemod_check"("s")
-    unless $P10, rx903_fail
-  # rx subrule "variable" subtype=capture negate=
-    rx903_cur."!cursor_pos"(rx903_pos)
-    $P10 = rx903_cur."variable"()
-    unless $P10, rx903_fail
-    rx903_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("variable")
-    rx903_pos = $P10."pos"()
+.annotate 'line', 427
+  # rx literal  "q"
+    add $I11, rx902_pos, 1
+    gt $I11, rx902_eos, rx902_fail
+    sub $I11, rx902_pos, rx902_off
+    ord $I11, rx902_tgt, $I11
+    ne $I11, 113, rx902_fail
+    add rx902_pos, 1
+  # rxanchor rwb
+    le rx902_pos, 0, rx902_fail
+    sub $I10, rx902_pos, rx902_off
+    is_cclass $I11, 8192, rx902_tgt, $I10
+    if $I11, rx902_fail
+    dec $I10
+    is_cclass $I11, 8192, rx902_tgt, $I10
+    unless $I11, rx902_fail
+  # rx enumcharlist negate=1 zerowidth
+    sub $I10, rx902_pos, rx902_off
+    substr $S10, rx902_tgt, $I10, 1
+    index $I11, "(", $S10
+    ge $I11, 0, rx902_fail
+  # rx subrule "ws" subtype=method negate=
+    rx902_cur."!cursor_pos"(rx902_pos)
+    $P10 = rx902_cur."ws"()
+    unless $P10, rx902_fail
+    rx902_pos = $P10."pos"()
+  # rx subrule "quote_EXPR" subtype=capture negate=
+    rx902_cur."!cursor_pos"(rx902_pos)
+    $P10 = rx902_cur."quote_EXPR"(":q")
+    unless $P10, rx902_fail
+    rx902_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("quote_EXPR")
+    rx902_pos = $P10."pos"()
   # rx pass
-    rx903_cur."!cursor_pass"(rx903_pos, "quote_escape:sym<$>")
-    if_null rx903_debug, debug_765
-    rx903_cur."!cursor_debug"("PASS", "quote_escape:sym<$>", " at pos=", rx903_pos)
-  debug_765:
-    .return (rx903_cur)
-  rx903_restart:
-    if_null rx903_debug, debug_766
-    rx903_cur."!cursor_debug"("NEXT", "quote_escape:sym<$>")
-  debug_766:
-  rx903_fail:
-    (rx903_rep, rx903_pos, $I10, $P10) = rx903_cur."!mark_fail"(0)
-    lt rx903_pos, -1, rx903_done
-    eq rx903_pos, -1, rx903_fail
-    jump $I10
-  rx903_done:
-    rx903_cur."!cursor_fail"()
-    if_null rx903_debug, debug_767
-    rx903_cur."!cursor_debug"("FAIL", "quote_escape:sym<$>")
-  debug_767:
-    .return (rx903_cur)
+    rx902_cur."!cursor_pass"(rx902_pos, "quote:sym<q>")
+    if_null rx902_debug, debug_759
+    rx902_cur."!cursor_debug"("PASS", "quote:sym<q>", " at pos=", rx902_pos)
+  debug_759:
+    .return (rx902_cur)
+  rx902_restart:
+.annotate 'line', 4
+    if_null rx902_debug, debug_760
+    rx902_cur."!cursor_debug"("NEXT", "quote:sym<q>")
+  debug_760:
+  rx902_fail:
+    (rx902_rep, rx902_pos, $I10, $P10) = rx902_cur."!mark_fail"(0)
+    lt rx902_pos, -1, rx902_done
+    eq rx902_pos, -1, rx902_fail
+    jump $I10
+  rx902_done:
+    rx902_cur."!cursor_fail"()
+    if_null rx902_debug, debug_761
+    rx902_cur."!cursor_debug"("FAIL", "quote:sym<q>")
+  debug_761:
+    .return (rx902_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<$>"  :subid("221_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__quote:sym<q>"  :subid("217_1284728478.15265") :method
+.annotate 'line', 4
+    $P904 = self."!PREFIX__!subrule"("ws", "q")
     new $P905, "ResizablePMCArray"
-    push $P905, "$"
+    push $P905, $P904
     .return ($P905)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<{ }>"  :subid("222_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "quote:sym<qq>"  :subid("218_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx908_tgt
     .local int rx908_pos
     .local int rx908_off
@@ -12146,48 +12345,65 @@
     substr rx908_tgt, rx908_tgt, rx908_off
   rx908_start:
     eq $I10, 1, rx908_restart
-    if_null rx908_debug, debug_768
-    rx908_cur."!cursor_debug"("START", "quote_escape:sym<{ }>")
-  debug_768:
+    if_null rx908_debug, debug_762
+    rx908_cur."!cursor_debug"("START", "quote:sym<qq>")
+  debug_762:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan911_done
-    goto rxscan911_scan
-  rxscan911_loop:
+    ne $I10, -1, rxscan912_done
+    goto rxscan912_scan
+  rxscan912_loop:
     ($P10) = rx908_cur."from"()
     inc $P10
     set rx908_pos, $P10
-    ge rx908_pos, rx908_eos, rxscan911_done
-  rxscan911_scan:
-    set_addr $I10, rxscan911_loop
+    ge rx908_pos, rx908_eos, rxscan912_done
+  rxscan912_scan:
+    set_addr $I10, rxscan912_loop
     rx908_cur."!mark_push"(0, rx908_pos, $I10)
-  rxscan911_done:
-  # rx enumcharlist negate=0 zerowidth
-    ge rx908_pos, rx908_eos, rx908_fail
+  rxscan912_done:
+.annotate 'line', 428
+  # rx literal  "qq"
+    add $I11, rx908_pos, 2
+    gt $I11, rx908_eos, rx908_fail
+    sub $I11, rx908_pos, rx908_off
+    substr $S10, rx908_tgt, $I11, 2
+    ne $S10, "qq", rx908_fail
+    add rx908_pos, 2
+  # rxanchor rwb
+    le rx908_pos, 0, rx908_fail
+    sub $I10, rx908_pos, rx908_off
+    is_cclass $I11, 8192, rx908_tgt, $I10
+    if $I11, rx908_fail
+    dec $I10
+    is_cclass $I11, 8192, rx908_tgt, $I10
+    unless $I11, rx908_fail
+  # rx enumcharlist negate=1 zerowidth
     sub $I10, rx908_pos, rx908_off
     substr $S10, rx908_tgt, $I10, 1
-    index $I11, "{", $S10
-    lt $I11, 0, rx908_fail
-  # rx subrule "quotemod_check" subtype=zerowidth negate=
+    index $I11, "(", $S10
+    ge $I11, 0, rx908_fail
+  # rx subrule "ws" subtype=method negate=
     rx908_cur."!cursor_pos"(rx908_pos)
-    $P10 = rx908_cur."quotemod_check"("c")
+    $P10 = rx908_cur."ws"()
     unless $P10, rx908_fail
-  # rx subrule "block" subtype=capture negate=
+    rx908_pos = $P10."pos"()
+  # rx subrule "quote_EXPR" subtype=capture negate=
     rx908_cur."!cursor_pos"(rx908_pos)
-    $P10 = rx908_cur."block"()
+    $P10 = rx908_cur."quote_EXPR"(":qq")
     unless $P10, rx908_fail
     rx908_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("block")
+    $P10."!cursor_names"("quote_EXPR")
     rx908_pos = $P10."pos"()
   # rx pass
-    rx908_cur."!cursor_pass"(rx908_pos, "quote_escape:sym<{ }>")
-    if_null rx908_debug, debug_769
-    rx908_cur."!cursor_debug"("PASS", "quote_escape:sym<{ }>", " at pos=", rx908_pos)
-  debug_769:
+    rx908_cur."!cursor_pass"(rx908_pos, "quote:sym<qq>")
+    if_null rx908_debug, debug_763
+    rx908_cur."!cursor_debug"("PASS", "quote:sym<qq>", " at pos=", rx908_pos)
+  debug_763:
     .return (rx908_cur)
   rx908_restart:
-    if_null rx908_debug, debug_770
-    rx908_cur."!cursor_debug"("NEXT", "quote_escape:sym<{ }>")
-  debug_770:
+.annotate 'line', 4
+    if_null rx908_debug, debug_764
+    rx908_cur."!cursor_debug"("NEXT", "quote:sym<qq>")
+  debug_764:
   rx908_fail:
     (rx908_rep, rx908_pos, $I10, $P10) = rx908_cur."!mark_fail"(0)
     lt rx908_pos, -1, rx908_done
@@ -12195,222 +12411,228 @@
     jump $I10
   rx908_done:
     rx908_cur."!cursor_fail"()
-    if_null rx908_debug, debug_771
-    rx908_cur."!cursor_debug"("FAIL", "quote_escape:sym<{ }>")
-  debug_771:
+    if_null rx908_debug, debug_765
+    rx908_cur."!cursor_debug"("FAIL", "quote:sym<qq>")
+  debug_765:
     .return (rx908_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("223_1283975947.19641") :method
-.annotate 'line', 0
-    new $P910, "ResizablePMCArray"
-    push $P910, "{"
-    .return ($P910)
+.sub "!PREFIX__quote:sym<qq>"  :subid("219_1284728478.15265") :method
+.annotate 'line', 4
+    $P910 = self."!PREFIX__!subrule"("ws", "qq")
+    new $P911, "ResizablePMCArray"
+    push $P911, $P910
+    .return ($P911)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<esc>"  :subid("224_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx913_tgt
-    .local int rx913_pos
-    .local int rx913_off
-    .local int rx913_eos
-    .local int rx913_rep
-    .local pmc rx913_cur
-    .local pmc rx913_debug
-    (rx913_cur, rx913_pos, rx913_tgt, $I10) = self."!cursor_start"()
-    getattribute rx913_debug, rx913_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx913_cur
-    .local pmc match
-    .lex "$/", match
-    length rx913_eos, rx913_tgt
-    gt rx913_pos, rx913_eos, rx913_done
-    set rx913_off, 0
-    lt rx913_pos, 2, rx913_start
-    sub rx913_off, rx913_pos, 1
-    substr rx913_tgt, rx913_tgt, rx913_off
-  rx913_start:
-    eq $I10, 1, rx913_restart
-    if_null rx913_debug, debug_772
-    rx913_cur."!cursor_debug"("START", "quote_escape:sym<esc>")
-  debug_772:
+.sub "quote:sym<Q>"  :subid("220_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx914_tgt
+    .local int rx914_pos
+    .local int rx914_off
+    .local int rx914_eos
+    .local int rx914_rep
+    .local pmc rx914_cur
+    .local pmc rx914_debug
+    (rx914_cur, rx914_pos, rx914_tgt, $I10) = self."!cursor_start"()
+    getattribute rx914_debug, rx914_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx914_cur
+    .local pmc match
+    .lex "$/", match
+    length rx914_eos, rx914_tgt
+    gt rx914_pos, rx914_eos, rx914_done
+    set rx914_off, 0
+    lt rx914_pos, 2, rx914_start
+    sub rx914_off, rx914_pos, 1
+    substr rx914_tgt, rx914_tgt, rx914_off
+  rx914_start:
+    eq $I10, 1, rx914_restart
+    if_null rx914_debug, debug_766
+    rx914_cur."!cursor_debug"("START", "quote:sym<Q>")
+  debug_766:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan916_done
-    goto rxscan916_scan
-  rxscan916_loop:
-    ($P10) = rx913_cur."from"()
-    inc $P10
-    set rx913_pos, $P10
-    ge rx913_pos, rx913_eos, rxscan916_done
-  rxscan916_scan:
-    set_addr $I10, rxscan916_loop
-    rx913_cur."!mark_push"(0, rx913_pos, $I10)
-  rxscan916_done:
-  # rx literal  "\\e"
-    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
-    add rx913_pos, 2
-  # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx913_cur."!cursor_pos"(rx913_pos)
-    $P10 = rx913_cur."quotemod_check"("b")
-    unless $P10, rx913_fail
-  # rx pass
-    rx913_cur."!cursor_pass"(rx913_pos, "quote_escape:sym<esc>")
-    if_null rx913_debug, debug_773
-    rx913_cur."!cursor_debug"("PASS", "quote_escape:sym<esc>", " at pos=", rx913_pos)
-  debug_773:
-    .return (rx913_cur)
-  rx913_restart:
-    if_null rx913_debug, debug_774
-    rx913_cur."!cursor_debug"("NEXT", "quote_escape:sym<esc>")
-  debug_774:
-  rx913_fail:
-    (rx913_rep, rx913_pos, $I10, $P10) = rx913_cur."!mark_fail"(0)
-    lt rx913_pos, -1, rx913_done
-    eq rx913_pos, -1, rx913_fail
-    jump $I10
-  rx913_done:
-    rx913_cur."!cursor_fail"()
-    if_null rx913_debug, debug_775
-    rx913_cur."!cursor_debug"("FAIL", "quote_escape:sym<esc>")
-  debug_775:
-    .return (rx913_cur)
+    ne $I10, -1, rxscan918_done
+    goto rxscan918_scan
+  rxscan918_loop:
+    ($P10) = rx914_cur."from"()
+    inc $P10
+    set rx914_pos, $P10
+    ge rx914_pos, rx914_eos, rxscan918_done
+  rxscan918_scan:
+    set_addr $I10, rxscan918_loop
+    rx914_cur."!mark_push"(0, rx914_pos, $I10)
+  rxscan918_done:
+.annotate 'line', 429
+  # rx literal  "Q"
+    add $I11, rx914_pos, 1
+    gt $I11, rx914_eos, rx914_fail
+    sub $I11, rx914_pos, rx914_off
+    ord $I11, rx914_tgt, $I11
+    ne $I11, 81, rx914_fail
+    add rx914_pos, 1
+  # rxanchor rwb
+    le rx914_pos, 0, rx914_fail
+    sub $I10, rx914_pos, rx914_off
+    is_cclass $I11, 8192, rx914_tgt, $I10
+    if $I11, rx914_fail
+    dec $I10
+    is_cclass $I11, 8192, rx914_tgt, $I10
+    unless $I11, rx914_fail
+  # rx enumcharlist negate=1 zerowidth
+    sub $I10, rx914_pos, rx914_off
+    substr $S10, rx914_tgt, $I10, 1
+    index $I11, "(", $S10
+    ge $I11, 0, rx914_fail
+  # rx subrule "ws" subtype=method negate=
+    rx914_cur."!cursor_pos"(rx914_pos)
+    $P10 = rx914_cur."ws"()
+    unless $P10, rx914_fail
+    rx914_pos = $P10."pos"()
+  # rx subrule "quote_EXPR" subtype=capture negate=
+    rx914_cur."!cursor_pos"(rx914_pos)
+    $P10 = rx914_cur."quote_EXPR"()
+    unless $P10, rx914_fail
+    rx914_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("quote_EXPR")
+    rx914_pos = $P10."pos"()
+  # rx pass
+    rx914_cur."!cursor_pass"(rx914_pos, "quote:sym<Q>")
+    if_null rx914_debug, debug_767
+    rx914_cur."!cursor_debug"("PASS", "quote:sym<Q>", " at pos=", rx914_pos)
+  debug_767:
+    .return (rx914_cur)
+  rx914_restart:
+.annotate 'line', 4
+    if_null rx914_debug, debug_768
+    rx914_cur."!cursor_debug"("NEXT", "quote:sym<Q>")
+  debug_768:
+  rx914_fail:
+    (rx914_rep, rx914_pos, $I10, $P10) = rx914_cur."!mark_fail"(0)
+    lt rx914_pos, -1, rx914_done
+    eq rx914_pos, -1, rx914_fail
+    jump $I10
+  rx914_done:
+    rx914_cur."!cursor_fail"()
+    if_null rx914_debug, debug_769
+    rx914_cur."!cursor_debug"("FAIL", "quote:sym<Q>")
+  debug_769:
+    .return (rx914_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("225_1283975947.19641") :method
-.annotate 'line', 0
-    new $P915, "ResizablePMCArray"
-    push $P915, "\\e"
-    .return ($P915)
+.sub "!PREFIX__quote:sym<Q>"  :subid("221_1284728478.15265") :method
+.annotate 'line', 4
+    $P916 = self."!PREFIX__!subrule"("ws", "Q")
+    new $P917, "ResizablePMCArray"
+    push $P917, $P916
+    .return ($P917)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<( )>"  :subid("226_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx918_tgt
-    .local int rx918_pos
-    .local int rx918_off
-    .local int rx918_eos
-    .local int rx918_rep
-    .local pmc rx918_cur
-    .local pmc rx918_debug
-    (rx918_cur, rx918_pos, rx918_tgt, $I10) = self."!cursor_start"()
-    rx918_cur."!cursor_caparray"("EXPR")
-    getattribute rx918_debug, rx918_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx918_cur
-    .local pmc match
-    .lex "$/", match
-    length rx918_eos, rx918_tgt
-    gt rx918_pos, rx918_eos, rx918_done
-    set rx918_off, 0
-    lt rx918_pos, 2, rx918_start
-    sub rx918_off, rx918_pos, 1
-    substr rx918_tgt, rx918_tgt, rx918_off
-  rx918_start:
-    eq $I10, 1, rx918_restart
-    if_null rx918_debug, debug_776
-    rx918_cur."!cursor_debug"("START", "circumfix:sym<( )>")
-  debug_776:
+.sub "quote:sym<Q:PIR>"  :subid("222_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx920_tgt
+    .local int rx920_pos
+    .local int rx920_off
+    .local int rx920_eos
+    .local int rx920_rep
+    .local pmc rx920_cur
+    .local pmc rx920_debug
+    (rx920_cur, rx920_pos, rx920_tgt, $I10) = self."!cursor_start"()
+    getattribute rx920_debug, rx920_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx920_cur
+    .local pmc match
+    .lex "$/", match
+    length rx920_eos, rx920_tgt
+    gt rx920_pos, rx920_eos, rx920_done
+    set rx920_off, 0
+    lt rx920_pos, 2, rx920_start
+    sub rx920_off, rx920_pos, 1
+    substr rx920_tgt, rx920_tgt, rx920_off
+  rx920_start:
+    eq $I10, 1, rx920_restart
+    if_null rx920_debug, debug_770
+    rx920_cur."!cursor_debug"("START", "quote:sym<Q:PIR>")
+  debug_770:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan922_done
-    goto rxscan922_scan
-  rxscan922_loop:
-    ($P10) = rx918_cur."from"()
-    inc $P10
-    set rx918_pos, $P10
-    ge rx918_pos, rx918_eos, rxscan922_done
-  rxscan922_scan:
-    set_addr $I10, rxscan922_loop
-    rx918_cur."!mark_push"(0, rx918_pos, $I10)
-  rxscan922_done:
-  # rx literal  "("
-    add $I11, rx918_pos, 1
-    gt $I11, rx918_eos, rx918_fail
-    sub $I11, rx918_pos, rx918_off
-    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)
-    $P10 = rx918_cur."ws"()
-    unless $P10, rx918_fail
-    rx918_pos = $P10."pos"()
-  # rx rxquantr923 ** 0..1
-    set_addr $I10, rxquantr923_done
-    rx918_cur."!mark_push"(0, rx918_pos, $I10)
-  rxquantr923_loop:
-  # rx subrule "EXPR" subtype=capture negate=
-    rx918_cur."!cursor_pos"(rx918_pos)
-    $P10 = rx918_cur."EXPR"()
-    unless $P10, rx918_fail
-    goto rxsubrule924_pass
-  rxsubrule924_back:
-    $P10 = $P10."!cursor_next"()
-    unless $P10, rx918_fail
-  rxsubrule924_pass:
-    set_addr $I10, rxsubrule924_back
-    rx918_cur."!mark_push"(0, rx918_pos, $I10, $P10)
-    $P10."!cursor_names"("EXPR")
-    rx918_pos = $P10."pos"()
-    set_addr $I10, rxquantr923_done
-    (rx918_rep) = rx918_cur."!mark_commit"($I10)
-  rxquantr923_done:
-  # rx literal  ")"
-    add $I11, rx918_pos, 1
-    gt $I11, rx918_eos, rx918_fail
-    sub $I11, rx918_pos, rx918_off
-    ord $I11, rx918_tgt, $I11
-    ne $I11, 41, rx918_fail
-    add rx918_pos, 1
-  # rx pass
-    rx918_cur."!cursor_pass"(rx918_pos, "circumfix:sym<( )>")
-    if_null rx918_debug, debug_777
-    rx918_cur."!cursor_debug"("PASS", "circumfix:sym<( )>", " at pos=", rx918_pos)
-  debug_777:
-    .return (rx918_cur)
-  rx918_restart:
-    if_null rx918_debug, debug_778
-    rx918_cur."!cursor_debug"("NEXT", "circumfix:sym<( )>")
-  debug_778:
-  rx918_fail:
-    (rx918_rep, rx918_pos, $I10, $P10) = rx918_cur."!mark_fail"(0)
-    lt rx918_pos, -1, rx918_done
-    eq rx918_pos, -1, rx918_fail
-    jump $I10
-  rx918_done:
-    rx918_cur."!cursor_fail"()
-    if_null rx918_debug, debug_779
-    rx918_cur."!cursor_debug"("FAIL", "circumfix:sym<( )>")
-  debug_779:
-    .return (rx918_cur)
+    ne $I10, -1, rxscan924_done
+    goto rxscan924_scan
+  rxscan924_loop:
+    ($P10) = rx920_cur."from"()
+    inc $P10
+    set rx920_pos, $P10
+    ge rx920_pos, rx920_eos, rxscan924_done
+  rxscan924_scan:
+    set_addr $I10, rxscan924_loop
+    rx920_cur."!mark_push"(0, rx920_pos, $I10)
+  rxscan924_done:
+.annotate 'line', 430
+  # rx literal  "Q:PIR"
+    add $I11, rx920_pos, 5
+    gt $I11, rx920_eos, rx920_fail
+    sub $I11, rx920_pos, rx920_off
+    substr $S10, rx920_tgt, $I11, 5
+    ne $S10, "Q:PIR", rx920_fail
+    add rx920_pos, 5
+  # rx subrule "ws" subtype=method negate=
+    rx920_cur."!cursor_pos"(rx920_pos)
+    $P10 = rx920_cur."ws"()
+    unless $P10, rx920_fail
+    rx920_pos = $P10."pos"()
+  # rx subrule "quote_EXPR" subtype=capture negate=
+    rx920_cur."!cursor_pos"(rx920_pos)
+    $P10 = rx920_cur."quote_EXPR"()
+    unless $P10, rx920_fail
+    rx920_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("quote_EXPR")
+    rx920_pos = $P10."pos"()
+  # rx pass
+    rx920_cur."!cursor_pass"(rx920_pos, "quote:sym<Q:PIR>")
+    if_null rx920_debug, debug_771
+    rx920_cur."!cursor_debug"("PASS", "quote:sym<Q:PIR>", " at pos=", rx920_pos)
+  debug_771:
+    .return (rx920_cur)
+  rx920_restart:
+.annotate 'line', 4
+    if_null rx920_debug, debug_772
+    rx920_cur."!cursor_debug"("NEXT", "quote:sym<Q:PIR>")
+  debug_772:
+  rx920_fail:
+    (rx920_rep, rx920_pos, $I10, $P10) = rx920_cur."!mark_fail"(0)
+    lt rx920_pos, -1, rx920_done
+    eq rx920_pos, -1, rx920_fail
+    jump $I10
+  rx920_done:
+    rx920_cur."!cursor_fail"()
+    if_null rx920_debug, debug_773
+    rx920_cur."!cursor_debug"("FAIL", "quote:sym<Q:PIR>")
+  debug_773:
+    .return (rx920_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<( )>"  :subid("227_1283975947.19641") :method
-.annotate 'line', 0
-    $P920 = self."!PREFIX__!subrule"("ws", "(")
-    new $P921, "ResizablePMCArray"
-    push $P921, $P920
-    .return ($P921)
+.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("223_1284728478.15265") :method
+.annotate 'line', 4
+    $P922 = self."!PREFIX__!subrule"("ws", "Q:PIR")
+    new $P923, "ResizablePMCArray"
+    push $P923, $P922
+    .return ($P923)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<[ ]>"  :subid("228_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "quote:sym</ />"  :subid("224_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
     .local string rx926_tgt
     .local int rx926_pos
     .local int rx926_off
@@ -12419,7 +12641,6 @@
     .local pmc rx926_cur
     .local pmc rx926_debug
     (rx926_cur, rx926_pos, rx926_tgt, $I10) = self."!cursor_start"()
-    rx926_cur."!cursor_caparray"("EXPR")
     getattribute rx926_debug, rx926_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx926_cur
     .local pmc match
@@ -12432,9 +12653,9 @@
     substr rx926_tgt, rx926_tgt, rx926_off
   rx926_start:
     eq $I10, 1, rx926_restart
-    if_null rx926_debug, debug_780
-    rx926_cur."!cursor_debug"("START", "circumfix:sym<[ ]>")
-  debug_780:
+    if_null rx926_debug, debug_774
+    rx926_cur."!cursor_debug"("START", "quote:sym</ />")
+  debug_774:
     $I10 = self.'from'()
     ne $I10, -1, rxscan930_done
     goto rxscan930_scan
@@ -12447,55 +12668,52 @@
     set_addr $I10, rxscan930_loop
     rx926_cur."!mark_push"(0, rx926_pos, $I10)
   rxscan930_done:
-  # rx literal  "["
+.annotate 'line', 432
+  # rx literal  "/"
     add $I11, rx926_pos, 1
     gt $I11, rx926_eos, rx926_fail
     sub $I11, rx926_pos, rx926_off
     ord $I11, rx926_tgt, $I11
-    ne $I11, 91, rx926_fail
+    ne $I11, 47, rx926_fail
     add rx926_pos, 1
-  # rx subrule "ws" subtype=method negate=
+.annotate 'line', 433
+  # rx subrule "newpad" subtype=method negate=
     rx926_cur."!cursor_pos"(rx926_pos)
-    $P10 = rx926_cur."ws"()
+    $P10 = rx926_cur."newpad"()
     unless $P10, rx926_fail
     rx926_pos = $P10."pos"()
-  # rx rxquantr931 ** 0..1
-    set_addr $I10, rxquantr931_done
-    rx926_cur."!mark_push"(0, rx926_pos, $I10)
-  rxquantr931_loop:
-  # rx subrule "EXPR" subtype=capture negate=
+.annotate 'line', 434
+  # rx reduce name="quote:sym</ />" key="open"
     rx926_cur."!cursor_pos"(rx926_pos)
-    $P10 = rx926_cur."EXPR"()
-    unless $P10, rx926_fail
-    goto rxsubrule932_pass
-  rxsubrule932_back:
-    $P10 = $P10."!cursor_next"()
+    rx926_cur."!reduce"("quote:sym</ />", "open")
+.annotate 'line', 435
+  # rx subrule "LANG" subtype=capture negate=
+    rx926_cur."!cursor_pos"(rx926_pos)
+    $P10 = rx926_cur."LANG"("Regex", "nibbler")
     unless $P10, rx926_fail
-  rxsubrule932_pass:
-    set_addr $I10, rxsubrule932_back
-    rx926_cur."!mark_push"(0, rx926_pos, $I10, $P10)
-    $P10."!cursor_names"("EXPR")
+    rx926_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("p6regex")
     rx926_pos = $P10."pos"()
-    set_addr $I10, rxquantr931_done
-    (rx926_rep) = rx926_cur."!mark_commit"($I10)
-  rxquantr931_done:
-  # rx literal  "]"
+.annotate 'line', 436
+  # rx literal  "/"
     add $I11, rx926_pos, 1
     gt $I11, rx926_eos, rx926_fail
     sub $I11, rx926_pos, rx926_off
     ord $I11, rx926_tgt, $I11
-    ne $I11, 93, rx926_fail
+    ne $I11, 47, rx926_fail
     add rx926_pos, 1
+.annotate 'line', 431
   # rx pass
-    rx926_cur."!cursor_pass"(rx926_pos, "circumfix:sym<[ ]>")
-    if_null rx926_debug, debug_781
-    rx926_cur."!cursor_debug"("PASS", "circumfix:sym<[ ]>", " at pos=", rx926_pos)
-  debug_781:
+    rx926_cur."!cursor_pass"(rx926_pos, "quote:sym</ />")
+    if_null rx926_debug, debug_775
+    rx926_cur."!cursor_debug"("PASS", "quote:sym</ />", " at pos=", rx926_pos)
+  debug_775:
     .return (rx926_cur)
   rx926_restart:
-    if_null rx926_debug, debug_782
-    rx926_cur."!cursor_debug"("NEXT", "circumfix:sym<[ ]>")
-  debug_782:
+.annotate 'line', 4
+    if_null rx926_debug, debug_776
+    rx926_cur."!cursor_debug"("NEXT", "quote:sym</ />")
+  debug_776:
   rx926_fail:
     (rx926_rep, rx926_pos, $I10, $P10) = rx926_cur."!mark_fail"(0)
     lt rx926_pos, -1, rx926_done
@@ -12503,18 +12721,18 @@
     jump $I10
   rx926_done:
     rx926_cur."!cursor_fail"()
-    if_null rx926_debug, debug_783
-    rx926_cur."!cursor_debug"("FAIL", "circumfix:sym<[ ]>")
-  debug_783:
+    if_null rx926_debug, debug_777
+    rx926_cur."!cursor_debug"("FAIL", "quote:sym</ />")
+  debug_777:
     .return (rx926_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("229_1283975947.19641") :method
-.annotate 'line', 0
-    $P928 = self."!PREFIX__!subrule"("ws", "[")
+.sub "!PREFIX__quote:sym</ />"  :subid("225_1284728478.15265") :method
+.annotate 'line', 4
+    $P928 = self."!PREFIX__!subrule"("newpad", "/")
     new $P929, "ResizablePMCArray"
     push $P929, $P928
     .return ($P929)
@@ -12522,1128 +12740,1137 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<ang>"  :subid("230_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx934_tgt
-    .local int rx934_pos
-    .local int rx934_off
-    .local int rx934_eos
-    .local int rx934_rep
-    .local pmc rx934_cur
-    .local pmc rx934_debug
-    (rx934_cur, rx934_pos, rx934_tgt, $I10) = self."!cursor_start"()
-    getattribute rx934_debug, rx934_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx934_cur
-    .local pmc match
-    .lex "$/", match
-    length rx934_eos, rx934_tgt
-    gt rx934_pos, rx934_eos, rx934_done
-    set rx934_off, 0
-    lt rx934_pos, 2, rx934_start
-    sub rx934_off, rx934_pos, 1
-    substr rx934_tgt, rx934_tgt, rx934_off
-  rx934_start:
-    eq $I10, 1, rx934_restart
-    if_null rx934_debug, debug_784
-    rx934_cur."!cursor_debug"("START", "circumfix:sym<ang>")
-  debug_784:
+.sub "quote_escape:sym<$>"  :subid("226_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx932_tgt
+    .local int rx932_pos
+    .local int rx932_off
+    .local int rx932_eos
+    .local int rx932_rep
+    .local pmc rx932_cur
+    .local pmc rx932_debug
+    (rx932_cur, rx932_pos, rx932_tgt, $I10) = self."!cursor_start"()
+    getattribute rx932_debug, rx932_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx932_cur
+    .local pmc match
+    .lex "$/", match
+    length rx932_eos, rx932_tgt
+    gt rx932_pos, rx932_eos, rx932_done
+    set rx932_off, 0
+    lt rx932_pos, 2, rx932_start
+    sub rx932_off, rx932_pos, 1
+    substr rx932_tgt, rx932_tgt, rx932_off
+  rx932_start:
+    eq $I10, 1, rx932_restart
+    if_null rx932_debug, debug_778
+    rx932_cur."!cursor_debug"("START", "quote_escape:sym<$>")
+  debug_778:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan937_done
-    goto rxscan937_scan
-  rxscan937_loop:
-    ($P10) = rx934_cur."from"()
-    inc $P10
-    set rx934_pos, $P10
-    ge rx934_pos, rx934_eos, rxscan937_done
-  rxscan937_scan:
-    set_addr $I10, rxscan937_loop
-    rx934_cur."!mark_push"(0, rx934_pos, $I10)
-  rxscan937_done:
+    ne $I10, -1, rxscan935_done
+    goto rxscan935_scan
+  rxscan935_loop:
+    ($P10) = rx932_cur."from"()
+    inc $P10
+    set rx932_pos, $P10
+    ge rx932_pos, rx932_eos, rxscan935_done
+  rxscan935_scan:
+    set_addr $I10, rxscan935_loop
+    rx932_cur."!mark_push"(0, rx932_pos, $I10)
+  rxscan935_done:
+.annotate 'line', 439
   # rx enumcharlist negate=0 zerowidth
-    ge rx934_pos, rx934_eos, rx934_fail
-    sub $I10, rx934_pos, rx934_off
-    substr $S10, rx934_tgt, $I10, 1
-    index $I11, "<", $S10
-    lt $I11, 0, rx934_fail
-  # rx subrule "quote_EXPR" subtype=capture negate=
-    rx934_cur."!cursor_pos"(rx934_pos)
-    $P10 = rx934_cur."quote_EXPR"(":q", ":w")
-    unless $P10, rx934_fail
-    rx934_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
-    rx934_pos = $P10."pos"()
+    sub $I10, rx932_pos, rx932_off
+    substr $S10, rx932_tgt, $I10, 1
+    index $I11, "$", $S10
+    lt $I11, 0, rx932_fail
+  # rx subrule "quotemod_check" subtype=zerowidth negate=
+    rx932_cur."!cursor_pos"(rx932_pos)
+    $P10 = rx932_cur."quotemod_check"("s")
+    unless $P10, rx932_fail
+  # rx subrule "variable" subtype=capture negate=
+    rx932_cur."!cursor_pos"(rx932_pos)
+    $P10 = rx932_cur."variable"()
+    unless $P10, rx932_fail
+    rx932_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("variable")
+    rx932_pos = $P10."pos"()
   # rx pass
-    rx934_cur."!cursor_pass"(rx934_pos, "circumfix:sym<ang>")
-    if_null rx934_debug, debug_785
-    rx934_cur."!cursor_debug"("PASS", "circumfix:sym<ang>", " at pos=", rx934_pos)
-  debug_785:
-    .return (rx934_cur)
-  rx934_restart:
-    if_null rx934_debug, debug_786
-    rx934_cur."!cursor_debug"("NEXT", "circumfix:sym<ang>")
-  debug_786:
-  rx934_fail:
-    (rx934_rep, rx934_pos, $I10, $P10) = rx934_cur."!mark_fail"(0)
-    lt rx934_pos, -1, rx934_done
-    eq rx934_pos, -1, rx934_fail
-    jump $I10
-  rx934_done:
-    rx934_cur."!cursor_fail"()
-    if_null rx934_debug, debug_787
-    rx934_cur."!cursor_debug"("FAIL", "circumfix:sym<ang>")
-  debug_787:
-    .return (rx934_cur)
+    rx932_cur."!cursor_pass"(rx932_pos, "quote_escape:sym<$>")
+    if_null rx932_debug, debug_779
+    rx932_cur."!cursor_debug"("PASS", "quote_escape:sym<$>", " at pos=", rx932_pos)
+  debug_779:
+    .return (rx932_cur)
+  rx932_restart:
+.annotate 'line', 4
+    if_null rx932_debug, debug_780
+    rx932_cur."!cursor_debug"("NEXT", "quote_escape:sym<$>")
+  debug_780:
+  rx932_fail:
+    (rx932_rep, rx932_pos, $I10, $P10) = rx932_cur."!mark_fail"(0)
+    lt rx932_pos, -1, rx932_done
+    eq rx932_pos, -1, rx932_fail
+    jump $I10
+  rx932_done:
+    rx932_cur."!cursor_fail"()
+    if_null rx932_debug, debug_781
+    rx932_cur."!cursor_debug"("FAIL", "quote_escape:sym<$>")
+  debug_781:
+    .return (rx932_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<ang>"  :subid("231_1283975947.19641") :method
-.annotate 'line', 0
-    new $P936, "ResizablePMCArray"
-    push $P936, "<"
-    .return ($P936)
+.sub "!PREFIX__quote_escape:sym<$>"  :subid("227_1284728478.15265") :method
+.annotate 'line', 4
+    new $P934, "ResizablePMCArray"
+    push $P934, "$"
+    .return ($P934)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("232_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx939_tgt
-    .local int rx939_pos
-    .local int rx939_off
-    .local int rx939_eos
-    .local int rx939_rep
-    .local pmc rx939_cur
-    .local pmc rx939_debug
-    (rx939_cur, rx939_pos, rx939_tgt, $I10) = self."!cursor_start"()
-    getattribute rx939_debug, rx939_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx939_cur
-    .local pmc match
-    .lex "$/", match
-    length rx939_eos, rx939_tgt
-    gt rx939_pos, rx939_eos, rx939_done
-    set rx939_off, 0
-    lt rx939_pos, 2, rx939_start
-    sub rx939_off, rx939_pos, 1
-    substr rx939_tgt, rx939_tgt, rx939_off
-  rx939_start:
-    eq $I10, 1, rx939_restart
-    if_null rx939_debug, debug_788
-    rx939_cur."!cursor_debug"("START", unicode:"circumfix:sym<\x{ab} \x{bb}>")
-  debug_788:
+.sub "quote_escape:sym<{ }>"  :subid("228_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx937_tgt
+    .local int rx937_pos
+    .local int rx937_off
+    .local int rx937_eos
+    .local int rx937_rep
+    .local pmc rx937_cur
+    .local pmc rx937_debug
+    (rx937_cur, rx937_pos, rx937_tgt, $I10) = self."!cursor_start"()
+    getattribute rx937_debug, rx937_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx937_cur
+    .local pmc match
+    .lex "$/", match
+    length rx937_eos, rx937_tgt
+    gt rx937_pos, rx937_eos, rx937_done
+    set rx937_off, 0
+    lt rx937_pos, 2, rx937_start
+    sub rx937_off, rx937_pos, 1
+    substr rx937_tgt, rx937_tgt, rx937_off
+  rx937_start:
+    eq $I10, 1, rx937_restart
+    if_null rx937_debug, debug_782
+    rx937_cur."!cursor_debug"("START", "quote_escape:sym<{ }>")
+  debug_782:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan942_done
-    goto rxscan942_scan
-  rxscan942_loop:
-    ($P10) = rx939_cur."from"()
-    inc $P10
-    set rx939_pos, $P10
-    ge rx939_pos, rx939_eos, rxscan942_done
-  rxscan942_scan:
-    set_addr $I10, rxscan942_loop
-    rx939_cur."!mark_push"(0, rx939_pos, $I10)
-  rxscan942_done:
+    ne $I10, -1, rxscan940_done
+    goto rxscan940_scan
+  rxscan940_loop:
+    ($P10) = rx937_cur."from"()
+    inc $P10
+    set rx937_pos, $P10
+    ge rx937_pos, rx937_eos, rxscan940_done
+  rxscan940_scan:
+    set_addr $I10, rxscan940_loop
+    rx937_cur."!mark_push"(0, rx937_pos, $I10)
+  rxscan940_done:
+.annotate 'line', 440
   # rx enumcharlist negate=0 zerowidth
-    ge rx939_pos, rx939_eos, rx939_fail
-    sub $I10, rx939_pos, rx939_off
-    substr $S10, rx939_tgt, $I10, 1
-    index $I11, unicode:"\x{ab}", $S10
-    lt $I11, 0, rx939_fail
-  # rx subrule "quote_EXPR" subtype=capture negate=
-    rx939_cur."!cursor_pos"(rx939_pos)
-    $P10 = rx939_cur."quote_EXPR"(":qq", ":w")
-    unless $P10, rx939_fail
-    rx939_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
-    rx939_pos = $P10."pos"()
+    sub $I10, rx937_pos, rx937_off
+    substr $S10, rx937_tgt, $I10, 1
+    index $I11, "{", $S10
+    lt $I11, 0, rx937_fail
+  # rx subrule "quotemod_check" subtype=zerowidth negate=
+    rx937_cur."!cursor_pos"(rx937_pos)
+    $P10 = rx937_cur."quotemod_check"("c")
+    unless $P10, rx937_fail
+  # rx subrule "block" subtype=capture negate=
+    rx937_cur."!cursor_pos"(rx937_pos)
+    $P10 = rx937_cur."block"()
+    unless $P10, rx937_fail
+    rx937_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("block")
+    rx937_pos = $P10."pos"()
   # rx pass
-    rx939_cur."!cursor_pass"(rx939_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
-    if_null rx939_debug, debug_789
-    rx939_cur."!cursor_debug"("PASS", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx939_pos)
-  debug_789:
-    .return (rx939_cur)
-  rx939_restart:
-    if_null rx939_debug, debug_790
-    rx939_cur."!cursor_debug"("NEXT", unicode:"circumfix:sym<\x{ab} \x{bb}>")
-  debug_790:
-  rx939_fail:
-    (rx939_rep, rx939_pos, $I10, $P10) = rx939_cur."!mark_fail"(0)
-    lt rx939_pos, -1, rx939_done
-    eq rx939_pos, -1, rx939_fail
-    jump $I10
-  rx939_done:
-    rx939_cur."!cursor_fail"()
-    if_null rx939_debug, debug_791
-    rx939_cur."!cursor_debug"("FAIL", unicode:"circumfix:sym<\x{ab} \x{bb}>")
-  debug_791:
-    .return (rx939_cur)
+    rx937_cur."!cursor_pass"(rx937_pos, "quote_escape:sym<{ }>")
+    if_null rx937_debug, debug_783
+    rx937_cur."!cursor_debug"("PASS", "quote_escape:sym<{ }>", " at pos=", rx937_pos)
+  debug_783:
+    .return (rx937_cur)
+  rx937_restart:
+.annotate 'line', 4
+    if_null rx937_debug, debug_784
+    rx937_cur."!cursor_debug"("NEXT", "quote_escape:sym<{ }>")
+  debug_784:
+  rx937_fail:
+    (rx937_rep, rx937_pos, $I10, $P10) = rx937_cur."!mark_fail"(0)
+    lt rx937_pos, -1, rx937_done
+    eq rx937_pos, -1, rx937_fail
+    jump $I10
+  rx937_done:
+    rx937_cur."!cursor_fail"()
+    if_null rx937_debug, debug_785
+    rx937_cur."!cursor_debug"("FAIL", "quote_escape:sym<{ }>")
+  debug_785:
+    .return (rx937_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("233_1283975947.19641") :method
-.annotate 'line', 0
-    new $P941, "ResizablePMCArray"
-    push $P941, unicode:"\x{ab}"
-    .return ($P941)
+.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("229_1284728478.15265") :method
+.annotate 'line', 4
+    new $P939, "ResizablePMCArray"
+    push $P939, "{"
+    .return ($P939)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<{ }>"  :subid("234_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx944_tgt
-    .local int rx944_pos
-    .local int rx944_off
-    .local int rx944_eos
-    .local int rx944_rep
-    .local pmc rx944_cur
-    .local pmc rx944_debug
-    (rx944_cur, rx944_pos, rx944_tgt, $I10) = self."!cursor_start"()
-    getattribute rx944_debug, rx944_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx944_cur
-    .local pmc match
-    .lex "$/", match
-    length rx944_eos, rx944_tgt
-    gt rx944_pos, rx944_eos, rx944_done
-    set rx944_off, 0
-    lt rx944_pos, 2, rx944_start
-    sub rx944_off, rx944_pos, 1
-    substr rx944_tgt, rx944_tgt, rx944_off
-  rx944_start:
-    eq $I10, 1, rx944_restart
-    if_null rx944_debug, debug_792
-    rx944_cur."!cursor_debug"("START", "circumfix:sym<{ }>")
-  debug_792:
+.sub "quote_escape:sym<esc>"  :subid("230_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx942_tgt
+    .local int rx942_pos
+    .local int rx942_off
+    .local int rx942_eos
+    .local int rx942_rep
+    .local pmc rx942_cur
+    .local pmc rx942_debug
+    (rx942_cur, rx942_pos, rx942_tgt, $I10) = self."!cursor_start"()
+    getattribute rx942_debug, rx942_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx942_cur
+    .local pmc match
+    .lex "$/", match
+    length rx942_eos, rx942_tgt
+    gt rx942_pos, rx942_eos, rx942_done
+    set rx942_off, 0
+    lt rx942_pos, 2, rx942_start
+    sub rx942_off, rx942_pos, 1
+    substr rx942_tgt, rx942_tgt, rx942_off
+  rx942_start:
+    eq $I10, 1, rx942_restart
+    if_null rx942_debug, debug_786
+    rx942_cur."!cursor_debug"("START", "quote_escape:sym<esc>")
+  debug_786:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan947_done
-    goto rxscan947_scan
-  rxscan947_loop:
-    ($P10) = rx944_cur."from"()
-    inc $P10
-    set rx944_pos, $P10
-    ge rx944_pos, rx944_eos, rxscan947_done
-  rxscan947_scan:
-    set_addr $I10, rxscan947_loop
-    rx944_cur."!mark_push"(0, rx944_pos, $I10)
-  rxscan947_done:
-  # rx enumcharlist negate=0 zerowidth
-    ge rx944_pos, rx944_eos, rx944_fail
-    sub $I10, rx944_pos, rx944_off
-    substr $S10, rx944_tgt, $I10, 1
-    index $I11, "{", $S10
-    lt $I11, 0, rx944_fail
-  # rx subrule "pblock" subtype=capture negate=
-    rx944_cur."!cursor_pos"(rx944_pos)
-    $P10 = rx944_cur."pblock"()
-    unless $P10, rx944_fail
-    rx944_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("pblock")
-    rx944_pos = $P10."pos"()
-  # rx pass
-    rx944_cur."!cursor_pass"(rx944_pos, "circumfix:sym<{ }>")
-    if_null rx944_debug, debug_793
-    rx944_cur."!cursor_debug"("PASS", "circumfix:sym<{ }>", " at pos=", rx944_pos)
-  debug_793:
-    .return (rx944_cur)
-  rx944_restart:
-    if_null rx944_debug, debug_794
-    rx944_cur."!cursor_debug"("NEXT", "circumfix:sym<{ }>")
-  debug_794:
-  rx944_fail:
-    (rx944_rep, rx944_pos, $I10, $P10) = rx944_cur."!mark_fail"(0)
-    lt rx944_pos, -1, rx944_done
-    eq rx944_pos, -1, rx944_fail
-    jump $I10
-  rx944_done:
-    rx944_cur."!cursor_fail"()
-    if_null rx944_debug, debug_795
-    rx944_cur."!cursor_debug"("FAIL", "circumfix:sym<{ }>")
-  debug_795:
-    .return (rx944_cur)
+    ne $I10, -1, rxscan945_done
+    goto rxscan945_scan
+  rxscan945_loop:
+    ($P10) = rx942_cur."from"()
+    inc $P10
+    set rx942_pos, $P10
+    ge rx942_pos, rx942_eos, rxscan945_done
+  rxscan945_scan:
+    set_addr $I10, rxscan945_loop
+    rx942_cur."!mark_push"(0, rx942_pos, $I10)
+  rxscan945_done:
+.annotate 'line', 441
+  # rx literal  "\\e"
+    add $I11, rx942_pos, 2
+    gt $I11, rx942_eos, rx942_fail
+    sub $I11, rx942_pos, rx942_off
+    substr $S10, rx942_tgt, $I11, 2
+    ne $S10, "\\e", rx942_fail
+    add rx942_pos, 2
+  # rx subrule "quotemod_check" subtype=zerowidth negate=
+    rx942_cur."!cursor_pos"(rx942_pos)
+    $P10 = rx942_cur."quotemod_check"("b")
+    unless $P10, rx942_fail
+  # rx pass
+    rx942_cur."!cursor_pass"(rx942_pos, "quote_escape:sym<esc>")
+    if_null rx942_debug, debug_787
+    rx942_cur."!cursor_debug"("PASS", "quote_escape:sym<esc>", " at pos=", rx942_pos)
+  debug_787:
+    .return (rx942_cur)
+  rx942_restart:
+.annotate 'line', 4
+    if_null rx942_debug, debug_788
+    rx942_cur."!cursor_debug"("NEXT", "quote_escape:sym<esc>")
+  debug_788:
+  rx942_fail:
+    (rx942_rep, rx942_pos, $I10, $P10) = rx942_cur."!mark_fail"(0)
+    lt rx942_pos, -1, rx942_done
+    eq rx942_pos, -1, rx942_fail
+    jump $I10
+  rx942_done:
+    rx942_cur."!cursor_fail"()
+    if_null rx942_debug, debug_789
+    rx942_cur."!cursor_debug"("FAIL", "quote_escape:sym<esc>")
+  debug_789:
+    .return (rx942_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<{ }>"  :subid("235_1283975947.19641") :method
-.annotate 'line', 0
-    new $P946, "ResizablePMCArray"
-    push $P946, "{"
-    .return ($P946)
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("231_1284728478.15265") :method
+.annotate 'line', 4
+    new $P944, "ResizablePMCArray"
+    push $P944, "\\e"
+    .return ($P944)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<sigil>"  :subid("236_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx949_tgt
-    .local int rx949_pos
-    .local int rx949_off
-    .local int rx949_eos
-    .local int rx949_rep
-    .local pmc rx949_cur
-    .local pmc rx949_debug
-    (rx949_cur, rx949_pos, rx949_tgt, $I10) = self."!cursor_start"()
-    getattribute rx949_debug, rx949_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx949_cur
-    .local pmc match
-    .lex "$/", match
-    length rx949_eos, rx949_tgt
-    gt rx949_pos, rx949_eos, rx949_done
-    set rx949_off, 0
-    lt rx949_pos, 2, rx949_start
-    sub rx949_off, rx949_pos, 1
-    substr rx949_tgt, rx949_tgt, rx949_off
-  rx949_start:
-    eq $I10, 1, rx949_restart
-    if_null rx949_debug, debug_796
-    rx949_cur."!cursor_debug"("START", "circumfix:sym<sigil>")
-  debug_796:
+.sub "circumfix:sym<( )>"  :subid("232_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx947_tgt
+    .local int rx947_pos
+    .local int rx947_off
+    .local int rx947_eos
+    .local int rx947_rep
+    .local pmc rx947_cur
+    .local pmc rx947_debug
+    (rx947_cur, rx947_pos, rx947_tgt, $I10) = self."!cursor_start"()
+    rx947_cur."!cursor_caparray"("EXPR")
+    getattribute rx947_debug, rx947_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx947_cur
+    .local pmc match
+    .lex "$/", match
+    length rx947_eos, rx947_tgt
+    gt rx947_pos, rx947_eos, rx947_done
+    set rx947_off, 0
+    lt rx947_pos, 2, rx947_start
+    sub rx947_off, rx947_pos, 1
+    substr rx947_tgt, rx947_tgt, rx947_off
+  rx947_start:
+    eq $I10, 1, rx947_restart
+    if_null rx947_debug, debug_790
+    rx947_cur."!cursor_debug"("START", "circumfix:sym<( )>")
+  debug_790:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan953_done
-    goto rxscan953_scan
-  rxscan953_loop:
-    ($P10) = rx949_cur."from"()
-    inc $P10
-    set rx949_pos, $P10
-    ge rx949_pos, rx949_eos, rxscan953_done
-  rxscan953_scan:
-    set_addr $I10, rxscan953_loop
-    rx949_cur."!mark_push"(0, rx949_pos, $I10)
-  rxscan953_done:
-  # rx subrule "sigil" subtype=capture negate=
-    rx949_cur."!cursor_pos"(rx949_pos)
-    $P10 = rx949_cur."sigil"()
-    unless $P10, rx949_fail
-    rx949_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sigil")
-    rx949_pos = $P10."pos"()
+    ne $I10, -1, rxscan951_done
+    goto rxscan951_scan
+  rxscan951_loop:
+    ($P10) = rx947_cur."from"()
+    inc $P10
+    set rx947_pos, $P10
+    ge rx947_pos, rx947_eos, rxscan951_done
+  rxscan951_scan:
+    set_addr $I10, rxscan951_loop
+    rx947_cur."!mark_push"(0, rx947_pos, $I10)
+  rxscan951_done:
+.annotate 'line', 443
   # rx literal  "("
-    add $I11, rx949_pos, 1
-    gt $I11, rx949_eos, rx949_fail
-    sub $I11, rx949_pos, rx949_off
-    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)
-    $P10 = rx949_cur."semilist"()
-    unless $P10, rx949_fail
-    rx949_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("semilist")
-    rx949_pos = $P10."pos"()
-  alt954_0:
-    set_addr $I10, alt954_1
-    rx949_cur."!mark_push"(0, rx949_pos, $I10)
-  # rx literal  ")"
-    add $I11, rx949_pos, 1
-    gt $I11, rx949_eos, rx949_fail
-    sub $I11, rx949_pos, rx949_off
-    ord $I11, rx949_tgt, $I11
-    ne $I11, 41, rx949_fail
-    add rx949_pos, 1
-    goto alt954_end
-  alt954_1:
-  # rx subrule "FAILGOAL" subtype=method negate=
-    rx949_cur."!cursor_pos"(rx949_pos)
-    $P10 = rx949_cur."FAILGOAL"("')'")
-    unless $P10, rx949_fail
-    goto rxsubrule956_pass
-  rxsubrule956_back:
+    add $I11, rx947_pos, 1
+    gt $I11, rx947_eos, rx947_fail
+    sub $I11, rx947_pos, rx947_off
+    ord $I11, rx947_tgt, $I11
+    ne $I11, 40, rx947_fail
+    add rx947_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx947_cur."!cursor_pos"(rx947_pos)
+    $P10 = rx947_cur."ws"()
+    unless $P10, rx947_fail
+    rx947_pos = $P10."pos"()
+  # rx rxquantr952 ** 0..1
+    set_addr $I10, rxquantr952_done
+    rx947_cur."!mark_push"(0, rx947_pos, $I10)
+  rxquantr952_loop:
+  # rx subrule "EXPR" subtype=capture negate=
+    rx947_cur."!cursor_pos"(rx947_pos)
+    $P10 = rx947_cur."EXPR"()
+    unless $P10, rx947_fail
+    goto rxsubrule953_pass
+  rxsubrule953_back:
     $P10 = $P10."!cursor_next"()
-    unless $P10, rx949_fail
-  rxsubrule956_pass:
-    set_addr $I10, rxsubrule956_back
-    rx949_cur."!mark_push"(0, rx949_pos, $I10, $P10)
-    rx949_pos = $P10."pos"()
-  alt954_end:
-  # rx pass
-    rx949_cur."!cursor_pass"(rx949_pos, "circumfix:sym<sigil>")
-    if_null rx949_debug, debug_797
-    rx949_cur."!cursor_debug"("PASS", "circumfix:sym<sigil>", " at pos=", rx949_pos)
-  debug_797:
-    .return (rx949_cur)
-  rx949_restart:
-    if_null rx949_debug, debug_798
-    rx949_cur."!cursor_debug"("NEXT", "circumfix:sym<sigil>")
-  debug_798:
-  rx949_fail:
-    (rx949_rep, rx949_pos, $I10, $P10) = rx949_cur."!mark_fail"(0)
-    lt rx949_pos, -1, rx949_done
-    eq rx949_pos, -1, rx949_fail
-    jump $I10
-  rx949_done:
-    rx949_cur."!cursor_fail"()
-    if_null rx949_debug, debug_799
-    rx949_cur."!cursor_debug"("FAIL", "circumfix:sym<sigil>")
-  debug_799:
-    .return (rx949_cur)
+    unless $P10, rx947_fail
+  rxsubrule953_pass:
+    set_addr $I10, rxsubrule953_back
+    rx947_cur."!mark_push"(0, rx947_pos, $I10, $P10)
+    $P10."!cursor_names"("EXPR")
+    rx947_pos = $P10."pos"()
+    set_addr $I10, rxquantr952_done
+    (rx947_rep) = rx947_cur."!mark_commit"($I10)
+  rxquantr952_done:
+  # rx literal  ")"
+    add $I11, rx947_pos, 1
+    gt $I11, rx947_eos, rx947_fail
+    sub $I11, rx947_pos, rx947_off
+    ord $I11, rx947_tgt, $I11
+    ne $I11, 41, rx947_fail
+    add rx947_pos, 1
+  # rx pass
+    rx947_cur."!cursor_pass"(rx947_pos, "circumfix:sym<( )>")
+    if_null rx947_debug, debug_791
+    rx947_cur."!cursor_debug"("PASS", "circumfix:sym<( )>", " at pos=", rx947_pos)
+  debug_791:
+    .return (rx947_cur)
+  rx947_restart:
+.annotate 'line', 4
+    if_null rx947_debug, debug_792
+    rx947_cur."!cursor_debug"("NEXT", "circumfix:sym<( )>")
+  debug_792:
+  rx947_fail:
+    (rx947_rep, rx947_pos, $I10, $P10) = rx947_cur."!mark_fail"(0)
+    lt rx947_pos, -1, rx947_done
+    eq rx947_pos, -1, rx947_fail
+    jump $I10
+  rx947_done:
+    rx947_cur."!cursor_fail"()
+    if_null rx947_debug, debug_793
+    rx947_cur."!cursor_debug"("FAIL", "circumfix:sym<( )>")
+  debug_793:
+    .return (rx947_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<sigil>"  :subid("237_1283975947.19641") :method
-.annotate 'line', 0
-    $P951 = self."!PREFIX__!subrule"("sigil", "")
-    new $P952, "ResizablePMCArray"
-    push $P952, $P951
-    .return ($P952)
+.sub "!PREFIX__circumfix:sym<( )>"  :subid("233_1284728478.15265") :method
+.annotate 'line', 4
+    $P949 = self."!PREFIX__!subrule"("ws", "(")
+    new $P950, "ResizablePMCArray"
+    push $P950, $P949
+    .return ($P950)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "semilist"  :subid("238_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx958_tgt
-    .local int rx958_pos
-    .local int rx958_off
-    .local int rx958_eos
-    .local int rx958_rep
-    .local pmc rx958_cur
-    .local pmc rx958_debug
-    (rx958_cur, rx958_pos, rx958_tgt, $I10) = self."!cursor_start"()
-    getattribute rx958_debug, rx958_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx958_cur
-    .local pmc match
-    .lex "$/", match
-    length rx958_eos, rx958_tgt
-    gt rx958_pos, rx958_eos, rx958_done
-    set rx958_off, 0
-    lt rx958_pos, 2, rx958_start
-    sub rx958_off, rx958_pos, 1
-    substr rx958_tgt, rx958_tgt, rx958_off
-  rx958_start:
-    eq $I10, 1, rx958_restart
-    if_null rx958_debug, debug_800
-    rx958_cur."!cursor_debug"("START", "semilist")
-  debug_800:
+.sub "circumfix:sym<[ ]>"  :subid("234_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx955_tgt
+    .local int rx955_pos
+    .local int rx955_off
+    .local int rx955_eos
+    .local int rx955_rep
+    .local pmc rx955_cur
+    .local pmc rx955_debug
+    (rx955_cur, rx955_pos, rx955_tgt, $I10) = self."!cursor_start"()
+    rx955_cur."!cursor_caparray"("EXPR")
+    getattribute rx955_debug, rx955_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx955_cur
+    .local pmc match
+    .lex "$/", match
+    length rx955_eos, rx955_tgt
+    gt rx955_pos, rx955_eos, rx955_done
+    set rx955_off, 0
+    lt rx955_pos, 2, rx955_start
+    sub rx955_off, rx955_pos, 1
+    substr rx955_tgt, rx955_tgt, rx955_off
+  rx955_start:
+    eq $I10, 1, rx955_restart
+    if_null rx955_debug, debug_794
+    rx955_cur."!cursor_debug"("START", "circumfix:sym<[ ]>")
+  debug_794:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan962_done
-    goto rxscan962_scan
-  rxscan962_loop:
-    ($P10) = rx958_cur."from"()
-    inc $P10
-    set rx958_pos, $P10
-    ge rx958_pos, rx958_eos, rxscan962_done
-  rxscan962_scan:
-    set_addr $I10, rxscan962_loop
-    rx958_cur."!mark_push"(0, rx958_pos, $I10)
-  rxscan962_done:
-  # rx subrule "ws" subtype=method negate=
-    rx958_cur."!cursor_pos"(rx958_pos)
-    $P10 = rx958_cur."ws"()
-    unless $P10, rx958_fail
-    rx958_pos = $P10."pos"()
-  # rx subrule "statement" subtype=capture negate=
-    rx958_cur."!cursor_pos"(rx958_pos)
-    $P10 = rx958_cur."statement"()
-    unless $P10, rx958_fail
-    rx958_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("statement")
-    rx958_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx958_cur."!cursor_pos"(rx958_pos)
-    $P10 = rx958_cur."ws"()
-    unless $P10, rx958_fail
-    rx958_pos = $P10."pos"()
-  # rx pass
-    rx958_cur."!cursor_pass"(rx958_pos, "semilist")
-    if_null rx958_debug, debug_801
-    rx958_cur."!cursor_debug"("PASS", "semilist", " at pos=", rx958_pos)
-  debug_801:
-    .return (rx958_cur)
-  rx958_restart:
-    if_null rx958_debug, debug_802
-    rx958_cur."!cursor_debug"("NEXT", "semilist")
-  debug_802:
-  rx958_fail:
-    (rx958_rep, rx958_pos, $I10, $P10) = rx958_cur."!mark_fail"(0)
-    lt rx958_pos, -1, rx958_done
-    eq rx958_pos, -1, rx958_fail
-    jump $I10
-  rx958_done:
-    rx958_cur."!cursor_fail"()
-    if_null rx958_debug, debug_803
-    rx958_cur."!cursor_debug"("FAIL", "semilist")
-  debug_803:
-    .return (rx958_cur)
+    ne $I10, -1, rxscan959_done
+    goto rxscan959_scan
+  rxscan959_loop:
+    ($P10) = rx955_cur."from"()
+    inc $P10
+    set rx955_pos, $P10
+    ge rx955_pos, rx955_eos, rxscan959_done
+  rxscan959_scan:
+    set_addr $I10, rxscan959_loop
+    rx955_cur."!mark_push"(0, rx955_pos, $I10)
+  rxscan959_done:
+.annotate 'line', 444
+  # rx literal  "["
+    add $I11, rx955_pos, 1
+    gt $I11, rx955_eos, rx955_fail
+    sub $I11, rx955_pos, rx955_off
+    ord $I11, rx955_tgt, $I11
+    ne $I11, 91, rx955_fail
+    add rx955_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx955_cur."!cursor_pos"(rx955_pos)
+    $P10 = rx955_cur."ws"()
+    unless $P10, rx955_fail
+    rx955_pos = $P10."pos"()
+  # rx rxquantr960 ** 0..1
+    set_addr $I10, rxquantr960_done
+    rx955_cur."!mark_push"(0, rx955_pos, $I10)
+  rxquantr960_loop:
+  # rx subrule "EXPR" subtype=capture negate=
+    rx955_cur."!cursor_pos"(rx955_pos)
+    $P10 = rx955_cur."EXPR"()
+    unless $P10, rx955_fail
+    goto rxsubrule961_pass
+  rxsubrule961_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx955_fail
+  rxsubrule961_pass:
+    set_addr $I10, rxsubrule961_back
+    rx955_cur."!mark_push"(0, rx955_pos, $I10, $P10)
+    $P10."!cursor_names"("EXPR")
+    rx955_pos = $P10."pos"()
+    set_addr $I10, rxquantr960_done
+    (rx955_rep) = rx955_cur."!mark_commit"($I10)
+  rxquantr960_done:
+  # rx literal  "]"
+    add $I11, rx955_pos, 1
+    gt $I11, rx955_eos, rx955_fail
+    sub $I11, rx955_pos, rx955_off
+    ord $I11, rx955_tgt, $I11
+    ne $I11, 93, rx955_fail
+    add rx955_pos, 1
+  # rx pass
+    rx955_cur."!cursor_pass"(rx955_pos, "circumfix:sym<[ ]>")
+    if_null rx955_debug, debug_795
+    rx955_cur."!cursor_debug"("PASS", "circumfix:sym<[ ]>", " at pos=", rx955_pos)
+  debug_795:
+    .return (rx955_cur)
+  rx955_restart:
+.annotate 'line', 4
+    if_null rx955_debug, debug_796
+    rx955_cur."!cursor_debug"("NEXT", "circumfix:sym<[ ]>")
+  debug_796:
+  rx955_fail:
+    (rx955_rep, rx955_pos, $I10, $P10) = rx955_cur."!mark_fail"(0)
+    lt rx955_pos, -1, rx955_done
+    eq rx955_pos, -1, rx955_fail
+    jump $I10
+  rx955_done:
+    rx955_cur."!cursor_fail"()
+    if_null rx955_debug, debug_797
+    rx955_cur."!cursor_debug"("FAIL", "circumfix:sym<[ ]>")
+  debug_797:
+    .return (rx955_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__semilist"  :subid("239_1283975947.19641") :method
-.annotate 'line', 0
-    $P960 = self."!PREFIX__!subrule"("ws", "")
-    new $P961, "ResizablePMCArray"
-    push $P961, $P960
-    .return ($P961)
+.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("235_1284728478.15265") :method
+.annotate 'line', 4
+    $P957 = self."!PREFIX__!subrule"("ws", "[")
+    new $P958, "ResizablePMCArray"
+    push $P958, $P957
+    .return ($P958)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixish"  :subid("240_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx966_tgt
-    .local int rx966_pos
-    .local int rx966_off
-    .local int rx966_eos
-    .local int rx966_rep
-    .local pmc rx966_cur
-    .local pmc rx966_debug
-    (rx966_cur, rx966_pos, rx966_tgt, $I10) = self."!cursor_start"()
-    getattribute rx966_debug, rx966_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx966_cur
-    .local pmc match
-    .lex "$/", match
-    length rx966_eos, rx966_tgt
-    gt rx966_pos, rx966_eos, rx966_done
-    set rx966_off, 0
-    lt rx966_pos, 2, rx966_start
-    sub rx966_off, rx966_pos, 1
-    substr rx966_tgt, rx966_tgt, rx966_off
-  rx966_start:
-    eq $I10, 1, rx966_restart
-    if_null rx966_debug, debug_804
-    rx966_cur."!cursor_debug"("START", "infixish")
-  debug_804:
+.sub "circumfix:sym<ang>"  :subid("236_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx963_tgt
+    .local int rx963_pos
+    .local int rx963_off
+    .local int rx963_eos
+    .local int rx963_rep
+    .local pmc rx963_cur
+    .local pmc rx963_debug
+    (rx963_cur, rx963_pos, rx963_tgt, $I10) = self."!cursor_start"()
+    getattribute rx963_debug, rx963_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx963_cur
+    .local pmc match
+    .lex "$/", match
+    length rx963_eos, rx963_tgt
+    gt rx963_pos, rx963_eos, rx963_done
+    set rx963_off, 0
+    lt rx963_pos, 2, rx963_start
+    sub rx963_off, rx963_pos, 1
+    substr rx963_tgt, rx963_tgt, rx963_off
+  rx963_start:
+    eq $I10, 1, rx963_restart
+    if_null rx963_debug, debug_798
+    rx963_cur."!cursor_debug"("START", "circumfix:sym<ang>")
+  debug_798:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan969_done
-    goto rxscan969_scan
-  rxscan969_loop:
-    ($P10) = rx966_cur."from"()
-    inc $P10
-    set rx966_pos, $P10
-    ge rx966_pos, rx966_eos, rxscan969_done
-  rxscan969_scan:
-    set_addr $I10, rxscan969_loop
-    rx966_cur."!mark_push"(0, rx966_pos, $I10)
-  rxscan969_done:
-  # rx subrule "infixstopper" subtype=zerowidth negate=1
-    rx966_cur."!cursor_pos"(rx966_pos)
-    $P10 = rx966_cur."infixstopper"()
-    if $P10, rx966_fail
-  # rx subrule "infix" subtype=capture negate=
-    rx966_cur."!cursor_pos"(rx966_pos)
-    $P10 = rx966_cur."infix"()
-    unless $P10, rx966_fail
-    rx966_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("OPER=infix")
-    rx966_pos = $P10."pos"()
+    ne $I10, -1, rxscan966_done
+    goto rxscan966_scan
+  rxscan966_loop:
+    ($P10) = rx963_cur."from"()
+    inc $P10
+    set rx963_pos, $P10
+    ge rx963_pos, rx963_eos, rxscan966_done
+  rxscan966_scan:
+    set_addr $I10, rxscan966_loop
+    rx963_cur."!mark_push"(0, rx963_pos, $I10)
+  rxscan966_done:
+.annotate 'line', 445
+  # rx enumcharlist negate=0 zerowidth
+    sub $I10, rx963_pos, rx963_off
+    substr $S10, rx963_tgt, $I10, 1
+    index $I11, "<", $S10
+    lt $I11, 0, rx963_fail
+  # rx subrule "quote_EXPR" subtype=capture negate=
+    rx963_cur."!cursor_pos"(rx963_pos)
+    $P10 = rx963_cur."quote_EXPR"(":q", ":w")
+    unless $P10, rx963_fail
+    rx963_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("quote_EXPR")
+    rx963_pos = $P10."pos"()
   # rx pass
-    rx966_cur."!cursor_pass"(rx966_pos, "infixish")
-    if_null rx966_debug, debug_805
-    rx966_cur."!cursor_debug"("PASS", "infixish", " at pos=", rx966_pos)
-  debug_805:
-    .return (rx966_cur)
-  rx966_restart:
-    if_null rx966_debug, debug_806
-    rx966_cur."!cursor_debug"("NEXT", "infixish")
-  debug_806:
-  rx966_fail:
-    (rx966_rep, rx966_pos, $I10, $P10) = rx966_cur."!mark_fail"(0)
-    lt rx966_pos, -1, rx966_done
-    eq rx966_pos, -1, rx966_fail
-    jump $I10
-  rx966_done:
-    rx966_cur."!cursor_fail"()
-    if_null rx966_debug, debug_807
-    rx966_cur."!cursor_debug"("FAIL", "infixish")
-  debug_807:
-    .return (rx966_cur)
+    rx963_cur."!cursor_pass"(rx963_pos, "circumfix:sym<ang>")
+    if_null rx963_debug, debug_799
+    rx963_cur."!cursor_debug"("PASS", "circumfix:sym<ang>", " at pos=", rx963_pos)
+  debug_799:
+    .return (rx963_cur)
+  rx963_restart:
+.annotate 'line', 4
+    if_null rx963_debug, debug_800
+    rx963_cur."!cursor_debug"("NEXT", "circumfix:sym<ang>")
+  debug_800:
+  rx963_fail:
+    (rx963_rep, rx963_pos, $I10, $P10) = rx963_cur."!mark_fail"(0)
+    lt rx963_pos, -1, rx963_done
+    eq rx963_pos, -1, rx963_fail
+    jump $I10
+  rx963_done:
+    rx963_cur."!cursor_fail"()
+    if_null rx963_debug, debug_801
+    rx963_cur."!cursor_debug"("FAIL", "circumfix:sym<ang>")
+  debug_801:
+    .return (rx963_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("241_1283975947.19641") :method
-.annotate 'line', 0
-    new $P968, "ResizablePMCArray"
-    push $P968, ""
-    .return ($P968)
+.sub "!PREFIX__circumfix:sym<ang>"  :subid("237_1284728478.15265") :method
+.annotate 'line', 4
+    new $P965, "ResizablePMCArray"
+    push $P965, "<"
+    .return ($P965)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixstopper"  :subid("242_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx971_tgt
-    .local int rx971_pos
-    .local int rx971_off
-    .local int rx971_eos
-    .local int rx971_rep
-    .local pmc rx971_cur
-    .local pmc rx971_debug
-    (rx971_cur, rx971_pos, rx971_tgt, $I10) = self."!cursor_start"()
-    getattribute rx971_debug, rx971_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx971_cur
-    .local pmc match
-    .lex "$/", match
-    length rx971_eos, rx971_tgt
-    gt rx971_pos, rx971_eos, rx971_done
-    set rx971_off, 0
-    lt rx971_pos, 2, rx971_start
-    sub rx971_off, rx971_pos, 1
-    substr rx971_tgt, rx971_tgt, rx971_off
-  rx971_start:
-    eq $I10, 1, rx971_restart
-    if_null rx971_debug, debug_808
-    rx971_cur."!cursor_debug"("START", "infixstopper")
-  debug_808:
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("238_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx968_tgt
+    .local int rx968_pos
+    .local int rx968_off
+    .local int rx968_eos
+    .local int rx968_rep
+    .local pmc rx968_cur
+    .local pmc rx968_debug
+    (rx968_cur, rx968_pos, rx968_tgt, $I10) = self."!cursor_start"()
+    getattribute rx968_debug, rx968_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx968_cur
+    .local pmc match
+    .lex "$/", match
+    length rx968_eos, rx968_tgt
+    gt rx968_pos, rx968_eos, rx968_done
+    set rx968_off, 0
+    lt rx968_pos, 2, rx968_start
+    sub rx968_off, rx968_pos, 1
+    substr rx968_tgt, rx968_tgt, rx968_off
+  rx968_start:
+    eq $I10, 1, rx968_restart
+    if_null rx968_debug, debug_802
+    rx968_cur."!cursor_debug"("START", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+  debug_802:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan974_done
-    goto rxscan974_scan
-  rxscan974_loop:
-    ($P10) = rx971_cur."from"()
-    inc $P10
-    set rx971_pos, $P10
-    ge rx971_pos, rx971_eos, rxscan974_done
-  rxscan974_scan:
-    set_addr $I10, rxscan974_loop
-    rx971_cur."!mark_push"(0, rx971_pos, $I10)
-  rxscan974_done:
-  # rx subrule "lambda" subtype=zerowidth negate=
-    rx971_cur."!cursor_pos"(rx971_pos)
-    $P10 = rx971_cur."lambda"()
-    unless $P10, rx971_fail
-  # rx pass
-    rx971_cur."!cursor_pass"(rx971_pos, "infixstopper")
-    if_null rx971_debug, debug_809
-    rx971_cur."!cursor_debug"("PASS", "infixstopper", " at pos=", rx971_pos)
-  debug_809:
-    .return (rx971_cur)
-  rx971_restart:
-    if_null rx971_debug, debug_810
-    rx971_cur."!cursor_debug"("NEXT", "infixstopper")
-  debug_810:
-  rx971_fail:
-    (rx971_rep, rx971_pos, $I10, $P10) = rx971_cur."!mark_fail"(0)
-    lt rx971_pos, -1, rx971_done
-    eq rx971_pos, -1, rx971_fail
-    jump $I10
-  rx971_done:
-    rx971_cur."!cursor_fail"()
-    if_null rx971_debug, debug_811
-    rx971_cur."!cursor_debug"("FAIL", "infixstopper")
-  debug_811:
-    .return (rx971_cur)
+    ne $I10, -1, rxscan971_done
+    goto rxscan971_scan
+  rxscan971_loop:
+    ($P10) = rx968_cur."from"()
+    inc $P10
+    set rx968_pos, $P10
+    ge rx968_pos, rx968_eos, rxscan971_done
+  rxscan971_scan:
+    set_addr $I10, rxscan971_loop
+    rx968_cur."!mark_push"(0, rx968_pos, $I10)
+  rxscan971_done:
+.annotate 'line', 446
+  # rx enumcharlist negate=0 zerowidth
+    sub $I10, rx968_pos, rx968_off
+    substr $S10, rx968_tgt, $I10, 1
+    index $I11, unicode:"\x{ab}", $S10
+    lt $I11, 0, rx968_fail
+  # rx subrule "quote_EXPR" subtype=capture negate=
+    rx968_cur."!cursor_pos"(rx968_pos)
+    $P10 = rx968_cur."quote_EXPR"(":qq", ":w")
+    unless $P10, rx968_fail
+    rx968_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("quote_EXPR")
+    rx968_pos = $P10."pos"()
+  # rx pass
+    rx968_cur."!cursor_pass"(rx968_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
+    if_null rx968_debug, debug_803
+    rx968_cur."!cursor_debug"("PASS", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx968_pos)
+  debug_803:
+    .return (rx968_cur)
+  rx968_restart:
+.annotate 'line', 4
+    if_null rx968_debug, debug_804
+    rx968_cur."!cursor_debug"("NEXT", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+  debug_804:
+  rx968_fail:
+    (rx968_rep, rx968_pos, $I10, $P10) = rx968_cur."!mark_fail"(0)
+    lt rx968_pos, -1, rx968_done
+    eq rx968_pos, -1, rx968_fail
+    jump $I10
+  rx968_done:
+    rx968_cur."!cursor_fail"()
+    if_null rx968_debug, debug_805
+    rx968_cur."!cursor_debug"("FAIL", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+  debug_805:
+    .return (rx968_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixstopper"  :subid("243_1283975947.19641") :method
-.annotate 'line', 0
-    new $P973, "ResizablePMCArray"
-    push $P973, ""
-    .return ($P973)
+.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("239_1284728478.15265") :method
+.annotate 'line', 4
+    new $P970, "ResizablePMCArray"
+    push $P970, unicode:"\x{ab}"
+    .return ($P970)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<[ ]>"  :subid("244_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx976_tgt
-    .local int rx976_pos
-    .local int rx976_off
-    .local int rx976_eos
-    .local int rx976_rep
-    .local pmc rx976_cur
-    .local pmc rx976_debug
-    (rx976_cur, rx976_pos, rx976_tgt, $I10) = self."!cursor_start"()
-    getattribute rx976_debug, rx976_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx976_cur
-    .local pmc match
-    .lex "$/", match
-    length rx976_eos, rx976_tgt
-    gt rx976_pos, rx976_eos, rx976_done
-    set rx976_off, 0
-    lt rx976_pos, 2, rx976_start
-    sub rx976_off, rx976_pos, 1
-    substr rx976_tgt, rx976_tgt, rx976_off
-  rx976_start:
-    eq $I10, 1, rx976_restart
-    if_null rx976_debug, debug_812
-    rx976_cur."!cursor_debug"("START", "postcircumfix:sym<[ ]>")
-  debug_812:
+.sub "circumfix:sym<{ }>"  :subid("240_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx973_tgt
+    .local int rx973_pos
+    .local int rx973_off
+    .local int rx973_eos
+    .local int rx973_rep
+    .local pmc rx973_cur
+    .local pmc rx973_debug
+    (rx973_cur, rx973_pos, rx973_tgt, $I10) = self."!cursor_start"()
+    getattribute rx973_debug, rx973_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx973_cur
+    .local pmc match
+    .lex "$/", match
+    length rx973_eos, rx973_tgt
+    gt rx973_pos, rx973_eos, rx973_done
+    set rx973_off, 0
+    lt rx973_pos, 2, rx973_start
+    sub rx973_off, rx973_pos, 1
+    substr rx973_tgt, rx973_tgt, rx973_off
+  rx973_start:
+    eq $I10, 1, rx973_restart
+    if_null rx973_debug, debug_806
+    rx973_cur."!cursor_debug"("START", "circumfix:sym<{ }>")
+  debug_806:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan980_done
-    goto rxscan980_scan
-  rxscan980_loop:
-    ($P10) = rx976_cur."from"()
-    inc $P10
-    set rx976_pos, $P10
-    ge rx976_pos, rx976_eos, rxscan980_done
-  rxscan980_scan:
-    set_addr $I10, rxscan980_loop
-    rx976_cur."!mark_push"(0, rx976_pos, $I10)
-  rxscan980_done:
-  # rx literal  "["
-    add $I11, rx976_pos, 1
-    gt $I11, rx976_eos, rx976_fail
-    sub $I11, rx976_pos, rx976_off
-    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)
-    $P10 = rx976_cur."ws"()
-    unless $P10, rx976_fail
-    rx976_pos = $P10."pos"()
-  # rx subrule "EXPR" subtype=capture negate=
-    rx976_cur."!cursor_pos"(rx976_pos)
-    $P10 = rx976_cur."EXPR"()
-    unless $P10, rx976_fail
-    rx976_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("EXPR")
-    rx976_pos = $P10."pos"()
-  # rx literal  "]"
-    add $I11, rx976_pos, 1
-    gt $I11, rx976_eos, rx976_fail
-    sub $I11, rx976_pos, rx976_off
-    ord $I11, rx976_tgt, $I11
-    ne $I11, 93, rx976_fail
-    add rx976_pos, 1
-  # rx subrule "O" subtype=capture negate=
-    rx976_cur."!cursor_pos"(rx976_pos)
-    $P10 = rx976_cur."O"("%methodop")
-    unless $P10, rx976_fail
-    rx976_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("O")
-    rx976_pos = $P10."pos"()
+    ne $I10, -1, rxscan976_done
+    goto rxscan976_scan
+  rxscan976_loop:
+    ($P10) = rx973_cur."from"()
+    inc $P10
+    set rx973_pos, $P10
+    ge rx973_pos, rx973_eos, rxscan976_done
+  rxscan976_scan:
+    set_addr $I10, rxscan976_loop
+    rx973_cur."!mark_push"(0, rx973_pos, $I10)
+  rxscan976_done:
+.annotate 'line', 447
+  # rx enumcharlist negate=0 zerowidth
+    sub $I10, rx973_pos, rx973_off
+    substr $S10, rx973_tgt, $I10, 1
+    index $I11, "{", $S10
+    lt $I11, 0, rx973_fail
+  # rx subrule "pblock" subtype=capture negate=
+    rx973_cur."!cursor_pos"(rx973_pos)
+    $P10 = rx973_cur."pblock"()
+    unless $P10, rx973_fail
+    rx973_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("pblock")
+    rx973_pos = $P10."pos"()
   # rx pass
-    rx976_cur."!cursor_pass"(rx976_pos, "postcircumfix:sym<[ ]>")
-    if_null rx976_debug, debug_813
-    rx976_cur."!cursor_debug"("PASS", "postcircumfix:sym<[ ]>", " at pos=", rx976_pos)
-  debug_813:
-    .return (rx976_cur)
-  rx976_restart:
-    if_null rx976_debug, debug_814
-    rx976_cur."!cursor_debug"("NEXT", "postcircumfix:sym<[ ]>")
-  debug_814:
-  rx976_fail:
-    (rx976_rep, rx976_pos, $I10, $P10) = rx976_cur."!mark_fail"(0)
-    lt rx976_pos, -1, rx976_done
-    eq rx976_pos, -1, rx976_fail
-    jump $I10
-  rx976_done:
-    rx976_cur."!cursor_fail"()
-    if_null rx976_debug, debug_815
-    rx976_cur."!cursor_debug"("FAIL", "postcircumfix:sym<[ ]>")
-  debug_815:
-    .return (rx976_cur)
+    rx973_cur."!cursor_pass"(rx973_pos, "circumfix:sym<{ }>")
+    if_null rx973_debug, debug_807
+    rx973_cur."!cursor_debug"("PASS", "circumfix:sym<{ }>", " at pos=", rx973_pos)
+  debug_807:
+    .return (rx973_cur)
+  rx973_restart:
+.annotate 'line', 4
+    if_null rx973_debug, debug_808
+    rx973_cur."!cursor_debug"("NEXT", "circumfix:sym<{ }>")
+  debug_808:
+  rx973_fail:
+    (rx973_rep, rx973_pos, $I10, $P10) = rx973_cur."!mark_fail"(0)
+    lt rx973_pos, -1, rx973_done
+    eq rx973_pos, -1, rx973_fail
+    jump $I10
+  rx973_done:
+    rx973_cur."!cursor_fail"()
+    if_null rx973_debug, debug_809
+    rx973_cur."!cursor_debug"("FAIL", "circumfix:sym<{ }>")
+  debug_809:
+    .return (rx973_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("245_1283975947.19641") :method
-.annotate 'line', 0
-    $P978 = self."!PREFIX__!subrule"("ws", "[")
-    new $P979, "ResizablePMCArray"
-    push $P979, $P978
-    .return ($P979)
+.sub "!PREFIX__circumfix:sym<{ }>"  :subid("241_1284728478.15265") :method
+.annotate 'line', 4
+    new $P975, "ResizablePMCArray"
+    push $P975, "{"
+    .return ($P975)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<{ }>"  :subid("246_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx982_tgt
-    .local int rx982_pos
-    .local int rx982_off
-    .local int rx982_eos
-    .local int rx982_rep
-    .local pmc rx982_cur
-    .local pmc rx982_debug
-    (rx982_cur, rx982_pos, rx982_tgt, $I10) = self."!cursor_start"()
-    getattribute rx982_debug, rx982_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx982_cur
-    .local pmc match
-    .lex "$/", match
-    length rx982_eos, rx982_tgt
-    gt rx982_pos, rx982_eos, rx982_done
-    set rx982_off, 0
-    lt rx982_pos, 2, rx982_start
-    sub rx982_off, rx982_pos, 1
-    substr rx982_tgt, rx982_tgt, rx982_off
-  rx982_start:
-    eq $I10, 1, rx982_restart
-    if_null rx982_debug, debug_816
-    rx982_cur."!cursor_debug"("START", "postcircumfix:sym<{ }>")
-  debug_816:
+.sub "circumfix:sym<sigil>"  :subid("242_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx978_tgt
+    .local int rx978_pos
+    .local int rx978_off
+    .local int rx978_eos
+    .local int rx978_rep
+    .local pmc rx978_cur
+    .local pmc rx978_debug
+    (rx978_cur, rx978_pos, rx978_tgt, $I10) = self."!cursor_start"()
+    getattribute rx978_debug, rx978_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx978_cur
+    .local pmc match
+    .lex "$/", match
+    length rx978_eos, rx978_tgt
+    gt rx978_pos, rx978_eos, rx978_done
+    set rx978_off, 0
+    lt rx978_pos, 2, rx978_start
+    sub rx978_off, rx978_pos, 1
+    substr rx978_tgt, rx978_tgt, rx978_off
+  rx978_start:
+    eq $I10, 1, rx978_restart
+    if_null rx978_debug, debug_810
+    rx978_cur."!cursor_debug"("START", "circumfix:sym<sigil>")
+  debug_810:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan986_done
-    goto rxscan986_scan
-  rxscan986_loop:
-    ($P10) = rx982_cur."from"()
-    inc $P10
-    set rx982_pos, $P10
-    ge rx982_pos, rx982_eos, rxscan986_done
-  rxscan986_scan:
-    set_addr $I10, rxscan986_loop
-    rx982_cur."!mark_push"(0, rx982_pos, $I10)
-  rxscan986_done:
-  # rx literal  "{"
-    add $I11, rx982_pos, 1
-    gt $I11, rx982_eos, rx982_fail
-    sub $I11, rx982_pos, rx982_off
-    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)
-    $P10 = rx982_cur."ws"()
-    unless $P10, rx982_fail
-    rx982_pos = $P10."pos"()
-  # rx subrule "EXPR" subtype=capture negate=
-    rx982_cur."!cursor_pos"(rx982_pos)
-    $P10 = rx982_cur."EXPR"()
-    unless $P10, rx982_fail
-    rx982_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("EXPR")
-    rx982_pos = $P10."pos"()
-  # rx literal  "}"
-    add $I11, rx982_pos, 1
-    gt $I11, rx982_eos, rx982_fail
-    sub $I11, rx982_pos, rx982_off
-    ord $I11, rx982_tgt, $I11
-    ne $I11, 125, rx982_fail
-    add rx982_pos, 1
-  # rx subrule "O" subtype=capture negate=
-    rx982_cur."!cursor_pos"(rx982_pos)
-    $P10 = rx982_cur."O"("%methodop")
-    unless $P10, rx982_fail
-    rx982_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("O")
-    rx982_pos = $P10."pos"()
-  # rx pass
-    rx982_cur."!cursor_pass"(rx982_pos, "postcircumfix:sym<{ }>")
-    if_null rx982_debug, debug_817
-    rx982_cur."!cursor_debug"("PASS", "postcircumfix:sym<{ }>", " at pos=", rx982_pos)
-  debug_817:
-    .return (rx982_cur)
-  rx982_restart:
-    if_null rx982_debug, debug_818
-    rx982_cur."!cursor_debug"("NEXT", "postcircumfix:sym<{ }>")
-  debug_818:
-  rx982_fail:
-    (rx982_rep, rx982_pos, $I10, $P10) = rx982_cur."!mark_fail"(0)
-    lt rx982_pos, -1, rx982_done
-    eq rx982_pos, -1, rx982_fail
-    jump $I10
-  rx982_done:
-    rx982_cur."!cursor_fail"()
-    if_null rx982_debug, debug_819
-    rx982_cur."!cursor_debug"("FAIL", "postcircumfix:sym<{ }>")
-  debug_819:
-    .return (rx982_cur)
+    ne $I10, -1, rxscan982_done
+    goto rxscan982_scan
+  rxscan982_loop:
+    ($P10) = rx978_cur."from"()
+    inc $P10
+    set rx978_pos, $P10
+    ge rx978_pos, rx978_eos, rxscan982_done
+  rxscan982_scan:
+    set_addr $I10, rxscan982_loop
+    rx978_cur."!mark_push"(0, rx978_pos, $I10)
+  rxscan982_done:
+.annotate 'line', 448
+  # rx subrule "sigil" subtype=capture negate=
+    rx978_cur."!cursor_pos"(rx978_pos)
+    $P10 = rx978_cur."sigil"()
+    unless $P10, rx978_fail
+    rx978_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sigil")
+    rx978_pos = $P10."pos"()
+  # rx literal  "("
+    add $I11, rx978_pos, 1
+    gt $I11, rx978_eos, rx978_fail
+    sub $I11, rx978_pos, rx978_off
+    ord $I11, rx978_tgt, $I11
+    ne $I11, 40, rx978_fail
+    add rx978_pos, 1
+  # rx subrule "semilist" subtype=capture negate=
+    rx978_cur."!cursor_pos"(rx978_pos)
+    $P10 = rx978_cur."semilist"()
+    unless $P10, rx978_fail
+    rx978_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("semilist")
+    rx978_pos = $P10."pos"()
+  alt983_0:
+    set_addr $I10, alt983_1
+    rx978_cur."!mark_push"(0, rx978_pos, $I10)
+  # rx literal  ")"
+    add $I11, rx978_pos, 1
+    gt $I11, rx978_eos, rx978_fail
+    sub $I11, rx978_pos, rx978_off
+    ord $I11, rx978_tgt, $I11
+    ne $I11, 41, rx978_fail
+    add rx978_pos, 1
+    goto alt983_end
+  alt983_1:
+  # rx subrule "FAILGOAL" subtype=method negate=
+    rx978_cur."!cursor_pos"(rx978_pos)
+    $P10 = rx978_cur."FAILGOAL"("')'")
+    unless $P10, rx978_fail
+    goto rxsubrule985_pass
+  rxsubrule985_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx978_fail
+  rxsubrule985_pass:
+    set_addr $I10, rxsubrule985_back
+    rx978_cur."!mark_push"(0, rx978_pos, $I10, $P10)
+    rx978_pos = $P10."pos"()
+  alt983_end:
+  # rx pass
+    rx978_cur."!cursor_pass"(rx978_pos, "circumfix:sym<sigil>")
+    if_null rx978_debug, debug_811
+    rx978_cur."!cursor_debug"("PASS", "circumfix:sym<sigil>", " at pos=", rx978_pos)
+  debug_811:
+    .return (rx978_cur)
+  rx978_restart:
+.annotate 'line', 4
+    if_null rx978_debug, debug_812
+    rx978_cur."!cursor_debug"("NEXT", "circumfix:sym<sigil>")
+  debug_812:
+  rx978_fail:
+    (rx978_rep, rx978_pos, $I10, $P10) = rx978_cur."!mark_fail"(0)
+    lt rx978_pos, -1, rx978_done
+    eq rx978_pos, -1, rx978_fail
+    jump $I10
+  rx978_done:
+    rx978_cur."!cursor_fail"()
+    if_null rx978_debug, debug_813
+    rx978_cur."!cursor_debug"("FAIL", "circumfix:sym<sigil>")
+  debug_813:
+    .return (rx978_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("247_1283975947.19641") :method
-.annotate 'line', 0
-    $P984 = self."!PREFIX__!subrule"("ws", "{")
-    new $P985, "ResizablePMCArray"
-    push $P985, $P984
-    .return ($P985)
+.sub "!PREFIX__circumfix:sym<sigil>"  :subid("243_1284728478.15265") :method
+.annotate 'line', 4
+    $P980 = self."!PREFIX__!subrule"("sigil", "")
+    new $P981, "ResizablePMCArray"
+    push $P981, $P980
+    .return ($P981)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<ang>"  :subid("248_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx988_tgt
-    .local int rx988_pos
-    .local int rx988_off
-    .local int rx988_eos
-    .local int rx988_rep
-    .local pmc rx988_cur
-    .local pmc rx988_debug
-    (rx988_cur, rx988_pos, rx988_tgt, $I10) = self."!cursor_start"()
-    getattribute rx988_debug, rx988_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx988_cur
-    .local pmc match
-    .lex "$/", match
-    length rx988_eos, rx988_tgt
-    gt rx988_pos, rx988_eos, rx988_done
-    set rx988_off, 0
-    lt rx988_pos, 2, rx988_start
-    sub rx988_off, rx988_pos, 1
-    substr rx988_tgt, rx988_tgt, rx988_off
-  rx988_start:
-    eq $I10, 1, rx988_restart
-    if_null rx988_debug, debug_820
-    rx988_cur."!cursor_debug"("START", "postcircumfix:sym<ang>")
-  debug_820:
+.sub "semilist"  :subid("244_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 4
+    .local string rx987_tgt
+    .local int rx987_pos
+    .local int rx987_off
+    .local int rx987_eos
+    .local int rx987_rep
+    .local pmc rx987_cur
+    .local pmc rx987_debug
+    (rx987_cur, rx987_pos, rx987_tgt, $I10) = self."!cursor_start"()
+    getattribute rx987_debug, rx987_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx987_cur
+    .local pmc match
+    .lex "$/", match
+    length rx987_eos, rx987_tgt
+    gt rx987_pos, rx987_eos, rx987_done
+    set rx987_off, 0
+    lt rx987_pos, 2, rx987_start
+    sub rx987_off, rx987_pos, 1
+    substr rx987_tgt, rx987_tgt, rx987_off
+  rx987_start:
+    eq $I10, 1, rx987_restart
+    if_null rx987_debug, debug_814
+    rx987_cur."!cursor_debug"("START", "semilist")
+  debug_814:
     $I10 = self.'from'()
     ne $I10, -1, rxscan991_done
     goto rxscan991_scan
   rxscan991_loop:
-    ($P10) = rx988_cur."from"()
+    ($P10) = rx987_cur."from"()
     inc $P10
-    set rx988_pos, $P10
-    ge rx988_pos, rx988_eos, rxscan991_done
+    set rx987_pos, $P10
+    ge rx987_pos, rx987_eos, rxscan991_done
   rxscan991_scan:
     set_addr $I10, rxscan991_loop
-    rx988_cur."!mark_push"(0, rx988_pos, $I10)
+    rx987_cur."!mark_push"(0, rx987_pos, $I10)
   rxscan991_done:
-  # rx enumcharlist negate=0 zerowidth
-    ge rx988_pos, rx988_eos, rx988_fail
-    sub $I10, rx988_pos, rx988_off
-    substr $S10, rx988_tgt, $I10, 1
-    index $I11, "<", $S10
-    lt $I11, 0, rx988_fail
-  # rx subrule "quote_EXPR" subtype=capture negate=
-    rx988_cur."!cursor_pos"(rx988_pos)
-    $P10 = rx988_cur."quote_EXPR"(":q")
-    unless $P10, rx988_fail
-    rx988_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
-    rx988_pos = $P10."pos"()
-  # rx subrule "O" subtype=capture negate=
-    rx988_cur."!cursor_pos"(rx988_pos)
-    $P10 = rx988_cur."O"("%methodop")
-    unless $P10, rx988_fail
-    rx988_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("O")
-    rx988_pos = $P10."pos"()
-  # rx pass
-    rx988_cur."!cursor_pass"(rx988_pos, "postcircumfix:sym<ang>")
-    if_null rx988_debug, debug_821
-    rx988_cur."!cursor_debug"("PASS", "postcircumfix:sym<ang>", " at pos=", rx988_pos)
-  debug_821:
-    .return (rx988_cur)
-  rx988_restart:
-    if_null rx988_debug, debug_822
-    rx988_cur."!cursor_debug"("NEXT", "postcircumfix:sym<ang>")
-  debug_822:
-  rx988_fail:
-    (rx988_rep, rx988_pos, $I10, $P10) = rx988_cur."!mark_fail"(0)
-    lt rx988_pos, -1, rx988_done
-    eq rx988_pos, -1, rx988_fail
-    jump $I10
-  rx988_done:
-    rx988_cur."!cursor_fail"()
-    if_null rx988_debug, debug_823
-    rx988_cur."!cursor_debug"("FAIL", "postcircumfix:sym<ang>")
-  debug_823:
-    .return (rx988_cur)
+.annotate 'line', 450
+  # rx subrule "ws" subtype=method negate=
+    rx987_cur."!cursor_pos"(rx987_pos)
+    $P10 = rx987_cur."ws"()
+    unless $P10, rx987_fail
+    rx987_pos = $P10."pos"()
+  # rx subrule "statement" subtype=capture negate=
+    rx987_cur."!cursor_pos"(rx987_pos)
+    $P10 = rx987_cur."statement"()
+    unless $P10, rx987_fail
+    rx987_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("statement")
+    rx987_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx987_cur."!cursor_pos"(rx987_pos)
+    $P10 = rx987_cur."ws"()
+    unless $P10, rx987_fail
+    rx987_pos = $P10."pos"()
+  # rx pass
+    rx987_cur."!cursor_pass"(rx987_pos, "semilist")
+    if_null rx987_debug, debug_815
+    rx987_cur."!cursor_debug"("PASS", "semilist", " at pos=", rx987_pos)
+  debug_815:
+    .return (rx987_cur)
+  rx987_restart:
+.annotate 'line', 4
+    if_null rx987_debug, debug_816
+    rx987_cur."!cursor_debug"("NEXT", "semilist")
+  debug_816:
+  rx987_fail:
+    (rx987_rep, rx987_pos, $I10, $P10) = rx987_cur."!mark_fail"(0)
+    lt rx987_pos, -1, rx987_done
+    eq rx987_pos, -1, rx987_fail
+    jump $I10
+  rx987_done:
+    rx987_cur."!cursor_fail"()
+    if_null rx987_debug, debug_817
+    rx987_cur."!cursor_debug"("FAIL", "semilist")
+  debug_817:
+    .return (rx987_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("249_1283975947.19641") :method
-.annotate 'line', 0
+.sub "!PREFIX__semilist"  :subid("245_1284728478.15265") :method
+.annotate 'line', 4
+    $P989 = self."!PREFIX__!subrule"("ws", "")
     new $P990, "ResizablePMCArray"
-    push $P990, "<"
+    push $P990, $P989
     .return ($P990)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<( )>"  :subid("250_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx993_tgt
-    .local int rx993_pos
-    .local int rx993_off
-    .local int rx993_eos
-    .local int rx993_rep
-    .local pmc rx993_cur
-    .local pmc rx993_debug
-    (rx993_cur, rx993_pos, rx993_tgt, $I10) = self."!cursor_start"()
-    getattribute rx993_debug, rx993_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx993_cur
-    .local pmc match
-    .lex "$/", match
-    length rx993_eos, rx993_tgt
-    gt rx993_pos, rx993_eos, rx993_done
-    set rx993_off, 0
-    lt rx993_pos, 2, rx993_start
-    sub rx993_off, rx993_pos, 1
-    substr rx993_tgt, rx993_tgt, rx993_off
-  rx993_start:
-    eq $I10, 1, rx993_restart
-    if_null rx993_debug, debug_824
-    rx993_cur."!cursor_debug"("START", "postcircumfix:sym<( )>")
-  debug_824:
+.sub "infixish"  :subid("246_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx995_tgt
+    .local int rx995_pos
+    .local int rx995_off
+    .local int rx995_eos
+    .local int rx995_rep
+    .local pmc rx995_cur
+    .local pmc rx995_debug
+    (rx995_cur, rx995_pos, rx995_tgt, $I10) = self."!cursor_start"()
+    getattribute rx995_debug, rx995_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx995_cur
+    .local pmc match
+    .lex "$/", match
+    length rx995_eos, rx995_tgt
+    gt rx995_pos, rx995_eos, rx995_done
+    set rx995_off, 0
+    lt rx995_pos, 2, rx995_start
+    sub rx995_off, rx995_pos, 1
+    substr rx995_tgt, rx995_tgt, rx995_off
+  rx995_start:
+    eq $I10, 1, rx995_restart
+    if_null rx995_debug, debug_818
+    rx995_cur."!cursor_debug"("START", "infixish")
+  debug_818:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan997_done
-    goto rxscan997_scan
-  rxscan997_loop:
-    ($P10) = rx993_cur."from"()
-    inc $P10
-    set rx993_pos, $P10
-    ge rx993_pos, rx993_eos, rxscan997_done
-  rxscan997_scan:
-    set_addr $I10, rxscan997_loop
-    rx993_cur."!mark_push"(0, rx993_pos, $I10)
-  rxscan997_done:
-  # rx literal  "("
-    add $I11, rx993_pos, 1
-    gt $I11, rx993_eos, rx993_fail
-    sub $I11, rx993_pos, rx993_off
-    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)
-    $P10 = rx993_cur."ws"()
-    unless $P10, rx993_fail
-    rx993_pos = $P10."pos"()
-  # rx subrule "arglist" subtype=capture negate=
-    rx993_cur."!cursor_pos"(rx993_pos)
-    $P10 = rx993_cur."arglist"()
-    unless $P10, rx993_fail
-    rx993_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("arglist")
-    rx993_pos = $P10."pos"()
-  # rx literal  ")"
-    add $I11, rx993_pos, 1
-    gt $I11, rx993_eos, rx993_fail
-    sub $I11, rx993_pos, rx993_off
-    ord $I11, rx993_tgt, $I11
-    ne $I11, 41, rx993_fail
-    add rx993_pos, 1
-  # rx subrule "O" subtype=capture negate=
-    rx993_cur."!cursor_pos"(rx993_pos)
-    $P10 = rx993_cur."O"("%methodop")
-    unless $P10, rx993_fail
-    rx993_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("O")
-    rx993_pos = $P10."pos"()
+    ne $I10, -1, rxscan998_done
+    goto rxscan998_scan
+  rxscan998_loop:
+    ($P10) = rx995_cur."from"()
+    inc $P10
+    set rx995_pos, $P10
+    ge rx995_pos, rx995_eos, rxscan998_done
+  rxscan998_scan:
+    set_addr $I10, rxscan998_loop
+    rx995_cur."!mark_push"(0, rx995_pos, $I10)
+  rxscan998_done:
+.annotate 'line', 473
+  # rx subrule "infixstopper" subtype=zerowidth negate=1
+    rx995_cur."!cursor_pos"(rx995_pos)
+    $P10 = rx995_cur."infixstopper"()
+    if $P10, rx995_fail
+  # rx subrule "infix" subtype=capture negate=
+    rx995_cur."!cursor_pos"(rx995_pos)
+    $P10 = rx995_cur."infix"()
+    unless $P10, rx995_fail
+    rx995_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("OPER=infix")
+    rx995_pos = $P10."pos"()
   # rx pass
-    rx993_cur."!cursor_pass"(rx993_pos, "postcircumfix:sym<( )>")
-    if_null rx993_debug, debug_825
-    rx993_cur."!cursor_debug"("PASS", "postcircumfix:sym<( )>", " at pos=", rx993_pos)
-  debug_825:
-    .return (rx993_cur)
-  rx993_restart:
-    if_null rx993_debug, debug_826
-    rx993_cur."!cursor_debug"("NEXT", "postcircumfix:sym<( )>")
-  debug_826:
-  rx993_fail:
-    (rx993_rep, rx993_pos, $I10, $P10) = rx993_cur."!mark_fail"(0)
-    lt rx993_pos, -1, rx993_done
-    eq rx993_pos, -1, rx993_fail
-    jump $I10
-  rx993_done:
-    rx993_cur."!cursor_fail"()
-    if_null rx993_debug, debug_827
-    rx993_cur."!cursor_debug"("FAIL", "postcircumfix:sym<( )>")
-  debug_827:
-    .return (rx993_cur)
+    rx995_cur."!cursor_pass"(rx995_pos, "infixish")
+    if_null rx995_debug, debug_819
+    rx995_cur."!cursor_debug"("PASS", "infixish", " at pos=", rx995_pos)
+  debug_819:
+    .return (rx995_cur)
+  rx995_restart:
+.annotate 'line', 454
+    if_null rx995_debug, debug_820
+    rx995_cur."!cursor_debug"("NEXT", "infixish")
+  debug_820:
+  rx995_fail:
+    (rx995_rep, rx995_pos, $I10, $P10) = rx995_cur."!mark_fail"(0)
+    lt rx995_pos, -1, rx995_done
+    eq rx995_pos, -1, rx995_fail
+    jump $I10
+  rx995_done:
+    rx995_cur."!cursor_fail"()
+    if_null rx995_debug, debug_821
+    rx995_cur."!cursor_debug"("FAIL", "infixish")
+  debug_821:
+    .return (rx995_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("251_1283975947.19641") :method
-.annotate 'line', 0
-    $P995 = self."!PREFIX__!subrule"("ws", "(")
-    new $P996, "ResizablePMCArray"
-    push $P996, $P995
-    .return ($P996)
+.sub "!PREFIX__infixish"  :subid("247_1284728478.15265") :method
+.annotate 'line', 454
+    new $P997, "ResizablePMCArray"
+    push $P997, ""
+    .return ($P997)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<.>"  :subid("252_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx999_tgt
-    .local int rx999_pos
-    .local int rx999_off
-    .local int rx999_eos
-    .local int rx999_rep
-    .local pmc rx999_cur
-    .local pmc rx999_debug
-    (rx999_cur, rx999_pos, rx999_tgt, $I10) = self."!cursor_start"()
-    getattribute rx999_debug, rx999_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx999_cur
-    .local pmc match
-    .lex "$/", match
-    length rx999_eos, rx999_tgt
-    gt rx999_pos, rx999_eos, rx999_done
-    set rx999_off, 0
-    lt rx999_pos, 2, rx999_start
-    sub rx999_off, rx999_pos, 1
-    substr rx999_tgt, rx999_tgt, rx999_off
-  rx999_start:
-    eq $I10, 1, rx999_restart
-    if_null rx999_debug, debug_828
-    rx999_cur."!cursor_debug"("START", "postfix:sym<.>")
-  debug_828:
+.sub "infixstopper"  :subid("248_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1000_tgt
+    .local int rx1000_pos
+    .local int rx1000_off
+    .local int rx1000_eos
+    .local int rx1000_rep
+    .local pmc rx1000_cur
+    .local pmc rx1000_debug
+    (rx1000_cur, rx1000_pos, rx1000_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1000_debug, rx1000_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1000_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1000_eos, rx1000_tgt
+    gt rx1000_pos, rx1000_eos, rx1000_done
+    set rx1000_off, 0
+    lt rx1000_pos, 2, rx1000_start
+    sub rx1000_off, rx1000_pos, 1
+    substr rx1000_tgt, rx1000_tgt, rx1000_off
+  rx1000_start:
+    eq $I10, 1, rx1000_restart
+    if_null rx1000_debug, debug_822
+    rx1000_cur."!cursor_debug"("START", "infixstopper")
+  debug_822:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1003_done
     goto rxscan1003_scan
   rxscan1003_loop:
-    ($P10) = rx999_cur."from"()
+    ($P10) = rx1000_cur."from"()
     inc $P10
-    set rx999_pos, $P10
-    ge rx999_pos, rx999_eos, rxscan1003_done
+    set rx1000_pos, $P10
+    ge rx1000_pos, rx1000_eos, rxscan1003_done
   rxscan1003_scan:
     set_addr $I10, rxscan1003_loop
-    rx999_cur."!mark_push"(0, rx999_pos, $I10)
+    rx1000_cur."!mark_push"(0, rx1000_pos, $I10)
   rxscan1003_done:
-  # rx subrule "dotty" subtype=capture negate=
-    rx999_cur."!cursor_pos"(rx999_pos)
-    $P10 = rx999_cur."dotty"()
-    unless $P10, rx999_fail
-    rx999_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("dotty")
-    rx999_pos = $P10."pos"()
-  # rx subrule "O" subtype=capture negate=
-    rx999_cur."!cursor_pos"(rx999_pos)
-    $P10 = rx999_cur."O"("%methodop")
-    unless $P10, rx999_fail
-    rx999_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("O")
-    rx999_pos = $P10."pos"()
-  # rx pass
-    rx999_cur."!cursor_pass"(rx999_pos, "postfix:sym<.>")
-    if_null rx999_debug, debug_829
-    rx999_cur."!cursor_debug"("PASS", "postfix:sym<.>", " at pos=", rx999_pos)
-  debug_829:
-    .return (rx999_cur)
-  rx999_restart:
-    if_null rx999_debug, debug_830
-    rx999_cur."!cursor_debug"("NEXT", "postfix:sym<.>")
-  debug_830:
-  rx999_fail:
-    (rx999_rep, rx999_pos, $I10, $P10) = rx999_cur."!mark_fail"(0)
-    lt rx999_pos, -1, rx999_done
-    eq rx999_pos, -1, rx999_fail
-    jump $I10
-  rx999_done:
-    rx999_cur."!cursor_fail"()
-    if_null rx999_debug, debug_831
-    rx999_cur."!cursor_debug"("FAIL", "postfix:sym<.>")
-  debug_831:
-    .return (rx999_cur)
+.annotate 'line', 474
+  # rx subrule "lambda" subtype=zerowidth negate=
+    rx1000_cur."!cursor_pos"(rx1000_pos)
+    $P10 = rx1000_cur."lambda"()
+    unless $P10, rx1000_fail
+  # rx pass
+    rx1000_cur."!cursor_pass"(rx1000_pos, "infixstopper")
+    if_null rx1000_debug, debug_823
+    rx1000_cur."!cursor_debug"("PASS", "infixstopper", " at pos=", rx1000_pos)
+  debug_823:
+    .return (rx1000_cur)
+  rx1000_restart:
+.annotate 'line', 454
+    if_null rx1000_debug, debug_824
+    rx1000_cur."!cursor_debug"("NEXT", "infixstopper")
+  debug_824:
+  rx1000_fail:
+    (rx1000_rep, rx1000_pos, $I10, $P10) = rx1000_cur."!mark_fail"(0)
+    lt rx1000_pos, -1, rx1000_done
+    eq rx1000_pos, -1, rx1000_fail
+    jump $I10
+  rx1000_done:
+    rx1000_cur."!cursor_fail"()
+    if_null rx1000_debug, debug_825
+    rx1000_cur."!cursor_debug"("FAIL", "infixstopper")
+  debug_825:
+    .return (rx1000_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<.>"  :subid("253_1283975947.19641") :method
-.annotate 'line', 0
-    $P1001 = self."!PREFIX__!subrule"("dotty", "")
+.sub "!PREFIX__infixstopper"  :subid("249_1284728478.15265") :method
+.annotate 'line', 454
     new $P1002, "ResizablePMCArray"
-    push $P1002, $P1001
+    push $P1002, ""
     .return ($P1002)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<++>"  :subid("254_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
+.sub "postcircumfix:sym<[ ]>"  :subid("250_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
     .local string rx1005_tgt
     .local int rx1005_pos
     .local int rx1005_off
@@ -13664,9 +13891,9 @@
     substr rx1005_tgt, rx1005_tgt, rx1005_off
   rx1005_start:
     eq $I10, 1, rx1005_restart
-    if_null rx1005_debug, debug_832
-    rx1005_cur."!cursor_debug"("START", "prefix:sym<++>")
-  debug_832:
+    if_null rx1005_debug, debug_826
+    rx1005_cur."!cursor_debug"("START", "postcircumfix:sym<[ ]>")
+  debug_826:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1009_done
     goto rxscan1009_scan
@@ -13679,44 +13906,53 @@
     set_addr $I10, rxscan1009_loop
     rx1005_cur."!mark_push"(0, rx1005_pos, $I10)
   rxscan1009_done:
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_1010_fail
-    rx1005_cur."!mark_push"(0, rx1005_pos, $I10)
-  # rx literal  "++"
-    add $I11, rx1005_pos, 2
+.annotate 'line', 477
+  # rx literal  "["
+    add $I11, rx1005_pos, 1
     gt $I11, rx1005_eos, rx1005_fail
     sub $I11, rx1005_pos, rx1005_off
-    substr $S10, rx1005_tgt, $I11, 2
-    ne $S10, "++", rx1005_fail
-    add rx1005_pos, 2
-    set_addr $I10, rxcap_1010_fail
-    ($I12, $I11) = rx1005_cur."!mark_peek"($I10)
-    rx1005_cur."!cursor_pos"($I11)
-    ($P10) = rx1005_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1005_pos, "")
+    ord $I11, rx1005_tgt, $I11
+    ne $I11, 91, rx1005_fail
+    add rx1005_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx1005_cur."!cursor_pos"(rx1005_pos)
+    $P10 = rx1005_cur."ws"()
+    unless $P10, rx1005_fail
+    rx1005_pos = $P10."pos"()
+  # rx subrule "EXPR" subtype=capture negate=
+    rx1005_cur."!cursor_pos"(rx1005_pos)
+    $P10 = rx1005_cur."EXPR"()
+    unless $P10, rx1005_fail
     rx1005_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_1010_done
-  rxcap_1010_fail:
-    goto rx1005_fail
-  rxcap_1010_done:
+    $P10."!cursor_names"("EXPR")
+    rx1005_pos = $P10."pos"()
+  # rx literal  "]"
+    add $I11, rx1005_pos, 1
+    gt $I11, rx1005_eos, rx1005_fail
+    sub $I11, rx1005_pos, rx1005_off
+    ord $I11, rx1005_tgt, $I11
+    ne $I11, 93, rx1005_fail
+    add rx1005_pos, 1
+.annotate 'line', 478
   # rx subrule "O" subtype=capture negate=
     rx1005_cur."!cursor_pos"(rx1005_pos)
-    $P10 = rx1005_cur."O"("%autoincrement, :pirop<inc>")
+    $P10 = rx1005_cur."O"("%methodop")
     unless $P10, rx1005_fail
     rx1005_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
     rx1005_pos = $P10."pos"()
+.annotate 'line', 476
   # rx pass
-    rx1005_cur."!cursor_pass"(rx1005_pos, "prefix:sym<++>")
-    if_null rx1005_debug, debug_833
-    rx1005_cur."!cursor_debug"("PASS", "prefix:sym<++>", " at pos=", rx1005_pos)
-  debug_833:
+    rx1005_cur."!cursor_pass"(rx1005_pos, "postcircumfix:sym<[ ]>")
+    if_null rx1005_debug, debug_827
+    rx1005_cur."!cursor_debug"("PASS", "postcircumfix:sym<[ ]>", " at pos=", rx1005_pos)
+  debug_827:
     .return (rx1005_cur)
   rx1005_restart:
-    if_null rx1005_debug, debug_834
-    rx1005_cur."!cursor_debug"("NEXT", "prefix:sym<++>")
-  debug_834:
+.annotate 'line', 454
+    if_null rx1005_debug, debug_828
+    rx1005_cur."!cursor_debug"("NEXT", "postcircumfix:sym<[ ]>")
+  debug_828:
   rx1005_fail:
     (rx1005_rep, rx1005_pos, $I10, $P10) = rx1005_cur."!mark_fail"(0)
     lt rx1005_pos, -1, rx1005_done
@@ -13724,18 +13960,18 @@
     jump $I10
   rx1005_done:
     rx1005_cur."!cursor_fail"()
-    if_null rx1005_debug, debug_835
-    rx1005_cur."!cursor_debug"("FAIL", "prefix:sym<++>")
-  debug_835:
+    if_null rx1005_debug, debug_829
+    rx1005_cur."!cursor_debug"("FAIL", "postcircumfix:sym<[ ]>")
+  debug_829:
     .return (rx1005_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<++>"  :subid("255_1283975947.19641") :method
-.annotate 'line', 0
-    $P1007 = self."!PREFIX__!subrule"("O", "++")
+.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("251_1284728478.15265") :method
+.annotate 'line', 454
+    $P1007 = self."!PREFIX__!subrule"("ws", "[")
     new $P1008, "ResizablePMCArray"
     push $P1008, $P1007
     .return ($P1008)
@@ -13743,6114 +13979,6762 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<-->"  :subid("256_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1012_tgt
-    .local int rx1012_pos
-    .local int rx1012_off
-    .local int rx1012_eos
-    .local int rx1012_rep
-    .local pmc rx1012_cur
-    .local pmc rx1012_debug
-    (rx1012_cur, rx1012_pos, rx1012_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1012_debug, rx1012_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1012_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1012_eos, rx1012_tgt
-    gt rx1012_pos, rx1012_eos, rx1012_done
-    set rx1012_off, 0
-    lt rx1012_pos, 2, rx1012_start
-    sub rx1012_off, rx1012_pos, 1
-    substr rx1012_tgt, rx1012_tgt, rx1012_off
-  rx1012_start:
-    eq $I10, 1, rx1012_restart
-    if_null rx1012_debug, debug_836
-    rx1012_cur."!cursor_debug"("START", "prefix:sym<-->")
-  debug_836:
+.sub "postcircumfix:sym<{ }>"  :subid("252_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1011_tgt
+    .local int rx1011_pos
+    .local int rx1011_off
+    .local int rx1011_eos
+    .local int rx1011_rep
+    .local pmc rx1011_cur
+    .local pmc rx1011_debug
+    (rx1011_cur, rx1011_pos, rx1011_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1011_debug, rx1011_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1011_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1011_eos, rx1011_tgt
+    gt rx1011_pos, rx1011_eos, rx1011_done
+    set rx1011_off, 0
+    lt rx1011_pos, 2, rx1011_start
+    sub rx1011_off, rx1011_pos, 1
+    substr rx1011_tgt, rx1011_tgt, rx1011_off
+  rx1011_start:
+    eq $I10, 1, rx1011_restart
+    if_null rx1011_debug, debug_830
+    rx1011_cur."!cursor_debug"("START", "postcircumfix:sym<{ }>")
+  debug_830:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1016_done
-    goto rxscan1016_scan
-  rxscan1016_loop:
-    ($P10) = rx1012_cur."from"()
-    inc $P10
-    set rx1012_pos, $P10
-    ge rx1012_pos, rx1012_eos, rxscan1016_done
-  rxscan1016_scan:
-    set_addr $I10, rxscan1016_loop
-    rx1012_cur."!mark_push"(0, rx1012_pos, $I10)
-  rxscan1016_done:
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_1017_fail
-    rx1012_cur."!mark_push"(0, rx1012_pos, $I10)
-  # rx literal  "--"
-    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
-    add rx1012_pos, 2
-    set_addr $I10, rxcap_1017_fail
-    ($I12, $I11) = rx1012_cur."!mark_peek"($I10)
-    rx1012_cur."!cursor_pos"($I11)
-    ($P10) = rx1012_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1012_pos, "")
-    rx1012_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_1017_done
-  rxcap_1017_fail:
-    goto rx1012_fail
-  rxcap_1017_done:
+    ne $I10, -1, rxscan1015_done
+    goto rxscan1015_scan
+  rxscan1015_loop:
+    ($P10) = rx1011_cur."from"()
+    inc $P10
+    set rx1011_pos, $P10
+    ge rx1011_pos, rx1011_eos, rxscan1015_done
+  rxscan1015_scan:
+    set_addr $I10, rxscan1015_loop
+    rx1011_cur."!mark_push"(0, rx1011_pos, $I10)
+  rxscan1015_done:
+.annotate 'line', 482
+  # rx literal  "{"
+    add $I11, rx1011_pos, 1
+    gt $I11, rx1011_eos, rx1011_fail
+    sub $I11, rx1011_pos, rx1011_off
+    ord $I11, rx1011_tgt, $I11
+    ne $I11, 123, rx1011_fail
+    add rx1011_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx1011_cur."!cursor_pos"(rx1011_pos)
+    $P10 = rx1011_cur."ws"()
+    unless $P10, rx1011_fail
+    rx1011_pos = $P10."pos"()
+  # rx subrule "EXPR" subtype=capture negate=
+    rx1011_cur."!cursor_pos"(rx1011_pos)
+    $P10 = rx1011_cur."EXPR"()
+    unless $P10, rx1011_fail
+    rx1011_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("EXPR")
+    rx1011_pos = $P10."pos"()
+  # rx literal  "}"
+    add $I11, rx1011_pos, 1
+    gt $I11, rx1011_eos, rx1011_fail
+    sub $I11, rx1011_pos, rx1011_off
+    ord $I11, rx1011_tgt, $I11
+    ne $I11, 125, rx1011_fail
+    add rx1011_pos, 1
+.annotate 'line', 483
   # rx subrule "O" subtype=capture negate=
-    rx1012_cur."!cursor_pos"(rx1012_pos)
-    $P10 = rx1012_cur."O"("%autoincrement, :pirop<dec>")
-    unless $P10, rx1012_fail
-    rx1012_cur."!mark_push"(0, -1, 0, $P10)
+    rx1011_cur."!cursor_pos"(rx1011_pos)
+    $P10 = rx1011_cur."O"("%methodop")
+    unless $P10, rx1011_fail
+    rx1011_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1012_pos = $P10."pos"()
+    rx1011_pos = $P10."pos"()
+.annotate 'line', 481
   # rx pass
-    rx1012_cur."!cursor_pass"(rx1012_pos, "prefix:sym<-->")
-    if_null rx1012_debug, debug_837
-    rx1012_cur."!cursor_debug"("PASS", "prefix:sym<-->", " at pos=", rx1012_pos)
-  debug_837:
-    .return (rx1012_cur)
-  rx1012_restart:
-    if_null rx1012_debug, debug_838
-    rx1012_cur."!cursor_debug"("NEXT", "prefix:sym<-->")
-  debug_838:
-  rx1012_fail:
-    (rx1012_rep, rx1012_pos, $I10, $P10) = rx1012_cur."!mark_fail"(0)
-    lt rx1012_pos, -1, rx1012_done
-    eq rx1012_pos, -1, rx1012_fail
-    jump $I10
-  rx1012_done:
-    rx1012_cur."!cursor_fail"()
-    if_null rx1012_debug, debug_839
-    rx1012_cur."!cursor_debug"("FAIL", "prefix:sym<-->")
-  debug_839:
-    .return (rx1012_cur)
+    rx1011_cur."!cursor_pass"(rx1011_pos, "postcircumfix:sym<{ }>")
+    if_null rx1011_debug, debug_831
+    rx1011_cur."!cursor_debug"("PASS", "postcircumfix:sym<{ }>", " at pos=", rx1011_pos)
+  debug_831:
+    .return (rx1011_cur)
+  rx1011_restart:
+.annotate 'line', 454
+    if_null rx1011_debug, debug_832
+    rx1011_cur."!cursor_debug"("NEXT", "postcircumfix:sym<{ }>")
+  debug_832:
+  rx1011_fail:
+    (rx1011_rep, rx1011_pos, $I10, $P10) = rx1011_cur."!mark_fail"(0)
+    lt rx1011_pos, -1, rx1011_done
+    eq rx1011_pos, -1, rx1011_fail
+    jump $I10
+  rx1011_done:
+    rx1011_cur."!cursor_fail"()
+    if_null rx1011_debug, debug_833
+    rx1011_cur."!cursor_debug"("FAIL", "postcircumfix:sym<{ }>")
+  debug_833:
+    .return (rx1011_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<-->"  :subid("257_1283975947.19641") :method
-.annotate 'line', 0
-    $P1014 = self."!PREFIX__!subrule"("O", "--")
-    new $P1015, "ResizablePMCArray"
-    push $P1015, $P1014
-    .return ($P1015)
+.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("253_1284728478.15265") :method
+.annotate 'line', 454
+    $P1013 = self."!PREFIX__!subrule"("ws", "{")
+    new $P1014, "ResizablePMCArray"
+    push $P1014, $P1013
+    .return ($P1014)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<++>"  :subid("258_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1019_tgt
-    .local int rx1019_pos
-    .local int rx1019_off
-    .local int rx1019_eos
-    .local int rx1019_rep
-    .local pmc rx1019_cur
-    .local pmc rx1019_debug
-    (rx1019_cur, rx1019_pos, rx1019_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1019_debug, rx1019_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1019_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1019_eos, rx1019_tgt
-    gt rx1019_pos, rx1019_eos, rx1019_done
-    set rx1019_off, 0
-    lt rx1019_pos, 2, rx1019_start
-    sub rx1019_off, rx1019_pos, 1
-    substr rx1019_tgt, rx1019_tgt, rx1019_off
-  rx1019_start:
-    eq $I10, 1, rx1019_restart
-    if_null rx1019_debug, debug_840
-    rx1019_cur."!cursor_debug"("START", "postfix:sym<++>")
-  debug_840:
+.sub "postcircumfix:sym<ang>"  :subid("254_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1017_tgt
+    .local int rx1017_pos
+    .local int rx1017_off
+    .local int rx1017_eos
+    .local int rx1017_rep
+    .local pmc rx1017_cur
+    .local pmc rx1017_debug
+    (rx1017_cur, rx1017_pos, rx1017_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1017_debug, rx1017_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1017_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1017_eos, rx1017_tgt
+    gt rx1017_pos, rx1017_eos, rx1017_done
+    set rx1017_off, 0
+    lt rx1017_pos, 2, rx1017_start
+    sub rx1017_off, rx1017_pos, 1
+    substr rx1017_tgt, rx1017_tgt, rx1017_off
+  rx1017_start:
+    eq $I10, 1, rx1017_restart
+    if_null rx1017_debug, debug_834
+    rx1017_cur."!cursor_debug"("START", "postcircumfix:sym<ang>")
+  debug_834:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1023_done
-    goto rxscan1023_scan
-  rxscan1023_loop:
-    ($P10) = rx1019_cur."from"()
-    inc $P10
-    set rx1019_pos, $P10
-    ge rx1019_pos, rx1019_eos, rxscan1023_done
-  rxscan1023_scan:
-    set_addr $I10, rxscan1023_loop
-    rx1019_cur."!mark_push"(0, rx1019_pos, $I10)
-  rxscan1023_done:
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_1024_fail
-    rx1019_cur."!mark_push"(0, rx1019_pos, $I10)
-  # rx literal  "++"
-    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
-    add rx1019_pos, 2
-    set_addr $I10, rxcap_1024_fail
-    ($I12, $I11) = rx1019_cur."!mark_peek"($I10)
-    rx1019_cur."!cursor_pos"($I11)
-    ($P10) = rx1019_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1019_pos, "")
-    rx1019_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_1024_done
-  rxcap_1024_fail:
-    goto rx1019_fail
-  rxcap_1024_done:
+    ne $I10, -1, rxscan1020_done
+    goto rxscan1020_scan
+  rxscan1020_loop:
+    ($P10) = rx1017_cur."from"()
+    inc $P10
+    set rx1017_pos, $P10
+    ge rx1017_pos, rx1017_eos, rxscan1020_done
+  rxscan1020_scan:
+    set_addr $I10, rxscan1020_loop
+    rx1017_cur."!mark_push"(0, rx1017_pos, $I10)
+  rxscan1020_done:
+.annotate 'line', 487
+  # rx enumcharlist negate=0 zerowidth
+    sub $I10, rx1017_pos, rx1017_off
+    substr $S10, rx1017_tgt, $I10, 1
+    index $I11, "<", $S10
+    lt $I11, 0, rx1017_fail
+  # rx subrule "quote_EXPR" subtype=capture negate=
+    rx1017_cur."!cursor_pos"(rx1017_pos)
+    $P10 = rx1017_cur."quote_EXPR"(":q")
+    unless $P10, rx1017_fail
+    rx1017_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("quote_EXPR")
+    rx1017_pos = $P10."pos"()
+.annotate 'line', 488
   # rx subrule "O" subtype=capture negate=
-    rx1019_cur."!cursor_pos"(rx1019_pos)
-    $P10 = rx1019_cur."O"("%autoincrement")
-    unless $P10, rx1019_fail
-    rx1019_cur."!mark_push"(0, -1, 0, $P10)
+    rx1017_cur."!cursor_pos"(rx1017_pos)
+    $P10 = rx1017_cur."O"("%methodop")
+    unless $P10, rx1017_fail
+    rx1017_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1019_pos = $P10."pos"()
+    rx1017_pos = $P10."pos"()
+.annotate 'line', 486
   # rx pass
-    rx1019_cur."!cursor_pass"(rx1019_pos, "postfix:sym<++>")
-    if_null rx1019_debug, debug_841
-    rx1019_cur."!cursor_debug"("PASS", "postfix:sym<++>", " at pos=", rx1019_pos)
-  debug_841:
-    .return (rx1019_cur)
-  rx1019_restart:
-    if_null rx1019_debug, debug_842
-    rx1019_cur."!cursor_debug"("NEXT", "postfix:sym<++>")
-  debug_842:
-  rx1019_fail:
-    (rx1019_rep, rx1019_pos, $I10, $P10) = rx1019_cur."!mark_fail"(0)
-    lt rx1019_pos, -1, rx1019_done
-    eq rx1019_pos, -1, rx1019_fail
-    jump $I10
-  rx1019_done:
-    rx1019_cur."!cursor_fail"()
-    if_null rx1019_debug, debug_843
-    rx1019_cur."!cursor_debug"("FAIL", "postfix:sym<++>")
-  debug_843:
-    .return (rx1019_cur)
+    rx1017_cur."!cursor_pass"(rx1017_pos, "postcircumfix:sym<ang>")
+    if_null rx1017_debug, debug_835
+    rx1017_cur."!cursor_debug"("PASS", "postcircumfix:sym<ang>", " at pos=", rx1017_pos)
+  debug_835:
+    .return (rx1017_cur)
+  rx1017_restart:
+.annotate 'line', 454
+    if_null rx1017_debug, debug_836
+    rx1017_cur."!cursor_debug"("NEXT", "postcircumfix:sym<ang>")
+  debug_836:
+  rx1017_fail:
+    (rx1017_rep, rx1017_pos, $I10, $P10) = rx1017_cur."!mark_fail"(0)
+    lt rx1017_pos, -1, rx1017_done
+    eq rx1017_pos, -1, rx1017_fail
+    jump $I10
+  rx1017_done:
+    rx1017_cur."!cursor_fail"()
+    if_null rx1017_debug, debug_837
+    rx1017_cur."!cursor_debug"("FAIL", "postcircumfix:sym<ang>")
+  debug_837:
+    .return (rx1017_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<++>"  :subid("259_1283975947.19641") :method
-.annotate 'line', 0
-    $P1021 = self."!PREFIX__!subrule"("O", "++")
-    new $P1022, "ResizablePMCArray"
-    push $P1022, $P1021
-    .return ($P1022)
+.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("255_1284728478.15265") :method
+.annotate 'line', 454
+    new $P1019, "ResizablePMCArray"
+    push $P1019, "<"
+    .return ($P1019)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<-->"  :subid("260_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1026_tgt
-    .local int rx1026_pos
-    .local int rx1026_off
-    .local int rx1026_eos
-    .local int rx1026_rep
-    .local pmc rx1026_cur
-    .local pmc rx1026_debug
-    (rx1026_cur, rx1026_pos, rx1026_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1026_debug, rx1026_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1026_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1026_eos, rx1026_tgt
-    gt rx1026_pos, rx1026_eos, rx1026_done
-    set rx1026_off, 0
-    lt rx1026_pos, 2, rx1026_start
-    sub rx1026_off, rx1026_pos, 1
-    substr rx1026_tgt, rx1026_tgt, rx1026_off
-  rx1026_start:
-    eq $I10, 1, rx1026_restart
-    if_null rx1026_debug, debug_844
-    rx1026_cur."!cursor_debug"("START", "postfix:sym<-->")
-  debug_844:
+.sub "postcircumfix:sym<( )>"  :subid("256_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1022_tgt
+    .local int rx1022_pos
+    .local int rx1022_off
+    .local int rx1022_eos
+    .local int rx1022_rep
+    .local pmc rx1022_cur
+    .local pmc rx1022_debug
+    (rx1022_cur, rx1022_pos, rx1022_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1022_debug, rx1022_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1022_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1022_eos, rx1022_tgt
+    gt rx1022_pos, rx1022_eos, rx1022_done
+    set rx1022_off, 0
+    lt rx1022_pos, 2, rx1022_start
+    sub rx1022_off, rx1022_pos, 1
+    substr rx1022_tgt, rx1022_tgt, rx1022_off
+  rx1022_start:
+    eq $I10, 1, rx1022_restart
+    if_null rx1022_debug, debug_838
+    rx1022_cur."!cursor_debug"("START", "postcircumfix:sym<( )>")
+  debug_838:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1030_done
-    goto rxscan1030_scan
-  rxscan1030_loop:
-    ($P10) = rx1026_cur."from"()
-    inc $P10
-    set rx1026_pos, $P10
-    ge rx1026_pos, rx1026_eos, rxscan1030_done
-  rxscan1030_scan:
-    set_addr $I10, rxscan1030_loop
-    rx1026_cur."!mark_push"(0, rx1026_pos, $I10)
-  rxscan1030_done:
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_1031_fail
-    rx1026_cur."!mark_push"(0, rx1026_pos, $I10)
-  # rx literal  "--"
-    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
-    add rx1026_pos, 2
-    set_addr $I10, rxcap_1031_fail
-    ($I12, $I11) = rx1026_cur."!mark_peek"($I10)
-    rx1026_cur."!cursor_pos"($I11)
-    ($P10) = rx1026_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1026_pos, "")
-    rx1026_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_1031_done
-  rxcap_1031_fail:
-    goto rx1026_fail
-  rxcap_1031_done:
+    ne $I10, -1, rxscan1026_done
+    goto rxscan1026_scan
+  rxscan1026_loop:
+    ($P10) = rx1022_cur."from"()
+    inc $P10
+    set rx1022_pos, $P10
+    ge rx1022_pos, rx1022_eos, rxscan1026_done
+  rxscan1026_scan:
+    set_addr $I10, rxscan1026_loop
+    rx1022_cur."!mark_push"(0, rx1022_pos, $I10)
+  rxscan1026_done:
+.annotate 'line', 492
+  # rx literal  "("
+    add $I11, rx1022_pos, 1
+    gt $I11, rx1022_eos, rx1022_fail
+    sub $I11, rx1022_pos, rx1022_off
+    ord $I11, rx1022_tgt, $I11
+    ne $I11, 40, rx1022_fail
+    add rx1022_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx1022_cur."!cursor_pos"(rx1022_pos)
+    $P10 = rx1022_cur."ws"()
+    unless $P10, rx1022_fail
+    rx1022_pos = $P10."pos"()
+  # rx subrule "arglist" subtype=capture negate=
+    rx1022_cur."!cursor_pos"(rx1022_pos)
+    $P10 = rx1022_cur."arglist"()
+    unless $P10, rx1022_fail
+    rx1022_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("arglist")
+    rx1022_pos = $P10."pos"()
+  # rx literal  ")"
+    add $I11, rx1022_pos, 1
+    gt $I11, rx1022_eos, rx1022_fail
+    sub $I11, rx1022_pos, rx1022_off
+    ord $I11, rx1022_tgt, $I11
+    ne $I11, 41, rx1022_fail
+    add rx1022_pos, 1
+.annotate 'line', 493
+  # rx subrule "O" subtype=capture negate=
+    rx1022_cur."!cursor_pos"(rx1022_pos)
+    $P10 = rx1022_cur."O"("%methodop")
+    unless $P10, rx1022_fail
+    rx1022_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("O")
+    rx1022_pos = $P10."pos"()
+.annotate 'line', 491
+  # rx pass
+    rx1022_cur."!cursor_pass"(rx1022_pos, "postcircumfix:sym<( )>")
+    if_null rx1022_debug, debug_839
+    rx1022_cur."!cursor_debug"("PASS", "postcircumfix:sym<( )>", " at pos=", rx1022_pos)
+  debug_839:
+    .return (rx1022_cur)
+  rx1022_restart:
+.annotate 'line', 454
+    if_null rx1022_debug, debug_840
+    rx1022_cur."!cursor_debug"("NEXT", "postcircumfix:sym<( )>")
+  debug_840:
+  rx1022_fail:
+    (rx1022_rep, rx1022_pos, $I10, $P10) = rx1022_cur."!mark_fail"(0)
+    lt rx1022_pos, -1, rx1022_done
+    eq rx1022_pos, -1, rx1022_fail
+    jump $I10
+  rx1022_done:
+    rx1022_cur."!cursor_fail"()
+    if_null rx1022_debug, debug_841
+    rx1022_cur."!cursor_debug"("FAIL", "postcircumfix:sym<( )>")
+  debug_841:
+    .return (rx1022_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("257_1284728478.15265") :method
+.annotate 'line', 454
+    $P1024 = self."!PREFIX__!subrule"("ws", "(")
+    new $P1025, "ResizablePMCArray"
+    push $P1025, $P1024
+    .return ($P1025)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "postfix:sym<.>"  :subid("258_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1028_tgt
+    .local int rx1028_pos
+    .local int rx1028_off
+    .local int rx1028_eos
+    .local int rx1028_rep
+    .local pmc rx1028_cur
+    .local pmc rx1028_debug
+    (rx1028_cur, rx1028_pos, rx1028_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1028_debug, rx1028_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1028_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1028_eos, rx1028_tgt
+    gt rx1028_pos, rx1028_eos, rx1028_done
+    set rx1028_off, 0
+    lt rx1028_pos, 2, rx1028_start
+    sub rx1028_off, rx1028_pos, 1
+    substr rx1028_tgt, rx1028_tgt, rx1028_off
+  rx1028_start:
+    eq $I10, 1, rx1028_restart
+    if_null rx1028_debug, debug_842
+    rx1028_cur."!cursor_debug"("START", "postfix:sym<.>")
+  debug_842:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1032_done
+    goto rxscan1032_scan
+  rxscan1032_loop:
+    ($P10) = rx1028_cur."from"()
+    inc $P10
+    set rx1028_pos, $P10
+    ge rx1028_pos, rx1028_eos, rxscan1032_done
+  rxscan1032_scan:
+    set_addr $I10, rxscan1032_loop
+    rx1028_cur."!mark_push"(0, rx1028_pos, $I10)
+  rxscan1032_done:
+.annotate 'line', 496
+  # rx subrule "dotty" subtype=capture negate=
+    rx1028_cur."!cursor_pos"(rx1028_pos)
+    $P10 = rx1028_cur."dotty"()
+    unless $P10, rx1028_fail
+    rx1028_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("dotty")
+    rx1028_pos = $P10."pos"()
   # rx subrule "O" subtype=capture negate=
-    rx1026_cur."!cursor_pos"(rx1026_pos)
-    $P10 = rx1026_cur."O"("%autoincrement")
-    unless $P10, rx1026_fail
-    rx1026_cur."!mark_push"(0, -1, 0, $P10)
+    rx1028_cur."!cursor_pos"(rx1028_pos)
+    $P10 = rx1028_cur."O"("%methodop")
+    unless $P10, rx1028_fail
+    rx1028_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1026_pos = $P10."pos"()
+    rx1028_pos = $P10."pos"()
   # rx pass
-    rx1026_cur."!cursor_pass"(rx1026_pos, "postfix:sym<-->")
-    if_null rx1026_debug, debug_845
-    rx1026_cur."!cursor_debug"("PASS", "postfix:sym<-->", " at pos=", rx1026_pos)
+    rx1028_cur."!cursor_pass"(rx1028_pos, "postfix:sym<.>")
+    if_null rx1028_debug, debug_843
+    rx1028_cur."!cursor_debug"("PASS", "postfix:sym<.>", " at pos=", rx1028_pos)
+  debug_843:
+    .return (rx1028_cur)
+  rx1028_restart:
+.annotate 'line', 454
+    if_null rx1028_debug, debug_844
+    rx1028_cur."!cursor_debug"("NEXT", "postfix:sym<.>")
+  debug_844:
+  rx1028_fail:
+    (rx1028_rep, rx1028_pos, $I10, $P10) = rx1028_cur."!mark_fail"(0)
+    lt rx1028_pos, -1, rx1028_done
+    eq rx1028_pos, -1, rx1028_fail
+    jump $I10
+  rx1028_done:
+    rx1028_cur."!cursor_fail"()
+    if_null rx1028_debug, debug_845
+    rx1028_cur."!cursor_debug"("FAIL", "postfix:sym<.>")
   debug_845:
-    .return (rx1026_cur)
-  rx1026_restart:
-    if_null rx1026_debug, debug_846
-    rx1026_cur."!cursor_debug"("NEXT", "postfix:sym<-->")
-  debug_846:
-  rx1026_fail:
-    (rx1026_rep, rx1026_pos, $I10, $P10) = rx1026_cur."!mark_fail"(0)
-    lt rx1026_pos, -1, rx1026_done
-    eq rx1026_pos, -1, rx1026_fail
-    jump $I10
-  rx1026_done:
-    rx1026_cur."!cursor_fail"()
-    if_null rx1026_debug, debug_847
-    rx1026_cur."!cursor_debug"("FAIL", "postfix:sym<-->")
-  debug_847:
-    .return (rx1026_cur)
+    .return (rx1028_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<-->"  :subid("261_1283975947.19641") :method
-.annotate 'line', 0
-    $P1028 = self."!PREFIX__!subrule"("O", "--")
-    new $P1029, "ResizablePMCArray"
-    push $P1029, $P1028
-    .return ($P1029)
+.sub "!PREFIX__postfix:sym<.>"  :subid("259_1284728478.15265") :method
+.annotate 'line', 454
+    $P1030 = self."!PREFIX__!subrule"("dotty", "")
+    new $P1031, "ResizablePMCArray"
+    push $P1031, $P1030
+    .return ($P1031)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<**>"  :subid("262_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1033_tgt
-    .local int rx1033_pos
-    .local int rx1033_off
-    .local int rx1033_eos
-    .local int rx1033_rep
-    .local pmc rx1033_cur
-    .local pmc rx1033_debug
-    (rx1033_cur, rx1033_pos, rx1033_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1033_debug, rx1033_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1033_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1033_eos, rx1033_tgt
-    gt rx1033_pos, rx1033_eos, rx1033_done
-    set rx1033_off, 0
-    lt rx1033_pos, 2, rx1033_start
-    sub rx1033_off, rx1033_pos, 1
-    substr rx1033_tgt, rx1033_tgt, rx1033_off
-  rx1033_start:
-    eq $I10, 1, rx1033_restart
-    if_null rx1033_debug, debug_848
-    rx1033_cur."!cursor_debug"("START", "infix:sym<**>")
-  debug_848:
+.sub "prefix:sym<++>"  :subid("260_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1034_tgt
+    .local int rx1034_pos
+    .local int rx1034_off
+    .local int rx1034_eos
+    .local int rx1034_rep
+    .local pmc rx1034_cur
+    .local pmc rx1034_debug
+    (rx1034_cur, rx1034_pos, rx1034_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1034_debug, rx1034_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1034_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1034_eos, rx1034_tgt
+    gt rx1034_pos, rx1034_eos, rx1034_done
+    set rx1034_off, 0
+    lt rx1034_pos, 2, rx1034_start
+    sub rx1034_off, rx1034_pos, 1
+    substr rx1034_tgt, rx1034_tgt, rx1034_off
+  rx1034_start:
+    eq $I10, 1, rx1034_restart
+    if_null rx1034_debug, debug_846
+    rx1034_cur."!cursor_debug"("START", "prefix:sym<++>")
+  debug_846:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1037_done
-    goto rxscan1037_scan
-  rxscan1037_loop:
-    ($P10) = rx1033_cur."from"()
-    inc $P10
-    set rx1033_pos, $P10
-    ge rx1033_pos, rx1033_eos, rxscan1037_done
-  rxscan1037_scan:
-    set_addr $I10, rxscan1037_loop
-    rx1033_cur."!mark_push"(0, rx1033_pos, $I10)
-  rxscan1037_done:
+    ne $I10, -1, rxscan1038_done
+    goto rxscan1038_scan
+  rxscan1038_loop:
+    ($P10) = rx1034_cur."from"()
+    inc $P10
+    set rx1034_pos, $P10
+    ge rx1034_pos, rx1034_eos, rxscan1038_done
+  rxscan1038_scan:
+    set_addr $I10, rxscan1038_loop
+    rx1034_cur."!mark_push"(0, rx1034_pos, $I10)
+  rxscan1038_done:
+.annotate 'line', 498
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1038_fail
-    rx1033_cur."!mark_push"(0, rx1033_pos, $I10)
-  # rx literal  "**"
-    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
-    add rx1033_pos, 2
-    set_addr $I10, rxcap_1038_fail
-    ($I12, $I11) = rx1033_cur."!mark_peek"($I10)
-    rx1033_cur."!cursor_pos"($I11)
-    ($P10) = rx1033_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1033_pos, "")
-    rx1033_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1039_fail
+    rx1034_cur."!mark_push"(0, rx1034_pos, $I10)
+  # rx literal  "++"
+    add $I11, rx1034_pos, 2
+    gt $I11, rx1034_eos, rx1034_fail
+    sub $I11, rx1034_pos, rx1034_off
+    substr $S10, rx1034_tgt, $I11, 2
+    ne $S10, "++", rx1034_fail
+    add rx1034_pos, 2
+    set_addr $I10, rxcap_1039_fail
+    ($I12, $I11) = rx1034_cur."!mark_peek"($I10)
+    rx1034_cur."!cursor_pos"($I11)
+    ($P10) = rx1034_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1034_pos, "")
+    rx1034_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1038_done
-  rxcap_1038_fail:
-    goto rx1033_fail
-  rxcap_1038_done:
+    goto rxcap_1039_done
+  rxcap_1039_fail:
+    goto rx1034_fail
+  rxcap_1039_done:
   # rx subrule "O" subtype=capture negate=
-    rx1033_cur."!cursor_pos"(rx1033_pos)
-    $P10 = rx1033_cur."O"("%exponentiation, :pirop<pow>")
-    unless $P10, rx1033_fail
-    rx1033_cur."!mark_push"(0, -1, 0, $P10)
+    rx1034_cur."!cursor_pos"(rx1034_pos)
+    $P10 = rx1034_cur."O"("%autoincrement, :pirop<inc>")
+    unless $P10, rx1034_fail
+    rx1034_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1033_pos = $P10."pos"()
+    rx1034_pos = $P10."pos"()
   # rx pass
-    rx1033_cur."!cursor_pass"(rx1033_pos, "infix:sym<**>")
-    if_null rx1033_debug, debug_849
-    rx1033_cur."!cursor_debug"("PASS", "infix:sym<**>", " at pos=", rx1033_pos)
+    rx1034_cur."!cursor_pass"(rx1034_pos, "prefix:sym<++>")
+    if_null rx1034_debug, debug_847
+    rx1034_cur."!cursor_debug"("PASS", "prefix:sym<++>", " at pos=", rx1034_pos)
+  debug_847:
+    .return (rx1034_cur)
+  rx1034_restart:
+.annotate 'line', 454
+    if_null rx1034_debug, debug_848
+    rx1034_cur."!cursor_debug"("NEXT", "prefix:sym<++>")
+  debug_848:
+  rx1034_fail:
+    (rx1034_rep, rx1034_pos, $I10, $P10) = rx1034_cur."!mark_fail"(0)
+    lt rx1034_pos, -1, rx1034_done
+    eq rx1034_pos, -1, rx1034_fail
+    jump $I10
+  rx1034_done:
+    rx1034_cur."!cursor_fail"()
+    if_null rx1034_debug, debug_849
+    rx1034_cur."!cursor_debug"("FAIL", "prefix:sym<++>")
   debug_849:
-    .return (rx1033_cur)
-  rx1033_restart:
-    if_null rx1033_debug, debug_850
-    rx1033_cur."!cursor_debug"("NEXT", "infix:sym<**>")
-  debug_850:
-  rx1033_fail:
-    (rx1033_rep, rx1033_pos, $I10, $P10) = rx1033_cur."!mark_fail"(0)
-    lt rx1033_pos, -1, rx1033_done
-    eq rx1033_pos, -1, rx1033_fail
-    jump $I10
-  rx1033_done:
-    rx1033_cur."!cursor_fail"()
-    if_null rx1033_debug, debug_851
-    rx1033_cur."!cursor_debug"("FAIL", "infix:sym<**>")
-  debug_851:
-    .return (rx1033_cur)
+    .return (rx1034_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<**>"  :subid("263_1283975947.19641") :method
-.annotate 'line', 0
-    $P1035 = self."!PREFIX__!subrule"("O", "**")
-    new $P1036, "ResizablePMCArray"
-    push $P1036, $P1035
-    .return ($P1036)
+.sub "!PREFIX__prefix:sym<++>"  :subid("261_1284728478.15265") :method
+.annotate 'line', 454
+    $P1036 = self."!PREFIX__!subrule"("O", "++")
+    new $P1037, "ResizablePMCArray"
+    push $P1037, $P1036
+    .return ($P1037)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<+>"  :subid("264_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1040_tgt
-    .local int rx1040_pos
-    .local int rx1040_off
-    .local int rx1040_eos
-    .local int rx1040_rep
-    .local pmc rx1040_cur
-    .local pmc rx1040_debug
-    (rx1040_cur, rx1040_pos, rx1040_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1040_debug, rx1040_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1040_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1040_eos, rx1040_tgt
-    gt rx1040_pos, rx1040_eos, rx1040_done
-    set rx1040_off, 0
-    lt rx1040_pos, 2, rx1040_start
-    sub rx1040_off, rx1040_pos, 1
-    substr rx1040_tgt, rx1040_tgt, rx1040_off
-  rx1040_start:
-    eq $I10, 1, rx1040_restart
-    if_null rx1040_debug, debug_852
-    rx1040_cur."!cursor_debug"("START", "prefix:sym<+>")
-  debug_852:
+.sub "prefix:sym<-->"  :subid("262_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1041_tgt
+    .local int rx1041_pos
+    .local int rx1041_off
+    .local int rx1041_eos
+    .local int rx1041_rep
+    .local pmc rx1041_cur
+    .local pmc rx1041_debug
+    (rx1041_cur, rx1041_pos, rx1041_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1041_debug, rx1041_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1041_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1041_eos, rx1041_tgt
+    gt rx1041_pos, rx1041_eos, rx1041_done
+    set rx1041_off, 0
+    lt rx1041_pos, 2, rx1041_start
+    sub rx1041_off, rx1041_pos, 1
+    substr rx1041_tgt, rx1041_tgt, rx1041_off
+  rx1041_start:
+    eq $I10, 1, rx1041_restart
+    if_null rx1041_debug, debug_850
+    rx1041_cur."!cursor_debug"("START", "prefix:sym<-->")
+  debug_850:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1044_done
-    goto rxscan1044_scan
-  rxscan1044_loop:
-    ($P10) = rx1040_cur."from"()
-    inc $P10
-    set rx1040_pos, $P10
-    ge rx1040_pos, rx1040_eos, rxscan1044_done
-  rxscan1044_scan:
-    set_addr $I10, rxscan1044_loop
-    rx1040_cur."!mark_push"(0, rx1040_pos, $I10)
-  rxscan1044_done:
+    ne $I10, -1, rxscan1045_done
+    goto rxscan1045_scan
+  rxscan1045_loop:
+    ($P10) = rx1041_cur."from"()
+    inc $P10
+    set rx1041_pos, $P10
+    ge rx1041_pos, rx1041_eos, rxscan1045_done
+  rxscan1045_scan:
+    set_addr $I10, rxscan1045_loop
+    rx1041_cur."!mark_push"(0, rx1041_pos, $I10)
+  rxscan1045_done:
+.annotate 'line', 499
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1045_fail
-    rx1040_cur."!mark_push"(0, rx1040_pos, $I10)
-  # rx literal  "+"
-    add $I11, rx1040_pos, 1
-    gt $I11, rx1040_eos, rx1040_fail
-    sub $I11, rx1040_pos, rx1040_off
-    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)
-    rx1040_cur."!cursor_pos"($I11)
-    ($P10) = rx1040_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1040_pos, "")
-    rx1040_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1046_fail
+    rx1041_cur."!mark_push"(0, rx1041_pos, $I10)
+  # rx literal  "--"
+    add $I11, rx1041_pos, 2
+    gt $I11, rx1041_eos, rx1041_fail
+    sub $I11, rx1041_pos, rx1041_off
+    substr $S10, rx1041_tgt, $I11, 2
+    ne $S10, "--", rx1041_fail
+    add rx1041_pos, 2
+    set_addr $I10, rxcap_1046_fail
+    ($I12, $I11) = rx1041_cur."!mark_peek"($I10)
+    rx1041_cur."!cursor_pos"($I11)
+    ($P10) = rx1041_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1041_pos, "")
+    rx1041_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1045_done
-  rxcap_1045_fail:
-    goto rx1040_fail
-  rxcap_1045_done:
+    goto rxcap_1046_done
+  rxcap_1046_fail:
+    goto rx1041_fail
+  rxcap_1046_done:
   # rx subrule "O" subtype=capture negate=
-    rx1040_cur."!cursor_pos"(rx1040_pos)
-    $P10 = rx1040_cur."O"("%symbolic_unary, :pirop<set N*>")
-    unless $P10, rx1040_fail
-    rx1040_cur."!mark_push"(0, -1, 0, $P10)
+    rx1041_cur."!cursor_pos"(rx1041_pos)
+    $P10 = rx1041_cur."O"("%autoincrement, :pirop<dec>")
+    unless $P10, rx1041_fail
+    rx1041_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1040_pos = $P10."pos"()
+    rx1041_pos = $P10."pos"()
   # rx pass
-    rx1040_cur."!cursor_pass"(rx1040_pos, "prefix:sym<+>")
-    if_null rx1040_debug, debug_853
-    rx1040_cur."!cursor_debug"("PASS", "prefix:sym<+>", " at pos=", rx1040_pos)
+    rx1041_cur."!cursor_pass"(rx1041_pos, "prefix:sym<-->")
+    if_null rx1041_debug, debug_851
+    rx1041_cur."!cursor_debug"("PASS", "prefix:sym<-->", " at pos=", rx1041_pos)
+  debug_851:
+    .return (rx1041_cur)
+  rx1041_restart:
+.annotate 'line', 454
+    if_null rx1041_debug, debug_852
+    rx1041_cur."!cursor_debug"("NEXT", "prefix:sym<-->")
+  debug_852:
+  rx1041_fail:
+    (rx1041_rep, rx1041_pos, $I10, $P10) = rx1041_cur."!mark_fail"(0)
+    lt rx1041_pos, -1, rx1041_done
+    eq rx1041_pos, -1, rx1041_fail
+    jump $I10
+  rx1041_done:
+    rx1041_cur."!cursor_fail"()
+    if_null rx1041_debug, debug_853
+    rx1041_cur."!cursor_debug"("FAIL", "prefix:sym<-->")
   debug_853:
-    .return (rx1040_cur)
-  rx1040_restart:
-    if_null rx1040_debug, debug_854
-    rx1040_cur."!cursor_debug"("NEXT", "prefix:sym<+>")
-  debug_854:
-  rx1040_fail:
-    (rx1040_rep, rx1040_pos, $I10, $P10) = rx1040_cur."!mark_fail"(0)
-    lt rx1040_pos, -1, rx1040_done
-    eq rx1040_pos, -1, rx1040_fail
-    jump $I10
-  rx1040_done:
-    rx1040_cur."!cursor_fail"()
-    if_null rx1040_debug, debug_855
-    rx1040_cur."!cursor_debug"("FAIL", "prefix:sym<+>")
-  debug_855:
-    .return (rx1040_cur)
+    .return (rx1041_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<+>"  :subid("265_1283975947.19641") :method
-.annotate 'line', 0
-    $P1042 = self."!PREFIX__!subrule"("O", "+")
-    new $P1043, "ResizablePMCArray"
-    push $P1043, $P1042
-    .return ($P1043)
+.sub "!PREFIX__prefix:sym<-->"  :subid("263_1284728478.15265") :method
+.annotate 'line', 454
+    $P1043 = self."!PREFIX__!subrule"("O", "--")
+    new $P1044, "ResizablePMCArray"
+    push $P1044, $P1043
+    .return ($P1044)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<~>"  :subid("266_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1047_tgt
-    .local int rx1047_pos
-    .local int rx1047_off
-    .local int rx1047_eos
-    .local int rx1047_rep
-    .local pmc rx1047_cur
-    .local pmc rx1047_debug
-    (rx1047_cur, rx1047_pos, rx1047_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1047_debug, rx1047_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1047_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1047_eos, rx1047_tgt
-    gt rx1047_pos, rx1047_eos, rx1047_done
-    set rx1047_off, 0
-    lt rx1047_pos, 2, rx1047_start
-    sub rx1047_off, rx1047_pos, 1
-    substr rx1047_tgt, rx1047_tgt, rx1047_off
-  rx1047_start:
-    eq $I10, 1, rx1047_restart
-    if_null rx1047_debug, debug_856
-    rx1047_cur."!cursor_debug"("START", "prefix:sym<~>")
-  debug_856:
+.sub "postfix:sym<++>"  :subid("264_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1048_tgt
+    .local int rx1048_pos
+    .local int rx1048_off
+    .local int rx1048_eos
+    .local int rx1048_rep
+    .local pmc rx1048_cur
+    .local pmc rx1048_debug
+    (rx1048_cur, rx1048_pos, rx1048_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1048_debug, rx1048_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1048_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1048_eos, rx1048_tgt
+    gt rx1048_pos, rx1048_eos, rx1048_done
+    set rx1048_off, 0
+    lt rx1048_pos, 2, rx1048_start
+    sub rx1048_off, rx1048_pos, 1
+    substr rx1048_tgt, rx1048_tgt, rx1048_off
+  rx1048_start:
+    eq $I10, 1, rx1048_restart
+    if_null rx1048_debug, debug_854
+    rx1048_cur."!cursor_debug"("START", "postfix:sym<++>")
+  debug_854:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1051_done
-    goto rxscan1051_scan
-  rxscan1051_loop:
-    ($P10) = rx1047_cur."from"()
-    inc $P10
-    set rx1047_pos, $P10
-    ge rx1047_pos, rx1047_eos, rxscan1051_done
-  rxscan1051_scan:
-    set_addr $I10, rxscan1051_loop
-    rx1047_cur."!mark_push"(0, rx1047_pos, $I10)
-  rxscan1051_done:
+    ne $I10, -1, rxscan1052_done
+    goto rxscan1052_scan
+  rxscan1052_loop:
+    ($P10) = rx1048_cur."from"()
+    inc $P10
+    set rx1048_pos, $P10
+    ge rx1048_pos, rx1048_eos, rxscan1052_done
+  rxscan1052_scan:
+    set_addr $I10, rxscan1052_loop
+    rx1048_cur."!mark_push"(0, rx1048_pos, $I10)
+  rxscan1052_done:
+.annotate 'line', 502
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1052_fail
-    rx1047_cur."!mark_push"(0, rx1047_pos, $I10)
-  # rx literal  "~"
-    add $I11, rx1047_pos, 1
-    gt $I11, rx1047_eos, rx1047_fail
-    sub $I11, rx1047_pos, rx1047_off
-    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)
-    rx1047_cur."!cursor_pos"($I11)
-    ($P10) = rx1047_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1047_pos, "")
-    rx1047_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1053_fail
+    rx1048_cur."!mark_push"(0, rx1048_pos, $I10)
+  # rx literal  "++"
+    add $I11, rx1048_pos, 2
+    gt $I11, rx1048_eos, rx1048_fail
+    sub $I11, rx1048_pos, rx1048_off
+    substr $S10, rx1048_tgt, $I11, 2
+    ne $S10, "++", rx1048_fail
+    add rx1048_pos, 2
+    set_addr $I10, rxcap_1053_fail
+    ($I12, $I11) = rx1048_cur."!mark_peek"($I10)
+    rx1048_cur."!cursor_pos"($I11)
+    ($P10) = rx1048_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1048_pos, "")
+    rx1048_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1052_done
-  rxcap_1052_fail:
-    goto rx1047_fail
-  rxcap_1052_done:
+    goto rxcap_1053_done
+  rxcap_1053_fail:
+    goto rx1048_fail
+  rxcap_1053_done:
   # rx subrule "O" subtype=capture negate=
-    rx1047_cur."!cursor_pos"(rx1047_pos)
-    $P10 = rx1047_cur."O"("%symbolic_unary, :pirop<set S*>")
-    unless $P10, rx1047_fail
-    rx1047_cur."!mark_push"(0, -1, 0, $P10)
+    rx1048_cur."!cursor_pos"(rx1048_pos)
+    $P10 = rx1048_cur."O"("%autoincrement")
+    unless $P10, rx1048_fail
+    rx1048_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1047_pos = $P10."pos"()
+    rx1048_pos = $P10."pos"()
   # rx pass
-    rx1047_cur."!cursor_pass"(rx1047_pos, "prefix:sym<~>")
-    if_null rx1047_debug, debug_857
-    rx1047_cur."!cursor_debug"("PASS", "prefix:sym<~>", " at pos=", rx1047_pos)
+    rx1048_cur."!cursor_pass"(rx1048_pos, "postfix:sym<++>")
+    if_null rx1048_debug, debug_855
+    rx1048_cur."!cursor_debug"("PASS", "postfix:sym<++>", " at pos=", rx1048_pos)
+  debug_855:
+    .return (rx1048_cur)
+  rx1048_restart:
+.annotate 'line', 454
+    if_null rx1048_debug, debug_856
+    rx1048_cur."!cursor_debug"("NEXT", "postfix:sym<++>")
+  debug_856:
+  rx1048_fail:
+    (rx1048_rep, rx1048_pos, $I10, $P10) = rx1048_cur."!mark_fail"(0)
+    lt rx1048_pos, -1, rx1048_done
+    eq rx1048_pos, -1, rx1048_fail
+    jump $I10
+  rx1048_done:
+    rx1048_cur."!cursor_fail"()
+    if_null rx1048_debug, debug_857
+    rx1048_cur."!cursor_debug"("FAIL", "postfix:sym<++>")
   debug_857:
-    .return (rx1047_cur)
-  rx1047_restart:
-    if_null rx1047_debug, debug_858
-    rx1047_cur."!cursor_debug"("NEXT", "prefix:sym<~>")
-  debug_858:
-  rx1047_fail:
-    (rx1047_rep, rx1047_pos, $I10, $P10) = rx1047_cur."!mark_fail"(0)
-    lt rx1047_pos, -1, rx1047_done
-    eq rx1047_pos, -1, rx1047_fail
-    jump $I10
-  rx1047_done:
-    rx1047_cur."!cursor_fail"()
-    if_null rx1047_debug, debug_859
-    rx1047_cur."!cursor_debug"("FAIL", "prefix:sym<~>")
-  debug_859:
-    .return (rx1047_cur)
+    .return (rx1048_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<~>"  :subid("267_1283975947.19641") :method
-.annotate 'line', 0
-    $P1049 = self."!PREFIX__!subrule"("O", "~")
-    new $P1050, "ResizablePMCArray"
-    push $P1050, $P1049
-    .return ($P1050)
+.sub "!PREFIX__postfix:sym<++>"  :subid("265_1284728478.15265") :method
+.annotate 'line', 454
+    $P1050 = self."!PREFIX__!subrule"("O", "++")
+    new $P1051, "ResizablePMCArray"
+    push $P1051, $P1050
+    .return ($P1051)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<->"  :subid("268_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1054_tgt
-    .local int rx1054_pos
-    .local int rx1054_off
-    .local int rx1054_eos
-    .local int rx1054_rep
-    .local pmc rx1054_cur
-    .local pmc rx1054_debug
-    (rx1054_cur, rx1054_pos, rx1054_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1054_debug, rx1054_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1054_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1054_eos, rx1054_tgt
-    gt rx1054_pos, rx1054_eos, rx1054_done
-    set rx1054_off, 0
-    lt rx1054_pos, 2, rx1054_start
-    sub rx1054_off, rx1054_pos, 1
-    substr rx1054_tgt, rx1054_tgt, rx1054_off
-  rx1054_start:
-    eq $I10, 1, rx1054_restart
-    if_null rx1054_debug, debug_860
-    rx1054_cur."!cursor_debug"("START", "prefix:sym<->")
-  debug_860:
+.sub "postfix:sym<-->"  :subid("266_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1055_tgt
+    .local int rx1055_pos
+    .local int rx1055_off
+    .local int rx1055_eos
+    .local int rx1055_rep
+    .local pmc rx1055_cur
+    .local pmc rx1055_debug
+    (rx1055_cur, rx1055_pos, rx1055_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1055_debug, rx1055_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1055_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1055_eos, rx1055_tgt
+    gt rx1055_pos, rx1055_eos, rx1055_done
+    set rx1055_off, 0
+    lt rx1055_pos, 2, rx1055_start
+    sub rx1055_off, rx1055_pos, 1
+    substr rx1055_tgt, rx1055_tgt, rx1055_off
+  rx1055_start:
+    eq $I10, 1, rx1055_restart
+    if_null rx1055_debug, debug_858
+    rx1055_cur."!cursor_debug"("START", "postfix:sym<-->")
+  debug_858:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1057_done
-    goto rxscan1057_scan
-  rxscan1057_loop:
-    ($P10) = rx1054_cur."from"()
-    inc $P10
-    set rx1054_pos, $P10
-    ge rx1054_pos, rx1054_eos, rxscan1057_done
-  rxscan1057_scan:
-    set_addr $I10, rxscan1057_loop
-    rx1054_cur."!mark_push"(0, rx1054_pos, $I10)
-  rxscan1057_done:
+    ne $I10, -1, rxscan1059_done
+    goto rxscan1059_scan
+  rxscan1059_loop:
+    ($P10) = rx1055_cur."from"()
+    inc $P10
+    set rx1055_pos, $P10
+    ge rx1055_pos, rx1055_eos, rxscan1059_done
+  rxscan1059_scan:
+    set_addr $I10, rxscan1059_loop
+    rx1055_cur."!mark_push"(0, rx1055_pos, $I10)
+  rxscan1059_done:
+.annotate 'line', 503
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1058_fail
-    rx1054_cur."!mark_push"(0, rx1054_pos, $I10)
-  # rx literal  "-"
-    add $I11, rx1054_pos, 1
-    gt $I11, rx1054_eos, rx1054_fail
-    sub $I11, rx1054_pos, rx1054_off
-    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)
-    rx1054_cur."!cursor_pos"($I11)
-    ($P10) = rx1054_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1054_pos, "")
-    rx1054_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1060_fail
+    rx1055_cur."!mark_push"(0, rx1055_pos, $I10)
+  # rx literal  "--"
+    add $I11, rx1055_pos, 2
+    gt $I11, rx1055_eos, rx1055_fail
+    sub $I11, rx1055_pos, rx1055_off
+    substr $S10, rx1055_tgt, $I11, 2
+    ne $S10, "--", rx1055_fail
+    add rx1055_pos, 2
+    set_addr $I10, rxcap_1060_fail
+    ($I12, $I11) = rx1055_cur."!mark_peek"($I10)
+    rx1055_cur."!cursor_pos"($I11)
+    ($P10) = rx1055_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1055_pos, "")
+    rx1055_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1058_done
-  rxcap_1058_fail:
-    goto rx1054_fail
-  rxcap_1058_done:
-  # rx enumcharlist negate=1 zerowidth
-    ge rx1054_pos, rx1054_eos, rx1054_fail
-    sub $I10, rx1054_pos, rx1054_off
-    substr $S10, rx1054_tgt, $I10, 1
-    index $I11, ">", $S10
-    ge $I11, 0, rx1054_fail
-  # rx subrule "number" subtype=zerowidth negate=1
-    rx1054_cur."!cursor_pos"(rx1054_pos)
-    $P10 = rx1054_cur."number"()
-    if $P10, rx1054_fail
+    goto rxcap_1060_done
+  rxcap_1060_fail:
+    goto rx1055_fail
+  rxcap_1060_done:
   # rx subrule "O" subtype=capture negate=
-    rx1054_cur."!cursor_pos"(rx1054_pos)
-    $P10 = rx1054_cur."O"("%symbolic_unary, :pirop<neg>")
-    unless $P10, rx1054_fail
-    rx1054_cur."!mark_push"(0, -1, 0, $P10)
+    rx1055_cur."!cursor_pos"(rx1055_pos)
+    $P10 = rx1055_cur."O"("%autoincrement")
+    unless $P10, rx1055_fail
+    rx1055_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1054_pos = $P10."pos"()
+    rx1055_pos = $P10."pos"()
   # rx pass
-    rx1054_cur."!cursor_pass"(rx1054_pos, "prefix:sym<->")
-    if_null rx1054_debug, debug_861
-    rx1054_cur."!cursor_debug"("PASS", "prefix:sym<->", " at pos=", rx1054_pos)
+    rx1055_cur."!cursor_pass"(rx1055_pos, "postfix:sym<-->")
+    if_null rx1055_debug, debug_859
+    rx1055_cur."!cursor_debug"("PASS", "postfix:sym<-->", " at pos=", rx1055_pos)
+  debug_859:
+    .return (rx1055_cur)
+  rx1055_restart:
+.annotate 'line', 454
+    if_null rx1055_debug, debug_860
+    rx1055_cur."!cursor_debug"("NEXT", "postfix:sym<-->")
+  debug_860:
+  rx1055_fail:
+    (rx1055_rep, rx1055_pos, $I10, $P10) = rx1055_cur."!mark_fail"(0)
+    lt rx1055_pos, -1, rx1055_done
+    eq rx1055_pos, -1, rx1055_fail
+    jump $I10
+  rx1055_done:
+    rx1055_cur."!cursor_fail"()
+    if_null rx1055_debug, debug_861
+    rx1055_cur."!cursor_debug"("FAIL", "postfix:sym<-->")
   debug_861:
-    .return (rx1054_cur)
-  rx1054_restart:
-    if_null rx1054_debug, debug_862
-    rx1054_cur."!cursor_debug"("NEXT", "prefix:sym<->")
-  debug_862:
-  rx1054_fail:
-    (rx1054_rep, rx1054_pos, $I10, $P10) = rx1054_cur."!mark_fail"(0)
-    lt rx1054_pos, -1, rx1054_done
-    eq rx1054_pos, -1, rx1054_fail
-    jump $I10
-  rx1054_done:
-    rx1054_cur."!cursor_fail"()
-    if_null rx1054_debug, debug_863
-    rx1054_cur."!cursor_debug"("FAIL", "prefix:sym<->")
-  debug_863:
-    .return (rx1054_cur)
+    .return (rx1055_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<->"  :subid("269_1283975947.19641") :method
-.annotate 'line', 0
-    new $P1056, "ResizablePMCArray"
-    push $P1056, "-"
-    .return ($P1056)
+.sub "!PREFIX__postfix:sym<-->"  :subid("267_1284728478.15265") :method
+.annotate 'line', 454
+    $P1057 = self."!PREFIX__!subrule"("O", "--")
+    new $P1058, "ResizablePMCArray"
+    push $P1058, $P1057
+    .return ($P1058)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<?>"  :subid("270_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1060_tgt
-    .local int rx1060_pos
-    .local int rx1060_off
-    .local int rx1060_eos
-    .local int rx1060_rep
-    .local pmc rx1060_cur
-    .local pmc rx1060_debug
-    (rx1060_cur, rx1060_pos, rx1060_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1060_debug, rx1060_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1060_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1060_eos, rx1060_tgt
-    gt rx1060_pos, rx1060_eos, rx1060_done
-    set rx1060_off, 0
-    lt rx1060_pos, 2, rx1060_start
-    sub rx1060_off, rx1060_pos, 1
-    substr rx1060_tgt, rx1060_tgt, rx1060_off
-  rx1060_start:
-    eq $I10, 1, rx1060_restart
-    if_null rx1060_debug, debug_864
-    rx1060_cur."!cursor_debug"("START", "prefix:sym<?>")
-  debug_864:
+.sub "infix:sym<**>"  :subid("268_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1062_tgt
+    .local int rx1062_pos
+    .local int rx1062_off
+    .local int rx1062_eos
+    .local int rx1062_rep
+    .local pmc rx1062_cur
+    .local pmc rx1062_debug
+    (rx1062_cur, rx1062_pos, rx1062_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1062_debug, rx1062_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1062_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1062_eos, rx1062_tgt
+    gt rx1062_pos, rx1062_eos, rx1062_done
+    set rx1062_off, 0
+    lt rx1062_pos, 2, rx1062_start
+    sub rx1062_off, rx1062_pos, 1
+    substr rx1062_tgt, rx1062_tgt, rx1062_off
+  rx1062_start:
+    eq $I10, 1, rx1062_restart
+    if_null rx1062_debug, debug_862
+    rx1062_cur."!cursor_debug"("START", "infix:sym<**>")
+  debug_862:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1064_done
-    goto rxscan1064_scan
-  rxscan1064_loop:
-    ($P10) = rx1060_cur."from"()
-    inc $P10
-    set rx1060_pos, $P10
-    ge rx1060_pos, rx1060_eos, rxscan1064_done
-  rxscan1064_scan:
-    set_addr $I10, rxscan1064_loop
-    rx1060_cur."!mark_push"(0, rx1060_pos, $I10)
-  rxscan1064_done:
+    ne $I10, -1, rxscan1066_done
+    goto rxscan1066_scan
+  rxscan1066_loop:
+    ($P10) = rx1062_cur."from"()
+    inc $P10
+    set rx1062_pos, $P10
+    ge rx1062_pos, rx1062_eos, rxscan1066_done
+  rxscan1066_scan:
+    set_addr $I10, rxscan1066_loop
+    rx1062_cur."!mark_push"(0, rx1062_pos, $I10)
+  rxscan1066_done:
+.annotate 'line', 505
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1065_fail
-    rx1060_cur."!mark_push"(0, rx1060_pos, $I10)
-  # rx literal  "?"
-    add $I11, rx1060_pos, 1
-    gt $I11, rx1060_eos, rx1060_fail
-    sub $I11, rx1060_pos, rx1060_off
-    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)
-    rx1060_cur."!cursor_pos"($I11)
-    ($P10) = rx1060_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1060_pos, "")
-    rx1060_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1067_fail
+    rx1062_cur."!mark_push"(0, rx1062_pos, $I10)
+  # rx literal  "**"
+    add $I11, rx1062_pos, 2
+    gt $I11, rx1062_eos, rx1062_fail
+    sub $I11, rx1062_pos, rx1062_off
+    substr $S10, rx1062_tgt, $I11, 2
+    ne $S10, "**", rx1062_fail
+    add rx1062_pos, 2
+    set_addr $I10, rxcap_1067_fail
+    ($I12, $I11) = rx1062_cur."!mark_peek"($I10)
+    rx1062_cur."!cursor_pos"($I11)
+    ($P10) = rx1062_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1062_pos, "")
+    rx1062_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1065_done
-  rxcap_1065_fail:
-    goto rx1060_fail
-  rxcap_1065_done:
+    goto rxcap_1067_done
+  rxcap_1067_fail:
+    goto rx1062_fail
+  rxcap_1067_done:
   # rx subrule "O" subtype=capture negate=
-    rx1060_cur."!cursor_pos"(rx1060_pos)
-    $P10 = rx1060_cur."O"("%symbolic_unary, :pirop<istrue>")
-    unless $P10, rx1060_fail
-    rx1060_cur."!mark_push"(0, -1, 0, $P10)
+    rx1062_cur."!cursor_pos"(rx1062_pos)
+    $P10 = rx1062_cur."O"("%exponentiation, :pirop<pow>")
+    unless $P10, rx1062_fail
+    rx1062_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1060_pos = $P10."pos"()
+    rx1062_pos = $P10."pos"()
   # rx pass
-    rx1060_cur."!cursor_pass"(rx1060_pos, "prefix:sym<?>")
-    if_null rx1060_debug, debug_865
-    rx1060_cur."!cursor_debug"("PASS", "prefix:sym<?>", " at pos=", rx1060_pos)
+    rx1062_cur."!cursor_pass"(rx1062_pos, "infix:sym<**>")
+    if_null rx1062_debug, debug_863
+    rx1062_cur."!cursor_debug"("PASS", "infix:sym<**>", " at pos=", rx1062_pos)
+  debug_863:
+    .return (rx1062_cur)
+  rx1062_restart:
+.annotate 'line', 454
+    if_null rx1062_debug, debug_864
+    rx1062_cur."!cursor_debug"("NEXT", "infix:sym<**>")
+  debug_864:
+  rx1062_fail:
+    (rx1062_rep, rx1062_pos, $I10, $P10) = rx1062_cur."!mark_fail"(0)
+    lt rx1062_pos, -1, rx1062_done
+    eq rx1062_pos, -1, rx1062_fail
+    jump $I10
+  rx1062_done:
+    rx1062_cur."!cursor_fail"()
+    if_null rx1062_debug, debug_865
+    rx1062_cur."!cursor_debug"("FAIL", "infix:sym<**>")
   debug_865:
-    .return (rx1060_cur)
-  rx1060_restart:
-    if_null rx1060_debug, debug_866
-    rx1060_cur."!cursor_debug"("NEXT", "prefix:sym<?>")
-  debug_866:
-  rx1060_fail:
-    (rx1060_rep, rx1060_pos, $I10, $P10) = rx1060_cur."!mark_fail"(0)
-    lt rx1060_pos, -1, rx1060_done
-    eq rx1060_pos, -1, rx1060_fail
-    jump $I10
-  rx1060_done:
-    rx1060_cur."!cursor_fail"()
-    if_null rx1060_debug, debug_867
-    rx1060_cur."!cursor_debug"("FAIL", "prefix:sym<?>")
-  debug_867:
-    .return (rx1060_cur)
+    .return (rx1062_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<?>"  :subid("271_1283975947.19641") :method
-.annotate 'line', 0
-    $P1062 = self."!PREFIX__!subrule"("O", "?")
-    new $P1063, "ResizablePMCArray"
-    push $P1063, $P1062
-    .return ($P1063)
+.sub "!PREFIX__infix:sym<**>"  :subid("269_1284728478.15265") :method
+.annotate 'line', 454
+    $P1064 = self."!PREFIX__!subrule"("O", "**")
+    new $P1065, "ResizablePMCArray"
+    push $P1065, $P1064
+    .return ($P1065)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<!>"  :subid("272_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1067_tgt
-    .local int rx1067_pos
-    .local int rx1067_off
-    .local int rx1067_eos
-    .local int rx1067_rep
-    .local pmc rx1067_cur
-    .local pmc rx1067_debug
-    (rx1067_cur, rx1067_pos, rx1067_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1067_debug, rx1067_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1067_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1067_eos, rx1067_tgt
-    gt rx1067_pos, rx1067_eos, rx1067_done
-    set rx1067_off, 0
-    lt rx1067_pos, 2, rx1067_start
-    sub rx1067_off, rx1067_pos, 1
-    substr rx1067_tgt, rx1067_tgt, rx1067_off
-  rx1067_start:
-    eq $I10, 1, rx1067_restart
-    if_null rx1067_debug, debug_868
-    rx1067_cur."!cursor_debug"("START", "prefix:sym<!>")
-  debug_868:
+.sub "prefix:sym<+>"  :subid("270_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1069_tgt
+    .local int rx1069_pos
+    .local int rx1069_off
+    .local int rx1069_eos
+    .local int rx1069_rep
+    .local pmc rx1069_cur
+    .local pmc rx1069_debug
+    (rx1069_cur, rx1069_pos, rx1069_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1069_debug, rx1069_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1069_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1069_eos, rx1069_tgt
+    gt rx1069_pos, rx1069_eos, rx1069_done
+    set rx1069_off, 0
+    lt rx1069_pos, 2, rx1069_start
+    sub rx1069_off, rx1069_pos, 1
+    substr rx1069_tgt, rx1069_tgt, rx1069_off
+  rx1069_start:
+    eq $I10, 1, rx1069_restart
+    if_null rx1069_debug, debug_866
+    rx1069_cur."!cursor_debug"("START", "prefix:sym<+>")
+  debug_866:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1071_done
-    goto rxscan1071_scan
-  rxscan1071_loop:
-    ($P10) = rx1067_cur."from"()
-    inc $P10
-    set rx1067_pos, $P10
-    ge rx1067_pos, rx1067_eos, rxscan1071_done
-  rxscan1071_scan:
-    set_addr $I10, rxscan1071_loop
-    rx1067_cur."!mark_push"(0, rx1067_pos, $I10)
-  rxscan1071_done:
+    ne $I10, -1, rxscan1073_done
+    goto rxscan1073_scan
+  rxscan1073_loop:
+    ($P10) = rx1069_cur."from"()
+    inc $P10
+    set rx1069_pos, $P10
+    ge rx1069_pos, rx1069_eos, rxscan1073_done
+  rxscan1073_scan:
+    set_addr $I10, rxscan1073_loop
+    rx1069_cur."!mark_push"(0, rx1069_pos, $I10)
+  rxscan1073_done:
+.annotate 'line', 507
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1072_fail
-    rx1067_cur."!mark_push"(0, rx1067_pos, $I10)
-  # rx literal  "!"
-    add $I11, rx1067_pos, 1
-    gt $I11, rx1067_eos, rx1067_fail
-    sub $I11, rx1067_pos, rx1067_off
-    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)
-    rx1067_cur."!cursor_pos"($I11)
-    ($P10) = rx1067_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1067_pos, "")
-    rx1067_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1074_fail
+    rx1069_cur."!mark_push"(0, rx1069_pos, $I10)
+  # rx literal  "+"
+    add $I11, rx1069_pos, 1
+    gt $I11, rx1069_eos, rx1069_fail
+    sub $I11, rx1069_pos, rx1069_off
+    ord $I11, rx1069_tgt, $I11
+    ne $I11, 43, rx1069_fail
+    add rx1069_pos, 1
+    set_addr $I10, rxcap_1074_fail
+    ($I12, $I11) = rx1069_cur."!mark_peek"($I10)
+    rx1069_cur."!cursor_pos"($I11)
+    ($P10) = rx1069_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1069_pos, "")
+    rx1069_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1072_done
-  rxcap_1072_fail:
-    goto rx1067_fail
-  rxcap_1072_done:
+    goto rxcap_1074_done
+  rxcap_1074_fail:
+    goto rx1069_fail
+  rxcap_1074_done:
   # rx subrule "O" subtype=capture negate=
-    rx1067_cur."!cursor_pos"(rx1067_pos)
-    $P10 = rx1067_cur."O"("%symbolic_unary, :pirop<isfalse>")
-    unless $P10, rx1067_fail
-    rx1067_cur."!mark_push"(0, -1, 0, $P10)
+    rx1069_cur."!cursor_pos"(rx1069_pos)
+    $P10 = rx1069_cur."O"("%symbolic_unary, :pirop<set N*>")
+    unless $P10, rx1069_fail
+    rx1069_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1067_pos = $P10."pos"()
+    rx1069_pos = $P10."pos"()
   # rx pass
-    rx1067_cur."!cursor_pass"(rx1067_pos, "prefix:sym<!>")
-    if_null rx1067_debug, debug_869
-    rx1067_cur."!cursor_debug"("PASS", "prefix:sym<!>", " at pos=", rx1067_pos)
+    rx1069_cur."!cursor_pass"(rx1069_pos, "prefix:sym<+>")
+    if_null rx1069_debug, debug_867
+    rx1069_cur."!cursor_debug"("PASS", "prefix:sym<+>", " at pos=", rx1069_pos)
+  debug_867:
+    .return (rx1069_cur)
+  rx1069_restart:
+.annotate 'line', 454
+    if_null rx1069_debug, debug_868
+    rx1069_cur."!cursor_debug"("NEXT", "prefix:sym<+>")
+  debug_868:
+  rx1069_fail:
+    (rx1069_rep, rx1069_pos, $I10, $P10) = rx1069_cur."!mark_fail"(0)
+    lt rx1069_pos, -1, rx1069_done
+    eq rx1069_pos, -1, rx1069_fail
+    jump $I10
+  rx1069_done:
+    rx1069_cur."!cursor_fail"()
+    if_null rx1069_debug, debug_869
+    rx1069_cur."!cursor_debug"("FAIL", "prefix:sym<+>")
   debug_869:
-    .return (rx1067_cur)
-  rx1067_restart:
-    if_null rx1067_debug, debug_870
-    rx1067_cur."!cursor_debug"("NEXT", "prefix:sym<!>")
-  debug_870:
-  rx1067_fail:
-    (rx1067_rep, rx1067_pos, $I10, $P10) = rx1067_cur."!mark_fail"(0)
-    lt rx1067_pos, -1, rx1067_done
-    eq rx1067_pos, -1, rx1067_fail
-    jump $I10
-  rx1067_done:
-    rx1067_cur."!cursor_fail"()
-    if_null rx1067_debug, debug_871
-    rx1067_cur."!cursor_debug"("FAIL", "prefix:sym<!>")
-  debug_871:
-    .return (rx1067_cur)
+    .return (rx1069_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<!>"  :subid("273_1283975947.19641") :method
-.annotate 'line', 0
-    $P1069 = self."!PREFIX__!subrule"("O", "!")
-    new $P1070, "ResizablePMCArray"
-    push $P1070, $P1069
-    .return ($P1070)
+.sub "!PREFIX__prefix:sym<+>"  :subid("271_1284728478.15265") :method
+.annotate 'line', 454
+    $P1071 = self."!PREFIX__!subrule"("O", "+")
+    new $P1072, "ResizablePMCArray"
+    push $P1072, $P1071
+    .return ($P1072)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<|>"  :subid("274_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1074_tgt
-    .local int rx1074_pos
-    .local int rx1074_off
-    .local int rx1074_eos
-    .local int rx1074_rep
-    .local pmc rx1074_cur
-    .local pmc rx1074_debug
-    (rx1074_cur, rx1074_pos, rx1074_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1074_debug, rx1074_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1074_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1074_eos, rx1074_tgt
-    gt rx1074_pos, rx1074_eos, rx1074_done
-    set rx1074_off, 0
-    lt rx1074_pos, 2, rx1074_start
-    sub rx1074_off, rx1074_pos, 1
-    substr rx1074_tgt, rx1074_tgt, rx1074_off
-  rx1074_start:
-    eq $I10, 1, rx1074_restart
-    if_null rx1074_debug, debug_872
-    rx1074_cur."!cursor_debug"("START", "prefix:sym<|>")
-  debug_872:
+.sub "prefix:sym<~>"  :subid("272_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1076_tgt
+    .local int rx1076_pos
+    .local int rx1076_off
+    .local int rx1076_eos
+    .local int rx1076_rep
+    .local pmc rx1076_cur
+    .local pmc rx1076_debug
+    (rx1076_cur, rx1076_pos, rx1076_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1076_debug, rx1076_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1076_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1076_eos, rx1076_tgt
+    gt rx1076_pos, rx1076_eos, rx1076_done
+    set rx1076_off, 0
+    lt rx1076_pos, 2, rx1076_start
+    sub rx1076_off, rx1076_pos, 1
+    substr rx1076_tgt, rx1076_tgt, rx1076_off
+  rx1076_start:
+    eq $I10, 1, rx1076_restart
+    if_null rx1076_debug, debug_870
+    rx1076_cur."!cursor_debug"("START", "prefix:sym<~>")
+  debug_870:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1078_done
-    goto rxscan1078_scan
-  rxscan1078_loop:
-    ($P10) = rx1074_cur."from"()
-    inc $P10
-    set rx1074_pos, $P10
-    ge rx1074_pos, rx1074_eos, rxscan1078_done
-  rxscan1078_scan:
-    set_addr $I10, rxscan1078_loop
-    rx1074_cur."!mark_push"(0, rx1074_pos, $I10)
-  rxscan1078_done:
+    ne $I10, -1, rxscan1080_done
+    goto rxscan1080_scan
+  rxscan1080_loop:
+    ($P10) = rx1076_cur."from"()
+    inc $P10
+    set rx1076_pos, $P10
+    ge rx1076_pos, rx1076_eos, rxscan1080_done
+  rxscan1080_scan:
+    set_addr $I10, rxscan1080_loop
+    rx1076_cur."!mark_push"(0, rx1076_pos, $I10)
+  rxscan1080_done:
+.annotate 'line', 508
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1079_fail
-    rx1074_cur."!mark_push"(0, rx1074_pos, $I10)
-  # rx literal  "|"
-    add $I11, rx1074_pos, 1
-    gt $I11, rx1074_eos, rx1074_fail
-    sub $I11, rx1074_pos, rx1074_off
-    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)
-    rx1074_cur."!cursor_pos"($I11)
-    ($P10) = rx1074_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1074_pos, "")
-    rx1074_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1081_fail
+    rx1076_cur."!mark_push"(0, rx1076_pos, $I10)
+  # rx literal  "~"
+    add $I11, rx1076_pos, 1
+    gt $I11, rx1076_eos, rx1076_fail
+    sub $I11, rx1076_pos, rx1076_off
+    ord $I11, rx1076_tgt, $I11
+    ne $I11, 126, rx1076_fail
+    add rx1076_pos, 1
+    set_addr $I10, rxcap_1081_fail
+    ($I12, $I11) = rx1076_cur."!mark_peek"($I10)
+    rx1076_cur."!cursor_pos"($I11)
+    ($P10) = rx1076_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1076_pos, "")
+    rx1076_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1079_done
-  rxcap_1079_fail:
-    goto rx1074_fail
-  rxcap_1079_done:
+    goto rxcap_1081_done
+  rxcap_1081_fail:
+    goto rx1076_fail
+  rxcap_1081_done:
   # rx subrule "O" subtype=capture negate=
-    rx1074_cur."!cursor_pos"(rx1074_pos)
-    $P10 = rx1074_cur."O"("%symbolic_unary")
-    unless $P10, rx1074_fail
-    rx1074_cur."!mark_push"(0, -1, 0, $P10)
+    rx1076_cur."!cursor_pos"(rx1076_pos)
+    $P10 = rx1076_cur."O"("%symbolic_unary, :pirop<set S*>")
+    unless $P10, rx1076_fail
+    rx1076_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1074_pos = $P10."pos"()
+    rx1076_pos = $P10."pos"()
   # rx pass
-    rx1074_cur."!cursor_pass"(rx1074_pos, "prefix:sym<|>")
-    if_null rx1074_debug, debug_873
-    rx1074_cur."!cursor_debug"("PASS", "prefix:sym<|>", " at pos=", rx1074_pos)
+    rx1076_cur."!cursor_pass"(rx1076_pos, "prefix:sym<~>")
+    if_null rx1076_debug, debug_871
+    rx1076_cur."!cursor_debug"("PASS", "prefix:sym<~>", " at pos=", rx1076_pos)
+  debug_871:
+    .return (rx1076_cur)
+  rx1076_restart:
+.annotate 'line', 454
+    if_null rx1076_debug, debug_872
+    rx1076_cur."!cursor_debug"("NEXT", "prefix:sym<~>")
+  debug_872:
+  rx1076_fail:
+    (rx1076_rep, rx1076_pos, $I10, $P10) = rx1076_cur."!mark_fail"(0)
+    lt rx1076_pos, -1, rx1076_done
+    eq rx1076_pos, -1, rx1076_fail
+    jump $I10
+  rx1076_done:
+    rx1076_cur."!cursor_fail"()
+    if_null rx1076_debug, debug_873
+    rx1076_cur."!cursor_debug"("FAIL", "prefix:sym<~>")
   debug_873:
-    .return (rx1074_cur)
-  rx1074_restart:
-    if_null rx1074_debug, debug_874
-    rx1074_cur."!cursor_debug"("NEXT", "prefix:sym<|>")
-  debug_874:
-  rx1074_fail:
-    (rx1074_rep, rx1074_pos, $I10, $P10) = rx1074_cur."!mark_fail"(0)
-    lt rx1074_pos, -1, rx1074_done
-    eq rx1074_pos, -1, rx1074_fail
-    jump $I10
-  rx1074_done:
-    rx1074_cur."!cursor_fail"()
-    if_null rx1074_debug, debug_875
-    rx1074_cur."!cursor_debug"("FAIL", "prefix:sym<|>")
-  debug_875:
-    .return (rx1074_cur)
+    .return (rx1076_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<|>"  :subid("275_1283975947.19641") :method
-.annotate 'line', 0
-    $P1076 = self."!PREFIX__!subrule"("O", "|")
-    new $P1077, "ResizablePMCArray"
-    push $P1077, $P1076
-    .return ($P1077)
+.sub "!PREFIX__prefix:sym<~>"  :subid("273_1284728478.15265") :method
+.annotate 'line', 454
+    $P1078 = self."!PREFIX__!subrule"("O", "~")
+    new $P1079, "ResizablePMCArray"
+    push $P1079, $P1078
+    .return ($P1079)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<*>"  :subid("276_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1081_tgt
-    .local int rx1081_pos
-    .local int rx1081_off
-    .local int rx1081_eos
-    .local int rx1081_rep
-    .local pmc rx1081_cur
-    .local pmc rx1081_debug
-    (rx1081_cur, rx1081_pos, rx1081_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1081_debug, rx1081_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1081_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1081_eos, rx1081_tgt
-    gt rx1081_pos, rx1081_eos, rx1081_done
-    set rx1081_off, 0
-    lt rx1081_pos, 2, rx1081_start
-    sub rx1081_off, rx1081_pos, 1
-    substr rx1081_tgt, rx1081_tgt, rx1081_off
-  rx1081_start:
-    eq $I10, 1, rx1081_restart
-    if_null rx1081_debug, debug_876
-    rx1081_cur."!cursor_debug"("START", "infix:sym<*>")
-  debug_876:
+.sub "prefix:sym<->"  :subid("274_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1083_tgt
+    .local int rx1083_pos
+    .local int rx1083_off
+    .local int rx1083_eos
+    .local int rx1083_rep
+    .local pmc rx1083_cur
+    .local pmc rx1083_debug
+    (rx1083_cur, rx1083_pos, rx1083_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1083_debug, rx1083_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1083_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1083_eos, rx1083_tgt
+    gt rx1083_pos, rx1083_eos, rx1083_done
+    set rx1083_off, 0
+    lt rx1083_pos, 2, rx1083_start
+    sub rx1083_off, rx1083_pos, 1
+    substr rx1083_tgt, rx1083_tgt, rx1083_off
+  rx1083_start:
+    eq $I10, 1, rx1083_restart
+    if_null rx1083_debug, debug_874
+    rx1083_cur."!cursor_debug"("START", "prefix:sym<->")
+  debug_874:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1085_done
-    goto rxscan1085_scan
-  rxscan1085_loop:
-    ($P10) = rx1081_cur."from"()
-    inc $P10
-    set rx1081_pos, $P10
-    ge rx1081_pos, rx1081_eos, rxscan1085_done
-  rxscan1085_scan:
-    set_addr $I10, rxscan1085_loop
-    rx1081_cur."!mark_push"(0, rx1081_pos, $I10)
-  rxscan1085_done:
+    ne $I10, -1, rxscan1086_done
+    goto rxscan1086_scan
+  rxscan1086_loop:
+    ($P10) = rx1083_cur."from"()
+    inc $P10
+    set rx1083_pos, $P10
+    ge rx1083_pos, rx1083_eos, rxscan1086_done
+  rxscan1086_scan:
+    set_addr $I10, rxscan1086_loop
+    rx1083_cur."!mark_push"(0, rx1083_pos, $I10)
+  rxscan1086_done:
+.annotate 'line', 509
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1086_fail
-    rx1081_cur."!mark_push"(0, rx1081_pos, $I10)
-  # rx literal  "*"
-    add $I11, rx1081_pos, 1
-    gt $I11, rx1081_eos, rx1081_fail
-    sub $I11, rx1081_pos, rx1081_off
-    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)
-    rx1081_cur."!cursor_pos"($I11)
-    ($P10) = rx1081_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1081_pos, "")
-    rx1081_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1087_fail
+    rx1083_cur."!mark_push"(0, rx1083_pos, $I10)
+  # rx literal  "-"
+    add $I11, rx1083_pos, 1
+    gt $I11, rx1083_eos, rx1083_fail
+    sub $I11, rx1083_pos, rx1083_off
+    ord $I11, rx1083_tgt, $I11
+    ne $I11, 45, rx1083_fail
+    add rx1083_pos, 1
+    set_addr $I10, rxcap_1087_fail
+    ($I12, $I11) = rx1083_cur."!mark_peek"($I10)
+    rx1083_cur."!cursor_pos"($I11)
+    ($P10) = rx1083_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1083_pos, "")
+    rx1083_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1086_done
-  rxcap_1086_fail:
-    goto rx1081_fail
-  rxcap_1086_done:
+    goto rxcap_1087_done
+  rxcap_1087_fail:
+    goto rx1083_fail
+  rxcap_1087_done:
+  # rx enumcharlist negate=1 zerowidth
+    sub $I10, rx1083_pos, rx1083_off
+    substr $S10, rx1083_tgt, $I10, 1
+    index $I11, ">", $S10
+    ge $I11, 0, rx1083_fail
+  # rx subrule "number" subtype=zerowidth negate=1
+    rx1083_cur."!cursor_pos"(rx1083_pos)
+    $P10 = rx1083_cur."number"()
+    if $P10, rx1083_fail
   # rx subrule "O" subtype=capture negate=
-    rx1081_cur."!cursor_pos"(rx1081_pos)
-    $P10 = rx1081_cur."O"("%multiplicative, :pirop<mul>")
-    unless $P10, rx1081_fail
-    rx1081_cur."!mark_push"(0, -1, 0, $P10)
+    rx1083_cur."!cursor_pos"(rx1083_pos)
+    $P10 = rx1083_cur."O"("%symbolic_unary, :pirop<neg>")
+    unless $P10, rx1083_fail
+    rx1083_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1081_pos = $P10."pos"()
+    rx1083_pos = $P10."pos"()
   # rx pass
-    rx1081_cur."!cursor_pass"(rx1081_pos, "infix:sym<*>")
-    if_null rx1081_debug, debug_877
-    rx1081_cur."!cursor_debug"("PASS", "infix:sym<*>", " at pos=", rx1081_pos)
+    rx1083_cur."!cursor_pass"(rx1083_pos, "prefix:sym<->")
+    if_null rx1083_debug, debug_875
+    rx1083_cur."!cursor_debug"("PASS", "prefix:sym<->", " at pos=", rx1083_pos)
+  debug_875:
+    .return (rx1083_cur)
+  rx1083_restart:
+.annotate 'line', 454
+    if_null rx1083_debug, debug_876
+    rx1083_cur."!cursor_debug"("NEXT", "prefix:sym<->")
+  debug_876:
+  rx1083_fail:
+    (rx1083_rep, rx1083_pos, $I10, $P10) = rx1083_cur."!mark_fail"(0)
+    lt rx1083_pos, -1, rx1083_done
+    eq rx1083_pos, -1, rx1083_fail
+    jump $I10
+  rx1083_done:
+    rx1083_cur."!cursor_fail"()
+    if_null rx1083_debug, debug_877
+    rx1083_cur."!cursor_debug"("FAIL", "prefix:sym<->")
   debug_877:
-    .return (rx1081_cur)
-  rx1081_restart:
-    if_null rx1081_debug, debug_878
-    rx1081_cur."!cursor_debug"("NEXT", "infix:sym<*>")
-  debug_878:
-  rx1081_fail:
-    (rx1081_rep, rx1081_pos, $I10, $P10) = rx1081_cur."!mark_fail"(0)
-    lt rx1081_pos, -1, rx1081_done
-    eq rx1081_pos, -1, rx1081_fail
-    jump $I10
-  rx1081_done:
-    rx1081_cur."!cursor_fail"()
-    if_null rx1081_debug, debug_879
-    rx1081_cur."!cursor_debug"("FAIL", "infix:sym<*>")
-  debug_879:
-    .return (rx1081_cur)
+    .return (rx1083_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<*>"  :subid("277_1283975947.19641") :method
-.annotate 'line', 0
-    $P1083 = self."!PREFIX__!subrule"("O", "*")
-    new $P1084, "ResizablePMCArray"
-    push $P1084, $P1083
-    .return ($P1084)
+.sub "!PREFIX__prefix:sym<->"  :subid("275_1284728478.15265") :method
+.annotate 'line', 454
+    new $P1085, "ResizablePMCArray"
+    push $P1085, "-"
+    .return ($P1085)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym</>"  :subid("278_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1088_tgt
-    .local int rx1088_pos
-    .local int rx1088_off
-    .local int rx1088_eos
-    .local int rx1088_rep
-    .local pmc rx1088_cur
-    .local pmc rx1088_debug
-    (rx1088_cur, rx1088_pos, rx1088_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1088_debug, rx1088_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1088_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1088_eos, rx1088_tgt
-    gt rx1088_pos, rx1088_eos, rx1088_done
-    set rx1088_off, 0
-    lt rx1088_pos, 2, rx1088_start
-    sub rx1088_off, rx1088_pos, 1
-    substr rx1088_tgt, rx1088_tgt, rx1088_off
-  rx1088_start:
-    eq $I10, 1, rx1088_restart
-    if_null rx1088_debug, debug_880
-    rx1088_cur."!cursor_debug"("START", "infix:sym</>")
-  debug_880:
+.sub "prefix:sym<?>"  :subid("276_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1089_tgt
+    .local int rx1089_pos
+    .local int rx1089_off
+    .local int rx1089_eos
+    .local int rx1089_rep
+    .local pmc rx1089_cur
+    .local pmc rx1089_debug
+    (rx1089_cur, rx1089_pos, rx1089_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1089_debug, rx1089_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1089_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1089_eos, rx1089_tgt
+    gt rx1089_pos, rx1089_eos, rx1089_done
+    set rx1089_off, 0
+    lt rx1089_pos, 2, rx1089_start
+    sub rx1089_off, rx1089_pos, 1
+    substr rx1089_tgt, rx1089_tgt, rx1089_off
+  rx1089_start:
+    eq $I10, 1, rx1089_restart
+    if_null rx1089_debug, debug_878
+    rx1089_cur."!cursor_debug"("START", "prefix:sym<?>")
+  debug_878:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1092_done
-    goto rxscan1092_scan
-  rxscan1092_loop:
-    ($P10) = rx1088_cur."from"()
-    inc $P10
-    set rx1088_pos, $P10
-    ge rx1088_pos, rx1088_eos, rxscan1092_done
-  rxscan1092_scan:
-    set_addr $I10, rxscan1092_loop
-    rx1088_cur."!mark_push"(0, rx1088_pos, $I10)
-  rxscan1092_done:
+    ne $I10, -1, rxscan1093_done
+    goto rxscan1093_scan
+  rxscan1093_loop:
+    ($P10) = rx1089_cur."from"()
+    inc $P10
+    set rx1089_pos, $P10
+    ge rx1089_pos, rx1089_eos, rxscan1093_done
+  rxscan1093_scan:
+    set_addr $I10, rxscan1093_loop
+    rx1089_cur."!mark_push"(0, rx1089_pos, $I10)
+  rxscan1093_done:
+.annotate 'line', 510
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1093_fail
-    rx1088_cur."!mark_push"(0, rx1088_pos, $I10)
-  # rx literal  "/"
-    add $I11, rx1088_pos, 1
-    gt $I11, rx1088_eos, rx1088_fail
-    sub $I11, rx1088_pos, rx1088_off
-    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)
-    rx1088_cur."!cursor_pos"($I11)
-    ($P10) = rx1088_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1088_pos, "")
-    rx1088_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1094_fail
+    rx1089_cur."!mark_push"(0, rx1089_pos, $I10)
+  # rx literal  "?"
+    add $I11, rx1089_pos, 1
+    gt $I11, rx1089_eos, rx1089_fail
+    sub $I11, rx1089_pos, rx1089_off
+    ord $I11, rx1089_tgt, $I11
+    ne $I11, 63, rx1089_fail
+    add rx1089_pos, 1
+    set_addr $I10, rxcap_1094_fail
+    ($I12, $I11) = rx1089_cur."!mark_peek"($I10)
+    rx1089_cur."!cursor_pos"($I11)
+    ($P10) = rx1089_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1089_pos, "")
+    rx1089_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1093_done
-  rxcap_1093_fail:
-    goto rx1088_fail
-  rxcap_1093_done:
+    goto rxcap_1094_done
+  rxcap_1094_fail:
+    goto rx1089_fail
+  rxcap_1094_done:
   # rx subrule "O" subtype=capture negate=
-    rx1088_cur."!cursor_pos"(rx1088_pos)
-    $P10 = rx1088_cur."O"("%multiplicative, :pirop<div>")
-    unless $P10, rx1088_fail
-    rx1088_cur."!mark_push"(0, -1, 0, $P10)
+    rx1089_cur."!cursor_pos"(rx1089_pos)
+    $P10 = rx1089_cur."O"("%symbolic_unary, :pirop<istrue>")
+    unless $P10, rx1089_fail
+    rx1089_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1088_pos = $P10."pos"()
+    rx1089_pos = $P10."pos"()
   # rx pass
-    rx1088_cur."!cursor_pass"(rx1088_pos, "infix:sym</>")
-    if_null rx1088_debug, debug_881
-    rx1088_cur."!cursor_debug"("PASS", "infix:sym</>", " at pos=", rx1088_pos)
+    rx1089_cur."!cursor_pass"(rx1089_pos, "prefix:sym<?>")
+    if_null rx1089_debug, debug_879
+    rx1089_cur."!cursor_debug"("PASS", "prefix:sym<?>", " at pos=", rx1089_pos)
+  debug_879:
+    .return (rx1089_cur)
+  rx1089_restart:
+.annotate 'line', 454
+    if_null rx1089_debug, debug_880
+    rx1089_cur."!cursor_debug"("NEXT", "prefix:sym<?>")
+  debug_880:
+  rx1089_fail:
+    (rx1089_rep, rx1089_pos, $I10, $P10) = rx1089_cur."!mark_fail"(0)
+    lt rx1089_pos, -1, rx1089_done
+    eq rx1089_pos, -1, rx1089_fail
+    jump $I10
+  rx1089_done:
+    rx1089_cur."!cursor_fail"()
+    if_null rx1089_debug, debug_881
+    rx1089_cur."!cursor_debug"("FAIL", "prefix:sym<?>")
   debug_881:
-    .return (rx1088_cur)
-  rx1088_restart:
-    if_null rx1088_debug, debug_882
-    rx1088_cur."!cursor_debug"("NEXT", "infix:sym</>")
-  debug_882:
-  rx1088_fail:
-    (rx1088_rep, rx1088_pos, $I10, $P10) = rx1088_cur."!mark_fail"(0)
-    lt rx1088_pos, -1, rx1088_done
-    eq rx1088_pos, -1, rx1088_fail
-    jump $I10
-  rx1088_done:
-    rx1088_cur."!cursor_fail"()
-    if_null rx1088_debug, debug_883
-    rx1088_cur."!cursor_debug"("FAIL", "infix:sym</>")
-  debug_883:
-    .return (rx1088_cur)
+    .return (rx1089_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym</>"  :subid("279_1283975947.19641") :method
-.annotate 'line', 0
-    $P1090 = self."!PREFIX__!subrule"("O", "/")
-    new $P1091, "ResizablePMCArray"
-    push $P1091, $P1090
-    .return ($P1091)
+.sub "!PREFIX__prefix:sym<?>"  :subid("277_1284728478.15265") :method
+.annotate 'line', 454
+    $P1091 = self."!PREFIX__!subrule"("O", "?")
+    new $P1092, "ResizablePMCArray"
+    push $P1092, $P1091
+    .return ($P1092)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<%>"  :subid("280_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1095_tgt
-    .local int rx1095_pos
-    .local int rx1095_off
-    .local int rx1095_eos
-    .local int rx1095_rep
-    .local pmc rx1095_cur
-    .local pmc rx1095_debug
-    (rx1095_cur, rx1095_pos, rx1095_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1095_debug, rx1095_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1095_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1095_eos, rx1095_tgt
-    gt rx1095_pos, rx1095_eos, rx1095_done
-    set rx1095_off, 0
-    lt rx1095_pos, 2, rx1095_start
-    sub rx1095_off, rx1095_pos, 1
-    substr rx1095_tgt, rx1095_tgt, rx1095_off
-  rx1095_start:
-    eq $I10, 1, rx1095_restart
-    if_null rx1095_debug, debug_884
-    rx1095_cur."!cursor_debug"("START", "infix:sym<%>")
-  debug_884:
+.sub "prefix:sym<!>"  :subid("278_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1096_tgt
+    .local int rx1096_pos
+    .local int rx1096_off
+    .local int rx1096_eos
+    .local int rx1096_rep
+    .local pmc rx1096_cur
+    .local pmc rx1096_debug
+    (rx1096_cur, rx1096_pos, rx1096_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1096_debug, rx1096_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1096_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1096_eos, rx1096_tgt
+    gt rx1096_pos, rx1096_eos, rx1096_done
+    set rx1096_off, 0
+    lt rx1096_pos, 2, rx1096_start
+    sub rx1096_off, rx1096_pos, 1
+    substr rx1096_tgt, rx1096_tgt, rx1096_off
+  rx1096_start:
+    eq $I10, 1, rx1096_restart
+    if_null rx1096_debug, debug_882
+    rx1096_cur."!cursor_debug"("START", "prefix:sym<!>")
+  debug_882:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1099_done
-    goto rxscan1099_scan
-  rxscan1099_loop:
-    ($P10) = rx1095_cur."from"()
-    inc $P10
-    set rx1095_pos, $P10
-    ge rx1095_pos, rx1095_eos, rxscan1099_done
-  rxscan1099_scan:
-    set_addr $I10, rxscan1099_loop
-    rx1095_cur."!mark_push"(0, rx1095_pos, $I10)
-  rxscan1099_done:
+    ne $I10, -1, rxscan1100_done
+    goto rxscan1100_scan
+  rxscan1100_loop:
+    ($P10) = rx1096_cur."from"()
+    inc $P10
+    set rx1096_pos, $P10
+    ge rx1096_pos, rx1096_eos, rxscan1100_done
+  rxscan1100_scan:
+    set_addr $I10, rxscan1100_loop
+    rx1096_cur."!mark_push"(0, rx1096_pos, $I10)
+  rxscan1100_done:
+.annotate 'line', 511
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1100_fail
-    rx1095_cur."!mark_push"(0, rx1095_pos, $I10)
-  # rx literal  "%"
-    add $I11, rx1095_pos, 1
-    gt $I11, rx1095_eos, rx1095_fail
-    sub $I11, rx1095_pos, rx1095_off
-    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)
-    rx1095_cur."!cursor_pos"($I11)
-    ($P10) = rx1095_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1095_pos, "")
-    rx1095_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1101_fail
+    rx1096_cur."!mark_push"(0, rx1096_pos, $I10)
+  # rx literal  "!"
+    add $I11, rx1096_pos, 1
+    gt $I11, rx1096_eos, rx1096_fail
+    sub $I11, rx1096_pos, rx1096_off
+    ord $I11, rx1096_tgt, $I11
+    ne $I11, 33, rx1096_fail
+    add rx1096_pos, 1
+    set_addr $I10, rxcap_1101_fail
+    ($I12, $I11) = rx1096_cur."!mark_peek"($I10)
+    rx1096_cur."!cursor_pos"($I11)
+    ($P10) = rx1096_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1096_pos, "")
+    rx1096_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1100_done
-  rxcap_1100_fail:
-    goto rx1095_fail
-  rxcap_1100_done:
+    goto rxcap_1101_done
+  rxcap_1101_fail:
+    goto rx1096_fail
+  rxcap_1101_done:
   # rx subrule "O" subtype=capture negate=
-    rx1095_cur."!cursor_pos"(rx1095_pos)
-    $P10 = rx1095_cur."O"("%multiplicative, :pirop<mod>")
-    unless $P10, rx1095_fail
-    rx1095_cur."!mark_push"(0, -1, 0, $P10)
+    rx1096_cur."!cursor_pos"(rx1096_pos)
+    $P10 = rx1096_cur."O"("%symbolic_unary, :pirop<isfalse>")
+    unless $P10, rx1096_fail
+    rx1096_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1095_pos = $P10."pos"()
+    rx1096_pos = $P10."pos"()
   # rx pass
-    rx1095_cur."!cursor_pass"(rx1095_pos, "infix:sym<%>")
-    if_null rx1095_debug, debug_885
-    rx1095_cur."!cursor_debug"("PASS", "infix:sym<%>", " at pos=", rx1095_pos)
+    rx1096_cur."!cursor_pass"(rx1096_pos, "prefix:sym<!>")
+    if_null rx1096_debug, debug_883
+    rx1096_cur."!cursor_debug"("PASS", "prefix:sym<!>", " at pos=", rx1096_pos)
+  debug_883:
+    .return (rx1096_cur)
+  rx1096_restart:
+.annotate 'line', 454
+    if_null rx1096_debug, debug_884
+    rx1096_cur."!cursor_debug"("NEXT", "prefix:sym<!>")
+  debug_884:
+  rx1096_fail:
+    (rx1096_rep, rx1096_pos, $I10, $P10) = rx1096_cur."!mark_fail"(0)
+    lt rx1096_pos, -1, rx1096_done
+    eq rx1096_pos, -1, rx1096_fail
+    jump $I10
+  rx1096_done:
+    rx1096_cur."!cursor_fail"()
+    if_null rx1096_debug, debug_885
+    rx1096_cur."!cursor_debug"("FAIL", "prefix:sym<!>")
   debug_885:
-    .return (rx1095_cur)
-  rx1095_restart:
-    if_null rx1095_debug, debug_886
-    rx1095_cur."!cursor_debug"("NEXT", "infix:sym<%>")
-  debug_886:
-  rx1095_fail:
-    (rx1095_rep, rx1095_pos, $I10, $P10) = rx1095_cur."!mark_fail"(0)
-    lt rx1095_pos, -1, rx1095_done
-    eq rx1095_pos, -1, rx1095_fail
-    jump $I10
-  rx1095_done:
-    rx1095_cur."!cursor_fail"()
-    if_null rx1095_debug, debug_887
-    rx1095_cur."!cursor_debug"("FAIL", "infix:sym<%>")
-  debug_887:
-    .return (rx1095_cur)
+    .return (rx1096_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<%>"  :subid("281_1283975947.19641") :method
-.annotate 'line', 0
-    $P1097 = self."!PREFIX__!subrule"("O", "%")
-    new $P1098, "ResizablePMCArray"
-    push $P1098, $P1097
-    .return ($P1098)
+.sub "!PREFIX__prefix:sym<!>"  :subid("279_1284728478.15265") :method
+.annotate 'line', 454
+    $P1098 = self."!PREFIX__!subrule"("O", "!")
+    new $P1099, "ResizablePMCArray"
+    push $P1099, $P1098
+    .return ($P1099)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+&>"  :subid("282_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1102_tgt
-    .local int rx1102_pos
-    .local int rx1102_off
-    .local int rx1102_eos
-    .local int rx1102_rep
-    .local pmc rx1102_cur
-    .local pmc rx1102_debug
-    (rx1102_cur, rx1102_pos, rx1102_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1102_debug, rx1102_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1102_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1102_eos, rx1102_tgt
-    gt rx1102_pos, rx1102_eos, rx1102_done
-    set rx1102_off, 0
-    lt rx1102_pos, 2, rx1102_start
-    sub rx1102_off, rx1102_pos, 1
-    substr rx1102_tgt, rx1102_tgt, rx1102_off
-  rx1102_start:
-    eq $I10, 1, rx1102_restart
-    if_null rx1102_debug, debug_888
-    rx1102_cur."!cursor_debug"("START", "infix:sym<+&>")
-  debug_888:
+.sub "prefix:sym<|>"  :subid("280_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1103_tgt
+    .local int rx1103_pos
+    .local int rx1103_off
+    .local int rx1103_eos
+    .local int rx1103_rep
+    .local pmc rx1103_cur
+    .local pmc rx1103_debug
+    (rx1103_cur, rx1103_pos, rx1103_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1103_debug, rx1103_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1103_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1103_eos, rx1103_tgt
+    gt rx1103_pos, rx1103_eos, rx1103_done
+    set rx1103_off, 0
+    lt rx1103_pos, 2, rx1103_start
+    sub rx1103_off, rx1103_pos, 1
+    substr rx1103_tgt, rx1103_tgt, rx1103_off
+  rx1103_start:
+    eq $I10, 1, rx1103_restart
+    if_null rx1103_debug, debug_886
+    rx1103_cur."!cursor_debug"("START", "prefix:sym<|>")
+  debug_886:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1106_done
-    goto rxscan1106_scan
-  rxscan1106_loop:
-    ($P10) = rx1102_cur."from"()
-    inc $P10
-    set rx1102_pos, $P10
-    ge rx1102_pos, rx1102_eos, rxscan1106_done
-  rxscan1106_scan:
-    set_addr $I10, rxscan1106_loop
-    rx1102_cur."!mark_push"(0, rx1102_pos, $I10)
-  rxscan1106_done:
+    ne $I10, -1, rxscan1107_done
+    goto rxscan1107_scan
+  rxscan1107_loop:
+    ($P10) = rx1103_cur."from"()
+    inc $P10
+    set rx1103_pos, $P10
+    ge rx1103_pos, rx1103_eos, rxscan1107_done
+  rxscan1107_scan:
+    set_addr $I10, rxscan1107_loop
+    rx1103_cur."!mark_push"(0, rx1103_pos, $I10)
+  rxscan1107_done:
+.annotate 'line', 512
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1107_fail
-    rx1102_cur."!mark_push"(0, rx1102_pos, $I10)
-  # rx literal  "+&"
-    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
-    add rx1102_pos, 2
-    set_addr $I10, rxcap_1107_fail
-    ($I12, $I11) = rx1102_cur."!mark_peek"($I10)
-    rx1102_cur."!cursor_pos"($I11)
-    ($P10) = rx1102_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1102_pos, "")
-    rx1102_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1108_fail
+    rx1103_cur."!mark_push"(0, rx1103_pos, $I10)
+  # rx literal  "|"
+    add $I11, rx1103_pos, 1
+    gt $I11, rx1103_eos, rx1103_fail
+    sub $I11, rx1103_pos, rx1103_off
+    ord $I11, rx1103_tgt, $I11
+    ne $I11, 124, rx1103_fail
+    add rx1103_pos, 1
+    set_addr $I10, rxcap_1108_fail
+    ($I12, $I11) = rx1103_cur."!mark_peek"($I10)
+    rx1103_cur."!cursor_pos"($I11)
+    ($P10) = rx1103_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1103_pos, "")
+    rx1103_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1107_done
-  rxcap_1107_fail:
-    goto rx1102_fail
-  rxcap_1107_done:
+    goto rxcap_1108_done
+  rxcap_1108_fail:
+    goto rx1103_fail
+  rxcap_1108_done:
   # rx subrule "O" subtype=capture negate=
-    rx1102_cur."!cursor_pos"(rx1102_pos)
-    $P10 = rx1102_cur."O"("%multiplicative, :pirop<band III>")
-    unless $P10, rx1102_fail
-    rx1102_cur."!mark_push"(0, -1, 0, $P10)
+    rx1103_cur."!cursor_pos"(rx1103_pos)
+    $P10 = rx1103_cur."O"("%symbolic_unary")
+    unless $P10, rx1103_fail
+    rx1103_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1102_pos = $P10."pos"()
+    rx1103_pos = $P10."pos"()
   # rx pass
-    rx1102_cur."!cursor_pass"(rx1102_pos, "infix:sym<+&>")
-    if_null rx1102_debug, debug_889
-    rx1102_cur."!cursor_debug"("PASS", "infix:sym<+&>", " at pos=", rx1102_pos)
+    rx1103_cur."!cursor_pass"(rx1103_pos, "prefix:sym<|>")
+    if_null rx1103_debug, debug_887
+    rx1103_cur."!cursor_debug"("PASS", "prefix:sym<|>", " at pos=", rx1103_pos)
+  debug_887:
+    .return (rx1103_cur)
+  rx1103_restart:
+.annotate 'line', 454
+    if_null rx1103_debug, debug_888
+    rx1103_cur."!cursor_debug"("NEXT", "prefix:sym<|>")
+  debug_888:
+  rx1103_fail:
+    (rx1103_rep, rx1103_pos, $I10, $P10) = rx1103_cur."!mark_fail"(0)
+    lt rx1103_pos, -1, rx1103_done
+    eq rx1103_pos, -1, rx1103_fail
+    jump $I10
+  rx1103_done:
+    rx1103_cur."!cursor_fail"()
+    if_null rx1103_debug, debug_889
+    rx1103_cur."!cursor_debug"("FAIL", "prefix:sym<|>")
   debug_889:
-    .return (rx1102_cur)
-  rx1102_restart:
-    if_null rx1102_debug, debug_890
-    rx1102_cur."!cursor_debug"("NEXT", "infix:sym<+&>")
-  debug_890:
-  rx1102_fail:
-    (rx1102_rep, rx1102_pos, $I10, $P10) = rx1102_cur."!mark_fail"(0)
-    lt rx1102_pos, -1, rx1102_done
-    eq rx1102_pos, -1, rx1102_fail
-    jump $I10
-  rx1102_done:
-    rx1102_cur."!cursor_fail"()
-    if_null rx1102_debug, debug_891
-    rx1102_cur."!cursor_debug"("FAIL", "infix:sym<+&>")
-  debug_891:
-    .return (rx1102_cur)
+    .return (rx1103_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+&>"  :subid("283_1283975947.19641") :method
-.annotate 'line', 0
-    $P1104 = self."!PREFIX__!subrule"("O", "+&")
-    new $P1105, "ResizablePMCArray"
-    push $P1105, $P1104
-    .return ($P1105)
+.sub "!PREFIX__prefix:sym<|>"  :subid("281_1284728478.15265") :method
+.annotate 'line', 454
+    $P1105 = self."!PREFIX__!subrule"("O", "|")
+    new $P1106, "ResizablePMCArray"
+    push $P1106, $P1105
+    .return ($P1106)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+>"  :subid("284_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1109_tgt
-    .local int rx1109_pos
-    .local int rx1109_off
-    .local int rx1109_eos
-    .local int rx1109_rep
-    .local pmc rx1109_cur
-    .local pmc rx1109_debug
-    (rx1109_cur, rx1109_pos, rx1109_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1109_debug, rx1109_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1109_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1109_eos, rx1109_tgt
-    gt rx1109_pos, rx1109_eos, rx1109_done
-    set rx1109_off, 0
-    lt rx1109_pos, 2, rx1109_start
-    sub rx1109_off, rx1109_pos, 1
-    substr rx1109_tgt, rx1109_tgt, rx1109_off
-  rx1109_start:
-    eq $I10, 1, rx1109_restart
-    if_null rx1109_debug, debug_892
-    rx1109_cur."!cursor_debug"("START", "infix:sym<+>")
-  debug_892:
+.sub "infix:sym<*>"  :subid("282_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1110_tgt
+    .local int rx1110_pos
+    .local int rx1110_off
+    .local int rx1110_eos
+    .local int rx1110_rep
+    .local pmc rx1110_cur
+    .local pmc rx1110_debug
+    (rx1110_cur, rx1110_pos, rx1110_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1110_debug, rx1110_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1110_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1110_eos, rx1110_tgt
+    gt rx1110_pos, rx1110_eos, rx1110_done
+    set rx1110_off, 0
+    lt rx1110_pos, 2, rx1110_start
+    sub rx1110_off, rx1110_pos, 1
+    substr rx1110_tgt, rx1110_tgt, rx1110_off
+  rx1110_start:
+    eq $I10, 1, rx1110_restart
+    if_null rx1110_debug, debug_890
+    rx1110_cur."!cursor_debug"("START", "infix:sym<*>")
+  debug_890:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1113_done
-    goto rxscan1113_scan
-  rxscan1113_loop:
-    ($P10) = rx1109_cur."from"()
-    inc $P10
-    set rx1109_pos, $P10
-    ge rx1109_pos, rx1109_eos, rxscan1113_done
-  rxscan1113_scan:
-    set_addr $I10, rxscan1113_loop
-    rx1109_cur."!mark_push"(0, rx1109_pos, $I10)
-  rxscan1113_done:
+    ne $I10, -1, rxscan1114_done
+    goto rxscan1114_scan
+  rxscan1114_loop:
+    ($P10) = rx1110_cur."from"()
+    inc $P10
+    set rx1110_pos, $P10
+    ge rx1110_pos, rx1110_eos, rxscan1114_done
+  rxscan1114_scan:
+    set_addr $I10, rxscan1114_loop
+    rx1110_cur."!mark_push"(0, rx1110_pos, $I10)
+  rxscan1114_done:
+.annotate 'line', 514
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1114_fail
-    rx1109_cur."!mark_push"(0, rx1109_pos, $I10)
-  # rx literal  "+"
-    add $I11, rx1109_pos, 1
-    gt $I11, rx1109_eos, rx1109_fail
-    sub $I11, rx1109_pos, rx1109_off
-    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)
-    rx1109_cur."!cursor_pos"($I11)
-    ($P10) = rx1109_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1109_pos, "")
-    rx1109_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1115_fail
+    rx1110_cur."!mark_push"(0, rx1110_pos, $I10)
+  # rx literal  "*"
+    add $I11, rx1110_pos, 1
+    gt $I11, rx1110_eos, rx1110_fail
+    sub $I11, rx1110_pos, rx1110_off
+    ord $I11, rx1110_tgt, $I11
+    ne $I11, 42, rx1110_fail
+    add rx1110_pos, 1
+    set_addr $I10, rxcap_1115_fail
+    ($I12, $I11) = rx1110_cur."!mark_peek"($I10)
+    rx1110_cur."!cursor_pos"($I11)
+    ($P10) = rx1110_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1110_pos, "")
+    rx1110_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1114_done
-  rxcap_1114_fail:
-    goto rx1109_fail
-  rxcap_1114_done:
+    goto rxcap_1115_done
+  rxcap_1115_fail:
+    goto rx1110_fail
+  rxcap_1115_done:
   # rx subrule "O" subtype=capture negate=
-    rx1109_cur."!cursor_pos"(rx1109_pos)
-    $P10 = rx1109_cur."O"("%additive, :pirop<add>")
-    unless $P10, rx1109_fail
-    rx1109_cur."!mark_push"(0, -1, 0, $P10)
+    rx1110_cur."!cursor_pos"(rx1110_pos)
+    $P10 = rx1110_cur."O"("%multiplicative, :pirop<mul>")
+    unless $P10, rx1110_fail
+    rx1110_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1109_pos = $P10."pos"()
+    rx1110_pos = $P10."pos"()
   # rx pass
-    rx1109_cur."!cursor_pass"(rx1109_pos, "infix:sym<+>")
-    if_null rx1109_debug, debug_893
-    rx1109_cur."!cursor_debug"("PASS", "infix:sym<+>", " at pos=", rx1109_pos)
+    rx1110_cur."!cursor_pass"(rx1110_pos, "infix:sym<*>")
+    if_null rx1110_debug, debug_891
+    rx1110_cur."!cursor_debug"("PASS", "infix:sym<*>", " at pos=", rx1110_pos)
+  debug_891:
+    .return (rx1110_cur)
+  rx1110_restart:
+.annotate 'line', 454
+    if_null rx1110_debug, debug_892
+    rx1110_cur."!cursor_debug"("NEXT", "infix:sym<*>")
+  debug_892:
+  rx1110_fail:
+    (rx1110_rep, rx1110_pos, $I10, $P10) = rx1110_cur."!mark_fail"(0)
+    lt rx1110_pos, -1, rx1110_done
+    eq rx1110_pos, -1, rx1110_fail
+    jump $I10
+  rx1110_done:
+    rx1110_cur."!cursor_fail"()
+    if_null rx1110_debug, debug_893
+    rx1110_cur."!cursor_debug"("FAIL", "infix:sym<*>")
   debug_893:
-    .return (rx1109_cur)
-  rx1109_restart:
-    if_null rx1109_debug, debug_894
-    rx1109_cur."!cursor_debug"("NEXT", "infix:sym<+>")
-  debug_894:
-  rx1109_fail:
-    (rx1109_rep, rx1109_pos, $I10, $P10) = rx1109_cur."!mark_fail"(0)
-    lt rx1109_pos, -1, rx1109_done
-    eq rx1109_pos, -1, rx1109_fail
-    jump $I10
-  rx1109_done:
-    rx1109_cur."!cursor_fail"()
-    if_null rx1109_debug, debug_895
-    rx1109_cur."!cursor_debug"("FAIL", "infix:sym<+>")
-  debug_895:
-    .return (rx1109_cur)
+    .return (rx1110_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+>"  :subid("285_1283975947.19641") :method
-.annotate 'line', 0
-    $P1111 = self."!PREFIX__!subrule"("O", "+")
-    new $P1112, "ResizablePMCArray"
-    push $P1112, $P1111
-    .return ($P1112)
+.sub "!PREFIX__infix:sym<*>"  :subid("283_1284728478.15265") :method
+.annotate 'line', 454
+    $P1112 = self."!PREFIX__!subrule"("O", "*")
+    new $P1113, "ResizablePMCArray"
+    push $P1113, $P1112
+    .return ($P1113)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<->"  :subid("286_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1116_tgt
-    .local int rx1116_pos
-    .local int rx1116_off
-    .local int rx1116_eos
-    .local int rx1116_rep
-    .local pmc rx1116_cur
-    .local pmc rx1116_debug
-    (rx1116_cur, rx1116_pos, rx1116_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1116_debug, rx1116_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1116_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1116_eos, rx1116_tgt
-    gt rx1116_pos, rx1116_eos, rx1116_done
-    set rx1116_off, 0
-    lt rx1116_pos, 2, rx1116_start
-    sub rx1116_off, rx1116_pos, 1
-    substr rx1116_tgt, rx1116_tgt, rx1116_off
-  rx1116_start:
-    eq $I10, 1, rx1116_restart
-    if_null rx1116_debug, debug_896
-    rx1116_cur."!cursor_debug"("START", "infix:sym<->")
-  debug_896:
+.sub "infix:sym</>"  :subid("284_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1117_tgt
+    .local int rx1117_pos
+    .local int rx1117_off
+    .local int rx1117_eos
+    .local int rx1117_rep
+    .local pmc rx1117_cur
+    .local pmc rx1117_debug
+    (rx1117_cur, rx1117_pos, rx1117_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1117_debug, rx1117_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1117_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1117_eos, rx1117_tgt
+    gt rx1117_pos, rx1117_eos, rx1117_done
+    set rx1117_off, 0
+    lt rx1117_pos, 2, rx1117_start
+    sub rx1117_off, rx1117_pos, 1
+    substr rx1117_tgt, rx1117_tgt, rx1117_off
+  rx1117_start:
+    eq $I10, 1, rx1117_restart
+    if_null rx1117_debug, debug_894
+    rx1117_cur."!cursor_debug"("START", "infix:sym</>")
+  debug_894:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1120_done
-    goto rxscan1120_scan
-  rxscan1120_loop:
-    ($P10) = rx1116_cur."from"()
-    inc $P10
-    set rx1116_pos, $P10
-    ge rx1116_pos, rx1116_eos, rxscan1120_done
-  rxscan1120_scan:
-    set_addr $I10, rxscan1120_loop
-    rx1116_cur."!mark_push"(0, rx1116_pos, $I10)
-  rxscan1120_done:
+    ne $I10, -1, rxscan1121_done
+    goto rxscan1121_scan
+  rxscan1121_loop:
+    ($P10) = rx1117_cur."from"()
+    inc $P10
+    set rx1117_pos, $P10
+    ge rx1117_pos, rx1117_eos, rxscan1121_done
+  rxscan1121_scan:
+    set_addr $I10, rxscan1121_loop
+    rx1117_cur."!mark_push"(0, rx1117_pos, $I10)
+  rxscan1121_done:
+.annotate 'line', 515
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1121_fail
-    rx1116_cur."!mark_push"(0, rx1116_pos, $I10)
-  # rx literal  "-"
-    add $I11, rx1116_pos, 1
-    gt $I11, rx1116_eos, rx1116_fail
-    sub $I11, rx1116_pos, rx1116_off
-    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)
-    rx1116_cur."!cursor_pos"($I11)
-    ($P10) = rx1116_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1116_pos, "")
-    rx1116_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1122_fail
+    rx1117_cur."!mark_push"(0, rx1117_pos, $I10)
+  # rx literal  "/"
+    add $I11, rx1117_pos, 1
+    gt $I11, rx1117_eos, rx1117_fail
+    sub $I11, rx1117_pos, rx1117_off
+    ord $I11, rx1117_tgt, $I11
+    ne $I11, 47, rx1117_fail
+    add rx1117_pos, 1
+    set_addr $I10, rxcap_1122_fail
+    ($I12, $I11) = rx1117_cur."!mark_peek"($I10)
+    rx1117_cur."!cursor_pos"($I11)
+    ($P10) = rx1117_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1117_pos, "")
+    rx1117_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1121_done
-  rxcap_1121_fail:
-    goto rx1116_fail
-  rxcap_1121_done:
+    goto rxcap_1122_done
+  rxcap_1122_fail:
+    goto rx1117_fail
+  rxcap_1122_done:
   # rx subrule "O" subtype=capture negate=
-    rx1116_cur."!cursor_pos"(rx1116_pos)
-    $P10 = rx1116_cur."O"("%additive, :pirop<sub>")
-    unless $P10, rx1116_fail
-    rx1116_cur."!mark_push"(0, -1, 0, $P10)
+    rx1117_cur."!cursor_pos"(rx1117_pos)
+    $P10 = rx1117_cur."O"("%multiplicative, :pirop<div>")
+    unless $P10, rx1117_fail
+    rx1117_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1116_pos = $P10."pos"()
+    rx1117_pos = $P10."pos"()
   # rx pass
-    rx1116_cur."!cursor_pass"(rx1116_pos, "infix:sym<->")
-    if_null rx1116_debug, debug_897
-    rx1116_cur."!cursor_debug"("PASS", "infix:sym<->", " at pos=", rx1116_pos)
+    rx1117_cur."!cursor_pass"(rx1117_pos, "infix:sym</>")
+    if_null rx1117_debug, debug_895
+    rx1117_cur."!cursor_debug"("PASS", "infix:sym</>", " at pos=", rx1117_pos)
+  debug_895:
+    .return (rx1117_cur)
+  rx1117_restart:
+.annotate 'line', 454
+    if_null rx1117_debug, debug_896
+    rx1117_cur."!cursor_debug"("NEXT", "infix:sym</>")
+  debug_896:
+  rx1117_fail:
+    (rx1117_rep, rx1117_pos, $I10, $P10) = rx1117_cur."!mark_fail"(0)
+    lt rx1117_pos, -1, rx1117_done
+    eq rx1117_pos, -1, rx1117_fail
+    jump $I10
+  rx1117_done:
+    rx1117_cur."!cursor_fail"()
+    if_null rx1117_debug, debug_897
+    rx1117_cur."!cursor_debug"("FAIL", "infix:sym</>")
   debug_897:
-    .return (rx1116_cur)
-  rx1116_restart:
-    if_null rx1116_debug, debug_898
-    rx1116_cur."!cursor_debug"("NEXT", "infix:sym<->")
-  debug_898:
-  rx1116_fail:
-    (rx1116_rep, rx1116_pos, $I10, $P10) = rx1116_cur."!mark_fail"(0)
-    lt rx1116_pos, -1, rx1116_done
-    eq rx1116_pos, -1, rx1116_fail
-    jump $I10
-  rx1116_done:
-    rx1116_cur."!cursor_fail"()
-    if_null rx1116_debug, debug_899
-    rx1116_cur."!cursor_debug"("FAIL", "infix:sym<->")
-  debug_899:
-    .return (rx1116_cur)
+    .return (rx1117_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<->"  :subid("287_1283975947.19641") :method
-.annotate 'line', 0
-    $P1118 = self."!PREFIX__!subrule"("O", "-")
-    new $P1119, "ResizablePMCArray"
-    push $P1119, $P1118
-    .return ($P1119)
+.sub "!PREFIX__infix:sym</>"  :subid("285_1284728478.15265") :method
+.annotate 'line', 454
+    $P1119 = self."!PREFIX__!subrule"("O", "/")
+    new $P1120, "ResizablePMCArray"
+    push $P1120, $P1119
+    .return ($P1120)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+|>"  :subid("288_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1123_tgt
-    .local int rx1123_pos
-    .local int rx1123_off
-    .local int rx1123_eos
-    .local int rx1123_rep
-    .local pmc rx1123_cur
-    .local pmc rx1123_debug
-    (rx1123_cur, rx1123_pos, rx1123_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1123_debug, rx1123_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1123_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1123_eos, rx1123_tgt
-    gt rx1123_pos, rx1123_eos, rx1123_done
-    set rx1123_off, 0
-    lt rx1123_pos, 2, rx1123_start
-    sub rx1123_off, rx1123_pos, 1
-    substr rx1123_tgt, rx1123_tgt, rx1123_off
-  rx1123_start:
-    eq $I10, 1, rx1123_restart
-    if_null rx1123_debug, debug_900
-    rx1123_cur."!cursor_debug"("START", "infix:sym<+|>")
-  debug_900:
+.sub "infix:sym<%>"  :subid("286_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1124_tgt
+    .local int rx1124_pos
+    .local int rx1124_off
+    .local int rx1124_eos
+    .local int rx1124_rep
+    .local pmc rx1124_cur
+    .local pmc rx1124_debug
+    (rx1124_cur, rx1124_pos, rx1124_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1124_debug, rx1124_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1124_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1124_eos, rx1124_tgt
+    gt rx1124_pos, rx1124_eos, rx1124_done
+    set rx1124_off, 0
+    lt rx1124_pos, 2, rx1124_start
+    sub rx1124_off, rx1124_pos, 1
+    substr rx1124_tgt, rx1124_tgt, rx1124_off
+  rx1124_start:
+    eq $I10, 1, rx1124_restart
+    if_null rx1124_debug, debug_898
+    rx1124_cur."!cursor_debug"("START", "infix:sym<%>")
+  debug_898:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1127_done
-    goto rxscan1127_scan
-  rxscan1127_loop:
-    ($P10) = rx1123_cur."from"()
-    inc $P10
-    set rx1123_pos, $P10
-    ge rx1123_pos, rx1123_eos, rxscan1127_done
-  rxscan1127_scan:
-    set_addr $I10, rxscan1127_loop
-    rx1123_cur."!mark_push"(0, rx1123_pos, $I10)
-  rxscan1127_done:
+    ne $I10, -1, rxscan1128_done
+    goto rxscan1128_scan
+  rxscan1128_loop:
+    ($P10) = rx1124_cur."from"()
+    inc $P10
+    set rx1124_pos, $P10
+    ge rx1124_pos, rx1124_eos, rxscan1128_done
+  rxscan1128_scan:
+    set_addr $I10, rxscan1128_loop
+    rx1124_cur."!mark_push"(0, rx1124_pos, $I10)
+  rxscan1128_done:
+.annotate 'line', 516
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1128_fail
-    rx1123_cur."!mark_push"(0, rx1123_pos, $I10)
-  # rx literal  "+|"
-    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
-    add rx1123_pos, 2
-    set_addr $I10, rxcap_1128_fail
-    ($I12, $I11) = rx1123_cur."!mark_peek"($I10)
-    rx1123_cur."!cursor_pos"($I11)
-    ($P10) = rx1123_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1123_pos, "")
-    rx1123_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1129_fail
+    rx1124_cur."!mark_push"(0, rx1124_pos, $I10)
+  # rx literal  "%"
+    add $I11, rx1124_pos, 1
+    gt $I11, rx1124_eos, rx1124_fail
+    sub $I11, rx1124_pos, rx1124_off
+    ord $I11, rx1124_tgt, $I11
+    ne $I11, 37, rx1124_fail
+    add rx1124_pos, 1
+    set_addr $I10, rxcap_1129_fail
+    ($I12, $I11) = rx1124_cur."!mark_peek"($I10)
+    rx1124_cur."!cursor_pos"($I11)
+    ($P10) = rx1124_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1124_pos, "")
+    rx1124_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1128_done
-  rxcap_1128_fail:
-    goto rx1123_fail
-  rxcap_1128_done:
+    goto rxcap_1129_done
+  rxcap_1129_fail:
+    goto rx1124_fail
+  rxcap_1129_done:
   # rx subrule "O" subtype=capture negate=
-    rx1123_cur."!cursor_pos"(rx1123_pos)
-    $P10 = rx1123_cur."O"("%additive, :pirop<bor III>")
-    unless $P10, rx1123_fail
-    rx1123_cur."!mark_push"(0, -1, 0, $P10)
+    rx1124_cur."!cursor_pos"(rx1124_pos)
+    $P10 = rx1124_cur."O"("%multiplicative, :pirop<mod>")
+    unless $P10, rx1124_fail
+    rx1124_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1123_pos = $P10."pos"()
+    rx1124_pos = $P10."pos"()
   # rx pass
-    rx1123_cur."!cursor_pass"(rx1123_pos, "infix:sym<+|>")
-    if_null rx1123_debug, debug_901
-    rx1123_cur."!cursor_debug"("PASS", "infix:sym<+|>", " at pos=", rx1123_pos)
+    rx1124_cur."!cursor_pass"(rx1124_pos, "infix:sym<%>")
+    if_null rx1124_debug, debug_899
+    rx1124_cur."!cursor_debug"("PASS", "infix:sym<%>", " at pos=", rx1124_pos)
+  debug_899:
+    .return (rx1124_cur)
+  rx1124_restart:
+.annotate 'line', 454
+    if_null rx1124_debug, debug_900
+    rx1124_cur."!cursor_debug"("NEXT", "infix:sym<%>")
+  debug_900:
+  rx1124_fail:
+    (rx1124_rep, rx1124_pos, $I10, $P10) = rx1124_cur."!mark_fail"(0)
+    lt rx1124_pos, -1, rx1124_done
+    eq rx1124_pos, -1, rx1124_fail
+    jump $I10
+  rx1124_done:
+    rx1124_cur."!cursor_fail"()
+    if_null rx1124_debug, debug_901
+    rx1124_cur."!cursor_debug"("FAIL", "infix:sym<%>")
   debug_901:
-    .return (rx1123_cur)
-  rx1123_restart:
-    if_null rx1123_debug, debug_902
-    rx1123_cur."!cursor_debug"("NEXT", "infix:sym<+|>")
-  debug_902:
-  rx1123_fail:
-    (rx1123_rep, rx1123_pos, $I10, $P10) = rx1123_cur."!mark_fail"(0)
-    lt rx1123_pos, -1, rx1123_done
-    eq rx1123_pos, -1, rx1123_fail
-    jump $I10
-  rx1123_done:
-    rx1123_cur."!cursor_fail"()
-    if_null rx1123_debug, debug_903
-    rx1123_cur."!cursor_debug"("FAIL", "infix:sym<+|>")
-  debug_903:
-    .return (rx1123_cur)
+    .return (rx1124_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+|>"  :subid("289_1283975947.19641") :method
-.annotate 'line', 0
-    $P1125 = self."!PREFIX__!subrule"("O", "+|")
-    new $P1126, "ResizablePMCArray"
-    push $P1126, $P1125
-    .return ($P1126)
+.sub "!PREFIX__infix:sym<%>"  :subid("287_1284728478.15265") :method
+.annotate 'line', 454
+    $P1126 = self."!PREFIX__!subrule"("O", "%")
+    new $P1127, "ResizablePMCArray"
+    push $P1127, $P1126
+    .return ($P1127)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+^>"  :subid("290_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1130_tgt
-    .local int rx1130_pos
-    .local int rx1130_off
-    .local int rx1130_eos
-    .local int rx1130_rep
-    .local pmc rx1130_cur
-    .local pmc rx1130_debug
-    (rx1130_cur, rx1130_pos, rx1130_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1130_debug, rx1130_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1130_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1130_eos, rx1130_tgt
-    gt rx1130_pos, rx1130_eos, rx1130_done
-    set rx1130_off, 0
-    lt rx1130_pos, 2, rx1130_start
-    sub rx1130_off, rx1130_pos, 1
-    substr rx1130_tgt, rx1130_tgt, rx1130_off
-  rx1130_start:
-    eq $I10, 1, rx1130_restart
-    if_null rx1130_debug, debug_904
-    rx1130_cur."!cursor_debug"("START", "infix:sym<+^>")
-  debug_904:
+.sub "infix:sym<+&>"  :subid("288_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1131_tgt
+    .local int rx1131_pos
+    .local int rx1131_off
+    .local int rx1131_eos
+    .local int rx1131_rep
+    .local pmc rx1131_cur
+    .local pmc rx1131_debug
+    (rx1131_cur, rx1131_pos, rx1131_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1131_debug, rx1131_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1131_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1131_eos, rx1131_tgt
+    gt rx1131_pos, rx1131_eos, rx1131_done
+    set rx1131_off, 0
+    lt rx1131_pos, 2, rx1131_start
+    sub rx1131_off, rx1131_pos, 1
+    substr rx1131_tgt, rx1131_tgt, rx1131_off
+  rx1131_start:
+    eq $I10, 1, rx1131_restart
+    if_null rx1131_debug, debug_902
+    rx1131_cur."!cursor_debug"("START", "infix:sym<+&>")
+  debug_902:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1134_done
-    goto rxscan1134_scan
-  rxscan1134_loop:
-    ($P10) = rx1130_cur."from"()
-    inc $P10
-    set rx1130_pos, $P10
-    ge rx1130_pos, rx1130_eos, rxscan1134_done
-  rxscan1134_scan:
-    set_addr $I10, rxscan1134_loop
-    rx1130_cur."!mark_push"(0, rx1130_pos, $I10)
-  rxscan1134_done:
+    ne $I10, -1, rxscan1135_done
+    goto rxscan1135_scan
+  rxscan1135_loop:
+    ($P10) = rx1131_cur."from"()
+    inc $P10
+    set rx1131_pos, $P10
+    ge rx1131_pos, rx1131_eos, rxscan1135_done
+  rxscan1135_scan:
+    set_addr $I10, rxscan1135_loop
+    rx1131_cur."!mark_push"(0, rx1131_pos, $I10)
+  rxscan1135_done:
+.annotate 'line', 517
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1135_fail
-    rx1130_cur."!mark_push"(0, rx1130_pos, $I10)
-  # rx literal  "+^"
-    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
-    add rx1130_pos, 2
-    set_addr $I10, rxcap_1135_fail
-    ($I12, $I11) = rx1130_cur."!mark_peek"($I10)
-    rx1130_cur."!cursor_pos"($I11)
-    ($P10) = rx1130_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1130_pos, "")
-    rx1130_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1136_fail
+    rx1131_cur."!mark_push"(0, rx1131_pos, $I10)
+  # rx literal  "+&"
+    add $I11, rx1131_pos, 2
+    gt $I11, rx1131_eos, rx1131_fail
+    sub $I11, rx1131_pos, rx1131_off
+    substr $S10, rx1131_tgt, $I11, 2
+    ne $S10, "+&", rx1131_fail
+    add rx1131_pos, 2
+    set_addr $I10, rxcap_1136_fail
+    ($I12, $I11) = rx1131_cur."!mark_peek"($I10)
+    rx1131_cur."!cursor_pos"($I11)
+    ($P10) = rx1131_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1131_pos, "")
+    rx1131_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1135_done
-  rxcap_1135_fail:
-    goto rx1130_fail
-  rxcap_1135_done:
+    goto rxcap_1136_done
+  rxcap_1136_fail:
+    goto rx1131_fail
+  rxcap_1136_done:
   # rx subrule "O" subtype=capture negate=
-    rx1130_cur."!cursor_pos"(rx1130_pos)
-    $P10 = rx1130_cur."O"("%additive, :pirop<bxor III>")
-    unless $P10, rx1130_fail
-    rx1130_cur."!mark_push"(0, -1, 0, $P10)
+    rx1131_cur."!cursor_pos"(rx1131_pos)
+    $P10 = rx1131_cur."O"("%multiplicative, :pirop<band III>")
+    unless $P10, rx1131_fail
+    rx1131_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1130_pos = $P10."pos"()
+    rx1131_pos = $P10."pos"()
   # rx pass
-    rx1130_cur."!cursor_pass"(rx1130_pos, "infix:sym<+^>")
-    if_null rx1130_debug, debug_905
-    rx1130_cur."!cursor_debug"("PASS", "infix:sym<+^>", " at pos=", rx1130_pos)
+    rx1131_cur."!cursor_pass"(rx1131_pos, "infix:sym<+&>")
+    if_null rx1131_debug, debug_903
+    rx1131_cur."!cursor_debug"("PASS", "infix:sym<+&>", " at pos=", rx1131_pos)
+  debug_903:
+    .return (rx1131_cur)
+  rx1131_restart:
+.annotate 'line', 454
+    if_null rx1131_debug, debug_904
+    rx1131_cur."!cursor_debug"("NEXT", "infix:sym<+&>")
+  debug_904:
+  rx1131_fail:
+    (rx1131_rep, rx1131_pos, $I10, $P10) = rx1131_cur."!mark_fail"(0)
+    lt rx1131_pos, -1, rx1131_done
+    eq rx1131_pos, -1, rx1131_fail
+    jump $I10
+  rx1131_done:
+    rx1131_cur."!cursor_fail"()
+    if_null rx1131_debug, debug_905
+    rx1131_cur."!cursor_debug"("FAIL", "infix:sym<+&>")
   debug_905:
-    .return (rx1130_cur)
-  rx1130_restart:
-    if_null rx1130_debug, debug_906
-    rx1130_cur."!cursor_debug"("NEXT", "infix:sym<+^>")
-  debug_906:
-  rx1130_fail:
-    (rx1130_rep, rx1130_pos, $I10, $P10) = rx1130_cur."!mark_fail"(0)
-    lt rx1130_pos, -1, rx1130_done
-    eq rx1130_pos, -1, rx1130_fail
-    jump $I10
-  rx1130_done:
-    rx1130_cur."!cursor_fail"()
-    if_null rx1130_debug, debug_907
-    rx1130_cur."!cursor_debug"("FAIL", "infix:sym<+^>")
-  debug_907:
-    .return (rx1130_cur)
+    .return (rx1131_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+^>"  :subid("291_1283975947.19641") :method
-.annotate 'line', 0
-    $P1132 = self."!PREFIX__!subrule"("O", "+^")
-    new $P1133, "ResizablePMCArray"
-    push $P1133, $P1132
-    .return ($P1133)
+.sub "!PREFIX__infix:sym<+&>"  :subid("289_1284728478.15265") :method
+.annotate 'line', 454
+    $P1133 = self."!PREFIX__!subrule"("O", "+&")
+    new $P1134, "ResizablePMCArray"
+    push $P1134, $P1133
+    .return ($P1134)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~>"  :subid("292_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1137_tgt
-    .local int rx1137_pos
-    .local int rx1137_off
-    .local int rx1137_eos
-    .local int rx1137_rep
-    .local pmc rx1137_cur
-    .local pmc rx1137_debug
-    (rx1137_cur, rx1137_pos, rx1137_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1137_debug, rx1137_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1137_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1137_eos, rx1137_tgt
-    gt rx1137_pos, rx1137_eos, rx1137_done
-    set rx1137_off, 0
-    lt rx1137_pos, 2, rx1137_start
-    sub rx1137_off, rx1137_pos, 1
-    substr rx1137_tgt, rx1137_tgt, rx1137_off
-  rx1137_start:
-    eq $I10, 1, rx1137_restart
-    if_null rx1137_debug, debug_908
-    rx1137_cur."!cursor_debug"("START", "infix:sym<~>")
-  debug_908:
+.sub "infix:sym<+>"  :subid("290_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1138_tgt
+    .local int rx1138_pos
+    .local int rx1138_off
+    .local int rx1138_eos
+    .local int rx1138_rep
+    .local pmc rx1138_cur
+    .local pmc rx1138_debug
+    (rx1138_cur, rx1138_pos, rx1138_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1138_debug, rx1138_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1138_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1138_eos, rx1138_tgt
+    gt rx1138_pos, rx1138_eos, rx1138_done
+    set rx1138_off, 0
+    lt rx1138_pos, 2, rx1138_start
+    sub rx1138_off, rx1138_pos, 1
+    substr rx1138_tgt, rx1138_tgt, rx1138_off
+  rx1138_start:
+    eq $I10, 1, rx1138_restart
+    if_null rx1138_debug, debug_906
+    rx1138_cur."!cursor_debug"("START", "infix:sym<+>")
+  debug_906:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1141_done
-    goto rxscan1141_scan
-  rxscan1141_loop:
-    ($P10) = rx1137_cur."from"()
-    inc $P10
-    set rx1137_pos, $P10
-    ge rx1137_pos, rx1137_eos, rxscan1141_done
-  rxscan1141_scan:
-    set_addr $I10, rxscan1141_loop
-    rx1137_cur."!mark_push"(0, rx1137_pos, $I10)
-  rxscan1141_done:
+    ne $I10, -1, rxscan1142_done
+    goto rxscan1142_scan
+  rxscan1142_loop:
+    ($P10) = rx1138_cur."from"()
+    inc $P10
+    set rx1138_pos, $P10
+    ge rx1138_pos, rx1138_eos, rxscan1142_done
+  rxscan1142_scan:
+    set_addr $I10, rxscan1142_loop
+    rx1138_cur."!mark_push"(0, rx1138_pos, $I10)
+  rxscan1142_done:
+.annotate 'line', 519
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1142_fail
-    rx1137_cur."!mark_push"(0, rx1137_pos, $I10)
-  # rx literal  "~"
-    add $I11, rx1137_pos, 1
-    gt $I11, rx1137_eos, rx1137_fail
-    sub $I11, rx1137_pos, rx1137_off
-    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)
-    rx1137_cur."!cursor_pos"($I11)
-    ($P10) = rx1137_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1137_pos, "")
-    rx1137_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1143_fail
+    rx1138_cur."!mark_push"(0, rx1138_pos, $I10)
+  # rx literal  "+"
+    add $I11, rx1138_pos, 1
+    gt $I11, rx1138_eos, rx1138_fail
+    sub $I11, rx1138_pos, rx1138_off
+    ord $I11, rx1138_tgt, $I11
+    ne $I11, 43, rx1138_fail
+    add rx1138_pos, 1
+    set_addr $I10, rxcap_1143_fail
+    ($I12, $I11) = rx1138_cur."!mark_peek"($I10)
+    rx1138_cur."!cursor_pos"($I11)
+    ($P10) = rx1138_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1138_pos, "")
+    rx1138_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1142_done
-  rxcap_1142_fail:
-    goto rx1137_fail
-  rxcap_1142_done:
+    goto rxcap_1143_done
+  rxcap_1143_fail:
+    goto rx1138_fail
+  rxcap_1143_done:
   # rx subrule "O" subtype=capture negate=
-    rx1137_cur."!cursor_pos"(rx1137_pos)
-    $P10 = rx1137_cur."O"("%concatenation , :pirop<concat>")
-    unless $P10, rx1137_fail
-    rx1137_cur."!mark_push"(0, -1, 0, $P10)
+    rx1138_cur."!cursor_pos"(rx1138_pos)
+    $P10 = rx1138_cur."O"("%additive, :pirop<add>")
+    unless $P10, rx1138_fail
+    rx1138_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1137_pos = $P10."pos"()
+    rx1138_pos = $P10."pos"()
   # rx pass
-    rx1137_cur."!cursor_pass"(rx1137_pos, "infix:sym<~>")
-    if_null rx1137_debug, debug_909
-    rx1137_cur."!cursor_debug"("PASS", "infix:sym<~>", " at pos=", rx1137_pos)
+    rx1138_cur."!cursor_pass"(rx1138_pos, "infix:sym<+>")
+    if_null rx1138_debug, debug_907
+    rx1138_cur."!cursor_debug"("PASS", "infix:sym<+>", " at pos=", rx1138_pos)
+  debug_907:
+    .return (rx1138_cur)
+  rx1138_restart:
+.annotate 'line', 454
+    if_null rx1138_debug, debug_908
+    rx1138_cur."!cursor_debug"("NEXT", "infix:sym<+>")
+  debug_908:
+  rx1138_fail:
+    (rx1138_rep, rx1138_pos, $I10, $P10) = rx1138_cur."!mark_fail"(0)
+    lt rx1138_pos, -1, rx1138_done
+    eq rx1138_pos, -1, rx1138_fail
+    jump $I10
+  rx1138_done:
+    rx1138_cur."!cursor_fail"()
+    if_null rx1138_debug, debug_909
+    rx1138_cur."!cursor_debug"("FAIL", "infix:sym<+>")
   debug_909:
-    .return (rx1137_cur)
-  rx1137_restart:
-    if_null rx1137_debug, debug_910
-    rx1137_cur."!cursor_debug"("NEXT", "infix:sym<~>")
-  debug_910:
-  rx1137_fail:
-    (rx1137_rep, rx1137_pos, $I10, $P10) = rx1137_cur."!mark_fail"(0)
-    lt rx1137_pos, -1, rx1137_done
-    eq rx1137_pos, -1, rx1137_fail
-    jump $I10
-  rx1137_done:
-    rx1137_cur."!cursor_fail"()
-    if_null rx1137_debug, debug_911
-    rx1137_cur."!cursor_debug"("FAIL", "infix:sym<~>")
-  debug_911:
-    .return (rx1137_cur)
+    .return (rx1138_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~>"  :subid("293_1283975947.19641") :method
-.annotate 'line', 0
-    $P1139 = self."!PREFIX__!subrule"("O", "~")
-    new $P1140, "ResizablePMCArray"
-    push $P1140, $P1139
-    .return ($P1140)
+.sub "!PREFIX__infix:sym<+>"  :subid("291_1284728478.15265") :method
+.annotate 'line', 454
+    $P1140 = self."!PREFIX__!subrule"("O", "+")
+    new $P1141, "ResizablePMCArray"
+    push $P1141, $P1140
+    .return ($P1141)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<==>"  :subid("294_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1144_tgt
-    .local int rx1144_pos
-    .local int rx1144_off
-    .local int rx1144_eos
-    .local int rx1144_rep
-    .local pmc rx1144_cur
-    .local pmc rx1144_debug
-    (rx1144_cur, rx1144_pos, rx1144_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1144_debug, rx1144_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1144_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1144_eos, rx1144_tgt
-    gt rx1144_pos, rx1144_eos, rx1144_done
-    set rx1144_off, 0
-    lt rx1144_pos, 2, rx1144_start
-    sub rx1144_off, rx1144_pos, 1
-    substr rx1144_tgt, rx1144_tgt, rx1144_off
-  rx1144_start:
-    eq $I10, 1, rx1144_restart
-    if_null rx1144_debug, debug_912
-    rx1144_cur."!cursor_debug"("START", "infix:sym<==>")
-  debug_912:
+.sub "infix:sym<->"  :subid("292_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1145_tgt
+    .local int rx1145_pos
+    .local int rx1145_off
+    .local int rx1145_eos
+    .local int rx1145_rep
+    .local pmc rx1145_cur
+    .local pmc rx1145_debug
+    (rx1145_cur, rx1145_pos, rx1145_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1145_debug, rx1145_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1145_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1145_eos, rx1145_tgt
+    gt rx1145_pos, rx1145_eos, rx1145_done
+    set rx1145_off, 0
+    lt rx1145_pos, 2, rx1145_start
+    sub rx1145_off, rx1145_pos, 1
+    substr rx1145_tgt, rx1145_tgt, rx1145_off
+  rx1145_start:
+    eq $I10, 1, rx1145_restart
+    if_null rx1145_debug, debug_910
+    rx1145_cur."!cursor_debug"("START", "infix:sym<->")
+  debug_910:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1148_done
-    goto rxscan1148_scan
-  rxscan1148_loop:
-    ($P10) = rx1144_cur."from"()
-    inc $P10
-    set rx1144_pos, $P10
-    ge rx1144_pos, rx1144_eos, rxscan1148_done
-  rxscan1148_scan:
-    set_addr $I10, rxscan1148_loop
-    rx1144_cur."!mark_push"(0, rx1144_pos, $I10)
-  rxscan1148_done:
+    ne $I10, -1, rxscan1149_done
+    goto rxscan1149_scan
+  rxscan1149_loop:
+    ($P10) = rx1145_cur."from"()
+    inc $P10
+    set rx1145_pos, $P10
+    ge rx1145_pos, rx1145_eos, rxscan1149_done
+  rxscan1149_scan:
+    set_addr $I10, rxscan1149_loop
+    rx1145_cur."!mark_push"(0, rx1145_pos, $I10)
+  rxscan1149_done:
+.annotate 'line', 520
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1149_fail
-    rx1144_cur."!mark_push"(0, rx1144_pos, $I10)
-  # rx literal  "=="
-    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
-    add rx1144_pos, 2
-    set_addr $I10, rxcap_1149_fail
-    ($I12, $I11) = rx1144_cur."!mark_peek"($I10)
-    rx1144_cur."!cursor_pos"($I11)
-    ($P10) = rx1144_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1144_pos, "")
-    rx1144_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1150_fail
+    rx1145_cur."!mark_push"(0, rx1145_pos, $I10)
+  # rx literal  "-"
+    add $I11, rx1145_pos, 1
+    gt $I11, rx1145_eos, rx1145_fail
+    sub $I11, rx1145_pos, rx1145_off
+    ord $I11, rx1145_tgt, $I11
+    ne $I11, 45, rx1145_fail
+    add rx1145_pos, 1
+    set_addr $I10, rxcap_1150_fail
+    ($I12, $I11) = rx1145_cur."!mark_peek"($I10)
+    rx1145_cur."!cursor_pos"($I11)
+    ($P10) = rx1145_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1145_pos, "")
+    rx1145_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1149_done
-  rxcap_1149_fail:
-    goto rx1144_fail
-  rxcap_1149_done:
+    goto rxcap_1150_done
+  rxcap_1150_fail:
+    goto rx1145_fail
+  rxcap_1150_done:
   # rx subrule "O" subtype=capture negate=
-    rx1144_cur."!cursor_pos"(rx1144_pos)
-    $P10 = rx1144_cur."O"("%relational, :pirop<iseq INn>")
-    unless $P10, rx1144_fail
-    rx1144_cur."!mark_push"(0, -1, 0, $P10)
+    rx1145_cur."!cursor_pos"(rx1145_pos)
+    $P10 = rx1145_cur."O"("%additive, :pirop<sub>")
+    unless $P10, rx1145_fail
+    rx1145_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1144_pos = $P10."pos"()
+    rx1145_pos = $P10."pos"()
   # rx pass
-    rx1144_cur."!cursor_pass"(rx1144_pos, "infix:sym<==>")
-    if_null rx1144_debug, debug_913
-    rx1144_cur."!cursor_debug"("PASS", "infix:sym<==>", " at pos=", rx1144_pos)
+    rx1145_cur."!cursor_pass"(rx1145_pos, "infix:sym<->")
+    if_null rx1145_debug, debug_911
+    rx1145_cur."!cursor_debug"("PASS", "infix:sym<->", " at pos=", rx1145_pos)
+  debug_911:
+    .return (rx1145_cur)
+  rx1145_restart:
+.annotate 'line', 454
+    if_null rx1145_debug, debug_912
+    rx1145_cur."!cursor_debug"("NEXT", "infix:sym<->")
+  debug_912:
+  rx1145_fail:
+    (rx1145_rep, rx1145_pos, $I10, $P10) = rx1145_cur."!mark_fail"(0)
+    lt rx1145_pos, -1, rx1145_done
+    eq rx1145_pos, -1, rx1145_fail
+    jump $I10
+  rx1145_done:
+    rx1145_cur."!cursor_fail"()
+    if_null rx1145_debug, debug_913
+    rx1145_cur."!cursor_debug"("FAIL", "infix:sym<->")
   debug_913:
-    .return (rx1144_cur)
-  rx1144_restart:
-    if_null rx1144_debug, debug_914
-    rx1144_cur."!cursor_debug"("NEXT", "infix:sym<==>")
-  debug_914:
-  rx1144_fail:
-    (rx1144_rep, rx1144_pos, $I10, $P10) = rx1144_cur."!mark_fail"(0)
-    lt rx1144_pos, -1, rx1144_done
-    eq rx1144_pos, -1, rx1144_fail
-    jump $I10
-  rx1144_done:
-    rx1144_cur."!cursor_fail"()
-    if_null rx1144_debug, debug_915
-    rx1144_cur."!cursor_debug"("FAIL", "infix:sym<==>")
-  debug_915:
-    .return (rx1144_cur)
+    .return (rx1145_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<==>"  :subid("295_1283975947.19641") :method
-.annotate 'line', 0
-    $P1146 = self."!PREFIX__!subrule"("O", "==")
-    new $P1147, "ResizablePMCArray"
-    push $P1147, $P1146
-    .return ($P1147)
+.sub "!PREFIX__infix:sym<->"  :subid("293_1284728478.15265") :method
+.annotate 'line', 454
+    $P1147 = self."!PREFIX__!subrule"("O", "-")
+    new $P1148, "ResizablePMCArray"
+    push $P1148, $P1147
+    .return ($P1148)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<!=>"  :subid("296_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1151_tgt
-    .local int rx1151_pos
-    .local int rx1151_off
-    .local int rx1151_eos
-    .local int rx1151_rep
-    .local pmc rx1151_cur
-    .local pmc rx1151_debug
-    (rx1151_cur, rx1151_pos, rx1151_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1151_debug, rx1151_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1151_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1151_eos, rx1151_tgt
-    gt rx1151_pos, rx1151_eos, rx1151_done
-    set rx1151_off, 0
-    lt rx1151_pos, 2, rx1151_start
-    sub rx1151_off, rx1151_pos, 1
-    substr rx1151_tgt, rx1151_tgt, rx1151_off
-  rx1151_start:
-    eq $I10, 1, rx1151_restart
-    if_null rx1151_debug, debug_916
-    rx1151_cur."!cursor_debug"("START", "infix:sym<!=>")
-  debug_916:
+.sub "infix:sym<+|>"  :subid("294_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1152_tgt
+    .local int rx1152_pos
+    .local int rx1152_off
+    .local int rx1152_eos
+    .local int rx1152_rep
+    .local pmc rx1152_cur
+    .local pmc rx1152_debug
+    (rx1152_cur, rx1152_pos, rx1152_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1152_debug, rx1152_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1152_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1152_eos, rx1152_tgt
+    gt rx1152_pos, rx1152_eos, rx1152_done
+    set rx1152_off, 0
+    lt rx1152_pos, 2, rx1152_start
+    sub rx1152_off, rx1152_pos, 1
+    substr rx1152_tgt, rx1152_tgt, rx1152_off
+  rx1152_start:
+    eq $I10, 1, rx1152_restart
+    if_null rx1152_debug, debug_914
+    rx1152_cur."!cursor_debug"("START", "infix:sym<+|>")
+  debug_914:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1155_done
-    goto rxscan1155_scan
-  rxscan1155_loop:
-    ($P10) = rx1151_cur."from"()
-    inc $P10
-    set rx1151_pos, $P10
-    ge rx1151_pos, rx1151_eos, rxscan1155_done
-  rxscan1155_scan:
-    set_addr $I10, rxscan1155_loop
-    rx1151_cur."!mark_push"(0, rx1151_pos, $I10)
-  rxscan1155_done:
+    ne $I10, -1, rxscan1156_done
+    goto rxscan1156_scan
+  rxscan1156_loop:
+    ($P10) = rx1152_cur."from"()
+    inc $P10
+    set rx1152_pos, $P10
+    ge rx1152_pos, rx1152_eos, rxscan1156_done
+  rxscan1156_scan:
+    set_addr $I10, rxscan1156_loop
+    rx1152_cur."!mark_push"(0, rx1152_pos, $I10)
+  rxscan1156_done:
+.annotate 'line', 521
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1156_fail
-    rx1151_cur."!mark_push"(0, rx1151_pos, $I10)
-  # rx literal  "!="
-    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
-    add rx1151_pos, 2
-    set_addr $I10, rxcap_1156_fail
-    ($I12, $I11) = rx1151_cur."!mark_peek"($I10)
-    rx1151_cur."!cursor_pos"($I11)
-    ($P10) = rx1151_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1151_pos, "")
-    rx1151_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1157_fail
+    rx1152_cur."!mark_push"(0, rx1152_pos, $I10)
+  # rx literal  "+|"
+    add $I11, rx1152_pos, 2
+    gt $I11, rx1152_eos, rx1152_fail
+    sub $I11, rx1152_pos, rx1152_off
+    substr $S10, rx1152_tgt, $I11, 2
+    ne $S10, "+|", rx1152_fail
+    add rx1152_pos, 2
+    set_addr $I10, rxcap_1157_fail
+    ($I12, $I11) = rx1152_cur."!mark_peek"($I10)
+    rx1152_cur."!cursor_pos"($I11)
+    ($P10) = rx1152_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1152_pos, "")
+    rx1152_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1156_done
-  rxcap_1156_fail:
-    goto rx1151_fail
-  rxcap_1156_done:
+    goto rxcap_1157_done
+  rxcap_1157_fail:
+    goto rx1152_fail
+  rxcap_1157_done:
   # rx subrule "O" subtype=capture negate=
-    rx1151_cur."!cursor_pos"(rx1151_pos)
-    $P10 = rx1151_cur."O"("%relational, :pirop<isne INn>")
-    unless $P10, rx1151_fail
-    rx1151_cur."!mark_push"(0, -1, 0, $P10)
+    rx1152_cur."!cursor_pos"(rx1152_pos)
+    $P10 = rx1152_cur."O"("%additive, :pirop<bor III>")
+    unless $P10, rx1152_fail
+    rx1152_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1151_pos = $P10."pos"()
+    rx1152_pos = $P10."pos"()
   # rx pass
-    rx1151_cur."!cursor_pass"(rx1151_pos, "infix:sym<!=>")
-    if_null rx1151_debug, debug_917
-    rx1151_cur."!cursor_debug"("PASS", "infix:sym<!=>", " at pos=", rx1151_pos)
+    rx1152_cur."!cursor_pass"(rx1152_pos, "infix:sym<+|>")
+    if_null rx1152_debug, debug_915
+    rx1152_cur."!cursor_debug"("PASS", "infix:sym<+|>", " at pos=", rx1152_pos)
+  debug_915:
+    .return (rx1152_cur)
+  rx1152_restart:
+.annotate 'line', 454
+    if_null rx1152_debug, debug_916
+    rx1152_cur."!cursor_debug"("NEXT", "infix:sym<+|>")
+  debug_916:
+  rx1152_fail:
+    (rx1152_rep, rx1152_pos, $I10, $P10) = rx1152_cur."!mark_fail"(0)
+    lt rx1152_pos, -1, rx1152_done
+    eq rx1152_pos, -1, rx1152_fail
+    jump $I10
+  rx1152_done:
+    rx1152_cur."!cursor_fail"()
+    if_null rx1152_debug, debug_917
+    rx1152_cur."!cursor_debug"("FAIL", "infix:sym<+|>")
   debug_917:
-    .return (rx1151_cur)
-  rx1151_restart:
-    if_null rx1151_debug, debug_918
-    rx1151_cur."!cursor_debug"("NEXT", "infix:sym<!=>")
-  debug_918:
-  rx1151_fail:
-    (rx1151_rep, rx1151_pos, $I10, $P10) = rx1151_cur."!mark_fail"(0)
-    lt rx1151_pos, -1, rx1151_done
-    eq rx1151_pos, -1, rx1151_fail
-    jump $I10
-  rx1151_done:
-    rx1151_cur."!cursor_fail"()
-    if_null rx1151_debug, debug_919
-    rx1151_cur."!cursor_debug"("FAIL", "infix:sym<!=>")
-  debug_919:
-    .return (rx1151_cur)
+    .return (rx1152_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<!=>"  :subid("297_1283975947.19641") :method
-.annotate 'line', 0
-    $P1153 = self."!PREFIX__!subrule"("O", "!=")
-    new $P1154, "ResizablePMCArray"
-    push $P1154, $P1153
-    .return ($P1154)
+.sub "!PREFIX__infix:sym<+|>"  :subid("295_1284728478.15265") :method
+.annotate 'line', 454
+    $P1154 = self."!PREFIX__!subrule"("O", "+|")
+    new $P1155, "ResizablePMCArray"
+    push $P1155, $P1154
+    .return ($P1155)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<=>"  :subid("298_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1158_tgt
-    .local int rx1158_pos
-    .local int rx1158_off
-    .local int rx1158_eos
-    .local int rx1158_rep
-    .local pmc rx1158_cur
-    .local pmc rx1158_debug
-    (rx1158_cur, rx1158_pos, rx1158_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1158_debug, rx1158_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1158_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1158_eos, rx1158_tgt
-    gt rx1158_pos, rx1158_eos, rx1158_done
-    set rx1158_off, 0
-    lt rx1158_pos, 2, rx1158_start
-    sub rx1158_off, rx1158_pos, 1
-    substr rx1158_tgt, rx1158_tgt, rx1158_off
-  rx1158_start:
-    eq $I10, 1, rx1158_restart
-    if_null rx1158_debug, debug_920
-    rx1158_cur."!cursor_debug"("START", "infix:sym<<=>")
-  debug_920:
+.sub "infix:sym<+^>"  :subid("296_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1159_tgt
+    .local int rx1159_pos
+    .local int rx1159_off
+    .local int rx1159_eos
+    .local int rx1159_rep
+    .local pmc rx1159_cur
+    .local pmc rx1159_debug
+    (rx1159_cur, rx1159_pos, rx1159_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1159_debug, rx1159_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1159_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1159_eos, rx1159_tgt
+    gt rx1159_pos, rx1159_eos, rx1159_done
+    set rx1159_off, 0
+    lt rx1159_pos, 2, rx1159_start
+    sub rx1159_off, rx1159_pos, 1
+    substr rx1159_tgt, rx1159_tgt, rx1159_off
+  rx1159_start:
+    eq $I10, 1, rx1159_restart
+    if_null rx1159_debug, debug_918
+    rx1159_cur."!cursor_debug"("START", "infix:sym<+^>")
+  debug_918:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1162_done
-    goto rxscan1162_scan
-  rxscan1162_loop:
-    ($P10) = rx1158_cur."from"()
-    inc $P10
-    set rx1158_pos, $P10
-    ge rx1158_pos, rx1158_eos, rxscan1162_done
-  rxscan1162_scan:
-    set_addr $I10, rxscan1162_loop
-    rx1158_cur."!mark_push"(0, rx1158_pos, $I10)
-  rxscan1162_done:
+    ne $I10, -1, rxscan1163_done
+    goto rxscan1163_scan
+  rxscan1163_loop:
+    ($P10) = rx1159_cur."from"()
+    inc $P10
+    set rx1159_pos, $P10
+    ge rx1159_pos, rx1159_eos, rxscan1163_done
+  rxscan1163_scan:
+    set_addr $I10, rxscan1163_loop
+    rx1159_cur."!mark_push"(0, rx1159_pos, $I10)
+  rxscan1163_done:
+.annotate 'line', 522
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1163_fail
-    rx1158_cur."!mark_push"(0, rx1158_pos, $I10)
-  # rx literal  "<="
-    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
-    add rx1158_pos, 2
-    set_addr $I10, rxcap_1163_fail
-    ($I12, $I11) = rx1158_cur."!mark_peek"($I10)
-    rx1158_cur."!cursor_pos"($I11)
-    ($P10) = rx1158_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1158_pos, "")
-    rx1158_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1164_fail
+    rx1159_cur."!mark_push"(0, rx1159_pos, $I10)
+  # rx literal  "+^"
+    add $I11, rx1159_pos, 2
+    gt $I11, rx1159_eos, rx1159_fail
+    sub $I11, rx1159_pos, rx1159_off
+    substr $S10, rx1159_tgt, $I11, 2
+    ne $S10, "+^", rx1159_fail
+    add rx1159_pos, 2
+    set_addr $I10, rxcap_1164_fail
+    ($I12, $I11) = rx1159_cur."!mark_peek"($I10)
+    rx1159_cur."!cursor_pos"($I11)
+    ($P10) = rx1159_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1159_pos, "")
+    rx1159_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1163_done
-  rxcap_1163_fail:
-    goto rx1158_fail
-  rxcap_1163_done:
+    goto rxcap_1164_done
+  rxcap_1164_fail:
+    goto rx1159_fail
+  rxcap_1164_done:
   # rx subrule "O" subtype=capture negate=
-    rx1158_cur."!cursor_pos"(rx1158_pos)
-    $P10 = rx1158_cur."O"("%relational, :pirop<isle INn>")
-    unless $P10, rx1158_fail
-    rx1158_cur."!mark_push"(0, -1, 0, $P10)
+    rx1159_cur."!cursor_pos"(rx1159_pos)
+    $P10 = rx1159_cur."O"("%additive, :pirop<bxor III>")
+    unless $P10, rx1159_fail
+    rx1159_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1158_pos = $P10."pos"()
+    rx1159_pos = $P10."pos"()
   # rx pass
-    rx1158_cur."!cursor_pass"(rx1158_pos, "infix:sym<<=>")
-    if_null rx1158_debug, debug_921
-    rx1158_cur."!cursor_debug"("PASS", "infix:sym<<=>", " at pos=", rx1158_pos)
+    rx1159_cur."!cursor_pass"(rx1159_pos, "infix:sym<+^>")
+    if_null rx1159_debug, debug_919
+    rx1159_cur."!cursor_debug"("PASS", "infix:sym<+^>", " at pos=", rx1159_pos)
+  debug_919:
+    .return (rx1159_cur)
+  rx1159_restart:
+.annotate 'line', 454
+    if_null rx1159_debug, debug_920
+    rx1159_cur."!cursor_debug"("NEXT", "infix:sym<+^>")
+  debug_920:
+  rx1159_fail:
+    (rx1159_rep, rx1159_pos, $I10, $P10) = rx1159_cur."!mark_fail"(0)
+    lt rx1159_pos, -1, rx1159_done
+    eq rx1159_pos, -1, rx1159_fail
+    jump $I10
+  rx1159_done:
+    rx1159_cur."!cursor_fail"()
+    if_null rx1159_debug, debug_921
+    rx1159_cur."!cursor_debug"("FAIL", "infix:sym<+^>")
   debug_921:
-    .return (rx1158_cur)
-  rx1158_restart:
-    if_null rx1158_debug, debug_922
-    rx1158_cur."!cursor_debug"("NEXT", "infix:sym<<=>")
-  debug_922:
-  rx1158_fail:
-    (rx1158_rep, rx1158_pos, $I10, $P10) = rx1158_cur."!mark_fail"(0)
-    lt rx1158_pos, -1, rx1158_done
-    eq rx1158_pos, -1, rx1158_fail
-    jump $I10
-  rx1158_done:
-    rx1158_cur."!cursor_fail"()
-    if_null rx1158_debug, debug_923
-    rx1158_cur."!cursor_debug"("FAIL", "infix:sym<<=>")
-  debug_923:
-    .return (rx1158_cur)
+    .return (rx1159_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<=>"  :subid("299_1283975947.19641") :method
-.annotate 'line', 0
-    $P1160 = self."!PREFIX__!subrule"("O", "<=")
-    new $P1161, "ResizablePMCArray"
-    push $P1161, $P1160
-    .return ($P1161)
+.sub "!PREFIX__infix:sym<+^>"  :subid("297_1284728478.15265") :method
+.annotate 'line', 454
+    $P1161 = self."!PREFIX__!subrule"("O", "+^")
+    new $P1162, "ResizablePMCArray"
+    push $P1162, $P1161
+    .return ($P1162)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>=>"  :subid("300_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1165_tgt
-    .local int rx1165_pos
-    .local int rx1165_off
-    .local int rx1165_eos
-    .local int rx1165_rep
-    .local pmc rx1165_cur
-    .local pmc rx1165_debug
-    (rx1165_cur, rx1165_pos, rx1165_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1165_debug, rx1165_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1165_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1165_eos, rx1165_tgt
-    gt rx1165_pos, rx1165_eos, rx1165_done
-    set rx1165_off, 0
-    lt rx1165_pos, 2, rx1165_start
-    sub rx1165_off, rx1165_pos, 1
-    substr rx1165_tgt, rx1165_tgt, rx1165_off
-  rx1165_start:
-    eq $I10, 1, rx1165_restart
-    if_null rx1165_debug, debug_924
-    rx1165_cur."!cursor_debug"("START", "infix:sym<>=>")
-  debug_924:
+.sub "infix:sym<~>"  :subid("298_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1166_tgt
+    .local int rx1166_pos
+    .local int rx1166_off
+    .local int rx1166_eos
+    .local int rx1166_rep
+    .local pmc rx1166_cur
+    .local pmc rx1166_debug
+    (rx1166_cur, rx1166_pos, rx1166_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1166_debug, rx1166_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1166_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1166_eos, rx1166_tgt
+    gt rx1166_pos, rx1166_eos, rx1166_done
+    set rx1166_off, 0
+    lt rx1166_pos, 2, rx1166_start
+    sub rx1166_off, rx1166_pos, 1
+    substr rx1166_tgt, rx1166_tgt, rx1166_off
+  rx1166_start:
+    eq $I10, 1, rx1166_restart
+    if_null rx1166_debug, debug_922
+    rx1166_cur."!cursor_debug"("START", "infix:sym<~>")
+  debug_922:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1169_done
-    goto rxscan1169_scan
-  rxscan1169_loop:
-    ($P10) = rx1165_cur."from"()
-    inc $P10
-    set rx1165_pos, $P10
-    ge rx1165_pos, rx1165_eos, rxscan1169_done
-  rxscan1169_scan:
-    set_addr $I10, rxscan1169_loop
-    rx1165_cur."!mark_push"(0, rx1165_pos, $I10)
-  rxscan1169_done:
+    ne $I10, -1, rxscan1170_done
+    goto rxscan1170_scan
+  rxscan1170_loop:
+    ($P10) = rx1166_cur."from"()
+    inc $P10
+    set rx1166_pos, $P10
+    ge rx1166_pos, rx1166_eos, rxscan1170_done
+  rxscan1170_scan:
+    set_addr $I10, rxscan1170_loop
+    rx1166_cur."!mark_push"(0, rx1166_pos, $I10)
+  rxscan1170_done:
+.annotate 'line', 524
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1170_fail
-    rx1165_cur."!mark_push"(0, rx1165_pos, $I10)
-  # rx literal  ">="
-    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
-    add rx1165_pos, 2
-    set_addr $I10, rxcap_1170_fail
-    ($I12, $I11) = rx1165_cur."!mark_peek"($I10)
-    rx1165_cur."!cursor_pos"($I11)
-    ($P10) = rx1165_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1165_pos, "")
-    rx1165_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1171_fail
+    rx1166_cur."!mark_push"(0, rx1166_pos, $I10)
+  # rx literal  "~"
+    add $I11, rx1166_pos, 1
+    gt $I11, rx1166_eos, rx1166_fail
+    sub $I11, rx1166_pos, rx1166_off
+    ord $I11, rx1166_tgt, $I11
+    ne $I11, 126, rx1166_fail
+    add rx1166_pos, 1
+    set_addr $I10, rxcap_1171_fail
+    ($I12, $I11) = rx1166_cur."!mark_peek"($I10)
+    rx1166_cur."!cursor_pos"($I11)
+    ($P10) = rx1166_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1166_pos, "")
+    rx1166_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1170_done
-  rxcap_1170_fail:
-    goto rx1165_fail
-  rxcap_1170_done:
+    goto rxcap_1171_done
+  rxcap_1171_fail:
+    goto rx1166_fail
+  rxcap_1171_done:
   # rx subrule "O" subtype=capture negate=
-    rx1165_cur."!cursor_pos"(rx1165_pos)
-    $P10 = rx1165_cur."O"("%relational, :pirop<isge INn>")
-    unless $P10, rx1165_fail
-    rx1165_cur."!mark_push"(0, -1, 0, $P10)
+    rx1166_cur."!cursor_pos"(rx1166_pos)
+    $P10 = rx1166_cur."O"("%concatenation , :pirop<concat>")
+    unless $P10, rx1166_fail
+    rx1166_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1165_pos = $P10."pos"()
+    rx1166_pos = $P10."pos"()
   # rx pass
-    rx1165_cur."!cursor_pass"(rx1165_pos, "infix:sym<>=>")
-    if_null rx1165_debug, debug_925
-    rx1165_cur."!cursor_debug"("PASS", "infix:sym<>=>", " at pos=", rx1165_pos)
+    rx1166_cur."!cursor_pass"(rx1166_pos, "infix:sym<~>")
+    if_null rx1166_debug, debug_923
+    rx1166_cur."!cursor_debug"("PASS", "infix:sym<~>", " at pos=", rx1166_pos)
+  debug_923:
+    .return (rx1166_cur)
+  rx1166_restart:
+.annotate 'line', 454
+    if_null rx1166_debug, debug_924
+    rx1166_cur."!cursor_debug"("NEXT", "infix:sym<~>")
+  debug_924:
+  rx1166_fail:
+    (rx1166_rep, rx1166_pos, $I10, $P10) = rx1166_cur."!mark_fail"(0)
+    lt rx1166_pos, -1, rx1166_done
+    eq rx1166_pos, -1, rx1166_fail
+    jump $I10
+  rx1166_done:
+    rx1166_cur."!cursor_fail"()
+    if_null rx1166_debug, debug_925
+    rx1166_cur."!cursor_debug"("FAIL", "infix:sym<~>")
   debug_925:
-    .return (rx1165_cur)
-  rx1165_restart:
-    if_null rx1165_debug, debug_926
-    rx1165_cur."!cursor_debug"("NEXT", "infix:sym<>=>")
-  debug_926:
-  rx1165_fail:
-    (rx1165_rep, rx1165_pos, $I10, $P10) = rx1165_cur."!mark_fail"(0)
-    lt rx1165_pos, -1, rx1165_done
-    eq rx1165_pos, -1, rx1165_fail
-    jump $I10
-  rx1165_done:
-    rx1165_cur."!cursor_fail"()
-    if_null rx1165_debug, debug_927
-    rx1165_cur."!cursor_debug"("FAIL", "infix:sym<>=>")
-  debug_927:
-    .return (rx1165_cur)
+    .return (rx1166_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>=>"  :subid("301_1283975947.19641") :method
-.annotate 'line', 0
-    $P1167 = self."!PREFIX__!subrule"("O", ">=")
-    new $P1168, "ResizablePMCArray"
-    push $P1168, $P1167
-    .return ($P1168)
+.sub "!PREFIX__infix:sym<~>"  :subid("299_1284728478.15265") :method
+.annotate 'line', 454
+    $P1168 = self."!PREFIX__!subrule"("O", "~")
+    new $P1169, "ResizablePMCArray"
+    push $P1169, $P1168
+    .return ($P1169)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<>"  :subid("302_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1172_tgt
-    .local int rx1172_pos
-    .local int rx1172_off
-    .local int rx1172_eos
-    .local int rx1172_rep
-    .local pmc rx1172_cur
-    .local pmc rx1172_debug
-    (rx1172_cur, rx1172_pos, rx1172_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1172_debug, rx1172_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1172_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1172_eos, rx1172_tgt
-    gt rx1172_pos, rx1172_eos, rx1172_done
-    set rx1172_off, 0
-    lt rx1172_pos, 2, rx1172_start
-    sub rx1172_off, rx1172_pos, 1
-    substr rx1172_tgt, rx1172_tgt, rx1172_off
-  rx1172_start:
-    eq $I10, 1, rx1172_restart
-    if_null rx1172_debug, debug_928
-    rx1172_cur."!cursor_debug"("START", "infix:sym<<>")
-  debug_928:
+.sub "infix:sym<==>"  :subid("300_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1173_tgt
+    .local int rx1173_pos
+    .local int rx1173_off
+    .local int rx1173_eos
+    .local int rx1173_rep
+    .local pmc rx1173_cur
+    .local pmc rx1173_debug
+    (rx1173_cur, rx1173_pos, rx1173_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1173_debug, rx1173_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1173_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1173_eos, rx1173_tgt
+    gt rx1173_pos, rx1173_eos, rx1173_done
+    set rx1173_off, 0
+    lt rx1173_pos, 2, rx1173_start
+    sub rx1173_off, rx1173_pos, 1
+    substr rx1173_tgt, rx1173_tgt, rx1173_off
+  rx1173_start:
+    eq $I10, 1, rx1173_restart
+    if_null rx1173_debug, debug_926
+    rx1173_cur."!cursor_debug"("START", "infix:sym<==>")
+  debug_926:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1176_done
-    goto rxscan1176_scan
-  rxscan1176_loop:
-    ($P10) = rx1172_cur."from"()
-    inc $P10
-    set rx1172_pos, $P10
-    ge rx1172_pos, rx1172_eos, rxscan1176_done
-  rxscan1176_scan:
-    set_addr $I10, rxscan1176_loop
-    rx1172_cur."!mark_push"(0, rx1172_pos, $I10)
-  rxscan1176_done:
+    ne $I10, -1, rxscan1177_done
+    goto rxscan1177_scan
+  rxscan1177_loop:
+    ($P10) = rx1173_cur."from"()
+    inc $P10
+    set rx1173_pos, $P10
+    ge rx1173_pos, rx1173_eos, rxscan1177_done
+  rxscan1177_scan:
+    set_addr $I10, rxscan1177_loop
+    rx1173_cur."!mark_push"(0, rx1173_pos, $I10)
+  rxscan1177_done:
+.annotate 'line', 526
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1177_fail
-    rx1172_cur."!mark_push"(0, rx1172_pos, $I10)
-  # rx literal  "<"
-    add $I11, rx1172_pos, 1
-    gt $I11, rx1172_eos, rx1172_fail
-    sub $I11, rx1172_pos, rx1172_off
-    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)
-    rx1172_cur."!cursor_pos"($I11)
-    ($P10) = rx1172_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1172_pos, "")
-    rx1172_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1178_fail
+    rx1173_cur."!mark_push"(0, rx1173_pos, $I10)
+  # rx literal  "=="
+    add $I11, rx1173_pos, 2
+    gt $I11, rx1173_eos, rx1173_fail
+    sub $I11, rx1173_pos, rx1173_off
+    substr $S10, rx1173_tgt, $I11, 2
+    ne $S10, "==", rx1173_fail
+    add rx1173_pos, 2
+    set_addr $I10, rxcap_1178_fail
+    ($I12, $I11) = rx1173_cur."!mark_peek"($I10)
+    rx1173_cur."!cursor_pos"($I11)
+    ($P10) = rx1173_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1173_pos, "")
+    rx1173_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1177_done
-  rxcap_1177_fail:
-    goto rx1172_fail
-  rxcap_1177_done:
+    goto rxcap_1178_done
+  rxcap_1178_fail:
+    goto rx1173_fail
+  rxcap_1178_done:
   # rx subrule "O" subtype=capture negate=
-    rx1172_cur."!cursor_pos"(rx1172_pos)
-    $P10 = rx1172_cur."O"("%relational, :pirop<islt INn>")
-    unless $P10, rx1172_fail
-    rx1172_cur."!mark_push"(0, -1, 0, $P10)
+    rx1173_cur."!cursor_pos"(rx1173_pos)
+    $P10 = rx1173_cur."O"("%relational, :pirop<iseq INn>")
+    unless $P10, rx1173_fail
+    rx1173_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1172_pos = $P10."pos"()
+    rx1173_pos = $P10."pos"()
   # rx pass
-    rx1172_cur."!cursor_pass"(rx1172_pos, "infix:sym<<>")
-    if_null rx1172_debug, debug_929
-    rx1172_cur."!cursor_debug"("PASS", "infix:sym<<>", " at pos=", rx1172_pos)
+    rx1173_cur."!cursor_pass"(rx1173_pos, "infix:sym<==>")
+    if_null rx1173_debug, debug_927
+    rx1173_cur."!cursor_debug"("PASS", "infix:sym<==>", " at pos=", rx1173_pos)
+  debug_927:
+    .return (rx1173_cur)
+  rx1173_restart:
+.annotate 'line', 454
+    if_null rx1173_debug, debug_928
+    rx1173_cur."!cursor_debug"("NEXT", "infix:sym<==>")
+  debug_928:
+  rx1173_fail:
+    (rx1173_rep, rx1173_pos, $I10, $P10) = rx1173_cur."!mark_fail"(0)
+    lt rx1173_pos, -1, rx1173_done
+    eq rx1173_pos, -1, rx1173_fail
+    jump $I10
+  rx1173_done:
+    rx1173_cur."!cursor_fail"()
+    if_null rx1173_debug, debug_929
+    rx1173_cur."!cursor_debug"("FAIL", "infix:sym<==>")
   debug_929:
-    .return (rx1172_cur)
-  rx1172_restart:
-    if_null rx1172_debug, debug_930
-    rx1172_cur."!cursor_debug"("NEXT", "infix:sym<<>")
-  debug_930:
-  rx1172_fail:
-    (rx1172_rep, rx1172_pos, $I10, $P10) = rx1172_cur."!mark_fail"(0)
-    lt rx1172_pos, -1, rx1172_done
-    eq rx1172_pos, -1, rx1172_fail
-    jump $I10
-  rx1172_done:
-    rx1172_cur."!cursor_fail"()
-    if_null rx1172_debug, debug_931
-    rx1172_cur."!cursor_debug"("FAIL", "infix:sym<<>")
-  debug_931:
-    .return (rx1172_cur)
+    .return (rx1173_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<>"  :subid("303_1283975947.19641") :method
-.annotate 'line', 0
-    $P1174 = self."!PREFIX__!subrule"("O", "<")
-    new $P1175, "ResizablePMCArray"
-    push $P1175, $P1174
-    .return ($P1175)
+.sub "!PREFIX__infix:sym<==>"  :subid("301_1284728478.15265") :method
+.annotate 'line', 454
+    $P1175 = self."!PREFIX__!subrule"("O", "==")
+    new $P1176, "ResizablePMCArray"
+    push $P1176, $P1175
+    .return ($P1176)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>>"  :subid("304_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1179_tgt
-    .local int rx1179_pos
-    .local int rx1179_off
-    .local int rx1179_eos
-    .local int rx1179_rep
-    .local pmc rx1179_cur
-    .local pmc rx1179_debug
-    (rx1179_cur, rx1179_pos, rx1179_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1179_debug, rx1179_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1179_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1179_eos, rx1179_tgt
-    gt rx1179_pos, rx1179_eos, rx1179_done
-    set rx1179_off, 0
-    lt rx1179_pos, 2, rx1179_start
-    sub rx1179_off, rx1179_pos, 1
-    substr rx1179_tgt, rx1179_tgt, rx1179_off
-  rx1179_start:
-    eq $I10, 1, rx1179_restart
-    if_null rx1179_debug, debug_932
-    rx1179_cur."!cursor_debug"("START", "infix:sym<>>")
-  debug_932:
+.sub "infix:sym<!=>"  :subid("302_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1180_tgt
+    .local int rx1180_pos
+    .local int rx1180_off
+    .local int rx1180_eos
+    .local int rx1180_rep
+    .local pmc rx1180_cur
+    .local pmc rx1180_debug
+    (rx1180_cur, rx1180_pos, rx1180_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1180_debug, rx1180_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1180_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1180_eos, rx1180_tgt
+    gt rx1180_pos, rx1180_eos, rx1180_done
+    set rx1180_off, 0
+    lt rx1180_pos, 2, rx1180_start
+    sub rx1180_off, rx1180_pos, 1
+    substr rx1180_tgt, rx1180_tgt, rx1180_off
+  rx1180_start:
+    eq $I10, 1, rx1180_restart
+    if_null rx1180_debug, debug_930
+    rx1180_cur."!cursor_debug"("START", "infix:sym<!=>")
+  debug_930:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1183_done
-    goto rxscan1183_scan
-  rxscan1183_loop:
-    ($P10) = rx1179_cur."from"()
-    inc $P10
-    set rx1179_pos, $P10
-    ge rx1179_pos, rx1179_eos, rxscan1183_done
-  rxscan1183_scan:
-    set_addr $I10, rxscan1183_loop
-    rx1179_cur."!mark_push"(0, rx1179_pos, $I10)
-  rxscan1183_done:
+    ne $I10, -1, rxscan1184_done
+    goto rxscan1184_scan
+  rxscan1184_loop:
+    ($P10) = rx1180_cur."from"()
+    inc $P10
+    set rx1180_pos, $P10
+    ge rx1180_pos, rx1180_eos, rxscan1184_done
+  rxscan1184_scan:
+    set_addr $I10, rxscan1184_loop
+    rx1180_cur."!mark_push"(0, rx1180_pos, $I10)
+  rxscan1184_done:
+.annotate 'line', 527
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1184_fail
-    rx1179_cur."!mark_push"(0, rx1179_pos, $I10)
-  # rx literal  ">"
-    add $I11, rx1179_pos, 1
-    gt $I11, rx1179_eos, rx1179_fail
-    sub $I11, rx1179_pos, rx1179_off
-    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)
-    rx1179_cur."!cursor_pos"($I11)
-    ($P10) = rx1179_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1179_pos, "")
-    rx1179_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1185_fail
+    rx1180_cur."!mark_push"(0, rx1180_pos, $I10)
+  # rx literal  "!="
+    add $I11, rx1180_pos, 2
+    gt $I11, rx1180_eos, rx1180_fail
+    sub $I11, rx1180_pos, rx1180_off
+    substr $S10, rx1180_tgt, $I11, 2
+    ne $S10, "!=", rx1180_fail
+    add rx1180_pos, 2
+    set_addr $I10, rxcap_1185_fail
+    ($I12, $I11) = rx1180_cur."!mark_peek"($I10)
+    rx1180_cur."!cursor_pos"($I11)
+    ($P10) = rx1180_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1180_pos, "")
+    rx1180_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1184_done
-  rxcap_1184_fail:
-    goto rx1179_fail
-  rxcap_1184_done:
+    goto rxcap_1185_done
+  rxcap_1185_fail:
+    goto rx1180_fail
+  rxcap_1185_done:
   # rx subrule "O" subtype=capture negate=
-    rx1179_cur."!cursor_pos"(rx1179_pos)
-    $P10 = rx1179_cur."O"("%relational, :pirop<isgt INn>")
-    unless $P10, rx1179_fail
-    rx1179_cur."!mark_push"(0, -1, 0, $P10)
+    rx1180_cur."!cursor_pos"(rx1180_pos)
+    $P10 = rx1180_cur."O"("%relational, :pirop<isne INn>")
+    unless $P10, rx1180_fail
+    rx1180_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1179_pos = $P10."pos"()
+    rx1180_pos = $P10."pos"()
   # rx pass
-    rx1179_cur."!cursor_pass"(rx1179_pos, "infix:sym<>>")
-    if_null rx1179_debug, debug_933
-    rx1179_cur."!cursor_debug"("PASS", "infix:sym<>>", " at pos=", rx1179_pos)
+    rx1180_cur."!cursor_pass"(rx1180_pos, "infix:sym<!=>")
+    if_null rx1180_debug, debug_931
+    rx1180_cur."!cursor_debug"("PASS", "infix:sym<!=>", " at pos=", rx1180_pos)
+  debug_931:
+    .return (rx1180_cur)
+  rx1180_restart:
+.annotate 'line', 454
+    if_null rx1180_debug, debug_932
+    rx1180_cur."!cursor_debug"("NEXT", "infix:sym<!=>")
+  debug_932:
+  rx1180_fail:
+    (rx1180_rep, rx1180_pos, $I10, $P10) = rx1180_cur."!mark_fail"(0)
+    lt rx1180_pos, -1, rx1180_done
+    eq rx1180_pos, -1, rx1180_fail
+    jump $I10
+  rx1180_done:
+    rx1180_cur."!cursor_fail"()
+    if_null rx1180_debug, debug_933
+    rx1180_cur."!cursor_debug"("FAIL", "infix:sym<!=>")
   debug_933:
-    .return (rx1179_cur)
-  rx1179_restart:
-    if_null rx1179_debug, debug_934
-    rx1179_cur."!cursor_debug"("NEXT", "infix:sym<>>")
-  debug_934:
-  rx1179_fail:
-    (rx1179_rep, rx1179_pos, $I10, $P10) = rx1179_cur."!mark_fail"(0)
-    lt rx1179_pos, -1, rx1179_done
-    eq rx1179_pos, -1, rx1179_fail
-    jump $I10
-  rx1179_done:
-    rx1179_cur."!cursor_fail"()
-    if_null rx1179_debug, debug_935
-    rx1179_cur."!cursor_debug"("FAIL", "infix:sym<>>")
-  debug_935:
-    .return (rx1179_cur)
+    .return (rx1180_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>>"  :subid("305_1283975947.19641") :method
-.annotate 'line', 0
-    $P1181 = self."!PREFIX__!subrule"("O", ">")
-    new $P1182, "ResizablePMCArray"
-    push $P1182, $P1181
-    .return ($P1182)
+.sub "!PREFIX__infix:sym<!=>"  :subid("303_1284728478.15265") :method
+.annotate 'line', 454
+    $P1182 = self."!PREFIX__!subrule"("O", "!=")
+    new $P1183, "ResizablePMCArray"
+    push $P1183, $P1182
+    .return ($P1183)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<eq>"  :subid("306_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1186_tgt
-    .local int rx1186_pos
-    .local int rx1186_off
-    .local int rx1186_eos
-    .local int rx1186_rep
-    .local pmc rx1186_cur
-    .local pmc rx1186_debug
-    (rx1186_cur, rx1186_pos, rx1186_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1186_debug, rx1186_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1186_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1186_eos, rx1186_tgt
-    gt rx1186_pos, rx1186_eos, rx1186_done
-    set rx1186_off, 0
-    lt rx1186_pos, 2, rx1186_start
-    sub rx1186_off, rx1186_pos, 1
-    substr rx1186_tgt, rx1186_tgt, rx1186_off
-  rx1186_start:
-    eq $I10, 1, rx1186_restart
-    if_null rx1186_debug, debug_936
-    rx1186_cur."!cursor_debug"("START", "infix:sym<eq>")
-  debug_936:
+.sub "infix:sym<<=>"  :subid("304_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1187_tgt
+    .local int rx1187_pos
+    .local int rx1187_off
+    .local int rx1187_eos
+    .local int rx1187_rep
+    .local pmc rx1187_cur
+    .local pmc rx1187_debug
+    (rx1187_cur, rx1187_pos, rx1187_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1187_debug, rx1187_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1187_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1187_eos, rx1187_tgt
+    gt rx1187_pos, rx1187_eos, rx1187_done
+    set rx1187_off, 0
+    lt rx1187_pos, 2, rx1187_start
+    sub rx1187_off, rx1187_pos, 1
+    substr rx1187_tgt, rx1187_tgt, rx1187_off
+  rx1187_start:
+    eq $I10, 1, rx1187_restart
+    if_null rx1187_debug, debug_934
+    rx1187_cur."!cursor_debug"("START", "infix:sym<<=>")
+  debug_934:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1190_done
-    goto rxscan1190_scan
-  rxscan1190_loop:
-    ($P10) = rx1186_cur."from"()
-    inc $P10
-    set rx1186_pos, $P10
-    ge rx1186_pos, rx1186_eos, rxscan1190_done
-  rxscan1190_scan:
-    set_addr $I10, rxscan1190_loop
-    rx1186_cur."!mark_push"(0, rx1186_pos, $I10)
-  rxscan1190_done:
+    ne $I10, -1, rxscan1191_done
+    goto rxscan1191_scan
+  rxscan1191_loop:
+    ($P10) = rx1187_cur."from"()
+    inc $P10
+    set rx1187_pos, $P10
+    ge rx1187_pos, rx1187_eos, rxscan1191_done
+  rxscan1191_scan:
+    set_addr $I10, rxscan1191_loop
+    rx1187_cur."!mark_push"(0, rx1187_pos, $I10)
+  rxscan1191_done:
+.annotate 'line', 528
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1191_fail
-    rx1186_cur."!mark_push"(0, rx1186_pos, $I10)
-  # rx literal  "eq"
-    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
-    add rx1186_pos, 2
-    set_addr $I10, rxcap_1191_fail
-    ($I12, $I11) = rx1186_cur."!mark_peek"($I10)
-    rx1186_cur."!cursor_pos"($I11)
-    ($P10) = rx1186_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1186_pos, "")
-    rx1186_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1192_fail
+    rx1187_cur."!mark_push"(0, rx1187_pos, $I10)
+  # rx literal  "<="
+    add $I11, rx1187_pos, 2
+    gt $I11, rx1187_eos, rx1187_fail
+    sub $I11, rx1187_pos, rx1187_off
+    substr $S10, rx1187_tgt, $I11, 2
+    ne $S10, "<=", rx1187_fail
+    add rx1187_pos, 2
+    set_addr $I10, rxcap_1192_fail
+    ($I12, $I11) = rx1187_cur."!mark_peek"($I10)
+    rx1187_cur."!cursor_pos"($I11)
+    ($P10) = rx1187_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1187_pos, "")
+    rx1187_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1191_done
-  rxcap_1191_fail:
-    goto rx1186_fail
-  rxcap_1191_done:
+    goto rxcap_1192_done
+  rxcap_1192_fail:
+    goto rx1187_fail
+  rxcap_1192_done:
   # rx subrule "O" subtype=capture negate=
-    rx1186_cur."!cursor_pos"(rx1186_pos)
-    $P10 = rx1186_cur."O"("%relational, :pirop<iseq ISs>")
-    unless $P10, rx1186_fail
-    rx1186_cur."!mark_push"(0, -1, 0, $P10)
+    rx1187_cur."!cursor_pos"(rx1187_pos)
+    $P10 = rx1187_cur."O"("%relational, :pirop<isle INn>")
+    unless $P10, rx1187_fail
+    rx1187_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1186_pos = $P10."pos"()
+    rx1187_pos = $P10."pos"()
   # rx pass
-    rx1186_cur."!cursor_pass"(rx1186_pos, "infix:sym<eq>")
-    if_null rx1186_debug, debug_937
-    rx1186_cur."!cursor_debug"("PASS", "infix:sym<eq>", " at pos=", rx1186_pos)
+    rx1187_cur."!cursor_pass"(rx1187_pos, "infix:sym<<=>")
+    if_null rx1187_debug, debug_935
+    rx1187_cur."!cursor_debug"("PASS", "infix:sym<<=>", " at pos=", rx1187_pos)
+  debug_935:
+    .return (rx1187_cur)
+  rx1187_restart:
+.annotate 'line', 454
+    if_null rx1187_debug, debug_936
+    rx1187_cur."!cursor_debug"("NEXT", "infix:sym<<=>")
+  debug_936:
+  rx1187_fail:
+    (rx1187_rep, rx1187_pos, $I10, $P10) = rx1187_cur."!mark_fail"(0)
+    lt rx1187_pos, -1, rx1187_done
+    eq rx1187_pos, -1, rx1187_fail
+    jump $I10
+  rx1187_done:
+    rx1187_cur."!cursor_fail"()
+    if_null rx1187_debug, debug_937
+    rx1187_cur."!cursor_debug"("FAIL", "infix:sym<<=>")
   debug_937:
-    .return (rx1186_cur)
-  rx1186_restart:
-    if_null rx1186_debug, debug_938
-    rx1186_cur."!cursor_debug"("NEXT", "infix:sym<eq>")
-  debug_938:
-  rx1186_fail:
-    (rx1186_rep, rx1186_pos, $I10, $P10) = rx1186_cur."!mark_fail"(0)
-    lt rx1186_pos, -1, rx1186_done
-    eq rx1186_pos, -1, rx1186_fail
-    jump $I10
-  rx1186_done:
-    rx1186_cur."!cursor_fail"()
-    if_null rx1186_debug, debug_939
-    rx1186_cur."!cursor_debug"("FAIL", "infix:sym<eq>")
-  debug_939:
-    .return (rx1186_cur)
+    .return (rx1187_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<eq>"  :subid("307_1283975947.19641") :method
-.annotate 'line', 0
-    $P1188 = self."!PREFIX__!subrule"("O", "eq")
-    new $P1189, "ResizablePMCArray"
-    push $P1189, $P1188
-    .return ($P1189)
+.sub "!PREFIX__infix:sym<<=>"  :subid("305_1284728478.15265") :method
+.annotate 'line', 454
+    $P1189 = self."!PREFIX__!subrule"("O", "<=")
+    new $P1190, "ResizablePMCArray"
+    push $P1190, $P1189
+    .return ($P1190)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ne>"  :subid("308_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1193_tgt
-    .local int rx1193_pos
-    .local int rx1193_off
-    .local int rx1193_eos
-    .local int rx1193_rep
-    .local pmc rx1193_cur
-    .local pmc rx1193_debug
-    (rx1193_cur, rx1193_pos, rx1193_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1193_debug, rx1193_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1193_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1193_eos, rx1193_tgt
-    gt rx1193_pos, rx1193_eos, rx1193_done
-    set rx1193_off, 0
-    lt rx1193_pos, 2, rx1193_start
-    sub rx1193_off, rx1193_pos, 1
-    substr rx1193_tgt, rx1193_tgt, rx1193_off
-  rx1193_start:
-    eq $I10, 1, rx1193_restart
-    if_null rx1193_debug, debug_940
-    rx1193_cur."!cursor_debug"("START", "infix:sym<ne>")
-  debug_940:
+.sub "infix:sym<>=>"  :subid("306_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1194_tgt
+    .local int rx1194_pos
+    .local int rx1194_off
+    .local int rx1194_eos
+    .local int rx1194_rep
+    .local pmc rx1194_cur
+    .local pmc rx1194_debug
+    (rx1194_cur, rx1194_pos, rx1194_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1194_debug, rx1194_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1194_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1194_eos, rx1194_tgt
+    gt rx1194_pos, rx1194_eos, rx1194_done
+    set rx1194_off, 0
+    lt rx1194_pos, 2, rx1194_start
+    sub rx1194_off, rx1194_pos, 1
+    substr rx1194_tgt, rx1194_tgt, rx1194_off
+  rx1194_start:
+    eq $I10, 1, rx1194_restart
+    if_null rx1194_debug, debug_938
+    rx1194_cur."!cursor_debug"("START", "infix:sym<>=>")
+  debug_938:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1197_done
-    goto rxscan1197_scan
-  rxscan1197_loop:
-    ($P10) = rx1193_cur."from"()
-    inc $P10
-    set rx1193_pos, $P10
-    ge rx1193_pos, rx1193_eos, rxscan1197_done
-  rxscan1197_scan:
-    set_addr $I10, rxscan1197_loop
-    rx1193_cur."!mark_push"(0, rx1193_pos, $I10)
-  rxscan1197_done:
+    ne $I10, -1, rxscan1198_done
+    goto rxscan1198_scan
+  rxscan1198_loop:
+    ($P10) = rx1194_cur."from"()
+    inc $P10
+    set rx1194_pos, $P10
+    ge rx1194_pos, rx1194_eos, rxscan1198_done
+  rxscan1198_scan:
+    set_addr $I10, rxscan1198_loop
+    rx1194_cur."!mark_push"(0, rx1194_pos, $I10)
+  rxscan1198_done:
+.annotate 'line', 529
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1198_fail
-    rx1193_cur."!mark_push"(0, rx1193_pos, $I10)
-  # rx literal  "ne"
-    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
-    add rx1193_pos, 2
-    set_addr $I10, rxcap_1198_fail
-    ($I12, $I11) = rx1193_cur."!mark_peek"($I10)
-    rx1193_cur."!cursor_pos"($I11)
-    ($P10) = rx1193_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1193_pos, "")
-    rx1193_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1199_fail
+    rx1194_cur."!mark_push"(0, rx1194_pos, $I10)
+  # rx literal  ">="
+    add $I11, rx1194_pos, 2
+    gt $I11, rx1194_eos, rx1194_fail
+    sub $I11, rx1194_pos, rx1194_off
+    substr $S10, rx1194_tgt, $I11, 2
+    ne $S10, ">=", rx1194_fail
+    add rx1194_pos, 2
+    set_addr $I10, rxcap_1199_fail
+    ($I12, $I11) = rx1194_cur."!mark_peek"($I10)
+    rx1194_cur."!cursor_pos"($I11)
+    ($P10) = rx1194_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1194_pos, "")
+    rx1194_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1198_done
-  rxcap_1198_fail:
-    goto rx1193_fail
-  rxcap_1198_done:
+    goto rxcap_1199_done
+  rxcap_1199_fail:
+    goto rx1194_fail
+  rxcap_1199_done:
   # rx subrule "O" subtype=capture negate=
-    rx1193_cur."!cursor_pos"(rx1193_pos)
-    $P10 = rx1193_cur."O"("%relational, :pirop<isne ISs>")
-    unless $P10, rx1193_fail
-    rx1193_cur."!mark_push"(0, -1, 0, $P10)
+    rx1194_cur."!cursor_pos"(rx1194_pos)
+    $P10 = rx1194_cur."O"("%relational, :pirop<isge INn>")
+    unless $P10, rx1194_fail
+    rx1194_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1193_pos = $P10."pos"()
+    rx1194_pos = $P10."pos"()
   # rx pass
-    rx1193_cur."!cursor_pass"(rx1193_pos, "infix:sym<ne>")
-    if_null rx1193_debug, debug_941
-    rx1193_cur."!cursor_debug"("PASS", "infix:sym<ne>", " at pos=", rx1193_pos)
+    rx1194_cur."!cursor_pass"(rx1194_pos, "infix:sym<>=>")
+    if_null rx1194_debug, debug_939
+    rx1194_cur."!cursor_debug"("PASS", "infix:sym<>=>", " at pos=", rx1194_pos)
+  debug_939:
+    .return (rx1194_cur)
+  rx1194_restart:
+.annotate 'line', 454
+    if_null rx1194_debug, debug_940
+    rx1194_cur."!cursor_debug"("NEXT", "infix:sym<>=>")
+  debug_940:
+  rx1194_fail:
+    (rx1194_rep, rx1194_pos, $I10, $P10) = rx1194_cur."!mark_fail"(0)
+    lt rx1194_pos, -1, rx1194_done
+    eq rx1194_pos, -1, rx1194_fail
+    jump $I10
+  rx1194_done:
+    rx1194_cur."!cursor_fail"()
+    if_null rx1194_debug, debug_941
+    rx1194_cur."!cursor_debug"("FAIL", "infix:sym<>=>")
   debug_941:
-    .return (rx1193_cur)
-  rx1193_restart:
-    if_null rx1193_debug, debug_942
-    rx1193_cur."!cursor_debug"("NEXT", "infix:sym<ne>")
-  debug_942:
-  rx1193_fail:
-    (rx1193_rep, rx1193_pos, $I10, $P10) = rx1193_cur."!mark_fail"(0)
-    lt rx1193_pos, -1, rx1193_done
-    eq rx1193_pos, -1, rx1193_fail
-    jump $I10
-  rx1193_done:
-    rx1193_cur."!cursor_fail"()
-    if_null rx1193_debug, debug_943
-    rx1193_cur."!cursor_debug"("FAIL", "infix:sym<ne>")
-  debug_943:
-    .return (rx1193_cur)
+    .return (rx1194_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ne>"  :subid("309_1283975947.19641") :method
-.annotate 'line', 0
-    $P1195 = self."!PREFIX__!subrule"("O", "ne")
-    new $P1196, "ResizablePMCArray"
-    push $P1196, $P1195
-    .return ($P1196)
+.sub "!PREFIX__infix:sym<>=>"  :subid("307_1284728478.15265") :method
+.annotate 'line', 454
+    $P1196 = self."!PREFIX__!subrule"("O", ">=")
+    new $P1197, "ResizablePMCArray"
+    push $P1197, $P1196
+    .return ($P1197)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<le>"  :subid("310_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1200_tgt
-    .local int rx1200_pos
-    .local int rx1200_off
-    .local int rx1200_eos
-    .local int rx1200_rep
-    .local pmc rx1200_cur
-    .local pmc rx1200_debug
-    (rx1200_cur, rx1200_pos, rx1200_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1200_debug, rx1200_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1200_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1200_eos, rx1200_tgt
-    gt rx1200_pos, rx1200_eos, rx1200_done
-    set rx1200_off, 0
-    lt rx1200_pos, 2, rx1200_start
-    sub rx1200_off, rx1200_pos, 1
-    substr rx1200_tgt, rx1200_tgt, rx1200_off
-  rx1200_start:
-    eq $I10, 1, rx1200_restart
-    if_null rx1200_debug, debug_944
-    rx1200_cur."!cursor_debug"("START", "infix:sym<le>")
-  debug_944:
+.sub "infix:sym<<>"  :subid("308_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1201_tgt
+    .local int rx1201_pos
+    .local int rx1201_off
+    .local int rx1201_eos
+    .local int rx1201_rep
+    .local pmc rx1201_cur
+    .local pmc rx1201_debug
+    (rx1201_cur, rx1201_pos, rx1201_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1201_debug, rx1201_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1201_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1201_eos, rx1201_tgt
+    gt rx1201_pos, rx1201_eos, rx1201_done
+    set rx1201_off, 0
+    lt rx1201_pos, 2, rx1201_start
+    sub rx1201_off, rx1201_pos, 1
+    substr rx1201_tgt, rx1201_tgt, rx1201_off
+  rx1201_start:
+    eq $I10, 1, rx1201_restart
+    if_null rx1201_debug, debug_942
+    rx1201_cur."!cursor_debug"("START", "infix:sym<<>")
+  debug_942:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1204_done
-    goto rxscan1204_scan
-  rxscan1204_loop:
-    ($P10) = rx1200_cur."from"()
-    inc $P10
-    set rx1200_pos, $P10
-    ge rx1200_pos, rx1200_eos, rxscan1204_done
-  rxscan1204_scan:
-    set_addr $I10, rxscan1204_loop
-    rx1200_cur."!mark_push"(0, rx1200_pos, $I10)
-  rxscan1204_done:
+    ne $I10, -1, rxscan1205_done
+    goto rxscan1205_scan
+  rxscan1205_loop:
+    ($P10) = rx1201_cur."from"()
+    inc $P10
+    set rx1201_pos, $P10
+    ge rx1201_pos, rx1201_eos, rxscan1205_done
+  rxscan1205_scan:
+    set_addr $I10, rxscan1205_loop
+    rx1201_cur."!mark_push"(0, rx1201_pos, $I10)
+  rxscan1205_done:
+.annotate 'line', 530
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1205_fail
-    rx1200_cur."!mark_push"(0, rx1200_pos, $I10)
-  # rx literal  "le"
-    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
-    add rx1200_pos, 2
-    set_addr $I10, rxcap_1205_fail
-    ($I12, $I11) = rx1200_cur."!mark_peek"($I10)
-    rx1200_cur."!cursor_pos"($I11)
-    ($P10) = rx1200_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1200_pos, "")
-    rx1200_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1206_fail
+    rx1201_cur."!mark_push"(0, rx1201_pos, $I10)
+  # rx literal  "<"
+    add $I11, rx1201_pos, 1
+    gt $I11, rx1201_eos, rx1201_fail
+    sub $I11, rx1201_pos, rx1201_off
+    ord $I11, rx1201_tgt, $I11
+    ne $I11, 60, rx1201_fail
+    add rx1201_pos, 1
+    set_addr $I10, rxcap_1206_fail
+    ($I12, $I11) = rx1201_cur."!mark_peek"($I10)
+    rx1201_cur."!cursor_pos"($I11)
+    ($P10) = rx1201_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1201_pos, "")
+    rx1201_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1205_done
-  rxcap_1205_fail:
-    goto rx1200_fail
-  rxcap_1205_done:
+    goto rxcap_1206_done
+  rxcap_1206_fail:
+    goto rx1201_fail
+  rxcap_1206_done:
   # rx subrule "O" subtype=capture negate=
-    rx1200_cur."!cursor_pos"(rx1200_pos)
-    $P10 = rx1200_cur."O"("%relational, :pirop<isle ISs>")
-    unless $P10, rx1200_fail
-    rx1200_cur."!mark_push"(0, -1, 0, $P10)
+    rx1201_cur."!cursor_pos"(rx1201_pos)
+    $P10 = rx1201_cur."O"("%relational, :pirop<islt INn>")
+    unless $P10, rx1201_fail
+    rx1201_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1200_pos = $P10."pos"()
+    rx1201_pos = $P10."pos"()
   # rx pass
-    rx1200_cur."!cursor_pass"(rx1200_pos, "infix:sym<le>")
-    if_null rx1200_debug, debug_945
-    rx1200_cur."!cursor_debug"("PASS", "infix:sym<le>", " at pos=", rx1200_pos)
+    rx1201_cur."!cursor_pass"(rx1201_pos, "infix:sym<<>")
+    if_null rx1201_debug, debug_943
+    rx1201_cur."!cursor_debug"("PASS", "infix:sym<<>", " at pos=", rx1201_pos)
+  debug_943:
+    .return (rx1201_cur)
+  rx1201_restart:
+.annotate 'line', 454
+    if_null rx1201_debug, debug_944
+    rx1201_cur."!cursor_debug"("NEXT", "infix:sym<<>")
+  debug_944:
+  rx1201_fail:
+    (rx1201_rep, rx1201_pos, $I10, $P10) = rx1201_cur."!mark_fail"(0)
+    lt rx1201_pos, -1, rx1201_done
+    eq rx1201_pos, -1, rx1201_fail
+    jump $I10
+  rx1201_done:
+    rx1201_cur."!cursor_fail"()
+    if_null rx1201_debug, debug_945
+    rx1201_cur."!cursor_debug"("FAIL", "infix:sym<<>")
   debug_945:
-    .return (rx1200_cur)
-  rx1200_restart:
-    if_null rx1200_debug, debug_946
-    rx1200_cur."!cursor_debug"("NEXT", "infix:sym<le>")
-  debug_946:
-  rx1200_fail:
-    (rx1200_rep, rx1200_pos, $I10, $P10) = rx1200_cur."!mark_fail"(0)
-    lt rx1200_pos, -1, rx1200_done
-    eq rx1200_pos, -1, rx1200_fail
-    jump $I10
-  rx1200_done:
-    rx1200_cur."!cursor_fail"()
-    if_null rx1200_debug, debug_947
-    rx1200_cur."!cursor_debug"("FAIL", "infix:sym<le>")
-  debug_947:
-    .return (rx1200_cur)
+    .return (rx1201_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<le>"  :subid("311_1283975947.19641") :method
-.annotate 'line', 0
-    $P1202 = self."!PREFIX__!subrule"("O", "le")
-    new $P1203, "ResizablePMCArray"
-    push $P1203, $P1202
-    .return ($P1203)
+.sub "!PREFIX__infix:sym<<>"  :subid("309_1284728478.15265") :method
+.annotate 'line', 454
+    $P1203 = self."!PREFIX__!subrule"("O", "<")
+    new $P1204, "ResizablePMCArray"
+    push $P1204, $P1203
+    .return ($P1204)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ge>"  :subid("312_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1207_tgt
-    .local int rx1207_pos
-    .local int rx1207_off
-    .local int rx1207_eos
-    .local int rx1207_rep
-    .local pmc rx1207_cur
-    .local pmc rx1207_debug
-    (rx1207_cur, rx1207_pos, rx1207_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1207_debug, rx1207_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1207_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1207_eos, rx1207_tgt
-    gt rx1207_pos, rx1207_eos, rx1207_done
-    set rx1207_off, 0
-    lt rx1207_pos, 2, rx1207_start
-    sub rx1207_off, rx1207_pos, 1
-    substr rx1207_tgt, rx1207_tgt, rx1207_off
-  rx1207_start:
-    eq $I10, 1, rx1207_restart
-    if_null rx1207_debug, debug_948
-    rx1207_cur."!cursor_debug"("START", "infix:sym<ge>")
-  debug_948:
+.sub "infix:sym<>>"  :subid("310_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1208_tgt
+    .local int rx1208_pos
+    .local int rx1208_off
+    .local int rx1208_eos
+    .local int rx1208_rep
+    .local pmc rx1208_cur
+    .local pmc rx1208_debug
+    (rx1208_cur, rx1208_pos, rx1208_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1208_debug, rx1208_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1208_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1208_eos, rx1208_tgt
+    gt rx1208_pos, rx1208_eos, rx1208_done
+    set rx1208_off, 0
+    lt rx1208_pos, 2, rx1208_start
+    sub rx1208_off, rx1208_pos, 1
+    substr rx1208_tgt, rx1208_tgt, rx1208_off
+  rx1208_start:
+    eq $I10, 1, rx1208_restart
+    if_null rx1208_debug, debug_946
+    rx1208_cur."!cursor_debug"("START", "infix:sym<>>")
+  debug_946:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1211_done
-    goto rxscan1211_scan
-  rxscan1211_loop:
-    ($P10) = rx1207_cur."from"()
-    inc $P10
-    set rx1207_pos, $P10
-    ge rx1207_pos, rx1207_eos, rxscan1211_done
-  rxscan1211_scan:
-    set_addr $I10, rxscan1211_loop
-    rx1207_cur."!mark_push"(0, rx1207_pos, $I10)
-  rxscan1211_done:
+    ne $I10, -1, rxscan1212_done
+    goto rxscan1212_scan
+  rxscan1212_loop:
+    ($P10) = rx1208_cur."from"()
+    inc $P10
+    set rx1208_pos, $P10
+    ge rx1208_pos, rx1208_eos, rxscan1212_done
+  rxscan1212_scan:
+    set_addr $I10, rxscan1212_loop
+    rx1208_cur."!mark_push"(0, rx1208_pos, $I10)
+  rxscan1212_done:
+.annotate 'line', 531
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1212_fail
-    rx1207_cur."!mark_push"(0, rx1207_pos, $I10)
-  # rx literal  "ge"
-    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
-    add rx1207_pos, 2
-    set_addr $I10, rxcap_1212_fail
-    ($I12, $I11) = rx1207_cur."!mark_peek"($I10)
-    rx1207_cur."!cursor_pos"($I11)
-    ($P10) = rx1207_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1207_pos, "")
-    rx1207_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1213_fail
+    rx1208_cur."!mark_push"(0, rx1208_pos, $I10)
+  # rx literal  ">"
+    add $I11, rx1208_pos, 1
+    gt $I11, rx1208_eos, rx1208_fail
+    sub $I11, rx1208_pos, rx1208_off
+    ord $I11, rx1208_tgt, $I11
+    ne $I11, 62, rx1208_fail
+    add rx1208_pos, 1
+    set_addr $I10, rxcap_1213_fail
+    ($I12, $I11) = rx1208_cur."!mark_peek"($I10)
+    rx1208_cur."!cursor_pos"($I11)
+    ($P10) = rx1208_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1208_pos, "")
+    rx1208_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1212_done
-  rxcap_1212_fail:
-    goto rx1207_fail
-  rxcap_1212_done:
+    goto rxcap_1213_done
+  rxcap_1213_fail:
+    goto rx1208_fail
+  rxcap_1213_done:
   # rx subrule "O" subtype=capture negate=
-    rx1207_cur."!cursor_pos"(rx1207_pos)
-    $P10 = rx1207_cur."O"("%relational, :pirop<isge ISs>")
-    unless $P10, rx1207_fail
-    rx1207_cur."!mark_push"(0, -1, 0, $P10)
+    rx1208_cur."!cursor_pos"(rx1208_pos)
+    $P10 = rx1208_cur."O"("%relational, :pirop<isgt INn>")
+    unless $P10, rx1208_fail
+    rx1208_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1207_pos = $P10."pos"()
+    rx1208_pos = $P10."pos"()
   # rx pass
-    rx1207_cur."!cursor_pass"(rx1207_pos, "infix:sym<ge>")
-    if_null rx1207_debug, debug_949
-    rx1207_cur."!cursor_debug"("PASS", "infix:sym<ge>", " at pos=", rx1207_pos)
+    rx1208_cur."!cursor_pass"(rx1208_pos, "infix:sym<>>")
+    if_null rx1208_debug, debug_947
+    rx1208_cur."!cursor_debug"("PASS", "infix:sym<>>", " at pos=", rx1208_pos)
+  debug_947:
+    .return (rx1208_cur)
+  rx1208_restart:
+.annotate 'line', 454
+    if_null rx1208_debug, debug_948
+    rx1208_cur."!cursor_debug"("NEXT", "infix:sym<>>")
+  debug_948:
+  rx1208_fail:
+    (rx1208_rep, rx1208_pos, $I10, $P10) = rx1208_cur."!mark_fail"(0)
+    lt rx1208_pos, -1, rx1208_done
+    eq rx1208_pos, -1, rx1208_fail
+    jump $I10
+  rx1208_done:
+    rx1208_cur."!cursor_fail"()
+    if_null rx1208_debug, debug_949
+    rx1208_cur."!cursor_debug"("FAIL", "infix:sym<>>")
   debug_949:
-    .return (rx1207_cur)
-  rx1207_restart:
-    if_null rx1207_debug, debug_950
-    rx1207_cur."!cursor_debug"("NEXT", "infix:sym<ge>")
-  debug_950:
-  rx1207_fail:
-    (rx1207_rep, rx1207_pos, $I10, $P10) = rx1207_cur."!mark_fail"(0)
-    lt rx1207_pos, -1, rx1207_done
-    eq rx1207_pos, -1, rx1207_fail
-    jump $I10
-  rx1207_done:
-    rx1207_cur."!cursor_fail"()
-    if_null rx1207_debug, debug_951
-    rx1207_cur."!cursor_debug"("FAIL", "infix:sym<ge>")
-  debug_951:
-    .return (rx1207_cur)
+    .return (rx1208_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ge>"  :subid("313_1283975947.19641") :method
-.annotate 'line', 0
-    $P1209 = self."!PREFIX__!subrule"("O", "ge")
-    new $P1210, "ResizablePMCArray"
-    push $P1210, $P1209
-    .return ($P1210)
+.sub "!PREFIX__infix:sym<>>"  :subid("311_1284728478.15265") :method
+.annotate 'line', 454
+    $P1210 = self."!PREFIX__!subrule"("O", ">")
+    new $P1211, "ResizablePMCArray"
+    push $P1211, $P1210
+    .return ($P1211)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<lt>"  :subid("314_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1214_tgt
-    .local int rx1214_pos
-    .local int rx1214_off
-    .local int rx1214_eos
-    .local int rx1214_rep
-    .local pmc rx1214_cur
-    .local pmc rx1214_debug
-    (rx1214_cur, rx1214_pos, rx1214_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1214_debug, rx1214_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1214_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1214_eos, rx1214_tgt
-    gt rx1214_pos, rx1214_eos, rx1214_done
-    set rx1214_off, 0
-    lt rx1214_pos, 2, rx1214_start
-    sub rx1214_off, rx1214_pos, 1
-    substr rx1214_tgt, rx1214_tgt, rx1214_off
-  rx1214_start:
-    eq $I10, 1, rx1214_restart
-    if_null rx1214_debug, debug_952
-    rx1214_cur."!cursor_debug"("START", "infix:sym<lt>")
-  debug_952:
+.sub "infix:sym<eq>"  :subid("312_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1215_tgt
+    .local int rx1215_pos
+    .local int rx1215_off
+    .local int rx1215_eos
+    .local int rx1215_rep
+    .local pmc rx1215_cur
+    .local pmc rx1215_debug
+    (rx1215_cur, rx1215_pos, rx1215_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1215_debug, rx1215_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1215_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1215_eos, rx1215_tgt
+    gt rx1215_pos, rx1215_eos, rx1215_done
+    set rx1215_off, 0
+    lt rx1215_pos, 2, rx1215_start
+    sub rx1215_off, rx1215_pos, 1
+    substr rx1215_tgt, rx1215_tgt, rx1215_off
+  rx1215_start:
+    eq $I10, 1, rx1215_restart
+    if_null rx1215_debug, debug_950
+    rx1215_cur."!cursor_debug"("START", "infix:sym<eq>")
+  debug_950:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1218_done
-    goto rxscan1218_scan
-  rxscan1218_loop:
-    ($P10) = rx1214_cur."from"()
-    inc $P10
-    set rx1214_pos, $P10
-    ge rx1214_pos, rx1214_eos, rxscan1218_done
-  rxscan1218_scan:
-    set_addr $I10, rxscan1218_loop
-    rx1214_cur."!mark_push"(0, rx1214_pos, $I10)
-  rxscan1218_done:
+    ne $I10, -1, rxscan1219_done
+    goto rxscan1219_scan
+  rxscan1219_loop:
+    ($P10) = rx1215_cur."from"()
+    inc $P10
+    set rx1215_pos, $P10
+    ge rx1215_pos, rx1215_eos, rxscan1219_done
+  rxscan1219_scan:
+    set_addr $I10, rxscan1219_loop
+    rx1215_cur."!mark_push"(0, rx1215_pos, $I10)
+  rxscan1219_done:
+.annotate 'line', 532
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1219_fail
-    rx1214_cur."!mark_push"(0, rx1214_pos, $I10)
-  # rx literal  "lt"
-    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
-    add rx1214_pos, 2
-    set_addr $I10, rxcap_1219_fail
-    ($I12, $I11) = rx1214_cur."!mark_peek"($I10)
-    rx1214_cur."!cursor_pos"($I11)
-    ($P10) = rx1214_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1214_pos, "")
-    rx1214_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1220_fail
+    rx1215_cur."!mark_push"(0, rx1215_pos, $I10)
+  # rx literal  "eq"
+    add $I11, rx1215_pos, 2
+    gt $I11, rx1215_eos, rx1215_fail
+    sub $I11, rx1215_pos, rx1215_off
+    substr $S10, rx1215_tgt, $I11, 2
+    ne $S10, "eq", rx1215_fail
+    add rx1215_pos, 2
+    set_addr $I10, rxcap_1220_fail
+    ($I12, $I11) = rx1215_cur."!mark_peek"($I10)
+    rx1215_cur."!cursor_pos"($I11)
+    ($P10) = rx1215_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1215_pos, "")
+    rx1215_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1219_done
-  rxcap_1219_fail:
-    goto rx1214_fail
-  rxcap_1219_done:
+    goto rxcap_1220_done
+  rxcap_1220_fail:
+    goto rx1215_fail
+  rxcap_1220_done:
   # rx subrule "O" subtype=capture negate=
-    rx1214_cur."!cursor_pos"(rx1214_pos)
-    $P10 = rx1214_cur."O"("%relational, :pirop<islt ISs>")
-    unless $P10, rx1214_fail
-    rx1214_cur."!mark_push"(0, -1, 0, $P10)
+    rx1215_cur."!cursor_pos"(rx1215_pos)
+    $P10 = rx1215_cur."O"("%relational, :pirop<iseq ISs>")
+    unless $P10, rx1215_fail
+    rx1215_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1214_pos = $P10."pos"()
+    rx1215_pos = $P10."pos"()
   # rx pass
-    rx1214_cur."!cursor_pass"(rx1214_pos, "infix:sym<lt>")
-    if_null rx1214_debug, debug_953
-    rx1214_cur."!cursor_debug"("PASS", "infix:sym<lt>", " at pos=", rx1214_pos)
+    rx1215_cur."!cursor_pass"(rx1215_pos, "infix:sym<eq>")
+    if_null rx1215_debug, debug_951
+    rx1215_cur."!cursor_debug"("PASS", "infix:sym<eq>", " at pos=", rx1215_pos)
+  debug_951:
+    .return (rx1215_cur)
+  rx1215_restart:
+.annotate 'line', 454
+    if_null rx1215_debug, debug_952
+    rx1215_cur."!cursor_debug"("NEXT", "infix:sym<eq>")
+  debug_952:
+  rx1215_fail:
+    (rx1215_rep, rx1215_pos, $I10, $P10) = rx1215_cur."!mark_fail"(0)
+    lt rx1215_pos, -1, rx1215_done
+    eq rx1215_pos, -1, rx1215_fail
+    jump $I10
+  rx1215_done:
+    rx1215_cur."!cursor_fail"()
+    if_null rx1215_debug, debug_953
+    rx1215_cur."!cursor_debug"("FAIL", "infix:sym<eq>")
   debug_953:
-    .return (rx1214_cur)
-  rx1214_restart:
-    if_null rx1214_debug, debug_954
-    rx1214_cur."!cursor_debug"("NEXT", "infix:sym<lt>")
-  debug_954:
-  rx1214_fail:
-    (rx1214_rep, rx1214_pos, $I10, $P10) = rx1214_cur."!mark_fail"(0)
-    lt rx1214_pos, -1, rx1214_done
-    eq rx1214_pos, -1, rx1214_fail
-    jump $I10
-  rx1214_done:
-    rx1214_cur."!cursor_fail"()
-    if_null rx1214_debug, debug_955
-    rx1214_cur."!cursor_debug"("FAIL", "infix:sym<lt>")
-  debug_955:
-    .return (rx1214_cur)
+    .return (rx1215_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<lt>"  :subid("315_1283975947.19641") :method
-.annotate 'line', 0
-    $P1216 = self."!PREFIX__!subrule"("O", "lt")
-    new $P1217, "ResizablePMCArray"
-    push $P1217, $P1216
-    .return ($P1217)
+.sub "!PREFIX__infix:sym<eq>"  :subid("313_1284728478.15265") :method
+.annotate 'line', 454
+    $P1217 = self."!PREFIX__!subrule"("O", "eq")
+    new $P1218, "ResizablePMCArray"
+    push $P1218, $P1217
+    .return ($P1218)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<gt>"  :subid("316_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1221_tgt
-    .local int rx1221_pos
-    .local int rx1221_off
-    .local int rx1221_eos
-    .local int rx1221_rep
-    .local pmc rx1221_cur
-    .local pmc rx1221_debug
-    (rx1221_cur, rx1221_pos, rx1221_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1221_debug, rx1221_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1221_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1221_eos, rx1221_tgt
-    gt rx1221_pos, rx1221_eos, rx1221_done
-    set rx1221_off, 0
-    lt rx1221_pos, 2, rx1221_start
-    sub rx1221_off, rx1221_pos, 1
-    substr rx1221_tgt, rx1221_tgt, rx1221_off
-  rx1221_start:
-    eq $I10, 1, rx1221_restart
-    if_null rx1221_debug, debug_956
-    rx1221_cur."!cursor_debug"("START", "infix:sym<gt>")
-  debug_956:
+.sub "infix:sym<ne>"  :subid("314_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1222_tgt
+    .local int rx1222_pos
+    .local int rx1222_off
+    .local int rx1222_eos
+    .local int rx1222_rep
+    .local pmc rx1222_cur
+    .local pmc rx1222_debug
+    (rx1222_cur, rx1222_pos, rx1222_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1222_debug, rx1222_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1222_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1222_eos, rx1222_tgt
+    gt rx1222_pos, rx1222_eos, rx1222_done
+    set rx1222_off, 0
+    lt rx1222_pos, 2, rx1222_start
+    sub rx1222_off, rx1222_pos, 1
+    substr rx1222_tgt, rx1222_tgt, rx1222_off
+  rx1222_start:
+    eq $I10, 1, rx1222_restart
+    if_null rx1222_debug, debug_954
+    rx1222_cur."!cursor_debug"("START", "infix:sym<ne>")
+  debug_954:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1225_done
-    goto rxscan1225_scan
-  rxscan1225_loop:
-    ($P10) = rx1221_cur."from"()
-    inc $P10
-    set rx1221_pos, $P10
-    ge rx1221_pos, rx1221_eos, rxscan1225_done
-  rxscan1225_scan:
-    set_addr $I10, rxscan1225_loop
-    rx1221_cur."!mark_push"(0, rx1221_pos, $I10)
-  rxscan1225_done:
+    ne $I10, -1, rxscan1226_done
+    goto rxscan1226_scan
+  rxscan1226_loop:
+    ($P10) = rx1222_cur."from"()
+    inc $P10
+    set rx1222_pos, $P10
+    ge rx1222_pos, rx1222_eos, rxscan1226_done
+  rxscan1226_scan:
+    set_addr $I10, rxscan1226_loop
+    rx1222_cur."!mark_push"(0, rx1222_pos, $I10)
+  rxscan1226_done:
+.annotate 'line', 533
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1226_fail
-    rx1221_cur."!mark_push"(0, rx1221_pos, $I10)
-  # rx literal  "gt"
-    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
-    add rx1221_pos, 2
-    set_addr $I10, rxcap_1226_fail
-    ($I12, $I11) = rx1221_cur."!mark_peek"($I10)
-    rx1221_cur."!cursor_pos"($I11)
-    ($P10) = rx1221_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1221_pos, "")
-    rx1221_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1227_fail
+    rx1222_cur."!mark_push"(0, rx1222_pos, $I10)
+  # rx literal  "ne"
+    add $I11, rx1222_pos, 2
+    gt $I11, rx1222_eos, rx1222_fail
+    sub $I11, rx1222_pos, rx1222_off
+    substr $S10, rx1222_tgt, $I11, 2
+    ne $S10, "ne", rx1222_fail
+    add rx1222_pos, 2
+    set_addr $I10, rxcap_1227_fail
+    ($I12, $I11) = rx1222_cur."!mark_peek"($I10)
+    rx1222_cur."!cursor_pos"($I11)
+    ($P10) = rx1222_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1222_pos, "")
+    rx1222_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1226_done
-  rxcap_1226_fail:
-    goto rx1221_fail
-  rxcap_1226_done:
+    goto rxcap_1227_done
+  rxcap_1227_fail:
+    goto rx1222_fail
+  rxcap_1227_done:
   # rx subrule "O" subtype=capture negate=
-    rx1221_cur."!cursor_pos"(rx1221_pos)
-    $P10 = rx1221_cur."O"("%relational, :pirop<isgt ISs>")
-    unless $P10, rx1221_fail
-    rx1221_cur."!mark_push"(0, -1, 0, $P10)
+    rx1222_cur."!cursor_pos"(rx1222_pos)
+    $P10 = rx1222_cur."O"("%relational, :pirop<isne ISs>")
+    unless $P10, rx1222_fail
+    rx1222_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1221_pos = $P10."pos"()
+    rx1222_pos = $P10."pos"()
   # rx pass
-    rx1221_cur."!cursor_pass"(rx1221_pos, "infix:sym<gt>")
-    if_null rx1221_debug, debug_957
-    rx1221_cur."!cursor_debug"("PASS", "infix:sym<gt>", " at pos=", rx1221_pos)
+    rx1222_cur."!cursor_pass"(rx1222_pos, "infix:sym<ne>")
+    if_null rx1222_debug, debug_955
+    rx1222_cur."!cursor_debug"("PASS", "infix:sym<ne>", " at pos=", rx1222_pos)
+  debug_955:
+    .return (rx1222_cur)
+  rx1222_restart:
+.annotate 'line', 454
+    if_null rx1222_debug, debug_956
+    rx1222_cur."!cursor_debug"("NEXT", "infix:sym<ne>")
+  debug_956:
+  rx1222_fail:
+    (rx1222_rep, rx1222_pos, $I10, $P10) = rx1222_cur."!mark_fail"(0)
+    lt rx1222_pos, -1, rx1222_done
+    eq rx1222_pos, -1, rx1222_fail
+    jump $I10
+  rx1222_done:
+    rx1222_cur."!cursor_fail"()
+    if_null rx1222_debug, debug_957
+    rx1222_cur."!cursor_debug"("FAIL", "infix:sym<ne>")
   debug_957:
-    .return (rx1221_cur)
-  rx1221_restart:
-    if_null rx1221_debug, debug_958
-    rx1221_cur."!cursor_debug"("NEXT", "infix:sym<gt>")
-  debug_958:
-  rx1221_fail:
-    (rx1221_rep, rx1221_pos, $I10, $P10) = rx1221_cur."!mark_fail"(0)
-    lt rx1221_pos, -1, rx1221_done
-    eq rx1221_pos, -1, rx1221_fail
-    jump $I10
-  rx1221_done:
-    rx1221_cur."!cursor_fail"()
-    if_null rx1221_debug, debug_959
-    rx1221_cur."!cursor_debug"("FAIL", "infix:sym<gt>")
-  debug_959:
-    .return (rx1221_cur)
+    .return (rx1222_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<gt>"  :subid("317_1283975947.19641") :method
-.annotate 'line', 0
-    $P1223 = self."!PREFIX__!subrule"("O", "gt")
-    new $P1224, "ResizablePMCArray"
-    push $P1224, $P1223
-    .return ($P1224)
+.sub "!PREFIX__infix:sym<ne>"  :subid("315_1284728478.15265") :method
+.annotate 'line', 454
+    $P1224 = self."!PREFIX__!subrule"("O", "ne")
+    new $P1225, "ResizablePMCArray"
+    push $P1225, $P1224
+    .return ($P1225)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=:=>"  :subid("318_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1228_tgt
-    .local int rx1228_pos
-    .local int rx1228_off
-    .local int rx1228_eos
-    .local int rx1228_rep
-    .local pmc rx1228_cur
-    .local pmc rx1228_debug
-    (rx1228_cur, rx1228_pos, rx1228_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1228_debug, rx1228_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1228_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1228_eos, rx1228_tgt
-    gt rx1228_pos, rx1228_eos, rx1228_done
-    set rx1228_off, 0
-    lt rx1228_pos, 2, rx1228_start
-    sub rx1228_off, rx1228_pos, 1
-    substr rx1228_tgt, rx1228_tgt, rx1228_off
-  rx1228_start:
-    eq $I10, 1, rx1228_restart
-    if_null rx1228_debug, debug_960
-    rx1228_cur."!cursor_debug"("START", "infix:sym<=:=>")
-  debug_960:
+.sub "infix:sym<le>"  :subid("316_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1229_tgt
+    .local int rx1229_pos
+    .local int rx1229_off
+    .local int rx1229_eos
+    .local int rx1229_rep
+    .local pmc rx1229_cur
+    .local pmc rx1229_debug
+    (rx1229_cur, rx1229_pos, rx1229_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1229_debug, rx1229_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1229_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1229_eos, rx1229_tgt
+    gt rx1229_pos, rx1229_eos, rx1229_done
+    set rx1229_off, 0
+    lt rx1229_pos, 2, rx1229_start
+    sub rx1229_off, rx1229_pos, 1
+    substr rx1229_tgt, rx1229_tgt, rx1229_off
+  rx1229_start:
+    eq $I10, 1, rx1229_restart
+    if_null rx1229_debug, debug_958
+    rx1229_cur."!cursor_debug"("START", "infix:sym<le>")
+  debug_958:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1232_done
-    goto rxscan1232_scan
-  rxscan1232_loop:
-    ($P10) = rx1228_cur."from"()
-    inc $P10
-    set rx1228_pos, $P10
-    ge rx1228_pos, rx1228_eos, rxscan1232_done
-  rxscan1232_scan:
-    set_addr $I10, rxscan1232_loop
-    rx1228_cur."!mark_push"(0, rx1228_pos, $I10)
-  rxscan1232_done:
+    ne $I10, -1, rxscan1233_done
+    goto rxscan1233_scan
+  rxscan1233_loop:
+    ($P10) = rx1229_cur."from"()
+    inc $P10
+    set rx1229_pos, $P10
+    ge rx1229_pos, rx1229_eos, rxscan1233_done
+  rxscan1233_scan:
+    set_addr $I10, rxscan1233_loop
+    rx1229_cur."!mark_push"(0, rx1229_pos, $I10)
+  rxscan1233_done:
+.annotate 'line', 534
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1233_fail
-    rx1228_cur."!mark_push"(0, rx1228_pos, $I10)
-  # rx literal  "=:="
-    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
-    add rx1228_pos, 3
-    set_addr $I10, rxcap_1233_fail
-    ($I12, $I11) = rx1228_cur."!mark_peek"($I10)
-    rx1228_cur."!cursor_pos"($I11)
-    ($P10) = rx1228_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1228_pos, "")
-    rx1228_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1234_fail
+    rx1229_cur."!mark_push"(0, rx1229_pos, $I10)
+  # rx literal  "le"
+    add $I11, rx1229_pos, 2
+    gt $I11, rx1229_eos, rx1229_fail
+    sub $I11, rx1229_pos, rx1229_off
+    substr $S10, rx1229_tgt, $I11, 2
+    ne $S10, "le", rx1229_fail
+    add rx1229_pos, 2
+    set_addr $I10, rxcap_1234_fail
+    ($I12, $I11) = rx1229_cur."!mark_peek"($I10)
+    rx1229_cur."!cursor_pos"($I11)
+    ($P10) = rx1229_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1229_pos, "")
+    rx1229_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1233_done
-  rxcap_1233_fail:
-    goto rx1228_fail
-  rxcap_1233_done:
+    goto rxcap_1234_done
+  rxcap_1234_fail:
+    goto rx1229_fail
+  rxcap_1234_done:
   # rx subrule "O" subtype=capture negate=
-    rx1228_cur."!cursor_pos"(rx1228_pos)
-    $P10 = rx1228_cur."O"("%relational, :pirop<issame>")
-    unless $P10, rx1228_fail
-    rx1228_cur."!mark_push"(0, -1, 0, $P10)
+    rx1229_cur."!cursor_pos"(rx1229_pos)
+    $P10 = rx1229_cur."O"("%relational, :pirop<isle ISs>")
+    unless $P10, rx1229_fail
+    rx1229_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1228_pos = $P10."pos"()
+    rx1229_pos = $P10."pos"()
   # rx pass
-    rx1228_cur."!cursor_pass"(rx1228_pos, "infix:sym<=:=>")
-    if_null rx1228_debug, debug_961
-    rx1228_cur."!cursor_debug"("PASS", "infix:sym<=:=>", " at pos=", rx1228_pos)
+    rx1229_cur."!cursor_pass"(rx1229_pos, "infix:sym<le>")
+    if_null rx1229_debug, debug_959
+    rx1229_cur."!cursor_debug"("PASS", "infix:sym<le>", " at pos=", rx1229_pos)
+  debug_959:
+    .return (rx1229_cur)
+  rx1229_restart:
+.annotate 'line', 454
+    if_null rx1229_debug, debug_960
+    rx1229_cur."!cursor_debug"("NEXT", "infix:sym<le>")
+  debug_960:
+  rx1229_fail:
+    (rx1229_rep, rx1229_pos, $I10, $P10) = rx1229_cur."!mark_fail"(0)
+    lt rx1229_pos, -1, rx1229_done
+    eq rx1229_pos, -1, rx1229_fail
+    jump $I10
+  rx1229_done:
+    rx1229_cur."!cursor_fail"()
+    if_null rx1229_debug, debug_961
+    rx1229_cur."!cursor_debug"("FAIL", "infix:sym<le>")
   debug_961:
-    .return (rx1228_cur)
-  rx1228_restart:
-    if_null rx1228_debug, debug_962
-    rx1228_cur."!cursor_debug"("NEXT", "infix:sym<=:=>")
-  debug_962:
-  rx1228_fail:
-    (rx1228_rep, rx1228_pos, $I10, $P10) = rx1228_cur."!mark_fail"(0)
-    lt rx1228_pos, -1, rx1228_done
-    eq rx1228_pos, -1, rx1228_fail
-    jump $I10
-  rx1228_done:
-    rx1228_cur."!cursor_fail"()
-    if_null rx1228_debug, debug_963
-    rx1228_cur."!cursor_debug"("FAIL", "infix:sym<=:=>")
-  debug_963:
-    .return (rx1228_cur)
+    .return (rx1229_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=:=>"  :subid("319_1283975947.19641") :method
-.annotate 'line', 0
-    $P1230 = self."!PREFIX__!subrule"("O", "=:=")
-    new $P1231, "ResizablePMCArray"
-    push $P1231, $P1230
-    .return ($P1231)
+.sub "!PREFIX__infix:sym<le>"  :subid("317_1284728478.15265") :method
+.annotate 'line', 454
+    $P1231 = self."!PREFIX__!subrule"("O", "le")
+    new $P1232, "ResizablePMCArray"
+    push $P1232, $P1231
+    .return ($P1232)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~~>"  :subid("320_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1235_tgt
-    .local int rx1235_pos
-    .local int rx1235_off
-    .local int rx1235_eos
-    .local int rx1235_rep
-    .local pmc rx1235_cur
-    .local pmc rx1235_debug
-    (rx1235_cur, rx1235_pos, rx1235_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1235_debug, rx1235_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1235_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1235_eos, rx1235_tgt
-    gt rx1235_pos, rx1235_eos, rx1235_done
-    set rx1235_off, 0
-    lt rx1235_pos, 2, rx1235_start
-    sub rx1235_off, rx1235_pos, 1
-    substr rx1235_tgt, rx1235_tgt, rx1235_off
-  rx1235_start:
-    eq $I10, 1, rx1235_restart
-    if_null rx1235_debug, debug_964
-    rx1235_cur."!cursor_debug"("START", "infix:sym<~~>")
-  debug_964:
+.sub "infix:sym<ge>"  :subid("318_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1236_tgt
+    .local int rx1236_pos
+    .local int rx1236_off
+    .local int rx1236_eos
+    .local int rx1236_rep
+    .local pmc rx1236_cur
+    .local pmc rx1236_debug
+    (rx1236_cur, rx1236_pos, rx1236_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1236_debug, rx1236_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1236_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1236_eos, rx1236_tgt
+    gt rx1236_pos, rx1236_eos, rx1236_done
+    set rx1236_off, 0
+    lt rx1236_pos, 2, rx1236_start
+    sub rx1236_off, rx1236_pos, 1
+    substr rx1236_tgt, rx1236_tgt, rx1236_off
+  rx1236_start:
+    eq $I10, 1, rx1236_restart
+    if_null rx1236_debug, debug_962
+    rx1236_cur."!cursor_debug"("START", "infix:sym<ge>")
+  debug_962:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1239_done
-    goto rxscan1239_scan
-  rxscan1239_loop:
-    ($P10) = rx1235_cur."from"()
-    inc $P10
-    set rx1235_pos, $P10
-    ge rx1235_pos, rx1235_eos, rxscan1239_done
-  rxscan1239_scan:
-    set_addr $I10, rxscan1239_loop
-    rx1235_cur."!mark_push"(0, rx1235_pos, $I10)
-  rxscan1239_done:
+    ne $I10, -1, rxscan1240_done
+    goto rxscan1240_scan
+  rxscan1240_loop:
+    ($P10) = rx1236_cur."from"()
+    inc $P10
+    set rx1236_pos, $P10
+    ge rx1236_pos, rx1236_eos, rxscan1240_done
+  rxscan1240_scan:
+    set_addr $I10, rxscan1240_loop
+    rx1236_cur."!mark_push"(0, rx1236_pos, $I10)
+  rxscan1240_done:
+.annotate 'line', 535
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1240_fail
-    rx1235_cur."!mark_push"(0, rx1235_pos, $I10)
-  # rx literal  "~~"
-    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
-    add rx1235_pos, 2
-    set_addr $I10, rxcap_1240_fail
-    ($I12, $I11) = rx1235_cur."!mark_peek"($I10)
-    rx1235_cur."!cursor_pos"($I11)
-    ($P10) = rx1235_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1235_pos, "")
-    rx1235_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1241_fail
+    rx1236_cur."!mark_push"(0, rx1236_pos, $I10)
+  # rx literal  "ge"
+    add $I11, rx1236_pos, 2
+    gt $I11, rx1236_eos, rx1236_fail
+    sub $I11, rx1236_pos, rx1236_off
+    substr $S10, rx1236_tgt, $I11, 2
+    ne $S10, "ge", rx1236_fail
+    add rx1236_pos, 2
+    set_addr $I10, rxcap_1241_fail
+    ($I12, $I11) = rx1236_cur."!mark_peek"($I10)
+    rx1236_cur."!cursor_pos"($I11)
+    ($P10) = rx1236_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1236_pos, "")
+    rx1236_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1240_done
-  rxcap_1240_fail:
-    goto rx1235_fail
-  rxcap_1240_done:
+    goto rxcap_1241_done
+  rxcap_1241_fail:
+    goto rx1236_fail
+  rxcap_1241_done:
   # rx subrule "O" subtype=capture negate=
-    rx1235_cur."!cursor_pos"(rx1235_pos)
-    $P10 = rx1235_cur."O"("%relational, :reducecheck<smartmatch>")
-    unless $P10, rx1235_fail
-    rx1235_cur."!mark_push"(0, -1, 0, $P10)
+    rx1236_cur."!cursor_pos"(rx1236_pos)
+    $P10 = rx1236_cur."O"("%relational, :pirop<isge ISs>")
+    unless $P10, rx1236_fail
+    rx1236_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1235_pos = $P10."pos"()
+    rx1236_pos = $P10."pos"()
   # rx pass
-    rx1235_cur."!cursor_pass"(rx1235_pos, "infix:sym<~~>")
-    if_null rx1235_debug, debug_965
-    rx1235_cur."!cursor_debug"("PASS", "infix:sym<~~>", " at pos=", rx1235_pos)
+    rx1236_cur."!cursor_pass"(rx1236_pos, "infix:sym<ge>")
+    if_null rx1236_debug, debug_963
+    rx1236_cur."!cursor_debug"("PASS", "infix:sym<ge>", " at pos=", rx1236_pos)
+  debug_963:
+    .return (rx1236_cur)
+  rx1236_restart:
+.annotate 'line', 454
+    if_null rx1236_debug, debug_964
+    rx1236_cur."!cursor_debug"("NEXT", "infix:sym<ge>")
+  debug_964:
+  rx1236_fail:
+    (rx1236_rep, rx1236_pos, $I10, $P10) = rx1236_cur."!mark_fail"(0)
+    lt rx1236_pos, -1, rx1236_done
+    eq rx1236_pos, -1, rx1236_fail
+    jump $I10
+  rx1236_done:
+    rx1236_cur."!cursor_fail"()
+    if_null rx1236_debug, debug_965
+    rx1236_cur."!cursor_debug"("FAIL", "infix:sym<ge>")
   debug_965:
-    .return (rx1235_cur)
-  rx1235_restart:
-    if_null rx1235_debug, debug_966
-    rx1235_cur."!cursor_debug"("NEXT", "infix:sym<~~>")
-  debug_966:
-  rx1235_fail:
-    (rx1235_rep, rx1235_pos, $I10, $P10) = rx1235_cur."!mark_fail"(0)
-    lt rx1235_pos, -1, rx1235_done
-    eq rx1235_pos, -1, rx1235_fail
-    jump $I10
-  rx1235_done:
-    rx1235_cur."!cursor_fail"()
-    if_null rx1235_debug, debug_967
-    rx1235_cur."!cursor_debug"("FAIL", "infix:sym<~~>")
-  debug_967:
-    .return (rx1235_cur)
+    .return (rx1236_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~~>"  :subid("321_1283975947.19641") :method
-.annotate 'line', 0
-    $P1237 = self."!PREFIX__!subrule"("O", "~~")
-    new $P1238, "ResizablePMCArray"
-    push $P1238, $P1237
-    .return ($P1238)
+.sub "!PREFIX__infix:sym<ge>"  :subid("319_1284728478.15265") :method
+.annotate 'line', 454
+    $P1238 = self."!PREFIX__!subrule"("O", "ge")
+    new $P1239, "ResizablePMCArray"
+    push $P1239, $P1238
+    .return ($P1239)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<&&>"  :subid("322_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1242_tgt
-    .local int rx1242_pos
-    .local int rx1242_off
-    .local int rx1242_eos
-    .local int rx1242_rep
-    .local pmc rx1242_cur
-    .local pmc rx1242_debug
-    (rx1242_cur, rx1242_pos, rx1242_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1242_debug, rx1242_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1242_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1242_eos, rx1242_tgt
-    gt rx1242_pos, rx1242_eos, rx1242_done
-    set rx1242_off, 0
-    lt rx1242_pos, 2, rx1242_start
-    sub rx1242_off, rx1242_pos, 1
-    substr rx1242_tgt, rx1242_tgt, rx1242_off
-  rx1242_start:
-    eq $I10, 1, rx1242_restart
-    if_null rx1242_debug, debug_968
-    rx1242_cur."!cursor_debug"("START", "infix:sym<&&>")
-  debug_968:
+.sub "infix:sym<lt>"  :subid("320_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1243_tgt
+    .local int rx1243_pos
+    .local int rx1243_off
+    .local int rx1243_eos
+    .local int rx1243_rep
+    .local pmc rx1243_cur
+    .local pmc rx1243_debug
+    (rx1243_cur, rx1243_pos, rx1243_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1243_debug, rx1243_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1243_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1243_eos, rx1243_tgt
+    gt rx1243_pos, rx1243_eos, rx1243_done
+    set rx1243_off, 0
+    lt rx1243_pos, 2, rx1243_start
+    sub rx1243_off, rx1243_pos, 1
+    substr rx1243_tgt, rx1243_tgt, rx1243_off
+  rx1243_start:
+    eq $I10, 1, rx1243_restart
+    if_null rx1243_debug, debug_966
+    rx1243_cur."!cursor_debug"("START", "infix:sym<lt>")
+  debug_966:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1246_done
-    goto rxscan1246_scan
-  rxscan1246_loop:
-    ($P10) = rx1242_cur."from"()
-    inc $P10
-    set rx1242_pos, $P10
-    ge rx1242_pos, rx1242_eos, rxscan1246_done
-  rxscan1246_scan:
-    set_addr $I10, rxscan1246_loop
-    rx1242_cur."!mark_push"(0, rx1242_pos, $I10)
-  rxscan1246_done:
+    ne $I10, -1, rxscan1247_done
+    goto rxscan1247_scan
+  rxscan1247_loop:
+    ($P10) = rx1243_cur."from"()
+    inc $P10
+    set rx1243_pos, $P10
+    ge rx1243_pos, rx1243_eos, rxscan1247_done
+  rxscan1247_scan:
+    set_addr $I10, rxscan1247_loop
+    rx1243_cur."!mark_push"(0, rx1243_pos, $I10)
+  rxscan1247_done:
+.annotate 'line', 536
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1247_fail
-    rx1242_cur."!mark_push"(0, rx1242_pos, $I10)
-  # rx literal  "&&"
-    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
-    add rx1242_pos, 2
-    set_addr $I10, rxcap_1247_fail
-    ($I12, $I11) = rx1242_cur."!mark_peek"($I10)
-    rx1242_cur."!cursor_pos"($I11)
-    ($P10) = rx1242_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1242_pos, "")
-    rx1242_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1248_fail
+    rx1243_cur."!mark_push"(0, rx1243_pos, $I10)
+  # rx literal  "lt"
+    add $I11, rx1243_pos, 2
+    gt $I11, rx1243_eos, rx1243_fail
+    sub $I11, rx1243_pos, rx1243_off
+    substr $S10, rx1243_tgt, $I11, 2
+    ne $S10, "lt", rx1243_fail
+    add rx1243_pos, 2
+    set_addr $I10, rxcap_1248_fail
+    ($I12, $I11) = rx1243_cur."!mark_peek"($I10)
+    rx1243_cur."!cursor_pos"($I11)
+    ($P10) = rx1243_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1243_pos, "")
+    rx1243_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1247_done
-  rxcap_1247_fail:
-    goto rx1242_fail
-  rxcap_1247_done:
+    goto rxcap_1248_done
+  rxcap_1248_fail:
+    goto rx1243_fail
+  rxcap_1248_done:
   # rx subrule "O" subtype=capture negate=
-    rx1242_cur."!cursor_pos"(rx1242_pos)
-    $P10 = rx1242_cur."O"("%tight_and, :pasttype<if>")
-    unless $P10, rx1242_fail
-    rx1242_cur."!mark_push"(0, -1, 0, $P10)
+    rx1243_cur."!cursor_pos"(rx1243_pos)
+    $P10 = rx1243_cur."O"("%relational, :pirop<islt ISs>")
+    unless $P10, rx1243_fail
+    rx1243_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1242_pos = $P10."pos"()
+    rx1243_pos = $P10."pos"()
   # rx pass
-    rx1242_cur."!cursor_pass"(rx1242_pos, "infix:sym<&&>")
-    if_null rx1242_debug, debug_969
-    rx1242_cur."!cursor_debug"("PASS", "infix:sym<&&>", " at pos=", rx1242_pos)
+    rx1243_cur."!cursor_pass"(rx1243_pos, "infix:sym<lt>")
+    if_null rx1243_debug, debug_967
+    rx1243_cur."!cursor_debug"("PASS", "infix:sym<lt>", " at pos=", rx1243_pos)
+  debug_967:
+    .return (rx1243_cur)
+  rx1243_restart:
+.annotate 'line', 454
+    if_null rx1243_debug, debug_968
+    rx1243_cur."!cursor_debug"("NEXT", "infix:sym<lt>")
+  debug_968:
+  rx1243_fail:
+    (rx1243_rep, rx1243_pos, $I10, $P10) = rx1243_cur."!mark_fail"(0)
+    lt rx1243_pos, -1, rx1243_done
+    eq rx1243_pos, -1, rx1243_fail
+    jump $I10
+  rx1243_done:
+    rx1243_cur."!cursor_fail"()
+    if_null rx1243_debug, debug_969
+    rx1243_cur."!cursor_debug"("FAIL", "infix:sym<lt>")
   debug_969:
-    .return (rx1242_cur)
-  rx1242_restart:
-    if_null rx1242_debug, debug_970
-    rx1242_cur."!cursor_debug"("NEXT", "infix:sym<&&>")
-  debug_970:
-  rx1242_fail:
-    (rx1242_rep, rx1242_pos, $I10, $P10) = rx1242_cur."!mark_fail"(0)
-    lt rx1242_pos, -1, rx1242_done
-    eq rx1242_pos, -1, rx1242_fail
-    jump $I10
-  rx1242_done:
-    rx1242_cur."!cursor_fail"()
-    if_null rx1242_debug, debug_971
-    rx1242_cur."!cursor_debug"("FAIL", "infix:sym<&&>")
-  debug_971:
-    .return (rx1242_cur)
+    .return (rx1243_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<&&>"  :subid("323_1283975947.19641") :method
-.annotate 'line', 0
-    $P1244 = self."!PREFIX__!subrule"("O", "&&")
-    new $P1245, "ResizablePMCArray"
-    push $P1245, $P1244
-    .return ($P1245)
+.sub "!PREFIX__infix:sym<lt>"  :subid("321_1284728478.15265") :method
+.annotate 'line', 454
+    $P1245 = self."!PREFIX__!subrule"("O", "lt")
+    new $P1246, "ResizablePMCArray"
+    push $P1246, $P1245
+    .return ($P1246)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<||>"  :subid("324_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1249_tgt
-    .local int rx1249_pos
-    .local int rx1249_off
-    .local int rx1249_eos
-    .local int rx1249_rep
-    .local pmc rx1249_cur
-    .local pmc rx1249_debug
-    (rx1249_cur, rx1249_pos, rx1249_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1249_debug, rx1249_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1249_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1249_eos, rx1249_tgt
-    gt rx1249_pos, rx1249_eos, rx1249_done
-    set rx1249_off, 0
-    lt rx1249_pos, 2, rx1249_start
-    sub rx1249_off, rx1249_pos, 1
-    substr rx1249_tgt, rx1249_tgt, rx1249_off
-  rx1249_start:
-    eq $I10, 1, rx1249_restart
-    if_null rx1249_debug, debug_972
-    rx1249_cur."!cursor_debug"("START", "infix:sym<||>")
-  debug_972:
+.sub "infix:sym<gt>"  :subid("322_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1250_tgt
+    .local int rx1250_pos
+    .local int rx1250_off
+    .local int rx1250_eos
+    .local int rx1250_rep
+    .local pmc rx1250_cur
+    .local pmc rx1250_debug
+    (rx1250_cur, rx1250_pos, rx1250_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1250_debug, rx1250_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1250_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1250_eos, rx1250_tgt
+    gt rx1250_pos, rx1250_eos, rx1250_done
+    set rx1250_off, 0
+    lt rx1250_pos, 2, rx1250_start
+    sub rx1250_off, rx1250_pos, 1
+    substr rx1250_tgt, rx1250_tgt, rx1250_off
+  rx1250_start:
+    eq $I10, 1, rx1250_restart
+    if_null rx1250_debug, debug_970
+    rx1250_cur."!cursor_debug"("START", "infix:sym<gt>")
+  debug_970:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1253_done
-    goto rxscan1253_scan
-  rxscan1253_loop:
-    ($P10) = rx1249_cur."from"()
-    inc $P10
-    set rx1249_pos, $P10
-    ge rx1249_pos, rx1249_eos, rxscan1253_done
-  rxscan1253_scan:
-    set_addr $I10, rxscan1253_loop
-    rx1249_cur."!mark_push"(0, rx1249_pos, $I10)
-  rxscan1253_done:
+    ne $I10, -1, rxscan1254_done
+    goto rxscan1254_scan
+  rxscan1254_loop:
+    ($P10) = rx1250_cur."from"()
+    inc $P10
+    set rx1250_pos, $P10
+    ge rx1250_pos, rx1250_eos, rxscan1254_done
+  rxscan1254_scan:
+    set_addr $I10, rxscan1254_loop
+    rx1250_cur."!mark_push"(0, rx1250_pos, $I10)
+  rxscan1254_done:
+.annotate 'line', 537
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1254_fail
-    rx1249_cur."!mark_push"(0, rx1249_pos, $I10)
-  # rx literal  "||"
-    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
-    add rx1249_pos, 2
-    set_addr $I10, rxcap_1254_fail
-    ($I12, $I11) = rx1249_cur."!mark_peek"($I10)
-    rx1249_cur."!cursor_pos"($I11)
-    ($P10) = rx1249_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1249_pos, "")
-    rx1249_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1255_fail
+    rx1250_cur."!mark_push"(0, rx1250_pos, $I10)
+  # rx literal  "gt"
+    add $I11, rx1250_pos, 2
+    gt $I11, rx1250_eos, rx1250_fail
+    sub $I11, rx1250_pos, rx1250_off
+    substr $S10, rx1250_tgt, $I11, 2
+    ne $S10, "gt", rx1250_fail
+    add rx1250_pos, 2
+    set_addr $I10, rxcap_1255_fail
+    ($I12, $I11) = rx1250_cur."!mark_peek"($I10)
+    rx1250_cur."!cursor_pos"($I11)
+    ($P10) = rx1250_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1250_pos, "")
+    rx1250_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1254_done
-  rxcap_1254_fail:
-    goto rx1249_fail
-  rxcap_1254_done:
+    goto rxcap_1255_done
+  rxcap_1255_fail:
+    goto rx1250_fail
+  rxcap_1255_done:
   # rx subrule "O" subtype=capture negate=
-    rx1249_cur."!cursor_pos"(rx1249_pos)
-    $P10 = rx1249_cur."O"("%tight_or, :pasttype<unless>")
-    unless $P10, rx1249_fail
-    rx1249_cur."!mark_push"(0, -1, 0, $P10)
+    rx1250_cur."!cursor_pos"(rx1250_pos)
+    $P10 = rx1250_cur."O"("%relational, :pirop<isgt ISs>")
+    unless $P10, rx1250_fail
+    rx1250_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1249_pos = $P10."pos"()
+    rx1250_pos = $P10."pos"()
   # rx pass
-    rx1249_cur."!cursor_pass"(rx1249_pos, "infix:sym<||>")
-    if_null rx1249_debug, debug_973
-    rx1249_cur."!cursor_debug"("PASS", "infix:sym<||>", " at pos=", rx1249_pos)
+    rx1250_cur."!cursor_pass"(rx1250_pos, "infix:sym<gt>")
+    if_null rx1250_debug, debug_971
+    rx1250_cur."!cursor_debug"("PASS", "infix:sym<gt>", " at pos=", rx1250_pos)
+  debug_971:
+    .return (rx1250_cur)
+  rx1250_restart:
+.annotate 'line', 454
+    if_null rx1250_debug, debug_972
+    rx1250_cur."!cursor_debug"("NEXT", "infix:sym<gt>")
+  debug_972:
+  rx1250_fail:
+    (rx1250_rep, rx1250_pos, $I10, $P10) = rx1250_cur."!mark_fail"(0)
+    lt rx1250_pos, -1, rx1250_done
+    eq rx1250_pos, -1, rx1250_fail
+    jump $I10
+  rx1250_done:
+    rx1250_cur."!cursor_fail"()
+    if_null rx1250_debug, debug_973
+    rx1250_cur."!cursor_debug"("FAIL", "infix:sym<gt>")
   debug_973:
-    .return (rx1249_cur)
-  rx1249_restart:
-    if_null rx1249_debug, debug_974
-    rx1249_cur."!cursor_debug"("NEXT", "infix:sym<||>")
-  debug_974:
-  rx1249_fail:
-    (rx1249_rep, rx1249_pos, $I10, $P10) = rx1249_cur."!mark_fail"(0)
-    lt rx1249_pos, -1, rx1249_done
-    eq rx1249_pos, -1, rx1249_fail
-    jump $I10
-  rx1249_done:
-    rx1249_cur."!cursor_fail"()
-    if_null rx1249_debug, debug_975
-    rx1249_cur."!cursor_debug"("FAIL", "infix:sym<||>")
-  debug_975:
-    .return (rx1249_cur)
+    .return (rx1250_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<||>"  :subid("325_1283975947.19641") :method
-.annotate 'line', 0
-    $P1251 = self."!PREFIX__!subrule"("O", "||")
-    new $P1252, "ResizablePMCArray"
-    push $P1252, $P1251
-    .return ($P1252)
+.sub "!PREFIX__infix:sym<gt>"  :subid("323_1284728478.15265") :method
+.annotate 'line', 454
+    $P1252 = self."!PREFIX__!subrule"("O", "gt")
+    new $P1253, "ResizablePMCArray"
+    push $P1253, $P1252
+    .return ($P1253)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<//>"  :subid("326_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1256_tgt
-    .local int rx1256_pos
-    .local int rx1256_off
-    .local int rx1256_eos
-    .local int rx1256_rep
-    .local pmc rx1256_cur
-    .local pmc rx1256_debug
-    (rx1256_cur, rx1256_pos, rx1256_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1256_debug, rx1256_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1256_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1256_eos, rx1256_tgt
-    gt rx1256_pos, rx1256_eos, rx1256_done
-    set rx1256_off, 0
-    lt rx1256_pos, 2, rx1256_start
-    sub rx1256_off, rx1256_pos, 1
-    substr rx1256_tgt, rx1256_tgt, rx1256_off
-  rx1256_start:
-    eq $I10, 1, rx1256_restart
-    if_null rx1256_debug, debug_976
-    rx1256_cur."!cursor_debug"("START", "infix:sym<//>")
-  debug_976:
+.sub "infix:sym<=:=>"  :subid("324_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1257_tgt
+    .local int rx1257_pos
+    .local int rx1257_off
+    .local int rx1257_eos
+    .local int rx1257_rep
+    .local pmc rx1257_cur
+    .local pmc rx1257_debug
+    (rx1257_cur, rx1257_pos, rx1257_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1257_debug, rx1257_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1257_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1257_eos, rx1257_tgt
+    gt rx1257_pos, rx1257_eos, rx1257_done
+    set rx1257_off, 0
+    lt rx1257_pos, 2, rx1257_start
+    sub rx1257_off, rx1257_pos, 1
+    substr rx1257_tgt, rx1257_tgt, rx1257_off
+  rx1257_start:
+    eq $I10, 1, rx1257_restart
+    if_null rx1257_debug, debug_974
+    rx1257_cur."!cursor_debug"("START", "infix:sym<=:=>")
+  debug_974:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1260_done
-    goto rxscan1260_scan
-  rxscan1260_loop:
-    ($P10) = rx1256_cur."from"()
-    inc $P10
-    set rx1256_pos, $P10
-    ge rx1256_pos, rx1256_eos, rxscan1260_done
-  rxscan1260_scan:
-    set_addr $I10, rxscan1260_loop
-    rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
-  rxscan1260_done:
+    ne $I10, -1, rxscan1261_done
+    goto rxscan1261_scan
+  rxscan1261_loop:
+    ($P10) = rx1257_cur."from"()
+    inc $P10
+    set rx1257_pos, $P10
+    ge rx1257_pos, rx1257_eos, rxscan1261_done
+  rxscan1261_scan:
+    set_addr $I10, rxscan1261_loop
+    rx1257_cur."!mark_push"(0, rx1257_pos, $I10)
+  rxscan1261_done:
+.annotate 'line', 538
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1261_fail
-    rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
-  # rx literal  "//"
-    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
-    add rx1256_pos, 2
-    set_addr $I10, rxcap_1261_fail
-    ($I12, $I11) = rx1256_cur."!mark_peek"($I10)
-    rx1256_cur."!cursor_pos"($I11)
-    ($P10) = rx1256_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1256_pos, "")
-    rx1256_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1262_fail
+    rx1257_cur."!mark_push"(0, rx1257_pos, $I10)
+  # rx literal  "=:="
+    add $I11, rx1257_pos, 3
+    gt $I11, rx1257_eos, rx1257_fail
+    sub $I11, rx1257_pos, rx1257_off
+    substr $S10, rx1257_tgt, $I11, 3
+    ne $S10, "=:=", rx1257_fail
+    add rx1257_pos, 3
+    set_addr $I10, rxcap_1262_fail
+    ($I12, $I11) = rx1257_cur."!mark_peek"($I10)
+    rx1257_cur."!cursor_pos"($I11)
+    ($P10) = rx1257_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1257_pos, "")
+    rx1257_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1261_done
-  rxcap_1261_fail:
-    goto rx1256_fail
-  rxcap_1261_done:
+    goto rxcap_1262_done
+  rxcap_1262_fail:
+    goto rx1257_fail
+  rxcap_1262_done:
   # rx subrule "O" subtype=capture negate=
-    rx1256_cur."!cursor_pos"(rx1256_pos)
-    $P10 = rx1256_cur."O"("%tight_or, :pasttype<def_or>")
-    unless $P10, rx1256_fail
-    rx1256_cur."!mark_push"(0, -1, 0, $P10)
+    rx1257_cur."!cursor_pos"(rx1257_pos)
+    $P10 = rx1257_cur."O"("%relational, :pirop<issame>")
+    unless $P10, rx1257_fail
+    rx1257_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1256_pos = $P10."pos"()
+    rx1257_pos = $P10."pos"()
   # rx pass
-    rx1256_cur."!cursor_pass"(rx1256_pos, "infix:sym<//>")
-    if_null rx1256_debug, debug_977
-    rx1256_cur."!cursor_debug"("PASS", "infix:sym<//>", " at pos=", rx1256_pos)
+    rx1257_cur."!cursor_pass"(rx1257_pos, "infix:sym<=:=>")
+    if_null rx1257_debug, debug_975
+    rx1257_cur."!cursor_debug"("PASS", "infix:sym<=:=>", " at pos=", rx1257_pos)
+  debug_975:
+    .return (rx1257_cur)
+  rx1257_restart:
+.annotate 'line', 454
+    if_null rx1257_debug, debug_976
+    rx1257_cur."!cursor_debug"("NEXT", "infix:sym<=:=>")
+  debug_976:
+  rx1257_fail:
+    (rx1257_rep, rx1257_pos, $I10, $P10) = rx1257_cur."!mark_fail"(0)
+    lt rx1257_pos, -1, rx1257_done
+    eq rx1257_pos, -1, rx1257_fail
+    jump $I10
+  rx1257_done:
+    rx1257_cur."!cursor_fail"()
+    if_null rx1257_debug, debug_977
+    rx1257_cur."!cursor_debug"("FAIL", "infix:sym<=:=>")
   debug_977:
-    .return (rx1256_cur)
-  rx1256_restart:
-    if_null rx1256_debug, debug_978
-    rx1256_cur."!cursor_debug"("NEXT", "infix:sym<//>")
-  debug_978:
-  rx1256_fail:
-    (rx1256_rep, rx1256_pos, $I10, $P10) = rx1256_cur."!mark_fail"(0)
-    lt rx1256_pos, -1, rx1256_done
-    eq rx1256_pos, -1, rx1256_fail
-    jump $I10
-  rx1256_done:
-    rx1256_cur."!cursor_fail"()
-    if_null rx1256_debug, debug_979
-    rx1256_cur."!cursor_debug"("FAIL", "infix:sym<//>")
-  debug_979:
-    .return (rx1256_cur)
+    .return (rx1257_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<//>"  :subid("327_1283975947.19641") :method
-.annotate 'line', 0
-    $P1258 = self."!PREFIX__!subrule"("O", "//")
-    new $P1259, "ResizablePMCArray"
-    push $P1259, $P1258
-    .return ($P1259)
+.sub "!PREFIX__infix:sym<=:=>"  :subid("325_1284728478.15265") :method
+.annotate 'line', 454
+    $P1259 = self."!PREFIX__!subrule"("O", "=:=")
+    new $P1260, "ResizablePMCArray"
+    push $P1260, $P1259
+    .return ($P1260)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<?? !!>"  :subid("328_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1263_tgt
-    .local int rx1263_pos
-    .local int rx1263_off
-    .local int rx1263_eos
-    .local int rx1263_rep
-    .local pmc rx1263_cur
-    .local pmc rx1263_debug
-    (rx1263_cur, rx1263_pos, rx1263_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1263_debug, rx1263_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1263_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1263_eos, rx1263_tgt
-    gt rx1263_pos, rx1263_eos, rx1263_done
-    set rx1263_off, 0
-    lt rx1263_pos, 2, rx1263_start
-    sub rx1263_off, rx1263_pos, 1
-    substr rx1263_tgt, rx1263_tgt, rx1263_off
-  rx1263_start:
-    eq $I10, 1, rx1263_restart
-    if_null rx1263_debug, debug_980
-    rx1263_cur."!cursor_debug"("START", "infix:sym<?? !!>")
-  debug_980:
+.sub "infix:sym<~~>"  :subid("326_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1264_tgt
+    .local int rx1264_pos
+    .local int rx1264_off
+    .local int rx1264_eos
+    .local int rx1264_rep
+    .local pmc rx1264_cur
+    .local pmc rx1264_debug
+    (rx1264_cur, rx1264_pos, rx1264_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1264_debug, rx1264_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1264_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1264_eos, rx1264_tgt
+    gt rx1264_pos, rx1264_eos, rx1264_done
+    set rx1264_off, 0
+    lt rx1264_pos, 2, rx1264_start
+    sub rx1264_off, rx1264_pos, 1
+    substr rx1264_tgt, rx1264_tgt, rx1264_off
+  rx1264_start:
+    eq $I10, 1, rx1264_restart
+    if_null rx1264_debug, debug_978
+    rx1264_cur."!cursor_debug"("START", "infix:sym<~~>")
+  debug_978:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1267_done
-    goto rxscan1267_scan
-  rxscan1267_loop:
-    ($P10) = rx1263_cur."from"()
-    inc $P10
-    set rx1263_pos, $P10
-    ge rx1263_pos, rx1263_eos, rxscan1267_done
-  rxscan1267_scan:
-    set_addr $I10, rxscan1267_loop
-    rx1263_cur."!mark_push"(0, rx1263_pos, $I10)
-  rxscan1267_done:
-  # rx literal  "??"
-    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
-    add rx1263_pos, 2
-  # rx subrule "ws" subtype=method negate=
-    rx1263_cur."!cursor_pos"(rx1263_pos)
-    $P10 = rx1263_cur."ws"()
-    unless $P10, rx1263_fail
-    rx1263_pos = $P10."pos"()
-  # rx subrule "EXPR" subtype=capture negate=
-    rx1263_cur."!cursor_pos"(rx1263_pos)
-    $P10 = rx1263_cur."EXPR"("i=")
-    unless $P10, rx1263_fail
-    rx1263_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("EXPR")
-    rx1263_pos = $P10."pos"()
-  # rx literal  "!!"
-    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
-    add rx1263_pos, 2
+    ne $I10, -1, rxscan1268_done
+    goto rxscan1268_scan
+  rxscan1268_loop:
+    ($P10) = rx1264_cur."from"()
+    inc $P10
+    set rx1264_pos, $P10
+    ge rx1264_pos, rx1264_eos, rxscan1268_done
+  rxscan1268_scan:
+    set_addr $I10, rxscan1268_loop
+    rx1264_cur."!mark_push"(0, rx1264_pos, $I10)
+  rxscan1268_done:
+.annotate 'line', 539
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_1269_fail
+    rx1264_cur."!mark_push"(0, rx1264_pos, $I10)
+  # rx literal  "~~"
+    add $I11, rx1264_pos, 2
+    gt $I11, rx1264_eos, rx1264_fail
+    sub $I11, rx1264_pos, rx1264_off
+    substr $S10, rx1264_tgt, $I11, 2
+    ne $S10, "~~", rx1264_fail
+    add rx1264_pos, 2
+    set_addr $I10, rxcap_1269_fail
+    ($I12, $I11) = rx1264_cur."!mark_peek"($I10)
+    rx1264_cur."!cursor_pos"($I11)
+    ($P10) = rx1264_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1264_pos, "")
+    rx1264_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_1269_done
+  rxcap_1269_fail:
+    goto rx1264_fail
+  rxcap_1269_done:
   # rx subrule "O" subtype=capture negate=
-    rx1263_cur."!cursor_pos"(rx1263_pos)
-    $P10 = rx1263_cur."O"("%conditional, :reducecheck<ternary>, :pasttype<if>")
-    unless $P10, rx1263_fail
-    rx1263_cur."!mark_push"(0, -1, 0, $P10)
+    rx1264_cur."!cursor_pos"(rx1264_pos)
+    $P10 = rx1264_cur."O"("%relational, :reducecheck<smartmatch>")
+    unless $P10, rx1264_fail
+    rx1264_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1263_pos = $P10."pos"()
+    rx1264_pos = $P10."pos"()
   # rx pass
-    rx1263_cur."!cursor_pass"(rx1263_pos, "infix:sym<?? !!>")
-    if_null rx1263_debug, debug_981
-    rx1263_cur."!cursor_debug"("PASS", "infix:sym<?? !!>", " at pos=", rx1263_pos)
+    rx1264_cur."!cursor_pass"(rx1264_pos, "infix:sym<~~>")
+    if_null rx1264_debug, debug_979
+    rx1264_cur."!cursor_debug"("PASS", "infix:sym<~~>", " at pos=", rx1264_pos)
+  debug_979:
+    .return (rx1264_cur)
+  rx1264_restart:
+.annotate 'line', 454
+    if_null rx1264_debug, debug_980
+    rx1264_cur."!cursor_debug"("NEXT", "infix:sym<~~>")
+  debug_980:
+  rx1264_fail:
+    (rx1264_rep, rx1264_pos, $I10, $P10) = rx1264_cur."!mark_fail"(0)
+    lt rx1264_pos, -1, rx1264_done
+    eq rx1264_pos, -1, rx1264_fail
+    jump $I10
+  rx1264_done:
+    rx1264_cur."!cursor_fail"()
+    if_null rx1264_debug, debug_981
+    rx1264_cur."!cursor_debug"("FAIL", "infix:sym<~~>")
   debug_981:
-    .return (rx1263_cur)
-  rx1263_restart:
-    if_null rx1263_debug, debug_982
-    rx1263_cur."!cursor_debug"("NEXT", "infix:sym<?? !!>")
-  debug_982:
-  rx1263_fail:
-    (rx1263_rep, rx1263_pos, $I10, $P10) = rx1263_cur."!mark_fail"(0)
-    lt rx1263_pos, -1, rx1263_done
-    eq rx1263_pos, -1, rx1263_fail
-    jump $I10
-  rx1263_done:
-    rx1263_cur."!cursor_fail"()
-    if_null rx1263_debug, debug_983
-    rx1263_cur."!cursor_debug"("FAIL", "infix:sym<?? !!>")
-  debug_983:
-    .return (rx1263_cur)
+    .return (rx1264_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<?? !!>"  :subid("329_1283975947.19641") :method
-.annotate 'line', 0
-    $P1265 = self."!PREFIX__!subrule"("ws", "??")
-    new $P1266, "ResizablePMCArray"
-    push $P1266, $P1265
-    .return ($P1266)
+.sub "!PREFIX__infix:sym<~~>"  :subid("327_1284728478.15265") :method
+.annotate 'line', 454
+    $P1266 = self."!PREFIX__!subrule"("O", "~~")
+    new $P1267, "ResizablePMCArray"
+    push $P1267, $P1266
+    .return ($P1267)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=>"  :subid("330_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1269_tgt
-    .local int rx1269_pos
-    .local int rx1269_off
-    .local int rx1269_eos
-    .local int rx1269_rep
-    .local pmc rx1269_cur
-    .local pmc rx1269_debug
-    (rx1269_cur, rx1269_pos, rx1269_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1269_debug, rx1269_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1269_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1269_eos, rx1269_tgt
-    gt rx1269_pos, rx1269_eos, rx1269_done
-    set rx1269_off, 0
-    lt rx1269_pos, 2, rx1269_start
-    sub rx1269_off, rx1269_pos, 1
-    substr rx1269_tgt, rx1269_tgt, rx1269_off
-  rx1269_start:
-    eq $I10, 1, rx1269_restart
-    if_null rx1269_debug, debug_984
-    rx1269_cur."!cursor_debug"("START", "infix:sym<=>")
-  debug_984:
+.sub "infix:sym<&&>"  :subid("328_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1271_tgt
+    .local int rx1271_pos
+    .local int rx1271_off
+    .local int rx1271_eos
+    .local int rx1271_rep
+    .local pmc rx1271_cur
+    .local pmc rx1271_debug
+    (rx1271_cur, rx1271_pos, rx1271_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1271_debug, rx1271_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1271_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1271_eos, rx1271_tgt
+    gt rx1271_pos, rx1271_eos, rx1271_done
+    set rx1271_off, 0
+    lt rx1271_pos, 2, rx1271_start
+    sub rx1271_off, rx1271_pos, 1
+    substr rx1271_tgt, rx1271_tgt, rx1271_off
+  rx1271_start:
+    eq $I10, 1, rx1271_restart
+    if_null rx1271_debug, debug_982
+    rx1271_cur."!cursor_debug"("START", "infix:sym<&&>")
+  debug_982:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1273_done
-    goto rxscan1273_scan
-  rxscan1273_loop:
-    ($P10) = rx1269_cur."from"()
-    inc $P10
-    set rx1269_pos, $P10
-    ge rx1269_pos, rx1269_eos, rxscan1273_done
-  rxscan1273_scan:
-    set_addr $I10, rxscan1273_loop
-    rx1269_cur."!mark_push"(0, rx1269_pos, $I10)
-  rxscan1273_done:
+    ne $I10, -1, rxscan1275_done
+    goto rxscan1275_scan
+  rxscan1275_loop:
+    ($P10) = rx1271_cur."from"()
+    inc $P10
+    set rx1271_pos, $P10
+    ge rx1271_pos, rx1271_eos, rxscan1275_done
+  rxscan1275_scan:
+    set_addr $I10, rxscan1275_loop
+    rx1271_cur."!mark_push"(0, rx1271_pos, $I10)
+  rxscan1275_done:
+.annotate 'line', 541
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1274_fail
-    rx1269_cur."!mark_push"(0, rx1269_pos, $I10)
-  # rx literal  "="
-    add $I11, rx1269_pos, 1
-    gt $I11, rx1269_eos, rx1269_fail
-    sub $I11, rx1269_pos, rx1269_off
-    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)
-    rx1269_cur."!cursor_pos"($I11)
-    ($P10) = rx1269_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1269_pos, "")
-    rx1269_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1276_fail
+    rx1271_cur."!mark_push"(0, rx1271_pos, $I10)
+  # rx literal  "&&"
+    add $I11, rx1271_pos, 2
+    gt $I11, rx1271_eos, rx1271_fail
+    sub $I11, rx1271_pos, rx1271_off
+    substr $S10, rx1271_tgt, $I11, 2
+    ne $S10, "&&", rx1271_fail
+    add rx1271_pos, 2
+    set_addr $I10, rxcap_1276_fail
+    ($I12, $I11) = rx1271_cur."!mark_peek"($I10)
+    rx1271_cur."!cursor_pos"($I11)
+    ($P10) = rx1271_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1271_pos, "")
+    rx1271_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1274_done
-  rxcap_1274_fail:
-    goto rx1269_fail
-  rxcap_1274_done:
-  # rx subrule "panic" subtype=method negate=
-    rx1269_cur."!cursor_pos"(rx1269_pos)
-    $P10 = rx1269_cur."panic"("Assignment (\"=\") not supported in NQP, use \":=\" instead")
-    unless $P10, rx1269_fail
-    rx1269_pos = $P10."pos"()
-  # rx pass
-    rx1269_cur."!cursor_pass"(rx1269_pos, "infix:sym<=>")
-    if_null rx1269_debug, debug_985
-    rx1269_cur."!cursor_debug"("PASS", "infix:sym<=>", " at pos=", rx1269_pos)
+    goto rxcap_1276_done
+  rxcap_1276_fail:
+    goto rx1271_fail
+  rxcap_1276_done:
+  # rx subrule "O" subtype=capture negate=
+    rx1271_cur."!cursor_pos"(rx1271_pos)
+    $P10 = rx1271_cur."O"("%tight_and, :pasttype<if>")
+    unless $P10, rx1271_fail
+    rx1271_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("O")
+    rx1271_pos = $P10."pos"()
+  # rx pass
+    rx1271_cur."!cursor_pass"(rx1271_pos, "infix:sym<&&>")
+    if_null rx1271_debug, debug_983
+    rx1271_cur."!cursor_debug"("PASS", "infix:sym<&&>", " at pos=", rx1271_pos)
+  debug_983:
+    .return (rx1271_cur)
+  rx1271_restart:
+.annotate 'line', 454
+    if_null rx1271_debug, debug_984
+    rx1271_cur."!cursor_debug"("NEXT", "infix:sym<&&>")
+  debug_984:
+  rx1271_fail:
+    (rx1271_rep, rx1271_pos, $I10, $P10) = rx1271_cur."!mark_fail"(0)
+    lt rx1271_pos, -1, rx1271_done
+    eq rx1271_pos, -1, rx1271_fail
+    jump $I10
+  rx1271_done:
+    rx1271_cur."!cursor_fail"()
+    if_null rx1271_debug, debug_985
+    rx1271_cur."!cursor_debug"("FAIL", "infix:sym<&&>")
   debug_985:
-    .return (rx1269_cur)
-  rx1269_restart:
-    if_null rx1269_debug, debug_986
-    rx1269_cur."!cursor_debug"("NEXT", "infix:sym<=>")
-  debug_986:
-  rx1269_fail:
-    (rx1269_rep, rx1269_pos, $I10, $P10) = rx1269_cur."!mark_fail"(0)
-    lt rx1269_pos, -1, rx1269_done
-    eq rx1269_pos, -1, rx1269_fail
-    jump $I10
-  rx1269_done:
-    rx1269_cur."!cursor_fail"()
-    if_null rx1269_debug, debug_987
-    rx1269_cur."!cursor_debug"("FAIL", "infix:sym<=>")
-  debug_987:
-    .return (rx1269_cur)
+    .return (rx1271_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=>"  :subid("331_1283975947.19641") :method
-.annotate 'line', 0
-    $P1271 = self."!PREFIX__!subrule"("panic", "=")
-    new $P1272, "ResizablePMCArray"
-    push $P1272, $P1271
-    .return ($P1272)
+.sub "!PREFIX__infix:sym<&&>"  :subid("329_1284728478.15265") :method
+.annotate 'line', 454
+    $P1273 = self."!PREFIX__!subrule"("O", "&&")
+    new $P1274, "ResizablePMCArray"
+    push $P1274, $P1273
+    .return ($P1274)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<:=>"  :subid("332_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1276_tgt
-    .local int rx1276_pos
-    .local int rx1276_off
-    .local int rx1276_eos
-    .local int rx1276_rep
-    .local pmc rx1276_cur
-    .local pmc rx1276_debug
-    (rx1276_cur, rx1276_pos, rx1276_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1276_debug, rx1276_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1276_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1276_eos, rx1276_tgt
-    gt rx1276_pos, rx1276_eos, rx1276_done
-    set rx1276_off, 0
-    lt rx1276_pos, 2, rx1276_start
-    sub rx1276_off, rx1276_pos, 1
-    substr rx1276_tgt, rx1276_tgt, rx1276_off
-  rx1276_start:
-    eq $I10, 1, rx1276_restart
-    if_null rx1276_debug, debug_988
-    rx1276_cur."!cursor_debug"("START", "infix:sym<:=>")
-  debug_988:
+.sub "infix:sym<||>"  :subid("330_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1278_tgt
+    .local int rx1278_pos
+    .local int rx1278_off
+    .local int rx1278_eos
+    .local int rx1278_rep
+    .local pmc rx1278_cur
+    .local pmc rx1278_debug
+    (rx1278_cur, rx1278_pos, rx1278_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1278_debug, rx1278_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1278_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1278_eos, rx1278_tgt
+    gt rx1278_pos, rx1278_eos, rx1278_done
+    set rx1278_off, 0
+    lt rx1278_pos, 2, rx1278_start
+    sub rx1278_off, rx1278_pos, 1
+    substr rx1278_tgt, rx1278_tgt, rx1278_off
+  rx1278_start:
+    eq $I10, 1, rx1278_restart
+    if_null rx1278_debug, debug_986
+    rx1278_cur."!cursor_debug"("START", "infix:sym<||>")
+  debug_986:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1280_done
-    goto rxscan1280_scan
-  rxscan1280_loop:
-    ($P10) = rx1276_cur."from"()
-    inc $P10
-    set rx1276_pos, $P10
-    ge rx1276_pos, rx1276_eos, rxscan1280_done
-  rxscan1280_scan:
-    set_addr $I10, rxscan1280_loop
-    rx1276_cur."!mark_push"(0, rx1276_pos, $I10)
-  rxscan1280_done:
+    ne $I10, -1, rxscan1282_done
+    goto rxscan1282_scan
+  rxscan1282_loop:
+    ($P10) = rx1278_cur."from"()
+    inc $P10
+    set rx1278_pos, $P10
+    ge rx1278_pos, rx1278_eos, rxscan1282_done
+  rxscan1282_scan:
+    set_addr $I10, rxscan1282_loop
+    rx1278_cur."!mark_push"(0, rx1278_pos, $I10)
+  rxscan1282_done:
+.annotate 'line', 543
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1281_fail
-    rx1276_cur."!mark_push"(0, rx1276_pos, $I10)
-  # rx literal  ":="
-    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
-    add rx1276_pos, 2
-    set_addr $I10, rxcap_1281_fail
-    ($I12, $I11) = rx1276_cur."!mark_peek"($I10)
-    rx1276_cur."!cursor_pos"($I11)
-    ($P10) = rx1276_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1276_pos, "")
-    rx1276_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1283_fail
+    rx1278_cur."!mark_push"(0, rx1278_pos, $I10)
+  # rx literal  "||"
+    add $I11, rx1278_pos, 2
+    gt $I11, rx1278_eos, rx1278_fail
+    sub $I11, rx1278_pos, rx1278_off
+    substr $S10, rx1278_tgt, $I11, 2
+    ne $S10, "||", rx1278_fail
+    add rx1278_pos, 2
+    set_addr $I10, rxcap_1283_fail
+    ($I12, $I11) = rx1278_cur."!mark_peek"($I10)
+    rx1278_cur."!cursor_pos"($I11)
+    ($P10) = rx1278_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1278_pos, "")
+    rx1278_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1281_done
-  rxcap_1281_fail:
-    goto rx1276_fail
-  rxcap_1281_done:
+    goto rxcap_1283_done
+  rxcap_1283_fail:
+    goto rx1278_fail
+  rxcap_1283_done:
   # rx subrule "O" subtype=capture negate=
-    rx1276_cur."!cursor_pos"(rx1276_pos)
-    $P10 = rx1276_cur."O"("%assignment, :pasttype<bind>")
-    unless $P10, rx1276_fail
-    rx1276_cur."!mark_push"(0, -1, 0, $P10)
+    rx1278_cur."!cursor_pos"(rx1278_pos)
+    $P10 = rx1278_cur."O"("%tight_or, :pasttype<unless>")
+    unless $P10, rx1278_fail
+    rx1278_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1276_pos = $P10."pos"()
+    rx1278_pos = $P10."pos"()
   # rx pass
-    rx1276_cur."!cursor_pass"(rx1276_pos, "infix:sym<:=>")
-    if_null rx1276_debug, debug_989
-    rx1276_cur."!cursor_debug"("PASS", "infix:sym<:=>", " at pos=", rx1276_pos)
+    rx1278_cur."!cursor_pass"(rx1278_pos, "infix:sym<||>")
+    if_null rx1278_debug, debug_987
+    rx1278_cur."!cursor_debug"("PASS", "infix:sym<||>", " at pos=", rx1278_pos)
+  debug_987:
+    .return (rx1278_cur)
+  rx1278_restart:
+.annotate 'line', 454
+    if_null rx1278_debug, debug_988
+    rx1278_cur."!cursor_debug"("NEXT", "infix:sym<||>")
+  debug_988:
+  rx1278_fail:
+    (rx1278_rep, rx1278_pos, $I10, $P10) = rx1278_cur."!mark_fail"(0)
+    lt rx1278_pos, -1, rx1278_done
+    eq rx1278_pos, -1, rx1278_fail
+    jump $I10
+  rx1278_done:
+    rx1278_cur."!cursor_fail"()
+    if_null rx1278_debug, debug_989
+    rx1278_cur."!cursor_debug"("FAIL", "infix:sym<||>")
   debug_989:
-    .return (rx1276_cur)
-  rx1276_restart:
-    if_null rx1276_debug, debug_990
-    rx1276_cur."!cursor_debug"("NEXT", "infix:sym<:=>")
-  debug_990:
-  rx1276_fail:
-    (rx1276_rep, rx1276_pos, $I10, $P10) = rx1276_cur."!mark_fail"(0)
-    lt rx1276_pos, -1, rx1276_done
-    eq rx1276_pos, -1, rx1276_fail
-    jump $I10
-  rx1276_done:
-    rx1276_cur."!cursor_fail"()
-    if_null rx1276_debug, debug_991
-    rx1276_cur."!cursor_debug"("FAIL", "infix:sym<:=>")
-  debug_991:
-    .return (rx1276_cur)
+    .return (rx1278_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<:=>"  :subid("333_1283975947.19641") :method
-.annotate 'line', 0
-    $P1278 = self."!PREFIX__!subrule"("O", ":=")
-    new $P1279, "ResizablePMCArray"
-    push $P1279, $P1278
-    .return ($P1279)
+.sub "!PREFIX__infix:sym<||>"  :subid("331_1284728478.15265") :method
+.annotate 'line', 454
+    $P1280 = self."!PREFIX__!subrule"("O", "||")
+    new $P1281, "ResizablePMCArray"
+    push $P1281, $P1280
+    .return ($P1281)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<::=>"  :subid("334_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1283_tgt
-    .local int rx1283_pos
-    .local int rx1283_off
-    .local int rx1283_eos
-    .local int rx1283_rep
-    .local pmc rx1283_cur
-    .local pmc rx1283_debug
-    (rx1283_cur, rx1283_pos, rx1283_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1283_debug, rx1283_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1283_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1283_eos, rx1283_tgt
-    gt rx1283_pos, rx1283_eos, rx1283_done
-    set rx1283_off, 0
-    lt rx1283_pos, 2, rx1283_start
-    sub rx1283_off, rx1283_pos, 1
-    substr rx1283_tgt, rx1283_tgt, rx1283_off
-  rx1283_start:
-    eq $I10, 1, rx1283_restart
-    if_null rx1283_debug, debug_992
-    rx1283_cur."!cursor_debug"("START", "infix:sym<::=>")
-  debug_992:
+.sub "infix:sym<//>"  :subid("332_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1285_tgt
+    .local int rx1285_pos
+    .local int rx1285_off
+    .local int rx1285_eos
+    .local int rx1285_rep
+    .local pmc rx1285_cur
+    .local pmc rx1285_debug
+    (rx1285_cur, rx1285_pos, rx1285_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1285_debug, rx1285_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1285_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1285_eos, rx1285_tgt
+    gt rx1285_pos, rx1285_eos, rx1285_done
+    set rx1285_off, 0
+    lt rx1285_pos, 2, rx1285_start
+    sub rx1285_off, rx1285_pos, 1
+    substr rx1285_tgt, rx1285_tgt, rx1285_off
+  rx1285_start:
+    eq $I10, 1, rx1285_restart
+    if_null rx1285_debug, debug_990
+    rx1285_cur."!cursor_debug"("START", "infix:sym<//>")
+  debug_990:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1287_done
-    goto rxscan1287_scan
-  rxscan1287_loop:
-    ($P10) = rx1283_cur."from"()
-    inc $P10
-    set rx1283_pos, $P10
-    ge rx1283_pos, rx1283_eos, rxscan1287_done
-  rxscan1287_scan:
-    set_addr $I10, rxscan1287_loop
-    rx1283_cur."!mark_push"(0, rx1283_pos, $I10)
-  rxscan1287_done:
+    ne $I10, -1, rxscan1289_done
+    goto rxscan1289_scan
+  rxscan1289_loop:
+    ($P10) = rx1285_cur."from"()
+    inc $P10
+    set rx1285_pos, $P10
+    ge rx1285_pos, rx1285_eos, rxscan1289_done
+  rxscan1289_scan:
+    set_addr $I10, rxscan1289_loop
+    rx1285_cur."!mark_push"(0, rx1285_pos, $I10)
+  rxscan1289_done:
+.annotate 'line', 544
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1288_fail
-    rx1283_cur."!mark_push"(0, rx1283_pos, $I10)
-  # rx literal  "::="
-    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
-    add rx1283_pos, 3
-    set_addr $I10, rxcap_1288_fail
-    ($I12, $I11) = rx1283_cur."!mark_peek"($I10)
-    rx1283_cur."!cursor_pos"($I11)
-    ($P10) = rx1283_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1283_pos, "")
-    rx1283_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1290_fail
+    rx1285_cur."!mark_push"(0, rx1285_pos, $I10)
+  # rx literal  "//"
+    add $I11, rx1285_pos, 2
+    gt $I11, rx1285_eos, rx1285_fail
+    sub $I11, rx1285_pos, rx1285_off
+    substr $S10, rx1285_tgt, $I11, 2
+    ne $S10, "//", rx1285_fail
+    add rx1285_pos, 2
+    set_addr $I10, rxcap_1290_fail
+    ($I12, $I11) = rx1285_cur."!mark_peek"($I10)
+    rx1285_cur."!cursor_pos"($I11)
+    ($P10) = rx1285_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1285_pos, "")
+    rx1285_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1288_done
-  rxcap_1288_fail:
-    goto rx1283_fail
-  rxcap_1288_done:
+    goto rxcap_1290_done
+  rxcap_1290_fail:
+    goto rx1285_fail
+  rxcap_1290_done:
   # rx subrule "O" subtype=capture negate=
-    rx1283_cur."!cursor_pos"(rx1283_pos)
-    $P10 = rx1283_cur."O"("%assignment, :pasttype<bind>")
-    unless $P10, rx1283_fail
-    rx1283_cur."!mark_push"(0, -1, 0, $P10)
+    rx1285_cur."!cursor_pos"(rx1285_pos)
+    $P10 = rx1285_cur."O"("%tight_or, :pasttype<def_or>")
+    unless $P10, rx1285_fail
+    rx1285_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1283_pos = $P10."pos"()
+    rx1285_pos = $P10."pos"()
   # rx pass
-    rx1283_cur."!cursor_pass"(rx1283_pos, "infix:sym<::=>")
-    if_null rx1283_debug, debug_993
-    rx1283_cur."!cursor_debug"("PASS", "infix:sym<::=>", " at pos=", rx1283_pos)
+    rx1285_cur."!cursor_pass"(rx1285_pos, "infix:sym<//>")
+    if_null rx1285_debug, debug_991
+    rx1285_cur."!cursor_debug"("PASS", "infix:sym<//>", " at pos=", rx1285_pos)
+  debug_991:
+    .return (rx1285_cur)
+  rx1285_restart:
+.annotate 'line', 454
+    if_null rx1285_debug, debug_992
+    rx1285_cur."!cursor_debug"("NEXT", "infix:sym<//>")
+  debug_992:
+  rx1285_fail:
+    (rx1285_rep, rx1285_pos, $I10, $P10) = rx1285_cur."!mark_fail"(0)
+    lt rx1285_pos, -1, rx1285_done
+    eq rx1285_pos, -1, rx1285_fail
+    jump $I10
+  rx1285_done:
+    rx1285_cur."!cursor_fail"()
+    if_null rx1285_debug, debug_993
+    rx1285_cur."!cursor_debug"("FAIL", "infix:sym<//>")
   debug_993:
-    .return (rx1283_cur)
-  rx1283_restart:
-    if_null rx1283_debug, debug_994
-    rx1283_cur."!cursor_debug"("NEXT", "infix:sym<::=>")
-  debug_994:
-  rx1283_fail:
-    (rx1283_rep, rx1283_pos, $I10, $P10) = rx1283_cur."!mark_fail"(0)
-    lt rx1283_pos, -1, rx1283_done
-    eq rx1283_pos, -1, rx1283_fail
-    jump $I10
-  rx1283_done:
-    rx1283_cur."!cursor_fail"()
-    if_null rx1283_debug, debug_995
-    rx1283_cur."!cursor_debug"("FAIL", "infix:sym<::=>")
-  debug_995:
-    .return (rx1283_cur)
+    .return (rx1285_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<::=>"  :subid("335_1283975947.19641") :method
-.annotate 'line', 0
-    $P1285 = self."!PREFIX__!subrule"("O", "::=")
-    new $P1286, "ResizablePMCArray"
-    push $P1286, $P1285
-    .return ($P1286)
+.sub "!PREFIX__infix:sym<//>"  :subid("333_1284728478.15265") :method
+.annotate 'line', 454
+    $P1287 = self."!PREFIX__!subrule"("O", "//")
+    new $P1288, "ResizablePMCArray"
+    push $P1288, $P1287
+    .return ($P1288)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<,>"  :subid("336_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1290_tgt
-    .local int rx1290_pos
-    .local int rx1290_off
-    .local int rx1290_eos
-    .local int rx1290_rep
-    .local pmc rx1290_cur
-    .local pmc rx1290_debug
-    (rx1290_cur, rx1290_pos, rx1290_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1290_debug, rx1290_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1290_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1290_eos, rx1290_tgt
-    gt rx1290_pos, rx1290_eos, rx1290_done
-    set rx1290_off, 0
-    lt rx1290_pos, 2, rx1290_start
-    sub rx1290_off, rx1290_pos, 1
-    substr rx1290_tgt, rx1290_tgt, rx1290_off
-  rx1290_start:
-    eq $I10, 1, rx1290_restart
-    if_null rx1290_debug, debug_996
-    rx1290_cur."!cursor_debug"("START", "infix:sym<,>")
-  debug_996:
+.sub "infix:sym<?? !!>"  :subid("334_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1292_tgt
+    .local int rx1292_pos
+    .local int rx1292_off
+    .local int rx1292_eos
+    .local int rx1292_rep
+    .local pmc rx1292_cur
+    .local pmc rx1292_debug
+    (rx1292_cur, rx1292_pos, rx1292_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1292_debug, rx1292_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1292_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1292_eos, rx1292_tgt
+    gt rx1292_pos, rx1292_eos, rx1292_done
+    set rx1292_off, 0
+    lt rx1292_pos, 2, rx1292_start
+    sub rx1292_off, rx1292_pos, 1
+    substr rx1292_tgt, rx1292_tgt, rx1292_off
+  rx1292_start:
+    eq $I10, 1, rx1292_restart
+    if_null rx1292_debug, debug_994
+    rx1292_cur."!cursor_debug"("START", "infix:sym<?? !!>")
+  debug_994:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1294_done
-    goto rxscan1294_scan
-  rxscan1294_loop:
-    ($P10) = rx1290_cur."from"()
-    inc $P10
-    set rx1290_pos, $P10
-    ge rx1290_pos, rx1290_eos, rxscan1294_done
-  rxscan1294_scan:
-    set_addr $I10, rxscan1294_loop
-    rx1290_cur."!mark_push"(0, rx1290_pos, $I10)
-  rxscan1294_done:
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_1295_fail
-    rx1290_cur."!mark_push"(0, rx1290_pos, $I10)
-  # rx literal  ","
-    add $I11, rx1290_pos, 1
-    gt $I11, rx1290_eos, rx1290_fail
-    sub $I11, rx1290_pos, rx1290_off
-    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)
-    rx1290_cur."!cursor_pos"($I11)
-    ($P10) = rx1290_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1290_pos, "")
-    rx1290_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_1295_done
-  rxcap_1295_fail:
-    goto rx1290_fail
-  rxcap_1295_done:
-  # rx subrule "O" subtype=capture negate=
-    rx1290_cur."!cursor_pos"(rx1290_pos)
-    $P10 = rx1290_cur."O"("%comma, :pasttype<list>")
-    unless $P10, rx1290_fail
-    rx1290_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("O")
-    rx1290_pos = $P10."pos"()
-  # rx pass
-    rx1290_cur."!cursor_pass"(rx1290_pos, "infix:sym<,>")
-    if_null rx1290_debug, debug_997
-    rx1290_cur."!cursor_debug"("PASS", "infix:sym<,>", " at pos=", rx1290_pos)
+    ne $I10, -1, rxscan1296_done
+    goto rxscan1296_scan
+  rxscan1296_loop:
+    ($P10) = rx1292_cur."from"()
+    inc $P10
+    set rx1292_pos, $P10
+    ge rx1292_pos, rx1292_eos, rxscan1296_done
+  rxscan1296_scan:
+    set_addr $I10, rxscan1296_loop
+    rx1292_cur."!mark_push"(0, rx1292_pos, $I10)
+  rxscan1296_done:
+.annotate 'line', 547
+  # rx literal  "??"
+    add $I11, rx1292_pos, 2
+    gt $I11, rx1292_eos, rx1292_fail
+    sub $I11, rx1292_pos, rx1292_off
+    substr $S10, rx1292_tgt, $I11, 2
+    ne $S10, "??", rx1292_fail
+    add rx1292_pos, 2
+.annotate 'line', 548
+  # rx subrule "ws" subtype=method negate=
+    rx1292_cur."!cursor_pos"(rx1292_pos)
+    $P10 = rx1292_cur."ws"()
+    unless $P10, rx1292_fail
+    rx1292_pos = $P10."pos"()
+.annotate 'line', 549
+  # rx subrule "EXPR" subtype=capture negate=
+    rx1292_cur."!cursor_pos"(rx1292_pos)
+    $P10 = rx1292_cur."EXPR"("i=")
+    unless $P10, rx1292_fail
+    rx1292_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("EXPR")
+    rx1292_pos = $P10."pos"()
+.annotate 'line', 550
+  # rx literal  "!!"
+    add $I11, rx1292_pos, 2
+    gt $I11, rx1292_eos, rx1292_fail
+    sub $I11, rx1292_pos, rx1292_off
+    substr $S10, rx1292_tgt, $I11, 2
+    ne $S10, "!!", rx1292_fail
+    add rx1292_pos, 2
+.annotate 'line', 551
+  # rx subrule "O" subtype=capture negate=
+    rx1292_cur."!cursor_pos"(rx1292_pos)
+    $P10 = rx1292_cur."O"("%conditional, :reducecheck<ternary>, :pasttype<if>")
+    unless $P10, rx1292_fail
+    rx1292_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("O")
+    rx1292_pos = $P10."pos"()
+.annotate 'line', 546
+  # rx pass
+    rx1292_cur."!cursor_pass"(rx1292_pos, "infix:sym<?? !!>")
+    if_null rx1292_debug, debug_995
+    rx1292_cur."!cursor_debug"("PASS", "infix:sym<?? !!>", " at pos=", rx1292_pos)
+  debug_995:
+    .return (rx1292_cur)
+  rx1292_restart:
+.annotate 'line', 454
+    if_null rx1292_debug, debug_996
+    rx1292_cur."!cursor_debug"("NEXT", "infix:sym<?? !!>")
+  debug_996:
+  rx1292_fail:
+    (rx1292_rep, rx1292_pos, $I10, $P10) = rx1292_cur."!mark_fail"(0)
+    lt rx1292_pos, -1, rx1292_done
+    eq rx1292_pos, -1, rx1292_fail
+    jump $I10
+  rx1292_done:
+    rx1292_cur."!cursor_fail"()
+    if_null rx1292_debug, debug_997
+    rx1292_cur."!cursor_debug"("FAIL", "infix:sym<?? !!>")
   debug_997:
-    .return (rx1290_cur)
-  rx1290_restart:
-    if_null rx1290_debug, debug_998
-    rx1290_cur."!cursor_debug"("NEXT", "infix:sym<,>")
+    .return (rx1292_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__infix:sym<?? !!>"  :subid("335_1284728478.15265") :method
+.annotate 'line', 454
+    $P1294 = self."!PREFIX__!subrule"("ws", "??")
+    new $P1295, "ResizablePMCArray"
+    push $P1295, $P1294
+    .return ($P1295)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "infix:sym<=>"  :subid("336_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1298_tgt
+    .local int rx1298_pos
+    .local int rx1298_off
+    .local int rx1298_eos
+    .local int rx1298_rep
+    .local pmc rx1298_cur
+    .local pmc rx1298_debug
+    (rx1298_cur, rx1298_pos, rx1298_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1298_debug, rx1298_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1298_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1298_eos, rx1298_tgt
+    gt rx1298_pos, rx1298_eos, rx1298_done
+    set rx1298_off, 0
+    lt rx1298_pos, 2, rx1298_start
+    sub rx1298_off, rx1298_pos, 1
+    substr rx1298_tgt, rx1298_tgt, rx1298_off
+  rx1298_start:
+    eq $I10, 1, rx1298_restart
+    if_null rx1298_debug, debug_998
+    rx1298_cur."!cursor_debug"("START", "infix:sym<=>")
   debug_998:
-  rx1290_fail:
-    (rx1290_rep, rx1290_pos, $I10, $P10) = rx1290_cur."!mark_fail"(0)
-    lt rx1290_pos, -1, rx1290_done
-    eq rx1290_pos, -1, rx1290_fail
-    jump $I10
-  rx1290_done:
-    rx1290_cur."!cursor_fail"()
-    if_null rx1290_debug, debug_999
-    rx1290_cur."!cursor_debug"("FAIL", "infix:sym<,>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1302_done
+    goto rxscan1302_scan
+  rxscan1302_loop:
+    ($P10) = rx1298_cur."from"()
+    inc $P10
+    set rx1298_pos, $P10
+    ge rx1298_pos, rx1298_eos, rxscan1302_done
+  rxscan1302_scan:
+    set_addr $I10, rxscan1302_loop
+    rx1298_cur."!mark_push"(0, rx1298_pos, $I10)
+  rxscan1302_done:
+.annotate 'line', 555
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_1303_fail
+    rx1298_cur."!mark_push"(0, rx1298_pos, $I10)
+  # rx literal  "="
+    add $I11, rx1298_pos, 1
+    gt $I11, rx1298_eos, rx1298_fail
+    sub $I11, rx1298_pos, rx1298_off
+    ord $I11, rx1298_tgt, $I11
+    ne $I11, 61, rx1298_fail
+    add rx1298_pos, 1
+    set_addr $I10, rxcap_1303_fail
+    ($I12, $I11) = rx1298_cur."!mark_peek"($I10)
+    rx1298_cur."!cursor_pos"($I11)
+    ($P10) = rx1298_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1298_pos, "")
+    rx1298_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_1303_done
+  rxcap_1303_fail:
+    goto rx1298_fail
+  rxcap_1303_done:
+  # rx subrule "panic" subtype=method negate=
+    rx1298_cur."!cursor_pos"(rx1298_pos)
+    $P10 = rx1298_cur."panic"("Assignment (\"=\") not supported in NQP, use \":=\" instead")
+    unless $P10, rx1298_fail
+    rx1298_pos = $P10."pos"()
+.annotate 'line', 554
+  # rx pass
+    rx1298_cur."!cursor_pass"(rx1298_pos, "infix:sym<=>")
+    if_null rx1298_debug, debug_999
+    rx1298_cur."!cursor_debug"("PASS", "infix:sym<=>", " at pos=", rx1298_pos)
   debug_999:
-    .return (rx1290_cur)
+    .return (rx1298_cur)
+  rx1298_restart:
+.annotate 'line', 454
+    if_null rx1298_debug, debug_1000
+    rx1298_cur."!cursor_debug"("NEXT", "infix:sym<=>")
+  debug_1000:
+  rx1298_fail:
+    (rx1298_rep, rx1298_pos, $I10, $P10) = rx1298_cur."!mark_fail"(0)
+    lt rx1298_pos, -1, rx1298_done
+    eq rx1298_pos, -1, rx1298_fail
+    jump $I10
+  rx1298_done:
+    rx1298_cur."!cursor_fail"()
+    if_null rx1298_debug, debug_1001
+    rx1298_cur."!cursor_debug"("FAIL", "infix:sym<=>")
+  debug_1001:
+    .return (rx1298_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<,>"  :subid("337_1283975947.19641") :method
-.annotate 'line', 0
-    $P1292 = self."!PREFIX__!subrule"("O", ",")
-    new $P1293, "ResizablePMCArray"
-    push $P1293, $P1292
-    .return ($P1293)
+.sub "!PREFIX__infix:sym<=>"  :subid("337_1284728478.15265") :method
+.annotate 'line', 454
+    $P1300 = self."!PREFIX__!subrule"("panic", "=")
+    new $P1301, "ResizablePMCArray"
+    push $P1301, $P1300
+    .return ($P1301)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<return>"  :subid("338_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1297_tgt
-    .local int rx1297_pos
-    .local int rx1297_off
-    .local int rx1297_eos
-    .local int rx1297_rep
-    .local pmc rx1297_cur
-    .local pmc rx1297_debug
-    (rx1297_cur, rx1297_pos, rx1297_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1297_debug, rx1297_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1297_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1297_eos, rx1297_tgt
-    gt rx1297_pos, rx1297_eos, rx1297_done
-    set rx1297_off, 0
-    lt rx1297_pos, 2, rx1297_start
-    sub rx1297_off, rx1297_pos, 1
-    substr rx1297_tgt, rx1297_tgt, rx1297_off
-  rx1297_start:
-    eq $I10, 1, rx1297_restart
-    if_null rx1297_debug, debug_1000
-    rx1297_cur."!cursor_debug"("START", "prefix:sym<return>")
-  debug_1000:
+.sub "infix:sym<:=>"  :subid("338_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1305_tgt
+    .local int rx1305_pos
+    .local int rx1305_off
+    .local int rx1305_eos
+    .local int rx1305_rep
+    .local pmc rx1305_cur
+    .local pmc rx1305_debug
+    (rx1305_cur, rx1305_pos, rx1305_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1305_debug, rx1305_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1305_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1305_eos, rx1305_tgt
+    gt rx1305_pos, rx1305_eos, rx1305_done
+    set rx1305_off, 0
+    lt rx1305_pos, 2, rx1305_start
+    sub rx1305_off, rx1305_pos, 1
+    substr rx1305_tgt, rx1305_tgt, rx1305_off
+  rx1305_start:
+    eq $I10, 1, rx1305_restart
+    if_null rx1305_debug, debug_1002
+    rx1305_cur."!cursor_debug"("START", "infix:sym<:=>")
+  debug_1002:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1300_done
-    goto rxscan1300_scan
-  rxscan1300_loop:
-    ($P10) = rx1297_cur."from"()
-    inc $P10
-    set rx1297_pos, $P10
-    ge rx1297_pos, rx1297_eos, rxscan1300_done
-  rxscan1300_scan:
-    set_addr $I10, rxscan1300_loop
-    rx1297_cur."!mark_push"(0, rx1297_pos, $I10)
-  rxscan1300_done:
+    ne $I10, -1, rxscan1309_done
+    goto rxscan1309_scan
+  rxscan1309_loop:
+    ($P10) = rx1305_cur."from"()
+    inc $P10
+    set rx1305_pos, $P10
+    ge rx1305_pos, rx1305_eos, rxscan1309_done
+  rxscan1309_scan:
+    set_addr $I10, rxscan1309_loop
+    rx1305_cur."!mark_push"(0, rx1305_pos, $I10)
+  rxscan1309_done:
+.annotate 'line', 557
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1301_fail
-    rx1297_cur."!mark_push"(0, rx1297_pos, $I10)
-  # rx literal  "return"
-    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
-    add rx1297_pos, 6
-    set_addr $I10, rxcap_1301_fail
-    ($I12, $I11) = rx1297_cur."!mark_peek"($I10)
-    rx1297_cur."!cursor_pos"($I11)
-    ($P10) = rx1297_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1297_pos, "")
-    rx1297_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1310_fail
+    rx1305_cur."!mark_push"(0, rx1305_pos, $I10)
+  # rx literal  ":="
+    add $I11, rx1305_pos, 2
+    gt $I11, rx1305_eos, rx1305_fail
+    sub $I11, rx1305_pos, rx1305_off
+    substr $S10, rx1305_tgt, $I11, 2
+    ne $S10, ":=", rx1305_fail
+    add rx1305_pos, 2
+    set_addr $I10, rxcap_1310_fail
+    ($I12, $I11) = rx1305_cur."!mark_peek"($I10)
+    rx1305_cur."!cursor_pos"($I11)
+    ($P10) = rx1305_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1305_pos, "")
+    rx1305_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1301_done
-  rxcap_1301_fail:
-    goto rx1297_fail
-  rxcap_1301_done:
-  # rx charclass s
-    ge rx1297_pos, rx1297_eos, rx1297_fail
-    sub $I10, rx1297_pos, rx1297_off
-    is_cclass $I11, 32, rx1297_tgt, $I10
-    unless $I11, rx1297_fail
-    inc rx1297_pos
+    goto rxcap_1310_done
+  rxcap_1310_fail:
+    goto rx1305_fail
+  rxcap_1310_done:
   # rx subrule "O" subtype=capture negate=
-    rx1297_cur."!cursor_pos"(rx1297_pos)
-    $P10 = rx1297_cur."O"("%list_prefix, :pasttype<return>")
-    unless $P10, rx1297_fail
-    rx1297_cur."!mark_push"(0, -1, 0, $P10)
+    rx1305_cur."!cursor_pos"(rx1305_pos)
+    $P10 = rx1305_cur."O"("%assignment, :pasttype<bind>")
+    unless $P10, rx1305_fail
+    rx1305_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1297_pos = $P10."pos"()
+    rx1305_pos = $P10."pos"()
   # rx pass
-    rx1297_cur."!cursor_pass"(rx1297_pos, "prefix:sym<return>")
-    if_null rx1297_debug, debug_1001
-    rx1297_cur."!cursor_debug"("PASS", "prefix:sym<return>", " at pos=", rx1297_pos)
-  debug_1001:
-    .return (rx1297_cur)
-  rx1297_restart:
-    if_null rx1297_debug, debug_1002
-    rx1297_cur."!cursor_debug"("NEXT", "prefix:sym<return>")
-  debug_1002:
-  rx1297_fail:
-    (rx1297_rep, rx1297_pos, $I10, $P10) = rx1297_cur."!mark_fail"(0)
-    lt rx1297_pos, -1, rx1297_done
-    eq rx1297_pos, -1, rx1297_fail
-    jump $I10
-  rx1297_done:
-    rx1297_cur."!cursor_fail"()
-    if_null rx1297_debug, debug_1003
-    rx1297_cur."!cursor_debug"("FAIL", "prefix:sym<return>")
+    rx1305_cur."!cursor_pass"(rx1305_pos, "infix:sym<:=>")
+    if_null rx1305_debug, debug_1003
+    rx1305_cur."!cursor_debug"("PASS", "infix:sym<:=>", " at pos=", rx1305_pos)
   debug_1003:
-    .return (rx1297_cur)
+    .return (rx1305_cur)
+  rx1305_restart:
+.annotate 'line', 454
+    if_null rx1305_debug, debug_1004
+    rx1305_cur."!cursor_debug"("NEXT", "infix:sym<:=>")
+  debug_1004:
+  rx1305_fail:
+    (rx1305_rep, rx1305_pos, $I10, $P10) = rx1305_cur."!mark_fail"(0)
+    lt rx1305_pos, -1, rx1305_done
+    eq rx1305_pos, -1, rx1305_fail
+    jump $I10
+  rx1305_done:
+    rx1305_cur."!cursor_fail"()
+    if_null rx1305_debug, debug_1005
+    rx1305_cur."!cursor_debug"("FAIL", "infix:sym<:=>")
+  debug_1005:
+    .return (rx1305_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<return>"  :subid("339_1283975947.19641") :method
-.annotate 'line', 0
-    new $P1299, "ResizablePMCArray"
-    push $P1299, "return"
-    .return ($P1299)
+.sub "!PREFIX__infix:sym<:=>"  :subid("339_1284728478.15265") :method
+.annotate 'line', 454
+    $P1307 = self."!PREFIX__!subrule"("O", ":=")
+    new $P1308, "ResizablePMCArray"
+    push $P1308, $P1307
+    .return ($P1308)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<make>"  :subid("340_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1303_tgt
-    .local int rx1303_pos
-    .local int rx1303_off
-    .local int rx1303_eos
-    .local int rx1303_rep
-    .local pmc rx1303_cur
-    .local pmc rx1303_debug
-    (rx1303_cur, rx1303_pos, rx1303_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1303_debug, rx1303_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1303_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1303_eos, rx1303_tgt
-    gt rx1303_pos, rx1303_eos, rx1303_done
-    set rx1303_off, 0
-    lt rx1303_pos, 2, rx1303_start
-    sub rx1303_off, rx1303_pos, 1
-    substr rx1303_tgt, rx1303_tgt, rx1303_off
-  rx1303_start:
-    eq $I10, 1, rx1303_restart
-    if_null rx1303_debug, debug_1004
-    rx1303_cur."!cursor_debug"("START", "prefix:sym<make>")
-  debug_1004:
+.sub "infix:sym<::=>"  :subid("340_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1312_tgt
+    .local int rx1312_pos
+    .local int rx1312_off
+    .local int rx1312_eos
+    .local int rx1312_rep
+    .local pmc rx1312_cur
+    .local pmc rx1312_debug
+    (rx1312_cur, rx1312_pos, rx1312_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1312_debug, rx1312_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1312_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1312_eos, rx1312_tgt
+    gt rx1312_pos, rx1312_eos, rx1312_done
+    set rx1312_off, 0
+    lt rx1312_pos, 2, rx1312_start
+    sub rx1312_off, rx1312_pos, 1
+    substr rx1312_tgt, rx1312_tgt, rx1312_off
+  rx1312_start:
+    eq $I10, 1, rx1312_restart
+    if_null rx1312_debug, debug_1006
+    rx1312_cur."!cursor_debug"("START", "infix:sym<::=>")
+  debug_1006:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1306_done
-    goto rxscan1306_scan
-  rxscan1306_loop:
-    ($P10) = rx1303_cur."from"()
-    inc $P10
-    set rx1303_pos, $P10
-    ge rx1303_pos, rx1303_eos, rxscan1306_done
-  rxscan1306_scan:
-    set_addr $I10, rxscan1306_loop
-    rx1303_cur."!mark_push"(0, rx1303_pos, $I10)
-  rxscan1306_done:
+    ne $I10, -1, rxscan1316_done
+    goto rxscan1316_scan
+  rxscan1316_loop:
+    ($P10) = rx1312_cur."from"()
+    inc $P10
+    set rx1312_pos, $P10
+    ge rx1312_pos, rx1312_eos, rxscan1316_done
+  rxscan1316_scan:
+    set_addr $I10, rxscan1316_loop
+    rx1312_cur."!mark_push"(0, rx1312_pos, $I10)
+  rxscan1316_done:
+.annotate 'line', 558
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1307_fail
-    rx1303_cur."!mark_push"(0, rx1303_pos, $I10)
-  # rx literal  "make"
-    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
-    add rx1303_pos, 4
-    set_addr $I10, rxcap_1307_fail
-    ($I12, $I11) = rx1303_cur."!mark_peek"($I10)
-    rx1303_cur."!cursor_pos"($I11)
-    ($P10) = rx1303_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1303_pos, "")
-    rx1303_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1317_fail
+    rx1312_cur."!mark_push"(0, rx1312_pos, $I10)
+  # rx literal  "::="
+    add $I11, rx1312_pos, 3
+    gt $I11, rx1312_eos, rx1312_fail
+    sub $I11, rx1312_pos, rx1312_off
+    substr $S10, rx1312_tgt, $I11, 3
+    ne $S10, "::=", rx1312_fail
+    add rx1312_pos, 3
+    set_addr $I10, rxcap_1317_fail
+    ($I12, $I11) = rx1312_cur."!mark_peek"($I10)
+    rx1312_cur."!cursor_pos"($I11)
+    ($P10) = rx1312_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1312_pos, "")
+    rx1312_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1307_done
-  rxcap_1307_fail:
-    goto rx1303_fail
-  rxcap_1307_done:
-  # rx charclass s
-    ge rx1303_pos, rx1303_eos, rx1303_fail
-    sub $I10, rx1303_pos, rx1303_off
-    is_cclass $I11, 32, rx1303_tgt, $I10
-    unless $I11, rx1303_fail
-    inc rx1303_pos
+    goto rxcap_1317_done
+  rxcap_1317_fail:
+    goto rx1312_fail
+  rxcap_1317_done:
   # rx subrule "O" subtype=capture negate=
-    rx1303_cur."!cursor_pos"(rx1303_pos)
-    $P10 = rx1303_cur."O"("%list_prefix")
-    unless $P10, rx1303_fail
-    rx1303_cur."!mark_push"(0, -1, 0, $P10)
+    rx1312_cur."!cursor_pos"(rx1312_pos)
+    $P10 = rx1312_cur."O"("%assignment, :pasttype<bind>")
+    unless $P10, rx1312_fail
+    rx1312_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1303_pos = $P10."pos"()
+    rx1312_pos = $P10."pos"()
   # rx pass
-    rx1303_cur."!cursor_pass"(rx1303_pos, "prefix:sym<make>")
-    if_null rx1303_debug, debug_1005
-    rx1303_cur."!cursor_debug"("PASS", "prefix:sym<make>", " at pos=", rx1303_pos)
-  debug_1005:
-    .return (rx1303_cur)
-  rx1303_restart:
-    if_null rx1303_debug, debug_1006
-    rx1303_cur."!cursor_debug"("NEXT", "prefix:sym<make>")
-  debug_1006:
-  rx1303_fail:
-    (rx1303_rep, rx1303_pos, $I10, $P10) = rx1303_cur."!mark_fail"(0)
-    lt rx1303_pos, -1, rx1303_done
-    eq rx1303_pos, -1, rx1303_fail
-    jump $I10
-  rx1303_done:
-    rx1303_cur."!cursor_fail"()
-    if_null rx1303_debug, debug_1007
-    rx1303_cur."!cursor_debug"("FAIL", "prefix:sym<make>")
+    rx1312_cur."!cursor_pass"(rx1312_pos, "infix:sym<::=>")
+    if_null rx1312_debug, debug_1007
+    rx1312_cur."!cursor_debug"("PASS", "infix:sym<::=>", " at pos=", rx1312_pos)
   debug_1007:
-    .return (rx1303_cur)
+    .return (rx1312_cur)
+  rx1312_restart:
+.annotate 'line', 454
+    if_null rx1312_debug, debug_1008
+    rx1312_cur."!cursor_debug"("NEXT", "infix:sym<::=>")
+  debug_1008:
+  rx1312_fail:
+    (rx1312_rep, rx1312_pos, $I10, $P10) = rx1312_cur."!mark_fail"(0)
+    lt rx1312_pos, -1, rx1312_done
+    eq rx1312_pos, -1, rx1312_fail
+    jump $I10
+  rx1312_done:
+    rx1312_cur."!cursor_fail"()
+    if_null rx1312_debug, debug_1009
+    rx1312_cur."!cursor_debug"("FAIL", "infix:sym<::=>")
+  debug_1009:
+    .return (rx1312_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<make>"  :subid("341_1283975947.19641") :method
-.annotate 'line', 0
-    new $P1305, "ResizablePMCArray"
-    push $P1305, "make"
-    .return ($P1305)
+.sub "!PREFIX__infix:sym<::=>"  :subid("341_1284728478.15265") :method
+.annotate 'line', 454
+    $P1314 = self."!PREFIX__!subrule"("O", "::=")
+    new $P1315, "ResizablePMCArray"
+    push $P1315, $P1314
+    .return ($P1315)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<last>"  :subid("342_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1309_tgt
-    .local int rx1309_pos
-    .local int rx1309_off
-    .local int rx1309_eos
-    .local int rx1309_rep
-    .local pmc rx1309_cur
-    .local pmc rx1309_debug
-    (rx1309_cur, rx1309_pos, rx1309_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1309_debug, rx1309_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1309_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1309_eos, rx1309_tgt
-    gt rx1309_pos, rx1309_eos, rx1309_done
-    set rx1309_off, 0
-    lt rx1309_pos, 2, rx1309_start
-    sub rx1309_off, rx1309_pos, 1
-    substr rx1309_tgt, rx1309_tgt, rx1309_off
-  rx1309_start:
-    eq $I10, 1, rx1309_restart
-    if_null rx1309_debug, debug_1008
-    rx1309_cur."!cursor_debug"("START", "term:sym<last>")
-  debug_1008:
+.sub "infix:sym<,>"  :subid("342_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1319_tgt
+    .local int rx1319_pos
+    .local int rx1319_off
+    .local int rx1319_eos
+    .local int rx1319_rep
+    .local pmc rx1319_cur
+    .local pmc rx1319_debug
+    (rx1319_cur, rx1319_pos, rx1319_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1319_debug, rx1319_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1319_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1319_eos, rx1319_tgt
+    gt rx1319_pos, rx1319_eos, rx1319_done
+    set rx1319_off, 0
+    lt rx1319_pos, 2, rx1319_start
+    sub rx1319_off, rx1319_pos, 1
+    substr rx1319_tgt, rx1319_tgt, rx1319_off
+  rx1319_start:
+    eq $I10, 1, rx1319_restart
+    if_null rx1319_debug, debug_1010
+    rx1319_cur."!cursor_debug"("START", "infix:sym<,>")
+  debug_1010:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1312_done
-    goto rxscan1312_scan
-  rxscan1312_loop:
-    ($P10) = rx1309_cur."from"()
-    inc $P10
-    set rx1309_pos, $P10
-    ge rx1309_pos, rx1309_eos, rxscan1312_done
-  rxscan1312_scan:
-    set_addr $I10, rxscan1312_loop
-    rx1309_cur."!mark_push"(0, rx1309_pos, $I10)
-  rxscan1312_done:
+    ne $I10, -1, rxscan1323_done
+    goto rxscan1323_scan
+  rxscan1323_loop:
+    ($P10) = rx1319_cur."from"()
+    inc $P10
+    set rx1319_pos, $P10
+    ge rx1319_pos, rx1319_eos, rxscan1323_done
+  rxscan1323_scan:
+    set_addr $I10, rxscan1323_loop
+    rx1319_cur."!mark_push"(0, rx1319_pos, $I10)
+  rxscan1323_done:
+.annotate 'line', 560
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1313_fail
-    rx1309_cur."!mark_push"(0, rx1309_pos, $I10)
-  # rx literal  "last"
-    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
-    add rx1309_pos, 4
-    set_addr $I10, rxcap_1313_fail
-    ($I12, $I11) = rx1309_cur."!mark_peek"($I10)
-    rx1309_cur."!cursor_pos"($I11)
-    ($P10) = rx1309_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1309_pos, "")
-    rx1309_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1324_fail
+    rx1319_cur."!mark_push"(0, rx1319_pos, $I10)
+  # rx literal  ","
+    add $I11, rx1319_pos, 1
+    gt $I11, rx1319_eos, rx1319_fail
+    sub $I11, rx1319_pos, rx1319_off
+    ord $I11, rx1319_tgt, $I11
+    ne $I11, 44, rx1319_fail
+    add rx1319_pos, 1
+    set_addr $I10, rxcap_1324_fail
+    ($I12, $I11) = rx1319_cur."!mark_peek"($I10)
+    rx1319_cur."!cursor_pos"($I11)
+    ($P10) = rx1319_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1319_pos, "")
+    rx1319_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1313_done
-  rxcap_1313_fail:
-    goto rx1309_fail
-  rxcap_1313_done:
-  # rx pass
-    rx1309_cur."!cursor_pass"(rx1309_pos, "term:sym<last>")
-    if_null rx1309_debug, debug_1009
-    rx1309_cur."!cursor_debug"("PASS", "term:sym<last>", " at pos=", rx1309_pos)
-  debug_1009:
-    .return (rx1309_cur)
-  rx1309_restart:
-    if_null rx1309_debug, debug_1010
-    rx1309_cur."!cursor_debug"("NEXT", "term:sym<last>")
-  debug_1010:
-  rx1309_fail:
-    (rx1309_rep, rx1309_pos, $I10, $P10) = rx1309_cur."!mark_fail"(0)
-    lt rx1309_pos, -1, rx1309_done
-    eq rx1309_pos, -1, rx1309_fail
-    jump $I10
-  rx1309_done:
-    rx1309_cur."!cursor_fail"()
-    if_null rx1309_debug, debug_1011
-    rx1309_cur."!cursor_debug"("FAIL", "term:sym<last>")
+    goto rxcap_1324_done
+  rxcap_1324_fail:
+    goto rx1319_fail
+  rxcap_1324_done:
+  # rx subrule "O" subtype=capture negate=
+    rx1319_cur."!cursor_pos"(rx1319_pos)
+    $P10 = rx1319_cur."O"("%comma, :pasttype<list>")
+    unless $P10, rx1319_fail
+    rx1319_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("O")
+    rx1319_pos = $P10."pos"()
+  # rx pass
+    rx1319_cur."!cursor_pass"(rx1319_pos, "infix:sym<,>")
+    if_null rx1319_debug, debug_1011
+    rx1319_cur."!cursor_debug"("PASS", "infix:sym<,>", " at pos=", rx1319_pos)
   debug_1011:
-    .return (rx1309_cur)
+    .return (rx1319_cur)
+  rx1319_restart:
+.annotate 'line', 454
+    if_null rx1319_debug, debug_1012
+    rx1319_cur."!cursor_debug"("NEXT", "infix:sym<,>")
+  debug_1012:
+  rx1319_fail:
+    (rx1319_rep, rx1319_pos, $I10, $P10) = rx1319_cur."!mark_fail"(0)
+    lt rx1319_pos, -1, rx1319_done
+    eq rx1319_pos, -1, rx1319_fail
+    jump $I10
+  rx1319_done:
+    rx1319_cur."!cursor_fail"()
+    if_null rx1319_debug, debug_1013
+    rx1319_cur."!cursor_debug"("FAIL", "infix:sym<,>")
+  debug_1013:
+    .return (rx1319_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<last>"  :subid("343_1283975947.19641") :method
-.annotate 'line', 0
-    new $P1311, "ResizablePMCArray"
-    push $P1311, "last"
-    .return ($P1311)
+.sub "!PREFIX__infix:sym<,>"  :subid("343_1284728478.15265") :method
+.annotate 'line', 454
+    $P1321 = self."!PREFIX__!subrule"("O", ",")
+    new $P1322, "ResizablePMCArray"
+    push $P1322, $P1321
+    .return ($P1322)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<next>"  :subid("344_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1315_tgt
-    .local int rx1315_pos
-    .local int rx1315_off
-    .local int rx1315_eos
-    .local int rx1315_rep
-    .local pmc rx1315_cur
-    .local pmc rx1315_debug
-    (rx1315_cur, rx1315_pos, rx1315_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1315_debug, rx1315_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1315_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1315_eos, rx1315_tgt
-    gt rx1315_pos, rx1315_eos, rx1315_done
-    set rx1315_off, 0
-    lt rx1315_pos, 2, rx1315_start
-    sub rx1315_off, rx1315_pos, 1
-    substr rx1315_tgt, rx1315_tgt, rx1315_off
-  rx1315_start:
-    eq $I10, 1, rx1315_restart
-    if_null rx1315_debug, debug_1012
-    rx1315_cur."!cursor_debug"("START", "term:sym<next>")
-  debug_1012:
+.sub "prefix:sym<return>"  :subid("344_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1326_tgt
+    .local int rx1326_pos
+    .local int rx1326_off
+    .local int rx1326_eos
+    .local int rx1326_rep
+    .local pmc rx1326_cur
+    .local pmc rx1326_debug
+    (rx1326_cur, rx1326_pos, rx1326_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1326_debug, rx1326_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1326_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1326_eos, rx1326_tgt
+    gt rx1326_pos, rx1326_eos, rx1326_done
+    set rx1326_off, 0
+    lt rx1326_pos, 2, rx1326_start
+    sub rx1326_off, rx1326_pos, 1
+    substr rx1326_tgt, rx1326_tgt, rx1326_off
+  rx1326_start:
+    eq $I10, 1, rx1326_restart
+    if_null rx1326_debug, debug_1014
+    rx1326_cur."!cursor_debug"("START", "prefix:sym<return>")
+  debug_1014:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1318_done
-    goto rxscan1318_scan
-  rxscan1318_loop:
-    ($P10) = rx1315_cur."from"()
-    inc $P10
-    set rx1315_pos, $P10
-    ge rx1315_pos, rx1315_eos, rxscan1318_done
-  rxscan1318_scan:
-    set_addr $I10, rxscan1318_loop
-    rx1315_cur."!mark_push"(0, rx1315_pos, $I10)
-  rxscan1318_done:
+    ne $I10, -1, rxscan1329_done
+    goto rxscan1329_scan
+  rxscan1329_loop:
+    ($P10) = rx1326_cur."from"()
+    inc $P10
+    set rx1326_pos, $P10
+    ge rx1326_pos, rx1326_eos, rxscan1329_done
+  rxscan1329_scan:
+    set_addr $I10, rxscan1329_loop
+    rx1326_cur."!mark_push"(0, rx1326_pos, $I10)
+  rxscan1329_done:
+.annotate 'line', 562
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1319_fail
-    rx1315_cur."!mark_push"(0, rx1315_pos, $I10)
-  # rx literal  "next"
-    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
-    add rx1315_pos, 4
-    set_addr $I10, rxcap_1319_fail
-    ($I12, $I11) = rx1315_cur."!mark_peek"($I10)
-    rx1315_cur."!cursor_pos"($I11)
-    ($P10) = rx1315_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1315_pos, "")
-    rx1315_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1330_fail
+    rx1326_cur."!mark_push"(0, rx1326_pos, $I10)
+  # rx literal  "return"
+    add $I11, rx1326_pos, 6
+    gt $I11, rx1326_eos, rx1326_fail
+    sub $I11, rx1326_pos, rx1326_off
+    substr $S10, rx1326_tgt, $I11, 6
+    ne $S10, "return", rx1326_fail
+    add rx1326_pos, 6
+    set_addr $I10, rxcap_1330_fail
+    ($I12, $I11) = rx1326_cur."!mark_peek"($I10)
+    rx1326_cur."!cursor_pos"($I11)
+    ($P10) = rx1326_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1326_pos, "")
+    rx1326_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1319_done
-  rxcap_1319_fail:
-    goto rx1315_fail
-  rxcap_1319_done:
-  # rx pass
-    rx1315_cur."!cursor_pass"(rx1315_pos, "term:sym<next>")
-    if_null rx1315_debug, debug_1013
-    rx1315_cur."!cursor_debug"("PASS", "term:sym<next>", " at pos=", rx1315_pos)
-  debug_1013:
-    .return (rx1315_cur)
-  rx1315_restart:
-    if_null rx1315_debug, debug_1014
-    rx1315_cur."!cursor_debug"("NEXT", "term:sym<next>")
-  debug_1014:
-  rx1315_fail:
-    (rx1315_rep, rx1315_pos, $I10, $P10) = rx1315_cur."!mark_fail"(0)
-    lt rx1315_pos, -1, rx1315_done
-    eq rx1315_pos, -1, rx1315_fail
-    jump $I10
-  rx1315_done:
-    rx1315_cur."!cursor_fail"()
-    if_null rx1315_debug, debug_1015
-    rx1315_cur."!cursor_debug"("FAIL", "term:sym<next>")
+    goto rxcap_1330_done
+  rxcap_1330_fail:
+    goto rx1326_fail
+  rxcap_1330_done:
+  # rx charclass s
+    ge rx1326_pos, rx1326_eos, rx1326_fail
+    sub $I10, rx1326_pos, rx1326_off
+    is_cclass $I11, 32, rx1326_tgt, $I10
+    unless $I11, rx1326_fail
+    inc rx1326_pos
+  # rx subrule "O" subtype=capture negate=
+    rx1326_cur."!cursor_pos"(rx1326_pos)
+    $P10 = rx1326_cur."O"("%list_prefix, :pasttype<return>")
+    unless $P10, rx1326_fail
+    rx1326_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("O")
+    rx1326_pos = $P10."pos"()
+  # rx pass
+    rx1326_cur."!cursor_pass"(rx1326_pos, "prefix:sym<return>")
+    if_null rx1326_debug, debug_1015
+    rx1326_cur."!cursor_debug"("PASS", "prefix:sym<return>", " at pos=", rx1326_pos)
   debug_1015:
-    .return (rx1315_cur)
+    .return (rx1326_cur)
+  rx1326_restart:
+.annotate 'line', 454
+    if_null rx1326_debug, debug_1016
+    rx1326_cur."!cursor_debug"("NEXT", "prefix:sym<return>")
+  debug_1016:
+  rx1326_fail:
+    (rx1326_rep, rx1326_pos, $I10, $P10) = rx1326_cur."!mark_fail"(0)
+    lt rx1326_pos, -1, rx1326_done
+    eq rx1326_pos, -1, rx1326_fail
+    jump $I10
+  rx1326_done:
+    rx1326_cur."!cursor_fail"()
+    if_null rx1326_debug, debug_1017
+    rx1326_cur."!cursor_debug"("FAIL", "prefix:sym<return>")
+  debug_1017:
+    .return (rx1326_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<next>"  :subid("345_1283975947.19641") :method
-.annotate 'line', 0
-    new $P1317, "ResizablePMCArray"
-    push $P1317, "next"
-    .return ($P1317)
+.sub "!PREFIX__prefix:sym<return>"  :subid("345_1284728478.15265") :method
+.annotate 'line', 454
+    new $P1328, "ResizablePMCArray"
+    push $P1328, "return"
+    .return ($P1328)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<redo>"  :subid("346_1283975947.19641") :method :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1321_tgt
-    .local int rx1321_pos
-    .local int rx1321_off
-    .local int rx1321_eos
-    .local int rx1321_rep
-    .local pmc rx1321_cur
-    .local pmc rx1321_debug
-    (rx1321_cur, rx1321_pos, rx1321_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1321_debug, rx1321_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1321_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1321_eos, rx1321_tgt
-    gt rx1321_pos, rx1321_eos, rx1321_done
-    set rx1321_off, 0
-    lt rx1321_pos, 2, rx1321_start
-    sub rx1321_off, rx1321_pos, 1
-    substr rx1321_tgt, rx1321_tgt, rx1321_off
-  rx1321_start:
-    eq $I10, 1, rx1321_restart
-    if_null rx1321_debug, debug_1016
-    rx1321_cur."!cursor_debug"("START", "term:sym<redo>")
-  debug_1016:
+.sub "prefix:sym<make>"  :subid("346_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1332_tgt
+    .local int rx1332_pos
+    .local int rx1332_off
+    .local int rx1332_eos
+    .local int rx1332_rep
+    .local pmc rx1332_cur
+    .local pmc rx1332_debug
+    (rx1332_cur, rx1332_pos, rx1332_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1332_debug, rx1332_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1332_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1332_eos, rx1332_tgt
+    gt rx1332_pos, rx1332_eos, rx1332_done
+    set rx1332_off, 0
+    lt rx1332_pos, 2, rx1332_start
+    sub rx1332_off, rx1332_pos, 1
+    substr rx1332_tgt, rx1332_tgt, rx1332_off
+  rx1332_start:
+    eq $I10, 1, rx1332_restart
+    if_null rx1332_debug, debug_1018
+    rx1332_cur."!cursor_debug"("START", "prefix:sym<make>")
+  debug_1018:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1324_done
-    goto rxscan1324_scan
-  rxscan1324_loop:
-    ($P10) = rx1321_cur."from"()
-    inc $P10
-    set rx1321_pos, $P10
-    ge rx1321_pos, rx1321_eos, rxscan1324_done
-  rxscan1324_scan:
-    set_addr $I10, rxscan1324_loop
-    rx1321_cur."!mark_push"(0, rx1321_pos, $I10)
-  rxscan1324_done:
+    ne $I10, -1, rxscan1335_done
+    goto rxscan1335_scan
+  rxscan1335_loop:
+    ($P10) = rx1332_cur."from"()
+    inc $P10
+    set rx1332_pos, $P10
+    ge rx1332_pos, rx1332_eos, rxscan1335_done
+  rxscan1335_scan:
+    set_addr $I10, rxscan1335_loop
+    rx1332_cur."!mark_push"(0, rx1332_pos, $I10)
+  rxscan1335_done:
+.annotate 'line', 563
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1325_fail
-    rx1321_cur."!mark_push"(0, rx1321_pos, $I10)
-  # rx literal  "redo"
-    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
-    add rx1321_pos, 4
-    set_addr $I10, rxcap_1325_fail
-    ($I12, $I11) = rx1321_cur."!mark_peek"($I10)
-    rx1321_cur."!cursor_pos"($I11)
-    ($P10) = rx1321_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1321_pos, "")
-    rx1321_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_1336_fail
+    rx1332_cur."!mark_push"(0, rx1332_pos, $I10)
+  # rx literal  "make"
+    add $I11, rx1332_pos, 4
+    gt $I11, rx1332_eos, rx1332_fail
+    sub $I11, rx1332_pos, rx1332_off
+    substr $S10, rx1332_tgt, $I11, 4
+    ne $S10, "make", rx1332_fail
+    add rx1332_pos, 4
+    set_addr $I10, rxcap_1336_fail
+    ($I12, $I11) = rx1332_cur."!mark_peek"($I10)
+    rx1332_cur."!cursor_pos"($I11)
+    ($P10) = rx1332_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1332_pos, "")
+    rx1332_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1325_done
-  rxcap_1325_fail:
-    goto rx1321_fail
-  rxcap_1325_done:
-  # rx pass
-    rx1321_cur."!cursor_pass"(rx1321_pos, "term:sym<redo>")
-    if_null rx1321_debug, debug_1017
-    rx1321_cur."!cursor_debug"("PASS", "term:sym<redo>", " at pos=", rx1321_pos)
-  debug_1017:
-    .return (rx1321_cur)
-  rx1321_restart:
-    if_null rx1321_debug, debug_1018
-    rx1321_cur."!cursor_debug"("NEXT", "term:sym<redo>")
-  debug_1018:
-  rx1321_fail:
-    (rx1321_rep, rx1321_pos, $I10, $P10) = rx1321_cur."!mark_fail"(0)
-    lt rx1321_pos, -1, rx1321_done
-    eq rx1321_pos, -1, rx1321_fail
-    jump $I10
-  rx1321_done:
-    rx1321_cur."!cursor_fail"()
-    if_null rx1321_debug, debug_1019
-    rx1321_cur."!cursor_debug"("FAIL", "term:sym<redo>")
+    goto rxcap_1336_done
+  rxcap_1336_fail:
+    goto rx1332_fail
+  rxcap_1336_done:
+  # rx charclass s
+    ge rx1332_pos, rx1332_eos, rx1332_fail
+    sub $I10, rx1332_pos, rx1332_off
+    is_cclass $I11, 32, rx1332_tgt, $I10
+    unless $I11, rx1332_fail
+    inc rx1332_pos
+  # rx subrule "O" subtype=capture negate=
+    rx1332_cur."!cursor_pos"(rx1332_pos)
+    $P10 = rx1332_cur."O"("%list_prefix")
+    unless $P10, rx1332_fail
+    rx1332_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("O")
+    rx1332_pos = $P10."pos"()
+  # rx pass
+    rx1332_cur."!cursor_pass"(rx1332_pos, "prefix:sym<make>")
+    if_null rx1332_debug, debug_1019
+    rx1332_cur."!cursor_debug"("PASS", "prefix:sym<make>", " at pos=", rx1332_pos)
   debug_1019:
-    .return (rx1321_cur)
+    .return (rx1332_cur)
+  rx1332_restart:
+.annotate 'line', 454
+    if_null rx1332_debug, debug_1020
+    rx1332_cur."!cursor_debug"("NEXT", "prefix:sym<make>")
+  debug_1020:
+  rx1332_fail:
+    (rx1332_rep, rx1332_pos, $I10, $P10) = rx1332_cur."!mark_fail"(0)
+    lt rx1332_pos, -1, rx1332_done
+    eq rx1332_pos, -1, rx1332_fail
+    jump $I10
+  rx1332_done:
+    rx1332_cur."!cursor_fail"()
+    if_null rx1332_debug, debug_1021
+    rx1332_cur."!cursor_debug"("FAIL", "prefix:sym<make>")
+  debug_1021:
+    .return (rx1332_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<redo>"  :subid("347_1283975947.19641") :method
-.annotate 'line', 0
-    new $P1323, "ResizablePMCArray"
-    push $P1323, "redo"
-    .return ($P1323)
+.sub "!PREFIX__prefix:sym<make>"  :subid("347_1284728478.15265") :method
+.annotate 'line', 454
+    new $P1334, "ResizablePMCArray"
+    push $P1334, "make"
+    .return ($P1334)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "term:sym<last>"  :subid("348_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1338_tgt
+    .local int rx1338_pos
+    .local int rx1338_off
+    .local int rx1338_eos
+    .local int rx1338_rep
+    .local pmc rx1338_cur
+    .local pmc rx1338_debug
+    (rx1338_cur, rx1338_pos, rx1338_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1338_debug, rx1338_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1338_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1338_eos, rx1338_tgt
+    gt rx1338_pos, rx1338_eos, rx1338_done
+    set rx1338_off, 0
+    lt rx1338_pos, 2, rx1338_start
+    sub rx1338_off, rx1338_pos, 1
+    substr rx1338_tgt, rx1338_tgt, rx1338_off
+  rx1338_start:
+    eq $I10, 1, rx1338_restart
+    if_null rx1338_debug, debug_1022
+    rx1338_cur."!cursor_debug"("START", "term:sym<last>")
+  debug_1022:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1341_done
+    goto rxscan1341_scan
+  rxscan1341_loop:
+    ($P10) = rx1338_cur."from"()
+    inc $P10
+    set rx1338_pos, $P10
+    ge rx1338_pos, rx1338_eos, rxscan1341_done
+  rxscan1341_scan:
+    set_addr $I10, rxscan1341_loop
+    rx1338_cur."!mark_push"(0, rx1338_pos, $I10)
+  rxscan1341_done:
+.annotate 'line', 564
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_1342_fail
+    rx1338_cur."!mark_push"(0, rx1338_pos, $I10)
+  # rx literal  "last"
+    add $I11, rx1338_pos, 4
+    gt $I11, rx1338_eos, rx1338_fail
+    sub $I11, rx1338_pos, rx1338_off
+    substr $S10, rx1338_tgt, $I11, 4
+    ne $S10, "last", rx1338_fail
+    add rx1338_pos, 4
+    set_addr $I10, rxcap_1342_fail
+    ($I12, $I11) = rx1338_cur."!mark_peek"($I10)
+    rx1338_cur."!cursor_pos"($I11)
+    ($P10) = rx1338_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1338_pos, "")
+    rx1338_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_1342_done
+  rxcap_1342_fail:
+    goto rx1338_fail
+  rxcap_1342_done:
+  # rx pass
+    rx1338_cur."!cursor_pass"(rx1338_pos, "term:sym<last>")
+    if_null rx1338_debug, debug_1023
+    rx1338_cur."!cursor_debug"("PASS", "term:sym<last>", " at pos=", rx1338_pos)
+  debug_1023:
+    .return (rx1338_cur)
+  rx1338_restart:
+.annotate 'line', 454
+    if_null rx1338_debug, debug_1024
+    rx1338_cur."!cursor_debug"("NEXT", "term:sym<last>")
+  debug_1024:
+  rx1338_fail:
+    (rx1338_rep, rx1338_pos, $I10, $P10) = rx1338_cur."!mark_fail"(0)
+    lt rx1338_pos, -1, rx1338_done
+    eq rx1338_pos, -1, rx1338_fail
+    jump $I10
+  rx1338_done:
+    rx1338_cur."!cursor_fail"()
+    if_null rx1338_debug, debug_1025
+    rx1338_cur."!cursor_debug"("FAIL", "term:sym<last>")
+  debug_1025:
+    .return (rx1338_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__term:sym<last>"  :subid("349_1284728478.15265") :method
+.annotate 'line', 454
+    new $P1340, "ResizablePMCArray"
+    push $P1340, "last"
+    .return ($P1340)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "term:sym<next>"  :subid("350_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1344_tgt
+    .local int rx1344_pos
+    .local int rx1344_off
+    .local int rx1344_eos
+    .local int rx1344_rep
+    .local pmc rx1344_cur
+    .local pmc rx1344_debug
+    (rx1344_cur, rx1344_pos, rx1344_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1344_debug, rx1344_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1344_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1344_eos, rx1344_tgt
+    gt rx1344_pos, rx1344_eos, rx1344_done
+    set rx1344_off, 0
+    lt rx1344_pos, 2, rx1344_start
+    sub rx1344_off, rx1344_pos, 1
+    substr rx1344_tgt, rx1344_tgt, rx1344_off
+  rx1344_start:
+    eq $I10, 1, rx1344_restart
+    if_null rx1344_debug, debug_1026
+    rx1344_cur."!cursor_debug"("START", "term:sym<next>")
+  debug_1026:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1347_done
+    goto rxscan1347_scan
+  rxscan1347_loop:
+    ($P10) = rx1344_cur."from"()
+    inc $P10
+    set rx1344_pos, $P10
+    ge rx1344_pos, rx1344_eos, rxscan1347_done
+  rxscan1347_scan:
+    set_addr $I10, rxscan1347_loop
+    rx1344_cur."!mark_push"(0, rx1344_pos, $I10)
+  rxscan1347_done:
+.annotate 'line', 565
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_1348_fail
+    rx1344_cur."!mark_push"(0, rx1344_pos, $I10)
+  # rx literal  "next"
+    add $I11, rx1344_pos, 4
+    gt $I11, rx1344_eos, rx1344_fail
+    sub $I11, rx1344_pos, rx1344_off
+    substr $S10, rx1344_tgt, $I11, 4
+    ne $S10, "next", rx1344_fail
+    add rx1344_pos, 4
+    set_addr $I10, rxcap_1348_fail
+    ($I12, $I11) = rx1344_cur."!mark_peek"($I10)
+    rx1344_cur."!cursor_pos"($I11)
+    ($P10) = rx1344_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1344_pos, "")
+    rx1344_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_1348_done
+  rxcap_1348_fail:
+    goto rx1344_fail
+  rxcap_1348_done:
+  # rx pass
+    rx1344_cur."!cursor_pass"(rx1344_pos, "term:sym<next>")
+    if_null rx1344_debug, debug_1027
+    rx1344_cur."!cursor_debug"("PASS", "term:sym<next>", " at pos=", rx1344_pos)
+  debug_1027:
+    .return (rx1344_cur)
+  rx1344_restart:
+.annotate 'line', 454
+    if_null rx1344_debug, debug_1028
+    rx1344_cur."!cursor_debug"("NEXT", "term:sym<next>")
+  debug_1028:
+  rx1344_fail:
+    (rx1344_rep, rx1344_pos, $I10, $P10) = rx1344_cur."!mark_fail"(0)
+    lt rx1344_pos, -1, rx1344_done
+    eq rx1344_pos, -1, rx1344_fail
+    jump $I10
+  rx1344_done:
+    rx1344_cur."!cursor_fail"()
+    if_null rx1344_debug, debug_1029
+    rx1344_cur."!cursor_debug"("FAIL", "term:sym<next>")
+  debug_1029:
+    .return (rx1344_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__term:sym<next>"  :subid("351_1284728478.15265") :method
+.annotate 'line', 454
+    new $P1346, "ResizablePMCArray"
+    push $P1346, "next"
+    .return ($P1346)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "term:sym<redo>"  :subid("352_1284728478.15265") :method :outer("11_1284728478.15265")
+.annotate 'line', 454
+    .local string rx1350_tgt
+    .local int rx1350_pos
+    .local int rx1350_off
+    .local int rx1350_eos
+    .local int rx1350_rep
+    .local pmc rx1350_cur
+    .local pmc rx1350_debug
+    (rx1350_cur, rx1350_pos, rx1350_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1350_debug, rx1350_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1350_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1350_eos, rx1350_tgt
+    gt rx1350_pos, rx1350_eos, rx1350_done
+    set rx1350_off, 0
+    lt rx1350_pos, 2, rx1350_start
+    sub rx1350_off, rx1350_pos, 1
+    substr rx1350_tgt, rx1350_tgt, rx1350_off
+  rx1350_start:
+    eq $I10, 1, rx1350_restart
+    if_null rx1350_debug, debug_1030
+    rx1350_cur."!cursor_debug"("START", "term:sym<redo>")
+  debug_1030:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1353_done
+    goto rxscan1353_scan
+  rxscan1353_loop:
+    ($P10) = rx1350_cur."from"()
+    inc $P10
+    set rx1350_pos, $P10
+    ge rx1350_pos, rx1350_eos, rxscan1353_done
+  rxscan1353_scan:
+    set_addr $I10, rxscan1353_loop
+    rx1350_cur."!mark_push"(0, rx1350_pos, $I10)
+  rxscan1353_done:
+.annotate 'line', 566
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_1354_fail
+    rx1350_cur."!mark_push"(0, rx1350_pos, $I10)
+  # rx literal  "redo"
+    add $I11, rx1350_pos, 4
+    gt $I11, rx1350_eos, rx1350_fail
+    sub $I11, rx1350_pos, rx1350_off
+    substr $S10, rx1350_tgt, $I11, 4
+    ne $S10, "redo", rx1350_fail
+    add rx1350_pos, 4
+    set_addr $I10, rxcap_1354_fail
+    ($I12, $I11) = rx1350_cur."!mark_peek"($I10)
+    rx1350_cur."!cursor_pos"($I11)
+    ($P10) = rx1350_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1350_pos, "")
+    rx1350_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_1354_done
+  rxcap_1354_fail:
+    goto rx1350_fail
+  rxcap_1354_done:
+  # rx pass
+    rx1350_cur."!cursor_pass"(rx1350_pos, "term:sym<redo>")
+    if_null rx1350_debug, debug_1031
+    rx1350_cur."!cursor_debug"("PASS", "term:sym<redo>", " at pos=", rx1350_pos)
+  debug_1031:
+    .return (rx1350_cur)
+  rx1350_restart:
+.annotate 'line', 454
+    if_null rx1350_debug, debug_1032
+    rx1350_cur."!cursor_debug"("NEXT", "term:sym<redo>")
+  debug_1032:
+  rx1350_fail:
+    (rx1350_rep, rx1350_pos, $I10, $P10) = rx1350_cur."!mark_fail"(0)
+    lt rx1350_pos, -1, rx1350_done
+    eq rx1350_pos, -1, rx1350_fail
+    jump $I10
+  rx1350_done:
+    rx1350_cur."!cursor_fail"()
+    if_null rx1350_debug, debug_1033
+    rx1350_cur."!cursor_debug"("FAIL", "term:sym<redo>")
+  debug_1033:
+    .return (rx1350_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__term:sym<redo>"  :subid("353_1284728478.15265") :method
+.annotate 'line', 454
+    new $P1352, "ResizablePMCArray"
+    push $P1352, "redo"
+    .return ($P1352)
 .end
 
 
 .namespace ["NQP";"Grammar"]
 .include "except_types.pasm"
-.sub "smartmatch"  :subid("348_1283975947.19641") :method :outer("11_1283975947.19641")
-    .param pmc param_1329
-.annotate 'line', 0
-    new $P1328, 'ExceptionHandler'
-    set_addr $P1328, control_1327
-    $P1328."handle_types"(.CONTROL_RETURN)
-    push_eh $P1328
-    .lex "self", self
-    .lex "$/", param_1329
-    new $P1330, "Undef"
-    .lex "$t", $P1330
-    find_lex $P1331, "$/"
-    unless_null $P1331, vivify_1020
-    $P1331 = root_new ['parrot';'ResizablePMCArray']
-  vivify_1020:
-    set $P1332, $P1331[0]
-    unless_null $P1332, vivify_1021
-    new $P1332, "Undef"
-  vivify_1021:
-    store_lex "$t", $P1332
-    find_lex $P1333, "$/"
-    unless_null $P1333, vivify_1022
-    $P1333 = root_new ['parrot';'ResizablePMCArray']
-  vivify_1022:
-    set $P1334, $P1333[1]
-    unless_null $P1334, vivify_1023
-    new $P1334, "Undef"
-  vivify_1023:
-    find_lex $P1335, "$/"
-    unless_null $P1335, vivify_1024
-    $P1335 = root_new ['parrot';'ResizablePMCArray']
-    store_lex "$/", $P1335
-  vivify_1024:
-    set $P1335[0], $P1334
-    find_lex $P1336, "$t"
-    find_lex $P1337, "$/"
-    unless_null $P1337, vivify_1025
-    $P1337 = root_new ['parrot';'ResizablePMCArray']
-    store_lex "$/", $P1337
-  vivify_1025:
-    set $P1337[1], $P1336
-    .return ($P1336)
-  control_1327:
+.sub "smartmatch"  :subid("354_1284728478.15265") :method :outer("11_1284728478.15265")
+    .param pmc param_1358
+.annotate 'line', 568
+    new $P1357, 'ExceptionHandler'
+    set_addr $P1357, control_1356
+    $P1357."handle_types"(.CONTROL_RETURN)
+    push_eh $P1357
+    .lex "self", self
+    .lex "$/", param_1358
+.annotate 'line', 570
+    new $P1359, "Undef"
+    .lex "$t", $P1359
+    find_lex $P1360, "$/"
+    unless_null $P1360, vivify_1034
+    $P1360 = root_new ['parrot';'ResizablePMCArray']
+  vivify_1034:
+    set $P1361, $P1360[0]
+    unless_null $P1361, vivify_1035
+    new $P1361, "Undef"
+  vivify_1035:
+    store_lex "$t", $P1361
+    find_lex $P1362, "$/"
+    unless_null $P1362, vivify_1036
+    $P1362 = root_new ['parrot';'ResizablePMCArray']
+  vivify_1036:
+    set $P1363, $P1362[1]
+    unless_null $P1363, vivify_1037
+    new $P1363, "Undef"
+  vivify_1037:
+    find_lex $P1364, "$/"
+    unless_null $P1364, vivify_1038
+    $P1364 = root_new ['parrot';'ResizablePMCArray']
+    store_lex "$/", $P1364
+  vivify_1038:
+    set $P1364[0], $P1363
+    find_lex $P1365, "$t"
+    find_lex $P1366, "$/"
+    unless_null $P1366, vivify_1039
+    $P1366 = root_new ['parrot';'ResizablePMCArray']
+    store_lex "$/", $P1366
+  vivify_1039:
+    set $P1366[1], $P1365
+.annotate 'line', 568
+    .return ($P1365)
+  control_1356:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1338, exception, "payload"
-    .return ($P1338)
+    getattribute $P1367, exception, "payload"
+    .return ($P1367)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1339"  :subid("349_1283975947.19641") :outer("11_1283975947.19641")
-.annotate 'line', 0
-    .const 'Sub' $P1396 = "368_1283975947.19641" 
-    capture_lex $P1396
-    .const 'Sub' $P1391 = "366_1283975947.19641" 
-    capture_lex $P1391
-    .const 'Sub' $P1379 = "363_1283975947.19641" 
+.sub "_block1368"  :subid("355_1284728478.15265") :outer("11_1284728478.15265")
+.annotate 'line', 574
+    .const 'Sub' $P1425 = "374_1284728478.15265" 
+    capture_lex $P1425
+    .const 'Sub' $P1420 = "372_1284728478.15265" 
+    capture_lex $P1420
+    .const 'Sub' $P1408 = "369_1284728478.15265" 
+    capture_lex $P1408
+    .const 'Sub' $P1398 = "366_1284728478.15265" 
+    capture_lex $P1398
+    .const 'Sub' $P1393 = "364_1284728478.15265" 
+    capture_lex $P1393
+    .const 'Sub' $P1384 = "361_1284728478.15265" 
+    capture_lex $P1384
+    .const 'Sub' $P1379 = "359_1284728478.15265" 
     capture_lex $P1379
-    .const 'Sub' $P1369 = "360_1283975947.19641" 
-    capture_lex $P1369
-    .const 'Sub' $P1364 = "358_1283975947.19641" 
-    capture_lex $P1364
-    .const 'Sub' $P1355 = "355_1283975947.19641" 
-    capture_lex $P1355
-    .const 'Sub' $P1350 = "353_1283975947.19641" 
-    capture_lex $P1350
-    .const 'Sub' $P1341 = "350_1283975947.19641" 
-    capture_lex $P1341
-    .const 'Sub' $P1396 = "368_1283975947.19641" 
-    capture_lex $P1396
-    .return ($P1396)
+    .const 'Sub' $P1370 = "356_1284728478.15265" 
+    capture_lex $P1370
+    .const 'Sub' $P1425 = "374_1284728478.15265" 
+    capture_lex $P1425
+    .return ($P1425)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<:my>"  :subid("350_1283975947.19641") :method :outer("349_1283975947.19641")
-.annotate 'line', 0
-    .const 'Sub' $P1347 = "352_1283975947.19641" 
-    capture_lex $P1347
-    .local string rx1342_tgt
-    .local int rx1342_pos
-    .local int rx1342_off
-    .local int rx1342_eos
-    .local int rx1342_rep
-    .local pmc rx1342_cur
-    .local pmc rx1342_debug
-    (rx1342_cur, rx1342_pos, rx1342_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1342_debug, rx1342_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1342_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1342_eos, rx1342_tgt
-    gt rx1342_pos, rx1342_eos, rx1342_done
-    set rx1342_off, 0
-    lt rx1342_pos, 2, rx1342_start
-    sub rx1342_off, rx1342_pos, 1
-    substr rx1342_tgt, rx1342_tgt, rx1342_off
-  rx1342_start:
-    eq $I10, 1, rx1342_restart
-    if_null rx1342_debug, debug_1026
-    rx1342_cur."!cursor_debug"("START", "metachar:sym<:my>")
-  debug_1026:
+.sub "metachar:sym<:my>"  :subid("356_1284728478.15265") :method :outer("355_1284728478.15265")
+.annotate 'line', 574
+    .const 'Sub' $P1376 = "358_1284728478.15265" 
+    capture_lex $P1376
+    .local string rx1371_tgt
+    .local int rx1371_pos
+    .local int rx1371_off
+    .local int rx1371_eos
+    .local int rx1371_rep
+    .local pmc rx1371_cur
+    .local pmc rx1371_debug
+    (rx1371_cur, rx1371_pos, rx1371_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1371_debug, rx1371_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1371_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1371_eos, rx1371_tgt
+    gt rx1371_pos, rx1371_eos, rx1371_done
+    set rx1371_off, 0
+    lt rx1371_pos, 2, rx1371_start
+    sub rx1371_off, rx1371_pos, 1
+    substr rx1371_tgt, rx1371_tgt, rx1371_off
+  rx1371_start:
+    eq $I10, 1, rx1371_restart
+    if_null rx1371_debug, debug_1040
+    rx1371_cur."!cursor_debug"("START", "metachar:sym<:my>")
+  debug_1040:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1345_done
-    goto rxscan1345_scan
-  rxscan1345_loop:
-    ($P10) = rx1342_cur."from"()
-    inc $P10
-    set rx1342_pos, $P10
-    ge rx1342_pos, rx1342_eos, rxscan1345_done
-  rxscan1345_scan:
-    set_addr $I10, rxscan1345_loop
-    rx1342_cur."!mark_push"(0, rx1342_pos, $I10)
-  rxscan1345_done:
+    ne $I10, -1, rxscan1374_done
+    goto rxscan1374_scan
+  rxscan1374_loop:
+    ($P10) = rx1371_cur."from"()
+    inc $P10
+    set rx1371_pos, $P10
+    ge rx1371_pos, rx1371_eos, rxscan1374_done
+  rxscan1374_scan:
+    set_addr $I10, rxscan1374_loop
+    rx1371_cur."!mark_push"(0, rx1371_pos, $I10)
+  rxscan1374_done:
+.annotate 'line', 576
   # rx literal  ":"
-    add $I11, rx1342_pos, 1
-    gt $I11, rx1342_eos, rx1342_fail
-    sub $I11, rx1342_pos, rx1342_off
-    ord $I11, rx1342_tgt, $I11
-    ne $I11, 58, rx1342_fail
-    add rx1342_pos, 1
+    add $I11, rx1371_pos, 1
+    gt $I11, rx1371_eos, rx1371_fail
+    sub $I11, rx1371_pos, rx1371_off
+    ord $I11, rx1371_tgt, $I11
+    ne $I11, 58, rx1371_fail
+    add rx1371_pos, 1
   # rx subrule "before" subtype=zerowidth negate=
-    rx1342_cur."!cursor_pos"(rx1342_pos)
-    .const 'Sub' $P1347 = "352_1283975947.19641" 
-    capture_lex $P1347
-    $P10 = rx1342_cur."before"($P1347)
-    unless $P10, rx1342_fail
+    rx1371_cur."!cursor_pos"(rx1371_pos)
+    .const 'Sub' $P1376 = "358_1284728478.15265" 
+    capture_lex $P1376
+    $P10 = rx1371_cur."before"($P1376)
+    unless $P10, rx1371_fail
   # rx subrule "LANG" subtype=capture negate=
-    rx1342_cur."!cursor_pos"(rx1342_pos)
-    $P10 = rx1342_cur."LANG"("MAIN", "statement")
-    unless $P10, rx1342_fail
-    rx1342_cur."!mark_push"(0, -1, 0, $P10)
+    rx1371_cur."!cursor_pos"(rx1371_pos)
+    $P10 = rx1371_cur."LANG"("MAIN", "statement")
+    unless $P10, rx1371_fail
+    rx1371_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement")
-    rx1342_pos = $P10."pos"()
+    rx1371_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx1342_cur."!cursor_pos"(rx1342_pos)
-    $P10 = rx1342_cur."ws"()
-    unless $P10, rx1342_fail
-    rx1342_pos = $P10."pos"()
+    rx1371_cur."!cursor_pos"(rx1371_pos)
+    $P10 = rx1371_cur."ws"()
+    unless $P10, rx1371_fail
+    rx1371_pos = $P10."pos"()
   # rx literal  ";"
-    add $I11, rx1342_pos, 1
-    gt $I11, rx1342_eos, rx1342_fail
-    sub $I11, rx1342_pos, rx1342_off
-    ord $I11, rx1342_tgt, $I11
-    ne $I11, 59, rx1342_fail
-    add rx1342_pos, 1
-  # rx pass
-    rx1342_cur."!cursor_pass"(rx1342_pos, "metachar:sym<:my>")
-    if_null rx1342_debug, debug_1031
-    rx1342_cur."!cursor_debug"("PASS", "metachar:sym<:my>", " at pos=", rx1342_pos)
-  debug_1031:
-    .return (rx1342_cur)
-  rx1342_restart:
-    if_null rx1342_debug, debug_1032
-    rx1342_cur."!cursor_debug"("NEXT", "metachar:sym<:my>")
-  debug_1032:
-  rx1342_fail:
-    (rx1342_rep, rx1342_pos, $I10, $P10) = rx1342_cur."!mark_fail"(0)
-    lt rx1342_pos, -1, rx1342_done
-    eq rx1342_pos, -1, rx1342_fail
-    jump $I10
-  rx1342_done:
-    rx1342_cur."!cursor_fail"()
-    if_null rx1342_debug, debug_1033
-    rx1342_cur."!cursor_debug"("FAIL", "metachar:sym<:my>")
-  debug_1033:
-    .return (rx1342_cur)
+    add $I11, rx1371_pos, 1
+    gt $I11, rx1371_eos, rx1371_fail
+    sub $I11, rx1371_pos, rx1371_off
+    ord $I11, rx1371_tgt, $I11
+    ne $I11, 59, rx1371_fail
+    add rx1371_pos, 1
+.annotate 'line', 575
+  # rx pass
+    rx1371_cur."!cursor_pass"(rx1371_pos, "metachar:sym<:my>")
+    if_null rx1371_debug, debug_1045
+    rx1371_cur."!cursor_debug"("PASS", "metachar:sym<:my>", " at pos=", rx1371_pos)
+  debug_1045:
+    .return (rx1371_cur)
+  rx1371_restart:
+.annotate 'line', 574
+    if_null rx1371_debug, debug_1046
+    rx1371_cur."!cursor_debug"("NEXT", "metachar:sym<:my>")
+  debug_1046:
+  rx1371_fail:
+    (rx1371_rep, rx1371_pos, $I10, $P10) = rx1371_cur."!mark_fail"(0)
+    lt rx1371_pos, -1, rx1371_done
+    eq rx1371_pos, -1, rx1371_fail
+    jump $I10
+  rx1371_done:
+    rx1371_cur."!cursor_fail"()
+    if_null rx1371_debug, debug_1047
+    rx1371_cur."!cursor_debug"("FAIL", "metachar:sym<:my>")
+  debug_1047:
+    .return (rx1371_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<:my>"  :subid("351_1283975947.19641") :method
-.annotate 'line', 0
-    new $P1344, "ResizablePMCArray"
-    push $P1344, ":"
-    .return ($P1344)
+.sub "!PREFIX__metachar:sym<:my>"  :subid("357_1284728478.15265") :method
+.annotate 'line', 574
+    new $P1373, "ResizablePMCArray"
+    push $P1373, ":"
+    .return ($P1373)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1346"  :anon :subid("352_1283975947.19641") :method :outer("350_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1348_tgt
-    .local int rx1348_pos
-    .local int rx1348_off
-    .local int rx1348_eos
-    .local int rx1348_rep
-    .local pmc rx1348_cur
-    .local pmc rx1348_debug
-    (rx1348_cur, rx1348_pos, rx1348_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1348_debug, rx1348_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1348_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1348_eos, rx1348_tgt
-    gt rx1348_pos, rx1348_eos, rx1348_done
-    set rx1348_off, 0
-    lt rx1348_pos, 2, rx1348_start
-    sub rx1348_off, rx1348_pos, 1
-    substr rx1348_tgt, rx1348_tgt, rx1348_off
-  rx1348_start:
-    eq $I10, 1, rx1348_restart
-    if_null rx1348_debug, debug_1027
-    rx1348_cur."!cursor_debug"("START", "")
-  debug_1027:
+.sub "_block1375"  :anon :subid("358_1284728478.15265") :method :outer("356_1284728478.15265")
+.annotate 'line', 576
+    .local string rx1377_tgt
+    .local int rx1377_pos
+    .local int rx1377_off
+    .local int rx1377_eos
+    .local int rx1377_rep
+    .local pmc rx1377_cur
+    .local pmc rx1377_debug
+    (rx1377_cur, rx1377_pos, rx1377_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1377_debug, rx1377_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1377_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1377_eos, rx1377_tgt
+    gt rx1377_pos, rx1377_eos, rx1377_done
+    set rx1377_off, 0
+    lt rx1377_pos, 2, rx1377_start
+    sub rx1377_off, rx1377_pos, 1
+    substr rx1377_tgt, rx1377_tgt, rx1377_off
+  rx1377_start:
+    eq $I10, 1, rx1377_restart
+    if_null rx1377_debug, debug_1041
+    rx1377_cur."!cursor_debug"("START", "")
+  debug_1041:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1349_done
-    goto rxscan1349_scan
-  rxscan1349_loop:
-    ($P10) = rx1348_cur."from"()
-    inc $P10
-    set rx1348_pos, $P10
-    ge rx1348_pos, rx1348_eos, rxscan1349_done
-  rxscan1349_scan:
-    set_addr $I10, rxscan1349_loop
-    rx1348_cur."!mark_push"(0, rx1348_pos, $I10)
-  rxscan1349_done:
+    ne $I10, -1, rxscan1378_done
+    goto rxscan1378_scan
+  rxscan1378_loop:
+    ($P10) = rx1377_cur."from"()
+    inc $P10
+    set rx1377_pos, $P10
+    ge rx1377_pos, rx1377_eos, rxscan1378_done
+  rxscan1378_scan:
+    set_addr $I10, rxscan1378_loop
+    rx1377_cur."!mark_push"(0, rx1377_pos, $I10)
+  rxscan1378_done:
   # rx literal  "my"
-    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
-    add rx1348_pos, 2
-  # rx pass
-    rx1348_cur."!cursor_pass"(rx1348_pos, "")
-    if_null rx1348_debug, debug_1028
-    rx1348_cur."!cursor_debug"("PASS", "", " at pos=", rx1348_pos)
-  debug_1028:
-    .return (rx1348_cur)
-  rx1348_restart:
-    if_null rx1348_debug, debug_1029
-    rx1348_cur."!cursor_debug"("NEXT", "")
-  debug_1029:
-  rx1348_fail:
-    (rx1348_rep, rx1348_pos, $I10, $P10) = rx1348_cur."!mark_fail"(0)
-    lt rx1348_pos, -1, rx1348_done
-    eq rx1348_pos, -1, rx1348_fail
-    jump $I10
-  rx1348_done:
-    rx1348_cur."!cursor_fail"()
-    if_null rx1348_debug, debug_1030
-    rx1348_cur."!cursor_debug"("FAIL", "")
-  debug_1030:
-    .return (rx1348_cur)
+    add $I11, rx1377_pos, 2
+    gt $I11, rx1377_eos, rx1377_fail
+    sub $I11, rx1377_pos, rx1377_off
+    substr $S10, rx1377_tgt, $I11, 2
+    ne $S10, "my", rx1377_fail
+    add rx1377_pos, 2
+  # rx pass
+    rx1377_cur."!cursor_pass"(rx1377_pos, "")
+    if_null rx1377_debug, debug_1042
+    rx1377_cur."!cursor_debug"("PASS", "", " at pos=", rx1377_pos)
+  debug_1042:
+    .return (rx1377_cur)
+  rx1377_restart:
+    if_null rx1377_debug, debug_1043
+    rx1377_cur."!cursor_debug"("NEXT", "")
+  debug_1043:
+  rx1377_fail:
+    (rx1377_rep, rx1377_pos, $I10, $P10) = rx1377_cur."!mark_fail"(0)
+    lt rx1377_pos, -1, rx1377_done
+    eq rx1377_pos, -1, rx1377_fail
+    jump $I10
+  rx1377_done:
+    rx1377_cur."!cursor_fail"()
+    if_null rx1377_debug, debug_1044
+    rx1377_cur."!cursor_debug"("FAIL", "")
+  debug_1044:
+    .return (rx1377_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<{ }>"  :subid("353_1283975947.19641") :method :outer("349_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1351_tgt
-    .local int rx1351_pos
-    .local int rx1351_off
-    .local int rx1351_eos
-    .local int rx1351_rep
-    .local pmc rx1351_cur
-    .local pmc rx1351_debug
-    (rx1351_cur, rx1351_pos, rx1351_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1351_debug, rx1351_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1351_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1351_eos, rx1351_tgt
-    gt rx1351_pos, rx1351_eos, rx1351_done
-    set rx1351_off, 0
-    lt rx1351_pos, 2, rx1351_start
-    sub rx1351_off, rx1351_pos, 1
-    substr rx1351_tgt, rx1351_tgt, rx1351_off
-  rx1351_start:
-    eq $I10, 1, rx1351_restart
-    if_null rx1351_debug, debug_1034
-    rx1351_cur."!cursor_debug"("START", "metachar:sym<{ }>")
-  debug_1034:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1354_done
-    goto rxscan1354_scan
-  rxscan1354_loop:
-    ($P10) = rx1351_cur."from"()
-    inc $P10
-    set rx1351_pos, $P10
-    ge rx1351_pos, rx1351_eos, rxscan1354_done
-  rxscan1354_scan:
-    set_addr $I10, rxscan1354_loop
-    rx1351_cur."!mark_push"(0, rx1351_pos, $I10)
-  rxscan1354_done:
+.sub "metachar:sym<{ }>"  :subid("359_1284728478.15265") :method :outer("355_1284728478.15265")
+.annotate 'line', 574
+    .local string rx1380_tgt
+    .local int rx1380_pos
+    .local int rx1380_off
+    .local int rx1380_eos
+    .local int rx1380_rep
+    .local pmc rx1380_cur
+    .local pmc rx1380_debug
+    (rx1380_cur, rx1380_pos, rx1380_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1380_debug, rx1380_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1380_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1380_eos, rx1380_tgt
+    gt rx1380_pos, rx1380_eos, rx1380_done
+    set rx1380_off, 0
+    lt rx1380_pos, 2, rx1380_start
+    sub rx1380_off, rx1380_pos, 1
+    substr rx1380_tgt, rx1380_tgt, rx1380_off
+  rx1380_start:
+    eq $I10, 1, rx1380_restart
+    if_null rx1380_debug, debug_1048
+    rx1380_cur."!cursor_debug"("START", "metachar:sym<{ }>")
+  debug_1048:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1383_done
+    goto rxscan1383_scan
+  rxscan1383_loop:
+    ($P10) = rx1380_cur."from"()
+    inc $P10
+    set rx1380_pos, $P10
+    ge rx1380_pos, rx1380_eos, rxscan1383_done
+  rxscan1383_scan:
+    set_addr $I10, rxscan1383_loop
+    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+  rxscan1383_done:
+.annotate 'line', 580
   # rx enumcharlist negate=0 zerowidth
-    ge rx1351_pos, rx1351_eos, rx1351_fail
-    sub $I10, rx1351_pos, rx1351_off
-    substr $S10, rx1351_tgt, $I10, 1
+    sub $I10, rx1380_pos, rx1380_off
+    substr $S10, rx1380_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx1351_fail
+    lt $I11, 0, rx1380_fail
   # rx subrule "codeblock" subtype=capture negate=
-    rx1351_cur."!cursor_pos"(rx1351_pos)
-    $P10 = rx1351_cur."codeblock"()
-    unless $P10, rx1351_fail
-    rx1351_cur."!mark_push"(0, -1, 0, $P10)
+    rx1380_cur."!cursor_pos"(rx1380_pos)
+    $P10 = rx1380_cur."codeblock"()
+    unless $P10, rx1380_fail
+    rx1380_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("codeblock")
-    rx1351_pos = $P10."pos"()
+    rx1380_pos = $P10."pos"()
+.annotate 'line', 579
   # rx pass
-    rx1351_cur."!cursor_pass"(rx1351_pos, "metachar:sym<{ }>")
-    if_null rx1351_debug, debug_1035
-    rx1351_cur."!cursor_debug"("PASS", "metachar:sym<{ }>", " at pos=", rx1351_pos)
-  debug_1035:
-    .return (rx1351_cur)
-  rx1351_restart:
-    if_null rx1351_debug, debug_1036
-    rx1351_cur."!cursor_debug"("NEXT", "metachar:sym<{ }>")
-  debug_1036:
-  rx1351_fail:
-    (rx1351_rep, rx1351_pos, $I10, $P10) = rx1351_cur."!mark_fail"(0)
-    lt rx1351_pos, -1, rx1351_done
-    eq rx1351_pos, -1, rx1351_fail
-    jump $I10
-  rx1351_done:
-    rx1351_cur."!cursor_fail"()
-    if_null rx1351_debug, debug_1037
-    rx1351_cur."!cursor_debug"("FAIL", "metachar:sym<{ }>")
-  debug_1037:
-    .return (rx1351_cur)
+    rx1380_cur."!cursor_pass"(rx1380_pos, "metachar:sym<{ }>")
+    if_null rx1380_debug, debug_1049
+    rx1380_cur."!cursor_debug"("PASS", "metachar:sym<{ }>", " at pos=", rx1380_pos)
+  debug_1049:
+    .return (rx1380_cur)
+  rx1380_restart:
+.annotate 'line', 574
+    if_null rx1380_debug, debug_1050
+    rx1380_cur."!cursor_debug"("NEXT", "metachar:sym<{ }>")
+  debug_1050:
+  rx1380_fail:
+    (rx1380_rep, rx1380_pos, $I10, $P10) = rx1380_cur."!mark_fail"(0)
+    lt rx1380_pos, -1, rx1380_done
+    eq rx1380_pos, -1, rx1380_fail
+    jump $I10
+  rx1380_done:
+    rx1380_cur."!cursor_fail"()
+    if_null rx1380_debug, debug_1051
+    rx1380_cur."!cursor_debug"("FAIL", "metachar:sym<{ }>")
+  debug_1051:
+    .return (rx1380_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<{ }>"  :subid("354_1283975947.19641") :method
-.annotate 'line', 0
-    new $P1353, "ResizablePMCArray"
-    push $P1353, "{"
-    .return ($P1353)
+.sub "!PREFIX__metachar:sym<{ }>"  :subid("360_1284728478.15265") :method
+.annotate 'line', 574
+    new $P1382, "ResizablePMCArray"
+    push $P1382, "{"
+    .return ($P1382)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<nqpvar>"  :subid("355_1283975947.19641") :method :outer("349_1283975947.19641")
-.annotate 'line', 0
-    .const 'Sub' $P1361 = "357_1283975947.19641" 
-    capture_lex $P1361
-    .local string rx1356_tgt
-    .local int rx1356_pos
-    .local int rx1356_off
-    .local int rx1356_eos
-    .local int rx1356_rep
-    .local pmc rx1356_cur
-    .local pmc rx1356_debug
-    (rx1356_cur, rx1356_pos, rx1356_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1356_debug, rx1356_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1356_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1356_eos, rx1356_tgt
-    gt rx1356_pos, rx1356_eos, rx1356_done
-    set rx1356_off, 0
-    lt rx1356_pos, 2, rx1356_start
-    sub rx1356_off, rx1356_pos, 1
-    substr rx1356_tgt, rx1356_tgt, rx1356_off
-  rx1356_start:
-    eq $I10, 1, rx1356_restart
-    if_null rx1356_debug, debug_1038
-    rx1356_cur."!cursor_debug"("START", "metachar:sym<nqpvar>")
-  debug_1038:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1359_done
-    goto rxscan1359_scan
-  rxscan1359_loop:
-    ($P10) = rx1356_cur."from"()
-    inc $P10
-    set rx1356_pos, $P10
-    ge rx1356_pos, rx1356_eos, rxscan1359_done
-  rxscan1359_scan:
-    set_addr $I10, rxscan1359_loop
-    rx1356_cur."!mark_push"(0, rx1356_pos, $I10)
-  rxscan1359_done:
+.sub "metachar:sym<nqpvar>"  :subid("361_1284728478.15265") :method :outer("355_1284728478.15265")
+.annotate 'line', 574
+    .const 'Sub' $P1390 = "363_1284728478.15265" 
+    capture_lex $P1390
+    .local string rx1385_tgt
+    .local int rx1385_pos
+    .local int rx1385_off
+    .local int rx1385_eos
+    .local int rx1385_rep
+    .local pmc rx1385_cur
+    .local pmc rx1385_debug
+    (rx1385_cur, rx1385_pos, rx1385_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1385_debug, rx1385_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1385_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1385_eos, rx1385_tgt
+    gt rx1385_pos, rx1385_eos, rx1385_done
+    set rx1385_off, 0
+    lt rx1385_pos, 2, rx1385_start
+    sub rx1385_off, rx1385_pos, 1
+    substr rx1385_tgt, rx1385_tgt, rx1385_off
+  rx1385_start:
+    eq $I10, 1, rx1385_restart
+    if_null rx1385_debug, debug_1052
+    rx1385_cur."!cursor_debug"("START", "metachar:sym<nqpvar>")
+  debug_1052:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1388_done
+    goto rxscan1388_scan
+  rxscan1388_loop:
+    ($P10) = rx1385_cur."from"()
+    inc $P10
+    set rx1385_pos, $P10
+    ge rx1385_pos, rx1385_eos, rxscan1388_done
+  rxscan1388_scan:
+    set_addr $I10, rxscan1388_loop
+    rx1385_cur."!mark_push"(0, rx1385_pos, $I10)
+  rxscan1388_done:
+.annotate 'line', 584
   # rx enumcharlist negate=0 zerowidth
-    ge rx1356_pos, rx1356_eos, rx1356_fail
-    sub $I10, rx1356_pos, rx1356_off
-    substr $S10, rx1356_tgt, $I10, 1
+    sub $I10, rx1385_pos, rx1385_off
+    substr $S10, rx1385_tgt, $I10, 1
     index $I11, "$@", $S10
-    lt $I11, 0, rx1356_fail
+    lt $I11, 0, rx1385_fail
   # rx subrule "before" subtype=zerowidth negate=
-    rx1356_cur."!cursor_pos"(rx1356_pos)
-    .const 'Sub' $P1361 = "357_1283975947.19641" 
-    capture_lex $P1361
-    $P10 = rx1356_cur."before"($P1361)
-    unless $P10, rx1356_fail
+    rx1385_cur."!cursor_pos"(rx1385_pos)
+    .const 'Sub' $P1390 = "363_1284728478.15265" 
+    capture_lex $P1390
+    $P10 = rx1385_cur."before"($P1390)
+    unless $P10, rx1385_fail
   # rx subrule "LANG" subtype=capture negate=
-    rx1356_cur."!cursor_pos"(rx1356_pos)
-    $P10 = rx1356_cur."LANG"("MAIN", "variable")
-    unless $P10, rx1356_fail
-    rx1356_cur."!mark_push"(0, -1, 0, $P10)
+    rx1385_cur."!cursor_pos"(rx1385_pos)
+    $P10 = rx1385_cur."LANG"("MAIN", "variable")
+    unless $P10, rx1385_fail
+    rx1385_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("var")
-    rx1356_pos = $P10."pos"()
+    rx1385_pos = $P10."pos"()
+.annotate 'line', 583
   # rx pass
-    rx1356_cur."!cursor_pass"(rx1356_pos, "metachar:sym<nqpvar>")
-    if_null rx1356_debug, debug_1043
-    rx1356_cur."!cursor_debug"("PASS", "metachar:sym<nqpvar>", " at pos=", rx1356_pos)
-  debug_1043:
-    .return (rx1356_cur)
-  rx1356_restart:
-    if_null rx1356_debug, debug_1044
-    rx1356_cur."!cursor_debug"("NEXT", "metachar:sym<nqpvar>")
-  debug_1044:
-  rx1356_fail:
-    (rx1356_rep, rx1356_pos, $I10, $P10) = rx1356_cur."!mark_fail"(0)
-    lt rx1356_pos, -1, rx1356_done
-    eq rx1356_pos, -1, rx1356_fail
-    jump $I10
-  rx1356_done:
-    rx1356_cur."!cursor_fail"()
-    if_null rx1356_debug, debug_1045
-    rx1356_cur."!cursor_debug"("FAIL", "metachar:sym<nqpvar>")
-  debug_1045:
-    .return (rx1356_cur)
+    rx1385_cur."!cursor_pass"(rx1385_pos, "metachar:sym<nqpvar>")
+    if_null rx1385_debug, debug_1057
+    rx1385_cur."!cursor_debug"("PASS", "metachar:sym<nqpvar>", " at pos=", rx1385_pos)
+  debug_1057:
+    .return (rx1385_cur)
+  rx1385_restart:
+.annotate 'line', 574
+    if_null rx1385_debug, debug_1058
+    rx1385_cur."!cursor_debug"("NEXT", "metachar:sym<nqpvar>")
+  debug_1058:
+  rx1385_fail:
+    (rx1385_rep, rx1385_pos, $I10, $P10) = rx1385_cur."!mark_fail"(0)
+    lt rx1385_pos, -1, rx1385_done
+    eq rx1385_pos, -1, rx1385_fail
+    jump $I10
+  rx1385_done:
+    rx1385_cur."!cursor_fail"()
+    if_null rx1385_debug, debug_1059
+    rx1385_cur."!cursor_debug"("FAIL", "metachar:sym<nqpvar>")
+  debug_1059:
+    .return (rx1385_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<nqpvar>"  :subid("356_1283975947.19641") :method
-.annotate 'line', 0
-    new $P1358, "ResizablePMCArray"
-    push $P1358, "$"
-    push $P1358, "@"
-    .return ($P1358)
+.sub "!PREFIX__metachar:sym<nqpvar>"  :subid("362_1284728478.15265") :method
+.annotate 'line', 574
+    new $P1387, "ResizablePMCArray"
+    push $P1387, "$"
+    push $P1387, "@"
+    .return ($P1387)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1360"  :anon :subid("357_1283975947.19641") :method :outer("355_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1362_tgt
-    .local int rx1362_pos
-    .local int rx1362_off
-    .local int rx1362_eos
-    .local int rx1362_rep
-    .local pmc rx1362_cur
-    .local pmc rx1362_debug
-    (rx1362_cur, rx1362_pos, rx1362_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1362_debug, rx1362_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1362_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1362_eos, rx1362_tgt
-    gt rx1362_pos, rx1362_eos, rx1362_done
-    set rx1362_off, 0
-    lt rx1362_pos, 2, rx1362_start
-    sub rx1362_off, rx1362_pos, 1
-    substr rx1362_tgt, rx1362_tgt, rx1362_off
-  rx1362_start:
-    eq $I10, 1, rx1362_restart
-    if_null rx1362_debug, debug_1039
-    rx1362_cur."!cursor_debug"("START", "")
-  debug_1039:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1363_done
-    goto rxscan1363_scan
-  rxscan1363_loop:
-    ($P10) = rx1362_cur."from"()
-    inc $P10
-    set rx1362_pos, $P10
-    ge rx1362_pos, rx1362_eos, rxscan1363_done
-  rxscan1363_scan:
-    set_addr $I10, rxscan1363_loop
-    rx1362_cur."!mark_push"(0, rx1362_pos, $I10)
-  rxscan1363_done:
+.sub "_block1389"  :anon :subid("363_1284728478.15265") :method :outer("361_1284728478.15265")
+.annotate 'line', 584
+    .local string rx1391_tgt
+    .local int rx1391_pos
+    .local int rx1391_off
+    .local int rx1391_eos
+    .local int rx1391_rep
+    .local pmc rx1391_cur
+    .local pmc rx1391_debug
+    (rx1391_cur, rx1391_pos, rx1391_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1391_debug, rx1391_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1391_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1391_eos, rx1391_tgt
+    gt rx1391_pos, rx1391_eos, rx1391_done
+    set rx1391_off, 0
+    lt rx1391_pos, 2, rx1391_start
+    sub rx1391_off, rx1391_pos, 1
+    substr rx1391_tgt, rx1391_tgt, rx1391_off
+  rx1391_start:
+    eq $I10, 1, rx1391_restart
+    if_null rx1391_debug, debug_1053
+    rx1391_cur."!cursor_debug"("START", "")
+  debug_1053:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1392_done
+    goto rxscan1392_scan
+  rxscan1392_loop:
+    ($P10) = rx1391_cur."from"()
+    inc $P10
+    set rx1391_pos, $P10
+    ge rx1391_pos, rx1391_eos, rxscan1392_done
+  rxscan1392_scan:
+    set_addr $I10, rxscan1392_loop
+    rx1391_cur."!mark_push"(0, rx1391_pos, $I10)
+  rxscan1392_done:
   # rx charclass .
-    ge rx1362_pos, rx1362_eos, rx1362_fail
-    inc rx1362_pos
+    ge rx1391_pos, rx1391_eos, rx1391_fail
+    inc rx1391_pos
   # rx charclass w
-    ge rx1362_pos, rx1362_eos, rx1362_fail
-    sub $I10, rx1362_pos, rx1362_off
-    is_cclass $I11, 8192, rx1362_tgt, $I10
-    unless $I11, rx1362_fail
-    inc rx1362_pos
-  # rx pass
-    rx1362_cur."!cursor_pass"(rx1362_pos, "")
-    if_null rx1362_debug, debug_1040
-    rx1362_cur."!cursor_debug"("PASS", "", " at pos=", rx1362_pos)
-  debug_1040:
-    .return (rx1362_cur)
-  rx1362_restart:
-    if_null rx1362_debug, debug_1041
-    rx1362_cur."!cursor_debug"("NEXT", "")
-  debug_1041:
-  rx1362_fail:
-    (rx1362_rep, rx1362_pos, $I10, $P10) = rx1362_cur."!mark_fail"(0)
-    lt rx1362_pos, -1, rx1362_done
-    eq rx1362_pos, -1, rx1362_fail
-    jump $I10
-  rx1362_done:
-    rx1362_cur."!cursor_fail"()
-    if_null rx1362_debug, debug_1042
-    rx1362_cur."!cursor_debug"("FAIL", "")
-  debug_1042:
-    .return (rx1362_cur)
+    ge rx1391_pos, rx1391_eos, rx1391_fail
+    sub $I10, rx1391_pos, rx1391_off
+    is_cclass $I11, 8192, rx1391_tgt, $I10
+    unless $I11, rx1391_fail
+    inc rx1391_pos
+  # rx pass
+    rx1391_cur."!cursor_pass"(rx1391_pos, "")
+    if_null rx1391_debug, debug_1054
+    rx1391_cur."!cursor_debug"("PASS", "", " at pos=", rx1391_pos)
+  debug_1054:
+    .return (rx1391_cur)
+  rx1391_restart:
+    if_null rx1391_debug, debug_1055
+    rx1391_cur."!cursor_debug"("NEXT", "")
+  debug_1055:
+  rx1391_fail:
+    (rx1391_rep, rx1391_pos, $I10, $P10) = rx1391_cur."!mark_fail"(0)
+    lt rx1391_pos, -1, rx1391_done
+    eq rx1391_pos, -1, rx1391_fail
+    jump $I10
+  rx1391_done:
+    rx1391_cur."!cursor_fail"()
+    if_null rx1391_debug, debug_1056
+    rx1391_cur."!cursor_debug"("FAIL", "")
+  debug_1056:
+    .return (rx1391_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<{ }>"  :subid("358_1283975947.19641") :method :outer("349_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1365_tgt
-    .local int rx1365_pos
-    .local int rx1365_off
-    .local int rx1365_eos
-    .local int rx1365_rep
-    .local pmc rx1365_cur
-    .local pmc rx1365_debug
-    (rx1365_cur, rx1365_pos, rx1365_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1365_debug, rx1365_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1365_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1365_eos, rx1365_tgt
-    gt rx1365_pos, rx1365_eos, rx1365_done
-    set rx1365_off, 0
-    lt rx1365_pos, 2, rx1365_start
-    sub rx1365_off, rx1365_pos, 1
-    substr rx1365_tgt, rx1365_tgt, rx1365_off
-  rx1365_start:
-    eq $I10, 1, rx1365_restart
-    if_null rx1365_debug, debug_1046
-    rx1365_cur."!cursor_debug"("START", "assertion:sym<{ }>")
-  debug_1046:
+.sub "assertion:sym<{ }>"  :subid("364_1284728478.15265") :method :outer("355_1284728478.15265")
+.annotate 'line', 574
+    .local string rx1394_tgt
+    .local int rx1394_pos
+    .local int rx1394_off
+    .local int rx1394_eos
+    .local int rx1394_rep
+    .local pmc rx1394_cur
+    .local pmc rx1394_debug
+    (rx1394_cur, rx1394_pos, rx1394_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1394_debug, rx1394_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1394_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1394_eos, rx1394_tgt
+    gt rx1394_pos, rx1394_eos, rx1394_done
+    set rx1394_off, 0
+    lt rx1394_pos, 2, rx1394_start
+    sub rx1394_off, rx1394_pos, 1
+    substr rx1394_tgt, rx1394_tgt, rx1394_off
+  rx1394_start:
+    eq $I10, 1, rx1394_restart
+    if_null rx1394_debug, debug_1060
+    rx1394_cur."!cursor_debug"("START", "assertion:sym<{ }>")
+  debug_1060:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1368_done
-    goto rxscan1368_scan
-  rxscan1368_loop:
-    ($P10) = rx1365_cur."from"()
-    inc $P10
-    set rx1365_pos, $P10
-    ge rx1365_pos, rx1365_eos, rxscan1368_done
-  rxscan1368_scan:
-    set_addr $I10, rxscan1368_loop
-    rx1365_cur."!mark_push"(0, rx1365_pos, $I10)
-  rxscan1368_done:
+    ne $I10, -1, rxscan1397_done
+    goto rxscan1397_scan
+  rxscan1397_loop:
+    ($P10) = rx1394_cur."from"()
+    inc $P10
+    set rx1394_pos, $P10
+    ge rx1394_pos, rx1394_eos, rxscan1397_done
+  rxscan1397_scan:
+    set_addr $I10, rxscan1397_loop
+    rx1394_cur."!mark_push"(0, rx1394_pos, $I10)
+  rxscan1397_done:
+.annotate 'line', 588
   # rx enumcharlist negate=0 zerowidth
-    ge rx1365_pos, rx1365_eos, rx1365_fail
-    sub $I10, rx1365_pos, rx1365_off
-    substr $S10, rx1365_tgt, $I10, 1
+    sub $I10, rx1394_pos, rx1394_off
+    substr $S10, rx1394_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx1365_fail
+    lt $I11, 0, rx1394_fail
   # rx subrule "codeblock" subtype=capture negate=
-    rx1365_cur."!cursor_pos"(rx1365_pos)
-    $P10 = rx1365_cur."codeblock"()
-    unless $P10, rx1365_fail
-    rx1365_cur."!mark_push"(0, -1, 0, $P10)
+    rx1394_cur."!cursor_pos"(rx1394_pos)
+    $P10 = rx1394_cur."codeblock"()
+    unless $P10, rx1394_fail
+    rx1394_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("codeblock")
-    rx1365_pos = $P10."pos"()
+    rx1394_pos = $P10."pos"()
+.annotate 'line', 587
   # rx pass
-    rx1365_cur."!cursor_pass"(rx1365_pos, "assertion:sym<{ }>")
-    if_null rx1365_debug, debug_1047
-    rx1365_cur."!cursor_debug"("PASS", "assertion:sym<{ }>", " at pos=", rx1365_pos)
-  debug_1047:
-    .return (rx1365_cur)
-  rx1365_restart:
-    if_null rx1365_debug, debug_1048
-    rx1365_cur."!cursor_debug"("NEXT", "assertion:sym<{ }>")
-  debug_1048:
-  rx1365_fail:
-    (rx1365_rep, rx1365_pos, $I10, $P10) = rx1365_cur."!mark_fail"(0)
-    lt rx1365_pos, -1, rx1365_done
-    eq rx1365_pos, -1, rx1365_fail
-    jump $I10
-  rx1365_done:
-    rx1365_cur."!cursor_fail"()
-    if_null rx1365_debug, debug_1049
-    rx1365_cur."!cursor_debug"("FAIL", "assertion:sym<{ }>")
-  debug_1049:
-    .return (rx1365_cur)
+    rx1394_cur."!cursor_pass"(rx1394_pos, "assertion:sym<{ }>")
+    if_null rx1394_debug, debug_1061
+    rx1394_cur."!cursor_debug"("PASS", "assertion:sym<{ }>", " at pos=", rx1394_pos)
+  debug_1061:
+    .return (rx1394_cur)
+  rx1394_restart:
+.annotate 'line', 574
+    if_null rx1394_debug, debug_1062
+    rx1394_cur."!cursor_debug"("NEXT", "assertion:sym<{ }>")
+  debug_1062:
+  rx1394_fail:
+    (rx1394_rep, rx1394_pos, $I10, $P10) = rx1394_cur."!mark_fail"(0)
+    lt rx1394_pos, -1, rx1394_done
+    eq rx1394_pos, -1, rx1394_fail
+    jump $I10
+  rx1394_done:
+    rx1394_cur."!cursor_fail"()
+    if_null rx1394_debug, debug_1063
+    rx1394_cur."!cursor_debug"("FAIL", "assertion:sym<{ }>")
+  debug_1063:
+    .return (rx1394_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<{ }>"  :subid("359_1283975947.19641") :method
-.annotate 'line', 0
-    new $P1367, "ResizablePMCArray"
-    push $P1367, "{"
-    .return ($P1367)
+.sub "!PREFIX__assertion:sym<{ }>"  :subid("365_1284728478.15265") :method
+.annotate 'line', 574
+    new $P1396, "ResizablePMCArray"
+    push $P1396, "{"
+    .return ($P1396)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<?{ }>"  :subid("360_1283975947.19641") :method :outer("349_1283975947.19641")
-.annotate 'line', 0
-    .const 'Sub' $P1375 = "362_1283975947.19641" 
-    capture_lex $P1375
-    .local string rx1370_tgt
-    .local int rx1370_pos
-    .local int rx1370_off
-    .local int rx1370_eos
-    .local int rx1370_rep
-    .local pmc rx1370_cur
-    .local pmc rx1370_debug
-    (rx1370_cur, rx1370_pos, rx1370_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1370_debug, rx1370_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1370_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1370_eos, rx1370_tgt
-    gt rx1370_pos, rx1370_eos, rx1370_done
-    set rx1370_off, 0
-    lt rx1370_pos, 2, rx1370_start
-    sub rx1370_off, rx1370_pos, 1
-    substr rx1370_tgt, rx1370_tgt, rx1370_off
-  rx1370_start:
-    eq $I10, 1, rx1370_restart
-    if_null rx1370_debug, debug_1050
-    rx1370_cur."!cursor_debug"("START", "assertion:sym<?{ }>")
-  debug_1050:
+.sub "assertion:sym<?{ }>"  :subid("366_1284728478.15265") :method :outer("355_1284728478.15265")
+.annotate 'line', 574
+    .const 'Sub' $P1404 = "368_1284728478.15265" 
+    capture_lex $P1404
+    .local string rx1399_tgt
+    .local int rx1399_pos
+    .local int rx1399_off
+    .local int rx1399_eos
+    .local int rx1399_rep
+    .local pmc rx1399_cur
+    .local pmc rx1399_debug
+    (rx1399_cur, rx1399_pos, rx1399_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1399_debug, rx1399_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1399_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1399_eos, rx1399_tgt
+    gt rx1399_pos, rx1399_eos, rx1399_done
+    set rx1399_off, 0
+    lt rx1399_pos, 2, rx1399_start
+    sub rx1399_off, rx1399_pos, 1
+    substr rx1399_tgt, rx1399_tgt, rx1399_off
+  rx1399_start:
+    eq $I10, 1, rx1399_restart
+    if_null rx1399_debug, debug_1064
+    rx1399_cur."!cursor_debug"("START", "assertion:sym<?{ }>")
+  debug_1064:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1373_done
-    goto rxscan1373_scan
-  rxscan1373_loop:
-    ($P10) = rx1370_cur."from"()
-    inc $P10
-    set rx1370_pos, $P10
-    ge rx1370_pos, rx1370_eos, rxscan1373_done
-  rxscan1373_scan:
-    set_addr $I10, rxscan1373_loop
-    rx1370_cur."!mark_push"(0, rx1370_pos, $I10)
-  rxscan1373_done:
+    ne $I10, -1, rxscan1402_done
+    goto rxscan1402_scan
+  rxscan1402_loop:
+    ($P10) = rx1399_cur."from"()
+    inc $P10
+    set rx1399_pos, $P10
+    ge rx1399_pos, rx1399_eos, rxscan1402_done
+  rxscan1402_scan:
+    set_addr $I10, rxscan1402_loop
+    rx1399_cur."!mark_push"(0, rx1399_pos, $I10)
+  rxscan1402_done:
+.annotate 'line', 592
   # rx subcapture "zw"
-    set_addr $I10, rxcap_1378_fail
-    rx1370_cur."!mark_push"(0, rx1370_pos, $I10)
+    set_addr $I10, rxcap_1407_fail
+    rx1399_cur."!mark_push"(0, rx1399_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx1370_pos, rx1370_eos, rx1370_fail
-    sub $I10, rx1370_pos, rx1370_off
-    substr $S10, rx1370_tgt, $I10, 1
+    ge rx1399_pos, rx1399_eos, rx1399_fail
+    sub $I10, rx1399_pos, rx1399_off
+    substr $S10, rx1399_tgt, $I10, 1
     index $I11, "?!", $S10
-    lt $I11, 0, rx1370_fail
-    inc rx1370_pos
+    lt $I11, 0, rx1399_fail
+    inc rx1399_pos
   # rx subrule "before" subtype=zerowidth negate=
-    rx1370_cur."!cursor_pos"(rx1370_pos)
-    .const 'Sub' $P1375 = "362_1283975947.19641" 
-    capture_lex $P1375
-    $P10 = rx1370_cur."before"($P1375)
-    unless $P10, rx1370_fail
-    set_addr $I10, rxcap_1378_fail
-    ($I12, $I11) = rx1370_cur."!mark_peek"($I10)
-    rx1370_cur."!cursor_pos"($I11)
-    ($P10) = rx1370_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1370_pos, "")
-    rx1370_cur."!mark_push"(0, -1, 0, $P10)
+    rx1399_cur."!cursor_pos"(rx1399_pos)
+    .const 'Sub' $P1404 = "368_1284728478.15265" 
+    capture_lex $P1404
+    $P10 = rx1399_cur."before"($P1404)
+    unless $P10, rx1399_fail
+    set_addr $I10, rxcap_1407_fail
+    ($I12, $I11) = rx1399_cur."!mark_peek"($I10)
+    rx1399_cur."!cursor_pos"($I11)
+    ($P10) = rx1399_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1399_pos, "")
+    rx1399_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("zw")
-    goto rxcap_1378_done
-  rxcap_1378_fail:
-    goto rx1370_fail
-  rxcap_1378_done:
+    goto rxcap_1407_done
+  rxcap_1407_fail:
+    goto rx1399_fail
+  rxcap_1407_done:
   # rx subrule "codeblock" subtype=capture negate=
-    rx1370_cur."!cursor_pos"(rx1370_pos)
-    $P10 = rx1370_cur."codeblock"()
-    unless $P10, rx1370_fail
-    rx1370_cur."!mark_push"(0, -1, 0, $P10)
+    rx1399_cur."!cursor_pos"(rx1399_pos)
+    $P10 = rx1399_cur."codeblock"()
+    unless $P10, rx1399_fail
+    rx1399_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("codeblock")
-    rx1370_pos = $P10."pos"()
+    rx1399_pos = $P10."pos"()
+.annotate 'line', 591
   # rx pass
-    rx1370_cur."!cursor_pass"(rx1370_pos, "assertion:sym<?{ }>")
-    if_null rx1370_debug, debug_1055
-    rx1370_cur."!cursor_debug"("PASS", "assertion:sym<?{ }>", " at pos=", rx1370_pos)
-  debug_1055:
-    .return (rx1370_cur)
-  rx1370_restart:
-    if_null rx1370_debug, debug_1056
-    rx1370_cur."!cursor_debug"("NEXT", "assertion:sym<?{ }>")
-  debug_1056:
-  rx1370_fail:
-    (rx1370_rep, rx1370_pos, $I10, $P10) = rx1370_cur."!mark_fail"(0)
-    lt rx1370_pos, -1, rx1370_done
-    eq rx1370_pos, -1, rx1370_fail
-    jump $I10
-  rx1370_done:
-    rx1370_cur."!cursor_fail"()
-    if_null rx1370_debug, debug_1057
-    rx1370_cur."!cursor_debug"("FAIL", "assertion:sym<?{ }>")
-  debug_1057:
-    .return (rx1370_cur)
-    .return ()
-.end
+    rx1399_cur."!cursor_pass"(rx1399_pos, "assertion:sym<?{ }>")
+    if_null rx1399_debug, debug_1069
+    rx1399_cur."!cursor_debug"("PASS", "assertion:sym<?{ }>", " at pos=", rx1399_pos)
+  debug_1069:
+    .return (rx1399_cur)
+  rx1399_restart:
+.annotate 'line', 574
+    if_null rx1399_debug, debug_1070
+    rx1399_cur."!cursor_debug"("NEXT", "assertion:sym<?{ }>")
+  debug_1070:
+  rx1399_fail:
+    (rx1399_rep, rx1399_pos, $I10, $P10) = rx1399_cur."!mark_fail"(0)
+    lt rx1399_pos, -1, rx1399_done
+    eq rx1399_pos, -1, rx1399_fail
+    jump $I10
+  rx1399_done:
+    rx1399_cur."!cursor_fail"()
+    if_null rx1399_debug, debug_1071
+    rx1399_cur."!cursor_debug"("FAIL", "assertion:sym<?{ }>")
+  debug_1071:
+    .return (rx1399_cur)
+    .return ()
+.end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<?{ }>"  :subid("361_1283975947.19641") :method
-.annotate 'line', 0
-    new $P1372, "ResizablePMCArray"
-    push $P1372, "!"
-    push $P1372, "?"
-    .return ($P1372)
+.sub "!PREFIX__assertion:sym<?{ }>"  :subid("367_1284728478.15265") :method
+.annotate 'line', 574
+    new $P1401, "ResizablePMCArray"
+    push $P1401, "!"
+    push $P1401, "?"
+    .return ($P1401)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1374"  :anon :subid("362_1283975947.19641") :method :outer("360_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1376_tgt
-    .local int rx1376_pos
-    .local int rx1376_off
-    .local int rx1376_eos
-    .local int rx1376_rep
-    .local pmc rx1376_cur
-    .local pmc rx1376_debug
-    (rx1376_cur, rx1376_pos, rx1376_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1376_debug, rx1376_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1376_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1376_eos, rx1376_tgt
-    gt rx1376_pos, rx1376_eos, rx1376_done
-    set rx1376_off, 0
-    lt rx1376_pos, 2, rx1376_start
-    sub rx1376_off, rx1376_pos, 1
-    substr rx1376_tgt, rx1376_tgt, rx1376_off
-  rx1376_start:
-    eq $I10, 1, rx1376_restart
-    if_null rx1376_debug, debug_1051
-    rx1376_cur."!cursor_debug"("START", "")
-  debug_1051:
+.sub "_block1403"  :anon :subid("368_1284728478.15265") :method :outer("366_1284728478.15265")
+.annotate 'line', 592
+    .local string rx1405_tgt
+    .local int rx1405_pos
+    .local int rx1405_off
+    .local int rx1405_eos
+    .local int rx1405_rep
+    .local pmc rx1405_cur
+    .local pmc rx1405_debug
+    (rx1405_cur, rx1405_pos, rx1405_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1405_debug, rx1405_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1405_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1405_eos, rx1405_tgt
+    gt rx1405_pos, rx1405_eos, rx1405_done
+    set rx1405_off, 0
+    lt rx1405_pos, 2, rx1405_start
+    sub rx1405_off, rx1405_pos, 1
+    substr rx1405_tgt, rx1405_tgt, rx1405_off
+  rx1405_start:
+    eq $I10, 1, rx1405_restart
+    if_null rx1405_debug, debug_1065
+    rx1405_cur."!cursor_debug"("START", "")
+  debug_1065:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1377_done
-    goto rxscan1377_scan
-  rxscan1377_loop:
-    ($P10) = rx1376_cur."from"()
-    inc $P10
-    set rx1376_pos, $P10
-    ge rx1376_pos, rx1376_eos, rxscan1377_done
-  rxscan1377_scan:
-    set_addr $I10, rxscan1377_loop
-    rx1376_cur."!mark_push"(0, rx1376_pos, $I10)
-  rxscan1377_done:
+    ne $I10, -1, rxscan1406_done
+    goto rxscan1406_scan
+  rxscan1406_loop:
+    ($P10) = rx1405_cur."from"()
+    inc $P10
+    set rx1405_pos, $P10
+    ge rx1405_pos, rx1405_eos, rxscan1406_done
+  rxscan1406_scan:
+    set_addr $I10, rxscan1406_loop
+    rx1405_cur."!mark_push"(0, rx1405_pos, $I10)
+  rxscan1406_done:
   # rx literal  "{"
-    add $I11, rx1376_pos, 1
-    gt $I11, rx1376_eos, rx1376_fail
-    sub $I11, rx1376_pos, rx1376_off
-    ord $I11, rx1376_tgt, $I11
-    ne $I11, 123, rx1376_fail
-    add rx1376_pos, 1
-  # rx pass
-    rx1376_cur."!cursor_pass"(rx1376_pos, "")
-    if_null rx1376_debug, debug_1052
-    rx1376_cur."!cursor_debug"("PASS", "", " at pos=", rx1376_pos)
-  debug_1052:
-    .return (rx1376_cur)
-  rx1376_restart:
-    if_null rx1376_debug, debug_1053
-    rx1376_cur."!cursor_debug"("NEXT", "")
-  debug_1053:
-  rx1376_fail:
-    (rx1376_rep, rx1376_pos, $I10, $P10) = rx1376_cur."!mark_fail"(0)
-    lt rx1376_pos, -1, rx1376_done
-    eq rx1376_pos, -1, rx1376_fail
-    jump $I10
-  rx1376_done:
-    rx1376_cur."!cursor_fail"()
-    if_null rx1376_debug, debug_1054
-    rx1376_cur."!cursor_debug"("FAIL", "")
-  debug_1054:
-    .return (rx1376_cur)
+    add $I11, rx1405_pos, 1
+    gt $I11, rx1405_eos, rx1405_fail
+    sub $I11, rx1405_pos, rx1405_off
+    ord $I11, rx1405_tgt, $I11
+    ne $I11, 123, rx1405_fail
+    add rx1405_pos, 1
+  # rx pass
+    rx1405_cur."!cursor_pass"(rx1405_pos, "")
+    if_null rx1405_debug, debug_1066
+    rx1405_cur."!cursor_debug"("PASS", "", " at pos=", rx1405_pos)
+  debug_1066:
+    .return (rx1405_cur)
+  rx1405_restart:
+    if_null rx1405_debug, debug_1067
+    rx1405_cur."!cursor_debug"("NEXT", "")
+  debug_1067:
+  rx1405_fail:
+    (rx1405_rep, rx1405_pos, $I10, $P10) = rx1405_cur."!mark_fail"(0)
+    lt rx1405_pos, -1, rx1405_done
+    eq rx1405_pos, -1, rx1405_fail
+    jump $I10
+  rx1405_done:
+    rx1405_cur."!cursor_fail"()
+    if_null rx1405_debug, debug_1068
+    rx1405_cur."!cursor_debug"("FAIL", "")
+  debug_1068:
+    .return (rx1405_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<name>"  :subid("363_1283975947.19641") :method :outer("349_1283975947.19641")
-.annotate 'line', 0
-    .const 'Sub' $P1388 = "365_1283975947.19641" 
-    capture_lex $P1388
-    .local string rx1380_tgt
-    .local int rx1380_pos
-    .local int rx1380_off
-    .local int rx1380_eos
-    .local int rx1380_rep
-    .local pmc rx1380_cur
-    .local pmc rx1380_debug
-    (rx1380_cur, rx1380_pos, rx1380_tgt, $I10) = self."!cursor_start"()
-    rx1380_cur."!cursor_caparray"("assertion", "nibbler", "arglist")
-    getattribute rx1380_debug, rx1380_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1380_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1380_eos, rx1380_tgt
-    gt rx1380_pos, rx1380_eos, rx1380_done
-    set rx1380_off, 0
-    lt rx1380_pos, 2, rx1380_start
-    sub rx1380_off, rx1380_pos, 1
-    substr rx1380_tgt, rx1380_tgt, rx1380_off
-  rx1380_start:
-    eq $I10, 1, rx1380_restart
-    if_null rx1380_debug, debug_1058
-    rx1380_cur."!cursor_debug"("START", "assertion:sym<name>")
-  debug_1058:
+.sub "assertion:sym<name>"  :subid("369_1284728478.15265") :method :outer("355_1284728478.15265")
+.annotate 'line', 574
+    .const 'Sub' $P1417 = "371_1284728478.15265" 
+    capture_lex $P1417
+    .local string rx1409_tgt
+    .local int rx1409_pos
+    .local int rx1409_off
+    .local int rx1409_eos
+    .local int rx1409_rep
+    .local pmc rx1409_cur
+    .local pmc rx1409_debug
+    (rx1409_cur, rx1409_pos, rx1409_tgt, $I10) = self."!cursor_start"()
+    rx1409_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+    getattribute rx1409_debug, rx1409_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1409_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1409_eos, rx1409_tgt
+    gt rx1409_pos, rx1409_eos, rx1409_done
+    set rx1409_off, 0
+    lt rx1409_pos, 2, rx1409_start
+    sub rx1409_off, rx1409_pos, 1
+    substr rx1409_tgt, rx1409_tgt, rx1409_off
+  rx1409_start:
+    eq $I10, 1, rx1409_restart
+    if_null rx1409_debug, debug_1072
+    rx1409_cur."!cursor_debug"("START", "assertion:sym<name>")
+  debug_1072:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1384_done
-    goto rxscan1384_scan
-  rxscan1384_loop:
-    ($P10) = rx1380_cur."from"()
-    inc $P10
-    set rx1380_pos, $P10
-    ge rx1380_pos, rx1380_eos, rxscan1384_done
-  rxscan1384_scan:
-    set_addr $I10, rxscan1384_loop
-    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
-  rxscan1384_done:
+    ne $I10, -1, rxscan1413_done
+    goto rxscan1413_scan
+  rxscan1413_loop:
+    ($P10) = rx1409_cur."from"()
+    inc $P10
+    set rx1409_pos, $P10
+    ge rx1409_pos, rx1409_eos, rxscan1413_done
+  rxscan1413_scan:
+    set_addr $I10, rxscan1413_loop
+    rx1409_cur."!mark_push"(0, rx1409_pos, $I10)
+  rxscan1413_done:
+.annotate 'line', 596
   # rx subrule "identifier" subtype=capture negate=
-    rx1380_cur."!cursor_pos"(rx1380_pos)
-    $P10 = rx1380_cur."identifier"()
-    unless $P10, rx1380_fail
-    rx1380_cur."!mark_push"(0, -1, 0, $P10)
+    rx1409_cur."!cursor_pos"(rx1409_pos)
+    $P10 = rx1409_cur."identifier"()
+    unless $P10, rx1409_fail
+    rx1409_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("longname")
-    rx1380_pos = $P10."pos"()
-  # rx rxquantr1385 ** 0..1
-    set_addr $I10, rxquantr1385_done
-    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
-  rxquantr1385_loop:
-  alt1386_0:
-    set_addr $I10, alt1386_1
-    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+    rx1409_pos = $P10."pos"()
+.annotate 'line', 603
+  # rx rxquantr1414 ** 0..1
+    set_addr $I10, rxquantr1414_done
+    rx1409_cur."!mark_push"(0, rx1409_pos, $I10)
+  rxquantr1414_loop:
+  alt1415_0:
+.annotate 'line', 597
+    set_addr $I10, alt1415_1
+    rx1409_cur."!mark_push"(0, rx1409_pos, $I10)
+.annotate 'line', 598
   # rx subrule "before" subtype=zerowidth negate=
-    rx1380_cur."!cursor_pos"(rx1380_pos)
-    .const 'Sub' $P1388 = "365_1283975947.19641" 
-    capture_lex $P1388
-    $P10 = rx1380_cur."before"($P1388)
-    unless $P10, rx1380_fail
-    goto alt1386_end
-  alt1386_1:
-    set_addr $I10, alt1386_2
-    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+    rx1409_cur."!cursor_pos"(rx1409_pos)
+    .const 'Sub' $P1417 = "371_1284728478.15265" 
+    capture_lex $P1417
+    $P10 = rx1409_cur."before"($P1417)
+    unless $P10, rx1409_fail
+    goto alt1415_end
+  alt1415_1:
+    set_addr $I10, alt1415_2
+    rx1409_cur."!mark_push"(0, rx1409_pos, $I10)
+.annotate 'line', 599
   # rx literal  "="
-    add $I11, rx1380_pos, 1
-    gt $I11, rx1380_eos, rx1380_fail
-    sub $I11, rx1380_pos, rx1380_off
-    ord $I11, rx1380_tgt, $I11
-    ne $I11, 61, rx1380_fail
-    add rx1380_pos, 1
+    add $I11, rx1409_pos, 1
+    gt $I11, rx1409_eos, rx1409_fail
+    sub $I11, rx1409_pos, rx1409_off
+    ord $I11, rx1409_tgt, $I11
+    ne $I11, 61, rx1409_fail
+    add rx1409_pos, 1
   # rx subrule "assertion" subtype=capture negate=
-    rx1380_cur."!cursor_pos"(rx1380_pos)
-    $P10 = rx1380_cur."assertion"()
-    unless $P10, rx1380_fail
-    rx1380_cur."!mark_push"(0, -1, 0, $P10)
+    rx1409_cur."!cursor_pos"(rx1409_pos)
+    $P10 = rx1409_cur."assertion"()
+    unless $P10, rx1409_fail
+    rx1409_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx1380_pos = $P10."pos"()
-    goto alt1386_end
-  alt1386_2:
-    set_addr $I10, alt1386_3
-    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+    rx1409_pos = $P10."pos"()
+    goto alt1415_end
+  alt1415_2:
+    set_addr $I10, alt1415_3
+    rx1409_cur."!mark_push"(0, rx1409_pos, $I10)
+.annotate 'line', 600
   # rx literal  ":"
-    add $I11, rx1380_pos, 1
-    gt $I11, rx1380_eos, rx1380_fail
-    sub $I11, rx1380_pos, rx1380_off
-    ord $I11, rx1380_tgt, $I11
-    ne $I11, 58, rx1380_fail
-    add rx1380_pos, 1
+    add $I11, rx1409_pos, 1
+    gt $I11, rx1409_eos, rx1409_fail
+    sub $I11, rx1409_pos, rx1409_off
+    ord $I11, rx1409_tgt, $I11
+    ne $I11, 58, rx1409_fail
+    add rx1409_pos, 1
   # rx subrule "arglist" subtype=capture negate=
-    rx1380_cur."!cursor_pos"(rx1380_pos)
-    $P10 = rx1380_cur."arglist"()
-    unless $P10, rx1380_fail
-    rx1380_cur."!mark_push"(0, -1, 0, $P10)
+    rx1409_cur."!cursor_pos"(rx1409_pos)
+    $P10 = rx1409_cur."arglist"()
+    unless $P10, rx1409_fail
+    rx1409_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx1380_pos = $P10."pos"()
-    goto alt1386_end
-  alt1386_3:
-    set_addr $I10, alt1386_4
-    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+    rx1409_pos = $P10."pos"()
+    goto alt1415_end
+  alt1415_3:
+    set_addr $I10, alt1415_4
+    rx1409_cur."!mark_push"(0, rx1409_pos, $I10)
+.annotate 'line', 601
   # rx literal  "("
-    add $I11, rx1380_pos, 1
-    gt $I11, rx1380_eos, rx1380_fail
-    sub $I11, rx1380_pos, rx1380_off
-    ord $I11, rx1380_tgt, $I11
-    ne $I11, 40, rx1380_fail
-    add rx1380_pos, 1
+    add $I11, rx1409_pos, 1
+    gt $I11, rx1409_eos, rx1409_fail
+    sub $I11, rx1409_pos, rx1409_off
+    ord $I11, rx1409_tgt, $I11
+    ne $I11, 40, rx1409_fail
+    add rx1409_pos, 1
   # rx subrule "LANG" subtype=capture negate=
-    rx1380_cur."!cursor_pos"(rx1380_pos)
-    $P10 = rx1380_cur."LANG"("MAIN", "arglist")
-    unless $P10, rx1380_fail
-    rx1380_cur."!mark_push"(0, -1, 0, $P10)
+    rx1409_cur."!cursor_pos"(rx1409_pos)
+    $P10 = rx1409_cur."LANG"("MAIN", "arglist")
+    unless $P10, rx1409_fail
+    rx1409_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx1380_pos = $P10."pos"()
+    rx1409_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx1380_pos, 1
-    gt $I11, rx1380_eos, rx1380_fail
-    sub $I11, rx1380_pos, rx1380_off
-    ord $I11, rx1380_tgt, $I11
-    ne $I11, 41, rx1380_fail
-    add rx1380_pos, 1
-    goto alt1386_end
-  alt1386_4:
+    add $I11, rx1409_pos, 1
+    gt $I11, rx1409_eos, rx1409_fail
+    sub $I11, rx1409_pos, rx1409_off
+    ord $I11, rx1409_tgt, $I11
+    ne $I11, 41, rx1409_fail
+    add rx1409_pos, 1
+    goto alt1415_end
+  alt1415_4:
+.annotate 'line', 602
   # rx subrule "normspace" subtype=method negate=
-    rx1380_cur."!cursor_pos"(rx1380_pos)
-    $P10 = rx1380_cur."normspace"()
-    unless $P10, rx1380_fail
-    rx1380_pos = $P10."pos"()
+    rx1409_cur."!cursor_pos"(rx1409_pos)
+    $P10 = rx1409_cur."normspace"()
+    unless $P10, rx1409_fail
+    rx1409_pos = $P10."pos"()
   # rx subrule "nibbler" subtype=capture negate=
-    rx1380_cur."!cursor_pos"(rx1380_pos)
-    $P10 = rx1380_cur."nibbler"()
-    unless $P10, rx1380_fail
-    rx1380_cur."!mark_push"(0, -1, 0, $P10)
+    rx1409_cur."!cursor_pos"(rx1409_pos)
+    $P10 = rx1409_cur."nibbler"()
+    unless $P10, rx1409_fail
+    rx1409_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("nibbler")
-    rx1380_pos = $P10."pos"()
-  alt1386_end:
-    set_addr $I10, rxquantr1385_done
-    (rx1380_rep) = rx1380_cur."!mark_commit"($I10)
-  rxquantr1385_done:
-  # rx pass
-    rx1380_cur."!cursor_pass"(rx1380_pos, "assertion:sym<name>")
-    if_null rx1380_debug, debug_1063
-    rx1380_cur."!cursor_debug"("PASS", "assertion:sym<name>", " at pos=", rx1380_pos)
-  debug_1063:
-    .return (rx1380_cur)
-  rx1380_restart:
-    if_null rx1380_debug, debug_1064
-    rx1380_cur."!cursor_debug"("NEXT", "assertion:sym<name>")
-  debug_1064:
-  rx1380_fail:
-    (rx1380_rep, rx1380_pos, $I10, $P10) = rx1380_cur."!mark_fail"(0)
-    lt rx1380_pos, -1, rx1380_done
-    eq rx1380_pos, -1, rx1380_fail
-    jump $I10
-  rx1380_done:
-    rx1380_cur."!cursor_fail"()
-    if_null rx1380_debug, debug_1065
-    rx1380_cur."!cursor_debug"("FAIL", "assertion:sym<name>")
-  debug_1065:
-    .return (rx1380_cur)
+    rx1409_pos = $P10."pos"()
+  alt1415_end:
+.annotate 'line', 603
+    set_addr $I10, rxquantr1414_done
+    (rx1409_rep) = rx1409_cur."!mark_commit"($I10)
+  rxquantr1414_done:
+.annotate 'line', 595
+  # rx pass
+    rx1409_cur."!cursor_pass"(rx1409_pos, "assertion:sym<name>")
+    if_null rx1409_debug, debug_1077
+    rx1409_cur."!cursor_debug"("PASS", "assertion:sym<name>", " at pos=", rx1409_pos)
+  debug_1077:
+    .return (rx1409_cur)
+  rx1409_restart:
+.annotate 'line', 574
+    if_null rx1409_debug, debug_1078
+    rx1409_cur."!cursor_debug"("NEXT", "assertion:sym<name>")
+  debug_1078:
+  rx1409_fail:
+    (rx1409_rep, rx1409_pos, $I10, $P10) = rx1409_cur."!mark_fail"(0)
+    lt rx1409_pos, -1, rx1409_done
+    eq rx1409_pos, -1, rx1409_fail
+    jump $I10
+  rx1409_done:
+    rx1409_cur."!cursor_fail"()
+    if_null rx1409_debug, debug_1079
+    rx1409_cur."!cursor_debug"("FAIL", "assertion:sym<name>")
+  debug_1079:
+    .return (rx1409_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("364_1283975947.19641") :method
-.annotate 'line', 0
-    $P1382 = self."!PREFIX__!subrule"("identifier", "")
-    new $P1383, "ResizablePMCArray"
-    push $P1383, $P1382
-    .return ($P1383)
+.sub "!PREFIX__assertion:sym<name>"  :subid("370_1284728478.15265") :method
+.annotate 'line', 574
+    $P1411 = self."!PREFIX__!subrule"("identifier", "")
+    new $P1412, "ResizablePMCArray"
+    push $P1412, $P1411
+    .return ($P1412)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1387"  :anon :subid("365_1283975947.19641") :method :outer("363_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1389_tgt
-    .local int rx1389_pos
-    .local int rx1389_off
-    .local int rx1389_eos
-    .local int rx1389_rep
-    .local pmc rx1389_cur
-    .local pmc rx1389_debug
-    (rx1389_cur, rx1389_pos, rx1389_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1389_debug, rx1389_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1389_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1389_eos, rx1389_tgt
-    gt rx1389_pos, rx1389_eos, rx1389_done
-    set rx1389_off, 0
-    lt rx1389_pos, 2, rx1389_start
-    sub rx1389_off, rx1389_pos, 1
-    substr rx1389_tgt, rx1389_tgt, rx1389_off
-  rx1389_start:
-    eq $I10, 1, rx1389_restart
-    if_null rx1389_debug, debug_1059
-    rx1389_cur."!cursor_debug"("START", "")
-  debug_1059:
+.sub "_block1416"  :anon :subid("371_1284728478.15265") :method :outer("369_1284728478.15265")
+.annotate 'line', 598
+    .local string rx1418_tgt
+    .local int rx1418_pos
+    .local int rx1418_off
+    .local int rx1418_eos
+    .local int rx1418_rep
+    .local pmc rx1418_cur
+    .local pmc rx1418_debug
+    (rx1418_cur, rx1418_pos, rx1418_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1418_debug, rx1418_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1418_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1418_eos, rx1418_tgt
+    gt rx1418_pos, rx1418_eos, rx1418_done
+    set rx1418_off, 0
+    lt rx1418_pos, 2, rx1418_start
+    sub rx1418_off, rx1418_pos, 1
+    substr rx1418_tgt, rx1418_tgt, rx1418_off
+  rx1418_start:
+    eq $I10, 1, rx1418_restart
+    if_null rx1418_debug, debug_1073
+    rx1418_cur."!cursor_debug"("START", "")
+  debug_1073:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1390_done
-    goto rxscan1390_scan
-  rxscan1390_loop:
-    ($P10) = rx1389_cur."from"()
-    inc $P10
-    set rx1389_pos, $P10
-    ge rx1389_pos, rx1389_eos, rxscan1390_done
-  rxscan1390_scan:
-    set_addr $I10, rxscan1390_loop
-    rx1389_cur."!mark_push"(0, rx1389_pos, $I10)
-  rxscan1390_done:
+    ne $I10, -1, rxscan1419_done
+    goto rxscan1419_scan
+  rxscan1419_loop:
+    ($P10) = rx1418_cur."from"()
+    inc $P10
+    set rx1418_pos, $P10
+    ge rx1418_pos, rx1418_eos, rxscan1419_done
+  rxscan1419_scan:
+    set_addr $I10, rxscan1419_loop
+    rx1418_cur."!mark_push"(0, rx1418_pos, $I10)
+  rxscan1419_done:
   # rx literal  ">"
-    add $I11, rx1389_pos, 1
-    gt $I11, rx1389_eos, rx1389_fail
-    sub $I11, rx1389_pos, rx1389_off
-    ord $I11, rx1389_tgt, $I11
-    ne $I11, 62, rx1389_fail
-    add rx1389_pos, 1
-  # rx pass
-    rx1389_cur."!cursor_pass"(rx1389_pos, "")
-    if_null rx1389_debug, debug_1060
-    rx1389_cur."!cursor_debug"("PASS", "", " at pos=", rx1389_pos)
-  debug_1060:
-    .return (rx1389_cur)
-  rx1389_restart:
-    if_null rx1389_debug, debug_1061
-    rx1389_cur."!cursor_debug"("NEXT", "")
-  debug_1061:
-  rx1389_fail:
-    (rx1389_rep, rx1389_pos, $I10, $P10) = rx1389_cur."!mark_fail"(0)
-    lt rx1389_pos, -1, rx1389_done
-    eq rx1389_pos, -1, rx1389_fail
-    jump $I10
-  rx1389_done:
-    rx1389_cur."!cursor_fail"()
-    if_null rx1389_debug, debug_1062
-    rx1389_cur."!cursor_debug"("FAIL", "")
-  debug_1062:
-    .return (rx1389_cur)
+    add $I11, rx1418_pos, 1
+    gt $I11, rx1418_eos, rx1418_fail
+    sub $I11, rx1418_pos, rx1418_off
+    ord $I11, rx1418_tgt, $I11
+    ne $I11, 62, rx1418_fail
+    add rx1418_pos, 1
+  # rx pass
+    rx1418_cur."!cursor_pass"(rx1418_pos, "")
+    if_null rx1418_debug, debug_1074
+    rx1418_cur."!cursor_debug"("PASS", "", " at pos=", rx1418_pos)
+  debug_1074:
+    .return (rx1418_cur)
+  rx1418_restart:
+    if_null rx1418_debug, debug_1075
+    rx1418_cur."!cursor_debug"("NEXT", "")
+  debug_1075:
+  rx1418_fail:
+    (rx1418_rep, rx1418_pos, $I10, $P10) = rx1418_cur."!mark_fail"(0)
+    lt rx1418_pos, -1, rx1418_done
+    eq rx1418_pos, -1, rx1418_fail
+    jump $I10
+  rx1418_done:
+    rx1418_cur."!cursor_fail"()
+    if_null rx1418_debug, debug_1076
+    rx1418_cur."!cursor_debug"("FAIL", "")
+  debug_1076:
+    .return (rx1418_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<var>"  :subid("366_1283975947.19641") :method :outer("349_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1392_tgt
-    .local int rx1392_pos
-    .local int rx1392_off
-    .local int rx1392_eos
-    .local int rx1392_rep
-    .local pmc rx1392_cur
-    .local pmc rx1392_debug
-    (rx1392_cur, rx1392_pos, rx1392_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1392_debug, rx1392_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1392_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1392_eos, rx1392_tgt
-    gt rx1392_pos, rx1392_eos, rx1392_done
-    set rx1392_off, 0
-    lt rx1392_pos, 2, rx1392_start
-    sub rx1392_off, rx1392_pos, 1
-    substr rx1392_tgt, rx1392_tgt, rx1392_off
-  rx1392_start:
-    eq $I10, 1, rx1392_restart
-    if_null rx1392_debug, debug_1066
-    rx1392_cur."!cursor_debug"("START", "assertion:sym<var>")
-  debug_1066:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1395_done
-    goto rxscan1395_scan
-  rxscan1395_loop:
-    ($P10) = rx1392_cur."from"()
-    inc $P10
-    set rx1392_pos, $P10
-    ge rx1392_pos, rx1392_eos, rxscan1395_done
-  rxscan1395_scan:
-    set_addr $I10, rxscan1395_loop
-    rx1392_cur."!mark_push"(0, rx1392_pos, $I10)
-  rxscan1395_done:
+.sub "assertion:sym<var>"  :subid("372_1284728478.15265") :method :outer("355_1284728478.15265")
+.annotate 'line', 574
+    .local string rx1421_tgt
+    .local int rx1421_pos
+    .local int rx1421_off
+    .local int rx1421_eos
+    .local int rx1421_rep
+    .local pmc rx1421_cur
+    .local pmc rx1421_debug
+    (rx1421_cur, rx1421_pos, rx1421_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1421_debug, rx1421_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1421_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1421_eos, rx1421_tgt
+    gt rx1421_pos, rx1421_eos, rx1421_done
+    set rx1421_off, 0
+    lt rx1421_pos, 2, rx1421_start
+    sub rx1421_off, rx1421_pos, 1
+    substr rx1421_tgt, rx1421_tgt, rx1421_off
+  rx1421_start:
+    eq $I10, 1, rx1421_restart
+    if_null rx1421_debug, debug_1080
+    rx1421_cur."!cursor_debug"("START", "assertion:sym<var>")
+  debug_1080:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1424_done
+    goto rxscan1424_scan
+  rxscan1424_loop:
+    ($P10) = rx1421_cur."from"()
+    inc $P10
+    set rx1421_pos, $P10
+    ge rx1421_pos, rx1421_eos, rxscan1424_done
+  rxscan1424_scan:
+    set_addr $I10, rxscan1424_loop
+    rx1421_cur."!mark_push"(0, rx1421_pos, $I10)
+  rxscan1424_done:
+.annotate 'line', 607
   # rx enumcharlist negate=0 zerowidth
-    ge rx1392_pos, rx1392_eos, rx1392_fail
-    sub $I10, rx1392_pos, rx1392_off
-    substr $S10, rx1392_tgt, $I10, 1
+    sub $I10, rx1421_pos, rx1421_off
+    substr $S10, rx1421_tgt, $I10, 1
     index $I11, "$@", $S10
-    lt $I11, 0, rx1392_fail
+    lt $I11, 0, rx1421_fail
   # rx subrule "LANG" subtype=capture negate=
-    rx1392_cur."!cursor_pos"(rx1392_pos)
-    $P10 = rx1392_cur."LANG"("MAIN", "variable")
-    unless $P10, rx1392_fail
-    rx1392_cur."!mark_push"(0, -1, 0, $P10)
+    rx1421_cur."!cursor_pos"(rx1421_pos)
+    $P10 = rx1421_cur."LANG"("MAIN", "variable")
+    unless $P10, rx1421_fail
+    rx1421_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("var")
-    rx1392_pos = $P10."pos"()
+    rx1421_pos = $P10."pos"()
+.annotate 'line', 606
   # rx pass
-    rx1392_cur."!cursor_pass"(rx1392_pos, "assertion:sym<var>")
-    if_null rx1392_debug, debug_1067
-    rx1392_cur."!cursor_debug"("PASS", "assertion:sym<var>", " at pos=", rx1392_pos)
-  debug_1067:
-    .return (rx1392_cur)
-  rx1392_restart:
-    if_null rx1392_debug, debug_1068
-    rx1392_cur."!cursor_debug"("NEXT", "assertion:sym<var>")
-  debug_1068:
-  rx1392_fail:
-    (rx1392_rep, rx1392_pos, $I10, $P10) = rx1392_cur."!mark_fail"(0)
-    lt rx1392_pos, -1, rx1392_done
-    eq rx1392_pos, -1, rx1392_fail
-    jump $I10
-  rx1392_done:
-    rx1392_cur."!cursor_fail"()
-    if_null rx1392_debug, debug_1069
-    rx1392_cur."!cursor_debug"("FAIL", "assertion:sym<var>")
-  debug_1069:
-    .return (rx1392_cur)
+    rx1421_cur."!cursor_pass"(rx1421_pos, "assertion:sym<var>")
+    if_null rx1421_debug, debug_1081
+    rx1421_cur."!cursor_debug"("PASS", "assertion:sym<var>", " at pos=", rx1421_pos)
+  debug_1081:
+    .return (rx1421_cur)
+  rx1421_restart:
+.annotate 'line', 574
+    if_null rx1421_debug, debug_1082
+    rx1421_cur."!cursor_debug"("NEXT", "assertion:sym<var>")
+  debug_1082:
+  rx1421_fail:
+    (rx1421_rep, rx1421_pos, $I10, $P10) = rx1421_cur."!mark_fail"(0)
+    lt rx1421_pos, -1, rx1421_done
+    eq rx1421_pos, -1, rx1421_fail
+    jump $I10
+  rx1421_done:
+    rx1421_cur."!cursor_fail"()
+    if_null rx1421_debug, debug_1083
+    rx1421_cur."!cursor_debug"("FAIL", "assertion:sym<var>")
+  debug_1083:
+    .return (rx1421_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<var>"  :subid("367_1283975947.19641") :method
-.annotate 'line', 0
-    new $P1394, "ResizablePMCArray"
-    push $P1394, "$"
-    push $P1394, "@"
-    .return ($P1394)
+.sub "!PREFIX__assertion:sym<var>"  :subid("373_1284728478.15265") :method
+.annotate 'line', 574
+    new $P1423, "ResizablePMCArray"
+    push $P1423, "$"
+    push $P1423, "@"
+    .return ($P1423)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "codeblock"  :subid("368_1283975947.19641") :method :outer("349_1283975947.19641")
-.annotate 'line', 0
-    .local string rx1397_tgt
-    .local int rx1397_pos
-    .local int rx1397_off
-    .local int rx1397_eos
-    .local int rx1397_rep
-    .local pmc rx1397_cur
-    .local pmc rx1397_debug
-    (rx1397_cur, rx1397_pos, rx1397_tgt, $I10) = self."!cursor_start"()
-    getattribute rx1397_debug, rx1397_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx1397_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1397_eos, rx1397_tgt
-    gt rx1397_pos, rx1397_eos, rx1397_done
-    set rx1397_off, 0
-    lt rx1397_pos, 2, rx1397_start
-    sub rx1397_off, rx1397_pos, 1
-    substr rx1397_tgt, rx1397_tgt, rx1397_off
-  rx1397_start:
-    eq $I10, 1, rx1397_restart
-    if_null rx1397_debug, debug_1070
-    rx1397_cur."!cursor_debug"("START", "codeblock")
-  debug_1070:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1401_done
-    goto rxscan1401_scan
-  rxscan1401_loop:
-    ($P10) = rx1397_cur."from"()
-    inc $P10
-    set rx1397_pos, $P10
-    ge rx1397_pos, rx1397_eos, rxscan1401_done
-  rxscan1401_scan:
-    set_addr $I10, rxscan1401_loop
-    rx1397_cur."!mark_push"(0, rx1397_pos, $I10)
-  rxscan1401_done:
+.sub "codeblock"  :subid("374_1284728478.15265") :method :outer("355_1284728478.15265")
+.annotate 'line', 574
+    .local string rx1426_tgt
+    .local int rx1426_pos
+    .local int rx1426_off
+    .local int rx1426_eos
+    .local int rx1426_rep
+    .local pmc rx1426_cur
+    .local pmc rx1426_debug
+    (rx1426_cur, rx1426_pos, rx1426_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1426_debug, rx1426_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx1426_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1426_eos, rx1426_tgt
+    gt rx1426_pos, rx1426_eos, rx1426_done
+    set rx1426_off, 0
+    lt rx1426_pos, 2, rx1426_start
+    sub rx1426_off, rx1426_pos, 1
+    substr rx1426_tgt, rx1426_tgt, rx1426_off
+  rx1426_start:
+    eq $I10, 1, rx1426_restart
+    if_null rx1426_debug, debug_1084
+    rx1426_cur."!cursor_debug"("START", "codeblock")
+  debug_1084:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1430_done
+    goto rxscan1430_scan
+  rxscan1430_loop:
+    ($P10) = rx1426_cur."from"()
+    inc $P10
+    set rx1426_pos, $P10
+    ge rx1426_pos, rx1426_eos, rxscan1430_done
+  rxscan1430_scan:
+    set_addr $I10, rxscan1430_loop
+    rx1426_cur."!mark_push"(0, rx1426_pos, $I10)
+  rxscan1430_done:
+.annotate 'line', 611
   # rx subrule "LANG" subtype=capture negate=
-    rx1397_cur."!cursor_pos"(rx1397_pos)
-    $P10 = rx1397_cur."LANG"("MAIN", "pblock")
-    unless $P10, rx1397_fail
-    rx1397_cur."!mark_push"(0, -1, 0, $P10)
+    rx1426_cur."!cursor_pos"(rx1426_pos)
+    $P10 = rx1426_cur."LANG"("MAIN", "pblock")
+    unless $P10, rx1426_fail
+    rx1426_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx1397_pos = $P10."pos"()
+    rx1426_pos = $P10."pos"()
+.annotate 'line', 610
   # rx pass
-    rx1397_cur."!cursor_pass"(rx1397_pos, "codeblock")
-    if_null rx1397_debug, debug_1071
-    rx1397_cur."!cursor_debug"("PASS", "codeblock", " at pos=", rx1397_pos)
-  debug_1071:
-    .return (rx1397_cur)
-  rx1397_restart:
-    if_null rx1397_debug, debug_1072
-    rx1397_cur."!cursor_debug"("NEXT", "codeblock")
-  debug_1072:
-  rx1397_fail:
-    (rx1397_rep, rx1397_pos, $I10, $P10) = rx1397_cur."!mark_fail"(0)
-    lt rx1397_pos, -1, rx1397_done
-    eq rx1397_pos, -1, rx1397_fail
-    jump $I10
-  rx1397_done:
-    rx1397_cur."!cursor_fail"()
-    if_null rx1397_debug, debug_1073
-    rx1397_cur."!cursor_debug"("FAIL", "codeblock")
-  debug_1073:
-    .return (rx1397_cur)
+    rx1426_cur."!cursor_pass"(rx1426_pos, "codeblock")
+    if_null rx1426_debug, debug_1085
+    rx1426_cur."!cursor_debug"("PASS", "codeblock", " at pos=", rx1426_pos)
+  debug_1085:
+    .return (rx1426_cur)
+  rx1426_restart:
+.annotate 'line', 574
+    if_null rx1426_debug, debug_1086
+    rx1426_cur."!cursor_debug"("NEXT", "codeblock")
+  debug_1086:
+  rx1426_fail:
+    (rx1426_rep, rx1426_pos, $I10, $P10) = rx1426_cur."!mark_fail"(0)
+    lt rx1426_pos, -1, rx1426_done
+    eq rx1426_pos, -1, rx1426_fail
+    jump $I10
+  rx1426_done:
+    rx1426_cur."!cursor_fail"()
+    if_null rx1426_debug, debug_1087
+    rx1426_cur."!cursor_debug"("FAIL", "codeblock")
+  debug_1087:
+    .return (rx1426_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__codeblock"  :subid("369_1283975947.19641") :method
-.annotate 'line', 0
-    $P1399 = self."!PREFIX__!subrule"("LANG", "")
-    new $P1400, "ResizablePMCArray"
-    push $P1400, $P1399
-    .return ($P1400)
+.sub "!PREFIX__codeblock"  :subid("375_1284728478.15265") :method
+.annotate 'line', 574
+    $P1428 = self."!PREFIX__!subrule"("LANG", "")
+    new $P1429, "ResizablePMCArray"
+    push $P1429, $P1428
+    .return ($P1429)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block1403" :load :anon :subid("370_1283975947.19641")
-.annotate 'line', 0
-    .const 'Sub' $P1405 = "11_1283975947.19641" 
-    $P1406 = $P1405()
-    .return ($P1406)
+.sub "_block1432" :load :anon :subid("376_1284728478.15265")
+.annotate 'line', 4
+    .const 'Sub' $P1434 = "11_1284728478.15265" 
+    $P1435 = $P1434()
+    .return ($P1435)
 .end
 
 
 .namespace []
-.sub "_block1424" :load :anon :subid("371_1283975947.19641")
-.annotate 'line', 0
-    .const 'Sub' $P1426 = "10_1283975947.19641" 
-    $P1427 = $P1426()
-    .return ($P1427)
+.sub "_block1453" :load :anon :subid("377_1284728478.15265")
+.annotate 'line', 1
+    .const 'Sub' $P1455 = "10_1284728478.15265" 
+    $P1456 = $P1455()
+    .return ($P1456)
 .end
 
 ### .include 'gen/nqp-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1283975952.27658")
+.sub "_block11"  :anon :subid("10_1284728484.24945")
 .annotate 'line', 0
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     capture_lex $P14
+.annotate 'line', 1
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
     $I0 = can $P0, "ctxsave"
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
+.annotate 'line', 3
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     capture_lex $P14
-    $P2464 = $P14()
-    .return ($P2464)
-    .const 'Sub' $P2466 = "143_1283975952.27658" 
-    .return ($P2466)
+    $P2558 = $P14()
+.annotate 'line', 1
+    .return ($P2558)
+    .const 'Sub' $P2560 = "148_1284728484.24945" 
+    .return ($P2560)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post144") :outer("10_1283975952.27658")
+.sub "" :load :init :subid("post149") :outer("10_1284728484.24945")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1283975952.27658" 
+    .const 'Sub' $P12 = "10_1284728484.24945" 
     .local pmc block
     set block, $P12
-    $P2469 = get_root_global ["parrot"], "P6metaclass"
-    $P2469."new_class"("NQP::Actions", "HLL::Actions" :named("parent"))
+    $P2563 = get_root_global ["parrot"], "P6metaclass"
+    $P2563."new_class"("NQP::Actions", "HLL::Actions" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block13"  :subid("11_1283975952.27658") :outer("10_1283975952.27658")
-.annotate 'line', 0
-    .const 'Sub' $P2460 = "142_1283975952.27658" 
-    capture_lex $P2460
-    get_hll_global $P2343, ["NQP";"RegexActions"], "_block2342" 
-    capture_lex $P2343
-    .const 'Sub' $P2332 = "132_1283975952.27658" 
-    capture_lex $P2332
-    .const 'Sub' $P2325 = "131_1283975952.27658" 
-    capture_lex $P2325
-    .const 'Sub' $P2318 = "130_1283975952.27658" 
-    capture_lex $P2318
-    .const 'Sub' $P2311 = "129_1283975952.27658" 
-    capture_lex $P2311
-    .const 'Sub' $P2298 = "128_1283975952.27658" 
-    capture_lex $P2298
-    .const 'Sub' $P2288 = "127_1283975952.27658" 
-    capture_lex $P2288
-    .const 'Sub' $P2278 = "126_1283975952.27658" 
-    capture_lex $P2278
-    .const 'Sub' $P2268 = "125_1283975952.27658" 
-    capture_lex $P2268
-    .const 'Sub' $P2261 = "124_1283975952.27658" 
-    capture_lex $P2261
-    .const 'Sub' $P2247 = "123_1283975952.27658" 
-    capture_lex $P2247
-    .const 'Sub' $P2237 = "122_1283975952.27658" 
-    capture_lex $P2237
-    .const 'Sub' $P2200 = "121_1283975952.27658" 
-    capture_lex $P2200
-    .const 'Sub' $P2186 = "120_1283975952.27658" 
-    capture_lex $P2186
-    .const 'Sub' $P2176 = "119_1283975952.27658" 
-    capture_lex $P2176
-    .const 'Sub' $P2166 = "118_1283975952.27658" 
-    capture_lex $P2166
-    .const 'Sub' $P2156 = "117_1283975952.27658" 
-    capture_lex $P2156
-    .const 'Sub' $P2146 = "116_1283975952.27658" 
-    capture_lex $P2146
-    .const 'Sub' $P2136 = "115_1283975952.27658" 
+.sub "_block13"  :subid("11_1284728484.24945") :outer("10_1284728484.24945")
+.annotate 'line', 3
+    .const 'Sub' $P2554 = "147_1284728484.24945" 
+    capture_lex $P2554
+    get_hll_global $P2437, ["NQP";"RegexActions"], "_block2436" 
+    capture_lex $P2437
+    .const 'Sub' $P2426 = "137_1284728484.24945" 
+    capture_lex $P2426
+    .const 'Sub' $P2419 = "136_1284728484.24945" 
+    capture_lex $P2419
+    .const 'Sub' $P2412 = "135_1284728484.24945" 
+    capture_lex $P2412
+    .const 'Sub' $P2405 = "134_1284728484.24945" 
+    capture_lex $P2405
+    .const 'Sub' $P2392 = "133_1284728484.24945" 
+    capture_lex $P2392
+    .const 'Sub' $P2382 = "132_1284728484.24945" 
+    capture_lex $P2382
+    .const 'Sub' $P2372 = "131_1284728484.24945" 
+    capture_lex $P2372
+    .const 'Sub' $P2362 = "130_1284728484.24945" 
+    capture_lex $P2362
+    .const 'Sub' $P2355 = "129_1284728484.24945" 
+    capture_lex $P2355
+    .const 'Sub' $P2341 = "128_1284728484.24945" 
+    capture_lex $P2341
+    .const 'Sub' $P2331 = "127_1284728484.24945" 
+    capture_lex $P2331
+    .const 'Sub' $P2294 = "126_1284728484.24945" 
+    capture_lex $P2294
+    .const 'Sub' $P2280 = "125_1284728484.24945" 
+    capture_lex $P2280
+    .const 'Sub' $P2270 = "124_1284728484.24945" 
+    capture_lex $P2270
+    .const 'Sub' $P2260 = "123_1284728484.24945" 
+    capture_lex $P2260
+    .const 'Sub' $P2250 = "122_1284728484.24945" 
+    capture_lex $P2250
+    .const 'Sub' $P2240 = "121_1284728484.24945" 
+    capture_lex $P2240
+    .const 'Sub' $P2230 = "120_1284728484.24945" 
+    capture_lex $P2230
+    .const 'Sub' $P2202 = "119_1284728484.24945" 
+    capture_lex $P2202
+    .const 'Sub' $P2185 = "118_1284728484.24945" 
+    capture_lex $P2185
+    .const 'Sub' $P2175 = "117_1284728484.24945" 
+    capture_lex $P2175
+    .const 'Sub' $P2162 = "116_1284728484.24945" 
+    capture_lex $P2162
+    .const 'Sub' $P2149 = "115_1284728484.24945" 
+    capture_lex $P2149
+    .const 'Sub' $P2136 = "114_1284728484.24945" 
     capture_lex $P2136
-    .const 'Sub' $P2108 = "114_1283975952.27658" 
-    capture_lex $P2108
-    .const 'Sub' $P2091 = "113_1283975952.27658" 
-    capture_lex $P2091
-    .const 'Sub' $P2081 = "112_1283975952.27658" 
-    capture_lex $P2081
-    .const 'Sub' $P2068 = "111_1283975952.27658" 
-    capture_lex $P2068
-    .const 'Sub' $P2055 = "110_1283975952.27658" 
-    capture_lex $P2055
-    .const 'Sub' $P2042 = "109_1283975952.27658" 
-    capture_lex $P2042
-    .const 'Sub' $P2032 = "108_1283975952.27658" 
-    capture_lex $P2032
-    .const 'Sub' $P2003 = "107_1283975952.27658" 
-    capture_lex $P2003
-    .const 'Sub' $P1979 = "106_1283975952.27658" 
-    capture_lex $P1979
-    .const 'Sub' $P1969 = "105_1283975952.27658" 
-    capture_lex $P1969
-    .const 'Sub' $P1959 = "104_1283975952.27658" 
-    capture_lex $P1959
-    .const 'Sub' $P1932 = "103_1283975952.27658" 
-    capture_lex $P1932
-    .const 'Sub' $P1914 = "102_1283975952.27658" 
-    capture_lex $P1914
-    .const 'Sub' $P1904 = "101_1283975952.27658" 
-    capture_lex $P1904
-    .const 'Sub' $P1800 = "98_1283975952.27658" 
-    capture_lex $P1800
-    .const 'Sub' $P1790 = "97_1283975952.27658" 
-    capture_lex $P1790
-    .const 'Sub' $P1761 = "96_1283975952.27658" 
-    capture_lex $P1761
-    .const 'Sub' $P1719 = "95_1283975952.27658" 
-    capture_lex $P1719
-    .const 'Sub' $P1703 = "94_1283975952.27658" 
-    capture_lex $P1703
-    .const 'Sub' $P1694 = "93_1283975952.27658" 
-    capture_lex $P1694
-    .const 'Sub' $P1662 = "92_1283975952.27658" 
-    capture_lex $P1662
-    .const 'Sub' $P1563 = "89_1283975952.27658" 
-    capture_lex $P1563
-    .const 'Sub' $P1546 = "88_1283975952.27658" 
-    capture_lex $P1546
-    .const 'Sub' $P1526 = "87_1283975952.27658" 
-    capture_lex $P1526
-    .const 'Sub' $P1414 = "84_1283975952.27658" 
-    capture_lex $P1414
-    .const 'Sub' $P1345 = "80_1283975952.27658" 
-    capture_lex $P1345
-    .const 'Sub' $P1300 = "78_1283975952.27658" 
-    capture_lex $P1300
-    .const 'Sub' $P1250 = "76_1283975952.27658" 
+    .const 'Sub' $P2126 = "113_1284728484.24945" 
+    capture_lex $P2126
+    .const 'Sub' $P2097 = "112_1284728484.24945" 
+    capture_lex $P2097
+    .const 'Sub' $P2073 = "111_1284728484.24945" 
+    capture_lex $P2073
+    .const 'Sub' $P2063 = "110_1284728484.24945" 
+    capture_lex $P2063
+    .const 'Sub' $P2053 = "109_1284728484.24945" 
+    capture_lex $P2053
+    .const 'Sub' $P2026 = "108_1284728484.24945" 
+    capture_lex $P2026
+    .const 'Sub' $P2008 = "107_1284728484.24945" 
+    capture_lex $P2008
+    .const 'Sub' $P1998 = "106_1284728484.24945" 
+    capture_lex $P1998
+    .const 'Sub' $P1894 = "103_1284728484.24945" 
+    capture_lex $P1894
+    .const 'Sub' $P1884 = "102_1284728484.24945" 
+    capture_lex $P1884
+    .const 'Sub' $P1855 = "101_1284728484.24945" 
+    capture_lex $P1855
+    .const 'Sub' $P1813 = "100_1284728484.24945" 
+    capture_lex $P1813
+    .const 'Sub' $P1797 = "99_1284728484.24945" 
+    capture_lex $P1797
+    .const 'Sub' $P1788 = "98_1284728484.24945" 
+    capture_lex $P1788
+    .const 'Sub' $P1756 = "97_1284728484.24945" 
+    capture_lex $P1756
+    .const 'Sub' $P1657 = "94_1284728484.24945" 
+    capture_lex $P1657
+    .const 'Sub' $P1615 = "92_1284728484.24945" 
+    capture_lex $P1615
+    .const 'Sub' $P1605 = "91_1284728484.24945" 
+    capture_lex $P1605
+    .const 'Sub' $P1588 = "90_1284728484.24945" 
+    capture_lex $P1588
+    .const 'Sub' $P1568 = "89_1284728484.24945" 
+    capture_lex $P1568
+    .const 'Sub' $P1456 = "86_1284728484.24945" 
+    capture_lex $P1456
+    .const 'Sub' $P1387 = "82_1284728484.24945" 
+    capture_lex $P1387
+    .const 'Sub' $P1322 = "79_1284728484.24945" 
+    capture_lex $P1322
+    .const 'Sub' $P1250 = "76_1284728484.24945" 
     capture_lex $P1250
-    .const 'Sub' $P1240 = "75_1283975952.27658" 
+    .const 'Sub' $P1240 = "75_1284728484.24945" 
     capture_lex $P1240
-    .const 'Sub' $P1230 = "74_1283975952.27658" 
+    .const 'Sub' $P1230 = "74_1284728484.24945" 
     capture_lex $P1230
-    .const 'Sub' $P1159 = "72_1283975952.27658" 
+    .const 'Sub' $P1159 = "72_1284728484.24945" 
     capture_lex $P1159
-    .const 'Sub' $P1149 = "71_1283975952.27658" 
+    .const 'Sub' $P1149 = "71_1284728484.24945" 
     capture_lex $P1149
-    .const 'Sub' $P1132 = "70_1283975952.27658" 
+    .const 'Sub' $P1132 = "70_1284728484.24945" 
     capture_lex $P1132
-    .const 'Sub' $P1115 = "69_1283975952.27658" 
+    .const 'Sub' $P1115 = "69_1284728484.24945" 
     capture_lex $P1115
-    .const 'Sub' $P1098 = "68_1283975952.27658" 
+    .const 'Sub' $P1098 = "68_1284728484.24945" 
     capture_lex $P1098
-    .const 'Sub' $P1088 = "67_1283975952.27658" 
+    .const 'Sub' $P1088 = "67_1284728484.24945" 
     capture_lex $P1088
-    .const 'Sub' $P1078 = "66_1283975952.27658" 
+    .const 'Sub' $P1078 = "66_1284728484.24945" 
     capture_lex $P1078
-    .const 'Sub' $P1068 = "65_1283975952.27658" 
+    .const 'Sub' $P1068 = "65_1284728484.24945" 
     capture_lex $P1068
-    .const 'Sub' $P1044 = "64_1283975952.27658" 
+    .const 'Sub' $P1044 = "64_1284728484.24945" 
     capture_lex $P1044
-    .const 'Sub' $P991 = "63_1283975952.27658" 
+    .const 'Sub' $P991 = "63_1284728484.24945" 
     capture_lex $P991
-    .const 'Sub' $P981 = "62_1283975952.27658" 
+    .const 'Sub' $P981 = "62_1284728484.24945" 
     capture_lex $P981
-    .const 'Sub' $P892 = "60_1283975952.27658" 
+    .const 'Sub' $P892 = "60_1284728484.24945" 
     capture_lex $P892
-    .const 'Sub' $P866 = "59_1283975952.27658" 
+    .const 'Sub' $P866 = "59_1284728484.24945" 
     capture_lex $P866
-    .const 'Sub' $P850 = "58_1283975952.27658" 
+    .const 'Sub' $P850 = "58_1284728484.24945" 
     capture_lex $P850
-    .const 'Sub' $P840 = "57_1283975952.27658" 
+    .const 'Sub' $P840 = "57_1284728484.24945" 
     capture_lex $P840
-    .const 'Sub' $P830 = "56_1283975952.27658" 
+    .const 'Sub' $P830 = "56_1284728484.24945" 
     capture_lex $P830
-    .const 'Sub' $P820 = "55_1283975952.27658" 
+    .const 'Sub' $P820 = "55_1284728484.24945" 
     capture_lex $P820
-    .const 'Sub' $P810 = "54_1283975952.27658" 
+    .const 'Sub' $P810 = "54_1284728484.24945" 
     capture_lex $P810
-    .const 'Sub' $P800 = "53_1283975952.27658" 
+    .const 'Sub' $P800 = "53_1284728484.24945" 
     capture_lex $P800
-    .const 'Sub' $P790 = "52_1283975952.27658" 
+    .const 'Sub' $P790 = "52_1284728484.24945" 
     capture_lex $P790
-    .const 'Sub' $P780 = "51_1283975952.27658" 
+    .const 'Sub' $P780 = "51_1284728484.24945" 
     capture_lex $P780
-    .const 'Sub' $P770 = "50_1283975952.27658" 
+    .const 'Sub' $P770 = "50_1284728484.24945" 
     capture_lex $P770
-    .const 'Sub' $P760 = "49_1283975952.27658" 
+    .const 'Sub' $P760 = "49_1284728484.24945" 
     capture_lex $P760
-    .const 'Sub' $P750 = "48_1283975952.27658" 
+    .const 'Sub' $P750 = "48_1284728484.24945" 
     capture_lex $P750
-    .const 'Sub' $P740 = "47_1283975952.27658" 
+    .const 'Sub' $P740 = "47_1284728484.24945" 
     capture_lex $P740
-    .const 'Sub' $P730 = "46_1283975952.27658" 
+    .const 'Sub' $P730 = "46_1284728484.24945" 
     capture_lex $P730
-    .const 'Sub' $P720 = "45_1283975952.27658" 
+    .const 'Sub' $P720 = "45_1284728484.24945" 
     capture_lex $P720
-    .const 'Sub' $P702 = "44_1283975952.27658" 
+    .const 'Sub' $P702 = "44_1284728484.24945" 
     capture_lex $P702
-    .const 'Sub' $P667 = "43_1283975952.27658" 
+    .const 'Sub' $P667 = "43_1284728484.24945" 
     capture_lex $P667
-    .const 'Sub' $P651 = "42_1283975952.27658" 
+    .const 'Sub' $P651 = "42_1284728484.24945" 
     capture_lex $P651
-    .const 'Sub' $P630 = "41_1283975952.27658" 
+    .const 'Sub' $P630 = "41_1284728484.24945" 
     capture_lex $P630
-    .const 'Sub' $P610 = "40_1283975952.27658" 
+    .const 'Sub' $P610 = "40_1284728484.24945" 
     capture_lex $P610
-    .const 'Sub' $P597 = "39_1283975952.27658" 
+    .const 'Sub' $P597 = "39_1284728484.24945" 
     capture_lex $P597
-    .const 'Sub' $P571 = "38_1283975952.27658" 
+    .const 'Sub' $P571 = "38_1284728484.24945" 
     capture_lex $P571
-    .const 'Sub' $P535 = "37_1283975952.27658" 
+    .const 'Sub' $P535 = "37_1284728484.24945" 
     capture_lex $P535
-    .const 'Sub' $P518 = "36_1283975952.27658" 
+    .const 'Sub' $P518 = "36_1284728484.24945" 
     capture_lex $P518
-    .const 'Sub' $P504 = "35_1283975952.27658" 
+    .const 'Sub' $P504 = "35_1284728484.24945" 
     capture_lex $P504
-    .const 'Sub' $P451 = "33_1283975952.27658" 
+    .const 'Sub' $P451 = "33_1284728484.24945" 
     capture_lex $P451
-    .const 'Sub' $P440 = "32_1283975952.27658" 
+    .const 'Sub' $P440 = "32_1284728484.24945" 
     capture_lex $P440
-    .const 'Sub' $P427 = "31_1283975952.27658" 
+    .const 'Sub' $P427 = "31_1284728484.24945" 
     capture_lex $P427
-    .const 'Sub' $P407 = "30_1283975952.27658" 
+    .const 'Sub' $P407 = "30_1284728484.24945" 
     capture_lex $P407
-    .const 'Sub' $P397 = "29_1283975952.27658" 
+    .const 'Sub' $P397 = "29_1284728484.24945" 
     capture_lex $P397
-    .const 'Sub' $P387 = "28_1283975952.27658" 
+    .const 'Sub' $P387 = "28_1284728484.24945" 
     capture_lex $P387
-    .const 'Sub' $P371 = "27_1283975952.27658" 
+    .const 'Sub' $P371 = "27_1284728484.24945" 
     capture_lex $P371
-    .const 'Sub' $P288 = "25_1283975952.27658" 
+    .const 'Sub' $P288 = "25_1284728484.24945" 
     capture_lex $P288
-    .const 'Sub' $P245 = "23_1283975952.27658" 
+    .const 'Sub' $P245 = "23_1284728484.24945" 
     capture_lex $P245
-    .const 'Sub' $P213 = "22_1283975952.27658" 
+    .const 'Sub' $P213 = "22_1284728484.24945" 
     capture_lex $P213
-    .const 'Sub' $P180 = "21_1283975952.27658" 
+    .const 'Sub' $P180 = "21_1284728484.24945" 
     capture_lex $P180
-    .const 'Sub' $P170 = "20_1283975952.27658" 
+    .const 'Sub' $P170 = "20_1284728484.24945" 
     capture_lex $P170
-    .const 'Sub' $P151 = "19_1283975952.27658" 
+    .const 'Sub' $P151 = "19_1284728484.24945" 
     capture_lex $P151
-    .const 'Sub' $P100 = "18_1283975952.27658" 
+    .const 'Sub' $P100 = "18_1284728484.24945" 
     capture_lex $P100
-    .const 'Sub' $P84 = "17_1283975952.27658" 
+    .const 'Sub' $P84 = "17_1284728484.24945" 
     capture_lex $P84
-    .const 'Sub' $P63 = "16_1283975952.27658" 
+    .const 'Sub' $P63 = "16_1284728484.24945" 
     capture_lex $P63
-    .const 'Sub' $P27 = "13_1283975952.27658" 
+    .const 'Sub' $P27 = "13_1284728484.24945" 
     capture_lex $P27
-    .const 'Sub' $P16 = "12_1283975952.27658" 
+    .const 'Sub' $P16 = "12_1284728484.24945" 
     capture_lex $P16
     get_global $P15, "@BLOCK"
-    unless_null $P15, vivify_147
+    unless_null $P15, vivify_152
     $P15 = root_new ['parrot';'ResizablePMCArray']
     set_global "@BLOCK", $P15
-  vivify_147:
-    .const 'Sub' $P16 = "12_1283975952.27658" 
+  vivify_152:
+.annotate 'line', 9
+    .const 'Sub' $P16 = "12_1284728484.24945" 
     newclosure $P26, $P16
     .lex "xblock_immediate", $P26
-    .const 'Sub' $P27 = "13_1283975952.27658" 
+.annotate 'line', 14
+    .const 'Sub' $P27 = "13_1284728484.24945" 
     newclosure $P62, $P27
     .lex "block_immediate", $P62
-    .const 'Sub' $P63 = "16_1283975952.27658" 
+.annotate 'line', 24
+    .const 'Sub' $P63 = "16_1284728484.24945" 
     newclosure $P83, $P63
     .lex "vivitype", $P83
-    .const 'Sub' $P84 = "17_1283975952.27658" 
+.annotate 'line', 43
+    .const 'Sub' $P84 = "17_1284728484.24945" 
     newclosure $P99, $P84
     .lex "colonpair_str", $P99
-    .const 'Sub' $P100 = "18_1283975952.27658" 
+.annotate 'line', 223
+    .const 'Sub' $P100 = "18_1284728484.24945" 
     newclosure $P150, $P100
     .lex "push_block_handler", $P150
-    .const 'Sub' $P151 = "19_1283975952.27658" 
+.annotate 'line', 861
+    .const 'Sub' $P151 = "19_1284728484.24945" 
     newclosure $P165, $P151
     .lex "control", $P165
+.annotate 'line', 3
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
     $I0 = can $P0, "ctxsave"
@@ -19858,75 +20742,85 @@
     $P0."ctxsave"()
   ctxsave_done:
     get_global $P166, "@BLOCK"
+.annotate 'line', 5
     find_lex $P167, "xblock_immediate"
     find_lex $P168, "block_immediate"
     find_lex $P169, "vivitype"
+.annotate 'line', 35
     find_lex $P212, "colonpair_str"
+.annotate 'line', 216
     find_lex $P650, "push_block_handler"
-    find_lex $P2310, "control"
-    get_hll_global $P2343, ["NQP";"RegexActions"], "_block2342" 
-    capture_lex $P2343
-    $P2454 = $P2343()
-    .return ($P2454)
-    .const 'Sub' $P2456 = "141_1283975952.27658" 
-    .return ($P2456)
+.annotate 'line', 852
+    find_lex $P2404, "control"
+.annotate 'line', 879
+    get_hll_global $P2437, ["NQP";"RegexActions"], "_block2436" 
+    capture_lex $P2437
+    $P2548 = $P2437()
+.annotate 'line', 3
+    .return ($P2548)
+    .const 'Sub' $P2550 = "146_1284728484.24945" 
+    .return ($P2550)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "" :load :init :subid("post145") :outer("11_1283975952.27658")
-.annotate 'line', 0
+.sub "" :load :init :subid("post150") :outer("11_1284728484.24945")
+.annotate 'line', 3
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     .local pmc block
     set block, $P14
-    .const 'Sub' $P2460 = "142_1283975952.27658" 
-    capture_lex $P2460
-    $P2460()
-    $P2463 = get_root_global ["parrot"], "P6metaclass"
-    $P2463."new_class"("NQP::RegexActions", "Regex::P6Regex::Actions" :named("parent"))
+.annotate 'line', 5
+    .const 'Sub' $P2554 = "147_1284728484.24945" 
+    capture_lex $P2554
+    $P2554()
+    $P2557 = get_root_global ["parrot"], "P6metaclass"
+    $P2557."new_class"("NQP::RegexActions", "Regex::P6Regex::Actions" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2459"  :anon :subid("142_1283975952.27658") :outer("11_1283975952.27658")
-.annotate 'line', 0
-    get_global $P2461, "@BLOCK"
-    unless_null $P2461, vivify_146
-    $P2461 = root_new ['parrot';'ResizablePMCArray']
-    set_global "@BLOCK", $P2461
-  vivify_146:
- $P2462 = new ['ResizablePMCArray'] 
-    set_global "@BLOCK", $P2462
-    .return ($P2462)
+.sub "_block2553"  :anon :subid("147_1284728484.24945") :outer("11_1284728484.24945")
+.annotate 'line', 6
+    get_global $P2555, "@BLOCK"
+    unless_null $P2555, vivify_151
+    $P2555 = root_new ['parrot';'ResizablePMCArray']
+    set_global "@BLOCK", $P2555
+  vivify_151:
+ $P2556 = new ['ResizablePMCArray'] 
+    set_global "@BLOCK", $P2556
+.annotate 'line', 5
+    .return ($P2556)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "xblock_immediate"  :subid("12_1283975952.27658") :outer("11_1283975952.27658")
+.sub "xblock_immediate"  :subid("12_1284728484.24945") :outer("11_1284728484.24945")
     .param pmc param_19
-.annotate 'line', 0
+.annotate 'line', 9
     new $P18, 'ExceptionHandler'
     set_addr $P18, control_17
     $P18."handle_types"(.CONTROL_RETURN)
     push_eh $P18
     .lex "$xblock", param_19
+.annotate 'line', 10
     find_lex $P20, "$xblock"
-    unless_null $P20, vivify_148
+    unless_null $P20, vivify_153
     $P20 = root_new ['parrot';'ResizablePMCArray']
-  vivify_148:
+  vivify_153:
     set $P21, $P20[1]
-    unless_null $P21, vivify_149
+    unless_null $P21, vivify_154
     new $P21, "Undef"
-  vivify_149:
+  vivify_154:
     $P22 = "block_immediate"($P21)
     find_lex $P23, "$xblock"
-    unless_null $P23, vivify_150
+    unless_null $P23, vivify_155
     $P23 = root_new ['parrot';'ResizablePMCArray']
     store_lex "$xblock", $P23
-  vivify_150:
+  vivify_155:
     set $P23[1], $P22
     find_lex $P24, "$xblock"
+.annotate 'line', 9
     .return ($P24)
   control_17:
     .local pmc exception 
@@ -19938,18 +20832,20 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "block_immediate"  :subid("13_1283975952.27658") :outer("11_1283975952.27658")
+.sub "block_immediate"  :subid("13_1284728484.24945") :outer("11_1284728484.24945")
     .param pmc param_30
-.annotate 'line', 0
-    .const 'Sub' $P40 = "14_1283975952.27658" 
+.annotate 'line', 14
+    .const 'Sub' $P40 = "14_1284728484.24945" 
     capture_lex $P40
     new $P29, 'ExceptionHandler'
     set_addr $P29, control_28
     $P29."handle_types"(.CONTROL_RETURN)
     push_eh $P29
     .lex "$block", param_30
+.annotate 'line', 15
     find_lex $P31, "$block"
     $P31."blocktype"("immediate")
+.annotate 'line', 16
     find_lex $P35, "$block"
     $P36 = $P35."symtable"()
     unless $P36, unless_34
@@ -19961,11 +20857,12 @@
     set $P33, $P38
   unless_34_end:
     if $P33, unless_32_end
-    .const 'Sub' $P40 = "14_1283975952.27658" 
+    .const 'Sub' $P40 = "14_1284728484.24945" 
     capture_lex $P40
     $P40()
   unless_32_end:
     find_lex $P60, "$block"
+.annotate 'line', 14
     .return ($P60)
   control_28:
     .local pmc exception 
@@ -19977,20 +20874,22 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block39"  :anon :subid("14_1283975952.27658") :outer("13_1283975952.27658")
-.annotate 'line', 0
-    .const 'Sub' $P51 = "15_1283975952.27658" 
+.sub "_block39"  :anon :subid("14_1284728484.24945") :outer("13_1284728484.24945")
+.annotate 'line', 16
+    .const 'Sub' $P51 = "15_1284728484.24945" 
     capture_lex $P51
+.annotate 'line', 17
     new $P41, "Undef"
     .lex "$stmts", $P41
     get_hll_global $P42, ["PAST"], "Stmts"
     find_lex $P43, "$block"
     $P44 = $P42."new"($P43 :named("node"))
     store_lex "$stmts", $P44
+.annotate 'line', 18
     find_lex $P46, "$block"
     $P47 = $P46."list"()
     defined $I48, $P47
-    unless $I48, for_undef_151
+    unless $I48, for_undef_156
     iter $P45, $P47
     new $P57, 'ExceptionHandler'
     set_addr $P57, loop56_handler
@@ -20000,7 +20899,7 @@
     unless $P45, loop56_done
     shift $P49, $P45
   loop56_redo:
-    .const 'Sub' $P51 = "15_1283975952.27658" 
+    .const 'Sub' $P51 = "15_1284728484.24945" 
     capture_lex $P51
     $P51($P49)
   loop56_next:
@@ -20013,17 +20912,19 @@
     eq $P58, .CONTROL_LOOP_REDO, loop56_redo
   loop56_done:
     pop_eh 
-  for_undef_151:
+  for_undef_156:
+.annotate 'line', 19
     find_lex $P59, "$stmts"
     store_lex "$block", $P59
+.annotate 'line', 16
     .return ($P59)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block50"  :anon :subid("15_1283975952.27658") :outer("14_1283975952.27658")
+.sub "_block50"  :anon :subid("15_1284728484.24945") :outer("14_1284728484.24945")
     .param pmc param_52
-.annotate 'line', 0
+.annotate 'line', 18
     .lex "$_", param_52
     find_lex $P53, "$stmts"
     find_lex $P54, "$_"
@@ -20034,18 +20935,20 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "vivitype"  :subid("16_1283975952.27658") :outer("11_1283975952.27658")
+.sub "vivitype"  :subid("16_1284728484.24945") :outer("11_1284728484.24945")
     .param pmc param_66
-.annotate 'line', 0
+.annotate 'line', 24
     new $P65, 'ExceptionHandler'
     set_addr $P65, control_64
     $P65."handle_types"(.CONTROL_RETURN)
     push_eh $P65
     .lex "$sigil", param_66
+.annotate 'line', 25
     find_lex $P69, "$sigil"
     set $S70, $P69
     iseq $I71, $S70, "%"
     if $I71, if_68
+.annotate 'line', 27
     find_lex $P76, "$sigil"
     set $S77, $P76
     iseq $I78, $S77, "@"
@@ -20055,17 +20958,21 @@
     set $P74, $P81
     goto if_75_end
   if_75:
+.annotate 'line', 28
     get_hll_global $P79, ["PAST"], "Op"
     $P80 = $P79."new"("    %r = root_new ['parrot';'ResizablePMCArray']" :named("inline"))
     set $P74, $P80
   if_75_end:
     set $P67, $P74
+.annotate 'line', 25
     goto if_68_end
   if_68:
+.annotate 'line', 26
     get_hll_global $P72, ["PAST"], "Op"
     $P73 = $P72."new"("    %r = root_new ['parrot';'Hash']" :named("inline"))
     set $P67, $P73
   if_68_end:
+.annotate 'line', 24
     .return ($P67)
   control_64:
     .local pmc exception 
@@ -20077,29 +20984,34 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "colonpair_str"  :subid("17_1283975952.27658") :outer("11_1283975952.27658")
+.sub "colonpair_str"  :subid("17_1284728484.24945") :outer("11_1284728484.24945")
     .param pmc param_87
-.annotate 'line', 0
+.annotate 'line', 43
     new $P86, 'ExceptionHandler'
     set_addr $P86, control_85
     $P86."handle_types"(.CONTROL_RETURN)
     push_eh $P86
     .lex "$ast", param_87
+.annotate 'line', 44
     get_hll_global $P90, ["PAST"], "Op"
     find_lex $P91, "$ast"
     $P92 = $P90."ACCEPTS"($P91)
     if $P92, if_89
+.annotate 'line', 46
     find_lex $P96, "$ast"
     $P97 = $P96."value"()
     set $P88, $P97
+.annotate 'line', 44
     goto if_89_end
   if_89:
+.annotate 'line', 45
     find_lex $P93, "$ast"
     $P94 = $P93."list"()
     join $S95, " ", $P94
     new $P88, 'String'
     set $P88, $S95
   if_89_end:
+.annotate 'line', 43
     .return ($P88)
   control_85:
     .local pmc exception 
@@ -20111,87 +21023,113 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "push_block_handler"  :subid("18_1283975952.27658") :outer("11_1283975952.27658")
+.sub "push_block_handler"  :subid("18_1284728484.24945") :outer("11_1284728484.24945")
     .param pmc param_103
     .param pmc param_104
-.annotate 'line', 0
+.annotate 'line', 223
     new $P102, 'ExceptionHandler'
     set_addr $P102, control_101
     $P102."handle_types"(.CONTROL_RETURN)
     push_eh $P102
     .lex "$/", param_103
     .lex "$block", param_104
+.annotate 'line', 224
     get_global $P106, "@BLOCK"
-    unless_null $P106, vivify_152
+    unless_null $P106, vivify_157
     $P106 = root_new ['parrot';'ResizablePMCArray']
-  vivify_152:
+  vivify_157:
     set $P107, $P106[0]
-    unless_null $P107, vivify_153
+    unless_null $P107, vivify_158
     new $P107, "Undef"
-  vivify_153:
+  vivify_158:
     $P108 = $P107."handlers"()
     if $P108, unless_105_end
+.annotate 'line', 225
     get_global $P109, "@BLOCK"
-    unless_null $P109, vivify_154
+    unless_null $P109, vivify_159
     $P109 = root_new ['parrot';'ResizablePMCArray']
-  vivify_154:
+  vivify_159:
     set $P110, $P109[0]
-    unless_null $P110, vivify_155
+    unless_null $P110, vivify_160
     new $P110, "Undef"
-  vivify_155:
+  vivify_160:
     new $P111, "ResizablePMCArray"
     $P110."handlers"($P111)
   unless_105_end:
+.annotate 'line', 227
     find_lex $P113, "$block"
     $P114 = $P113."arity"()
     if $P114, unless_112_end
+.annotate 'line', 228
     find_lex $P115, "$block"
+.annotate 'line', 229
     get_hll_global $P116, ["PAST"], "Op"
+.annotate 'line', 230
     get_hll_global $P117, ["PAST"], "Var"
     $P118 = $P117."new"("lexical" :named("scope"), "$!" :named("name"), 1 :named("isdecl"))
+.annotate 'line', 231
     get_hll_global $P119, ["PAST"], "Var"
     $P120 = $P119."new"("lexical" :named("scope"), "$_" :named("name"))
     $P121 = $P116."new"($P118, $P120, "bind" :named("pasttype"))
+.annotate 'line', 229
     $P115."unshift"($P121)
+.annotate 'line', 234
     find_lex $P122, "$block"
     get_hll_global $P123, ["PAST"], "Var"
     $P124 = $P123."new"("$_" :named("name"), "parameter" :named("scope"))
     $P122."unshift"($P124)
+.annotate 'line', 235
     find_lex $P125, "$block"
     $P125."symbol"("$_", "lexical" :named("scope"))
+.annotate 'line', 236
     find_lex $P126, "$block"
     $P126."symbol"("$!", "lexical" :named("scope"))
+.annotate 'line', 237
     find_lex $P127, "$block"
     $P127."arity"(1)
   unless_112_end:
+.annotate 'line', 239
     find_lex $P128, "$block"
     $P128."blocktype"("declaration")
+.annotate 'line', 240
     get_global $P129, "@BLOCK"
-    unless_null $P129, vivify_156
+    unless_null $P129, vivify_161
     $P129 = root_new ['parrot';'ResizablePMCArray']
-  vivify_156:
+  vivify_161:
     set $P130, $P129[0]
-    unless_null $P130, vivify_157
+    unless_null $P130, vivify_162
     new $P130, "Undef"
-  vivify_157:
+  vivify_162:
     $P131 = $P130."handlers"()
+.annotate 'line', 241
     get_hll_global $P132, ["PAST"], "Control"
     find_lex $P133, "$/"
+.annotate 'line', 243
     get_hll_global $P134, ["PAST"], "Stmts"
+.annotate 'line', 244
     get_hll_global $P135, ["PAST"], "Op"
     find_lex $P136, "$block"
+.annotate 'line', 246
     get_hll_global $P137, ["PAST"], "Var"
     $P138 = $P137."new"("register" :named("scope"), "exception" :named("name"))
     $P139 = $P135."new"($P136, $P138, "call" :named("pasttype"))
+.annotate 'line', 248
     get_hll_global $P140, ["PAST"], "Op"
+.annotate 'line', 249
     get_hll_global $P141, ["PAST"], "Var"
+.annotate 'line', 250
     get_hll_global $P142, ["PAST"], "Var"
     $P143 = $P142."new"("register" :named("scope"), "exception" :named("name"))
     $P144 = $P141."new"($P143, "handled", "keyed" :named("scope"))
+.annotate 'line', 249
     $P145 = $P140."new"($P144, 1, "bind" :named("pasttype"))
+.annotate 'line', 248
     $P146 = $P134."new"($P139, $P145)
+.annotate 'line', 243
     $P147 = $P132."new"($P146, $P133 :named("node"))
+.annotate 'line', 241
     $P148 = $P131."unshift"($P147)
+.annotate 'line', 223
     .return ($P148)
   control_101:
     .local pmc exception 
@@ -20203,24 +21141,28 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "control"  :subid("19_1283975952.27658") :outer("11_1283975952.27658")
+.sub "control"  :subid("19_1284728484.24945") :outer("11_1284728484.24945")
     .param pmc param_154
     .param pmc param_155
-.annotate 'line', 0
+.annotate 'line', 861
     new $P153, 'ExceptionHandler'
     set_addr $P153, control_152
     $P153."handle_types"(.CONTROL_RETURN)
     push_eh $P153
     .lex "$/", param_154
     .lex "$type", param_155
+.annotate 'line', 862
     find_lex $P156, "$/"
     get_hll_global $P157, ["PAST"], "Op"
     find_lex $P158, "$/"
+.annotate 'line', 866
     get_hll_global $P159, ["PAST"], "Val"
     find_lex $P160, "$type"
     $P161 = $P159."new"($P160 :named("value"), "!except_types" :named("returns"))
     $P162 = $P157."new"(0, $P161, $P158 :named("node"), "die__vii" :named("pirop"))
+.annotate 'line', 862
     $P163 = $P156."!make"($P162)
+.annotate 'line', 861
     .return ($P163)
   control_152:
     .local pmc exception 
@@ -20232,9 +21174,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("20_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "TOP"  :subid("20_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_173
-.annotate 'line', 0
+.annotate 'line', 33
     new $P172, 'ExceptionHandler'
     set_addr $P172, control_171
     $P172."handle_types"(.CONTROL_RETURN)
@@ -20243,13 +21185,13 @@
     .lex "$/", param_173
     find_lex $P174, "$/"
     find_lex $P175, "$/"
-    unless_null $P175, vivify_158
+    unless_null $P175, vivify_163
     $P175 = root_new ['parrot';'Hash']
-  vivify_158:
+  vivify_163:
     set $P176, $P175["comp_unit"]
-    unless_null $P176, vivify_159
+    unless_null $P176, vivify_164
     new $P176, "Undef"
-  vivify_159:
+  vivify_164:
     $P177 = $P176."ast"()
     $P178 = $P174."!make"($P177)
     .return ($P178)
@@ -20263,78 +21205,85 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "deflongname"  :subid("21_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "deflongname"  :subid("21_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_183
-.annotate 'line', 0
+.annotate 'line', 35
     new $P182, 'ExceptionHandler'
     set_addr $P182, control_181
     $P182."handle_types"(.CONTROL_RETURN)
     push_eh $P182
     .lex "self", self
     .lex "$/", param_183
+.annotate 'line', 36
     find_lex $P184, "$/"
+.annotate 'line', 37
     find_lex $P187, "$/"
-    unless_null $P187, vivify_160
+    unless_null $P187, vivify_165
     $P187 = root_new ['parrot';'Hash']
-  vivify_160:
+  vivify_165:
     set $P188, $P187["colonpair"]
-    unless_null $P188, vivify_161
+    unless_null $P188, vivify_166
     new $P188, "Undef"
-  vivify_161:
+  vivify_166:
     if $P188, if_186
+.annotate 'line', 39
     find_lex $P208, "$/"
     set $S209, $P208
     new $P185, 'String'
     set $P185, $S209
+.annotate 'line', 37
     goto if_186_end
   if_186:
     find_lex $P189, "$/"
-    unless_null $P189, vivify_162
+    unless_null $P189, vivify_167
     $P189 = root_new ['parrot';'Hash']
-  vivify_162:
+  vivify_167:
     set $P190, $P189["identifier"]
-    unless_null $P190, vivify_163
+    unless_null $P190, vivify_168
     new $P190, "Undef"
-  vivify_163:
+  vivify_168:
     set $S191, $P190
     new $P192, 'String'
     set $P192, $S191
     concat $P193, $P192, ":"
     find_lex $P194, "$/"
-    unless_null $P194, vivify_164
+    unless_null $P194, vivify_169
     $P194 = root_new ['parrot';'Hash']
-  vivify_164:
+  vivify_169:
     set $P195, $P194["colonpair"]
-    unless_null $P195, vivify_165
+    unless_null $P195, vivify_170
     $P195 = root_new ['parrot';'ResizablePMCArray']
-  vivify_165:
+  vivify_170:
     set $P196, $P195[0]
-    unless_null $P196, vivify_166
+    unless_null $P196, vivify_171
     new $P196, "Undef"
-  vivify_166:
+  vivify_171:
     $P197 = $P196."ast"()
     $S198 = $P197."named"()
     concat $P199, $P193, $S198
     concat $P200, $P199, "<"
+.annotate 'line', 38
     find_lex $P201, "$/"
-    unless_null $P201, vivify_167
+    unless_null $P201, vivify_172
     $P201 = root_new ['parrot';'Hash']
-  vivify_167:
+  vivify_172:
     set $P202, $P201["colonpair"]
-    unless_null $P202, vivify_168
+    unless_null $P202, vivify_173
     $P202 = root_new ['parrot';'ResizablePMCArray']
-  vivify_168:
+  vivify_173:
     set $P203, $P202[0]
-    unless_null $P203, vivify_169
+    unless_null $P203, vivify_174
     new $P203, "Undef"
-  vivify_169:
+  vivify_174:
     $P204 = $P203."ast"()
     $S205 = "colonpair_str"($P204)
     concat $P206, $P200, $S205
     concat $P207, $P206, ">"
     set $P185, $P207
   if_186_end:
+.annotate 'line', 37
     $P210 = $P184."!make"($P185)
+.annotate 'line', 35
     .return ($P210)
   control_181:
     .local pmc exception 
@@ -20346,56 +21295,70 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "comp_unit"  :subid("22_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "comp_unit"  :subid("22_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_216
-.annotate 'line', 0
+.annotate 'line', 49
     new $P215, 'ExceptionHandler'
     set_addr $P215, control_214
     $P215."handle_types"(.CONTROL_RETURN)
     push_eh $P215
     .lex "self", self
     .lex "$/", param_216
+.annotate 'line', 50
     new $P217, "Undef"
     .lex "$mainline", $P217
+.annotate 'line', 51
     new $P218, "Undef"
     .lex "$unit", $P218
+.annotate 'line', 50
     find_lex $P219, "$/"
-    unless_null $P219, vivify_170
+    unless_null $P219, vivify_175
     $P219 = root_new ['parrot';'Hash']
-  vivify_170:
+  vivify_175:
     set $P220, $P219["statementlist"]
-    unless_null $P220, vivify_171
+    unless_null $P220, vivify_176
     new $P220, "Undef"
-  vivify_171:
+  vivify_176:
     $P221 = $P220."ast"()
     store_lex "$mainline", $P221
+.annotate 'line', 51
     get_global $P222, "@BLOCK"
     $P223 = $P222."shift"()
     store_lex "$unit", $P223
+.annotate 'line', 55
     find_lex $P224, "$unit"
     find_lex $P225, "self"
     $P226 = $P225."CTXSAVE"()
     $P224."push"($P226)
+.annotate 'line', 60
     find_lex $P227, "$unit"
+.annotate 'line', 61
     get_hll_global $P228, ["PAST"], "Op"
     find_lex $P229, "$mainline"
     $P230 = $P228."new"($P229, "return" :named("pirop"))
     $P227."push"($P230)
+.annotate 'line', 66
     find_lex $P231, "$unit"
+.annotate 'line', 67
     get_hll_global $P232, ["PAST"], "Block"
+.annotate 'line', 69
     get_hll_global $P233, ["PAST"], "Op"
     get_hll_global $P234, ["PAST"], "Val"
     find_lex $P235, "$unit"
     $P236 = $P234."new"($P235 :named("value"))
     $P237 = $P233."new"($P236, "call" :named("pasttype"))
     $P238 = $P232."new"($P237, ":load" :named("pirflags"), 0 :named("lexical"), "" :named("namespace"))
+.annotate 'line', 67
     $P231."push"($P238)
+.annotate 'line', 72
     find_lex $P239, "$unit"
     find_lex $P240, "$/"
     $P239."node"($P240)
+.annotate 'line', 73
     find_lex $P241, "$/"
     find_lex $P242, "$unit"
     $P243 = $P241."!make"($P242)
+.annotate 'line', 49
     .return ($P243)
   control_214:
     .local pmc exception 
@@ -20407,10 +21370,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statementlist"  :subid("23_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "statementlist"  :subid("23_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_248
-.annotate 'line', 0
-    .const 'Sub' $P262 = "24_1283975952.27658" 
+.annotate 'line', 76
+    .const 'Sub' $P262 = "24_1284728484.24945" 
     capture_lex $P262
     new $P247, 'ExceptionHandler'
     set_addr $P247, control_246
@@ -20418,31 +21381,34 @@
     push_eh $P247
     .lex "self", self
     .lex "$/", param_248
+.annotate 'line', 77
     new $P249, "Undef"
     .lex "$past", $P249
     get_hll_global $P250, ["PAST"], "Stmts"
     find_lex $P251, "$/"
     $P252 = $P250."new"($P251 :named("node"))
     store_lex "$past", $P252
+.annotate 'line', 78
     find_lex $P254, "$/"
-    unless_null $P254, vivify_172
+    unless_null $P254, vivify_177
     $P254 = root_new ['parrot';'Hash']
-  vivify_172:
+  vivify_177:
     set $P255, $P254["statement"]
-    unless_null $P255, vivify_173
+    unless_null $P255, vivify_178
     new $P255, "Undef"
-  vivify_173:
+  vivify_178:
     unless $P255, if_253_end
+.annotate 'line', 79
     find_lex $P257, "$/"
-    unless_null $P257, vivify_174
+    unless_null $P257, vivify_179
     $P257 = root_new ['parrot';'Hash']
-  vivify_174:
+  vivify_179:
     set $P258, $P257["statement"]
-    unless_null $P258, vivify_175
+    unless_null $P258, vivify_180
     new $P258, "Undef"
-  vivify_175:
+  vivify_180:
     defined $I259, $P258
-    unless $I259, for_undef_176
+    unless $I259, for_undef_181
     iter $P256, $P258
     new $P282, 'ExceptionHandler'
     set_addr $P282, loop281_handler
@@ -20452,7 +21418,7 @@
     unless $P256, loop281_done
     shift $P260, $P256
   loop281_redo:
-    .const 'Sub' $P262 = "24_1283975952.27658" 
+    .const 'Sub' $P262 = "24_1284728484.24945" 
     capture_lex $P262
     $P262($P260)
   loop281_next:
@@ -20465,11 +21431,13 @@
     eq $P283, .CONTROL_LOOP_REDO, loop281_redo
   loop281_done:
     pop_eh 
-  for_undef_176:
+  for_undef_181:
   if_253_end:
+.annotate 'line', 86
     find_lex $P284, "$/"
     find_lex $P285, "$past"
     $P286 = $P284."!make"($P285)
+.annotate 'line', 76
     .return ($P286)
   control_246:
     .local pmc exception 
@@ -20480,63 +21448,67 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block261"  :anon :subid("24_1283975952.27658") :outer("23_1283975952.27658")
+.sub "_block261"  :anon :subid("24_1284728484.24945") :outer("23_1284728484.24945")
     .param pmc param_264
-.annotate 'line', 0
+.annotate 'line', 80
     new $P263, "Undef"
     .lex "$ast", $P263
     .lex "$_", param_264
     find_lex $P265, "$_"
     $P266 = $P265."ast"()
     store_lex "$ast", $P266
+.annotate 'line', 81
     find_lex $P268, "$ast"
-    unless_null $P268, vivify_177
+    unless_null $P268, vivify_182
     $P268 = root_new ['parrot';'Hash']
-  vivify_177:
+  vivify_182:
     set $P269, $P268["sink"]
-    unless_null $P269, vivify_178
+    unless_null $P269, vivify_183
     new $P269, "Undef"
-  vivify_178:
+  vivify_183:
     defined $I270, $P269
     unless $I270, if_267_end
     find_lex $P271, "$ast"
-    unless_null $P271, vivify_179
+    unless_null $P271, vivify_184
     $P271 = root_new ['parrot';'Hash']
-  vivify_179:
+  vivify_184:
     set $P272, $P271["sink"]
-    unless_null $P272, vivify_180
+    unless_null $P272, vivify_185
     new $P272, "Undef"
-  vivify_180:
+  vivify_185:
     store_lex "$ast", $P272
   if_267_end:
+.annotate 'line', 82
     find_lex $P274, "$ast"
-    unless_null $P274, vivify_181
+    unless_null $P274, vivify_186
     $P274 = root_new ['parrot';'Hash']
-  vivify_181:
+  vivify_186:
     set $P275, $P274["bareblock"]
-    unless_null $P275, vivify_182
+    unless_null $P275, vivify_187
     new $P275, "Undef"
-  vivify_182:
+  vivify_187:
     unless $P275, if_273_end
     find_lex $P276, "$ast"
     $P277 = "block_immediate"($P276)
     store_lex "$ast", $P277
   if_273_end:
+.annotate 'line', 83
     find_lex $P278, "$past"
     find_lex $P279, "$ast"
     $P280 = $P278."push"($P279)
+.annotate 'line', 79
     .return ($P280)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement"  :subid("25_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "statement"  :subid("25_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_291
     .param pmc param_292 :optional
     .param int has_param_292 :opt_flag
-.annotate 'line', 0
-    .const 'Sub' $P300 = "26_1283975952.27658" 
+.annotate 'line', 89
+    .const 'Sub' $P300 = "26_1284728484.24945" 
     capture_lex $P300
     new $P290, 'ExceptionHandler'
     set_addr $P290, control_289
@@ -20544,57 +21516,66 @@
     push_eh $P290
     .lex "self", self
     .lex "$/", param_291
-    if has_param_292, optparam_183
+    if has_param_292, optparam_188
     new $P293, "Undef"
     set param_292, $P293
-  optparam_183:
+  optparam_188:
     .lex "$key", param_292
+.annotate 'line', 90
     new $P294, "Undef"
     .lex "$past", $P294
+.annotate 'line', 89
     find_lex $P295, "$past"
+.annotate 'line', 91
     find_lex $P297, "$/"
-    unless_null $P297, vivify_184
+    unless_null $P297, vivify_189
     $P297 = root_new ['parrot';'Hash']
-  vivify_184:
+  vivify_189:
     set $P298, $P297["EXPR"]
-    unless_null $P298, vivify_185
+    unless_null $P298, vivify_190
     new $P298, "Undef"
-  vivify_185:
+  vivify_190:
     if $P298, if_296
+.annotate 'line', 112
     find_lex $P361, "$/"
-    unless_null $P361, vivify_186
+    unless_null $P361, vivify_191
     $P361 = root_new ['parrot';'Hash']
-  vivify_186:
+  vivify_191:
     set $P362, $P361["statement_control"]
-    unless_null $P362, vivify_187
+    unless_null $P362, vivify_192
     new $P362, "Undef"
-  vivify_187:
+  vivify_192:
     if $P362, if_360
+.annotate 'line', 113
     new $P366, "Integer"
     assign $P366, 0
     store_lex "$past", $P366
     goto if_360_end
   if_360:
+.annotate 'line', 112
     find_lex $P363, "$/"
-    unless_null $P363, vivify_188
+    unless_null $P363, vivify_193
     $P363 = root_new ['parrot';'Hash']
-  vivify_188:
+  vivify_193:
     set $P364, $P363["statement_control"]
-    unless_null $P364, vivify_189
+    unless_null $P364, vivify_194
     new $P364, "Undef"
-  vivify_189:
+  vivify_194:
     $P365 = $P364."ast"()
     store_lex "$past", $P365
   if_360_end:
     goto if_296_end
   if_296:
-    .const 'Sub' $P300 = "26_1283975952.27658" 
+.annotate 'line', 91
+    .const 'Sub' $P300 = "26_1284728484.24945" 
     capture_lex $P300
     $P300()
   if_296_end:
+.annotate 'line', 114
     find_lex $P367, "$/"
     find_lex $P368, "$past"
     $P369 = $P367."!make"($P368)
+.annotate 'line', 89
     .return ($P369)
   control_289:
     .local pmc exception 
@@ -20605,191 +21586,213 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block299"  :anon :subid("26_1283975952.27658") :outer("25_1283975952.27658")
-.annotate 'line', 0
+.sub "_block299"  :anon :subid("26_1284728484.24945") :outer("25_1284728484.24945")
+.annotate 'line', 92
     new $P301, "Undef"
     .lex "$mc", $P301
+.annotate 'line', 93
     new $P302, "Undef"
     .lex "$ml", $P302
+.annotate 'line', 92
     find_lex $P303, "$/"
-    unless_null $P303, vivify_190
+    unless_null $P303, vivify_195
     $P303 = root_new ['parrot';'Hash']
-  vivify_190:
+  vivify_195:
     set $P304, $P303["statement_mod_cond"]
-    unless_null $P304, vivify_191
+    unless_null $P304, vivify_196
     $P304 = root_new ['parrot';'ResizablePMCArray']
-  vivify_191:
+  vivify_196:
     set $P305, $P304[0]
-    unless_null $P305, vivify_192
+    unless_null $P305, vivify_197
     new $P305, "Undef"
-  vivify_192:
+  vivify_197:
     store_lex "$mc", $P305
+.annotate 'line', 93
     find_lex $P306, "$/"
-    unless_null $P306, vivify_193
+    unless_null $P306, vivify_198
     $P306 = root_new ['parrot';'Hash']
-  vivify_193:
+  vivify_198:
     set $P307, $P306["statement_mod_loop"]
-    unless_null $P307, vivify_194
+    unless_null $P307, vivify_199
     $P307 = root_new ['parrot';'ResizablePMCArray']
-  vivify_194:
+  vivify_199:
     set $P308, $P307[0]
-    unless_null $P308, vivify_195
+    unless_null $P308, vivify_200
     new $P308, "Undef"
-  vivify_195:
+  vivify_200:
     store_lex "$ml", $P308
+.annotate 'line', 94
     find_lex $P309, "$/"
-    unless_null $P309, vivify_196
+    unless_null $P309, vivify_201
     $P309 = root_new ['parrot';'Hash']
-  vivify_196:
+  vivify_201:
     set $P310, $P309["EXPR"]
-    unless_null $P310, vivify_197
+    unless_null $P310, vivify_202
     new $P310, "Undef"
-  vivify_197:
+  vivify_202:
     $P311 = $P310."ast"()
     store_lex "$past", $P311
+.annotate 'line', 95
     find_lex $P313, "$mc"
     unless $P313, if_312_end
+.annotate 'line', 96
     get_hll_global $P314, ["PAST"], "Op"
     find_lex $P315, "$mc"
-    unless_null $P315, vivify_198
+    unless_null $P315, vivify_203
     $P315 = root_new ['parrot';'Hash']
-  vivify_198:
+  vivify_203:
     set $P316, $P315["cond"]
-    unless_null $P316, vivify_199
+    unless_null $P316, vivify_204
     new $P316, "Undef"
-  vivify_199:
+  vivify_204:
     $P317 = $P316."ast"()
     find_lex $P318, "$past"
     find_lex $P319, "$mc"
-    unless_null $P319, vivify_200
+    unless_null $P319, vivify_205
     $P319 = root_new ['parrot';'Hash']
-  vivify_200:
+  vivify_205:
     set $P320, $P319["sym"]
-    unless_null $P320, vivify_201
+    unless_null $P320, vivify_206
     new $P320, "Undef"
-  vivify_201:
+  vivify_206:
     set $S321, $P320
     find_lex $P322, "$/"
     $P323 = $P314."new"($P317, $P318, $S321 :named("pasttype"), $P322 :named("node"))
     store_lex "$past", $P323
   if_312_end:
+.annotate 'line', 98
     find_lex $P326, "$ml"
     if $P326, if_325
     set $P324, $P326
     goto if_325_end
   if_325:
+.annotate 'line', 99
     find_lex $P329, "$ml"
-    unless_null $P329, vivify_202
+    unless_null $P329, vivify_207
     $P329 = root_new ['parrot';'Hash']
-  vivify_202:
+  vivify_207:
     set $P330, $P329["sym"]
-    unless_null $P330, vivify_203
+    unless_null $P330, vivify_208
     new $P330, "Undef"
-  vivify_203:
+  vivify_208:
     set $S331, $P330
     iseq $I332, $S331, "for"
     if $I332, if_328
+.annotate 'line', 108
     get_hll_global $P350, ["PAST"], "Op"
     find_lex $P351, "$ml"
-    unless_null $P351, vivify_204
+    unless_null $P351, vivify_209
     $P351 = root_new ['parrot';'Hash']
-  vivify_204:
+  vivify_209:
     set $P352, $P351["cond"]
-    unless_null $P352, vivify_205
+    unless_null $P352, vivify_210
     new $P352, "Undef"
-  vivify_205:
+  vivify_210:
     $P353 = $P352."ast"()
     find_lex $P354, "$past"
     find_lex $P355, "$ml"
-    unless_null $P355, vivify_206
+    unless_null $P355, vivify_211
     $P355 = root_new ['parrot';'Hash']
-  vivify_206:
+  vivify_211:
     set $P356, $P355["sym"]
-    unless_null $P356, vivify_207
+    unless_null $P356, vivify_212
     new $P356, "Undef"
-  vivify_207:
+  vivify_212:
     set $S357, $P356
     find_lex $P358, "$/"
     $P359 = $P350."new"($P353, $P354, $S357 :named("pasttype"), $P358 :named("node"))
     store_lex "$past", $P359
+.annotate 'line', 107
     set $P327, $P359
+.annotate 'line', 99
     goto if_328_end
   if_328:
+.annotate 'line', 100
     get_hll_global $P333, ["PAST"], "Block"
+.annotate 'line', 101
     get_hll_global $P334, ["PAST"], "Var"
     $P335 = $P334."new"("$_" :named("name"), "parameter" :named("scope"), 1 :named("isdecl"))
     find_lex $P336, "$past"
     $P337 = $P333."new"($P335, $P336, "immediate" :named("blocktype"))
+.annotate 'line', 100
     store_lex "$past", $P337
+.annotate 'line', 103
     find_lex $P338, "$past"
     $P338."symbol"("$_", "lexical" :named("scope"))
+.annotate 'line', 104
     find_lex $P339, "$past"
     $P339."arity"(1)
+.annotate 'line', 105
     get_hll_global $P340, ["PAST"], "Op"
     find_lex $P341, "$ml"
-    unless_null $P341, vivify_208
+    unless_null $P341, vivify_213
     $P341 = root_new ['parrot';'Hash']
-  vivify_208:
+  vivify_213:
     set $P342, $P341["cond"]
-    unless_null $P342, vivify_209
+    unless_null $P342, vivify_214
     new $P342, "Undef"
-  vivify_209:
+  vivify_214:
     $P343 = $P342."ast"()
     find_lex $P344, "$past"
     find_lex $P345, "$ml"
-    unless_null $P345, vivify_210
+    unless_null $P345, vivify_215
     $P345 = root_new ['parrot';'Hash']
-  vivify_210:
+  vivify_215:
     set $P346, $P345["sym"]
-    unless_null $P346, vivify_211
+    unless_null $P346, vivify_216
     new $P346, "Undef"
-  vivify_211:
+  vivify_216:
     set $S347, $P346
     find_lex $P348, "$/"
     $P349 = $P340."new"($P343, $P344, $S347 :named("pasttype"), $P348 :named("node"))
     store_lex "$past", $P349
+.annotate 'line', 99
     set $P327, $P349
   if_328_end:
+.annotate 'line', 98
     set $P324, $P327
   if_325_end:
+.annotate 'line', 91
     .return ($P324)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "xblock"  :subid("27_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "xblock"  :subid("27_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_374
-.annotate 'line', 0
+.annotate 'line', 117
     new $P373, 'ExceptionHandler'
     set_addr $P373, control_372
     $P373."handle_types"(.CONTROL_RETURN)
     push_eh $P373
     .lex "self", self
     .lex "$/", param_374
+.annotate 'line', 118
     find_lex $P375, "$/"
     get_hll_global $P376, ["PAST"], "Op"
     find_lex $P377, "$/"
-    unless_null $P377, vivify_212
+    unless_null $P377, vivify_217
     $P377 = root_new ['parrot';'Hash']
-  vivify_212:
+  vivify_217:
     set $P378, $P377["EXPR"]
-    unless_null $P378, vivify_213
+    unless_null $P378, vivify_218
     new $P378, "Undef"
-  vivify_213:
+  vivify_218:
     $P379 = $P378."ast"()
     find_lex $P380, "$/"
-    unless_null $P380, vivify_214
+    unless_null $P380, vivify_219
     $P380 = root_new ['parrot';'Hash']
-  vivify_214:
+  vivify_219:
     set $P381, $P380["pblock"]
-    unless_null $P381, vivify_215
+    unless_null $P381, vivify_220
     new $P381, "Undef"
-  vivify_215:
+  vivify_220:
     $P382 = $P381."ast"()
     find_lex $P383, "$/"
     $P384 = $P376."new"($P379, $P382, "if" :named("pasttype"), $P383 :named("node"))
     $P385 = $P375."!make"($P384)
+.annotate 'line', 117
     .return ($P385)
   control_372:
     .local pmc exception 
@@ -20801,26 +21804,28 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "pblock"  :subid("28_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "pblock"  :subid("28_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_390
-.annotate 'line', 0
+.annotate 'line', 121
     new $P389, 'ExceptionHandler'
     set_addr $P389, control_388
     $P389."handle_types"(.CONTROL_RETURN)
     push_eh $P389
     .lex "self", self
     .lex "$/", param_390
+.annotate 'line', 122
     find_lex $P391, "$/"
     find_lex $P392, "$/"
-    unless_null $P392, vivify_216
+    unless_null $P392, vivify_221
     $P392 = root_new ['parrot';'Hash']
-  vivify_216:
+  vivify_221:
     set $P393, $P392["blockoid"]
-    unless_null $P393, vivify_217
+    unless_null $P393, vivify_222
     new $P393, "Undef"
-  vivify_217:
+  vivify_222:
     $P394 = $P393."ast"()
     $P395 = $P391."!make"($P394)
+.annotate 'line', 121
     .return ($P395)
   control_388:
     .local pmc exception 
@@ -20832,26 +21837,28 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "block"  :subid("29_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "block"  :subid("29_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_400
-.annotate 'line', 0
+.annotate 'line', 125
     new $P399, 'ExceptionHandler'
     set_addr $P399, control_398
     $P399."handle_types"(.CONTROL_RETURN)
     push_eh $P399
     .lex "self", self
     .lex "$/", param_400
+.annotate 'line', 126
     find_lex $P401, "$/"
     find_lex $P402, "$/"
-    unless_null $P402, vivify_218
+    unless_null $P402, vivify_223
     $P402 = root_new ['parrot';'Hash']
-  vivify_218:
+  vivify_223:
     set $P403, $P402["blockoid"]
-    unless_null $P403, vivify_219
+    unless_null $P403, vivify_224
     new $P403, "Undef"
-  vivify_219:
+  vivify_224:
     $P404 = $P403."ast"()
     $P405 = $P401."!make"($P404)
+.annotate 'line', 125
     .return ($P405)
   control_398:
     .local pmc exception 
@@ -20863,43 +21870,52 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "blockoid"  :subid("30_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "blockoid"  :subid("30_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_410
-.annotate 'line', 0
+.annotate 'line', 129
     new $P409, 'ExceptionHandler'
     set_addr $P409, control_408
     $P409."handle_types"(.CONTROL_RETURN)
     push_eh $P409
     .lex "self", self
     .lex "$/", param_410
+.annotate 'line', 130
     new $P411, "Undef"
     .lex "$past", $P411
+.annotate 'line', 131
     new $P412, "Undef"
     .lex "$BLOCK", $P412
+.annotate 'line', 130
     find_lex $P413, "$/"
-    unless_null $P413, vivify_220
+    unless_null $P413, vivify_225
     $P413 = root_new ['parrot';'Hash']
-  vivify_220:
+  vivify_225:
     set $P414, $P413["statementlist"]
-    unless_null $P414, vivify_221
+    unless_null $P414, vivify_226
     new $P414, "Undef"
-  vivify_221:
+  vivify_226:
     $P415 = $P414."ast"()
     store_lex "$past", $P415
+.annotate 'line', 131
     get_global $P416, "@BLOCK"
     $P417 = $P416."shift"()
     store_lex "$BLOCK", $P417
+.annotate 'line', 132
     find_lex $P418, "$BLOCK"
     find_lex $P419, "$past"
     $P418."push"($P419)
+.annotate 'line', 133
     find_lex $P420, "$BLOCK"
     find_lex $P421, "$/"
     $P420."node"($P421)
+.annotate 'line', 134
     find_lex $P422, "$BLOCK"
     $P422."closure"(1)
+.annotate 'line', 135
     find_lex $P423, "$/"
     find_lex $P424, "$BLOCK"
     $P425 = $P423."!make"($P424)
+.annotate 'line', 129
     .return ($P425)
   control_408:
     .local pmc exception 
@@ -20911,27 +21927,31 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "newpad"  :subid("31_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "newpad"  :subid("31_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_430
-.annotate 'line', 0
+.annotate 'line', 138
     new $P429, 'ExceptionHandler'
     set_addr $P429, control_428
     $P429."handle_types"(.CONTROL_RETURN)
     push_eh $P429
     .lex "self", self
     .lex "$/", param_430
+.annotate 'line', 139
     get_global $P431, "@BLOCK"
-    unless_null $P431, vivify_222
+    unless_null $P431, vivify_227
     $P431 = root_new ['parrot';'ResizablePMCArray']
     set_global "@BLOCK", $P431
-  vivify_222:
+  vivify_227:
+.annotate 'line', 138
     get_global $P432, "@BLOCK"
+.annotate 'line', 140
     get_global $P433, "@BLOCK"
     get_hll_global $P434, ["PAST"], "Block"
     get_hll_global $P435, ["PAST"], "Stmts"
     $P436 = $P435."new"()
     $P437 = $P434."new"($P436)
     $P438 = $P433."unshift"($P437)
+.annotate 'line', 138
     .return ($P438)
   control_428:
     .local pmc exception 
@@ -20943,31 +21963,35 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "outerctx"  :subid("32_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "outerctx"  :subid("32_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_443
-.annotate 'line', 0
+.annotate 'line', 143
     new $P442, 'ExceptionHandler'
     set_addr $P442, control_441
     $P442."handle_types"(.CONTROL_RETURN)
     push_eh $P442
     .lex "self", self
     .lex "$/", param_443
+.annotate 'line', 144
     get_global $P444, "@BLOCK"
-    unless_null $P444, vivify_223
+    unless_null $P444, vivify_228
     $P444 = root_new ['parrot';'ResizablePMCArray']
     set_global "@BLOCK", $P444
-  vivify_223:
+  vivify_228:
+.annotate 'line', 143
     get_global $P445, "@BLOCK"
+.annotate 'line', 145
     find_lex $P446, "self"
     get_global $P447, "@BLOCK"
-    unless_null $P447, vivify_224
+    unless_null $P447, vivify_229
     $P447 = root_new ['parrot';'ResizablePMCArray']
-  vivify_224:
+  vivify_229:
     set $P448, $P447[0]
-    unless_null $P448, vivify_225
+    unless_null $P448, vivify_230
     new $P448, "Undef"
-  vivify_225:
+  vivify_230:
     $P449 = $P446."SET_BLOCK_OUTER_CTX"($P448)
+.annotate 'line', 143
     .return ($P449)
   control_441:
     .local pmc exception 
@@ -20979,10 +22003,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<if>"  :subid("33_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "statement_control:sym<if>"  :subid("33_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_454
-.annotate 'line', 0
-    .const 'Sub' $P482 = "34_1283975952.27658" 
+.annotate 'line', 150
+    .const 'Sub' $P482 = "34_1284728484.24945" 
     capture_lex $P482
     new $P453, 'ExceptionHandler'
     set_addr $P453, control_452
@@ -20990,66 +22014,73 @@
     push_eh $P453
     .lex "self", self
     .lex "$/", param_454
+.annotate 'line', 151
     new $P455, "Undef"
     .lex "$count", $P455
+.annotate 'line', 152
     new $P456, "Undef"
     .lex "$past", $P456
+.annotate 'line', 151
     find_lex $P457, "$/"
-    unless_null $P457, vivify_226
+    unless_null $P457, vivify_231
     $P457 = root_new ['parrot';'Hash']
-  vivify_226:
+  vivify_231:
     set $P458, $P457["xblock"]
-    unless_null $P458, vivify_227
+    unless_null $P458, vivify_232
     new $P458, "Undef"
-  vivify_227:
+  vivify_232:
     set $N459, $P458
     new $P460, 'Float'
     set $P460, $N459
     sub $P461, $P460, 1
     store_lex "$count", $P461
+.annotate 'line', 152
     find_lex $P462, "$count"
     set $I463, $P462
     find_lex $P464, "$/"
-    unless_null $P464, vivify_228
+    unless_null $P464, vivify_233
     $P464 = root_new ['parrot';'Hash']
-  vivify_228:
+  vivify_233:
     set $P465, $P464["xblock"]
-    unless_null $P465, vivify_229
+    unless_null $P465, vivify_234
     $P465 = root_new ['parrot';'ResizablePMCArray']
-  vivify_229:
+  vivify_234:
     set $P466, $P465[$I463]
-    unless_null $P466, vivify_230
+    unless_null $P466, vivify_235
     new $P466, "Undef"
-  vivify_230:
+  vivify_235:
     $P467 = $P466."ast"()
     $P468 = "xblock_immediate"($P467)
     store_lex "$past", $P468
+.annotate 'line', 153
     find_lex $P470, "$/"
-    unless_null $P470, vivify_231
+    unless_null $P470, vivify_236
     $P470 = root_new ['parrot';'Hash']
-  vivify_231:
+  vivify_236:
     set $P471, $P470["else"]
-    unless_null $P471, vivify_232
+    unless_null $P471, vivify_237
     new $P471, "Undef"
-  vivify_232:
+  vivify_237:
     unless $P471, if_469_end
+.annotate 'line', 154
     find_lex $P472, "$past"
     find_lex $P473, "$/"
-    unless_null $P473, vivify_233
+    unless_null $P473, vivify_238
     $P473 = root_new ['parrot';'Hash']
-  vivify_233:
+  vivify_238:
     set $P474, $P473["else"]
-    unless_null $P474, vivify_234
+    unless_null $P474, vivify_239
     $P474 = root_new ['parrot';'ResizablePMCArray']
-  vivify_234:
+  vivify_239:
     set $P475, $P474[0]
-    unless_null $P475, vivify_235
+    unless_null $P475, vivify_240
     new $P475, "Undef"
-  vivify_235:
+  vivify_240:
     $P476 = $P475."ast"()
     $P477 = "block_immediate"($P476)
     $P472."push"($P477)
   if_469_end:
+.annotate 'line', 157
     new $P498, 'ExceptionHandler'
     set_addr $P498, loop497_handler
     $P498."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
@@ -21060,7 +22091,7 @@
     isgt $I480, $N479, 0.0
     unless $I480, loop497_done
   loop497_redo:
-    .const 'Sub' $P482 = "34_1283975952.27658" 
+    .const 'Sub' $P482 = "34_1284728484.24945" 
     capture_lex $P482
     $P482()
   loop497_next:
@@ -21073,9 +22104,11 @@
     eq $P499, .CONTROL_LOOP_REDO, loop497_redo
   loop497_done:
     pop_eh 
+.annotate 'line', 163
     find_lex $P500, "$/"
     find_lex $P501, "$past"
     $P502 = $P500."!make"($P501)
+.annotate 'line', 150
     .return ($P502)
   control_452:
     .local pmc exception 
@@ -21086,68 +22119,77 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block481"  :anon :subid("34_1283975952.27658") :outer("33_1283975952.27658")
-.annotate 'line', 0
+.sub "_block481"  :anon :subid("34_1284728484.24945") :outer("33_1284728484.24945")
+.annotate 'line', 159
     new $P483, "Undef"
     .lex "$else", $P483
+.annotate 'line', 157
     find_lex $P484, "$count"
     clone $P485, $P484
     dec $P484
+.annotate 'line', 159
     find_lex $P486, "$past"
     store_lex "$else", $P486
+.annotate 'line', 160
     find_lex $P487, "$count"
     set $I488, $P487
     find_lex $P489, "$/"
-    unless_null $P489, vivify_236
+    unless_null $P489, vivify_241
     $P489 = root_new ['parrot';'Hash']
-  vivify_236:
+  vivify_241:
     set $P490, $P489["xblock"]
-    unless_null $P490, vivify_237
+    unless_null $P490, vivify_242
     $P490 = root_new ['parrot';'ResizablePMCArray']
-  vivify_237:
+  vivify_242:
     set $P491, $P490[$I488]
-    unless_null $P491, vivify_238
+    unless_null $P491, vivify_243
     new $P491, "Undef"
-  vivify_238:
+  vivify_243:
     $P492 = $P491."ast"()
     $P493 = "xblock_immediate"($P492)
     store_lex "$past", $P493
+.annotate 'line', 161
     find_lex $P494, "$past"
     find_lex $P495, "$else"
     $P496 = $P494."push"($P495)
+.annotate 'line', 157
     .return ($P496)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<unless>"  :subid("35_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "statement_control:sym<unless>"  :subid("35_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_507
-.annotate 'line', 0
+.annotate 'line', 166
     new $P506, 'ExceptionHandler'
     set_addr $P506, control_505
     $P506."handle_types"(.CONTROL_RETURN)
     push_eh $P506
     .lex "self", self
     .lex "$/", param_507
+.annotate 'line', 167
     new $P508, "Undef"
     .lex "$past", $P508
     find_lex $P509, "$/"
-    unless_null $P509, vivify_239
+    unless_null $P509, vivify_244
     $P509 = root_new ['parrot';'Hash']
-  vivify_239:
+  vivify_244:
     set $P510, $P509["xblock"]
-    unless_null $P510, vivify_240
+    unless_null $P510, vivify_245
     new $P510, "Undef"
-  vivify_240:
+  vivify_245:
     $P511 = $P510."ast"()
     $P512 = "xblock_immediate"($P511)
     store_lex "$past", $P512
+.annotate 'line', 168
     find_lex $P513, "$past"
     $P513."pasttype"("unless")
+.annotate 'line', 169
     find_lex $P514, "$/"
     find_lex $P515, "$past"
     $P516 = $P514."!make"($P515)
+.annotate 'line', 166
     .return ($P516)
   control_505:
     .local pmc exception 
@@ -21159,42 +22201,46 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<while>"  :subid("36_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "statement_control:sym<while>"  :subid("36_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_521
-.annotate 'line', 0
+.annotate 'line', 172
     new $P520, 'ExceptionHandler'
     set_addr $P520, control_519
     $P520."handle_types"(.CONTROL_RETURN)
     push_eh $P520
     .lex "self", self
     .lex "$/", param_521
+.annotate 'line', 173
     new $P522, "Undef"
     .lex "$past", $P522
     find_lex $P523, "$/"
-    unless_null $P523, vivify_241
+    unless_null $P523, vivify_246
     $P523 = root_new ['parrot';'Hash']
-  vivify_241:
+  vivify_246:
     set $P524, $P523["xblock"]
-    unless_null $P524, vivify_242
+    unless_null $P524, vivify_247
     new $P524, "Undef"
-  vivify_242:
+  vivify_247:
     $P525 = $P524."ast"()
     $P526 = "xblock_immediate"($P525)
     store_lex "$past", $P526
+.annotate 'line', 174
     find_lex $P527, "$past"
     find_lex $P528, "$/"
-    unless_null $P528, vivify_243
+    unless_null $P528, vivify_248
     $P528 = root_new ['parrot';'Hash']
-  vivify_243:
+  vivify_248:
     set $P529, $P528["sym"]
-    unless_null $P529, vivify_244
+    unless_null $P529, vivify_249
     new $P529, "Undef"
-  vivify_244:
+  vivify_249:
     set $S530, $P529
     $P527."pasttype"($S530)
+.annotate 'line', 175
     find_lex $P531, "$/"
     find_lex $P532, "$past"
     $P533 = $P531."!make"($P532)
+.annotate 'line', 172
     .return ($P533)
   control_519:
     .local pmc exception 
@@ -21206,86 +22252,96 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<repeat>"  :subid("37_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "statement_control:sym<repeat>"  :subid("37_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_538
-.annotate 'line', 0
+.annotate 'line', 178
     new $P537, 'ExceptionHandler'
     set_addr $P537, control_536
     $P537."handle_types"(.CONTROL_RETURN)
     push_eh $P537
     .lex "self", self
     .lex "$/", param_538
+.annotate 'line', 179
     new $P539, "Undef"
     .lex "$pasttype", $P539
+.annotate 'line', 180
     new $P540, "Undef"
     .lex "$past", $P540
+.annotate 'line', 179
     new $P541, "String"
     assign $P541, "repeat_"
     find_lex $P542, "$/"
-    unless_null $P542, vivify_245
+    unless_null $P542, vivify_250
     $P542 = root_new ['parrot';'Hash']
-  vivify_245:
+  vivify_250:
     set $P543, $P542["wu"]
-    unless_null $P543, vivify_246
+    unless_null $P543, vivify_251
     new $P543, "Undef"
-  vivify_246:
+  vivify_251:
     set $S544, $P543
     concat $P545, $P541, $S544
     store_lex "$pasttype", $P545
     find_lex $P546, "$past"
+.annotate 'line', 181
     find_lex $P548, "$/"
-    unless_null $P548, vivify_247
+    unless_null $P548, vivify_252
     $P548 = root_new ['parrot';'Hash']
-  vivify_247:
+  vivify_252:
     set $P549, $P548["xblock"]
-    unless_null $P549, vivify_248
+    unless_null $P549, vivify_253
     new $P549, "Undef"
-  vivify_248:
+  vivify_253:
     if $P549, if_547
+.annotate 'line', 186
     get_hll_global $P556, ["PAST"], "Op"
     find_lex $P557, "$/"
-    unless_null $P557, vivify_249
+    unless_null $P557, vivify_254
     $P557 = root_new ['parrot';'Hash']
-  vivify_249:
+  vivify_254:
     set $P558, $P557["EXPR"]
-    unless_null $P558, vivify_250
+    unless_null $P558, vivify_255
     new $P558, "Undef"
-  vivify_250:
+  vivify_255:
     $P559 = $P558."ast"()
     find_lex $P560, "$/"
-    unless_null $P560, vivify_251
+    unless_null $P560, vivify_256
     $P560 = root_new ['parrot';'Hash']
-  vivify_251:
+  vivify_256:
     set $P561, $P560["pblock"]
-    unless_null $P561, vivify_252
+    unless_null $P561, vivify_257
     new $P561, "Undef"
-  vivify_252:
+  vivify_257:
     $P562 = $P561."ast"()
     $P563 = "block_immediate"($P562)
     find_lex $P564, "$pasttype"
     find_lex $P565, "$/"
     $P566 = $P556."new"($P559, $P563, $P564 :named("pasttype"), $P565 :named("node"))
     store_lex "$past", $P566
+.annotate 'line', 185
     goto if_547_end
   if_547:
+.annotate 'line', 182
     find_lex $P550, "$/"
-    unless_null $P550, vivify_253
+    unless_null $P550, vivify_258
     $P550 = root_new ['parrot';'Hash']
-  vivify_253:
+  vivify_258:
     set $P551, $P550["xblock"]
-    unless_null $P551, vivify_254
+    unless_null $P551, vivify_259
     new $P551, "Undef"
-  vivify_254:
+  vivify_259:
     $P552 = $P551."ast"()
     $P553 = "xblock_immediate"($P552)
     store_lex "$past", $P553
+.annotate 'line', 183
     find_lex $P554, "$past"
     find_lex $P555, "$pasttype"
     $P554."pasttype"($P555)
   if_547_end:
+.annotate 'line', 189
     find_lex $P567, "$/"
     find_lex $P568, "$past"
     $P569 = $P567."!make"($P568)
+.annotate 'line', 178
     .return ($P569)
   control_536:
     .local pmc exception 
@@ -21297,64 +22353,76 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<for>"  :subid("38_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "statement_control:sym<for>"  :subid("38_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_574
-.annotate 'line', 0
+.annotate 'line', 192
     new $P573, 'ExceptionHandler'
     set_addr $P573, control_572
     $P573."handle_types"(.CONTROL_RETURN)
     push_eh $P573
     .lex "self", self
     .lex "$/", param_574
+.annotate 'line', 193
     new $P575, "Undef"
     .lex "$past", $P575
+.annotate 'line', 195
     new $P576, "Undef"
     .lex "$block", $P576
+.annotate 'line', 193
     find_lex $P577, "$/"
-    unless_null $P577, vivify_255
+    unless_null $P577, vivify_260
     $P577 = root_new ['parrot';'Hash']
-  vivify_255:
+  vivify_260:
     set $P578, $P577["xblock"]
-    unless_null $P578, vivify_256
+    unless_null $P578, vivify_261
     new $P578, "Undef"
-  vivify_256:
+  vivify_261:
     $P579 = $P578."ast"()
     store_lex "$past", $P579
+.annotate 'line', 194
     find_lex $P580, "$past"
     $P580."pasttype"("for")
+.annotate 'line', 195
     find_lex $P581, "$past"
-    unless_null $P581, vivify_257
+    unless_null $P581, vivify_262
     $P581 = root_new ['parrot';'ResizablePMCArray']
-  vivify_257:
+  vivify_262:
     set $P582, $P581[1]
-    unless_null $P582, vivify_258
+    unless_null $P582, vivify_263
     new $P582, "Undef"
-  vivify_258:
+  vivify_263:
     store_lex "$block", $P582
+.annotate 'line', 196
     find_lex $P584, "$block"
     $P585 = $P584."arity"()
     if $P585, unless_583_end
+.annotate 'line', 197
     find_lex $P586, "$block"
-    unless_null $P586, vivify_259
+    unless_null $P586, vivify_264
     $P586 = root_new ['parrot';'ResizablePMCArray']
-  vivify_259:
+  vivify_264:
     set $P587, $P586[0]
-    unless_null $P587, vivify_260
+    unless_null $P587, vivify_265
     new $P587, "Undef"
-  vivify_260:
+  vivify_265:
     get_hll_global $P588, ["PAST"], "Var"
     $P589 = $P588."new"("$_" :named("name"), "parameter" :named("scope"))
     $P587."push"($P589)
+.annotate 'line', 198
     find_lex $P590, "$block"
     $P590."symbol"("$_", "lexical" :named("scope"))
+.annotate 'line', 199
     find_lex $P591, "$block"
     $P591."arity"(1)
   unless_583_end:
+.annotate 'line', 201
     find_lex $P592, "$block"
     $P592."blocktype"("immediate")
+.annotate 'line', 202
     find_lex $P593, "$/"
     find_lex $P594, "$past"
     $P595 = $P593."!make"($P594)
+.annotate 'line', 192
     .return ($P595)
   control_572:
     .local pmc exception 
@@ -21366,29 +22434,31 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<return>"  :subid("39_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "statement_control:sym<return>"  :subid("39_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_600
-.annotate 'line', 0
+.annotate 'line', 205
     new $P599, 'ExceptionHandler'
     set_addr $P599, control_598
     $P599."handle_types"(.CONTROL_RETURN)
     push_eh $P599
     .lex "self", self
     .lex "$/", param_600
+.annotate 'line', 206
     find_lex $P601, "$/"
     get_hll_global $P602, ["PAST"], "Op"
     find_lex $P603, "$/"
-    unless_null $P603, vivify_261
+    unless_null $P603, vivify_266
     $P603 = root_new ['parrot';'Hash']
-  vivify_261:
+  vivify_266:
     set $P604, $P603["EXPR"]
-    unless_null $P604, vivify_262
+    unless_null $P604, vivify_267
     new $P604, "Undef"
-  vivify_262:
+  vivify_267:
     $P605 = $P604."ast"()
     find_lex $P606, "$/"
     $P607 = $P602."new"($P605, "return" :named("pasttype"), $P606 :named("node"))
     $P608 = $P601."!make"($P607)
+.annotate 'line', 205
     .return ($P608)
   control_598:
     .local pmc exception 
@@ -21400,49 +22470,54 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<CATCH>"  :subid("40_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "statement_control:sym<CATCH>"  :subid("40_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_613
-.annotate 'line', 0
+.annotate 'line', 209
     new $P612, 'ExceptionHandler'
     set_addr $P612, control_611
     $P612."handle_types"(.CONTROL_RETURN)
     push_eh $P612
     .lex "self", self
     .lex "$/", param_613
+.annotate 'line', 210
     new $P614, "Undef"
     .lex "$block", $P614
     find_lex $P615, "$/"
-    unless_null $P615, vivify_263
+    unless_null $P615, vivify_268
     $P615 = root_new ['parrot';'Hash']
-  vivify_263:
+  vivify_268:
     set $P616, $P615["block"]
-    unless_null $P616, vivify_264
+    unless_null $P616, vivify_269
     new $P616, "Undef"
-  vivify_264:
+  vivify_269:
     $P617 = $P616."ast"()
     store_lex "$block", $P617
+.annotate 'line', 211
     find_lex $P618, "$/"
     find_lex $P619, "$block"
     "push_block_handler"($P618, $P619)
+.annotate 'line', 212
     get_global $P620, "@BLOCK"
-    unless_null $P620, vivify_265
+    unless_null $P620, vivify_270
     $P620 = root_new ['parrot';'ResizablePMCArray']
-  vivify_265:
+  vivify_270:
     set $P621, $P620[0]
-    unless_null $P621, vivify_266
+    unless_null $P621, vivify_271
     new $P621, "Undef"
-  vivify_266:
+  vivify_271:
     $P622 = $P621."handlers"()
     set $P623, $P622[0]
-    unless_null $P623, vivify_267
+    unless_null $P623, vivify_272
     new $P623, "Undef"
-  vivify_267:
+  vivify_272:
     $P623."handle_types_except"("CONTROL")
+.annotate 'line', 213
     find_lex $P624, "$/"
     get_hll_global $P625, ["PAST"], "Stmts"
     find_lex $P626, "$/"
     $P627 = $P625."new"($P626 :named("node"))
     $P628 = $P624."!make"($P627)
+.annotate 'line', 209
     .return ($P628)
   control_611:
     .local pmc exception 
@@ -21454,49 +22529,54 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<CONTROL>"  :subid("41_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "statement_control:sym<CONTROL>"  :subid("41_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_633
-.annotate 'line', 0
+.annotate 'line', 216
     new $P632, 'ExceptionHandler'
     set_addr $P632, control_631
     $P632."handle_types"(.CONTROL_RETURN)
     push_eh $P632
     .lex "self", self
     .lex "$/", param_633
+.annotate 'line', 217
     new $P634, "Undef"
     .lex "$block", $P634
     find_lex $P635, "$/"
-    unless_null $P635, vivify_268
+    unless_null $P635, vivify_273
     $P635 = root_new ['parrot';'Hash']
-  vivify_268:
+  vivify_273:
     set $P636, $P635["block"]
-    unless_null $P636, vivify_269
+    unless_null $P636, vivify_274
     new $P636, "Undef"
-  vivify_269:
+  vivify_274:
     $P637 = $P636."ast"()
     store_lex "$block", $P637
+.annotate 'line', 218
     find_lex $P638, "$/"
     find_lex $P639, "$block"
     "push_block_handler"($P638, $P639)
+.annotate 'line', 219
     get_global $P640, "@BLOCK"
-    unless_null $P640, vivify_270
+    unless_null $P640, vivify_275
     $P640 = root_new ['parrot';'ResizablePMCArray']
-  vivify_270:
+  vivify_275:
     set $P641, $P640[0]
-    unless_null $P641, vivify_271
+    unless_null $P641, vivify_276
     new $P641, "Undef"
-  vivify_271:
+  vivify_276:
     $P642 = $P641."handlers"()
     set $P643, $P642[0]
-    unless_null $P643, vivify_272
+    unless_null $P643, vivify_277
     new $P643, "Undef"
-  vivify_272:
+  vivify_277:
     $P643."handle_types"("CONTROL")
+.annotate 'line', 220
     find_lex $P644, "$/"
     get_hll_global $P645, ["PAST"], "Stmts"
     find_lex $P646, "$/"
     $P647 = $P645."new"($P646 :named("node"))
     $P648 = $P644."!make"($P647)
+.annotate 'line', 216
     .return ($P648)
   control_631:
     .local pmc exception 
@@ -21508,39 +22588,42 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_prefix:sym<INIT>"  :subid("42_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "statement_prefix:sym<INIT>"  :subid("42_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_654
-.annotate 'line', 0
+.annotate 'line', 260
     new $P653, 'ExceptionHandler'
     set_addr $P653, control_652
     $P653."handle_types"(.CONTROL_RETURN)
     push_eh $P653
     .lex "self", self
     .lex "$/", param_654
+.annotate 'line', 261
     get_global $P655, "@BLOCK"
-    unless_null $P655, vivify_273
+    unless_null $P655, vivify_278
     $P655 = root_new ['parrot';'ResizablePMCArray']
-  vivify_273:
+  vivify_278:
     set $P656, $P655[0]
-    unless_null $P656, vivify_274
+    unless_null $P656, vivify_279
     new $P656, "Undef"
-  vivify_274:
+  vivify_279:
     $P657 = $P656."loadinit"()
     find_lex $P658, "$/"
-    unless_null $P658, vivify_275
+    unless_null $P658, vivify_280
     $P658 = root_new ['parrot';'Hash']
-  vivify_275:
+  vivify_280:
     set $P659, $P658["blorst"]
-    unless_null $P659, vivify_276
+    unless_null $P659, vivify_281
     new $P659, "Undef"
-  vivify_276:
+  vivify_281:
     $P660 = $P659."ast"()
     $P657."push"($P660)
+.annotate 'line', 262
     find_lex $P661, "$/"
     get_hll_global $P662, ["PAST"], "Stmts"
     find_lex $P663, "$/"
     $P664 = $P662."new"($P663 :named("node"))
     $P665 = $P661."!make"($P664)
+.annotate 'line', 260
     .return ($P665)
   control_652:
     .local pmc exception 
@@ -21552,58 +22635,73 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_prefix:sym<try>"  :subid("43_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "statement_prefix:sym<try>"  :subid("43_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_670
-.annotate 'line', 0
+.annotate 'line', 265
     new $P669, 'ExceptionHandler'
     set_addr $P669, control_668
     $P669."handle_types"(.CONTROL_RETURN)
     push_eh $P669
     .lex "self", self
     .lex "$/", param_670
+.annotate 'line', 266
     new $P671, "Undef"
     .lex "$past", $P671
     find_lex $P672, "$/"
-    unless_null $P672, vivify_277
+    unless_null $P672, vivify_282
     $P672 = root_new ['parrot';'Hash']
-  vivify_277:
+  vivify_282:
     set $P673, $P672["blorst"]
-    unless_null $P673, vivify_278
+    unless_null $P673, vivify_283
     new $P673, "Undef"
-  vivify_278:
+  vivify_283:
     $P674 = $P673."ast"()
     store_lex "$past", $P674
+.annotate 'line', 267
     find_lex $P676, "$past"
     $S677 = $P676."WHAT"()
     isne $I678, $S677, "PAST::Block()"
     unless $I678, if_675_end
+.annotate 'line', 268
     get_hll_global $P679, ["PAST"], "Block"
     find_lex $P680, "$past"
     find_lex $P681, "$/"
     $P682 = $P679."new"($P680, "immediate" :named("blocktype"), $P681 :named("node"))
     store_lex "$past", $P682
   if_675_end:
+.annotate 'line', 270
     find_lex $P684, "$past"
     $P685 = $P684."handlers"()
     if $P685, unless_683_end
+.annotate 'line', 271
     find_lex $P686, "$past"
     get_hll_global $P687, ["PAST"], "Control"
+.annotate 'line', 273
     get_hll_global $P688, ["PAST"], "Stmts"
+.annotate 'line', 274
     get_hll_global $P689, ["PAST"], "Op"
+.annotate 'line', 275
     get_hll_global $P690, ["PAST"], "Var"
+.annotate 'line', 276
     get_hll_global $P691, ["PAST"], "Var"
     $P692 = $P691."new"("register" :named("scope"), "exception" :named("name"))
     $P693 = $P690."new"($P692, "handled", "keyed" :named("scope"))
+.annotate 'line', 275
     $P694 = $P689."new"($P693, 1, "bind" :named("pasttype"))
+.annotate 'line', 274
     $P695 = $P688."new"($P694)
+.annotate 'line', 273
     $P696 = $P687."new"($P695, "CONTROL" :named("handle_types_except"))
+.annotate 'line', 271
     new $P697, "ResizablePMCArray"
     push $P697, $P696
     $P686."handlers"($P697)
   unless_683_end:
+.annotate 'line', 285
     find_lex $P698, "$/"
     find_lex $P699, "$past"
     $P700 = $P698."!make"($P699)
+.annotate 'line', 265
     .return ($P700)
   control_668:
     .local pmc exception 
@@ -21615,50 +22713,55 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "blorst"  :subid("44_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "blorst"  :subid("44_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_705
-.annotate 'line', 0
+.annotate 'line', 288
     new $P704, 'ExceptionHandler'
     set_addr $P704, control_703
     $P704."handle_types"(.CONTROL_RETURN)
     push_eh $P704
     .lex "self", self
     .lex "$/", param_705
+.annotate 'line', 289
     find_lex $P706, "$/"
+.annotate 'line', 290
     find_lex $P709, "$/"
-    unless_null $P709, vivify_279
+    unless_null $P709, vivify_284
     $P709 = root_new ['parrot';'Hash']
-  vivify_279:
+  vivify_284:
     set $P710, $P709["block"]
-    unless_null $P710, vivify_280
+    unless_null $P710, vivify_285
     new $P710, "Undef"
-  vivify_280:
+  vivify_285:
     if $P710, if_708
+.annotate 'line', 291
     find_lex $P715, "$/"
-    unless_null $P715, vivify_281
+    unless_null $P715, vivify_286
     $P715 = root_new ['parrot';'Hash']
-  vivify_281:
+  vivify_286:
     set $P716, $P715["statement"]
-    unless_null $P716, vivify_282
+    unless_null $P716, vivify_287
     new $P716, "Undef"
-  vivify_282:
+  vivify_287:
     $P717 = $P716."ast"()
     set $P707, $P717
+.annotate 'line', 290
     goto if_708_end
   if_708:
     find_lex $P711, "$/"
-    unless_null $P711, vivify_283
+    unless_null $P711, vivify_288
     $P711 = root_new ['parrot';'Hash']
-  vivify_283:
+  vivify_288:
     set $P712, $P711["block"]
-    unless_null $P712, vivify_284
+    unless_null $P712, vivify_289
     new $P712, "Undef"
-  vivify_284:
+  vivify_289:
     $P713 = $P712."ast"()
     $P714 = "block_immediate"($P713)
     set $P707, $P714
   if_708_end:
     $P718 = $P706."!make"($P707)
+.annotate 'line', 288
     .return ($P718)
   control_703:
     .local pmc exception 
@@ -21670,9 +22773,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_cond:sym<if>"  :subid("45_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "statement_mod_cond:sym<if>"  :subid("45_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_723
-.annotate 'line', 0
+.annotate 'line', 296
     new $P722, 'ExceptionHandler'
     set_addr $P722, control_721
     $P722."handle_types"(.CONTROL_RETURN)
@@ -21681,13 +22784,13 @@
     .lex "$/", param_723
     find_lex $P724, "$/"
     find_lex $P725, "$/"
-    unless_null $P725, vivify_285
+    unless_null $P725, vivify_290
     $P725 = root_new ['parrot';'Hash']
-  vivify_285:
+  vivify_290:
     set $P726, $P725["cond"]
-    unless_null $P726, vivify_286
+    unless_null $P726, vivify_291
     new $P726, "Undef"
-  vivify_286:
+  vivify_291:
     $P727 = $P726."ast"()
     $P728 = $P724."!make"($P727)
     .return ($P728)
@@ -21701,9 +22804,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_cond:sym<unless>"  :subid("46_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "statement_mod_cond:sym<unless>"  :subid("46_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_733
-.annotate 'line', 0
+.annotate 'line', 297
     new $P732, 'ExceptionHandler'
     set_addr $P732, control_731
     $P732."handle_types"(.CONTROL_RETURN)
@@ -21712,13 +22815,13 @@
     .lex "$/", param_733
     find_lex $P734, "$/"
     find_lex $P735, "$/"
-    unless_null $P735, vivify_287
+    unless_null $P735, vivify_292
     $P735 = root_new ['parrot';'Hash']
-  vivify_287:
+  vivify_292:
     set $P736, $P735["cond"]
-    unless_null $P736, vivify_288
+    unless_null $P736, vivify_293
     new $P736, "Undef"
-  vivify_288:
+  vivify_293:
     $P737 = $P736."ast"()
     $P738 = $P734."!make"($P737)
     .return ($P738)
@@ -21732,9 +22835,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_loop:sym<while>"  :subid("47_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "statement_mod_loop:sym<while>"  :subid("47_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_743
-.annotate 'line', 0
+.annotate 'line', 299
     new $P742, 'ExceptionHandler'
     set_addr $P742, control_741
     $P742."handle_types"(.CONTROL_RETURN)
@@ -21743,13 +22846,13 @@
     .lex "$/", param_743
     find_lex $P744, "$/"
     find_lex $P745, "$/"
-    unless_null $P745, vivify_289
+    unless_null $P745, vivify_294
     $P745 = root_new ['parrot';'Hash']
-  vivify_289:
+  vivify_294:
     set $P746, $P745["cond"]
-    unless_null $P746, vivify_290
+    unless_null $P746, vivify_295
     new $P746, "Undef"
-  vivify_290:
+  vivify_295:
     $P747 = $P746."ast"()
     $P748 = $P744."!make"($P747)
     .return ($P748)
@@ -21763,9 +22866,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_loop:sym<until>"  :subid("48_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "statement_mod_loop:sym<until>"  :subid("48_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_753
-.annotate 'line', 0
+.annotate 'line', 300
     new $P752, 'ExceptionHandler'
     set_addr $P752, control_751
     $P752."handle_types"(.CONTROL_RETURN)
@@ -21774,13 +22877,13 @@
     .lex "$/", param_753
     find_lex $P754, "$/"
     find_lex $P755, "$/"
-    unless_null $P755, vivify_291
+    unless_null $P755, vivify_296
     $P755 = root_new ['parrot';'Hash']
-  vivify_291:
+  vivify_296:
     set $P756, $P755["cond"]
-    unless_null $P756, vivify_292
+    unless_null $P756, vivify_297
     new $P756, "Undef"
-  vivify_292:
+  vivify_297:
     $P757 = $P756."ast"()
     $P758 = $P754."!make"($P757)
     .return ($P758)
@@ -21794,9 +22897,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<fatarrow>"  :subid("49_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "term:sym<fatarrow>"  :subid("49_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_763
-.annotate 'line', 0
+.annotate 'line', 304
     new $P762, 'ExceptionHandler'
     set_addr $P762, control_761
     $P762."handle_types"(.CONTROL_RETURN)
@@ -21805,13 +22908,13 @@
     .lex "$/", param_763
     find_lex $P764, "$/"
     find_lex $P765, "$/"
-    unless_null $P765, vivify_293
+    unless_null $P765, vivify_298
     $P765 = root_new ['parrot';'Hash']
-  vivify_293:
+  vivify_298:
     set $P766, $P765["fatarrow"]
-    unless_null $P766, vivify_294
+    unless_null $P766, vivify_299
     new $P766, "Undef"
-  vivify_294:
+  vivify_299:
     $P767 = $P766."ast"()
     $P768 = $P764."!make"($P767)
     .return ($P768)
@@ -21825,9 +22928,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<colonpair>"  :subid("50_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "term:sym<colonpair>"  :subid("50_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_773
-.annotate 'line', 0
+.annotate 'line', 305
     new $P772, 'ExceptionHandler'
     set_addr $P772, control_771
     $P772."handle_types"(.CONTROL_RETURN)
@@ -21836,13 +22939,13 @@
     .lex "$/", param_773
     find_lex $P774, "$/"
     find_lex $P775, "$/"
-    unless_null $P775, vivify_295
+    unless_null $P775, vivify_300
     $P775 = root_new ['parrot';'Hash']
-  vivify_295:
+  vivify_300:
     set $P776, $P775["colonpair"]
-    unless_null $P776, vivify_296
+    unless_null $P776, vivify_301
     new $P776, "Undef"
-  vivify_296:
+  vivify_301:
     $P777 = $P776."ast"()
     $P778 = $P774."!make"($P777)
     .return ($P778)
@@ -21856,9 +22959,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<variable>"  :subid("51_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "term:sym<variable>"  :subid("51_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_783
-.annotate 'line', 0
+.annotate 'line', 306
     new $P782, 'ExceptionHandler'
     set_addr $P782, control_781
     $P782."handle_types"(.CONTROL_RETURN)
@@ -21867,13 +22970,13 @@
     .lex "$/", param_783
     find_lex $P784, "$/"
     find_lex $P785, "$/"
-    unless_null $P785, vivify_297
+    unless_null $P785, vivify_302
     $P785 = root_new ['parrot';'Hash']
-  vivify_297:
+  vivify_302:
     set $P786, $P785["variable"]
-    unless_null $P786, vivify_298
+    unless_null $P786, vivify_303
     new $P786, "Undef"
-  vivify_298:
+  vivify_303:
     $P787 = $P786."ast"()
     $P788 = $P784."!make"($P787)
     .return ($P788)
@@ -21887,9 +22990,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<package_declarator>"  :subid("52_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "term:sym<package_declarator>"  :subid("52_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_793
-.annotate 'line', 0
+.annotate 'line', 307
     new $P792, 'ExceptionHandler'
     set_addr $P792, control_791
     $P792."handle_types"(.CONTROL_RETURN)
@@ -21898,13 +23001,13 @@
     .lex "$/", param_793
     find_lex $P794, "$/"
     find_lex $P795, "$/"
-    unless_null $P795, vivify_299
+    unless_null $P795, vivify_304
     $P795 = root_new ['parrot';'Hash']
-  vivify_299:
+  vivify_304:
     set $P796, $P795["package_declarator"]
-    unless_null $P796, vivify_300
+    unless_null $P796, vivify_305
     new $P796, "Undef"
-  vivify_300:
+  vivify_305:
     $P797 = $P796."ast"()
     $P798 = $P794."!make"($P797)
     .return ($P798)
@@ -21918,9 +23021,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<scope_declarator>"  :subid("53_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "term:sym<scope_declarator>"  :subid("53_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_803
-.annotate 'line', 0
+.annotate 'line', 308
     new $P802, 'ExceptionHandler'
     set_addr $P802, control_801
     $P802."handle_types"(.CONTROL_RETURN)
@@ -21929,13 +23032,13 @@
     .lex "$/", param_803
     find_lex $P804, "$/"
     find_lex $P805, "$/"
-    unless_null $P805, vivify_301
+    unless_null $P805, vivify_306
     $P805 = root_new ['parrot';'Hash']
-  vivify_301:
+  vivify_306:
     set $P806, $P805["scope_declarator"]
-    unless_null $P806, vivify_302
+    unless_null $P806, vivify_307
     new $P806, "Undef"
-  vivify_302:
+  vivify_307:
     $P807 = $P806."ast"()
     $P808 = $P804."!make"($P807)
     .return ($P808)
@@ -21949,9 +23052,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<routine_declarator>"  :subid("54_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "term:sym<routine_declarator>"  :subid("54_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_813
-.annotate 'line', 0
+.annotate 'line', 309
     new $P812, 'ExceptionHandler'
     set_addr $P812, control_811
     $P812."handle_types"(.CONTROL_RETURN)
@@ -21960,13 +23063,13 @@
     .lex "$/", param_813
     find_lex $P814, "$/"
     find_lex $P815, "$/"
-    unless_null $P815, vivify_303
+    unless_null $P815, vivify_308
     $P815 = root_new ['parrot';'Hash']
-  vivify_303:
+  vivify_308:
     set $P816, $P815["routine_declarator"]
-    unless_null $P816, vivify_304
+    unless_null $P816, vivify_309
     new $P816, "Undef"
-  vivify_304:
+  vivify_309:
     $P817 = $P816."ast"()
     $P818 = $P814."!make"($P817)
     .return ($P818)
@@ -21980,9 +23083,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<regex_declarator>"  :subid("55_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "term:sym<regex_declarator>"  :subid("55_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_823
-.annotate 'line', 0
+.annotate 'line', 310
     new $P822, 'ExceptionHandler'
     set_addr $P822, control_821
     $P822."handle_types"(.CONTROL_RETURN)
@@ -21991,13 +23094,13 @@
     .lex "$/", param_823
     find_lex $P824, "$/"
     find_lex $P825, "$/"
-    unless_null $P825, vivify_305
+    unless_null $P825, vivify_310
     $P825 = root_new ['parrot';'Hash']
-  vivify_305:
+  vivify_310:
     set $P826, $P825["regex_declarator"]
-    unless_null $P826, vivify_306
+    unless_null $P826, vivify_311
     new $P826, "Undef"
-  vivify_306:
+  vivify_311:
     $P827 = $P826."ast"()
     $P828 = $P824."!make"($P827)
     .return ($P828)
@@ -22011,9 +23114,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<statement_prefix>"  :subid("56_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "term:sym<statement_prefix>"  :subid("56_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_833
-.annotate 'line', 0
+.annotate 'line', 311
     new $P832, 'ExceptionHandler'
     set_addr $P832, control_831
     $P832."handle_types"(.CONTROL_RETURN)
@@ -22022,13 +23125,13 @@
     .lex "$/", param_833
     find_lex $P834, "$/"
     find_lex $P835, "$/"
-    unless_null $P835, vivify_307
+    unless_null $P835, vivify_312
     $P835 = root_new ['parrot';'Hash']
-  vivify_307:
+  vivify_312:
     set $P836, $P835["statement_prefix"]
-    unless_null $P836, vivify_308
+    unless_null $P836, vivify_313
     new $P836, "Undef"
-  vivify_308:
+  vivify_313:
     $P837 = $P836."ast"()
     $P838 = $P834."!make"($P837)
     .return ($P838)
@@ -22042,9 +23145,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<lambda>"  :subid("57_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "term:sym<lambda>"  :subid("57_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_843
-.annotate 'line', 0
+.annotate 'line', 312
     new $P842, 'ExceptionHandler'
     set_addr $P842, control_841
     $P842."handle_types"(.CONTROL_RETURN)
@@ -22053,13 +23156,13 @@
     .lex "$/", param_843
     find_lex $P844, "$/"
     find_lex $P845, "$/"
-    unless_null $P845, vivify_309
+    unless_null $P845, vivify_314
     $P845 = root_new ['parrot';'Hash']
-  vivify_309:
+  vivify_314:
     set $P846, $P845["pblock"]
-    unless_null $P846, vivify_310
+    unless_null $P846, vivify_315
     new $P846, "Undef"
-  vivify_310:
+  vivify_315:
     $P847 = $P846."ast"()
     $P848 = $P844."!make"($P847)
     .return ($P848)
@@ -22073,41 +23176,45 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "fatarrow"  :subid("58_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "fatarrow"  :subid("58_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_853
-.annotate 'line', 0
+.annotate 'line', 314
     new $P852, 'ExceptionHandler'
     set_addr $P852, control_851
     $P852."handle_types"(.CONTROL_RETURN)
     push_eh $P852
     .lex "self", self
     .lex "$/", param_853
+.annotate 'line', 315
     new $P854, "Undef"
     .lex "$past", $P854
     find_lex $P855, "$/"
-    unless_null $P855, vivify_311
+    unless_null $P855, vivify_316
     $P855 = root_new ['parrot';'Hash']
-  vivify_311:
+  vivify_316:
     set $P856, $P855["val"]
-    unless_null $P856, vivify_312
+    unless_null $P856, vivify_317
     new $P856, "Undef"
-  vivify_312:
+  vivify_317:
     $P857 = $P856."ast"()
     store_lex "$past", $P857
+.annotate 'line', 316
     find_lex $P858, "$past"
     find_lex $P859, "$/"
-    unless_null $P859, vivify_313
+    unless_null $P859, vivify_318
     $P859 = root_new ['parrot';'Hash']
-  vivify_313:
+  vivify_318:
     set $P860, $P859["key"]
-    unless_null $P860, vivify_314
+    unless_null $P860, vivify_319
     new $P860, "Undef"
-  vivify_314:
+  vivify_319:
     $P861 = $P860."Str"()
     $P858."named"($P861)
+.annotate 'line', 317
     find_lex $P862, "$/"
     find_lex $P863, "$past"
     $P864 = $P862."!make"($P863)
+.annotate 'line', 314
     .return ($P864)
   control_851:
     .local pmc exception 
@@ -22119,70 +23226,77 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "colonpair"  :subid("59_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "colonpair"  :subid("59_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_869
-.annotate 'line', 0
+.annotate 'line', 320
     new $P868, 'ExceptionHandler'
     set_addr $P868, control_867
     $P868."handle_types"(.CONTROL_RETURN)
     push_eh $P868
     .lex "self", self
     .lex "$/", param_869
+.annotate 'line', 321
     new $P870, "Undef"
     .lex "$past", $P870
+.annotate 'line', 322
     find_lex $P873, "$/"
-    unless_null $P873, vivify_315
+    unless_null $P873, vivify_320
     $P873 = root_new ['parrot';'Hash']
-  vivify_315:
+  vivify_320:
     set $P874, $P873["circumfix"]
-    unless_null $P874, vivify_316
+    unless_null $P874, vivify_321
     new $P874, "Undef"
-  vivify_316:
+  vivify_321:
     if $P874, if_872
+.annotate 'line', 323
     get_hll_global $P879, ["PAST"], "Val"
     find_lex $P880, "$/"
-    unless_null $P880, vivify_317
+    unless_null $P880, vivify_322
     $P880 = root_new ['parrot';'Hash']
-  vivify_317:
+  vivify_322:
     set $P881, $P880["not"]
-    unless_null $P881, vivify_318
+    unless_null $P881, vivify_323
     new $P881, "Undef"
-  vivify_318:
+  vivify_323:
     isfalse $I882, $P881
     $P883 = $P879."new"($I882 :named("value"))
     set $P871, $P883
+.annotate 'line', 322
     goto if_872_end
   if_872:
     find_lex $P875, "$/"
-    unless_null $P875, vivify_319
+    unless_null $P875, vivify_324
     $P875 = root_new ['parrot';'Hash']
-  vivify_319:
+  vivify_324:
     set $P876, $P875["circumfix"]
-    unless_null $P876, vivify_320
+    unless_null $P876, vivify_325
     $P876 = root_new ['parrot';'ResizablePMCArray']
-  vivify_320:
+  vivify_325:
     set $P877, $P876[0]
-    unless_null $P877, vivify_321
+    unless_null $P877, vivify_326
     new $P877, "Undef"
-  vivify_321:
+  vivify_326:
     $P878 = $P877."ast"()
     set $P871, $P878
   if_872_end:
     store_lex "$past", $P871
+.annotate 'line', 324
     find_lex $P884, "$past"
     find_lex $P885, "$/"
-    unless_null $P885, vivify_322
+    unless_null $P885, vivify_327
     $P885 = root_new ['parrot';'Hash']
-  vivify_322:
+  vivify_327:
     set $P886, $P885["identifier"]
-    unless_null $P886, vivify_323
+    unless_null $P886, vivify_328
     new $P886, "Undef"
-  vivify_323:
+  vivify_328:
     set $S887, $P886
     $P884."named"($S887)
+.annotate 'line', 325
     find_lex $P888, "$/"
     find_lex $P889, "$past"
     $P890 = $P888."!make"($P889)
+.annotate 'line', 320
     .return ($P890)
   control_867:
     .local pmc exception 
@@ -22194,10 +23308,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "variable"  :subid("60_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "variable"  :subid("60_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_895
-.annotate 'line', 0
-    .const 'Sub' $P908 = "61_1283975952.27658" 
+.annotate 'line', 328
+    .const 'Sub' $P908 = "61_1284728484.24945" 
     capture_lex $P908
     new $P894, 'ExceptionHandler'
     set_addr $P894, control_893
@@ -22205,41 +23319,49 @@
     push_eh $P894
     .lex "self", self
     .lex "$/", param_895
+.annotate 'line', 329
     new $P896, "Undef"
     .lex "$past", $P896
+.annotate 'line', 328
     find_lex $P897, "$past"
+.annotate 'line', 330
     find_lex $P899, "$/"
-    unless_null $P899, vivify_324
+    unless_null $P899, vivify_329
     $P899 = root_new ['parrot';'Hash']
-  vivify_324:
+  vivify_329:
     set $P900, $P899["postcircumfix"]
-    unless_null $P900, vivify_325
+    unless_null $P900, vivify_330
     new $P900, "Undef"
-  vivify_325:
+  vivify_330:
     if $P900, if_898
-    .const 'Sub' $P908 = "61_1283975952.27658" 
+.annotate 'line', 334
+    .const 'Sub' $P908 = "61_1284728484.24945" 
     capture_lex $P908
     $P908()
     goto if_898_end
   if_898:
+.annotate 'line', 331
     find_lex $P901, "$/"
-    unless_null $P901, vivify_342
+    unless_null $P901, vivify_347
     $P901 = root_new ['parrot';'Hash']
-  vivify_342:
+  vivify_347:
     set $P902, $P901["postcircumfix"]
-    unless_null $P902, vivify_343
+    unless_null $P902, vivify_348
     new $P902, "Undef"
-  vivify_343:
+  vivify_348:
     $P903 = $P902."ast"()
     store_lex "$past", $P903
+.annotate 'line', 332
     find_lex $P904, "$past"
     get_hll_global $P905, ["PAST"], "Var"
     $P906 = $P905."new"("$/" :named("name"))
     $P904."unshift"($P906)
   if_898_end:
+.annotate 'line', 363
     find_lex $P977, "$/"
     find_lex $P978, "$past"
     $P979 = $P977."!make"($P978)
+.annotate 'line', 328
     .return ($P979)
   control_893:
     .local pmc exception 
@@ -22250,8 +23372,8 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block907"  :anon :subid("61_1283975952.27658") :outer("60_1283975952.27658")
-.annotate 'line', 0
+.sub "_block907"  :anon :subid("61_1284728484.24945") :outer("60_1284728484.24945")
+.annotate 'line', 335
     $P909 = root_new ['parrot';'ResizablePMCArray']
     .lex "@name", $P909
     get_hll_global $P910, ["NQP"], "Compiler"
@@ -22259,74 +23381,83 @@
     set $S912, $P911
     $P913 = $P910."parse_name"($S912)
     store_lex "@name", $P913
+.annotate 'line', 336
     get_hll_global $P914, ["PAST"], "Var"
     find_lex $P915, "@name"
     $P916 = $P915."pop"()
     set $S917, $P916
     $P918 = $P914."new"($S917 :named("name"))
     store_lex "$past", $P918
+.annotate 'line', 337
     find_lex $P920, "@name"
     unless $P920, if_919_end
+.annotate 'line', 338
     find_lex $P922, "@name"
-    unless_null $P922, vivify_326
+    unless_null $P922, vivify_331
     $P922 = root_new ['parrot';'ResizablePMCArray']
-  vivify_326:
+  vivify_331:
     set $P923, $P922[0]
-    unless_null $P923, vivify_327
+    unless_null $P923, vivify_332
     new $P923, "Undef"
-  vivify_327:
+  vivify_332:
     set $S924, $P923
     iseq $I925, $S924, "GLOBAL"
     unless $I925, if_921_end
     find_lex $P926, "@name"
     $P926."shift"()
   if_921_end:
+.annotate 'line', 339
     find_lex $P927, "$past"
     find_lex $P928, "@name"
     $P927."namespace"($P928)
+.annotate 'line', 340
     find_lex $P929, "$past"
     $P929."scope"("package")
+.annotate 'line', 341
     find_lex $P930, "$past"
     find_lex $P931, "$/"
-    unless_null $P931, vivify_328
+    unless_null $P931, vivify_333
     $P931 = root_new ['parrot';'Hash']
-  vivify_328:
+  vivify_333:
     set $P932, $P931["sigil"]
-    unless_null $P932, vivify_329
+    unless_null $P932, vivify_334
     new $P932, "Undef"
-  vivify_329:
+  vivify_334:
     $P933 = "vivitype"($P932)
     $P930."viviself"($P933)
+.annotate 'line', 342
     find_lex $P934, "$past"
     $P934."lvalue"(1)
   if_919_end:
+.annotate 'line', 344
     find_lex $P937, "$/"
-    unless_null $P937, vivify_330
+    unless_null $P937, vivify_335
     $P937 = root_new ['parrot';'Hash']
-  vivify_330:
+  vivify_335:
     set $P938, $P937["twigil"]
-    unless_null $P938, vivify_331
+    unless_null $P938, vivify_336
     $P938 = root_new ['parrot';'ResizablePMCArray']
-  vivify_331:
+  vivify_336:
     set $P939, $P938[0]
-    unless_null $P939, vivify_332
+    unless_null $P939, vivify_337
     new $P939, "Undef"
-  vivify_332:
+  vivify_337:
     set $S940, $P939
     iseq $I941, $S940, "*"
     if $I941, if_936
+.annotate 'line', 357
     find_lex $P963, "$/"
-    unless_null $P963, vivify_333
+    unless_null $P963, vivify_338
     $P963 = root_new ['parrot';'Hash']
-  vivify_333:
+  vivify_338:
     set $P964, $P963["twigil"]
-    unless_null $P964, vivify_334
+    unless_null $P964, vivify_339
     $P964 = root_new ['parrot';'ResizablePMCArray']
-  vivify_334:
+  vivify_339:
     set $P965, $P964[0]
-    unless_null $P965, vivify_335
+    unless_null $P965, vivify_340
     new $P965, "Undef"
-  vivify_335:
+  vivify_340:
     set $S966, $P965
     iseq $I967, $S966, "!"
     if $I967, if_962
@@ -22334,52 +23465,62 @@
     set $P961, $I967
     goto if_962_end
   if_962:
+.annotate 'line', 358
     find_lex $P968, "$past"
     get_hll_global $P969, ["PAST"], "Var"
     $P970 = $P969."new"("self" :named("name"))
     $P968."push"($P970)
+.annotate 'line', 359
     find_lex $P971, "$past"
     $P971."scope"("attribute")
+.annotate 'line', 360
     find_lex $P972, "$past"
     find_lex $P973, "$/"
-    unless_null $P973, vivify_336
+    unless_null $P973, vivify_341
     $P973 = root_new ['parrot';'Hash']
-  vivify_336:
+  vivify_341:
     set $P974, $P973["sigil"]
-    unless_null $P974, vivify_337
+    unless_null $P974, vivify_342
     new $P974, "Undef"
-  vivify_337:
+  vivify_342:
     $P975 = "vivitype"($P974)
     $P976 = $P972."viviself"($P975)
+.annotate 'line', 357
     set $P961, $P976
   if_962_end:
     set $P935, $P961
+.annotate 'line', 344
     goto if_936_end
   if_936:
+.annotate 'line', 345
     find_lex $P942, "$past"
     $P942."scope"("contextual")
+.annotate 'line', 346
     find_lex $P943, "$past"
+.annotate 'line', 347
     get_hll_global $P944, ["PAST"], "Var"
+.annotate 'line', 349
     find_lex $P945, "$/"
-    unless_null $P945, vivify_338
+    unless_null $P945, vivify_343
     $P945 = root_new ['parrot';'Hash']
-  vivify_338:
+  vivify_343:
     set $P946, $P945["sigil"]
-    unless_null $P946, vivify_339
+    unless_null $P946, vivify_344
     new $P946, "Undef"
-  vivify_339:
+  vivify_344:
     set $S947, $P946
     new $P948, 'String'
     set $P948, $S947
     find_lex $P949, "$/"
-    unless_null $P949, vivify_340
+    unless_null $P949, vivify_345
     $P949 = root_new ['parrot';'Hash']
-  vivify_340:
+  vivify_345:
     set $P950, $P949["desigilname"]
-    unless_null $P950, vivify_341
+    unless_null $P950, vivify_346
     new $P950, "Undef"
-  vivify_341:
+  vivify_346:
     concat $P951, $P948, $P950
+.annotate 'line', 351
     get_hll_global $P952, ["PAST"], "Op"
     new $P953, "String"
     assign $P953, "Contextual "
@@ -22389,18 +23530,21 @@
     concat $P957, $P956, " not found"
     $P958 = $P952."new"($P957, "die" :named("pirop"))
     $P959 = $P944."new"("package" :named("scope"), "" :named("namespace"), $P951 :named("name"), $P958 :named("viviself"))
+.annotate 'line', 347
     $P960 = $P943."viviself"($P959)
+.annotate 'line', 344
     set $P935, $P960
   if_936_end:
+.annotate 'line', 334
     .return ($P935)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "package_declarator:sym<module>"  :subid("62_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "package_declarator:sym<module>"  :subid("62_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_984
-.annotate 'line', 0
+.annotate 'line', 366
     new $P983, 'ExceptionHandler'
     set_addr $P983, control_982
     $P983."handle_types"(.CONTROL_RETURN)
@@ -22409,13 +23553,13 @@
     .lex "$/", param_984
     find_lex $P985, "$/"
     find_lex $P986, "$/"
-    unless_null $P986, vivify_344
+    unless_null $P986, vivify_349
     $P986 = root_new ['parrot';'Hash']
-  vivify_344:
+  vivify_349:
     set $P987, $P986["package_def"]
-    unless_null $P987, vivify_345
+    unless_null $P987, vivify_350
     new $P987, "Undef"
-  vivify_345:
+  vivify_350:
     $P988 = $P987."ast"()
     $P989 = $P985."!make"($P988)
     .return ($P989)
@@ -22429,79 +23573,89 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "package_declarator:sym<class>"  :subid("63_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "package_declarator:sym<class>"  :subid("63_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_994
-.annotate 'line', 0
+.annotate 'line', 367
     new $P993, 'ExceptionHandler'
     set_addr $P993, control_992
     $P993."handle_types"(.CONTROL_RETURN)
     push_eh $P993
     .lex "self", self
     .lex "$/", param_994
+.annotate 'line', 368
     new $P995, "Undef"
     .lex "$past", $P995
+.annotate 'line', 369
     new $P996, "Undef"
     .lex "$classinit", $P996
+.annotate 'line', 378
     new $P997, "Undef"
     .lex "$parent", $P997
+.annotate 'line', 368
     find_lex $P998, "$/"
-    unless_null $P998, vivify_346
+    unless_null $P998, vivify_351
     $P998 = root_new ['parrot';'Hash']
-  vivify_346:
+  vivify_351:
     set $P999, $P998["package_def"]
-    unless_null $P999, vivify_347
+    unless_null $P999, vivify_352
     new $P999, "Undef"
-  vivify_347:
+  vivify_352:
     $P1000 = $P999."ast"()
     store_lex "$past", $P1000
+.annotate 'line', 370
     get_hll_global $P1001, ["PAST"], "Op"
+.annotate 'line', 371
     get_hll_global $P1002, ["PAST"], "Op"
     $P1003 = $P1002."new"("    %r = get_root_global [\"parrot\"], \"P6metaclass\"" :named("inline"))
+.annotate 'line', 374
     find_lex $P1004, "$/"
-    unless_null $P1004, vivify_348
+    unless_null $P1004, vivify_353
     $P1004 = root_new ['parrot';'Hash']
-  vivify_348:
+  vivify_353:
     set $P1005, $P1004["package_def"]
-    unless_null $P1005, vivify_349
+    unless_null $P1005, vivify_354
     $P1005 = root_new ['parrot';'Hash']
-  vivify_349:
+  vivify_354:
     set $P1006, $P1005["name"]
-    unless_null $P1006, vivify_350
+    unless_null $P1006, vivify_355
     new $P1006, "Undef"
-  vivify_350:
+  vivify_355:
     set $S1007, $P1006
     $P1008 = $P1001."new"($P1003, $S1007, "new_class" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 370
     store_lex "$classinit", $P1008
+.annotate 'line', 378
     find_lex $P1011, "$/"
-    unless_null $P1011, vivify_351
+    unless_null $P1011, vivify_356
     $P1011 = root_new ['parrot';'Hash']
-  vivify_351:
+  vivify_356:
     set $P1012, $P1011["package_def"]
-    unless_null $P1012, vivify_352
+    unless_null $P1012, vivify_357
     $P1012 = root_new ['parrot';'Hash']
-  vivify_352:
+  vivify_357:
     set $P1013, $P1012["parent"]
-    unless_null $P1013, vivify_353
+    unless_null $P1013, vivify_358
     $P1013 = root_new ['parrot';'ResizablePMCArray']
-  vivify_353:
+  vivify_358:
     set $P1014, $P1013[0]
-    unless_null $P1014, vivify_354
+    unless_null $P1014, vivify_359
     new $P1014, "Undef"
-  vivify_354:
+  vivify_359:
     set $S1015, $P1014
     unless $S1015, unless_1010
     new $P1009, 'String'
     set $P1009, $S1015
     goto unless_1010_end
   unless_1010:
+.annotate 'line', 379
     find_lex $P1018, "$/"
-    unless_null $P1018, vivify_355
+    unless_null $P1018, vivify_360
     $P1018 = root_new ['parrot';'Hash']
-  vivify_355:
+  vivify_360:
     set $P1019, $P1018["sym"]
-    unless_null $P1019, vivify_356
+    unless_null $P1019, vivify_361
     new $P1019, "Undef"
-  vivify_356:
+  vivify_361:
     set $S1020, $P1019
     iseq $I1021, $S1020, "grammar"
     if $I1021, if_1017
@@ -22517,48 +23671,55 @@
     set $P1009, $P1016
   unless_1010_end:
     store_lex "$parent", $P1009
+.annotate 'line', 380
     find_lex $P1025, "$parent"
     unless $P1025, if_1024_end
+.annotate 'line', 381
     find_lex $P1026, "$classinit"
     get_hll_global $P1027, ["PAST"], "Val"
     find_lex $P1028, "$parent"
     $P1029 = $P1027."new"($P1028 :named("value"), "parent" :named("named"))
     $P1026."push"($P1029)
   if_1024_end:
+.annotate 'line', 383
     find_lex $P1031, "$past"
-    unless_null $P1031, vivify_357
+    unless_null $P1031, vivify_362
     $P1031 = root_new ['parrot';'Hash']
-  vivify_357:
+  vivify_362:
     set $P1032, $P1031["attributes"]
-    unless_null $P1032, vivify_358
+    unless_null $P1032, vivify_363
     new $P1032, "Undef"
-  vivify_358:
+  vivify_363:
     unless $P1032, if_1030_end
+.annotate 'line', 384
     find_lex $P1033, "$classinit"
     find_lex $P1034, "$past"
-    unless_null $P1034, vivify_359
+    unless_null $P1034, vivify_364
     $P1034 = root_new ['parrot';'Hash']
-  vivify_359:
+  vivify_364:
     set $P1035, $P1034["attributes"]
-    unless_null $P1035, vivify_360
+    unless_null $P1035, vivify_365
     new $P1035, "Undef"
-  vivify_360:
+  vivify_365:
     $P1033."push"($P1035)
   if_1030_end:
+.annotate 'line', 386
     get_global $P1036, "@BLOCK"
-    unless_null $P1036, vivify_361
+    unless_null $P1036, vivify_366
     $P1036 = root_new ['parrot';'ResizablePMCArray']
-  vivify_361:
+  vivify_366:
     set $P1037, $P1036[0]
-    unless_null $P1037, vivify_362
+    unless_null $P1037, vivify_367
     new $P1037, "Undef"
-  vivify_362:
+  vivify_367:
     $P1038 = $P1037."loadinit"()
     find_lex $P1039, "$classinit"
     $P1038."push"($P1039)
+.annotate 'line', 387
     find_lex $P1040, "$/"
     find_lex $P1041, "$past"
     $P1042 = $P1040."!make"($P1041)
+.annotate 'line', 367
     .return ($P1042)
   control_992:
     .local pmc exception 
@@ -22570,69 +23731,74 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "package_def"  :subid("64_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "package_def"  :subid("64_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_1047
-.annotate 'line', 0
+.annotate 'line', 390
     new $P1046, 'ExceptionHandler'
     set_addr $P1046, control_1045
     $P1046."handle_types"(.CONTROL_RETURN)
     push_eh $P1046
     .lex "self", self
     .lex "$/", param_1047
+.annotate 'line', 391
     new $P1048, "Undef"
     .lex "$past", $P1048
     find_lex $P1051, "$/"
-    unless_null $P1051, vivify_363
+    unless_null $P1051, vivify_368
     $P1051 = root_new ['parrot';'Hash']
-  vivify_363:
+  vivify_368:
     set $P1052, $P1051["block"]
-    unless_null $P1052, vivify_364
+    unless_null $P1052, vivify_369
     new $P1052, "Undef"
-  vivify_364:
+  vivify_369:
     if $P1052, if_1050
     find_lex $P1056, "$/"
-    unless_null $P1056, vivify_365
+    unless_null $P1056, vivify_370
     $P1056 = root_new ['parrot';'Hash']
-  vivify_365:
+  vivify_370:
     set $P1057, $P1056["comp_unit"]
-    unless_null $P1057, vivify_366
+    unless_null $P1057, vivify_371
     new $P1057, "Undef"
-  vivify_366:
+  vivify_371:
     $P1058 = $P1057."ast"()
     set $P1049, $P1058
     goto if_1050_end
   if_1050:
     find_lex $P1053, "$/"
-    unless_null $P1053, vivify_367
+    unless_null $P1053, vivify_372
     $P1053 = root_new ['parrot';'Hash']
-  vivify_367:
+  vivify_372:
     set $P1054, $P1053["block"]
-    unless_null $P1054, vivify_368
+    unless_null $P1054, vivify_373
     new $P1054, "Undef"
-  vivify_368:
+  vivify_373:
     $P1055 = $P1054."ast"()
     set $P1049, $P1055
   if_1050_end:
     store_lex "$past", $P1049
+.annotate 'line', 392
     find_lex $P1059, "$past"
     find_lex $P1060, "$/"
-    unless_null $P1060, vivify_369
+    unless_null $P1060, vivify_374
     $P1060 = root_new ['parrot';'Hash']
-  vivify_369:
+  vivify_374:
     set $P1061, $P1060["name"]
-    unless_null $P1061, vivify_370
+    unless_null $P1061, vivify_375
     $P1061 = root_new ['parrot';'Hash']
-  vivify_370:
+  vivify_375:
     set $P1062, $P1061["identifier"]
-    unless_null $P1062, vivify_371
+    unless_null $P1062, vivify_376
     new $P1062, "Undef"
-  vivify_371:
+  vivify_376:
     $P1059."namespace"($P1062)
+.annotate 'line', 393
     find_lex $P1063, "$past"
     $P1063."blocktype"("immediate")
+.annotate 'line', 394
     find_lex $P1064, "$/"
     find_lex $P1065, "$past"
     $P1066 = $P1064."!make"($P1065)
+.annotate 'line', 390
     .return ($P1066)
   control_1045:
     .local pmc exception 
@@ -22644,9 +23810,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scope_declarator:sym<my>"  :subid("65_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "scope_declarator:sym<my>"  :subid("65_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_1071
-.annotate 'line', 0
+.annotate 'line', 397
     new $P1070, 'ExceptionHandler'
     set_addr $P1070, control_1069
     $P1070."handle_types"(.CONTROL_RETURN)
@@ -22655,13 +23821,13 @@
     .lex "$/", param_1071
     find_lex $P1072, "$/"
     find_lex $P1073, "$/"
-    unless_null $P1073, vivify_372
+    unless_null $P1073, vivify_377
     $P1073 = root_new ['parrot';'Hash']
-  vivify_372:
+  vivify_377:
     set $P1074, $P1073["scoped"]
-    unless_null $P1074, vivify_373
+    unless_null $P1074, vivify_378
     new $P1074, "Undef"
-  vivify_373:
+  vivify_378:
     $P1075 = $P1074."ast"()
     $P1076 = $P1072."!make"($P1075)
     .return ($P1076)
@@ -22675,9 +23841,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scope_declarator:sym<our>"  :subid("66_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "scope_declarator:sym<our>"  :subid("66_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_1081
-.annotate 'line', 0
+.annotate 'line', 398
     new $P1080, 'ExceptionHandler'
     set_addr $P1080, control_1079
     $P1080."handle_types"(.CONTROL_RETURN)
@@ -22686,13 +23852,13 @@
     .lex "$/", param_1081
     find_lex $P1082, "$/"
     find_lex $P1083, "$/"
-    unless_null $P1083, vivify_374
+    unless_null $P1083, vivify_379
     $P1083 = root_new ['parrot';'Hash']
-  vivify_374:
+  vivify_379:
     set $P1084, $P1083["scoped"]
-    unless_null $P1084, vivify_375
+    unless_null $P1084, vivify_380
     new $P1084, "Undef"
-  vivify_375:
+  vivify_380:
     $P1085 = $P1084."ast"()
     $P1086 = $P1082."!make"($P1085)
     .return ($P1086)
@@ -22706,9 +23872,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scope_declarator:sym<has>"  :subid("67_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "scope_declarator:sym<has>"  :subid("67_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_1091
-.annotate 'line', 0
+.annotate 'line', 399
     new $P1090, 'ExceptionHandler'
     set_addr $P1090, control_1089
     $P1090."handle_types"(.CONTROL_RETURN)
@@ -22717,13 +23883,13 @@
     .lex "$/", param_1091
     find_lex $P1092, "$/"
     find_lex $P1093, "$/"
-    unless_null $P1093, vivify_376
+    unless_null $P1093, vivify_381
     $P1093 = root_new ['parrot';'Hash']
-  vivify_376:
+  vivify_381:
     set $P1094, $P1093["scoped"]
-    unless_null $P1094, vivify_377
+    unless_null $P1094, vivify_382
     new $P1094, "Undef"
-  vivify_377:
+  vivify_382:
     $P1095 = $P1094."ast"()
     $P1096 = $P1092."!make"($P1095)
     .return ($P1096)
@@ -22737,49 +23903,54 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scoped"  :subid("68_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "scoped"  :subid("68_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_1101
-.annotate 'line', 0
+.annotate 'line', 401
     new $P1100, 'ExceptionHandler'
     set_addr $P1100, control_1099
     $P1100."handle_types"(.CONTROL_RETURN)
     push_eh $P1100
     .lex "self", self
     .lex "$/", param_1101
+.annotate 'line', 402
     find_lex $P1102, "$/"
+.annotate 'line', 403
     find_lex $P1105, "$/"
-    unless_null $P1105, vivify_378
+    unless_null $P1105, vivify_383
     $P1105 = root_new ['parrot';'Hash']
-  vivify_378:
+  vivify_383:
     set $P1106, $P1105["declarator"]
-    unless_null $P1106, vivify_379
+    unless_null $P1106, vivify_384
     new $P1106, "Undef"
-  vivify_379:
+  vivify_384:
     if $P1106, if_1104
+.annotate 'line', 404
     find_lex $P1110, "$/"
-    unless_null $P1110, vivify_380
+    unless_null $P1110, vivify_385
     $P1110 = root_new ['parrot';'Hash']
-  vivify_380:
+  vivify_385:
     set $P1111, $P1110["multi_declarator"]
-    unless_null $P1111, vivify_381
+    unless_null $P1111, vivify_386
     new $P1111, "Undef"
-  vivify_381:
+  vivify_386:
     $P1112 = $P1111."ast"()
     set $P1103, $P1112
+.annotate 'line', 403
     goto if_1104_end
   if_1104:
     find_lex $P1107, "$/"
-    unless_null $P1107, vivify_382
+    unless_null $P1107, vivify_387
     $P1107 = root_new ['parrot';'Hash']
-  vivify_382:
+  vivify_387:
     set $P1108, $P1107["declarator"]
-    unless_null $P1108, vivify_383
+    unless_null $P1108, vivify_388
     new $P1108, "Undef"
-  vivify_383:
+  vivify_388:
     $P1109 = $P1108."ast"()
     set $P1103, $P1109
   if_1104_end:
     $P1113 = $P1102."!make"($P1103)
+.annotate 'line', 401
     .return ($P1113)
   control_1099:
     .local pmc exception 
@@ -22791,49 +23962,54 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "declarator"  :subid("69_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "declarator"  :subid("69_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_1118
-.annotate 'line', 0
+.annotate 'line', 407
     new $P1117, 'ExceptionHandler'
     set_addr $P1117, control_1116
     $P1117."handle_types"(.CONTROL_RETURN)
     push_eh $P1117
     .lex "self", self
     .lex "$/", param_1118
+.annotate 'line', 408
     find_lex $P1119, "$/"
+.annotate 'line', 409
     find_lex $P1122, "$/"
-    unless_null $P1122, vivify_384
+    unless_null $P1122, vivify_389
     $P1122 = root_new ['parrot';'Hash']
-  vivify_384:
+  vivify_389:
     set $P1123, $P1122["routine_declarator"]
-    unless_null $P1123, vivify_385
+    unless_null $P1123, vivify_390
     new $P1123, "Undef"
-  vivify_385:
+  vivify_390:
     if $P1123, if_1121
+.annotate 'line', 410
     find_lex $P1127, "$/"
-    unless_null $P1127, vivify_386
+    unless_null $P1127, vivify_391
     $P1127 = root_new ['parrot';'Hash']
-  vivify_386:
+  vivify_391:
     set $P1128, $P1127["variable_declarator"]
-    unless_null $P1128, vivify_387
+    unless_null $P1128, vivify_392
     new $P1128, "Undef"
-  vivify_387:
+  vivify_392:
     $P1129 = $P1128."ast"()
     set $P1120, $P1129
+.annotate 'line', 409
     goto if_1121_end
   if_1121:
     find_lex $P1124, "$/"
-    unless_null $P1124, vivify_388
+    unless_null $P1124, vivify_393
     $P1124 = root_new ['parrot';'Hash']
-  vivify_388:
+  vivify_393:
     set $P1125, $P1124["routine_declarator"]
-    unless_null $P1125, vivify_389
+    unless_null $P1125, vivify_394
     new $P1125, "Undef"
-  vivify_389:
+  vivify_394:
     $P1126 = $P1125."ast"()
     set $P1120, $P1126
   if_1121_end:
     $P1130 = $P1119."!make"($P1120)
+.annotate 'line', 407
     .return ($P1130)
   control_1116:
     .local pmc exception 
@@ -22845,9 +24021,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "multi_declarator:sym<multi>"  :subid("70_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "multi_declarator:sym<multi>"  :subid("70_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_1135
-.annotate 'line', 0
+.annotate 'line', 413
     new $P1134, 'ExceptionHandler'
     set_addr $P1134, control_1133
     $P1134."handle_types"(.CONTROL_RETURN)
@@ -22856,34 +24032,34 @@
     .lex "$/", param_1135
     find_lex $P1136, "$/"
     find_lex $P1139, "$/"
-    unless_null $P1139, vivify_390
+    unless_null $P1139, vivify_395
     $P1139 = root_new ['parrot';'Hash']
-  vivify_390:
+  vivify_395:
     set $P1140, $P1139["declarator"]
-    unless_null $P1140, vivify_391
+    unless_null $P1140, vivify_396
     new $P1140, "Undef"
-  vivify_391:
+  vivify_396:
     if $P1140, if_1138
     find_lex $P1144, "$/"
-    unless_null $P1144, vivify_392
+    unless_null $P1144, vivify_397
     $P1144 = root_new ['parrot';'Hash']
-  vivify_392:
+  vivify_397:
     set $P1145, $P1144["routine_def"]
-    unless_null $P1145, vivify_393
+    unless_null $P1145, vivify_398
     new $P1145, "Undef"
-  vivify_393:
+  vivify_398:
     $P1146 = $P1145."ast"()
     set $P1137, $P1146
     goto if_1138_end
   if_1138:
     find_lex $P1141, "$/"
-    unless_null $P1141, vivify_394
+    unless_null $P1141, vivify_399
     $P1141 = root_new ['parrot';'Hash']
-  vivify_394:
+  vivify_399:
     set $P1142, $P1141["declarator"]
-    unless_null $P1142, vivify_395
+    unless_null $P1142, vivify_400
     new $P1142, "Undef"
-  vivify_395:
+  vivify_400:
     $P1143 = $P1142."ast"()
     set $P1137, $P1143
   if_1138_end:
@@ -22899,9 +24075,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "multi_declarator:sym<null>"  :subid("71_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "multi_declarator:sym<null>"  :subid("71_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_1152
-.annotate 'line', 0
+.annotate 'line', 414
     new $P1151, 'ExceptionHandler'
     set_addr $P1151, control_1150
     $P1151."handle_types"(.CONTROL_RETURN)
@@ -22910,13 +24086,13 @@
     .lex "$/", param_1152
     find_lex $P1153, "$/"
     find_lex $P1154, "$/"
-    unless_null $P1154, vivify_396
+    unless_null $P1154, vivify_401
     $P1154 = root_new ['parrot';'Hash']
-  vivify_396:
+  vivify_401:
     set $P1155, $P1154["declarator"]
-    unless_null $P1155, vivify_397
+    unless_null $P1155, vivify_402
     new $P1155, "Undef"
-  vivify_397:
+  vivify_402:
     $P1156 = $P1155."ast"()
     $P1157 = $P1153."!make"($P1156)
     .return ($P1157)
@@ -22930,10 +24106,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "variable_declarator"  :subid("72_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "variable_declarator"  :subid("72_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_1162
-.annotate 'line', 0
-    .const 'Sub' $P1202 = "73_1283975952.27658" 
+.annotate 'line', 417
+    .const 'Sub' $P1202 = "73_1284728484.24945" 
     capture_lex $P1202
     new $P1161, 'ExceptionHandler'
     set_addr $P1161, control_1160
@@ -22941,111 +24117,130 @@
     push_eh $P1161
     .lex "self", self
     .lex "$/", param_1162
+.annotate 'line', 418
     new $P1163, "Undef"
     .lex "$past", $P1163
+.annotate 'line', 419
     new $P1164, "Undef"
     .lex "$sigil", $P1164
+.annotate 'line', 420
     new $P1165, "Undef"
     .lex "$name", $P1165
+.annotate 'line', 421
     new $P1166, "Undef"
     .lex "$BLOCK", $P1166
+.annotate 'line', 418
     find_lex $P1167, "$/"
-    unless_null $P1167, vivify_398
+    unless_null $P1167, vivify_403
     $P1167 = root_new ['parrot';'Hash']
-  vivify_398:
+  vivify_403:
     set $P1168, $P1167["variable"]
-    unless_null $P1168, vivify_399
+    unless_null $P1168, vivify_404
     new $P1168, "Undef"
-  vivify_399:
+  vivify_404:
     $P1169 = $P1168."ast"()
     store_lex "$past", $P1169
+.annotate 'line', 419
     find_lex $P1170, "$/"
-    unless_null $P1170, vivify_400
+    unless_null $P1170, vivify_405
     $P1170 = root_new ['parrot';'Hash']
-  vivify_400:
+  vivify_405:
     set $P1171, $P1170["variable"]
-    unless_null $P1171, vivify_401
+    unless_null $P1171, vivify_406
     $P1171 = root_new ['parrot';'Hash']
-  vivify_401:
+  vivify_406:
     set $P1172, $P1171["sigil"]
-    unless_null $P1172, vivify_402
+    unless_null $P1172, vivify_407
     new $P1172, "Undef"
-  vivify_402:
+  vivify_407:
     store_lex "$sigil", $P1172
+.annotate 'line', 420
     find_lex $P1173, "$past"
     $P1174 = $P1173."name"()
     store_lex "$name", $P1174
+.annotate 'line', 421
     get_global $P1175, "@BLOCK"
-    unless_null $P1175, vivify_403
+    unless_null $P1175, vivify_408
     $P1175 = root_new ['parrot';'ResizablePMCArray']
-  vivify_403:
+  vivify_408:
     set $P1176, $P1175[0]
-    unless_null $P1176, vivify_404
+    unless_null $P1176, vivify_409
     new $P1176, "Undef"
-  vivify_404:
+  vivify_409:
     store_lex "$BLOCK", $P1176
+.annotate 'line', 422
     find_lex $P1178, "$BLOCK"
     find_lex $P1179, "$name"
     $P1180 = $P1178."symbol"($P1179)
     unless $P1180, if_1177_end
+.annotate 'line', 423
     find_lex $P1181, "$/"
     $P1182 = $P1181."CURSOR"()
     find_lex $P1183, "$name"
     $P1182."panic"("Redeclaration of symbol ", $P1183)
   if_1177_end:
+.annotate 'line', 425
     find_dynamic_lex $P1185, "$*SCOPE"
-    unless_null $P1185, vivify_405
+    unless_null $P1185, vivify_410
     get_hll_global $P1185, "$SCOPE"
-    unless_null $P1185, vivify_406
+    unless_null $P1185, vivify_411
     die "Contextual $*SCOPE not found"
-  vivify_406:
-  vivify_405:
+  vivify_411:
+  vivify_410:
     set $S1186, $P1185
     iseq $I1187, $S1186, "has"
     if $I1187, if_1184
-    .const 'Sub' $P1202 = "73_1283975952.27658" 
+.annotate 'line', 434
+    .const 'Sub' $P1202 = "73_1284728484.24945" 
     capture_lex $P1202
     $P1202()
     goto if_1184_end
   if_1184:
+.annotate 'line', 426
     find_lex $P1188, "$BLOCK"
     find_lex $P1189, "$name"
     $P1188."symbol"($P1189, "attribute" :named("scope"))
+.annotate 'line', 427
     find_lex $P1191, "$BLOCK"
-    unless_null $P1191, vivify_411
+    unless_null $P1191, vivify_416
     $P1191 = root_new ['parrot';'Hash']
-  vivify_411:
+  vivify_416:
     set $P1192, $P1191["attributes"]
-    unless_null $P1192, vivify_412
+    unless_null $P1192, vivify_417
     new $P1192, "Undef"
-  vivify_412:
+  vivify_417:
     if $P1192, unless_1190_end
+.annotate 'line', 429
     get_hll_global $P1193, ["PAST"], "Op"
     $P1194 = $P1193."new"("list" :named("pasttype"), "attr" :named("named"))
     find_lex $P1195, "$BLOCK"
-    unless_null $P1195, vivify_413
+    unless_null $P1195, vivify_418
     $P1195 = root_new ['parrot';'Hash']
     store_lex "$BLOCK", $P1195
-  vivify_413:
+  vivify_418:
     set $P1195["attributes"], $P1194
   unless_1190_end:
+.annotate 'line', 431
     find_lex $P1196, "$BLOCK"
-    unless_null $P1196, vivify_414
+    unless_null $P1196, vivify_419
     $P1196 = root_new ['parrot';'Hash']
-  vivify_414:
+  vivify_419:
     set $P1197, $P1196["attributes"]
-    unless_null $P1197, vivify_415
+    unless_null $P1197, vivify_420
     new $P1197, "Undef"
-  vivify_415:
+  vivify_420:
     find_lex $P1198, "$name"
     $P1197."push"($P1198)
+.annotate 'line', 432
     get_hll_global $P1199, ["PAST"], "Stmts"
     $P1200 = $P1199."new"()
     store_lex "$past", $P1200
   if_1184_end:
+.annotate 'line', 442
     find_lex $P1226, "$/"
     find_lex $P1227, "$past"
     $P1228 = $P1226."!make"($P1227)
+.annotate 'line', 417
     .return ($P1228)
   control_1160:
     .local pmc exception 
@@ -23056,19 +24251,21 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1201"  :anon :subid("73_1283975952.27658") :outer("72_1283975952.27658")
-.annotate 'line', 0
+.sub "_block1201"  :anon :subid("73_1284728484.24945") :outer("72_1284728484.24945")
+.annotate 'line', 435
     new $P1203, "Undef"
     .lex "$scope", $P1203
+.annotate 'line', 436
     new $P1204, "Undef"
     .lex "$decl", $P1204
+.annotate 'line', 435
     find_dynamic_lex $P1207, "$*SCOPE"
-    unless_null $P1207, vivify_407
+    unless_null $P1207, vivify_412
     get_hll_global $P1207, "$SCOPE"
-    unless_null $P1207, vivify_408
+    unless_null $P1207, vivify_413
     die "Contextual $*SCOPE not found"
-  vivify_408:
-  vivify_407:
+  vivify_413:
+  vivify_412:
     set $S1208, $P1207
     iseq $I1209, $S1208, "our"
     if $I1209, if_1206
@@ -23082,37 +24279,43 @@
     set $P1205, $P1210
   if_1206_end:
     store_lex "$scope", $P1205
+.annotate 'line', 436
     get_hll_global $P1212, ["PAST"], "Var"
     find_lex $P1213, "$name"
     find_lex $P1214, "$scope"
+.annotate 'line', 437
     find_lex $P1215, "$sigil"
     $P1216 = "vivitype"($P1215)
     find_lex $P1217, "$/"
     $P1218 = $P1212."new"($P1213 :named("name"), $P1214 :named("scope"), 1 :named("isdecl"), 1 :named("lvalue"), $P1216 :named("viviself"), $P1217 :named("node"))
+.annotate 'line', 436
     store_lex "$decl", $P1218
+.annotate 'line', 439
     find_lex $P1219, "$BLOCK"
     find_lex $P1220, "$name"
     find_lex $P1221, "$scope"
     $P1219."symbol"($P1220, $P1221 :named("scope"))
+.annotate 'line', 440
     find_lex $P1222, "$BLOCK"
-    unless_null $P1222, vivify_409
+    unless_null $P1222, vivify_414
     $P1222 = root_new ['parrot';'ResizablePMCArray']
-  vivify_409:
+  vivify_414:
     set $P1223, $P1222[0]
-    unless_null $P1223, vivify_410
+    unless_null $P1223, vivify_415
     new $P1223, "Undef"
-  vivify_410:
+  vivify_415:
     find_lex $P1224, "$decl"
     $P1225 = $P1223."push"($P1224)
+.annotate 'line', 434
     .return ($P1225)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "routine_declarator:sym<sub>"  :subid("74_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "routine_declarator:sym<sub>"  :subid("74_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_1233
-.annotate 'line', 0
+.annotate 'line', 445
     new $P1232, 'ExceptionHandler'
     set_addr $P1232, control_1231
     $P1232."handle_types"(.CONTROL_RETURN)
@@ -23121,13 +24324,13 @@
     .lex "$/", param_1233
     find_lex $P1234, "$/"
     find_lex $P1235, "$/"
-    unless_null $P1235, vivify_416
+    unless_null $P1235, vivify_421
     $P1235 = root_new ['parrot';'Hash']
-  vivify_416:
+  vivify_421:
     set $P1236, $P1235["routine_def"]
-    unless_null $P1236, vivify_417
+    unless_null $P1236, vivify_422
     new $P1236, "Undef"
-  vivify_417:
+  vivify_422:
     $P1237 = $P1236."ast"()
     $P1238 = $P1234."!make"($P1237)
     .return ($P1238)
@@ -23141,9 +24344,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "routine_declarator:sym<method>"  :subid("75_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "routine_declarator:sym<method>"  :subid("75_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_1243
-.annotate 'line', 0
+.annotate 'line', 446
     new $P1242, 'ExceptionHandler'
     set_addr $P1242, control_1241
     $P1242."handle_types"(.CONTROL_RETURN)
@@ -23152,13 +24355,13 @@
     .lex "$/", param_1243
     find_lex $P1244, "$/"
     find_lex $P1245, "$/"
-    unless_null $P1245, vivify_418
+    unless_null $P1245, vivify_423
     $P1245 = root_new ['parrot';'Hash']
-  vivify_418:
+  vivify_423:
     set $P1246, $P1245["method_def"]
-    unless_null $P1246, vivify_419
+    unless_null $P1246, vivify_424
     new $P1246, "Undef"
-  vivify_419:
+  vivify_424:
     $P1247 = $P1246."ast"()
     $P1248 = $P1244."!make"($P1247)
     .return ($P1248)
@@ -23172,3278 +24375,3863 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "routine_def"  :subid("76_1283975952.27658") :method :outer("11_1283975952.27658")
+.sub "routine_def"  :subid("76_1284728484.24945") :method :outer("11_1284728484.24945")
     .param pmc param_1253
-.annotate 'line', 0
-    .const 'Sub' $P1264 = "77_1283975952.27658" 
-    capture_lex $P1264
+.annotate 'line', 448
+    .const 'Sub' $P1312 = "78_1284728484.24945" 
+    capture_lex $P1312
+    .const 'Sub' $P1266 = "77_1284728484.24945" 
+    capture_lex $P1266
     new $P1252, 'ExceptionHandler'
     set_addr $P1252, control_1251
     $P1252."handle_types"(.CONTROL_RETURN)
     push_eh $P1252
     .lex "self", self
     .lex "$/", param_1253
+.annotate 'line', 449
     new $P1254, "Undef"
-    .lex "$past", $P1254
-    find_lex $P1255, "$/"
-    unless_null $P1255, vivify_420
-    $P1255 = root_new ['parrot';'Hash']
-  vivify_420:
-    set $P1256, $P1255["blockoid"]
-    unless_null $P1256, vivify_421
-    new $P1256, "Undef"
-  vivify_421:
-    $P1257 = $P1256."ast"()
-    store_lex "$past", $P1257
-    find_lex $P1258, "$past"
-    $P1258."blocktype"("declaration")
-    find_lex $P1259, "$past"
-    $P1259."control"("return_pir")
-    find_lex $P1261, "$/"
-    unless_null $P1261, vivify_422
-    $P1261 = root_new ['parrot';'Hash']
-  vivify_422:
-    set $P1262, $P1261["deflongname"]
-    unless_null $P1262, vivify_423
-    new $P1262, "Undef"
-  vivify_423:
-    unless $P1262, if_1260_end
-    .const 'Sub' $P1264 = "77_1283975952.27658" 
-    capture_lex $P1264
-    $P1264()
-  if_1260_end:
-    find_lex $P1296, "$/"
-    find_lex $P1297, "$past"
-    $P1298 = $P1296."!make"($P1297)
-    .return ($P1298)
+    .lex "$block", $P1254
+.annotate 'line', 452
+    new $P1255, "Undef"
+    .lex "$past", $P1255
+.annotate 'line', 449
+    find_lex $P1256, "$/"
+    unless_null $P1256, vivify_425
+    $P1256 = root_new ['parrot';'Hash']
+  vivify_425:
+    set $P1257, $P1256["blockoid"]
+    unless_null $P1257, vivify_426
+    new $P1257, "Undef"
+  vivify_426:
+    $P1258 = $P1257."ast"()
+    store_lex "$block", $P1258
+.annotate 'line', 450
+    find_lex $P1259, "$block"
+    $P1259."blocktype"("declaration")
+.annotate 'line', 451
+    find_lex $P1260, "$block"
+    $P1260."control"("return_pir")
+.annotate 'line', 452
+    find_lex $P1261, "$block"
+    store_lex "$past", $P1261
+.annotate 'line', 453
+    find_lex $P1263, "$/"
+    unless_null $P1263, vivify_427
+    $P1263 = root_new ['parrot';'Hash']
+  vivify_427:
+    set $P1264, $P1263["deflongname"]
+    unless_null $P1264, vivify_428
+    new $P1264, "Undef"
+  vivify_428:
+    unless $P1264, if_1262_end
+    .const 'Sub' $P1266 = "77_1284728484.24945" 
+    capture_lex $P1266
+    $P1266()
+  if_1262_end:
+.annotate 'line', 463
+    find_lex $P1298, "$block"
+    find_lex $P1299, "$past"
+    unless_null $P1299, vivify_442
+    $P1299 = root_new ['parrot';'Hash']
+    store_lex "$past", $P1299
+  vivify_442:
+    set $P1299["block_past"], $P1298
+.annotate 'line', 464
+    find_lex $P1300, "$/"
+    find_lex $P1301, "$past"
+    $P1300."!make"($P1301)
+.annotate 'line', 465
+    find_lex $P1304, "$/"
+    unless_null $P1304, vivify_443
+    $P1304 = root_new ['parrot';'Hash']
+  vivify_443:
+    set $P1305, $P1304["trait"]
+    unless_null $P1305, vivify_444
+    new $P1305, "Undef"
+  vivify_444:
+    if $P1305, if_1303
+    set $P1302, $P1305
+    goto if_1303_end
+  if_1303:
+.annotate 'line', 466
+    find_lex $P1307, "$/"
+    unless_null $P1307, vivify_445
+    $P1307 = root_new ['parrot';'Hash']
+  vivify_445:
+    set $P1308, $P1307["trait"]
+    unless_null $P1308, vivify_446
+    new $P1308, "Undef"
+  vivify_446:
+    defined $I1309, $P1308
+    unless $I1309, for_undef_447
+    iter $P1306, $P1308
+    new $P1319, 'ExceptionHandler'
+    set_addr $P1319, loop1318_handler
+    $P1319."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1319
+  loop1318_test:
+    unless $P1306, loop1318_done
+    shift $P1310, $P1306
+  loop1318_redo:
+    .const 'Sub' $P1312 = "78_1284728484.24945" 
+    capture_lex $P1312
+    $P1312($P1310)
+  loop1318_next:
+    goto loop1318_test
+  loop1318_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1320, exception, 'type'
+    eq $P1320, .CONTROL_LOOP_NEXT, loop1318_next
+    eq $P1320, .CONTROL_LOOP_REDO, loop1318_redo
+  loop1318_done:
+    pop_eh 
+  for_undef_447:
+.annotate 'line', 465
+    set $P1302, $P1306
+  if_1303_end:
+.annotate 'line', 448
+    .return ($P1302)
   control_1251:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1299, exception, "payload"
-    .return ($P1299)
+    getattribute $P1321, exception, "payload"
+    .return ($P1321)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1263"  :anon :subid("77_1283975952.27658") :outer("76_1283975952.27658")
-.annotate 'line', 0
-    new $P1265, "Undef"
-    .lex "$name", $P1265
-    find_lex $P1266, "$/"
-    unless_null $P1266, vivify_424
-    $P1266 = root_new ['parrot';'Hash']
-  vivify_424:
-    set $P1267, $P1266["sigil"]
-    unless_null $P1267, vivify_425
-    $P1267 = root_new ['parrot';'ResizablePMCArray']
-  vivify_425:
-    set $P1268, $P1267[0]
-    unless_null $P1268, vivify_426
-    new $P1268, "Undef"
-  vivify_426:
-    set $S1269, $P1268
-    new $P1270, 'String'
-    set $P1270, $S1269
-    find_lex $P1271, "$/"
-    unless_null $P1271, vivify_427
-    $P1271 = root_new ['parrot';'Hash']
-  vivify_427:
-    set $P1272, $P1271["deflongname"]
-    unless_null $P1272, vivify_428
-    $P1272 = root_new ['parrot';'ResizablePMCArray']
-  vivify_428:
-    set $P1273, $P1272[0]
-    unless_null $P1273, vivify_429
-    new $P1273, "Undef"
+.sub "_block1265"  :anon :subid("77_1284728484.24945") :outer("76_1284728484.24945")
+.annotate 'line', 454
+    new $P1267, "Undef"
+    .lex "$name", $P1267
+    find_lex $P1268, "$/"
+    unless_null $P1268, vivify_429
+    $P1268 = root_new ['parrot';'Hash']
   vivify_429:
-    $S1274 = $P1273."ast"()
-    concat $P1275, $P1270, $S1274
-    store_lex "$name", $P1275
-    find_lex $P1276, "$past"
-    find_lex $P1277, "$name"
-    $P1276."name"($P1277)
-    find_dynamic_lex $P1280, "$*SCOPE"
-    unless_null $P1280, vivify_430
-    get_hll_global $P1280, "$SCOPE"
-    unless_null $P1280, vivify_431
-    die "Contextual $*SCOPE not found"
-  vivify_431:
+    set $P1269, $P1268["sigil"]
+    unless_null $P1269, vivify_430
+    $P1269 = root_new ['parrot';'ResizablePMCArray']
   vivify_430:
-    set $S1281, $P1280
-    isne $I1282, $S1281, "our"
-    if $I1282, if_1279
-    new $P1278, 'Integer'
-    set $P1278, $I1282
-    goto if_1279_end
-  if_1279:
-    get_global $P1283, "@BLOCK"
-    unless_null $P1283, vivify_432
-    $P1283 = root_new ['parrot';'ResizablePMCArray']
+    set $P1270, $P1269[0]
+    unless_null $P1270, vivify_431
+    new $P1270, "Undef"
+  vivify_431:
+    set $S1271, $P1270
+    new $P1272, 'String'
+    set $P1272, $S1271
+    find_lex $P1273, "$/"
+    unless_null $P1273, vivify_432
+    $P1273 = root_new ['parrot';'Hash']
   vivify_432:
-    set $P1284, $P1283[0]
-    unless_null $P1284, vivify_433
-    $P1284 = root_new ['parrot';'ResizablePMCArray']
+    set $P1274, $P1273["deflongname"]
+    unless_null $P1274, vivify_433
+    $P1274 = root_new ['parrot';'ResizablePMCArray']
   vivify_433:
-    set $P1285, $P1284[0]
-    unless_null $P1285, vivify_434
-    new $P1285, "Undef"
+    set $P1275, $P1274[0]
+    unless_null $P1275, vivify_434
+    new $P1275, "Undef"
   vivify_434:
-    get_hll_global $P1286, ["PAST"], "Var"
-    find_lex $P1287, "$name"
-    find_lex $P1288, "$past"
-    $P1289 = $P1286."new"($P1287 :named("name"), 1 :named("isdecl"), $P1288 :named("viviself"), "lexical" :named("scope"))
-    $P1285."push"($P1289)
-    get_global $P1290, "@BLOCK"
-    unless_null $P1290, vivify_435
-    $P1290 = root_new ['parrot';'ResizablePMCArray']
-  vivify_435:
-    set $P1291, $P1290[0]
-    unless_null $P1291, vivify_436
-    new $P1291, "Undef"
+    $S1276 = $P1275."ast"()
+    concat $P1277, $P1272, $S1276
+    store_lex "$name", $P1277
+.annotate 'line', 455
+    find_lex $P1278, "$past"
+    find_lex $P1279, "$name"
+    $P1278."name"($P1279)
+.annotate 'line', 456
+    find_dynamic_lex $P1282, "$*SCOPE"
+    unless_null $P1282, vivify_435
+    get_hll_global $P1282, "$SCOPE"
+    unless_null $P1282, vivify_436
+    die "Contextual $*SCOPE not found"
   vivify_436:
-    find_lex $P1292, "$name"
-    $P1291."symbol"($P1292, "lexical" :named("scope"))
-    get_hll_global $P1293, ["PAST"], "Var"
-    find_lex $P1294, "$name"
-    $P1295 = $P1293."new"($P1294 :named("name"))
-    store_lex "$past", $P1295
-    set $P1278, $P1295
-  if_1279_end:
-    .return ($P1278)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "method_def"  :subid("78_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1303
-.annotate 'line', 0
-    .const 'Sub' $P1324 = "79_1283975952.27658" 
-    capture_lex $P1324
-    new $P1302, 'ExceptionHandler'
-    set_addr $P1302, control_1301
-    $P1302."handle_types"(.CONTROL_RETURN)
-    push_eh $P1302
-    .lex "self", self
-    .lex "$/", param_1303
-    new $P1304, "Undef"
-    .lex "$past", $P1304
-    find_lex $P1305, "$/"
-    unless_null $P1305, vivify_437
-    $P1305 = root_new ['parrot';'Hash']
+  vivify_435:
+    set $S1283, $P1282
+    isne $I1284, $S1283, "our"
+    if $I1284, if_1281
+    new $P1280, 'Integer'
+    set $P1280, $I1284
+    goto if_1281_end
+  if_1281:
+.annotate 'line', 457
+    get_global $P1285, "@BLOCK"
+    unless_null $P1285, vivify_437
+    $P1285 = root_new ['parrot';'ResizablePMCArray']
   vivify_437:
-    set $P1306, $P1305["blockoid"]
-    unless_null $P1306, vivify_438
-    new $P1306, "Undef"
+    set $P1286, $P1285[0]
+    unless_null $P1286, vivify_438
+    $P1286 = root_new ['parrot';'ResizablePMCArray']
   vivify_438:
-    $P1307 = $P1306."ast"()
-    store_lex "$past", $P1307
-    find_lex $P1308, "$past"
-    $P1308."blocktype"("method")
-    find_dynamic_lex $P1310, "$*SCOPE"
-    unless_null $P1310, vivify_439
-    get_hll_global $P1310, "$SCOPE"
-    unless_null $P1310, vivify_440
-    die "Contextual $*SCOPE not found"
-  vivify_440:
+    set $P1287, $P1286[0]
+    unless_null $P1287, vivify_439
+    new $P1287, "Undef"
   vivify_439:
-    set $S1311, $P1310
-    iseq $I1312, $S1311, "our"
-    unless $I1312, if_1309_end
-    find_lex $P1313, "$past"
-    $P1313."pirflags"(":nsentry")
-  if_1309_end:
-    find_lex $P1314, "$past"
-    $P1314."control"("return_pir")
-    find_lex $P1315, "$past"
-    unless_null $P1315, vivify_441
-    $P1315 = root_new ['parrot';'ResizablePMCArray']
+    get_hll_global $P1288, ["PAST"], "Var"
+    find_lex $P1289, "$name"
+    find_lex $P1290, "$past"
+    $P1291 = $P1288."new"($P1289 :named("name"), 1 :named("isdecl"), $P1290 :named("viviself"), "lexical" :named("scope"))
+    $P1287."push"($P1291)
+.annotate 'line', 459
+    get_global $P1292, "@BLOCK"
+    unless_null $P1292, vivify_440
+    $P1292 = root_new ['parrot';'ResizablePMCArray']
+  vivify_440:
+    set $P1293, $P1292[0]
+    unless_null $P1293, vivify_441
+    new $P1293, "Undef"
   vivify_441:
-    set $P1316, $P1315[0]
-    unless_null $P1316, vivify_442
-    new $P1316, "Undef"
-  vivify_442:
-    get_hll_global $P1317, ["PAST"], "Op"
-    $P1318 = $P1317."new"("    .lex \"self\", self" :named("inline"))
-    $P1316."unshift"($P1318)
-    find_lex $P1319, "$past"
-    $P1319."symbol"("self", "lexical" :named("scope"))
-    find_lex $P1321, "$/"
-    unless_null $P1321, vivify_443
-    $P1321 = root_new ['parrot';'Hash']
-  vivify_443:
-    set $P1322, $P1321["deflongname"]
-    unless_null $P1322, vivify_444
-    new $P1322, "Undef"
-  vivify_444:
-    unless $P1322, if_1320_end
-    .const 'Sub' $P1324 = "79_1283975952.27658" 
-    capture_lex $P1324
-    $P1324()
-  if_1320_end:
-    find_dynamic_lex $P1336, "$*MULTINESS"
-    unless_null $P1336, vivify_448
-    get_hll_global $P1336, "$MULTINESS"
-    unless_null $P1336, vivify_449
-    die "Contextual $*MULTINESS not found"
-  vivify_449:
-  vivify_448:
-    set $S1337, $P1336
-    iseq $I1338, $S1337, "multi"
-    unless $I1338, if_1335_end
-    find_lex $P1339, "$past"
-    $P1340 = $P1339."multi"()
-    $P1340."unshift"("_")
-  if_1335_end:
-    find_lex $P1341, "$/"
-    find_lex $P1342, "$past"
-    $P1343 = $P1341."!make"($P1342)
-    .return ($P1343)
-  control_1301:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1344, exception, "payload"
-    .return ($P1344)
+    find_lex $P1294, "$name"
+    $P1293."symbol"($P1294, "lexical" :named("scope"))
+.annotate 'line', 460
+    get_hll_global $P1295, ["PAST"], "Var"
+    find_lex $P1296, "$name"
+    $P1297 = $P1295."new"($P1296 :named("name"))
+    store_lex "$past", $P1297
+.annotate 'line', 456
+    set $P1280, $P1297
+  if_1281_end:
+.annotate 'line', 453
+    .return ($P1280)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1323"  :anon :subid("79_1283975952.27658") :outer("78_1283975952.27658")
-.annotate 'line', 0
-    new $P1325, "Undef"
-    .lex "$name", $P1325
-    find_lex $P1326, "$/"
-    unless_null $P1326, vivify_445
-    $P1326 = root_new ['parrot';'Hash']
-  vivify_445:
-    set $P1327, $P1326["deflongname"]
-    unless_null $P1327, vivify_446
-    $P1327 = root_new ['parrot';'ResizablePMCArray']
-  vivify_446:
-    set $P1328, $P1327[0]
-    unless_null $P1328, vivify_447
-    new $P1328, "Undef"
-  vivify_447:
-    $P1329 = $P1328."ast"()
-    set $S1330, $P1329
-    new $P1331, 'String'
-    set $P1331, $S1330
-    store_lex "$name", $P1331
-    find_lex $P1332, "$past"
-    find_lex $P1333, "$name"
-    $P1334 = $P1332."name"($P1333)
-    .return ($P1334)
+.sub "_block1311"  :anon :subid("78_1284728484.24945") :outer("76_1284728484.24945")
+    .param pmc param_1313
+.annotate 'line', 466
+    .lex "$_", param_1313
+    find_lex $P1314, "$_"
+    $P1315 = $P1314."ast"()
+    find_lex $P1316, "$/"
+    $P1317 = $P1315($P1316)
+    .return ($P1317)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "signature"  :subid("80_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1348
-.annotate 'line', 0
-    .const 'Sub' $P1374 = "82_1283975952.27658" 
-    capture_lex $P1374
-    .const 'Sub' $P1359 = "81_1283975952.27658" 
-    capture_lex $P1359
-    new $P1347, 'ExceptionHandler'
-    set_addr $P1347, control_1346
-    $P1347."handle_types"(.CONTROL_RETURN)
-    push_eh $P1347
-    .lex "self", self
-    .lex "$/", param_1348
-    new $P1349, "Undef"
-    .lex "$BLOCKINIT", $P1349
-    get_global $P1350, "@BLOCK"
-    unless_null $P1350, vivify_450
-    $P1350 = root_new ['parrot';'ResizablePMCArray']
-  vivify_450:
-    set $P1351, $P1350[0]
-    unless_null $P1351, vivify_451
-    $P1351 = root_new ['parrot';'ResizablePMCArray']
-  vivify_451:
-    set $P1352, $P1351[0]
-    unless_null $P1352, vivify_452
-    new $P1352, "Undef"
+.sub "method_def"  :subid("79_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_1325
+.annotate 'line', 471
+    .const 'Sub' $P1377 = "81_1284728484.24945" 
+    capture_lex $P1377
+    .const 'Sub' $P1346 = "80_1284728484.24945" 
+    capture_lex $P1346
+    new $P1324, 'ExceptionHandler'
+    set_addr $P1324, control_1323
+    $P1324."handle_types"(.CONTROL_RETURN)
+    push_eh $P1324
+    .lex "self", self
+    .lex "$/", param_1325
+.annotate 'line', 472
+    new $P1326, "Undef"
+    .lex "$past", $P1326
+    find_lex $P1327, "$/"
+    unless_null $P1327, vivify_448
+    $P1327 = root_new ['parrot';'Hash']
+  vivify_448:
+    set $P1328, $P1327["blockoid"]
+    unless_null $P1328, vivify_449
+    new $P1328, "Undef"
+  vivify_449:
+    $P1329 = $P1328."ast"()
+    store_lex "$past", $P1329
+.annotate 'line', 473
+    find_lex $P1330, "$past"
+    $P1330."blocktype"("method")
+.annotate 'line', 474
+    find_dynamic_lex $P1332, "$*SCOPE"
+    unless_null $P1332, vivify_450
+    get_hll_global $P1332, "$SCOPE"
+    unless_null $P1332, vivify_451
+    die "Contextual $*SCOPE not found"
+  vivify_451:
+  vivify_450:
+    set $S1333, $P1332
+    iseq $I1334, $S1333, "our"
+    unless $I1334, if_1331_end
+.annotate 'line', 475
+    find_lex $P1335, "$past"
+    $P1335."pirflags"(":nsentry")
+  if_1331_end:
+.annotate 'line', 477
+    find_lex $P1336, "$past"
+    $P1336."control"("return_pir")
+.annotate 'line', 478
+    find_lex $P1337, "$past"
+    unless_null $P1337, vivify_452
+    $P1337 = root_new ['parrot';'ResizablePMCArray']
   vivify_452:
-    store_lex "$BLOCKINIT", $P1352
-    find_lex $P1354, "$/"
-    unless_null $P1354, vivify_453
-    $P1354 = root_new ['parrot';'Hash']
+    set $P1338, $P1337[0]
+    unless_null $P1338, vivify_453
+    new $P1338, "Undef"
   vivify_453:
-    set $P1355, $P1354["parameter"]
-    unless_null $P1355, vivify_454
-    new $P1355, "Undef"
+    get_hll_global $P1339, ["PAST"], "Op"
+    $P1340 = $P1339."new"("    .lex \"self\", self" :named("inline"))
+    $P1338."unshift"($P1340)
+.annotate 'line', 479
+    find_lex $P1341, "$past"
+    $P1341."symbol"("self", "lexical" :named("scope"))
+.annotate 'line', 480
+    find_lex $P1343, "$/"
+    unless_null $P1343, vivify_454
+    $P1343 = root_new ['parrot';'Hash']
   vivify_454:
-    defined $I1356, $P1355
-    unless $I1356, for_undef_455
-    iter $P1353, $P1355
-    new $P1366, 'ExceptionHandler'
-    set_addr $P1366, loop1365_handler
-    $P1366."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P1366
-  loop1365_test:
-    unless $P1353, loop1365_done
-    shift $P1357, $P1353
-  loop1365_redo:
-    .const 'Sub' $P1359 = "81_1283975952.27658" 
-    capture_lex $P1359
-    $P1359($P1357)
-  loop1365_next:
-    goto loop1365_test
-  loop1365_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1367, exception, 'type'
-    eq $P1367, .CONTROL_LOOP_NEXT, loop1365_next
-    eq $P1367, .CONTROL_LOOP_REDO, loop1365_redo
-  loop1365_done:
-    pop_eh 
-  for_undef_455:
-    find_dynamic_lex $P1370, "$*MULTINESS"
-    unless_null $P1370, vivify_456
-    get_hll_global $P1370, "$MULTINESS"
-    unless_null $P1370, vivify_457
+    set $P1344, $P1343["deflongname"]
+    unless_null $P1344, vivify_455
+    new $P1344, "Undef"
+  vivify_455:
+    unless $P1344, if_1342_end
+    .const 'Sub' $P1346 = "80_1284728484.24945" 
+    capture_lex $P1346
+    $P1346()
+  if_1342_end:
+.annotate 'line', 484
+    find_dynamic_lex $P1358, "$*MULTINESS"
+    unless_null $P1358, vivify_459
+    get_hll_global $P1358, "$MULTINESS"
+    unless_null $P1358, vivify_460
     die "Contextual $*MULTINESS not found"
-  vivify_457:
-  vivify_456:
-    set $S1371, $P1370
-    iseq $I1372, $S1371, "multi"
-    if $I1372, if_1369
-    new $P1368, 'Integer'
-    set $P1368, $I1372
-    goto if_1369_end
-  if_1369:
-    .const 'Sub' $P1374 = "82_1283975952.27658" 
-    capture_lex $P1374
-    $P1412 = $P1374()
-    set $P1368, $P1412
-  if_1369_end:
-    .return ($P1368)
-  control_1346:
+  vivify_460:
+  vivify_459:
+    set $S1359, $P1358
+    iseq $I1360, $S1359, "multi"
+    unless $I1360, if_1357_end
+    find_lex $P1361, "$past"
+    $P1362 = $P1361."multi"()
+    $P1362."unshift"("_")
+  if_1357_end:
+.annotate 'line', 485
+    find_lex $P1363, "$past"
+    find_lex $P1364, "$past"
+    unless_null $P1364, vivify_461
+    $P1364 = root_new ['parrot';'Hash']
+    store_lex "$past", $P1364
+  vivify_461:
+    set $P1364["block_past"], $P1363
+.annotate 'line', 486
+    find_lex $P1365, "$/"
+    find_lex $P1366, "$past"
+    $P1365."!make"($P1366)
+.annotate 'line', 487
+    find_lex $P1369, "$/"
+    unless_null $P1369, vivify_462
+    $P1369 = root_new ['parrot';'Hash']
+  vivify_462:
+    set $P1370, $P1369["trait"]
+    unless_null $P1370, vivify_463
+    new $P1370, "Undef"
+  vivify_463:
+    if $P1370, if_1368
+    set $P1367, $P1370
+    goto if_1368_end
+  if_1368:
+.annotate 'line', 488
+    find_lex $P1372, "$/"
+    unless_null $P1372, vivify_464
+    $P1372 = root_new ['parrot';'Hash']
+  vivify_464:
+    set $P1373, $P1372["trait"]
+    unless_null $P1373, vivify_465
+    new $P1373, "Undef"
+  vivify_465:
+    defined $I1374, $P1373
+    unless $I1374, for_undef_466
+    iter $P1371, $P1373
+    new $P1384, 'ExceptionHandler'
+    set_addr $P1384, loop1383_handler
+    $P1384."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1384
+  loop1383_test:
+    unless $P1371, loop1383_done
+    shift $P1375, $P1371
+  loop1383_redo:
+    .const 'Sub' $P1377 = "81_1284728484.24945" 
+    capture_lex $P1377
+    $P1377($P1375)
+  loop1383_next:
+    goto loop1383_test
+  loop1383_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1385, exception, 'type'
+    eq $P1385, .CONTROL_LOOP_NEXT, loop1383_next
+    eq $P1385, .CONTROL_LOOP_REDO, loop1383_redo
+  loop1383_done:
+    pop_eh 
+  for_undef_466:
+.annotate 'line', 487
+    set $P1367, $P1371
+  if_1368_end:
+.annotate 'line', 471
+    .return ($P1367)
+  control_1323:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1413, exception, "payload"
-    .return ($P1413)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "_block1358"  :anon :subid("81_1283975952.27658") :outer("80_1283975952.27658")
-    .param pmc param_1360
-.annotate 'line', 0
-    .lex "$_", param_1360
-    find_lex $P1361, "$BLOCKINIT"
-    find_lex $P1362, "$_"
-    $P1363 = $P1362."ast"()
-    $P1364 = $P1361."push"($P1363)
-    .return ($P1364)
+    getattribute $P1386, exception, "payload"
+    .return ($P1386)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "_block1373"  :anon :subid("82_1283975952.27658") :outer("80_1283975952.27658")
-.annotate 'line', 0
-    .const 'Sub' $P1383 = "83_1283975952.27658" 
-    capture_lex $P1383
-    $P1375 = root_new ['parrot';'ResizablePMCArray']
-    .lex "@params", $P1375
-    find_lex $P1376, "@params"
-    find_lex $P1378, "$BLOCKINIT"
-    $P1379 = $P1378."list"()
-    defined $I1380, $P1379
-    unless $I1380, for_undef_458
-    iter $P1377, $P1379
-    new $P1406, 'ExceptionHandler'
-    set_addr $P1406, loop1405_handler
-    $P1406."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P1406
-  loop1405_test:
-    unless $P1377, loop1405_done
-    shift $P1381, $P1377
-  loop1405_redo:
-    .const 'Sub' $P1383 = "83_1283975952.27658" 
-    capture_lex $P1383
-    $P1383($P1381)
-  loop1405_next:
-    goto loop1405_test
-  loop1405_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1407, exception, 'type'
-    eq $P1407, .CONTROL_LOOP_NEXT, loop1405_next
-    eq $P1407, .CONTROL_LOOP_REDO, loop1405_redo
-  loop1405_done:
-    pop_eh 
-  for_undef_458:
-    get_global $P1408, "@BLOCK"
-    unless_null $P1408, vivify_459
-    $P1408 = root_new ['parrot';'ResizablePMCArray']
-  vivify_459:
-    set $P1409, $P1408[0]
-    unless_null $P1409, vivify_460
-    new $P1409, "Undef"
-  vivify_460:
-    find_lex $P1410, "@params"
-    $P1411 = $P1409."multi"($P1410)
-    .return ($P1411)
+.sub "_block1345"  :anon :subid("80_1284728484.24945") :outer("79_1284728484.24945")
+.annotate 'line', 481
+    new $P1347, "Undef"
+    .lex "$name", $P1347
+    find_lex $P1348, "$/"
+    unless_null $P1348, vivify_456
+    $P1348 = root_new ['parrot';'Hash']
+  vivify_456:
+    set $P1349, $P1348["deflongname"]
+    unless_null $P1349, vivify_457
+    $P1349 = root_new ['parrot';'ResizablePMCArray']
+  vivify_457:
+    set $P1350, $P1349[0]
+    unless_null $P1350, vivify_458
+    new $P1350, "Undef"
+  vivify_458:
+    $P1351 = $P1350."ast"()
+    set $S1352, $P1351
+    new $P1353, 'String'
+    set $P1353, $S1352
+    store_lex "$name", $P1353
+.annotate 'line', 482
+    find_lex $P1354, "$past"
+    find_lex $P1355, "$name"
+    $P1356 = $P1354."name"($P1355)
+.annotate 'line', 480
+    .return ($P1356)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1382"  :anon :subid("83_1283975952.27658") :outer("82_1283975952.27658")
-    .param pmc param_1384
-.annotate 'line', 0
-    .lex "$_", param_1384
-    find_lex $P1391, "$_"
-    $P1392 = $P1391."slurpy"()
-    unless $P1392, unless_1390
-    set $P1389, $P1392
-    goto unless_1390_end
-  unless_1390:
-    find_lex $P1393, "$_"
-    $P1394 = $P1393."named"()
-    set $P1389, $P1394
-  unless_1390_end:
-    unless $P1389, unless_1388
-    set $P1387, $P1389
-    goto unless_1388_end
-  unless_1388:
-    find_lex $P1395, "$_"
-    $P1396 = $P1395."viviself"()
-    set $P1387, $P1396
-  unless_1388_end:
-    unless $P1387, unless_1386
-    set $P1385, $P1387
-    goto unless_1386_end
-  unless_1386:
-    find_lex $P1397, "@params"
-    find_lex $P1399, "$_"
-    $P1400 = $P1399."multitype"()
-    set $P1398, $P1400
-    defined $I1402, $P1398
-    if $I1402, default_1401
-    new $P1403, "String"
-    assign $P1403, "_"
-    set $P1398, $P1403
-  default_1401:
-    $P1404 = $P1397."push"($P1398)
-    set $P1385, $P1404
-  unless_1386_end:
-    .return ($P1385)
+.sub "_block1376"  :anon :subid("81_1284728484.24945") :outer("79_1284728484.24945")
+    .param pmc param_1378
+.annotate 'line', 488
+    .lex "$_", param_1378
+    find_lex $P1379, "$_"
+    $P1380 = $P1379."ast"()
+    find_lex $P1381, "$/"
+    $P1382 = $P1380($P1381)
+    .return ($P1382)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "parameter"  :subid("84_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1417
-.annotate 'line', 0
-    .const 'Sub' $P1498 = "85_1283975952.27658" 
-    capture_lex $P1498
-    new $P1416, 'ExceptionHandler'
-    set_addr $P1416, control_1415
-    $P1416."handle_types"(.CONTROL_RETURN)
-    push_eh $P1416
-    .lex "self", self
-    .lex "$/", param_1417
-    new $P1418, "Undef"
-    .lex "$quant", $P1418
-    new $P1419, "Undef"
-    .lex "$past", $P1419
-    find_lex $P1420, "$/"
-    unless_null $P1420, vivify_461
-    $P1420 = root_new ['parrot';'Hash']
-  vivify_461:
-    set $P1421, $P1420["quant"]
-    unless_null $P1421, vivify_462
-    new $P1421, "Undef"
-  vivify_462:
-    store_lex "$quant", $P1421
-    find_lex $P1422, "$past"
-    find_lex $P1424, "$/"
-    unless_null $P1424, vivify_463
-    $P1424 = root_new ['parrot';'Hash']
-  vivify_463:
-    set $P1425, $P1424["named_param"]
-    unless_null $P1425, vivify_464
-    new $P1425, "Undef"
-  vivify_464:
-    if $P1425, if_1423
-    find_lex $P1439, "$/"
-    unless_null $P1439, vivify_465
-    $P1439 = root_new ['parrot';'Hash']
-  vivify_465:
-    set $P1440, $P1439["param_var"]
-    unless_null $P1440, vivify_466
-    new $P1440, "Undef"
-  vivify_466:
-    $P1441 = $P1440."ast"()
-    store_lex "$past", $P1441
-    find_lex $P1443, "$quant"
-    set $S1444, $P1443
-    iseq $I1445, $S1444, "*"
-    if $I1445, if_1442
-    find_lex $P1454, "$quant"
-    set $S1455, $P1454
-    iseq $I1456, $S1455, "?"
-    unless $I1456, if_1453_end
-    find_lex $P1457, "$past"
-    find_lex $P1458, "$/"
-    unless_null $P1458, vivify_467
-    $P1458 = root_new ['parrot';'Hash']
+.sub "signature"  :subid("82_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_1390
+.annotate 'line', 493
+    .const 'Sub' $P1416 = "84_1284728484.24945" 
+    capture_lex $P1416
+    .const 'Sub' $P1401 = "83_1284728484.24945" 
+    capture_lex $P1401
+    new $P1389, 'ExceptionHandler'
+    set_addr $P1389, control_1388
+    $P1389."handle_types"(.CONTROL_RETURN)
+    push_eh $P1389
+    .lex "self", self
+    .lex "$/", param_1390
+.annotate 'line', 494
+    new $P1391, "Undef"
+    .lex "$BLOCKINIT", $P1391
+    get_global $P1392, "@BLOCK"
+    unless_null $P1392, vivify_467
+    $P1392 = root_new ['parrot';'ResizablePMCArray']
   vivify_467:
-    set $P1459, $P1458["param_var"]
-    unless_null $P1459, vivify_468
-    $P1459 = root_new ['parrot';'Hash']
+    set $P1393, $P1392[0]
+    unless_null $P1393, vivify_468
+    $P1393 = root_new ['parrot';'ResizablePMCArray']
   vivify_468:
-    set $P1460, $P1459["sigil"]
-    unless_null $P1460, vivify_469
-    new $P1460, "Undef"
+    set $P1394, $P1393[0]
+    unless_null $P1394, vivify_469
+    new $P1394, "Undef"
   vivify_469:
-    $P1461 = "vivitype"($P1460)
-    $P1457."viviself"($P1461)
-  if_1453_end:
-    goto if_1442_end
-  if_1442:
-    find_lex $P1446, "$past"
-    $P1446."slurpy"(1)
-    find_lex $P1447, "$past"
-    find_lex $P1448, "$/"
-    unless_null $P1448, vivify_470
-    $P1448 = root_new ['parrot';'Hash']
+    store_lex "$BLOCKINIT", $P1394
+.annotate 'line', 496
+    find_lex $P1396, "$/"
+    unless_null $P1396, vivify_470
+    $P1396 = root_new ['parrot';'Hash']
   vivify_470:
-    set $P1449, $P1448["param_var"]
-    unless_null $P1449, vivify_471
-    $P1449 = root_new ['parrot';'Hash']
+    set $P1397, $P1396["parameter"]
+    unless_null $P1397, vivify_471
+    new $P1397, "Undef"
   vivify_471:
-    set $P1450, $P1449["sigil"]
-    unless_null $P1450, vivify_472
-    new $P1450, "Undef"
-  vivify_472:
-    set $S1451, $P1450
-    iseq $I1452, $S1451, "%"
-    $P1447."named"($I1452)
-  if_1442_end:
-    goto if_1423_end
-  if_1423:
-    find_lex $P1426, "$/"
-    unless_null $P1426, vivify_473
-    $P1426 = root_new ['parrot';'Hash']
-  vivify_473:
-    set $P1427, $P1426["named_param"]
-    unless_null $P1427, vivify_474
-    new $P1427, "Undef"
+    defined $I1398, $P1397
+    unless $I1398, for_undef_472
+    iter $P1395, $P1397
+    new $P1408, 'ExceptionHandler'
+    set_addr $P1408, loop1407_handler
+    $P1408."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1408
+  loop1407_test:
+    unless $P1395, loop1407_done
+    shift $P1399, $P1395
+  loop1407_redo:
+    .const 'Sub' $P1401 = "83_1284728484.24945" 
+    capture_lex $P1401
+    $P1401($P1399)
+  loop1407_next:
+    goto loop1407_test
+  loop1407_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1409, exception, 'type'
+    eq $P1409, .CONTROL_LOOP_NEXT, loop1407_next
+    eq $P1409, .CONTROL_LOOP_REDO, loop1407_redo
+  loop1407_done:
+    pop_eh 
+  for_undef_472:
+.annotate 'line', 499
+    find_dynamic_lex $P1412, "$*MULTINESS"
+    unless_null $P1412, vivify_473
+    get_hll_global $P1412, "$MULTINESS"
+    unless_null $P1412, vivify_474
+    die "Contextual $*MULTINESS not found"
   vivify_474:
-    $P1428 = $P1427."ast"()
-    store_lex "$past", $P1428
-    find_lex $P1430, "$quant"
-    set $S1431, $P1430
-    isne $I1432, $S1431, "!"
-    unless $I1432, if_1429_end
-    find_lex $P1433, "$past"
-    find_lex $P1434, "$/"
-    unless_null $P1434, vivify_475
-    $P1434 = root_new ['parrot';'Hash']
-  vivify_475:
-    set $P1435, $P1434["named_param"]
-    unless_null $P1435, vivify_476
-    $P1435 = root_new ['parrot';'Hash']
+  vivify_473:
+    set $S1413, $P1412
+    iseq $I1414, $S1413, "multi"
+    if $I1414, if_1411
+    new $P1410, 'Integer'
+    set $P1410, $I1414
+    goto if_1411_end
+  if_1411:
+    .const 'Sub' $P1416 = "84_1284728484.24945" 
+    capture_lex $P1416
+    $P1454 = $P1416()
+    set $P1410, $P1454
+  if_1411_end:
+.annotate 'line', 493
+    .return ($P1410)
+  control_1388:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1455, exception, "payload"
+    .return ($P1455)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1400"  :anon :subid("83_1284728484.24945") :outer("82_1284728484.24945")
+    .param pmc param_1402
+.annotate 'line', 496
+    .lex "$_", param_1402
+    find_lex $P1403, "$BLOCKINIT"
+    find_lex $P1404, "$_"
+    $P1405 = $P1404."ast"()
+    $P1406 = $P1403."push"($P1405)
+    .return ($P1406)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "_block1415"  :anon :subid("84_1284728484.24945") :outer("82_1284728484.24945")
+.annotate 'line', 499
+    .const 'Sub' $P1425 = "85_1284728484.24945" 
+    capture_lex $P1425
+.annotate 'line', 500
+    $P1417 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@params", $P1417
+.annotate 'line', 499
+    find_lex $P1418, "@params"
+.annotate 'line', 501
+    find_lex $P1420, "$BLOCKINIT"
+    $P1421 = $P1420."list"()
+    defined $I1422, $P1421
+    unless $I1422, for_undef_475
+    iter $P1419, $P1421
+    new $P1448, 'ExceptionHandler'
+    set_addr $P1448, loop1447_handler
+    $P1448."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1448
+  loop1447_test:
+    unless $P1419, loop1447_done
+    shift $P1423, $P1419
+  loop1447_redo:
+    .const 'Sub' $P1425 = "85_1284728484.24945" 
+    capture_lex $P1425
+    $P1425($P1423)
+  loop1447_next:
+    goto loop1447_test
+  loop1447_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1449, exception, 'type'
+    eq $P1449, .CONTROL_LOOP_NEXT, loop1447_next
+    eq $P1449, .CONTROL_LOOP_REDO, loop1447_redo
+  loop1447_done:
+    pop_eh 
+  for_undef_475:
+.annotate 'line', 505
+    get_global $P1450, "@BLOCK"
+    unless_null $P1450, vivify_476
+    $P1450 = root_new ['parrot';'ResizablePMCArray']
   vivify_476:
-    set $P1436, $P1435["param_var"]
-    unless_null $P1436, vivify_477
-    $P1436 = root_new ['parrot';'Hash']
+    set $P1451, $P1450[0]
+    unless_null $P1451, vivify_477
+    new $P1451, "Undef"
   vivify_477:
-    set $P1437, $P1436["sigil"]
-    unless_null $P1437, vivify_478
-    new $P1437, "Undef"
+    find_lex $P1452, "@params"
+    $P1453 = $P1451."multi"($P1452)
+.annotate 'line', 499
+    .return ($P1453)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1424"  :anon :subid("85_1284728484.24945") :outer("84_1284728484.24945")
+    .param pmc param_1426
+.annotate 'line', 501
+    .lex "$_", param_1426
+.annotate 'line', 503
+    find_lex $P1433, "$_"
+    $P1434 = $P1433."slurpy"()
+    unless $P1434, unless_1432
+    set $P1431, $P1434
+    goto unless_1432_end
+  unless_1432:
+    find_lex $P1435, "$_"
+    $P1436 = $P1435."named"()
+    set $P1431, $P1436
+  unless_1432_end:
+    unless $P1431, unless_1430
+    set $P1429, $P1431
+    goto unless_1430_end
+  unless_1430:
+    find_lex $P1437, "$_"
+    $P1438 = $P1437."viviself"()
+    set $P1429, $P1438
+  unless_1430_end:
+    unless $P1429, unless_1428
+    set $P1427, $P1429
+    goto unless_1428_end
+  unless_1428:
+.annotate 'line', 502
+    find_lex $P1439, "@params"
+    find_lex $P1441, "$_"
+    $P1442 = $P1441."multitype"()
+    set $P1440, $P1442
+    defined $I1444, $P1440
+    if $I1444, default_1443
+    new $P1445, "String"
+    assign $P1445, "_"
+    set $P1440, $P1445
+  default_1443:
+    $P1446 = $P1439."push"($P1440)
+    set $P1427, $P1446
+  unless_1428_end:
+.annotate 'line', 501
+    .return ($P1427)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "parameter"  :subid("86_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_1459
+.annotate 'line', 509
+    .const 'Sub' $P1540 = "87_1284728484.24945" 
+    capture_lex $P1540
+    new $P1458, 'ExceptionHandler'
+    set_addr $P1458, control_1457
+    $P1458."handle_types"(.CONTROL_RETURN)
+    push_eh $P1458
+    .lex "self", self
+    .lex "$/", param_1459
+.annotate 'line', 510
+    new $P1460, "Undef"
+    .lex "$quant", $P1460
+.annotate 'line', 511
+    new $P1461, "Undef"
+    .lex "$past", $P1461
+.annotate 'line', 510
+    find_lex $P1462, "$/"
+    unless_null $P1462, vivify_478
+    $P1462 = root_new ['parrot';'Hash']
   vivify_478:
-    $P1438 = "vivitype"($P1437)
-    $P1433."viviself"($P1438)
-  if_1429_end:
-  if_1423_end:
-    find_lex $P1463, "$/"
+    set $P1463, $P1462["quant"]
     unless_null $P1463, vivify_479
-    $P1463 = root_new ['parrot';'Hash']
+    new $P1463, "Undef"
   vivify_479:
-    set $P1464, $P1463["default_value"]
-    unless_null $P1464, vivify_480
-    new $P1464, "Undef"
+    store_lex "$quant", $P1463
+    find_lex $P1464, "$past"
+.annotate 'line', 512
+    find_lex $P1466, "$/"
+    unless_null $P1466, vivify_480
+    $P1466 = root_new ['parrot';'Hash']
   vivify_480:
-    unless $P1464, if_1462_end
-    find_lex $P1466, "$quant"
-    set $S1467, $P1466
-    iseq $I1468, $S1467, "*"
-    unless $I1468, if_1465_end
-    find_lex $P1469, "$/"
-    $P1470 = $P1469."CURSOR"()
-    $P1470."panic"("Can't put default on slurpy parameter")
-  if_1465_end:
-    find_lex $P1472, "$quant"
-    set $S1473, $P1472
-    iseq $I1474, $S1473, "!"
-    unless $I1474, if_1471_end
-    find_lex $P1475, "$/"
-    $P1476 = $P1475."CURSOR"()
-    $P1476."panic"("Can't put default on required parameter")
-  if_1471_end:
-    find_lex $P1477, "$past"
-    find_lex $P1478, "$/"
-    unless_null $P1478, vivify_481
-    $P1478 = root_new ['parrot';'Hash']
+    set $P1467, $P1466["named_param"]
+    unless_null $P1467, vivify_481
+    new $P1467, "Undef"
   vivify_481:
-    set $P1479, $P1478["default_value"]
-    unless_null $P1479, vivify_482
-    $P1479 = root_new ['parrot';'ResizablePMCArray']
+    if $P1467, if_1465
+.annotate 'line', 519
+    find_lex $P1481, "$/"
+    unless_null $P1481, vivify_482
+    $P1481 = root_new ['parrot';'Hash']
   vivify_482:
-    set $P1480, $P1479[0]
-    unless_null $P1480, vivify_483
-    $P1480 = root_new ['parrot';'Hash']
+    set $P1482, $P1481["param_var"]
+    unless_null $P1482, vivify_483
+    new $P1482, "Undef"
   vivify_483:
-    set $P1481, $P1480["EXPR"]
-    unless_null $P1481, vivify_484
-    new $P1481, "Undef"
+    $P1483 = $P1482."ast"()
+    store_lex "$past", $P1483
+.annotate 'line', 520
+    find_lex $P1485, "$quant"
+    set $S1486, $P1485
+    iseq $I1487, $S1486, "*"
+    if $I1487, if_1484
+.annotate 'line', 524
+    find_lex $P1496, "$quant"
+    set $S1497, $P1496
+    iseq $I1498, $S1497, "?"
+    unless $I1498, if_1495_end
+.annotate 'line', 525
+    find_lex $P1499, "$past"
+    find_lex $P1500, "$/"
+    unless_null $P1500, vivify_484
+    $P1500 = root_new ['parrot';'Hash']
   vivify_484:
-    $P1482 = $P1481."ast"()
-    $P1477."viviself"($P1482)
-  if_1462_end:
-    find_lex $P1484, "$past"
-    $P1485 = $P1484."viviself"()
-    if $P1485, unless_1483_end
-    get_global $P1486, "@BLOCK"
-    unless_null $P1486, vivify_485
-    $P1486 = root_new ['parrot';'ResizablePMCArray']
+    set $P1501, $P1500["param_var"]
+    unless_null $P1501, vivify_485
+    $P1501 = root_new ['parrot';'Hash']
   vivify_485:
-    set $P1487, $P1486[0]
-    unless_null $P1487, vivify_486
-    new $P1487, "Undef"
+    set $P1502, $P1501["sigil"]
+    unless_null $P1502, vivify_486
+    new $P1502, "Undef"
   vivify_486:
-    get_global $P1488, "@BLOCK"
-    unless_null $P1488, vivify_487
-    $P1488 = root_new ['parrot';'ResizablePMCArray']
+    $P1503 = "vivitype"($P1502)
+    $P1499."viviself"($P1503)
+  if_1495_end:
+.annotate 'line', 524
+    goto if_1484_end
+  if_1484:
+.annotate 'line', 521
+    find_lex $P1488, "$past"
+    $P1488."slurpy"(1)
+.annotate 'line', 522
+    find_lex $P1489, "$past"
+    find_lex $P1490, "$/"
+    unless_null $P1490, vivify_487
+    $P1490 = root_new ['parrot';'Hash']
   vivify_487:
-    set $P1489, $P1488[0]
-    unless_null $P1489, vivify_488
-    new $P1489, "Undef"
+    set $P1491, $P1490["param_var"]
+    unless_null $P1491, vivify_488
+    $P1491 = root_new ['parrot';'Hash']
   vivify_488:
-    $P1490 = $P1489."arity"()
-    set $N1491, $P1490
-    new $P1492, 'Float'
-    set $P1492, $N1491
-    add $P1493, $P1492, 1
-    $P1487."arity"($P1493)
-  unless_1483_end:
-    find_lex $P1495, "$/"
-    unless_null $P1495, vivify_489
-    $P1495 = root_new ['parrot';'Hash']
+    set $P1492, $P1491["sigil"]
+    unless_null $P1492, vivify_489
+    new $P1492, "Undef"
   vivify_489:
-    set $P1496, $P1495["typename"]
-    unless_null $P1496, vivify_490
-    new $P1496, "Undef"
+    set $S1493, $P1492
+    iseq $I1494, $S1493, "%"
+    $P1489."named"($I1494)
+  if_1484_end:
+.annotate 'line', 518
+    goto if_1465_end
+  if_1465:
+.annotate 'line', 513
+    find_lex $P1468, "$/"
+    unless_null $P1468, vivify_490
+    $P1468 = root_new ['parrot';'Hash']
   vivify_490:
-    unless $P1496, if_1494_end
-    .const 'Sub' $P1498 = "85_1283975952.27658" 
-    capture_lex $P1498
-    $P1498()
-  if_1494_end:
-    find_lex $P1522, "$/"
-    find_lex $P1523, "$past"
-    $P1524 = $P1522."!make"($P1523)
-    .return ($P1524)
-  control_1415:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1525, exception, "payload"
-    .return ($P1525)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "_block1497"  :anon :subid("85_1283975952.27658") :outer("84_1283975952.27658")
-.annotate 'line', 0
-    .const 'Sub' $P1510 = "86_1283975952.27658" 
-    capture_lex $P1510
-    $P1499 = root_new ['parrot';'ResizablePMCArray']
-    .lex "@multitype", $P1499
-    find_lex $P1500, "@multitype"
-    find_lex $P1502, "$/"
-    unless_null $P1502, vivify_491
-    $P1502 = root_new ['parrot';'Hash']
+    set $P1469, $P1468["named_param"]
+    unless_null $P1469, vivify_491
+    new $P1469, "Undef"
   vivify_491:
-    set $P1503, $P1502["typename"]
-    unless_null $P1503, vivify_492
-    $P1503 = root_new ['parrot';'ResizablePMCArray']
+    $P1470 = $P1469."ast"()
+    store_lex "$past", $P1470
+.annotate 'line', 514
+    find_lex $P1472, "$quant"
+    set $S1473, $P1472
+    isne $I1474, $S1473, "!"
+    unless $I1474, if_1471_end
+.annotate 'line', 515
+    find_lex $P1475, "$past"
+    find_lex $P1476, "$/"
+    unless_null $P1476, vivify_492
+    $P1476 = root_new ['parrot';'Hash']
   vivify_492:
-    set $P1504, $P1503[0]
-    unless_null $P1504, vivify_493
-    $P1504 = root_new ['parrot';'Hash']
+    set $P1477, $P1476["named_param"]
+    unless_null $P1477, vivify_493
+    $P1477 = root_new ['parrot';'Hash']
   vivify_493:
-    set $P1505, $P1504["name"]
-    unless_null $P1505, vivify_494
-    $P1505 = root_new ['parrot';'Hash']
+    set $P1478, $P1477["param_var"]
+    unless_null $P1478, vivify_494
+    $P1478 = root_new ['parrot';'Hash']
   vivify_494:
-    set $P1506, $P1505["identifier"]
-    unless_null $P1506, vivify_495
-    new $P1506, "Undef"
+    set $P1479, $P1478["sigil"]
+    unless_null $P1479, vivify_495
+    new $P1479, "Undef"
   vivify_495:
-    defined $I1507, $P1506
-    unless $I1507, for_undef_496
-    iter $P1501, $P1506
-    new $P1517, 'ExceptionHandler'
-    set_addr $P1517, loop1516_handler
-    $P1517."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P1517
-  loop1516_test:
-    unless $P1501, loop1516_done
-    shift $P1508, $P1501
-  loop1516_redo:
-    .const 'Sub' $P1510 = "86_1283975952.27658" 
-    capture_lex $P1510
-    $P1510($P1508)
-  loop1516_next:
-    goto loop1516_test
-  loop1516_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1518, exception, 'type'
-    eq $P1518, .CONTROL_LOOP_NEXT, loop1516_next
-    eq $P1518, .CONTROL_LOOP_REDO, loop1516_redo
-  loop1516_done:
-    pop_eh 
-  for_undef_496:
-    find_lex $P1519, "$past"
-    find_lex $P1520, "@multitype"
-    $P1521 = $P1519."multitype"($P1520)
-    .return ($P1521)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "_block1509"  :anon :subid("86_1283975952.27658") :outer("85_1283975952.27658")
-    .param pmc param_1511
-.annotate 'line', 0
-    .lex "$_", param_1511
-    find_lex $P1512, "@multitype"
-    find_lex $P1513, "$_"
-    set $S1514, $P1513
-    $P1515 = $P1512."push"($S1514)
-    .return ($P1515)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "param_var"  :subid("87_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1529
-.annotate 'line', 0
-    new $P1528, 'ExceptionHandler'
-    set_addr $P1528, control_1527
-    $P1528."handle_types"(.CONTROL_RETURN)
-    push_eh $P1528
-    .lex "self", self
-    .lex "$/", param_1529
-    new $P1530, "Undef"
-    .lex "$name", $P1530
-    new $P1531, "Undef"
-    .lex "$past", $P1531
-    find_lex $P1532, "$/"
-    set $S1533, $P1532
-    new $P1534, 'String'
-    set $P1534, $S1533
-    store_lex "$name", $P1534
-    get_hll_global $P1535, ["PAST"], "Var"
-    find_lex $P1536, "$name"
-    find_lex $P1537, "$/"
-    $P1538 = $P1535."new"($P1536 :named("name"), "parameter" :named("scope"), 1 :named("isdecl"), $P1537 :named("node"))
-    store_lex "$past", $P1538
-    get_global $P1539, "@BLOCK"
-    unless_null $P1539, vivify_497
-    $P1539 = root_new ['parrot';'ResizablePMCArray']
+    $P1480 = "vivitype"($P1479)
+    $P1475."viviself"($P1480)
+  if_1471_end:
+  if_1465_end:
+.annotate 'line', 528
+    find_lex $P1505, "$/"
+    unless_null $P1505, vivify_496
+    $P1505 = root_new ['parrot';'Hash']
+  vivify_496:
+    set $P1506, $P1505["default_value"]
+    unless_null $P1506, vivify_497
+    new $P1506, "Undef"
   vivify_497:
-    set $P1540, $P1539[0]
-    unless_null $P1540, vivify_498
-    new $P1540, "Undef"
+    unless $P1506, if_1504_end
+.annotate 'line', 529
+    find_lex $P1508, "$quant"
+    set $S1509, $P1508
+    iseq $I1510, $S1509, "*"
+    unless $I1510, if_1507_end
+.annotate 'line', 530
+    find_lex $P1511, "$/"
+    $P1512 = $P1511."CURSOR"()
+    $P1512."panic"("Can't put default on slurpy parameter")
+  if_1507_end:
+.annotate 'line', 532
+    find_lex $P1514, "$quant"
+    set $S1515, $P1514
+    iseq $I1516, $S1515, "!"
+    unless $I1516, if_1513_end
+.annotate 'line', 533
+    find_lex $P1517, "$/"
+    $P1518 = $P1517."CURSOR"()
+    $P1518."panic"("Can't put default on required parameter")
+  if_1513_end:
+.annotate 'line', 535
+    find_lex $P1519, "$past"
+    find_lex $P1520, "$/"
+    unless_null $P1520, vivify_498
+    $P1520 = root_new ['parrot';'Hash']
   vivify_498:
-    find_lex $P1541, "$name"
-    $P1540."symbol"($P1541, "lexical" :named("scope"))
-    find_lex $P1542, "$/"
-    find_lex $P1543, "$past"
-    $P1544 = $P1542."!make"($P1543)
-    .return ($P1544)
-  control_1527:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1545, exception, "payload"
-    .return ($P1545)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "named_param"  :subid("88_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1549
-.annotate 'line', 0
-    new $P1548, 'ExceptionHandler'
-    set_addr $P1548, control_1547
-    $P1548."handle_types"(.CONTROL_RETURN)
-    push_eh $P1548
-    .lex "self", self
-    .lex "$/", param_1549
-    new $P1550, "Undef"
-    .lex "$past", $P1550
-    find_lex $P1551, "$/"
-    unless_null $P1551, vivify_499
-    $P1551 = root_new ['parrot';'Hash']
+    set $P1521, $P1520["default_value"]
+    unless_null $P1521, vivify_499
+    $P1521 = root_new ['parrot';'ResizablePMCArray']
   vivify_499:
-    set $P1552, $P1551["param_var"]
-    unless_null $P1552, vivify_500
-    new $P1552, "Undef"
+    set $P1522, $P1521[0]
+    unless_null $P1522, vivify_500
+    $P1522 = root_new ['parrot';'Hash']
   vivify_500:
-    $P1553 = $P1552."ast"()
-    store_lex "$past", $P1553
-    find_lex $P1554, "$past"
-    find_lex $P1555, "$/"
-    unless_null $P1555, vivify_501
-    $P1555 = root_new ['parrot';'Hash']
+    set $P1523, $P1522["EXPR"]
+    unless_null $P1523, vivify_501
+    new $P1523, "Undef"
   vivify_501:
-    set $P1556, $P1555["param_var"]
-    unless_null $P1556, vivify_502
-    $P1556 = root_new ['parrot';'Hash']
+    $P1524 = $P1523."ast"()
+    $P1519."viviself"($P1524)
+  if_1504_end:
+.annotate 'line', 537
+    find_lex $P1526, "$past"
+    $P1527 = $P1526."viviself"()
+    if $P1527, unless_1525_end
+    get_global $P1528, "@BLOCK"
+    unless_null $P1528, vivify_502
+    $P1528 = root_new ['parrot';'ResizablePMCArray']
   vivify_502:
-    set $P1557, $P1556["name"]
-    unless_null $P1557, vivify_503
-    new $P1557, "Undef"
+    set $P1529, $P1528[0]
+    unless_null $P1529, vivify_503
+    new $P1529, "Undef"
   vivify_503:
-    set $S1558, $P1557
-    $P1554."named"($S1558)
-    find_lex $P1559, "$/"
-    find_lex $P1560, "$past"
-    $P1561 = $P1559."!make"($P1560)
-    .return ($P1561)
-  control_1547:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1562, exception, "payload"
-    .return ($P1562)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "regex_declarator"  :subid("89_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1566
-    .param pmc param_1567 :optional
-    .param int has_param_1567 :opt_flag
-.annotate 'line', 0
-    .const 'Sub' $P1637 = "91_1283975952.27658" 
-    capture_lex $P1637
-    .const 'Sub' $P1609 = "90_1283975952.27658" 
-    capture_lex $P1609
-    new $P1565, 'ExceptionHandler'
-    set_addr $P1565, control_1564
-    $P1565."handle_types"(.CONTROL_RETURN)
-    push_eh $P1565
-    .lex "self", self
-    .lex "$/", param_1566
-    if has_param_1567, optparam_504
-    new $P1568, "Undef"
-    set param_1567, $P1568
-  optparam_504:
-    .lex "$key", param_1567
-    $P1569 = root_new ['parrot';'ResizablePMCArray']
-    .lex "@MODIFIERS", $P1569
-    new $P1570, "Undef"
-    .lex "$name", $P1570
-    new $P1571, "Undef"
-    .lex "$past", $P1571
-
-        $P1572 = get_hll_global ['Regex';'P6Regex';'Actions'], '@MODIFIERS'
-    
-    store_lex "@MODIFIERS", $P1572
-    find_lex $P1573, "$/"
-    unless_null $P1573, vivify_505
-    $P1573 = root_new ['parrot';'Hash']
+    get_global $P1530, "@BLOCK"
+    unless_null $P1530, vivify_504
+    $P1530 = root_new ['parrot';'ResizablePMCArray']
+  vivify_504:
+    set $P1531, $P1530[0]
+    unless_null $P1531, vivify_505
+    new $P1531, "Undef"
   vivify_505:
-    set $P1574, $P1573["deflongname"]
-    unless_null $P1574, vivify_506
-    new $P1574, "Undef"
+    $P1532 = $P1531."arity"()
+    set $N1533, $P1532
+    new $P1534, 'Float'
+    set $P1534, $N1533
+    add $P1535, $P1534, 1
+    $P1529."arity"($P1535)
+  unless_1525_end:
+.annotate 'line', 540
+    find_lex $P1537, "$/"
+    unless_null $P1537, vivify_506
+    $P1537 = root_new ['parrot';'Hash']
   vivify_506:
-    $P1575 = $P1574."ast"()
-    set $S1576, $P1575
-    new $P1577, 'String'
-    set $P1577, $S1576
-    store_lex "$name", $P1577
-    find_lex $P1578, "$past"
-    find_lex $P1580, "$/"
-    unless_null $P1580, vivify_507
-    $P1580 = root_new ['parrot';'Hash']
+    set $P1538, $P1537["typename"]
+    unless_null $P1538, vivify_507
+    new $P1538, "Undef"
   vivify_507:
-    set $P1581, $P1580["proto"]
-    unless_null $P1581, vivify_508
-    new $P1581, "Undef"
-  vivify_508:
-    if $P1581, if_1579
-    find_lex $P1605, "$key"
-    set $S1606, $P1605
-    iseq $I1607, $S1606, "open"
-    if $I1607, if_1604
-    .const 'Sub' $P1637 = "91_1283975952.27658" 
-    capture_lex $P1637
-    $P1637()
-    goto if_1604_end
-  if_1604:
-    .const 'Sub' $P1609 = "90_1283975952.27658" 
-    capture_lex $P1609
-    $P1609()
-  if_1604_end:
-    goto if_1579_end
-  if_1579:
-    get_hll_global $P1582, ["PAST"], "Stmts"
-    get_hll_global $P1583, ["PAST"], "Block"
-    find_lex $P1584, "$name"
-    get_hll_global $P1585, ["PAST"], "Op"
-    get_hll_global $P1586, ["PAST"], "Var"
-    $P1587 = $P1586."new"("self" :named("name"), "register" :named("scope"))
-    find_lex $P1588, "$name"
-    $P1589 = $P1585."new"($P1587, $P1588, "!protoregex" :named("name"), "callmethod" :named("pasttype"))
-    find_lex $P1590, "$/"
-    $P1591 = $P1583."new"($P1589, $P1584 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1590 :named("node"))
-    get_hll_global $P1592, ["PAST"], "Block"
-    new $P1593, "String"
-    assign $P1593, "!PREFIX__"
-    find_lex $P1594, "$name"
-    concat $P1595, $P1593, $P1594
-    get_hll_global $P1596, ["PAST"], "Op"
-    get_hll_global $P1597, ["PAST"], "Var"
-    $P1598 = $P1597."new"("self" :named("name"), "register" :named("scope"))
-    find_lex $P1599, "$name"
-    $P1600 = $P1596."new"($P1598, $P1599, "!PREFIX__!protoregex" :named("name"), "callmethod" :named("pasttype"))
-    find_lex $P1601, "$/"
-    $P1602 = $P1592."new"($P1600, $P1595 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1601 :named("node"))
-    $P1603 = $P1582."new"($P1591, $P1602)
-    store_lex "$past", $P1603
-  if_1579_end:
-    find_lex $P1658, "$/"
-    find_lex $P1659, "$past"
-    $P1660 = $P1658."!make"($P1659)
-    .return ($P1660)
-  control_1564:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1661, exception, "payload"
-    .return ($P1661)
+    unless $P1538, if_1536_end
+    .const 'Sub' $P1540 = "87_1284728484.24945" 
+    capture_lex $P1540
+    $P1540()
+  if_1536_end:
+.annotate 'line', 546
+    find_lex $P1564, "$/"
+    find_lex $P1565, "$past"
+    $P1566 = $P1564."!make"($P1565)
+.annotate 'line', 509
+    .return ($P1566)
+  control_1457:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1567, exception, "payload"
+    .return ($P1567)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1636"  :anon :subid("91_1283975952.27658") :outer("89_1283975952.27658")
-.annotate 'line', 0
-    new $P1638, "Undef"
-    .lex "$regex", $P1638
-    get_hll_global $P1639, ["Regex";"P6Regex";"Actions"], "buildsub"
-    find_lex $P1640, "$/"
-    unless_null $P1640, vivify_509
-    $P1640 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "_block1539"  :anon :subid("87_1284728484.24945") :outer("86_1284728484.24945")
+.annotate 'line', 540
+    .const 'Sub' $P1552 = "88_1284728484.24945" 
+    capture_lex $P1552
+.annotate 'line', 541
+    $P1541 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@multitype", $P1541
+.annotate 'line', 540
+    find_lex $P1542, "@multitype"
+.annotate 'line', 542
+    find_lex $P1544, "$/"
+    unless_null $P1544, vivify_508
+    $P1544 = root_new ['parrot';'Hash']
+  vivify_508:
+    set $P1545, $P1544["typename"]
+    unless_null $P1545, vivify_509
+    $P1545 = root_new ['parrot';'ResizablePMCArray']
   vivify_509:
-    set $P1641, $P1640["p6regex"]
-    unless_null $P1641, vivify_510
-    new $P1641, "Undef"
+    set $P1546, $P1545[0]
+    unless_null $P1546, vivify_510
+    $P1546 = root_new ['parrot';'Hash']
   vivify_510:
-    $P1642 = $P1641."ast"()
-    get_global $P1643, "@BLOCK"
-    $P1644 = $P1643."shift"()
-    $P1645 = $P1639($P1642, $P1644)
-    store_lex "$regex", $P1645
-    find_lex $P1646, "$regex"
-    find_lex $P1647, "$name"
-    $P1646."name"($P1647)
-    get_hll_global $P1648, ["PAST"], "Op"
-    get_hll_global $P1649, ["PAST"], "Var"
-    new $P1650, "ResizablePMCArray"
-    push $P1650, "Regex"
-    $P1651 = $P1649."new"("Method" :named("name"), $P1650 :named("namespace"), "package" :named("scope"))
-    find_lex $P1652, "$regex"
-    $P1653 = $P1648."new"($P1651, $P1652, "callmethod" :named("pasttype"), "new" :named("name"))
-    store_lex "$past", $P1653
-    find_lex $P1654, "$regex"
-    find_lex $P1655, "$past"
-    unless_null $P1655, vivify_511
-    $P1655 = root_new ['parrot';'Hash']
-    store_lex "$past", $P1655
+    set $P1547, $P1546["name"]
+    unless_null $P1547, vivify_511
+    $P1547 = root_new ['parrot';'Hash']
   vivify_511:
-    set $P1655["sink"], $P1654
-    find_lex $P1656, "@MODIFIERS"
-    $P1657 = $P1656."shift"()
-    .return ($P1657)
+    set $P1548, $P1547["identifier"]
+    unless_null $P1548, vivify_512
+    new $P1548, "Undef"
+  vivify_512:
+    defined $I1549, $P1548
+    unless $I1549, for_undef_513
+    iter $P1543, $P1548
+    new $P1559, 'ExceptionHandler'
+    set_addr $P1559, loop1558_handler
+    $P1559."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1559
+  loop1558_test:
+    unless $P1543, loop1558_done
+    shift $P1550, $P1543
+  loop1558_redo:
+    .const 'Sub' $P1552 = "88_1284728484.24945" 
+    capture_lex $P1552
+    $P1552($P1550)
+  loop1558_next:
+    goto loop1558_test
+  loop1558_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1560, exception, 'type'
+    eq $P1560, .CONTROL_LOOP_NEXT, loop1558_next
+    eq $P1560, .CONTROL_LOOP_REDO, loop1558_redo
+  loop1558_done:
+    pop_eh 
+  for_undef_513:
+.annotate 'line', 543
+    find_lex $P1561, "$past"
+    find_lex $P1562, "@multitype"
+    $P1563 = $P1561."multitype"($P1562)
+.annotate 'line', 540
+    .return ($P1563)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1551"  :anon :subid("88_1284728484.24945") :outer("87_1284728484.24945")
+    .param pmc param_1553
+.annotate 'line', 542
+    .lex "$_", param_1553
+    find_lex $P1554, "@multitype"
+    find_lex $P1555, "$_"
+    set $S1556, $P1555
+    $P1557 = $P1554."push"($S1556)
+    .return ($P1557)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1608"  :anon :subid("90_1283975952.27658") :outer("89_1283975952.27658")
-.annotate 'line', 0
-    $P1610 = root_new ['parrot';'Hash']
-    .lex "%h", $P1610
-    find_lex $P1611, "%h"
-    find_lex $P1613, "$/"
-    unless_null $P1613, vivify_512
-    $P1613 = root_new ['parrot';'Hash']
-  vivify_512:
-    set $P1614, $P1613["sym"]
-    unless_null $P1614, vivify_513
-    new $P1614, "Undef"
-  vivify_513:
-    set $S1615, $P1614
-    iseq $I1616, $S1615, "token"
-    unless $I1616, if_1612_end
-    new $P1617, "Integer"
-    assign $P1617, 1
-    find_lex $P1618, "%h"
-    unless_null $P1618, vivify_514
-    $P1618 = root_new ['parrot';'Hash']
-    store_lex "%h", $P1618
+.sub "param_var"  :subid("89_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_1571
+.annotate 'line', 549
+    new $P1570, 'ExceptionHandler'
+    set_addr $P1570, control_1569
+    $P1570."handle_types"(.CONTROL_RETURN)
+    push_eh $P1570
+    .lex "self", self
+    .lex "$/", param_1571
+.annotate 'line', 550
+    new $P1572, "Undef"
+    .lex "$name", $P1572
+.annotate 'line', 551
+    new $P1573, "Undef"
+    .lex "$past", $P1573
+.annotate 'line', 550
+    find_lex $P1574, "$/"
+    set $S1575, $P1574
+    new $P1576, 'String'
+    set $P1576, $S1575
+    store_lex "$name", $P1576
+.annotate 'line', 551
+    get_hll_global $P1577, ["PAST"], "Var"
+    find_lex $P1578, "$name"
+    find_lex $P1579, "$/"
+    $P1580 = $P1577."new"($P1578 :named("name"), "parameter" :named("scope"), 1 :named("isdecl"), $P1579 :named("node"))
+    store_lex "$past", $P1580
+.annotate 'line', 553
+    get_global $P1581, "@BLOCK"
+    unless_null $P1581, vivify_514
+    $P1581 = root_new ['parrot';'ResizablePMCArray']
   vivify_514:
-    set $P1618["r"], $P1617
-  if_1612_end:
-    find_lex $P1620, "$/"
-    unless_null $P1620, vivify_515
-    $P1620 = root_new ['parrot';'Hash']
+    set $P1582, $P1581[0]
+    unless_null $P1582, vivify_515
+    new $P1582, "Undef"
   vivify_515:
-    set $P1621, $P1620["sym"]
-    unless_null $P1621, vivify_516
-    new $P1621, "Undef"
+    find_lex $P1583, "$name"
+    $P1582."symbol"($P1583, "lexical" :named("scope"))
+.annotate 'line', 554
+    find_lex $P1584, "$/"
+    find_lex $P1585, "$past"
+    $P1586 = $P1584."!make"($P1585)
+.annotate 'line', 549
+    .return ($P1586)
+  control_1569:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1587, exception, "payload"
+    .return ($P1587)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "named_param"  :subid("90_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_1591
+.annotate 'line', 557
+    new $P1590, 'ExceptionHandler'
+    set_addr $P1590, control_1589
+    $P1590."handle_types"(.CONTROL_RETURN)
+    push_eh $P1590
+    .lex "self", self
+    .lex "$/", param_1591
+.annotate 'line', 558
+    new $P1592, "Undef"
+    .lex "$past", $P1592
+    find_lex $P1593, "$/"
+    unless_null $P1593, vivify_516
+    $P1593 = root_new ['parrot';'Hash']
   vivify_516:
-    set $S1622, $P1621
-    iseq $I1623, $S1622, "rule"
-    unless $I1623, if_1619_end
-    new $P1624, "Integer"
-    assign $P1624, 1
-    find_lex $P1625, "%h"
-    unless_null $P1625, vivify_517
-    $P1625 = root_new ['parrot';'Hash']
-    store_lex "%h", $P1625
+    set $P1594, $P1593["param_var"]
+    unless_null $P1594, vivify_517
+    new $P1594, "Undef"
   vivify_517:
-    set $P1625["r"], $P1624
-    new $P1626, "Integer"
-    assign $P1626, 1
-    find_lex $P1627, "%h"
-    unless_null $P1627, vivify_518
-    $P1627 = root_new ['parrot';'Hash']
-    store_lex "%h", $P1627
+    $P1595 = $P1594."ast"()
+    store_lex "$past", $P1595
+.annotate 'line', 559
+    find_lex $P1596, "$past"
+    find_lex $P1597, "$/"
+    unless_null $P1597, vivify_518
+    $P1597 = root_new ['parrot';'Hash']
   vivify_518:
-    set $P1627["s"], $P1626
-  if_1619_end:
-    find_lex $P1628, "@MODIFIERS"
-    find_lex $P1629, "%h"
-    $P1628."unshift"($P1629)
-
-            $P0 = find_lex '$name'
-            set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
-        
-    get_global $P1630, "@BLOCK"
-    unless_null $P1630, vivify_519
-    $P1630 = root_new ['parrot';'ResizablePMCArray']
+    set $P1598, $P1597["param_var"]
+    unless_null $P1598, vivify_519
+    $P1598 = root_new ['parrot';'Hash']
   vivify_519:
-    set $P1631, $P1630[0]
-    unless_null $P1631, vivify_520
-    new $P1631, "Undef"
+    set $P1599, $P1598["name"]
+    unless_null $P1599, vivify_520
+    new $P1599, "Undef"
   vivify_520:
-    $P1631."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
-    get_global $P1632, "@BLOCK"
-    unless_null $P1632, vivify_521
-    $P1632 = root_new ['parrot';'ResizablePMCArray']
+    set $S1600, $P1599
+    $P1596."named"($S1600)
+.annotate 'line', 560
+    find_lex $P1601, "$/"
+    find_lex $P1602, "$past"
+    $P1603 = $P1601."!make"($P1602)
+.annotate 'line', 557
+    .return ($P1603)
+  control_1589:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1604, exception, "payload"
+    .return ($P1604)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "trait"  :subid("91_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_1608
+.annotate 'line', 563
+    new $P1607, 'ExceptionHandler'
+    set_addr $P1607, control_1606
+    $P1607."handle_types"(.CONTROL_RETURN)
+    push_eh $P1607
+    .lex "self", self
+    .lex "$/", param_1608
+.annotate 'line', 564
+    find_lex $P1609, "$/"
+    find_lex $P1610, "$/"
+    unless_null $P1610, vivify_521
+    $P1610 = root_new ['parrot';'Hash']
   vivify_521:
-    set $P1633, $P1632[0]
-    unless_null $P1633, vivify_522
-    new $P1633, "Undef"
+    set $P1611, $P1610["trait_mod"]
+    unless_null $P1611, vivify_522
+    new $P1611, "Undef"
   vivify_522:
-    $P1633."symbol"("$/", "lexical" :named("scope"))
-    new $P1634, "Exception"
-    set $P1634['type'], .CONTROL_RETURN
-    new $P1635, "Integer"
-    assign $P1635, 0
-    setattribute $P1634, 'payload', $P1635
-    throw $P1634
-    .return ()
+    $P1612 = $P1611."ast"()
+    $P1613 = $P1609."!make"($P1612)
+.annotate 'line', 563
+    .return ($P1613)
+  control_1606:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1614, exception, "payload"
+    .return ($P1614)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "dotty"  :subid("92_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1665
-.annotate 'line', 0
-    new $P1664, 'ExceptionHandler'
-    set_addr $P1664, control_1663
-    $P1664."handle_types"(.CONTROL_RETURN)
-    push_eh $P1664
-    .lex "self", self
-    .lex "$/", param_1665
-    new $P1666, "Undef"
-    .lex "$past", $P1666
-    find_lex $P1669, "$/"
-    unless_null $P1669, vivify_523
-    $P1669 = root_new ['parrot';'Hash']
+.sub "trait_mod:sym<is>"  :subid("92_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_1618
+.annotate 'line', 567
+    .const 'Sub' $P1638 = "93_1284728484.24945" 
+    capture_lex $P1638
+    new $P1617, 'ExceptionHandler'
+    set_addr $P1617, control_1616
+    $P1617."handle_types"(.CONTROL_RETURN)
+    push_eh $P1617
+    .lex "self", self
+    .lex "$/", param_1618
+.annotate 'line', 568
+    new $P1619, "Undef"
+    .lex "$cpast", $P1619
+    find_lex $P1620, "$/"
+    unless_null $P1620, vivify_523
+    $P1620 = root_new ['parrot';'Hash']
   vivify_523:
-    set $P1670, $P1669["args"]
-    unless_null $P1670, vivify_524
-    new $P1670, "Undef"
+    set $P1621, $P1620["circumfix"]
+    unless_null $P1621, vivify_524
+    $P1621 = root_new ['parrot';'ResizablePMCArray']
   vivify_524:
-    if $P1670, if_1668
-    get_hll_global $P1675, ["PAST"], "Op"
-    find_lex $P1676, "$/"
-    $P1677 = $P1675."new"($P1676 :named("node"))
-    set $P1667, $P1677
-    goto if_1668_end
-  if_1668:
-    find_lex $P1671, "$/"
-    unless_null $P1671, vivify_525
-    $P1671 = root_new ['parrot';'Hash']
+    set $P1622, $P1621[0]
+    unless_null $P1622, vivify_525
+    new $P1622, "Undef"
   vivify_525:
-    set $P1672, $P1671["args"]
-    unless_null $P1672, vivify_526
-    $P1672 = root_new ['parrot';'ResizablePMCArray']
+    $P1623 = $P1622."ast"()
+    store_lex "$cpast", $P1623
+.annotate 'line', 569
+    find_lex $P1626, "$/"
+    unless_null $P1626, vivify_526
+    $P1626 = root_new ['parrot';'Hash']
   vivify_526:
-    set $P1673, $P1672[0]
-    unless_null $P1673, vivify_527
-    new $P1673, "Undef"
+    set $P1627, $P1626["longname"]
+    unless_null $P1627, vivify_527
+    new $P1627, "Undef"
   vivify_527:
-    $P1674 = $P1673."ast"()
-    set $P1667, $P1674
-  if_1668_end:
-    store_lex "$past", $P1667
-    find_lex $P1678, "$past"
-    find_lex $P1681, "$/"
-    unless_null $P1681, vivify_528
-    $P1681 = root_new ['parrot';'Hash']
+    set $S1628, $P1627
+    iseq $I1629, $S1628, "pirflags"
+    if $I1629, if_1625
+.annotate 'line', 575
+    find_lex $P1648, "$/"
+    $P1649 = $P1648."CURSOR"()
+    new $P1650, 'String'
+    set $P1650, "Trait '"
+    find_lex $P1651, "$/"
+    unless_null $P1651, vivify_528
+    $P1651 = root_new ['parrot';'Hash']
   vivify_528:
-    set $P1682, $P1681["quote"]
-    unless_null $P1682, vivify_529
-    new $P1682, "Undef"
+    set $P1652, $P1651["longname"]
+    unless_null $P1652, vivify_529
+    new $P1652, "Undef"
   vivify_529:
-    if $P1682, if_1680
-    find_lex $P1686, "$/"
-    unless_null $P1686, vivify_530
-    $P1686 = root_new ['parrot';'Hash']
-  vivify_530:
-    set $P1687, $P1686["longname"]
-    unless_null $P1687, vivify_531
-    new $P1687, "Undef"
-  vivify_531:
-    set $S1688, $P1687
-    new $P1679, 'String'
-    set $P1679, $S1688
-    goto if_1680_end
-  if_1680:
-    find_lex $P1683, "$/"
-    unless_null $P1683, vivify_532
-    $P1683 = root_new ['parrot';'Hash']
-  vivify_532:
-    set $P1684, $P1683["quote"]
-    unless_null $P1684, vivify_533
-    new $P1684, "Undef"
-  vivify_533:
-    $P1685 = $P1684."ast"()
-    set $P1679, $P1685
-  if_1680_end:
-    $P1678."name"($P1679)
-    find_lex $P1689, "$past"
-    $P1689."pasttype"("callmethod")
-    find_lex $P1690, "$/"
-    find_lex $P1691, "$past"
-    $P1692 = $P1690."!make"($P1691)
-    .return ($P1692)
-  control_1663:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1693, exception, "payload"
-    .return ($P1693)
+    concat $P1653, $P1650, $P1652
+    concat $P1654, $P1653, "' not implemented"
+    $P1655 = $P1649."panic"($P1654)
+.annotate 'line', 574
+    set $P1624, $P1655
+.annotate 'line', 569
+    goto if_1625_end
+  if_1625:
+.annotate 'line', 571
+    get_hll_global $P1631, ["PAST"], "Val"
+    find_lex $P1632, "$cpast"
+    $P1633 = $P1631."ACCEPTS"($P1632)
+    if $P1633, unless_1630_end
+.annotate 'line', 570
+    find_lex $P1634, "$/"
+    $P1635 = $P1634."CURSOR"()
+    $P1635."panic"("Trait 'pirflags' requires constant scalar argument")
+  unless_1630_end:
+.annotate 'line', 572
+    find_lex $P1636, "$/"
+    .const 'Sub' $P1638 = "93_1284728484.24945" 
+    newclosure $P1646, $P1638
+    $P1647 = $P1636."!make"($P1646)
+.annotate 'line', 569
+    set $P1624, $P1647
+  if_1625_end:
+.annotate 'line', 567
+    .return ($P1624)
+  control_1616:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1656, exception, "payload"
+    .return ($P1656)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "term:sym<self>"  :subid("93_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1697
-.annotate 'line', 0
-    new $P1696, 'ExceptionHandler'
-    set_addr $P1696, control_1695
-    $P1696."handle_types"(.CONTROL_RETURN)
-    push_eh $P1696
-    .lex "self", self
-    .lex "$/", param_1697
-    find_lex $P1698, "$/"
-    get_hll_global $P1699, ["PAST"], "Var"
-    $P1700 = $P1699."new"("self" :named("name"))
-    $P1701 = $P1698."!make"($P1700)
-    .return ($P1701)
-  control_1695:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1702, exception, "payload"
-    .return ($P1702)
+.sub "_block1637"  :anon :subid("93_1284728484.24945") :outer("92_1284728484.24945")
+    .param pmc param_1639
+.annotate 'line', 572
+    .lex "$match", param_1639
+    find_lex $P1640, "$match"
+    $P1641 = $P1640."ast"()
+    set $P1642, $P1641["block_past"]
+    unless_null $P1642, vivify_530
+    new $P1642, "Undef"
+  vivify_530:
+    find_lex $P1643, "$cpast"
+    $P1644 = $P1643."value"()
+    $P1645 = $P1642."pirflags"($P1644)
+    .return ($P1645)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<identifier>"  :subid("94_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1706
-.annotate 'line', 0
-    new $P1705, 'ExceptionHandler'
-    set_addr $P1705, control_1704
-    $P1705."handle_types"(.CONTROL_RETURN)
-    push_eh $P1705
-    .lex "self", self
-    .lex "$/", param_1706
-    new $P1707, "Undef"
-    .lex "$past", $P1707
-    find_lex $P1708, "$/"
-    unless_null $P1708, vivify_534
-    $P1708 = root_new ['parrot';'Hash']
+.sub "regex_declarator"  :subid("94_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_1660
+    .param pmc param_1661 :optional
+    .param int has_param_1661 :opt_flag
+.annotate 'line', 579
+    .const 'Sub' $P1731 = "96_1284728484.24945" 
+    capture_lex $P1731
+    .const 'Sub' $P1703 = "95_1284728484.24945" 
+    capture_lex $P1703
+    new $P1659, 'ExceptionHandler'
+    set_addr $P1659, control_1658
+    $P1659."handle_types"(.CONTROL_RETURN)
+    push_eh $P1659
+    .lex "self", self
+    .lex "$/", param_1660
+    if has_param_1661, optparam_531
+    new $P1662, "Undef"
+    set param_1661, $P1662
+  optparam_531:
+    .lex "$key", param_1661
+.annotate 'line', 580
+    $P1663 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@MODIFIERS", $P1663
+.annotate 'line', 583
+    new $P1664, "Undef"
+    .lex "$name", $P1664
+.annotate 'line', 584
+    new $P1665, "Undef"
+    .lex "$past", $P1665
+.annotate 'line', 580
+
+        $P1666 = get_hll_global ['Regex';'P6Regex';'Actions'], '@MODIFIERS'
+    
+    store_lex "@MODIFIERS", $P1666
+.annotate 'line', 583
+    find_lex $P1667, "$/"
+    unless_null $P1667, vivify_532
+    $P1667 = root_new ['parrot';'Hash']
+  vivify_532:
+    set $P1668, $P1667["deflongname"]
+    unless_null $P1668, vivify_533
+    new $P1668, "Undef"
+  vivify_533:
+    $P1669 = $P1668."ast"()
+    set $S1670, $P1669
+    new $P1671, 'String'
+    set $P1671, $S1670
+    store_lex "$name", $P1671
+    find_lex $P1672, "$past"
+.annotate 'line', 585
+    find_lex $P1674, "$/"
+    unless_null $P1674, vivify_534
+    $P1674 = root_new ['parrot';'Hash']
   vivify_534:
-    set $P1709, $P1708["args"]
-    unless_null $P1709, vivify_535
-    new $P1709, "Undef"
+    set $P1675, $P1674["proto"]
+    unless_null $P1675, vivify_535
+    new $P1675, "Undef"
   vivify_535:
-    $P1710 = $P1709."ast"()
-    store_lex "$past", $P1710
-    find_lex $P1711, "$past"
-    find_lex $P1712, "$/"
-    unless_null $P1712, vivify_536
-    $P1712 = root_new ['parrot';'Hash']
+    if $P1675, if_1673
+.annotate 'line', 612
+    find_lex $P1699, "$key"
+    set $S1700, $P1699
+    iseq $I1701, $S1700, "open"
+    if $I1701, if_1698
+.annotate 'line', 625
+    .const 'Sub' $P1731 = "96_1284728484.24945" 
+    capture_lex $P1731
+    $P1731()
+    goto if_1698_end
+  if_1698:
+.annotate 'line', 612
+    .const 'Sub' $P1703 = "95_1284728484.24945" 
+    capture_lex $P1703
+    $P1703()
+  if_1698_end:
+    goto if_1673_end
+  if_1673:
+.annotate 'line', 587
+    get_hll_global $P1676, ["PAST"], "Stmts"
+.annotate 'line', 588
+    get_hll_global $P1677, ["PAST"], "Block"
+    find_lex $P1678, "$name"
+.annotate 'line', 589
+    get_hll_global $P1679, ["PAST"], "Op"
+.annotate 'line', 590
+    get_hll_global $P1680, ["PAST"], "Var"
+    $P1681 = $P1680."new"("self" :named("name"), "register" :named("scope"))
+    find_lex $P1682, "$name"
+    $P1683 = $P1679."new"($P1681, $P1682, "!protoregex" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 589
+    find_lex $P1684, "$/"
+    $P1685 = $P1677."new"($P1683, $P1678 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1684 :named("node"))
+.annotate 'line', 599
+    get_hll_global $P1686, ["PAST"], "Block"
+    new $P1687, "String"
+    assign $P1687, "!PREFIX__"
+    find_lex $P1688, "$name"
+    concat $P1689, $P1687, $P1688
+.annotate 'line', 600
+    get_hll_global $P1690, ["PAST"], "Op"
+.annotate 'line', 601
+    get_hll_global $P1691, ["PAST"], "Var"
+    $P1692 = $P1691."new"("self" :named("name"), "register" :named("scope"))
+    find_lex $P1693, "$name"
+    $P1694 = $P1690."new"($P1692, $P1693, "!PREFIX__!protoregex" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 600
+    find_lex $P1695, "$/"
+    $P1696 = $P1686."new"($P1694, $P1689 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1695 :named("node"))
+.annotate 'line', 599
+    $P1697 = $P1676."new"($P1685, $P1696)
+.annotate 'line', 587
+    store_lex "$past", $P1697
+  if_1673_end:
+.annotate 'line', 639
+    find_lex $P1752, "$/"
+    find_lex $P1753, "$past"
+    $P1754 = $P1752."!make"($P1753)
+.annotate 'line', 579
+    .return ($P1754)
+  control_1658:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1755, exception, "payload"
+    .return ($P1755)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1730"  :anon :subid("96_1284728484.24945") :outer("94_1284728484.24945")
+.annotate 'line', 626
+    new $P1732, "Undef"
+    .lex "$regex", $P1732
+.annotate 'line', 627
+    get_hll_global $P1733, ["Regex";"P6Regex";"Actions"], "buildsub"
+    find_lex $P1734, "$/"
+    unless_null $P1734, vivify_536
+    $P1734 = root_new ['parrot';'Hash']
   vivify_536:
-    set $P1713, $P1712["deflongname"]
-    unless_null $P1713, vivify_537
-    new $P1713, "Undef"
+    set $P1735, $P1734["p6regex"]
+    unless_null $P1735, vivify_537
+    new $P1735, "Undef"
   vivify_537:
-    set $S1714, $P1713
-    $P1711."name"($S1714)
-    find_lex $P1715, "$/"
-    find_lex $P1716, "$past"
-    $P1717 = $P1715."!make"($P1716)
-    .return ($P1717)
-  control_1704:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1718, exception, "payload"
-    .return ($P1718)
+    $P1736 = $P1735."ast"()
+    get_global $P1737, "@BLOCK"
+    $P1738 = $P1737."shift"()
+    $P1739 = $P1733($P1736, $P1738)
+    store_lex "$regex", $P1739
+.annotate 'line', 628
+    find_lex $P1740, "$regex"
+    find_lex $P1741, "$name"
+    $P1740."name"($P1741)
+.annotate 'line', 630
+    get_hll_global $P1742, ["PAST"], "Op"
+.annotate 'line', 632
+    get_hll_global $P1743, ["PAST"], "Var"
+    new $P1744, "ResizablePMCArray"
+    push $P1744, "Regex"
+    $P1745 = $P1743."new"("Method" :named("name"), $P1744 :named("namespace"), "package" :named("scope"))
+    find_lex $P1746, "$regex"
+    $P1747 = $P1742."new"($P1745, $P1746, "callmethod" :named("pasttype"), "new" :named("name"))
+.annotate 'line', 630
+    store_lex "$past", $P1747
+.annotate 'line', 636
+    find_lex $P1748, "$regex"
+    find_lex $P1749, "$past"
+    unless_null $P1749, vivify_538
+    $P1749 = root_new ['parrot';'Hash']
+    store_lex "$past", $P1749
+  vivify_538:
+    set $P1749["sink"], $P1748
+.annotate 'line', 637
+    find_lex $P1750, "@MODIFIERS"
+    $P1751 = $P1750."shift"()
+.annotate 'line', 625
+    .return ($P1751)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<name>"  :subid("95_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1722
-.annotate 'line', 0
-    new $P1721, 'ExceptionHandler'
-    set_addr $P1721, control_1720
-    $P1721."handle_types"(.CONTROL_RETURN)
-    push_eh $P1721
-    .lex "self", self
-    .lex "$/", param_1722
-    $P1723 = root_new ['parrot';'ResizablePMCArray']
-    .lex "@ns", $P1723
-    new $P1724, "Undef"
-    .lex "$name", $P1724
-    new $P1725, "Undef"
-    .lex "$var", $P1725
-    new $P1726, "Undef"
-    .lex "$past", $P1726
-    find_lex $P1727, "$/"
-    unless_null $P1727, vivify_538
-    $P1727 = root_new ['parrot';'Hash']
-  vivify_538:
-    set $P1728, $P1727["name"]
-    unless_null $P1728, vivify_539
-    $P1728 = root_new ['parrot';'Hash']
+.sub "_block1702"  :anon :subid("95_1284728484.24945") :outer("94_1284728484.24945")
+.annotate 'line', 613
+    $P1704 = root_new ['parrot';'Hash']
+    .lex "%h", $P1704
+.annotate 'line', 612
+    find_lex $P1705, "%h"
+.annotate 'line', 614
+    find_lex $P1707, "$/"
+    unless_null $P1707, vivify_539
+    $P1707 = root_new ['parrot';'Hash']
   vivify_539:
-    set $P1729, $P1728["identifier"]
-    unless_null $P1729, vivify_540
-    new $P1729, "Undef"
+    set $P1708, $P1707["sym"]
+    unless_null $P1708, vivify_540
+    new $P1708, "Undef"
   vivify_540:
-    clone $P1730, $P1729
-    store_lex "@ns", $P1730
-    find_lex $P1731, "@ns"
-    $P1732 = $P1731."pop"()
-    store_lex "$name", $P1732
-    find_lex $P1736, "@ns"
-    if $P1736, if_1735
-    set $P1734, $P1736
-    goto if_1735_end
-  if_1735:
-    find_lex $P1737, "@ns"
-    unless_null $P1737, vivify_541
-    $P1737 = root_new ['parrot';'ResizablePMCArray']
+    set $S1709, $P1708
+    iseq $I1710, $S1709, "token"
+    unless $I1710, if_1706_end
+    new $P1711, "Integer"
+    assign $P1711, 1
+    find_lex $P1712, "%h"
+    unless_null $P1712, vivify_541
+    $P1712 = root_new ['parrot';'Hash']
+    store_lex "%h", $P1712
   vivify_541:
-    set $P1738, $P1737[0]
-    unless_null $P1738, vivify_542
-    new $P1738, "Undef"
+    set $P1712["r"], $P1711
+  if_1706_end:
+.annotate 'line', 615
+    find_lex $P1714, "$/"
+    unless_null $P1714, vivify_542
+    $P1714 = root_new ['parrot';'Hash']
   vivify_542:
-    set $S1739, $P1738
-    iseq $I1740, $S1739, "GLOBAL"
-    new $P1734, 'Integer'
-    set $P1734, $I1740
-  if_1735_end:
-    unless $P1734, if_1733_end
-    find_lex $P1741, "@ns"
-    $P1741."shift"()
-  if_1733_end:
-    get_hll_global $P1742, ["PAST"], "Var"
-    find_lex $P1743, "$name"
-    set $S1744, $P1743
-    find_lex $P1745, "@ns"
-    $P1746 = $P1742."new"($S1744 :named("name"), $P1745 :named("namespace"), "package" :named("scope"))
-    store_lex "$var", $P1746
-    find_lex $P1747, "$var"
-    store_lex "$past", $P1747
-    find_lex $P1749, "$/"
-    unless_null $P1749, vivify_543
-    $P1749 = root_new ['parrot';'Hash']
+    set $P1715, $P1714["sym"]
+    unless_null $P1715, vivify_543
+    new $P1715, "Undef"
   vivify_543:
-    set $P1750, $P1749["args"]
-    unless_null $P1750, vivify_544
-    new $P1750, "Undef"
+    set $S1716, $P1715
+    iseq $I1717, $S1716, "rule"
+    unless $I1717, if_1713_end
+    new $P1718, "Integer"
+    assign $P1718, 1
+    find_lex $P1719, "%h"
+    unless_null $P1719, vivify_544
+    $P1719 = root_new ['parrot';'Hash']
+    store_lex "%h", $P1719
   vivify_544:
-    unless $P1750, if_1748_end
-    find_lex $P1751, "$/"
-    unless_null $P1751, vivify_545
-    $P1751 = root_new ['parrot';'Hash']
+    set $P1719["r"], $P1718
+    new $P1720, "Integer"
+    assign $P1720, 1
+    find_lex $P1721, "%h"
+    unless_null $P1721, vivify_545
+    $P1721 = root_new ['parrot';'Hash']
+    store_lex "%h", $P1721
   vivify_545:
-    set $P1752, $P1751["args"]
-    unless_null $P1752, vivify_546
-    $P1752 = root_new ['parrot';'ResizablePMCArray']
+    set $P1721["s"], $P1720
+  if_1713_end:
+.annotate 'line', 616
+    find_lex $P1722, "@MODIFIERS"
+    find_lex $P1723, "%h"
+    $P1722."unshift"($P1723)
+.annotate 'line', 617
+
+            $P0 = find_lex '$name'
+            set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
+        
+.annotate 'line', 621
+    get_global $P1724, "@BLOCK"
+    unless_null $P1724, vivify_546
+    $P1724 = root_new ['parrot';'ResizablePMCArray']
   vivify_546:
-    set $P1753, $P1752[0]
-    unless_null $P1753, vivify_547
-    new $P1753, "Undef"
+    set $P1725, $P1724[0]
+    unless_null $P1725, vivify_547
+    new $P1725, "Undef"
   vivify_547:
-    $P1754 = $P1753."ast"()
-    store_lex "$past", $P1754
-    find_lex $P1755, "$past"
-    find_lex $P1756, "$var"
-    $P1755."unshift"($P1756)
-  if_1748_end:
-    find_lex $P1757, "$/"
-    find_lex $P1758, "$past"
-    $P1759 = $P1757."!make"($P1758)
-    .return ($P1759)
-  control_1720:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1760, exception, "payload"
-    .return ($P1760)
+    $P1725."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
+.annotate 'line', 622
+    get_global $P1726, "@BLOCK"
+    unless_null $P1726, vivify_548
+    $P1726 = root_new ['parrot';'ResizablePMCArray']
+  vivify_548:
+    set $P1727, $P1726[0]
+    unless_null $P1727, vivify_549
+    new $P1727, "Undef"
+  vivify_549:
+    $P1727."symbol"("$/", "lexical" :named("scope"))
+.annotate 'line', 623
+    new $P1728, "Exception"
+    set $P1728['type'], .CONTROL_RETURN
+    new $P1729, "Integer"
+    assign $P1729, 0
+    setattribute $P1728, 'payload', $P1729
+    throw $P1728
+.annotate 'line', 612
+    .return ()
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<pir::op>"  :subid("96_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1764
-.annotate 'line', 0
-    new $P1763, 'ExceptionHandler'
-    set_addr $P1763, control_1762
-    $P1763."handle_types"(.CONTROL_RETURN)
-    push_eh $P1763
-    .lex "self", self
-    .lex "$/", param_1764
-    new $P1765, "Undef"
-    .lex "$past", $P1765
-    new $P1766, "Undef"
-    .lex "$pirop", $P1766
-    find_lex $P1769, "$/"
-    unless_null $P1769, vivify_548
-    $P1769 = root_new ['parrot';'Hash']
-  vivify_548:
-    set $P1770, $P1769["args"]
-    unless_null $P1770, vivify_549
-    new $P1770, "Undef"
-  vivify_549:
-    if $P1770, if_1768
-    get_hll_global $P1775, ["PAST"], "Op"
-    find_lex $P1776, "$/"
-    $P1777 = $P1775."new"($P1776 :named("node"))
-    set $P1767, $P1777
-    goto if_1768_end
-  if_1768:
-    find_lex $P1771, "$/"
-    unless_null $P1771, vivify_550
-    $P1771 = root_new ['parrot';'Hash']
+.sub "dotty"  :subid("97_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_1759
+.annotate 'line', 643
+    new $P1758, 'ExceptionHandler'
+    set_addr $P1758, control_1757
+    $P1758."handle_types"(.CONTROL_RETURN)
+    push_eh $P1758
+    .lex "self", self
+    .lex "$/", param_1759
+.annotate 'line', 644
+    new $P1760, "Undef"
+    .lex "$past", $P1760
+    find_lex $P1763, "$/"
+    unless_null $P1763, vivify_550
+    $P1763 = root_new ['parrot';'Hash']
   vivify_550:
-    set $P1772, $P1771["args"]
-    unless_null $P1772, vivify_551
-    $P1772 = root_new ['parrot';'ResizablePMCArray']
+    set $P1764, $P1763["args"]
+    unless_null $P1764, vivify_551
+    new $P1764, "Undef"
   vivify_551:
-    set $P1773, $P1772[0]
-    unless_null $P1773, vivify_552
-    new $P1773, "Undef"
+    if $P1764, if_1762
+    get_hll_global $P1769, ["PAST"], "Op"
+    find_lex $P1770, "$/"
+    $P1771 = $P1769."new"($P1770 :named("node"))
+    set $P1761, $P1771
+    goto if_1762_end
+  if_1762:
+    find_lex $P1765, "$/"
+    unless_null $P1765, vivify_552
+    $P1765 = root_new ['parrot';'Hash']
   vivify_552:
-    $P1774 = $P1773."ast"()
-    set $P1767, $P1774
-  if_1768_end:
-    store_lex "$past", $P1767
-    find_lex $P1778, "$/"
-    unless_null $P1778, vivify_553
-    $P1778 = root_new ['parrot';'Hash']
+    set $P1766, $P1765["args"]
+    unless_null $P1766, vivify_553
+    $P1766 = root_new ['parrot';'ResizablePMCArray']
   vivify_553:
-    set $P1779, $P1778["op"]
-    unless_null $P1779, vivify_554
-    new $P1779, "Undef"
+    set $P1767, $P1766[0]
+    unless_null $P1767, vivify_554
+    new $P1767, "Undef"
   vivify_554:
-    set $S1780, $P1779
-    new $P1781, 'String'
-    set $P1781, $S1780
-    store_lex "$pirop", $P1781
-
-        $P0 = find_lex '$pirop'
-        $S0 = $P0
-        $P0 = split '__', $S0
-        $S0 = join ' ', $P0
-        $P1782 = box $S0
-    
-    store_lex "$pirop", $P1782
+    $P1768 = $P1767."ast"()
+    set $P1761, $P1768
+  if_1762_end:
+    store_lex "$past", $P1761
+.annotate 'line', 645
+    find_lex $P1772, "$past"
+    find_lex $P1775, "$/"
+    unless_null $P1775, vivify_555
+    $P1775 = root_new ['parrot';'Hash']
+  vivify_555:
+    set $P1776, $P1775["quote"]
+    unless_null $P1776, vivify_556
+    new $P1776, "Undef"
+  vivify_556:
+    if $P1776, if_1774
+    find_lex $P1780, "$/"
+    unless_null $P1780, vivify_557
+    $P1780 = root_new ['parrot';'Hash']
+  vivify_557:
+    set $P1781, $P1780["longname"]
+    unless_null $P1781, vivify_558
+    new $P1781, "Undef"
+  vivify_558:
+    set $S1782, $P1781
+    new $P1773, 'String'
+    set $P1773, $S1782
+    goto if_1774_end
+  if_1774:
+    find_lex $P1777, "$/"
+    unless_null $P1777, vivify_559
+    $P1777 = root_new ['parrot';'Hash']
+  vivify_559:
+    set $P1778, $P1777["quote"]
+    unless_null $P1778, vivify_560
+    new $P1778, "Undef"
+  vivify_560:
+    $P1779 = $P1778."ast"()
+    set $P1773, $P1779
+  if_1774_end:
+    $P1772."name"($P1773)
+.annotate 'line', 646
     find_lex $P1783, "$past"
-    find_lex $P1784, "$pirop"
-    $P1783."pirop"($P1784)
+    $P1783."pasttype"("callmethod")
+.annotate 'line', 647
+    find_lex $P1784, "$/"
     find_lex $P1785, "$past"
-    $P1785."pasttype"("pirop")
-    find_lex $P1786, "$/"
-    find_lex $P1787, "$past"
-    $P1788 = $P1786."!make"($P1787)
-    .return ($P1788)
-  control_1762:
+    $P1786 = $P1784."!make"($P1785)
+.annotate 'line', 643
+    .return ($P1786)
+  control_1757:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1789, exception, "payload"
-    .return ($P1789)
+    getattribute $P1787, exception, "payload"
+    .return ($P1787)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "args"  :subid("97_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1793
-.annotate 'line', 0
-    new $P1792, 'ExceptionHandler'
-    set_addr $P1792, control_1791
-    $P1792."handle_types"(.CONTROL_RETURN)
-    push_eh $P1792
-    .lex "self", self
-    .lex "$/", param_1793
-    find_lex $P1794, "$/"
-    find_lex $P1795, "$/"
-    unless_null $P1795, vivify_555
-    $P1795 = root_new ['parrot';'Hash']
-  vivify_555:
-    set $P1796, $P1795["arglist"]
-    unless_null $P1796, vivify_556
-    new $P1796, "Undef"
-  vivify_556:
-    $P1797 = $P1796."ast"()
-    $P1798 = $P1794."!make"($P1797)
-    .return ($P1798)
-  control_1791:
+.sub "term:sym<self>"  :subid("98_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_1791
+.annotate 'line', 652
+    new $P1790, 'ExceptionHandler'
+    set_addr $P1790, control_1789
+    $P1790."handle_types"(.CONTROL_RETURN)
+    push_eh $P1790
+    .lex "self", self
+    .lex "$/", param_1791
+.annotate 'line', 653
+    find_lex $P1792, "$/"
+    get_hll_global $P1793, ["PAST"], "Var"
+    $P1794 = $P1793."new"("self" :named("name"))
+    $P1795 = $P1792."!make"($P1794)
+.annotate 'line', 652
+    .return ($P1795)
+  control_1789:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1799, exception, "payload"
-    .return ($P1799)
+    getattribute $P1796, exception, "payload"
+    .return ($P1796)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "arglist"  :subid("98_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1803
-.annotate 'line', 0
-    .const 'Sub' $P1814 = "99_1283975952.27658" 
-    capture_lex $P1814
-    new $P1802, 'ExceptionHandler'
-    set_addr $P1802, control_1801
-    $P1802."handle_types"(.CONTROL_RETURN)
-    push_eh $P1802
-    .lex "self", self
-    .lex "$/", param_1803
-    new $P1804, "Undef"
-    .lex "$past", $P1804
-    new $P1805, "Undef"
-    .lex "$i", $P1805
-    new $P1806, "Undef"
-    .lex "$n", $P1806
-    get_hll_global $P1807, ["PAST"], "Op"
-    find_lex $P1808, "$/"
-    $P1809 = $P1807."new"("call" :named("pasttype"), $P1808 :named("node"))
-    store_lex "$past", $P1809
-    find_lex $P1811, "$/"
-    unless_null $P1811, vivify_557
-    $P1811 = root_new ['parrot';'Hash']
-  vivify_557:
-    set $P1812, $P1811["EXPR"]
-    unless_null $P1812, vivify_558
-    new $P1812, "Undef"
-  vivify_558:
-    unless $P1812, if_1810_end
-    .const 'Sub' $P1814 = "99_1283975952.27658" 
-    capture_lex $P1814
-    $P1814()
-  if_1810_end:
-    new $P1846, "Integer"
-    assign $P1846, 0
-    store_lex "$i", $P1846
-    find_lex $P1847, "$past"
-    $P1848 = $P1847."list"()
-    set $N1849, $P1848
-    new $P1850, 'Float'
-    set $P1850, $N1849
-    store_lex "$n", $P1850
-    new $P1898, 'ExceptionHandler'
-    set_addr $P1898, loop1897_handler
-    $P1898."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P1898
-  loop1897_test:
-    find_lex $P1851, "$i"
-    set $N1852, $P1851
-    find_lex $P1853, "$n"
-    set $N1854, $P1853
-    islt $I1855, $N1852, $N1854
-    unless $I1855, loop1897_done
-  loop1897_redo:
-    find_lex $P1857, "$i"
-    set $I1858, $P1857
-    find_lex $P1859, "$past"
-    unless_null $P1859, vivify_562
-    $P1859 = root_new ['parrot';'ResizablePMCArray']
+.sub "term:sym<identifier>"  :subid("99_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_1800
+.annotate 'line', 656
+    new $P1799, 'ExceptionHandler'
+    set_addr $P1799, control_1798
+    $P1799."handle_types"(.CONTROL_RETURN)
+    push_eh $P1799
+    .lex "self", self
+    .lex "$/", param_1800
+.annotate 'line', 657
+    new $P1801, "Undef"
+    .lex "$past", $P1801
+    find_lex $P1802, "$/"
+    unless_null $P1802, vivify_561
+    $P1802 = root_new ['parrot';'Hash']
+  vivify_561:
+    set $P1803, $P1802["args"]
+    unless_null $P1803, vivify_562
+    new $P1803, "Undef"
   vivify_562:
-    set $P1860, $P1859[$I1858]
-    unless_null $P1860, vivify_563
-    new $P1860, "Undef"
+    $P1804 = $P1803."ast"()
+    store_lex "$past", $P1804
+.annotate 'line', 658
+    find_lex $P1805, "$past"
+    find_lex $P1806, "$/"
+    unless_null $P1806, vivify_563
+    $P1806 = root_new ['parrot';'Hash']
   vivify_563:
-    $S1861 = $P1860."name"()
-    iseq $I1862, $S1861, "&prefix:<|>"
-    unless $I1862, if_1856_end
-    find_lex $P1863, "$i"
-    set $I1864, $P1863
-    find_lex $P1865, "$past"
-    unless_null $P1865, vivify_564
-    $P1865 = root_new ['parrot';'ResizablePMCArray']
+    set $P1807, $P1806["deflongname"]
+    unless_null $P1807, vivify_564
+    new $P1807, "Undef"
   vivify_564:
-    set $P1866, $P1865[$I1864]
-    unless_null $P1866, vivify_565
-    $P1866 = root_new ['parrot';'ResizablePMCArray']
+    set $S1808, $P1807
+    $P1805."name"($S1808)
+.annotate 'line', 659
+    find_lex $P1809, "$/"
+    find_lex $P1810, "$past"
+    $P1811 = $P1809."!make"($P1810)
+.annotate 'line', 656
+    .return ($P1811)
+  control_1798:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1812, exception, "payload"
+    .return ($P1812)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "term:sym<name>"  :subid("100_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_1816
+.annotate 'line', 662
+    new $P1815, 'ExceptionHandler'
+    set_addr $P1815, control_1814
+    $P1815."handle_types"(.CONTROL_RETURN)
+    push_eh $P1815
+    .lex "self", self
+    .lex "$/", param_1816
+.annotate 'line', 663
+    $P1817 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@ns", $P1817
+.annotate 'line', 664
+    new $P1818, "Undef"
+    .lex "$name", $P1818
+.annotate 'line', 666
+    new $P1819, "Undef"
+    .lex "$var", $P1819
+.annotate 'line', 668
+    new $P1820, "Undef"
+    .lex "$past", $P1820
+.annotate 'line', 663
+    find_lex $P1821, "$/"
+    unless_null $P1821, vivify_565
+    $P1821 = root_new ['parrot';'Hash']
   vivify_565:
-    set $P1867, $P1866[0]
-    unless_null $P1867, vivify_566
-    new $P1867, "Undef"
+    set $P1822, $P1821["name"]
+    unless_null $P1822, vivify_566
+    $P1822 = root_new ['parrot';'Hash']
   vivify_566:
-    find_lex $P1868, "$i"
-    set $I1869, $P1868
-    find_lex $P1870, "$past"
-    unless_null $P1870, vivify_567
-    $P1870 = root_new ['parrot';'ResizablePMCArray']
-    store_lex "$past", $P1870
+    set $P1823, $P1822["identifier"]
+    unless_null $P1823, vivify_567
+    new $P1823, "Undef"
   vivify_567:
-    set $P1870[$I1869], $P1867
-    find_lex $P1871, "$i"
-    set $I1872, $P1871
-    find_lex $P1873, "$past"
-    unless_null $P1873, vivify_568
-    $P1873 = root_new ['parrot';'ResizablePMCArray']
+    clone $P1824, $P1823
+    store_lex "@ns", $P1824
+.annotate 'line', 664
+    find_lex $P1825, "@ns"
+    $P1826 = $P1825."pop"()
+    store_lex "$name", $P1826
+.annotate 'line', 665
+    find_lex $P1830, "@ns"
+    if $P1830, if_1829
+    set $P1828, $P1830
+    goto if_1829_end
+  if_1829:
+    find_lex $P1831, "@ns"
+    unless_null $P1831, vivify_568
+    $P1831 = root_new ['parrot';'ResizablePMCArray']
   vivify_568:
-    set $P1874, $P1873[$I1872]
-    unless_null $P1874, vivify_569
-    new $P1874, "Undef"
+    set $P1832, $P1831[0]
+    unless_null $P1832, vivify_569
+    new $P1832, "Undef"
   vivify_569:
-    $P1874."flat"(1)
-    find_lex $P1878, "$i"
-    set $I1879, $P1878
-    find_lex $P1880, "$past"
-    unless_null $P1880, vivify_570
-    $P1880 = root_new ['parrot';'ResizablePMCArray']
+    set $S1833, $P1832
+    iseq $I1834, $S1833, "GLOBAL"
+    new $P1828, 'Integer'
+    set $P1828, $I1834
+  if_1829_end:
+    unless $P1828, if_1827_end
+    find_lex $P1835, "@ns"
+    $P1835."shift"()
+  if_1827_end:
+.annotate 'line', 667
+    get_hll_global $P1836, ["PAST"], "Var"
+    find_lex $P1837, "$name"
+    set $S1838, $P1837
+    find_lex $P1839, "@ns"
+    $P1840 = $P1836."new"($S1838 :named("name"), $P1839 :named("namespace"), "package" :named("scope"))
+    store_lex "$var", $P1840
+.annotate 'line', 668
+    find_lex $P1841, "$var"
+    store_lex "$past", $P1841
+.annotate 'line', 669
+    find_lex $P1843, "$/"
+    unless_null $P1843, vivify_570
+    $P1843 = root_new ['parrot';'Hash']
   vivify_570:
-    set $P1881, $P1880[$I1879]
-    unless_null $P1881, vivify_571
-    new $P1881, "Undef"
+    set $P1844, $P1843["args"]
+    unless_null $P1844, vivify_571
+    new $P1844, "Undef"
   vivify_571:
-    get_hll_global $P1882, ["PAST"], "Val"
-    $P1883 = $P1881."isa"($P1882)
-    if $P1883, if_1877
-    set $P1876, $P1883
-    goto if_1877_end
-  if_1877:
-    find_lex $P1884, "$i"
-    set $I1885, $P1884
-    find_lex $P1886, "$past"
-    unless_null $P1886, vivify_572
-    $P1886 = root_new ['parrot';'ResizablePMCArray']
+    unless $P1844, if_1842_end
+.annotate 'line', 670
+    find_lex $P1845, "$/"
+    unless_null $P1845, vivify_572
+    $P1845 = root_new ['parrot';'Hash']
   vivify_572:
-    set $P1887, $P1886[$I1885]
-    unless_null $P1887, vivify_573
-    new $P1887, "Undef"
+    set $P1846, $P1845["args"]
+    unless_null $P1846, vivify_573
+    $P1846 = root_new ['parrot';'ResizablePMCArray']
   vivify_573:
-    $S1888 = $P1887."name"()
-    substr $S1889, $S1888, 0, 1
-    iseq $I1890, $S1889, "%"
-    new $P1876, 'Integer'
-    set $P1876, $I1890
-  if_1877_end:
-    unless $P1876, if_1875_end
-    find_lex $P1891, "$i"
-    set $I1892, $P1891
-    find_lex $P1893, "$past"
-    unless_null $P1893, vivify_574
-    $P1893 = root_new ['parrot';'ResizablePMCArray']
+    set $P1847, $P1846[0]
+    unless_null $P1847, vivify_574
+    new $P1847, "Undef"
   vivify_574:
-    set $P1894, $P1893[$I1892]
-    unless_null $P1894, vivify_575
-    new $P1894, "Undef"
+    $P1848 = $P1847."ast"()
+    store_lex "$past", $P1848
+.annotate 'line', 671
+    find_lex $P1849, "$past"
+    find_lex $P1850, "$var"
+    $P1849."unshift"($P1850)
+  if_1842_end:
+.annotate 'line', 673
+    find_lex $P1851, "$/"
+    find_lex $P1852, "$past"
+    $P1853 = $P1851."!make"($P1852)
+.annotate 'line', 662
+    .return ($P1853)
+  control_1814:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1854, exception, "payload"
+    .return ($P1854)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "term:sym<pir::op>"  :subid("101_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_1858
+.annotate 'line', 676
+    new $P1857, 'ExceptionHandler'
+    set_addr $P1857, control_1856
+    $P1857."handle_types"(.CONTROL_RETURN)
+    push_eh $P1857
+    .lex "self", self
+    .lex "$/", param_1858
+.annotate 'line', 677
+    new $P1859, "Undef"
+    .lex "$past", $P1859
+.annotate 'line', 678
+    new $P1860, "Undef"
+    .lex "$pirop", $P1860
+.annotate 'line', 677
+    find_lex $P1863, "$/"
+    unless_null $P1863, vivify_575
+    $P1863 = root_new ['parrot';'Hash']
   vivify_575:
-    $P1894."named"(1)
-  if_1875_end:
-  if_1856_end:
-    find_lex $P1895, "$i"
-    clone $P1896, $P1895
-    inc $P1895
-  loop1897_next:
-    goto loop1897_test
-  loop1897_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1899, exception, 'type'
-    eq $P1899, .CONTROL_LOOP_NEXT, loop1897_next
-    eq $P1899, .CONTROL_LOOP_REDO, loop1897_redo
-  loop1897_done:
+    set $P1864, $P1863["args"]
+    unless_null $P1864, vivify_576
+    new $P1864, "Undef"
+  vivify_576:
+    if $P1864, if_1862
+    get_hll_global $P1869, ["PAST"], "Op"
+    find_lex $P1870, "$/"
+    $P1871 = $P1869."new"($P1870 :named("node"))
+    set $P1861, $P1871
+    goto if_1862_end
+  if_1862:
+    find_lex $P1865, "$/"
+    unless_null $P1865, vivify_577
+    $P1865 = root_new ['parrot';'Hash']
+  vivify_577:
+    set $P1866, $P1865["args"]
+    unless_null $P1866, vivify_578
+    $P1866 = root_new ['parrot';'ResizablePMCArray']
+  vivify_578:
+    set $P1867, $P1866[0]
+    unless_null $P1867, vivify_579
+    new $P1867, "Undef"
+  vivify_579:
+    $P1868 = $P1867."ast"()
+    set $P1861, $P1868
+  if_1862_end:
+    store_lex "$past", $P1861
+.annotate 'line', 678
+    find_lex $P1872, "$/"
+    unless_null $P1872, vivify_580
+    $P1872 = root_new ['parrot';'Hash']
+  vivify_580:
+    set $P1873, $P1872["op"]
+    unless_null $P1873, vivify_581
+    new $P1873, "Undef"
+  vivify_581:
+    set $S1874, $P1873
+    new $P1875, 'String'
+    set $P1875, $S1874
+    store_lex "$pirop", $P1875
+.annotate 'line', 679
+
+        $P0 = find_lex '$pirop'
+        $S0 = $P0
+        $P0 = split '__', $S0
+        $S0 = join ' ', $P0
+        $P1876 = box $S0
+    
+    store_lex "$pirop", $P1876
+.annotate 'line', 686
+    find_lex $P1877, "$past"
+    find_lex $P1878, "$pirop"
+    $P1877."pirop"($P1878)
+.annotate 'line', 687
+    find_lex $P1879, "$past"
+    $P1879."pasttype"("pirop")
+.annotate 'line', 688
+    find_lex $P1880, "$/"
+    find_lex $P1881, "$past"
+    $P1882 = $P1880."!make"($P1881)
+.annotate 'line', 676
+    .return ($P1882)
+  control_1856:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1883, exception, "payload"
+    .return ($P1883)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "args"  :subid("102_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_1887
+.annotate 'line', 691
+    new $P1886, 'ExceptionHandler'
+    set_addr $P1886, control_1885
+    $P1886."handle_types"(.CONTROL_RETURN)
+    push_eh $P1886
+    .lex "self", self
+    .lex "$/", param_1887
+    find_lex $P1888, "$/"
+    find_lex $P1889, "$/"
+    unless_null $P1889, vivify_582
+    $P1889 = root_new ['parrot';'Hash']
+  vivify_582:
+    set $P1890, $P1889["arglist"]
+    unless_null $P1890, vivify_583
+    new $P1890, "Undef"
+  vivify_583:
+    $P1891 = $P1890."ast"()
+    $P1892 = $P1888."!make"($P1891)
+    .return ($P1892)
+  control_1885:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1893, exception, "payload"
+    .return ($P1893)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "arglist"  :subid("103_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_1897
+.annotate 'line', 693
+    .const 'Sub' $P1908 = "104_1284728484.24945" 
+    capture_lex $P1908
+    new $P1896, 'ExceptionHandler'
+    set_addr $P1896, control_1895
+    $P1896."handle_types"(.CONTROL_RETURN)
+    push_eh $P1896
+    .lex "self", self
+    .lex "$/", param_1897
+.annotate 'line', 694
+    new $P1898, "Undef"
+    .lex "$past", $P1898
+.annotate 'line', 702
+    new $P1899, "Undef"
+    .lex "$i", $P1899
+.annotate 'line', 703
+    new $P1900, "Undef"
+    .lex "$n", $P1900
+.annotate 'line', 694
+    get_hll_global $P1901, ["PAST"], "Op"
+    find_lex $P1902, "$/"
+    $P1903 = $P1901."new"("call" :named("pasttype"), $P1902 :named("node"))
+    store_lex "$past", $P1903
+.annotate 'line', 695
+    find_lex $P1905, "$/"
+    unless_null $P1905, vivify_584
+    $P1905 = root_new ['parrot';'Hash']
+  vivify_584:
+    set $P1906, $P1905["EXPR"]
+    unless_null $P1906, vivify_585
+    new $P1906, "Undef"
+  vivify_585:
+    unless $P1906, if_1904_end
+    .const 'Sub' $P1908 = "104_1284728484.24945" 
+    capture_lex $P1908
+    $P1908()
+  if_1904_end:
+.annotate 'line', 702
+    new $P1940, "Integer"
+    assign $P1940, 0
+    store_lex "$i", $P1940
+.annotate 'line', 703
+    find_lex $P1941, "$past"
+    $P1942 = $P1941."list"()
+    set $N1943, $P1942
+    new $P1944, 'Float'
+    set $P1944, $N1943
+    store_lex "$n", $P1944
+.annotate 'line', 704
+    new $P1992, 'ExceptionHandler'
+    set_addr $P1992, loop1991_handler
+    $P1992."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1992
+  loop1991_test:
+    find_lex $P1945, "$i"
+    set $N1946, $P1945
+    find_lex $P1947, "$n"
+    set $N1948, $P1947
+    islt $I1949, $N1946, $N1948
+    unless $I1949, loop1991_done
+  loop1991_redo:
+.annotate 'line', 705
+    find_lex $P1951, "$i"
+    set $I1952, $P1951
+    find_lex $P1953, "$past"
+    unless_null $P1953, vivify_589
+    $P1953 = root_new ['parrot';'ResizablePMCArray']
+  vivify_589:
+    set $P1954, $P1953[$I1952]
+    unless_null $P1954, vivify_590
+    new $P1954, "Undef"
+  vivify_590:
+    $S1955 = $P1954."name"()
+    iseq $I1956, $S1955, "&prefix:<|>"
+    unless $I1956, if_1950_end
+.annotate 'line', 706
+    find_lex $P1957, "$i"
+    set $I1958, $P1957
+    find_lex $P1959, "$past"
+    unless_null $P1959, vivify_591
+    $P1959 = root_new ['parrot';'ResizablePMCArray']
+  vivify_591:
+    set $P1960, $P1959[$I1958]
+    unless_null $P1960, vivify_592
+    $P1960 = root_new ['parrot';'ResizablePMCArray']
+  vivify_592:
+    set $P1961, $P1960[0]
+    unless_null $P1961, vivify_593
+    new $P1961, "Undef"
+  vivify_593:
+    find_lex $P1962, "$i"
+    set $I1963, $P1962
+    find_lex $P1964, "$past"
+    unless_null $P1964, vivify_594
+    $P1964 = root_new ['parrot';'ResizablePMCArray']
+    store_lex "$past", $P1964
+  vivify_594:
+    set $P1964[$I1963], $P1961
+.annotate 'line', 707
+    find_lex $P1965, "$i"
+    set $I1966, $P1965
+    find_lex $P1967, "$past"
+    unless_null $P1967, vivify_595
+    $P1967 = root_new ['parrot';'ResizablePMCArray']
+  vivify_595:
+    set $P1968, $P1967[$I1966]
+    unless_null $P1968, vivify_596
+    new $P1968, "Undef"
+  vivify_596:
+    $P1968."flat"(1)
+.annotate 'line', 708
+    find_lex $P1972, "$i"
+    set $I1973, $P1972
+    find_lex $P1974, "$past"
+    unless_null $P1974, vivify_597
+    $P1974 = root_new ['parrot';'ResizablePMCArray']
+  vivify_597:
+    set $P1975, $P1974[$I1973]
+    unless_null $P1975, vivify_598
+    new $P1975, "Undef"
+  vivify_598:
+    get_hll_global $P1976, ["PAST"], "Val"
+    $P1977 = $P1975."isa"($P1976)
+    if $P1977, if_1971
+    set $P1970, $P1977
+    goto if_1971_end
+  if_1971:
+.annotate 'line', 709
+    find_lex $P1978, "$i"
+    set $I1979, $P1978
+    find_lex $P1980, "$past"
+    unless_null $P1980, vivify_599
+    $P1980 = root_new ['parrot';'ResizablePMCArray']
+  vivify_599:
+    set $P1981, $P1980[$I1979]
+    unless_null $P1981, vivify_600
+    new $P1981, "Undef"
+  vivify_600:
+    $S1982 = $P1981."name"()
+    substr $S1983, $S1982, 0, 1
+    iseq $I1984, $S1983, "%"
+    new $P1970, 'Integer'
+    set $P1970, $I1984
+  if_1971_end:
+    unless $P1970, if_1969_end
+.annotate 'line', 710
+    find_lex $P1985, "$i"
+    set $I1986, $P1985
+    find_lex $P1987, "$past"
+    unless_null $P1987, vivify_601
+    $P1987 = root_new ['parrot';'ResizablePMCArray']
+  vivify_601:
+    set $P1988, $P1987[$I1986]
+    unless_null $P1988, vivify_602
+    new $P1988, "Undef"
+  vivify_602:
+    $P1988."named"(1)
+  if_1969_end:
+  if_1950_end:
+.annotate 'line', 705
+    find_lex $P1989, "$i"
+    clone $P1990, $P1989
+    inc $P1989
+  loop1991_next:
+.annotate 'line', 704
+    goto loop1991_test
+  loop1991_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1993, exception, 'type'
+    eq $P1993, .CONTROL_LOOP_NEXT, loop1991_next
+    eq $P1993, .CONTROL_LOOP_REDO, loop1991_redo
+  loop1991_done:
     pop_eh 
-    find_lex $P1900, "$/"
-    find_lex $P1901, "$past"
-    $P1902 = $P1900."!make"($P1901)
-    .return ($P1902)
-  control_1801:
+.annotate 'line', 715
+    find_lex $P1994, "$/"
+    find_lex $P1995, "$past"
+    $P1996 = $P1994."!make"($P1995)
+.annotate 'line', 693
+    .return ($P1996)
+  control_1895:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1903, exception, "payload"
-    .return ($P1903)
+    getattribute $P1997, exception, "payload"
+    .return ($P1997)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1813"  :anon :subid("99_1283975952.27658") :outer("98_1283975952.27658")
-.annotate 'line', 0
-    .const 'Sub' $P1835 = "100_1283975952.27658" 
-    capture_lex $P1835
-    new $P1815, "Undef"
-    .lex "$expr", $P1815
-    find_lex $P1816, "$/"
-    unless_null $P1816, vivify_559
-    $P1816 = root_new ['parrot';'Hash']
-  vivify_559:
-    set $P1817, $P1816["EXPR"]
-    unless_null $P1817, vivify_560
-    new $P1817, "Undef"
-  vivify_560:
-    $P1818 = $P1817."ast"()
-    store_lex "$expr", $P1818
-    find_lex $P1823, "$expr"
-    $S1824 = $P1823."name"()
-    iseq $I1825, $S1824, "&infix:<,>"
-    if $I1825, if_1822
-    new $P1821, 'Integer'
-    set $P1821, $I1825
-    goto if_1822_end
-  if_1822:
-    find_lex $P1826, "$expr"
-    $P1827 = $P1826."named"()
-    isfalse $I1828, $P1827
-    new $P1821, 'Integer'
-    set $P1821, $I1828
-  if_1822_end:
-    if $P1821, if_1820
-    find_lex $P1843, "$past"
-    find_lex $P1844, "$expr"
-    $P1845 = $P1843."push"($P1844)
-    set $P1819, $P1845
-    goto if_1820_end
-  if_1820:
-    find_lex $P1830, "$expr"
-    $P1831 = $P1830."list"()
-    defined $I1832, $P1831
-    unless $I1832, for_undef_561
-    iter $P1829, $P1831
-    new $P1841, 'ExceptionHandler'
-    set_addr $P1841, loop1840_handler
-    $P1841."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P1841
-  loop1840_test:
-    unless $P1829, loop1840_done
-    shift $P1833, $P1829
-  loop1840_redo:
-    .const 'Sub' $P1835 = "100_1283975952.27658" 
-    capture_lex $P1835
-    $P1835($P1833)
-  loop1840_next:
-    goto loop1840_test
-  loop1840_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1842, exception, 'type'
-    eq $P1842, .CONTROL_LOOP_NEXT, loop1840_next
-    eq $P1842, .CONTROL_LOOP_REDO, loop1840_redo
-  loop1840_done:
+.sub "_block1907"  :anon :subid("104_1284728484.24945") :outer("103_1284728484.24945")
+.annotate 'line', 695
+    .const 'Sub' $P1929 = "105_1284728484.24945" 
+    capture_lex $P1929
+.annotate 'line', 696
+    new $P1909, "Undef"
+    .lex "$expr", $P1909
+    find_lex $P1910, "$/"
+    unless_null $P1910, vivify_586
+    $P1910 = root_new ['parrot';'Hash']
+  vivify_586:
+    set $P1911, $P1910["EXPR"]
+    unless_null $P1911, vivify_587
+    new $P1911, "Undef"
+  vivify_587:
+    $P1912 = $P1911."ast"()
+    store_lex "$expr", $P1912
+.annotate 'line', 697
+    find_lex $P1917, "$expr"
+    $S1918 = $P1917."name"()
+    iseq $I1919, $S1918, "&infix:<,>"
+    if $I1919, if_1916
+    new $P1915, 'Integer'
+    set $P1915, $I1919
+    goto if_1916_end
+  if_1916:
+    find_lex $P1920, "$expr"
+    $P1921 = $P1920."named"()
+    isfalse $I1922, $P1921
+    new $P1915, 'Integer'
+    set $P1915, $I1922
+  if_1916_end:
+    if $P1915, if_1914
+.annotate 'line', 700
+    find_lex $P1937, "$past"
+    find_lex $P1938, "$expr"
+    $P1939 = $P1937."push"($P1938)
+    set $P1913, $P1939
+.annotate 'line', 697
+    goto if_1914_end
+  if_1914:
+.annotate 'line', 698
+    find_lex $P1924, "$expr"
+    $P1925 = $P1924."list"()
+    defined $I1926, $P1925
+    unless $I1926, for_undef_588
+    iter $P1923, $P1925
+    new $P1935, 'ExceptionHandler'
+    set_addr $P1935, loop1934_handler
+    $P1935."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1935
+  loop1934_test:
+    unless $P1923, loop1934_done
+    shift $P1927, $P1923
+  loop1934_redo:
+    .const 'Sub' $P1929 = "105_1284728484.24945" 
+    capture_lex $P1929
+    $P1929($P1927)
+  loop1934_next:
+    goto loop1934_test
+  loop1934_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1936, exception, 'type'
+    eq $P1936, .CONTROL_LOOP_NEXT, loop1934_next
+    eq $P1936, .CONTROL_LOOP_REDO, loop1934_redo
+  loop1934_done:
     pop_eh 
-  for_undef_561:
-    set $P1819, $P1829
-  if_1820_end:
-    .return ($P1819)
+  for_undef_588:
+.annotate 'line', 697
+    set $P1913, $P1923
+  if_1914_end:
+.annotate 'line', 695
+    .return ($P1913)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1834"  :anon :subid("100_1283975952.27658") :outer("99_1283975952.27658")
-    .param pmc param_1836
-.annotate 'line', 0
-    .lex "$_", param_1836
-    find_lex $P1837, "$past"
-    find_lex $P1838, "$_"
-    $P1839 = $P1837."push"($P1838)
-    .return ($P1839)
+.sub "_block1928"  :anon :subid("105_1284728484.24945") :outer("104_1284728484.24945")
+    .param pmc param_1930
+.annotate 'line', 698
+    .lex "$_", param_1930
+    find_lex $P1931, "$past"
+    find_lex $P1932, "$_"
+    $P1933 = $P1931."push"($P1932)
+    .return ($P1933)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<value>"  :subid("101_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1907
-.annotate 'line', 0
-    new $P1906, 'ExceptionHandler'
-    set_addr $P1906, control_1905
-    $P1906."handle_types"(.CONTROL_RETURN)
-    push_eh $P1906
-    .lex "self", self
-    .lex "$/", param_1907
-    find_lex $P1908, "$/"
-    find_lex $P1909, "$/"
-    unless_null $P1909, vivify_576
-    $P1909 = root_new ['parrot';'Hash']
-  vivify_576:
-    set $P1910, $P1909["value"]
-    unless_null $P1910, vivify_577
-    new $P1910, "Undef"
-  vivify_577:
-    $P1911 = $P1910."ast"()
-    $P1912 = $P1908."!make"($P1911)
-    .return ($P1912)
-  control_1905:
+.sub "term:sym<value>"  :subid("106_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2001
+.annotate 'line', 719
+    new $P2000, 'ExceptionHandler'
+    set_addr $P2000, control_1999
+    $P2000."handle_types"(.CONTROL_RETURN)
+    push_eh $P2000
+    .lex "self", self
+    .lex "$/", param_2001
+    find_lex $P2002, "$/"
+    find_lex $P2003, "$/"
+    unless_null $P2003, vivify_603
+    $P2003 = root_new ['parrot';'Hash']
+  vivify_603:
+    set $P2004, $P2003["value"]
+    unless_null $P2004, vivify_604
+    new $P2004, "Undef"
+  vivify_604:
+    $P2005 = $P2004."ast"()
+    $P2006 = $P2002."!make"($P2005)
+    .return ($P2006)
+  control_1999:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1913, exception, "payload"
-    .return ($P1913)
+    getattribute $P2007, exception, "payload"
+    .return ($P2007)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<( )>"  :subid("102_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1917
-.annotate 'line', 0
-    new $P1916, 'ExceptionHandler'
-    set_addr $P1916, control_1915
-    $P1916."handle_types"(.CONTROL_RETURN)
-    push_eh $P1916
-    .lex "self", self
-    .lex "$/", param_1917
-    find_lex $P1918, "$/"
-    find_lex $P1921, "$/"
-    unless_null $P1921, vivify_578
-    $P1921 = root_new ['parrot';'Hash']
-  vivify_578:
-    set $P1922, $P1921["EXPR"]
-    unless_null $P1922, vivify_579
-    new $P1922, "Undef"
-  vivify_579:
-    if $P1922, if_1920
-    get_hll_global $P1927, ["PAST"], "Op"
-    find_lex $P1928, "$/"
-    $P1929 = $P1927."new"("list" :named("pasttype"), $P1928 :named("node"))
-    set $P1919, $P1929
-    goto if_1920_end
-  if_1920:
-    find_lex $P1923, "$/"
-    unless_null $P1923, vivify_580
-    $P1923 = root_new ['parrot';'Hash']
-  vivify_580:
-    set $P1924, $P1923["EXPR"]
-    unless_null $P1924, vivify_581
-    $P1924 = root_new ['parrot';'ResizablePMCArray']
-  vivify_581:
-    set $P1925, $P1924[0]
-    unless_null $P1925, vivify_582
-    new $P1925, "Undef"
-  vivify_582:
-    $P1926 = $P1925."ast"()
-    set $P1919, $P1926
-  if_1920_end:
-    $P1930 = $P1918."!make"($P1919)
-    .return ($P1930)
-  control_1915:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1931, exception, "payload"
-    .return ($P1931)
+.sub "circumfix:sym<( )>"  :subid("107_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2011
+.annotate 'line', 721
+    new $P2010, 'ExceptionHandler'
+    set_addr $P2010, control_2009
+    $P2010."handle_types"(.CONTROL_RETURN)
+    push_eh $P2010
+    .lex "self", self
+    .lex "$/", param_2011
+.annotate 'line', 722
+    find_lex $P2012, "$/"
+.annotate 'line', 723
+    find_lex $P2015, "$/"
+    unless_null $P2015, vivify_605
+    $P2015 = root_new ['parrot';'Hash']
+  vivify_605:
+    set $P2016, $P2015["EXPR"]
+    unless_null $P2016, vivify_606
+    new $P2016, "Undef"
+  vivify_606:
+    if $P2016, if_2014
+.annotate 'line', 724
+    get_hll_global $P2021, ["PAST"], "Op"
+    find_lex $P2022, "$/"
+    $P2023 = $P2021."new"("list" :named("pasttype"), $P2022 :named("node"))
+    set $P2013, $P2023
+.annotate 'line', 723
+    goto if_2014_end
+  if_2014:
+    find_lex $P2017, "$/"
+    unless_null $P2017, vivify_607
+    $P2017 = root_new ['parrot';'Hash']
+  vivify_607:
+    set $P2018, $P2017["EXPR"]
+    unless_null $P2018, vivify_608
+    $P2018 = root_new ['parrot';'ResizablePMCArray']
+  vivify_608:
+    set $P2019, $P2018[0]
+    unless_null $P2019, vivify_609
+    new $P2019, "Undef"
+  vivify_609:
+    $P2020 = $P2019."ast"()
+    set $P2013, $P2020
+  if_2014_end:
+    $P2024 = $P2012."!make"($P2013)
+.annotate 'line', 721
+    .return ($P2024)
+  control_2009:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2025, exception, "payload"
+    .return ($P2025)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<[ ]>"  :subid("103_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1935
-.annotate 'line', 0
-    new $P1934, 'ExceptionHandler'
-    set_addr $P1934, control_1933
-    $P1934."handle_types"(.CONTROL_RETURN)
-    push_eh $P1934
-    .lex "self", self
-    .lex "$/", param_1935
-    new $P1936, "Undef"
-    .lex "$past", $P1936
-    find_lex $P1937, "$past"
-    find_lex $P1939, "$/"
-    unless_null $P1939, vivify_583
-    $P1939 = root_new ['parrot';'Hash']
-  vivify_583:
-    set $P1940, $P1939["EXPR"]
-    unless_null $P1940, vivify_584
-    new $P1940, "Undef"
-  vivify_584:
-    if $P1940, if_1938
-    get_hll_global $P1952, ["PAST"], "Op"
-    $P1953 = $P1952."new"("list" :named("pasttype"))
-    store_lex "$past", $P1953
-    goto if_1938_end
-  if_1938:
-    find_lex $P1941, "$/"
-    unless_null $P1941, vivify_585
-    $P1941 = root_new ['parrot';'Hash']
-  vivify_585:
-    set $P1942, $P1941["EXPR"]
-    unless_null $P1942, vivify_586
-    $P1942 = root_new ['parrot';'ResizablePMCArray']
-  vivify_586:
-    set $P1943, $P1942[0]
-    unless_null $P1943, vivify_587
-    new $P1943, "Undef"
-  vivify_587:
-    $P1944 = $P1943."ast"()
-    store_lex "$past", $P1944
-    find_lex $P1946, "$past"
-    $S1947 = $P1946."name"()
-    isne $I1948, $S1947, "&infix:<,>"
-    unless $I1948, if_1945_end
-    get_hll_global $P1949, ["PAST"], "Op"
-    find_lex $P1950, "$past"
-    $P1951 = $P1949."new"($P1950, "list" :named("pasttype"))
-    store_lex "$past", $P1951
-  if_1945_end:
-  if_1938_end:
-    find_lex $P1954, "$past"
-    $P1954."name"("&circumfix:<[ ]>")
-    find_lex $P1955, "$/"
-    find_lex $P1956, "$past"
-    $P1957 = $P1955."!make"($P1956)
-    .return ($P1957)
-  control_1933:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1958, exception, "payload"
-    .return ($P1958)
+.sub "circumfix:sym<[ ]>"  :subid("108_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2029
+.annotate 'line', 727
+    new $P2028, 'ExceptionHandler'
+    set_addr $P2028, control_2027
+    $P2028."handle_types"(.CONTROL_RETURN)
+    push_eh $P2028
+    .lex "self", self
+    .lex "$/", param_2029
+.annotate 'line', 728
+    new $P2030, "Undef"
+    .lex "$past", $P2030
+.annotate 'line', 727
+    find_lex $P2031, "$past"
+.annotate 'line', 729
+    find_lex $P2033, "$/"
+    unless_null $P2033, vivify_610
+    $P2033 = root_new ['parrot';'Hash']
+  vivify_610:
+    set $P2034, $P2033["EXPR"]
+    unless_null $P2034, vivify_611
+    new $P2034, "Undef"
+  vivify_611:
+    if $P2034, if_2032
+.annotate 'line', 736
+    get_hll_global $P2046, ["PAST"], "Op"
+    $P2047 = $P2046."new"("list" :named("pasttype"))
+    store_lex "$past", $P2047
+.annotate 'line', 735
+    goto if_2032_end
+  if_2032:
+.annotate 'line', 730
+    find_lex $P2035, "$/"
+    unless_null $P2035, vivify_612
+    $P2035 = root_new ['parrot';'Hash']
+  vivify_612:
+    set $P2036, $P2035["EXPR"]
+    unless_null $P2036, vivify_613
+    $P2036 = root_new ['parrot';'ResizablePMCArray']
+  vivify_613:
+    set $P2037, $P2036[0]
+    unless_null $P2037, vivify_614
+    new $P2037, "Undef"
+  vivify_614:
+    $P2038 = $P2037."ast"()
+    store_lex "$past", $P2038
+.annotate 'line', 731
+    find_lex $P2040, "$past"
+    $S2041 = $P2040."name"()
+    isne $I2042, $S2041, "&infix:<,>"
+    unless $I2042, if_2039_end
+.annotate 'line', 732
+    get_hll_global $P2043, ["PAST"], "Op"
+    find_lex $P2044, "$past"
+    $P2045 = $P2043."new"($P2044, "list" :named("pasttype"))
+    store_lex "$past", $P2045
+  if_2039_end:
+  if_2032_end:
+.annotate 'line', 738
+    find_lex $P2048, "$past"
+    $P2048."name"("&circumfix:<[ ]>")
+.annotate 'line', 739
+    find_lex $P2049, "$/"
+    find_lex $P2050, "$past"
+    $P2051 = $P2049."!make"($P2050)
+.annotate 'line', 727
+    .return ($P2051)
+  control_2027:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2052, exception, "payload"
+    .return ($P2052)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<ang>"  :subid("104_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1962
-.annotate 'line', 0
-    new $P1961, 'ExceptionHandler'
-    set_addr $P1961, control_1960
-    $P1961."handle_types"(.CONTROL_RETURN)
-    push_eh $P1961
-    .lex "self", self
-    .lex "$/", param_1962
-    find_lex $P1963, "$/"
-    find_lex $P1964, "$/"
-    unless_null $P1964, vivify_588
-    $P1964 = root_new ['parrot';'Hash']
-  vivify_588:
-    set $P1965, $P1964["quote_EXPR"]
-    unless_null $P1965, vivify_589
-    new $P1965, "Undef"
-  vivify_589:
-    $P1966 = $P1965."ast"()
-    $P1967 = $P1963."!make"($P1966)
-    .return ($P1967)
-  control_1960:
+.sub "circumfix:sym<ang>"  :subid("109_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2056
+.annotate 'line', 742
+    new $P2055, 'ExceptionHandler'
+    set_addr $P2055, control_2054
+    $P2055."handle_types"(.CONTROL_RETURN)
+    push_eh $P2055
+    .lex "self", self
+    .lex "$/", param_2056
+    find_lex $P2057, "$/"
+    find_lex $P2058, "$/"
+    unless_null $P2058, vivify_615
+    $P2058 = root_new ['parrot';'Hash']
+  vivify_615:
+    set $P2059, $P2058["quote_EXPR"]
+    unless_null $P2059, vivify_616
+    new $P2059, "Undef"
+  vivify_616:
+    $P2060 = $P2059."ast"()
+    $P2061 = $P2057."!make"($P2060)
+    .return ($P2061)
+  control_2054:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1968, exception, "payload"
-    .return ($P1968)
+    getattribute $P2062, exception, "payload"
+    .return ($P2062)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("105_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1972
-.annotate 'line', 0
-    new $P1971, 'ExceptionHandler'
-    set_addr $P1971, control_1970
-    $P1971."handle_types"(.CONTROL_RETURN)
-    push_eh $P1971
-    .lex "self", self
-    .lex "$/", param_1972
-    find_lex $P1973, "$/"
-    find_lex $P1974, "$/"
-    unless_null $P1974, vivify_590
-    $P1974 = root_new ['parrot';'Hash']
-  vivify_590:
-    set $P1975, $P1974["quote_EXPR"]
-    unless_null $P1975, vivify_591
-    new $P1975, "Undef"
-  vivify_591:
-    $P1976 = $P1975."ast"()
-    $P1977 = $P1973."!make"($P1976)
-    .return ($P1977)
-  control_1970:
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("110_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2066
+.annotate 'line', 743
+    new $P2065, 'ExceptionHandler'
+    set_addr $P2065, control_2064
+    $P2065."handle_types"(.CONTROL_RETURN)
+    push_eh $P2065
+    .lex "self", self
+    .lex "$/", param_2066
+    find_lex $P2067, "$/"
+    find_lex $P2068, "$/"
+    unless_null $P2068, vivify_617
+    $P2068 = root_new ['parrot';'Hash']
+  vivify_617:
+    set $P2069, $P2068["quote_EXPR"]
+    unless_null $P2069, vivify_618
+    new $P2069, "Undef"
+  vivify_618:
+    $P2070 = $P2069."ast"()
+    $P2071 = $P2067."!make"($P2070)
+    .return ($P2071)
+  control_2064:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1978, exception, "payload"
-    .return ($P1978)
+    getattribute $P2072, exception, "payload"
+    .return ($P2072)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<{ }>"  :subid("106_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_1982
-.annotate 'line', 0
-    new $P1981, 'ExceptionHandler'
-    set_addr $P1981, control_1980
-    $P1981."handle_types"(.CONTROL_RETURN)
-    push_eh $P1981
-    .lex "self", self
-    .lex "$/", param_1982
-    new $P1983, "Undef"
-    .lex "$past", $P1983
-    find_lex $P1986, "$/"
-    unless_null $P1986, vivify_592
-    $P1986 = root_new ['parrot';'Hash']
-  vivify_592:
-    set $P1987, $P1986["pblock"]
-    unless_null $P1987, vivify_593
-    $P1987 = root_new ['parrot';'Hash']
-  vivify_593:
-    set $P1988, $P1987["blockoid"]
-    unless_null $P1988, vivify_594
-    $P1988 = root_new ['parrot';'Hash']
-  vivify_594:
-    set $P1989, $P1988["statementlist"]
-    unless_null $P1989, vivify_595
-    $P1989 = root_new ['parrot';'Hash']
-  vivify_595:
-    set $P1990, $P1989["statement"]
-    unless_null $P1990, vivify_596
-    new $P1990, "Undef"
-  vivify_596:
-    set $N1991, $P1990
-    isgt $I1992, $N1991, 0.0
-    if $I1992, if_1985
-    $P1996 = "vivitype"("%")
-    set $P1984, $P1996
-    goto if_1985_end
-  if_1985:
-    find_lex $P1993, "$/"
-    unless_null $P1993, vivify_597
-    $P1993 = root_new ['parrot';'Hash']
-  vivify_597:
-    set $P1994, $P1993["pblock"]
-    unless_null $P1994, vivify_598
-    new $P1994, "Undef"
-  vivify_598:
-    $P1995 = $P1994."ast"()
-    set $P1984, $P1995
-  if_1985_end:
-    store_lex "$past", $P1984
-    new $P1997, "Integer"
-    assign $P1997, 1
-    find_lex $P1998, "$past"
-    unless_null $P1998, vivify_599
-    $P1998 = root_new ['parrot';'Hash']
-    store_lex "$past", $P1998
-  vivify_599:
-    set $P1998["bareblock"], $P1997
-    find_lex $P1999, "$/"
-    find_lex $P2000, "$past"
-    $P2001 = $P1999."!make"($P2000)
-    .return ($P2001)
-  control_1980:
+.sub "circumfix:sym<{ }>"  :subid("111_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2076
+.annotate 'line', 745
+    new $P2075, 'ExceptionHandler'
+    set_addr $P2075, control_2074
+    $P2075."handle_types"(.CONTROL_RETURN)
+    push_eh $P2075
+    .lex "self", self
+    .lex "$/", param_2076
+.annotate 'line', 746
+    new $P2077, "Undef"
+    .lex "$past", $P2077
+    find_lex $P2080, "$/"
+    unless_null $P2080, vivify_619
+    $P2080 = root_new ['parrot';'Hash']
+  vivify_619:
+    set $P2081, $P2080["pblock"]
+    unless_null $P2081, vivify_620
+    $P2081 = root_new ['parrot';'Hash']
+  vivify_620:
+    set $P2082, $P2081["blockoid"]
+    unless_null $P2082, vivify_621
+    $P2082 = root_new ['parrot';'Hash']
+  vivify_621:
+    set $P2083, $P2082["statementlist"]
+    unless_null $P2083, vivify_622
+    $P2083 = root_new ['parrot';'Hash']
+  vivify_622:
+    set $P2084, $P2083["statement"]
+    unless_null $P2084, vivify_623
+    new $P2084, "Undef"
+  vivify_623:
+    set $N2085, $P2084
+    isgt $I2086, $N2085, 0.0
+    if $I2086, if_2079
+.annotate 'line', 748
+    $P2090 = "vivitype"("%")
+    set $P2078, $P2090
+.annotate 'line', 746
+    goto if_2079_end
+  if_2079:
+.annotate 'line', 747
+    find_lex $P2087, "$/"
+    unless_null $P2087, vivify_624
+    $P2087 = root_new ['parrot';'Hash']
+  vivify_624:
+    set $P2088, $P2087["pblock"]
+    unless_null $P2088, vivify_625
+    new $P2088, "Undef"
+  vivify_625:
+    $P2089 = $P2088."ast"()
+    set $P2078, $P2089
+  if_2079_end:
+    store_lex "$past", $P2078
+.annotate 'line', 749
+    new $P2091, "Integer"
+    assign $P2091, 1
+    find_lex $P2092, "$past"
+    unless_null $P2092, vivify_626
+    $P2092 = root_new ['parrot';'Hash']
+    store_lex "$past", $P2092
+  vivify_626:
+    set $P2092["bareblock"], $P2091
+.annotate 'line', 750
+    find_lex $P2093, "$/"
+    find_lex $P2094, "$past"
+    $P2095 = $P2093."!make"($P2094)
+.annotate 'line', 745
+    .return ($P2095)
+  control_2074:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2002, exception, "payload"
-    .return ($P2002)
+    getattribute $P2096, exception, "payload"
+    .return ($P2096)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<sigil>"  :subid("107_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2006
-.annotate 'line', 0
-    new $P2005, 'ExceptionHandler'
-    set_addr $P2005, control_2004
-    $P2005."handle_types"(.CONTROL_RETURN)
-    push_eh $P2005
-    .lex "self", self
-    .lex "$/", param_2006
-    new $P2007, "Undef"
-    .lex "$name", $P2007
-    find_lex $P2010, "$/"
-    unless_null $P2010, vivify_600
-    $P2010 = root_new ['parrot';'Hash']
-  vivify_600:
-    set $P2011, $P2010["sigil"]
-    unless_null $P2011, vivify_601
-    new $P2011, "Undef"
-  vivify_601:
-    set $S2012, $P2011
-    iseq $I2013, $S2012, "@"
-    if $I2013, if_2009
-    find_lex $P2017, "$/"
-    unless_null $P2017, vivify_602
-    $P2017 = root_new ['parrot';'Hash']
-  vivify_602:
-    set $P2018, $P2017["sigil"]
-    unless_null $P2018, vivify_603
-    new $P2018, "Undef"
-  vivify_603:
-    set $S2019, $P2018
-    iseq $I2020, $S2019, "%"
-    if $I2020, if_2016
-    new $P2022, "String"
-    assign $P2022, "item"
-    set $P2015, $P2022
-    goto if_2016_end
-  if_2016:
-    new $P2021, "String"
-    assign $P2021, "hash"
-    set $P2015, $P2021
-  if_2016_end:
-    set $P2008, $P2015
-    goto if_2009_end
-  if_2009:
-    new $P2014, "String"
-    assign $P2014, "list"
-    set $P2008, $P2014
-  if_2009_end:
-    store_lex "$name", $P2008
-    find_lex $P2023, "$/"
-    get_hll_global $P2024, ["PAST"], "Op"
-    find_lex $P2025, "$name"
-    find_lex $P2026, "$/"
-    unless_null $P2026, vivify_604
-    $P2026 = root_new ['parrot';'Hash']
-  vivify_604:
-    set $P2027, $P2026["semilist"]
-    unless_null $P2027, vivify_605
-    new $P2027, "Undef"
-  vivify_605:
-    $P2028 = $P2027."ast"()
-    $P2029 = $P2024."new"($P2028, "callmethod" :named("pasttype"), $P2025 :named("name"))
-    $P2030 = $P2023."!make"($P2029)
-    .return ($P2030)
-  control_2004:
+.sub "circumfix:sym<sigil>"  :subid("112_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2100
+.annotate 'line', 753
+    new $P2099, 'ExceptionHandler'
+    set_addr $P2099, control_2098
+    $P2099."handle_types"(.CONTROL_RETURN)
+    push_eh $P2099
+    .lex "self", self
+    .lex "$/", param_2100
+.annotate 'line', 754
+    new $P2101, "Undef"
+    .lex "$name", $P2101
+    find_lex $P2104, "$/"
+    unless_null $P2104, vivify_627
+    $P2104 = root_new ['parrot';'Hash']
+  vivify_627:
+    set $P2105, $P2104["sigil"]
+    unless_null $P2105, vivify_628
+    new $P2105, "Undef"
+  vivify_628:
+    set $S2106, $P2105
+    iseq $I2107, $S2106, "@"
+    if $I2107, if_2103
+.annotate 'line', 755
+    find_lex $P2111, "$/"
+    unless_null $P2111, vivify_629
+    $P2111 = root_new ['parrot';'Hash']
+  vivify_629:
+    set $P2112, $P2111["sigil"]
+    unless_null $P2112, vivify_630
+    new $P2112, "Undef"
+  vivify_630:
+    set $S2113, $P2112
+    iseq $I2114, $S2113, "%"
+    if $I2114, if_2110
+    new $P2116, "String"
+    assign $P2116, "item"
+    set $P2109, $P2116
+    goto if_2110_end
+  if_2110:
+    new $P2115, "String"
+    assign $P2115, "hash"
+    set $P2109, $P2115
+  if_2110_end:
+    set $P2102, $P2109
+.annotate 'line', 754
+    goto if_2103_end
+  if_2103:
+    new $P2108, "String"
+    assign $P2108, "list"
+    set $P2102, $P2108
+  if_2103_end:
+    store_lex "$name", $P2102
+.annotate 'line', 757
+    find_lex $P2117, "$/"
+    get_hll_global $P2118, ["PAST"], "Op"
+    find_lex $P2119, "$name"
+    find_lex $P2120, "$/"
+    unless_null $P2120, vivify_631
+    $P2120 = root_new ['parrot';'Hash']
+  vivify_631:
+    set $P2121, $P2120["semilist"]
+    unless_null $P2121, vivify_632
+    new $P2121, "Undef"
+  vivify_632:
+    $P2122 = $P2121."ast"()
+    $P2123 = $P2118."new"($P2122, "callmethod" :named("pasttype"), $P2119 :named("name"))
+    $P2124 = $P2117."!make"($P2123)
+.annotate 'line', 753
+    .return ($P2124)
+  control_2098:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2031, exception, "payload"
-    .return ($P2031)
+    getattribute $P2125, exception, "payload"
+    .return ($P2125)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "semilist"  :subid("108_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2035
-.annotate 'line', 0
-    new $P2034, 'ExceptionHandler'
-    set_addr $P2034, control_2033
-    $P2034."handle_types"(.CONTROL_RETURN)
-    push_eh $P2034
-    .lex "self", self
-    .lex "$/", param_2035
-    find_lex $P2036, "$/"
-    find_lex $P2037, "$/"
-    unless_null $P2037, vivify_606
-    $P2037 = root_new ['parrot';'Hash']
-  vivify_606:
-    set $P2038, $P2037["statement"]
-    unless_null $P2038, vivify_607
-    new $P2038, "Undef"
-  vivify_607:
-    $P2039 = $P2038."ast"()
-    $P2040 = $P2036."!make"($P2039)
-    .return ($P2040)
-  control_2033:
+.sub "semilist"  :subid("113_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2129
+.annotate 'line', 760
+    new $P2128, 'ExceptionHandler'
+    set_addr $P2128, control_2127
+    $P2128."handle_types"(.CONTROL_RETURN)
+    push_eh $P2128
+    .lex "self", self
+    .lex "$/", param_2129
+    find_lex $P2130, "$/"
+    find_lex $P2131, "$/"
+    unless_null $P2131, vivify_633
+    $P2131 = root_new ['parrot';'Hash']
+  vivify_633:
+    set $P2132, $P2131["statement"]
+    unless_null $P2132, vivify_634
+    new $P2132, "Undef"
+  vivify_634:
+    $P2133 = $P2132."ast"()
+    $P2134 = $P2130."!make"($P2133)
+    .return ($P2134)
+  control_2127:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2041, exception, "payload"
-    .return ($P2041)
+    getattribute $P2135, exception, "payload"
+    .return ($P2135)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<[ ]>"  :subid("109_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2045
-.annotate 'line', 0
-    new $P2044, 'ExceptionHandler'
-    set_addr $P2044, control_2043
-    $P2044."handle_types"(.CONTROL_RETURN)
-    push_eh $P2044
-    .lex "self", self
-    .lex "$/", param_2045
-    find_lex $P2046, "$/"
-    get_hll_global $P2047, ["PAST"], "Var"
-    find_lex $P2048, "$/"
-    unless_null $P2048, vivify_608
-    $P2048 = root_new ['parrot';'Hash']
-  vivify_608:
-    set $P2049, $P2048["EXPR"]
-    unless_null $P2049, vivify_609
-    new $P2049, "Undef"
-  vivify_609:
-    $P2050 = $P2049."ast"()
-    $P2051 = "vivitype"("@")
-    $P2052 = $P2047."new"($P2050, "keyed_int" :named("scope"), "Undef" :named("viviself"), $P2051 :named("vivibase"))
-    $P2053 = $P2046."!make"($P2052)
-    .return ($P2053)
-  control_2043:
+.sub "postcircumfix:sym<[ ]>"  :subid("114_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2139
+.annotate 'line', 762
+    new $P2138, 'ExceptionHandler'
+    set_addr $P2138, control_2137
+    $P2138."handle_types"(.CONTROL_RETURN)
+    push_eh $P2138
+    .lex "self", self
+    .lex "$/", param_2139
+.annotate 'line', 763
+    find_lex $P2140, "$/"
+    get_hll_global $P2141, ["PAST"], "Var"
+    find_lex $P2142, "$/"
+    unless_null $P2142, vivify_635
+    $P2142 = root_new ['parrot';'Hash']
+  vivify_635:
+    set $P2143, $P2142["EXPR"]
+    unless_null $P2143, vivify_636
+    new $P2143, "Undef"
+  vivify_636:
+    $P2144 = $P2143."ast"()
+.annotate 'line', 765
+    $P2145 = "vivitype"("@")
+    $P2146 = $P2141."new"($P2144, "keyed_int" :named("scope"), "Undef" :named("viviself"), $P2145 :named("vivibase"))
+.annotate 'line', 763
+    $P2147 = $P2140."!make"($P2146)
+.annotate 'line', 762
+    .return ($P2147)
+  control_2137:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2054, exception, "payload"
-    .return ($P2054)
+    getattribute $P2148, exception, "payload"
+    .return ($P2148)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<{ }>"  :subid("110_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2058
-.annotate 'line', 0
-    new $P2057, 'ExceptionHandler'
-    set_addr $P2057, control_2056
-    $P2057."handle_types"(.CONTROL_RETURN)
-    push_eh $P2057
-    .lex "self", self
-    .lex "$/", param_2058
-    find_lex $P2059, "$/"
-    get_hll_global $P2060, ["PAST"], "Var"
-    find_lex $P2061, "$/"
-    unless_null $P2061, vivify_610
-    $P2061 = root_new ['parrot';'Hash']
-  vivify_610:
-    set $P2062, $P2061["EXPR"]
-    unless_null $P2062, vivify_611
-    new $P2062, "Undef"
-  vivify_611:
-    $P2063 = $P2062."ast"()
-    $P2064 = "vivitype"("%")
-    $P2065 = $P2060."new"($P2063, "keyed" :named("scope"), "Undef" :named("viviself"), $P2064 :named("vivibase"))
-    $P2066 = $P2059."!make"($P2065)
-    .return ($P2066)
-  control_2056:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P2067, exception, "payload"
-    .return ($P2067)
+.sub "postcircumfix:sym<{ }>"  :subid("115_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2152
+.annotate 'line', 768
+    new $P2151, 'ExceptionHandler'
+    set_addr $P2151, control_2150
+    $P2151."handle_types"(.CONTROL_RETURN)
+    push_eh $P2151
+    .lex "self", self
+    .lex "$/", param_2152
+.annotate 'line', 769
+    find_lex $P2153, "$/"
+    get_hll_global $P2154, ["PAST"], "Var"
+    find_lex $P2155, "$/"
+    unless_null $P2155, vivify_637
+    $P2155 = root_new ['parrot';'Hash']
+  vivify_637:
+    set $P2156, $P2155["EXPR"]
+    unless_null $P2156, vivify_638
+    new $P2156, "Undef"
+  vivify_638:
+    $P2157 = $P2156."ast"()
+.annotate 'line', 771
+    $P2158 = "vivitype"("%")
+    $P2159 = $P2154."new"($P2157, "keyed" :named("scope"), "Undef" :named("viviself"), $P2158 :named("vivibase"))
+.annotate 'line', 769
+    $P2160 = $P2153."!make"($P2159)
+.annotate 'line', 768
+    .return ($P2160)
+  control_2150:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2161, exception, "payload"
+    .return ($P2161)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<ang>"  :subid("111_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2071
-.annotate 'line', 0
-    new $P2070, 'ExceptionHandler'
-    set_addr $P2070, control_2069
-    $P2070."handle_types"(.CONTROL_RETURN)
-    push_eh $P2070
-    .lex "self", self
-    .lex "$/", param_2071
-    find_lex $P2072, "$/"
-    get_hll_global $P2073, ["PAST"], "Var"
-    find_lex $P2074, "$/"
-    unless_null $P2074, vivify_612
-    $P2074 = root_new ['parrot';'Hash']
-  vivify_612:
-    set $P2075, $P2074["quote_EXPR"]
-    unless_null $P2075, vivify_613
-    new $P2075, "Undef"
-  vivify_613:
-    $P2076 = $P2075."ast"()
-    $P2077 = "vivitype"("%")
-    $P2078 = $P2073."new"($P2076, "keyed" :named("scope"), "Undef" :named("viviself"), $P2077 :named("vivibase"))
-    $P2079 = $P2072."!make"($P2078)
-    .return ($P2079)
-  control_2069:
+.sub "postcircumfix:sym<ang>"  :subid("116_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2165
+.annotate 'line', 774
+    new $P2164, 'ExceptionHandler'
+    set_addr $P2164, control_2163
+    $P2164."handle_types"(.CONTROL_RETURN)
+    push_eh $P2164
+    .lex "self", self
+    .lex "$/", param_2165
+.annotate 'line', 775
+    find_lex $P2166, "$/"
+    get_hll_global $P2167, ["PAST"], "Var"
+    find_lex $P2168, "$/"
+    unless_null $P2168, vivify_639
+    $P2168 = root_new ['parrot';'Hash']
+  vivify_639:
+    set $P2169, $P2168["quote_EXPR"]
+    unless_null $P2169, vivify_640
+    new $P2169, "Undef"
+  vivify_640:
+    $P2170 = $P2169."ast"()
+.annotate 'line', 777
+    $P2171 = "vivitype"("%")
+    $P2172 = $P2167."new"($P2170, "keyed" :named("scope"), "Undef" :named("viviself"), $P2171 :named("vivibase"))
+.annotate 'line', 775
+    $P2173 = $P2166."!make"($P2172)
+.annotate 'line', 774
+    .return ($P2173)
+  control_2163:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2080, exception, "payload"
-    .return ($P2080)
+    getattribute $P2174, exception, "payload"
+    .return ($P2174)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<( )>"  :subid("112_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2084
-.annotate 'line', 0
-    new $P2083, 'ExceptionHandler'
-    set_addr $P2083, control_2082
-    $P2083."handle_types"(.CONTROL_RETURN)
-    push_eh $P2083
-    .lex "self", self
-    .lex "$/", param_2084
-    find_lex $P2085, "$/"
-    find_lex $P2086, "$/"
-    unless_null $P2086, vivify_614
-    $P2086 = root_new ['parrot';'Hash']
-  vivify_614:
-    set $P2087, $P2086["arglist"]
-    unless_null $P2087, vivify_615
-    new $P2087, "Undef"
-  vivify_615:
-    $P2088 = $P2087."ast"()
-    $P2089 = $P2085."!make"($P2088)
-    .return ($P2089)
-  control_2082:
+.sub "postcircumfix:sym<( )>"  :subid("117_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2178
+.annotate 'line', 780
+    new $P2177, 'ExceptionHandler'
+    set_addr $P2177, control_2176
+    $P2177."handle_types"(.CONTROL_RETURN)
+    push_eh $P2177
+    .lex "self", self
+    .lex "$/", param_2178
+.annotate 'line', 781
+    find_lex $P2179, "$/"
+    find_lex $P2180, "$/"
+    unless_null $P2180, vivify_641
+    $P2180 = root_new ['parrot';'Hash']
+  vivify_641:
+    set $P2181, $P2180["arglist"]
+    unless_null $P2181, vivify_642
+    new $P2181, "Undef"
+  vivify_642:
+    $P2182 = $P2181."ast"()
+    $P2183 = $P2179."!make"($P2182)
+.annotate 'line', 780
+    .return ($P2183)
+  control_2176:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2090, exception, "payload"
-    .return ($P2090)
+    getattribute $P2184, exception, "payload"
+    .return ($P2184)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "value"  :subid("113_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2094
-.annotate 'line', 0
-    new $P2093, 'ExceptionHandler'
-    set_addr $P2093, control_2092
-    $P2093."handle_types"(.CONTROL_RETURN)
-    push_eh $P2093
-    .lex "self", self
-    .lex "$/", param_2094
-    find_lex $P2095, "$/"
-    find_lex $P2098, "$/"
-    unless_null $P2098, vivify_616
-    $P2098 = root_new ['parrot';'Hash']
-  vivify_616:
-    set $P2099, $P2098["quote"]
-    unless_null $P2099, vivify_617
-    new $P2099, "Undef"
-  vivify_617:
-    if $P2099, if_2097
-    find_lex $P2103, "$/"
-    unless_null $P2103, vivify_618
-    $P2103 = root_new ['parrot';'Hash']
-  vivify_618:
-    set $P2104, $P2103["number"]
-    unless_null $P2104, vivify_619
-    new $P2104, "Undef"
-  vivify_619:
-    $P2105 = $P2104."ast"()
-    set $P2096, $P2105
-    goto if_2097_end
-  if_2097:
-    find_lex $P2100, "$/"
-    unless_null $P2100, vivify_620
-    $P2100 = root_new ['parrot';'Hash']
-  vivify_620:
-    set $P2101, $P2100["quote"]
-    unless_null $P2101, vivify_621
-    new $P2101, "Undef"
-  vivify_621:
-    $P2102 = $P2101."ast"()
-    set $P2096, $P2102
-  if_2097_end:
-    $P2106 = $P2095."!make"($P2096)
-    .return ($P2106)
-  control_2092:
+.sub "value"  :subid("118_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2188
+.annotate 'line', 784
+    new $P2187, 'ExceptionHandler'
+    set_addr $P2187, control_2186
+    $P2187."handle_types"(.CONTROL_RETURN)
+    push_eh $P2187
+    .lex "self", self
+    .lex "$/", param_2188
+.annotate 'line', 785
+    find_lex $P2189, "$/"
+    find_lex $P2192, "$/"
+    unless_null $P2192, vivify_643
+    $P2192 = root_new ['parrot';'Hash']
+  vivify_643:
+    set $P2193, $P2192["quote"]
+    unless_null $P2193, vivify_644
+    new $P2193, "Undef"
+  vivify_644:
+    if $P2193, if_2191
+    find_lex $P2197, "$/"
+    unless_null $P2197, vivify_645
+    $P2197 = root_new ['parrot';'Hash']
+  vivify_645:
+    set $P2198, $P2197["number"]
+    unless_null $P2198, vivify_646
+    new $P2198, "Undef"
+  vivify_646:
+    $P2199 = $P2198."ast"()
+    set $P2190, $P2199
+    goto if_2191_end
+  if_2191:
+    find_lex $P2194, "$/"
+    unless_null $P2194, vivify_647
+    $P2194 = root_new ['parrot';'Hash']
+  vivify_647:
+    set $P2195, $P2194["quote"]
+    unless_null $P2195, vivify_648
+    new $P2195, "Undef"
+  vivify_648:
+    $P2196 = $P2195."ast"()
+    set $P2190, $P2196
+  if_2191_end:
+    $P2200 = $P2189."!make"($P2190)
+.annotate 'line', 784
+    .return ($P2200)
+  control_2186:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2107, exception, "payload"
-    .return ($P2107)
+    getattribute $P2201, exception, "payload"
+    .return ($P2201)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "number"  :subid("114_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2111
-.annotate 'line', 0
-    new $P2110, 'ExceptionHandler'
-    set_addr $P2110, control_2109
-    $P2110."handle_types"(.CONTROL_RETURN)
-    push_eh $P2110
+.sub "number"  :subid("119_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2205
+.annotate 'line', 788
+    new $P2204, 'ExceptionHandler'
+    set_addr $P2204, control_2203
+    $P2204."handle_types"(.CONTROL_RETURN)
+    push_eh $P2204
     .lex "self", self
-    .lex "$/", param_2111
-    new $P2112, "Undef"
-    .lex "$value", $P2112
-    find_lex $P2115, "$/"
-    unless_null $P2115, vivify_622
-    $P2115 = root_new ['parrot';'Hash']
-  vivify_622:
-    set $P2116, $P2115["dec_number"]
-    unless_null $P2116, vivify_623
-    new $P2116, "Undef"
-  vivify_623:
-    if $P2116, if_2114
-    find_lex $P2120, "$/"
-    unless_null $P2120, vivify_624
-    $P2120 = root_new ['parrot';'Hash']
-  vivify_624:
-    set $P2121, $P2120["integer"]
-    unless_null $P2121, vivify_625
-    new $P2121, "Undef"
-  vivify_625:
-    $P2122 = $P2121."ast"()
-    set $P2113, $P2122
-    goto if_2114_end
-  if_2114:
-    find_lex $P2117, "$/"
-    unless_null $P2117, vivify_626
-    $P2117 = root_new ['parrot';'Hash']
-  vivify_626:
-    set $P2118, $P2117["dec_number"]
-    unless_null $P2118, vivify_627
-    new $P2118, "Undef"
-  vivify_627:
-    $P2119 = $P2118."ast"()
-    set $P2113, $P2119
-  if_2114_end:
-    store_lex "$value", $P2113
-    find_lex $P2124, "$/"
-    unless_null $P2124, vivify_628
-    $P2124 = root_new ['parrot';'Hash']
-  vivify_628:
-    set $P2125, $P2124["sign"]
-    unless_null $P2125, vivify_629
-    new $P2125, "Undef"
-  vivify_629:
-    set $S2126, $P2125
-    iseq $I2127, $S2126, "-"
-    unless $I2127, if_2123_end
-    find_lex $P2128, "$value"
-    neg $P2129, $P2128
-    store_lex "$value", $P2129
-  if_2123_end:
-    find_lex $P2130, "$/"
-    get_hll_global $P2131, ["PAST"], "Val"
-    find_lex $P2132, "$value"
-    $P2133 = $P2131."new"($P2132 :named("value"))
-    $P2134 = $P2130."!make"($P2133)
-    .return ($P2134)
-  control_2109:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P2135, exception, "payload"
-    .return ($P2135)
+    .lex "$/", param_2205
+.annotate 'line', 789
+    new $P2206, "Undef"
+    .lex "$value", $P2206
+    find_lex $P2209, "$/"
+    unless_null $P2209, vivify_649
+    $P2209 = root_new ['parrot';'Hash']
+  vivify_649:
+    set $P2210, $P2209["dec_number"]
+    unless_null $P2210, vivify_650
+    new $P2210, "Undef"
+  vivify_650:
+    if $P2210, if_2208
+    find_lex $P2214, "$/"
+    unless_null $P2214, vivify_651
+    $P2214 = root_new ['parrot';'Hash']
+  vivify_651:
+    set $P2215, $P2214["integer"]
+    unless_null $P2215, vivify_652
+    new $P2215, "Undef"
+  vivify_652:
+    $P2216 = $P2215."ast"()
+    set $P2207, $P2216
+    goto if_2208_end
+  if_2208:
+    find_lex $P2211, "$/"
+    unless_null $P2211, vivify_653
+    $P2211 = root_new ['parrot';'Hash']
+  vivify_653:
+    set $P2212, $P2211["dec_number"]
+    unless_null $P2212, vivify_654
+    new $P2212, "Undef"
+  vivify_654:
+    $P2213 = $P2212."ast"()
+    set $P2207, $P2213
+  if_2208_end:
+    store_lex "$value", $P2207
+.annotate 'line', 790
+    find_lex $P2218, "$/"
+    unless_null $P2218, vivify_655
+    $P2218 = root_new ['parrot';'Hash']
+  vivify_655:
+    set $P2219, $P2218["sign"]
+    unless_null $P2219, vivify_656
+    new $P2219, "Undef"
+  vivify_656:
+    set $S2220, $P2219
+    iseq $I2221, $S2220, "-"
+    unless $I2221, if_2217_end
+    find_lex $P2222, "$value"
+    neg $P2223, $P2222
+    store_lex "$value", $P2223
+  if_2217_end:
+.annotate 'line', 791
+    find_lex $P2224, "$/"
+    get_hll_global $P2225, ["PAST"], "Val"
+    find_lex $P2226, "$value"
+    $P2227 = $P2225."new"($P2226 :named("value"))
+    $P2228 = $P2224."!make"($P2227)
+.annotate 'line', 788
+    .return ($P2228)
+  control_2203:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2229, exception, "payload"
+    .return ($P2229)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<apos>"  :subid("115_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2139
-.annotate 'line', 0
-    new $P2138, 'ExceptionHandler'
-    set_addr $P2138, control_2137
-    $P2138."handle_types"(.CONTROL_RETURN)
-    push_eh $P2138
-    .lex "self", self
-    .lex "$/", param_2139
-    find_lex $P2140, "$/"
-    find_lex $P2141, "$/"
-    unless_null $P2141, vivify_630
-    $P2141 = root_new ['parrot';'Hash']
-  vivify_630:
-    set $P2142, $P2141["quote_EXPR"]
-    unless_null $P2142, vivify_631
-    new $P2142, "Undef"
-  vivify_631:
-    $P2143 = $P2142."ast"()
-    $P2144 = $P2140."!make"($P2143)
-    .return ($P2144)
-  control_2137:
+.sub "quote:sym<apos>"  :subid("120_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2233
+.annotate 'line', 794
+    new $P2232, 'ExceptionHandler'
+    set_addr $P2232, control_2231
+    $P2232."handle_types"(.CONTROL_RETURN)
+    push_eh $P2232
+    .lex "self", self
+    .lex "$/", param_2233
+    find_lex $P2234, "$/"
+    find_lex $P2235, "$/"
+    unless_null $P2235, vivify_657
+    $P2235 = root_new ['parrot';'Hash']
+  vivify_657:
+    set $P2236, $P2235["quote_EXPR"]
+    unless_null $P2236, vivify_658
+    new $P2236, "Undef"
+  vivify_658:
+    $P2237 = $P2236."ast"()
+    $P2238 = $P2234."!make"($P2237)
+    .return ($P2238)
+  control_2231:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2145, exception, "payload"
-    .return ($P2145)
+    getattribute $P2239, exception, "payload"
+    .return ($P2239)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<dblq>"  :subid("116_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2149
-.annotate 'line', 0
-    new $P2148, 'ExceptionHandler'
-    set_addr $P2148, control_2147
-    $P2148."handle_types"(.CONTROL_RETURN)
-    push_eh $P2148
-    .lex "self", self
-    .lex "$/", param_2149
-    find_lex $P2150, "$/"
-    find_lex $P2151, "$/"
-    unless_null $P2151, vivify_632
-    $P2151 = root_new ['parrot';'Hash']
-  vivify_632:
-    set $P2152, $P2151["quote_EXPR"]
-    unless_null $P2152, vivify_633
-    new $P2152, "Undef"
-  vivify_633:
-    $P2153 = $P2152."ast"()
-    $P2154 = $P2150."!make"($P2153)
-    .return ($P2154)
-  control_2147:
+.sub "quote:sym<dblq>"  :subid("121_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2243
+.annotate 'line', 795
+    new $P2242, 'ExceptionHandler'
+    set_addr $P2242, control_2241
+    $P2242."handle_types"(.CONTROL_RETURN)
+    push_eh $P2242
+    .lex "self", self
+    .lex "$/", param_2243
+    find_lex $P2244, "$/"
+    find_lex $P2245, "$/"
+    unless_null $P2245, vivify_659
+    $P2245 = root_new ['parrot';'Hash']
+  vivify_659:
+    set $P2246, $P2245["quote_EXPR"]
+    unless_null $P2246, vivify_660
+    new $P2246, "Undef"
+  vivify_660:
+    $P2247 = $P2246."ast"()
+    $P2248 = $P2244."!make"($P2247)
+    .return ($P2248)
+  control_2241:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2155, exception, "payload"
-    .return ($P2155)
+    getattribute $P2249, exception, "payload"
+    .return ($P2249)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<qq>"  :subid("117_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2159
-.annotate 'line', 0
-    new $P2158, 'ExceptionHandler'
-    set_addr $P2158, control_2157
-    $P2158."handle_types"(.CONTROL_RETURN)
-    push_eh $P2158
-    .lex "self", self
-    .lex "$/", param_2159
-    find_lex $P2160, "$/"
-    find_lex $P2161, "$/"
-    unless_null $P2161, vivify_634
-    $P2161 = root_new ['parrot';'Hash']
-  vivify_634:
-    set $P2162, $P2161["quote_EXPR"]
-    unless_null $P2162, vivify_635
-    new $P2162, "Undef"
-  vivify_635:
-    $P2163 = $P2162."ast"()
-    $P2164 = $P2160."!make"($P2163)
-    .return ($P2164)
-  control_2157:
+.sub "quote:sym<qq>"  :subid("122_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2253
+.annotate 'line', 796
+    new $P2252, 'ExceptionHandler'
+    set_addr $P2252, control_2251
+    $P2252."handle_types"(.CONTROL_RETURN)
+    push_eh $P2252
+    .lex "self", self
+    .lex "$/", param_2253
+    find_lex $P2254, "$/"
+    find_lex $P2255, "$/"
+    unless_null $P2255, vivify_661
+    $P2255 = root_new ['parrot';'Hash']
+  vivify_661:
+    set $P2256, $P2255["quote_EXPR"]
+    unless_null $P2256, vivify_662
+    new $P2256, "Undef"
+  vivify_662:
+    $P2257 = $P2256."ast"()
+    $P2258 = $P2254."!make"($P2257)
+    .return ($P2258)
+  control_2251:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2165, exception, "payload"
-    .return ($P2165)
+    getattribute $P2259, exception, "payload"
+    .return ($P2259)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<q>"  :subid("118_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2169
-.annotate 'line', 0
-    new $P2168, 'ExceptionHandler'
-    set_addr $P2168, control_2167
-    $P2168."handle_types"(.CONTROL_RETURN)
-    push_eh $P2168
-    .lex "self", self
-    .lex "$/", param_2169
-    find_lex $P2170, "$/"
-    find_lex $P2171, "$/"
-    unless_null $P2171, vivify_636
-    $P2171 = root_new ['parrot';'Hash']
-  vivify_636:
-    set $P2172, $P2171["quote_EXPR"]
-    unless_null $P2172, vivify_637
-    new $P2172, "Undef"
-  vivify_637:
-    $P2173 = $P2172."ast"()
-    $P2174 = $P2170."!make"($P2173)
-    .return ($P2174)
-  control_2167:
+.sub "quote:sym<q>"  :subid("123_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2263
+.annotate 'line', 797
+    new $P2262, 'ExceptionHandler'
+    set_addr $P2262, control_2261
+    $P2262."handle_types"(.CONTROL_RETURN)
+    push_eh $P2262
+    .lex "self", self
+    .lex "$/", param_2263
+    find_lex $P2264, "$/"
+    find_lex $P2265, "$/"
+    unless_null $P2265, vivify_663
+    $P2265 = root_new ['parrot';'Hash']
+  vivify_663:
+    set $P2266, $P2265["quote_EXPR"]
+    unless_null $P2266, vivify_664
+    new $P2266, "Undef"
+  vivify_664:
+    $P2267 = $P2266."ast"()
+    $P2268 = $P2264."!make"($P2267)
+    .return ($P2268)
+  control_2261:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2175, exception, "payload"
-    .return ($P2175)
+    getattribute $P2269, exception, "payload"
+    .return ($P2269)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<Q>"  :subid("119_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2179
-.annotate 'line', 0
-    new $P2178, 'ExceptionHandler'
-    set_addr $P2178, control_2177
-    $P2178."handle_types"(.CONTROL_RETURN)
-    push_eh $P2178
+.sub "quote:sym<Q>"  :subid("124_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2273
+.annotate 'line', 798
+    new $P2272, 'ExceptionHandler'
+    set_addr $P2272, control_2271
+    $P2272."handle_types"(.CONTROL_RETURN)
+    push_eh $P2272
     .lex "self", self
-    .lex "$/", param_2179
-    find_lex $P2180, "$/"
-    find_lex $P2181, "$/"
-    unless_null $P2181, vivify_638
-    $P2181 = root_new ['parrot';'Hash']
-  vivify_638:
-    set $P2182, $P2181["quote_EXPR"]
-    unless_null $P2182, vivify_639
-    new $P2182, "Undef"
-  vivify_639:
-    $P2183 = $P2182."ast"()
-    $P2184 = $P2180."!make"($P2183)
-    .return ($P2184)
-  control_2177:
+    .lex "$/", param_2273
+    find_lex $P2274, "$/"
+    find_lex $P2275, "$/"
+    unless_null $P2275, vivify_665
+    $P2275 = root_new ['parrot';'Hash']
+  vivify_665:
+    set $P2276, $P2275["quote_EXPR"]
+    unless_null $P2276, vivify_666
+    new $P2276, "Undef"
+  vivify_666:
+    $P2277 = $P2276."ast"()
+    $P2278 = $P2274."!make"($P2277)
+    .return ($P2278)
+  control_2271:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2185, exception, "payload"
-    .return ($P2185)
+    getattribute $P2279, exception, "payload"
+    .return ($P2279)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<Q:PIR>"  :subid("120_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2189
-.annotate 'line', 0
-    new $P2188, 'ExceptionHandler'
-    set_addr $P2188, control_2187
-    $P2188."handle_types"(.CONTROL_RETURN)
-    push_eh $P2188
-    .lex "self", self
-    .lex "$/", param_2189
-    find_lex $P2190, "$/"
-    get_hll_global $P2191, ["PAST"], "Op"
-    find_lex $P2192, "$/"
-    unless_null $P2192, vivify_640
-    $P2192 = root_new ['parrot';'Hash']
-  vivify_640:
-    set $P2193, $P2192["quote_EXPR"]
-    unless_null $P2193, vivify_641
-    new $P2193, "Undef"
-  vivify_641:
-    $P2194 = $P2193."ast"()
-    $P2195 = $P2194."value"()
-    find_lex $P2196, "$/"
-    $P2197 = $P2191."new"($P2195 :named("inline"), "inline" :named("pasttype"), $P2196 :named("node"))
-    $P2198 = $P2190."!make"($P2197)
-    .return ($P2198)
-  control_2187:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P2199, exception, "payload"
-    .return ($P2199)
+.sub "quote:sym<Q:PIR>"  :subid("125_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2283
+.annotate 'line', 799
+    new $P2282, 'ExceptionHandler'
+    set_addr $P2282, control_2281
+    $P2282."handle_types"(.CONTROL_RETURN)
+    push_eh $P2282
+    .lex "self", self
+    .lex "$/", param_2283
+.annotate 'line', 800
+    find_lex $P2284, "$/"
+    get_hll_global $P2285, ["PAST"], "Op"
+    find_lex $P2286, "$/"
+    unless_null $P2286, vivify_667
+    $P2286 = root_new ['parrot';'Hash']
+  vivify_667:
+    set $P2287, $P2286["quote_EXPR"]
+    unless_null $P2287, vivify_668
+    new $P2287, "Undef"
+  vivify_668:
+    $P2288 = $P2287."ast"()
+    $P2289 = $P2288."value"()
+    find_lex $P2290, "$/"
+    $P2291 = $P2285."new"($P2289 :named("inline"), "inline" :named("pasttype"), $P2290 :named("node"))
+    $P2292 = $P2284."!make"($P2291)
+.annotate 'line', 799
+    .return ($P2292)
+  control_2281:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2293, exception, "payload"
+    .return ($P2293)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym</ />"  :subid("121_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2203
-    .param pmc param_2204 :optional
-    .param int has_param_2204 :opt_flag
-.annotate 'line', 0
-    new $P2202, 'ExceptionHandler'
-    set_addr $P2202, control_2201
-    $P2202."handle_types"(.CONTROL_RETURN)
-    push_eh $P2202
-    .lex "self", self
-    .lex "$/", param_2203
-    if has_param_2204, optparam_642
-    new $P2205, "Undef"
-    set param_2204, $P2205
-  optparam_642:
-    .lex "$key", param_2204
-    new $P2206, "Undef"
-    .lex "$regex", $P2206
-    new $P2207, "Undef"
-    .lex "$past", $P2207
-    find_lex $P2209, "$key"
-    set $S2210, $P2209
-    iseq $I2211, $S2210, "open"
-    unless $I2211, if_2208_end
+.sub "quote:sym</ />"  :subid("126_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2297
+    .param pmc param_2298 :optional
+    .param int has_param_2298 :opt_flag
+.annotate 'line', 805
+    new $P2296, 'ExceptionHandler'
+    set_addr $P2296, control_2295
+    $P2296."handle_types"(.CONTROL_RETURN)
+    push_eh $P2296
+    .lex "self", self
+    .lex "$/", param_2297
+    if has_param_2298, optparam_669
+    new $P2299, "Undef"
+    set param_2298, $P2299
+  optparam_669:
+    .lex "$key", param_2298
+.annotate 'line', 815
+    new $P2300, "Undef"
+    .lex "$regex", $P2300
+.annotate 'line', 817
+    new $P2301, "Undef"
+    .lex "$past", $P2301
+.annotate 'line', 806
+    find_lex $P2303, "$key"
+    set $S2304, $P2303
+    iseq $I2305, $S2304, "open"
+    unless $I2305, if_2302_end
+.annotate 'line', 807
 
             null $P0
             set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
         
-    get_global $P2212, "@BLOCK"
-    unless_null $P2212, vivify_643
-    $P2212 = root_new ['parrot';'ResizablePMCArray']
-  vivify_643:
-    set $P2213, $P2212[0]
-    unless_null $P2213, vivify_644
-    new $P2213, "Undef"
-  vivify_644:
-    $P2213."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
-    get_global $P2214, "@BLOCK"
-    unless_null $P2214, vivify_645
-    $P2214 = root_new ['parrot';'ResizablePMCArray']
-  vivify_645:
-    set $P2215, $P2214[0]
-    unless_null $P2215, vivify_646
-    new $P2215, "Undef"
-  vivify_646:
-    $P2215."symbol"("$/", "lexical" :named("scope"))
-    new $P2216, "Exception"
-    set $P2216['type'], .CONTROL_RETURN
-    new $P2217, "Integer"
-    assign $P2217, 0
-    setattribute $P2216, 'payload', $P2217
-    throw $P2216
-  if_2208_end:
-    get_hll_global $P2218, ["Regex";"P6Regex";"Actions"], "buildsub"
-    find_lex $P2219, "$/"
-    unless_null $P2219, vivify_647
-    $P2219 = root_new ['parrot';'Hash']
-  vivify_647:
-    set $P2220, $P2219["p6regex"]
-    unless_null $P2220, vivify_648
-    new $P2220, "Undef"
-  vivify_648:
-    $P2221 = $P2220."ast"()
-    get_global $P2222, "@BLOCK"
-    $P2223 = $P2222."shift"()
-    $P2224 = $P2218($P2221, $P2223)
-    store_lex "$regex", $P2224
-    get_hll_global $P2225, ["PAST"], "Op"
-    get_hll_global $P2226, ["PAST"], "Var"
-    new $P2227, "ResizablePMCArray"
-    push $P2227, "Regex"
-    $P2228 = $P2226."new"("Regex" :named("name"), $P2227 :named("namespace"), "package" :named("scope"))
-    find_lex $P2229, "$regex"
-    $P2230 = $P2225."new"($P2228, $P2229, "callmethod" :named("pasttype"), "new" :named("name"))
-    store_lex "$past", $P2230
-    find_lex $P2231, "$regex"
-    find_lex $P2232, "$past"
-    unless_null $P2232, vivify_649
-    $P2232 = root_new ['parrot';'Hash']
-    store_lex "$past", $P2232
-  vivify_649:
-    set $P2232["sink"], $P2231
-    find_lex $P2233, "$/"
-    find_lex $P2234, "$past"
-    $P2235 = $P2233."!make"($P2234)
-    .return ($P2235)
-  control_2201:
+.annotate 'line', 811
+    get_global $P2306, "@BLOCK"
+    unless_null $P2306, vivify_670
+    $P2306 = root_new ['parrot';'ResizablePMCArray']
+  vivify_670:
+    set $P2307, $P2306[0]
+    unless_null $P2307, vivify_671
+    new $P2307, "Undef"
+  vivify_671:
+    $P2307."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
+.annotate 'line', 812
+    get_global $P2308, "@BLOCK"
+    unless_null $P2308, vivify_672
+    $P2308 = root_new ['parrot';'ResizablePMCArray']
+  vivify_672:
+    set $P2309, $P2308[0]
+    unless_null $P2309, vivify_673
+    new $P2309, "Undef"
+  vivify_673:
+    $P2309."symbol"("$/", "lexical" :named("scope"))
+.annotate 'line', 813
+    new $P2310, "Exception"
+    set $P2310['type'], .CONTROL_RETURN
+    new $P2311, "Integer"
+    assign $P2311, 0
+    setattribute $P2310, 'payload', $P2311
+    throw $P2310
+  if_2302_end:
+.annotate 'line', 816
+    get_hll_global $P2312, ["Regex";"P6Regex";"Actions"], "buildsub"
+    find_lex $P2313, "$/"
+    unless_null $P2313, vivify_674
+    $P2313 = root_new ['parrot';'Hash']
+  vivify_674:
+    set $P2314, $P2313["p6regex"]
+    unless_null $P2314, vivify_675
+    new $P2314, "Undef"
+  vivify_675:
+    $P2315 = $P2314."ast"()
+    get_global $P2316, "@BLOCK"
+    $P2317 = $P2316."shift"()
+    $P2318 = $P2312($P2315, $P2317)
+    store_lex "$regex", $P2318
+.annotate 'line', 818
+    get_hll_global $P2319, ["PAST"], "Op"
+.annotate 'line', 820
+    get_hll_global $P2320, ["PAST"], "Var"
+    new $P2321, "ResizablePMCArray"
+    push $P2321, "Regex"
+    $P2322 = $P2320."new"("Regex" :named("name"), $P2321 :named("namespace"), "package" :named("scope"))
+    find_lex $P2323, "$regex"
+    $P2324 = $P2319."new"($P2322, $P2323, "callmethod" :named("pasttype"), "new" :named("name"))
+.annotate 'line', 818
+    store_lex "$past", $P2324
+.annotate 'line', 824
+    find_lex $P2325, "$regex"
+    find_lex $P2326, "$past"
+    unless_null $P2326, vivify_676
+    $P2326 = root_new ['parrot';'Hash']
+    store_lex "$past", $P2326
+  vivify_676:
+    set $P2326["sink"], $P2325
+.annotate 'line', 825
+    find_lex $P2327, "$/"
+    find_lex $P2328, "$past"
+    $P2329 = $P2327."!make"($P2328)
+.annotate 'line', 805
+    .return ($P2329)
+  control_2295:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2236, exception, "payload"
-    .return ($P2236)
+    getattribute $P2330, exception, "payload"
+    .return ($P2330)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<$>"  :subid("122_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2240
-.annotate 'line', 0
-    new $P2239, 'ExceptionHandler'
-    set_addr $P2239, control_2238
-    $P2239."handle_types"(.CONTROL_RETURN)
-    push_eh $P2239
-    .lex "self", self
-    .lex "$/", param_2240
-    find_lex $P2241, "$/"
-    find_lex $P2242, "$/"
-    unless_null $P2242, vivify_650
-    $P2242 = root_new ['parrot';'Hash']
-  vivify_650:
-    set $P2243, $P2242["variable"]
-    unless_null $P2243, vivify_651
-    new $P2243, "Undef"
-  vivify_651:
-    $P2244 = $P2243."ast"()
-    $P2245 = $P2241."!make"($P2244)
-    .return ($P2245)
-  control_2238:
+.sub "quote_escape:sym<$>"  :subid("127_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2334
+.annotate 'line', 828
+    new $P2333, 'ExceptionHandler'
+    set_addr $P2333, control_2332
+    $P2333."handle_types"(.CONTROL_RETURN)
+    push_eh $P2333
+    .lex "self", self
+    .lex "$/", param_2334
+    find_lex $P2335, "$/"
+    find_lex $P2336, "$/"
+    unless_null $P2336, vivify_677
+    $P2336 = root_new ['parrot';'Hash']
+  vivify_677:
+    set $P2337, $P2336["variable"]
+    unless_null $P2337, vivify_678
+    new $P2337, "Undef"
+  vivify_678:
+    $P2338 = $P2337."ast"()
+    $P2339 = $P2335."!make"($P2338)
+    .return ($P2339)
+  control_2332:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2246, exception, "payload"
-    .return ($P2246)
+    getattribute $P2340, exception, "payload"
+    .return ($P2340)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<{ }>"  :subid("123_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2250
-.annotate 'line', 0
-    new $P2249, 'ExceptionHandler'
-    set_addr $P2249, control_2248
-    $P2249."handle_types"(.CONTROL_RETURN)
-    push_eh $P2249
-    .lex "self", self
-    .lex "$/", param_2250
-    find_lex $P2251, "$/"
-    get_hll_global $P2252, ["PAST"], "Op"
-    find_lex $P2253, "$/"
-    unless_null $P2253, vivify_652
-    $P2253 = root_new ['parrot';'Hash']
-  vivify_652:
-    set $P2254, $P2253["block"]
-    unless_null $P2254, vivify_653
-    new $P2254, "Undef"
-  vivify_653:
-    $P2255 = $P2254."ast"()
-    $P2256 = "block_immediate"($P2255)
-    find_lex $P2257, "$/"
-    $P2258 = $P2252."new"($P2256, "set S*" :named("pirop"), $P2257 :named("node"))
-    $P2259 = $P2251."!make"($P2258)
-    .return ($P2259)
-  control_2248:
+.sub "quote_escape:sym<{ }>"  :subid("128_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2344
+.annotate 'line', 829
+    new $P2343, 'ExceptionHandler'
+    set_addr $P2343, control_2342
+    $P2343."handle_types"(.CONTROL_RETURN)
+    push_eh $P2343
+    .lex "self", self
+    .lex "$/", param_2344
+.annotate 'line', 830
+    find_lex $P2345, "$/"
+    get_hll_global $P2346, ["PAST"], "Op"
+.annotate 'line', 831
+    find_lex $P2347, "$/"
+    unless_null $P2347, vivify_679
+    $P2347 = root_new ['parrot';'Hash']
+  vivify_679:
+    set $P2348, $P2347["block"]
+    unless_null $P2348, vivify_680
+    new $P2348, "Undef"
+  vivify_680:
+    $P2349 = $P2348."ast"()
+    $P2350 = "block_immediate"($P2349)
+    find_lex $P2351, "$/"
+    $P2352 = $P2346."new"($P2350, "set S*" :named("pirop"), $P2351 :named("node"))
+.annotate 'line', 830
+    $P2353 = $P2345."!make"($P2352)
+.annotate 'line', 829
+    .return ($P2353)
+  control_2342:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2260, exception, "payload"
-    .return ($P2260)
+    getattribute $P2354, exception, "payload"
+    .return ($P2354)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<esc>"  :subid("124_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2264
-.annotate 'line', 0
-    new $P2263, 'ExceptionHandler'
-    set_addr $P2263, control_2262
-    $P2263."handle_types"(.CONTROL_RETURN)
-    push_eh $P2263
+.sub "quote_escape:sym<esc>"  :subid("129_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2358
+.annotate 'line', 834
+    new $P2357, 'ExceptionHandler'
+    set_addr $P2357, control_2356
+    $P2357."handle_types"(.CONTROL_RETURN)
+    push_eh $P2357
     .lex "self", self
-    .lex "$/", param_2264
-    find_lex $P2265, "$/"
-    $P2266 = $P2265."!make"("\e")
-    .return ($P2266)
-  control_2262:
+    .lex "$/", param_2358
+    find_lex $P2359, "$/"
+    $P2360 = $P2359."!make"("\e")
+    .return ($P2360)
+  control_2356:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2267, exception, "payload"
-    .return ($P2267)
+    getattribute $P2361, exception, "payload"
+    .return ($P2361)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postfix:sym<.>"  :subid("125_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2271
-.annotate 'line', 0
-    new $P2270, 'ExceptionHandler'
-    set_addr $P2270, control_2269
-    $P2270."handle_types"(.CONTROL_RETURN)
-    push_eh $P2270
-    .lex "self", self
-    .lex "$/", param_2271
-    find_lex $P2272, "$/"
-    find_lex $P2273, "$/"
-    unless_null $P2273, vivify_654
-    $P2273 = root_new ['parrot';'Hash']
-  vivify_654:
-    set $P2274, $P2273["dotty"]
-    unless_null $P2274, vivify_655
-    new $P2274, "Undef"
-  vivify_655:
-    $P2275 = $P2274."ast"()
-    $P2276 = $P2272."!make"($P2275)
-    .return ($P2276)
-  control_2269:
+.sub "postfix:sym<.>"  :subid("130_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2365
+.annotate 'line', 838
+    new $P2364, 'ExceptionHandler'
+    set_addr $P2364, control_2363
+    $P2364."handle_types"(.CONTROL_RETURN)
+    push_eh $P2364
+    .lex "self", self
+    .lex "$/", param_2365
+    find_lex $P2366, "$/"
+    find_lex $P2367, "$/"
+    unless_null $P2367, vivify_681
+    $P2367 = root_new ['parrot';'Hash']
+  vivify_681:
+    set $P2368, $P2367["dotty"]
+    unless_null $P2368, vivify_682
+    new $P2368, "Undef"
+  vivify_682:
+    $P2369 = $P2368."ast"()
+    $P2370 = $P2366."!make"($P2369)
+    .return ($P2370)
+  control_2363:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2277, exception, "payload"
-    .return ($P2277)
+    getattribute $P2371, exception, "payload"
+    .return ($P2371)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postfix:sym<++>"  :subid("126_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2281
-.annotate 'line', 0
-    new $P2280, 'ExceptionHandler'
-    set_addr $P2280, control_2279
-    $P2280."handle_types"(.CONTROL_RETURN)
-    push_eh $P2280
+.sub "postfix:sym<++>"  :subid("131_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2375
+.annotate 'line', 840
+    new $P2374, 'ExceptionHandler'
+    set_addr $P2374, control_2373
+    $P2374."handle_types"(.CONTROL_RETURN)
+    push_eh $P2374
     .lex "self", self
-    .lex "$/", param_2281
-    find_lex $P2282, "$/"
-    get_hll_global $P2283, ["PAST"], "Op"
-    new $P2284, "ResizablePMCArray"
-    push $P2284, "    clone %r, %0"
-    push $P2284, "    inc %0"
-    $P2285 = $P2283."new"("postfix:<++>" :named("name"), $P2284 :named("inline"), "inline" :named("pasttype"))
-    $P2286 = $P2282."!make"($P2285)
-    .return ($P2286)
-  control_2279:
+    .lex "$/", param_2375
+.annotate 'line', 841
+    find_lex $P2376, "$/"
+    get_hll_global $P2377, ["PAST"], "Op"
+.annotate 'line', 842
+    new $P2378, "ResizablePMCArray"
+    push $P2378, "    clone %r, %0"
+    push $P2378, "    inc %0"
+    $P2379 = $P2377."new"("postfix:<++>" :named("name"), $P2378 :named("inline"), "inline" :named("pasttype"))
+.annotate 'line', 841
+    $P2380 = $P2376."!make"($P2379)
+.annotate 'line', 840
+    .return ($P2380)
+  control_2373:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2287, exception, "payload"
-    .return ($P2287)
+    getattribute $P2381, exception, "payload"
+    .return ($P2381)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postfix:sym<-->"  :subid("127_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2291
-.annotate 'line', 0
-    new $P2290, 'ExceptionHandler'
-    set_addr $P2290, control_2289
-    $P2290."handle_types"(.CONTROL_RETURN)
-    push_eh $P2290
+.sub "postfix:sym<-->"  :subid("132_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2385
+.annotate 'line', 846
+    new $P2384, 'ExceptionHandler'
+    set_addr $P2384, control_2383
+    $P2384."handle_types"(.CONTROL_RETURN)
+    push_eh $P2384
     .lex "self", self
-    .lex "$/", param_2291
-    find_lex $P2292, "$/"
-    get_hll_global $P2293, ["PAST"], "Op"
-    new $P2294, "ResizablePMCArray"
-    push $P2294, "    clone %r, %0"
-    push $P2294, "    dec %0"
-    $P2295 = $P2293."new"("postfix:<-->" :named("name"), $P2294 :named("inline"), "inline" :named("pasttype"))
-    $P2296 = $P2292."!make"($P2295)
-    .return ($P2296)
-  control_2289:
+    .lex "$/", param_2385
+.annotate 'line', 847
+    find_lex $P2386, "$/"
+    get_hll_global $P2387, ["PAST"], "Op"
+.annotate 'line', 848
+    new $P2388, "ResizablePMCArray"
+    push $P2388, "    clone %r, %0"
+    push $P2388, "    dec %0"
+    $P2389 = $P2387."new"("postfix:<-->" :named("name"), $P2388 :named("inline"), "inline" :named("pasttype"))
+.annotate 'line', 847
+    $P2390 = $P2386."!make"($P2389)
+.annotate 'line', 846
+    .return ($P2390)
+  control_2383:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2297, exception, "payload"
-    .return ($P2297)
+    getattribute $P2391, exception, "payload"
+    .return ($P2391)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "prefix:sym<make>"  :subid("128_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2301
-.annotate 'line', 0
-    new $P2300, 'ExceptionHandler'
-    set_addr $P2300, control_2299
-    $P2300."handle_types"(.CONTROL_RETURN)
-    push_eh $P2300
+.sub "prefix:sym<make>"  :subid("133_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2395
+.annotate 'line', 852
+    new $P2394, 'ExceptionHandler'
+    set_addr $P2394, control_2393
+    $P2394."handle_types"(.CONTROL_RETURN)
+    push_eh $P2394
     .lex "self", self
-    .lex "$/", param_2301
-    find_lex $P2302, "$/"
-    get_hll_global $P2303, ["PAST"], "Op"
-    get_hll_global $P2304, ["PAST"], "Var"
-    $P2305 = $P2304."new"("$/" :named("name"), "contextual" :named("scope"))
-    find_lex $P2306, "$/"
-    $P2307 = $P2303."new"($P2305, "callmethod" :named("pasttype"), "!make" :named("name"), $P2306 :named("node"))
-    $P2308 = $P2302."!make"($P2307)
-    .return ($P2308)
-  control_2299:
+    .lex "$/", param_2395
+.annotate 'line', 853
+    find_lex $P2396, "$/"
+    get_hll_global $P2397, ["PAST"], "Op"
+.annotate 'line', 854
+    get_hll_global $P2398, ["PAST"], "Var"
+    $P2399 = $P2398."new"("$/" :named("name"), "contextual" :named("scope"))
+    find_lex $P2400, "$/"
+    $P2401 = $P2397."new"($P2399, "callmethod" :named("pasttype"), "!make" :named("name"), $P2400 :named("node"))
+.annotate 'line', 853
+    $P2402 = $P2396."!make"($P2401)
+.annotate 'line', 852
+    .return ($P2402)
+  control_2393:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2309, exception, "payload"
-    .return ($P2309)
+    getattribute $P2403, exception, "payload"
+    .return ($P2403)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<next>"  :subid("129_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2314
-.annotate 'line', 0
-    new $P2313, 'ExceptionHandler'
-    set_addr $P2313, control_2312
-    $P2313."handle_types"(.CONTROL_RETURN)
-    push_eh $P2313
+.sub "term:sym<next>"  :subid("134_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2408
+.annotate 'line', 870
+    new $P2407, 'ExceptionHandler'
+    set_addr $P2407, control_2406
+    $P2407."handle_types"(.CONTROL_RETURN)
+    push_eh $P2407
     .lex "self", self
-    .lex "$/", param_2314
-    find_lex $P2315, "$/"
-    $P2316 = "control"($P2315, "CONTROL_LOOP_NEXT")
-    .return ($P2316)
-  control_2312:
+    .lex "$/", param_2408
+    find_lex $P2409, "$/"
+    $P2410 = "control"($P2409, "CONTROL_LOOP_NEXT")
+    .return ($P2410)
+  control_2406:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2317, exception, "payload"
-    .return ($P2317)
+    getattribute $P2411, exception, "payload"
+    .return ($P2411)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<last>"  :subid("130_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2321
-.annotate 'line', 0
-    new $P2320, 'ExceptionHandler'
-    set_addr $P2320, control_2319
-    $P2320."handle_types"(.CONTROL_RETURN)
-    push_eh $P2320
+.sub "term:sym<last>"  :subid("135_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2415
+.annotate 'line', 871
+    new $P2414, 'ExceptionHandler'
+    set_addr $P2414, control_2413
+    $P2414."handle_types"(.CONTROL_RETURN)
+    push_eh $P2414
     .lex "self", self
-    .lex "$/", param_2321
-    find_lex $P2322, "$/"
-    $P2323 = "control"($P2322, "CONTROL_LOOP_LAST")
-    .return ($P2323)
-  control_2319:
+    .lex "$/", param_2415
+    find_lex $P2416, "$/"
+    $P2417 = "control"($P2416, "CONTROL_LOOP_LAST")
+    .return ($P2417)
+  control_2413:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2324, exception, "payload"
-    .return ($P2324)
+    getattribute $P2418, exception, "payload"
+    .return ($P2418)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<redo>"  :subid("131_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2328
-.annotate 'line', 0
-    new $P2327, 'ExceptionHandler'
-    set_addr $P2327, control_2326
-    $P2327."handle_types"(.CONTROL_RETURN)
-    push_eh $P2327
-    .lex "self", self
-    .lex "$/", param_2328
-    find_lex $P2329, "$/"
-    $P2330 = "control"($P2329, "CONTROL_LOOP_REDO")
-    .return ($P2330)
-  control_2326:
+.sub "term:sym<redo>"  :subid("136_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2422
+.annotate 'line', 872
+    new $P2421, 'ExceptionHandler'
+    set_addr $P2421, control_2420
+    $P2421."handle_types"(.CONTROL_RETURN)
+    push_eh $P2421
+    .lex "self", self
+    .lex "$/", param_2422
+    find_lex $P2423, "$/"
+    $P2424 = "control"($P2423, "CONTROL_LOOP_REDO")
+    .return ($P2424)
+  control_2420:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2331, exception, "payload"
-    .return ($P2331)
+    getattribute $P2425, exception, "payload"
+    .return ($P2425)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "infix:sym<~~>"  :subid("132_1283975952.27658") :method :outer("11_1283975952.27658")
-    .param pmc param_2335
-.annotate 'line', 0
-    new $P2334, 'ExceptionHandler'
-    set_addr $P2334, control_2333
-    $P2334."handle_types"(.CONTROL_RETURN)
-    push_eh $P2334
+.sub "infix:sym<~~>"  :subid("137_1284728484.24945") :method :outer("11_1284728484.24945")
+    .param pmc param_2429
+.annotate 'line', 874
+    new $P2428, 'ExceptionHandler'
+    set_addr $P2428, control_2427
+    $P2428."handle_types"(.CONTROL_RETURN)
+    push_eh $P2428
     .lex "self", self
-    .lex "$/", param_2335
-    find_lex $P2336, "$/"
-    get_hll_global $P2337, ["PAST"], "Op"
-    find_lex $P2338, "$/"
-    $P2339 = $P2337."new"("callmethod" :named("pasttype"), "ACCEPTS" :named("name"), $P2338 :named("node"))
-    $P2340 = $P2336."!make"($P2339)
-    .return ($P2340)
-  control_2333:
+    .lex "$/", param_2429
+.annotate 'line', 875
+    find_lex $P2430, "$/"
+    get_hll_global $P2431, ["PAST"], "Op"
+    find_lex $P2432, "$/"
+    $P2433 = $P2431."new"("callmethod" :named("pasttype"), "ACCEPTS" :named("name"), $P2432 :named("node"))
+    $P2434 = $P2430."!make"($P2433)
+.annotate 'line', 874
+    .return ($P2434)
+  control_2427:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2341, exception, "payload"
-    .return ($P2341)
+    getattribute $P2435, exception, "payload"
+    .return ($P2435)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "_block2342"  :subid("133_1283975952.27658") :outer("11_1283975952.27658")
-.annotate 'line', 0
-    .const 'Sub' $P2428 = "140_1283975952.27658" 
-    capture_lex $P2428
-    .const 'Sub' $P2415 = "139_1283975952.27658" 
-    capture_lex $P2415
-    .const 'Sub' $P2398 = "138_1283975952.27658" 
-    capture_lex $P2398
-    .const 'Sub' $P2385 = "137_1283975952.27658" 
-    capture_lex $P2385
-    .const 'Sub' $P2372 = "136_1283975952.27658" 
-    capture_lex $P2372
-    .const 'Sub' $P2359 = "135_1283975952.27658" 
-    capture_lex $P2359
-    .const 'Sub' $P2344 = "134_1283975952.27658" 
-    capture_lex $P2344
-    .const 'Sub' $P2428 = "140_1283975952.27658" 
-    newclosure $P2453, $P2428
-    .return ($P2453)
+.sub "_block2436"  :subid("138_1284728484.24945") :outer("11_1284728484.24945")
+.annotate 'line', 879
+    .const 'Sub' $P2522 = "145_1284728484.24945" 
+    capture_lex $P2522
+    .const 'Sub' $P2509 = "144_1284728484.24945" 
+    capture_lex $P2509
+    .const 'Sub' $P2492 = "143_1284728484.24945" 
+    capture_lex $P2492
+    .const 'Sub' $P2479 = "142_1284728484.24945" 
+    capture_lex $P2479
+    .const 'Sub' $P2466 = "141_1284728484.24945" 
+    capture_lex $P2466
+    .const 'Sub' $P2453 = "140_1284728484.24945" 
+    capture_lex $P2453
+    .const 'Sub' $P2438 = "139_1284728484.24945" 
+    capture_lex $P2438
+.annotate 'line', 913
+    .const 'Sub' $P2522 = "145_1284728484.24945" 
+    newclosure $P2547, $P2522
+.annotate 'line', 879
+    .return ($P2547)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "metachar:sym<:my>"  :subid("134_1283975952.27658") :method :outer("133_1283975952.27658")
-    .param pmc param_2347
-.annotate 'line', 0
-    new $P2346, 'ExceptionHandler'
-    set_addr $P2346, control_2345
-    $P2346."handle_types"(.CONTROL_RETURN)
-    push_eh $P2346
-    .lex "self", self
-    .lex "$/", param_2347
-    new $P2348, "Undef"
-    .lex "$past", $P2348
-    find_lex $P2349, "$/"
-    unless_null $P2349, vivify_656
-    $P2349 = root_new ['parrot';'Hash']
-  vivify_656:
-    set $P2350, $P2349["statement"]
-    unless_null $P2350, vivify_657
-    new $P2350, "Undef"
-  vivify_657:
-    $P2351 = $P2350."ast"()
-    store_lex "$past", $P2351
-    find_lex $P2352, "$/"
-    get_hll_global $P2353, ["PAST"], "Regex"
-    find_lex $P2354, "$past"
-    find_lex $P2355, "$/"
-    $P2356 = $P2353."new"($P2354, "pastnode" :named("pasttype"), "declarative" :named("subtype"), $P2355 :named("node"))
-    $P2357 = $P2352."!make"($P2356)
-    .return ($P2357)
-  control_2345:
+.sub "metachar:sym<:my>"  :subid("139_1284728484.24945") :method :outer("138_1284728484.24945")
+    .param pmc param_2441
+.annotate 'line', 881
+    new $P2440, 'ExceptionHandler'
+    set_addr $P2440, control_2439
+    $P2440."handle_types"(.CONTROL_RETURN)
+    push_eh $P2440
+    .lex "self", self
+    .lex "$/", param_2441
+.annotate 'line', 882
+    new $P2442, "Undef"
+    .lex "$past", $P2442
+    find_lex $P2443, "$/"
+    unless_null $P2443, vivify_683
+    $P2443 = root_new ['parrot';'Hash']
+  vivify_683:
+    set $P2444, $P2443["statement"]
+    unless_null $P2444, vivify_684
+    new $P2444, "Undef"
+  vivify_684:
+    $P2445 = $P2444."ast"()
+    store_lex "$past", $P2445
+.annotate 'line', 883
+    find_lex $P2446, "$/"
+    get_hll_global $P2447, ["PAST"], "Regex"
+    find_lex $P2448, "$past"
+    find_lex $P2449, "$/"
+    $P2450 = $P2447."new"($P2448, "pastnode" :named("pasttype"), "declarative" :named("subtype"), $P2449 :named("node"))
+    $P2451 = $P2446."!make"($P2450)
+.annotate 'line', 881
+    .return ($P2451)
+  control_2439:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2358, exception, "payload"
-    .return ($P2358)
+    getattribute $P2452, exception, "payload"
+    .return ($P2452)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "metachar:sym<{ }>"  :subid("135_1283975952.27658") :method :outer("133_1283975952.27658")
-    .param pmc param_2362
-.annotate 'line', 0
-    new $P2361, 'ExceptionHandler'
-    set_addr $P2361, control_2360
-    $P2361."handle_types"(.CONTROL_RETURN)
-    push_eh $P2361
-    .lex "self", self
-    .lex "$/", param_2362
-    find_lex $P2363, "$/"
-    get_hll_global $P2364, ["PAST"], "Regex"
-    find_lex $P2365, "$/"
-    unless_null $P2365, vivify_658
-    $P2365 = root_new ['parrot';'Hash']
-  vivify_658:
-    set $P2366, $P2365["codeblock"]
-    unless_null $P2366, vivify_659
-    new $P2366, "Undef"
-  vivify_659:
-    $P2367 = $P2366."ast"()
-    find_lex $P2368, "$/"
-    $P2369 = $P2364."new"($P2367, "pastnode" :named("pasttype"), $P2368 :named("node"))
-    $P2370 = $P2363."!make"($P2369)
-    .return ($P2370)
-  control_2360:
+.sub "metachar:sym<{ }>"  :subid("140_1284728484.24945") :method :outer("138_1284728484.24945")
+    .param pmc param_2456
+.annotate 'line', 887
+    new $P2455, 'ExceptionHandler'
+    set_addr $P2455, control_2454
+    $P2455."handle_types"(.CONTROL_RETURN)
+    push_eh $P2455
+    .lex "self", self
+    .lex "$/", param_2456
+.annotate 'line', 888
+    find_lex $P2457, "$/"
+    get_hll_global $P2458, ["PAST"], "Regex"
+    find_lex $P2459, "$/"
+    unless_null $P2459, vivify_685
+    $P2459 = root_new ['parrot';'Hash']
+  vivify_685:
+    set $P2460, $P2459["codeblock"]
+    unless_null $P2460, vivify_686
+    new $P2460, "Undef"
+  vivify_686:
+    $P2461 = $P2460."ast"()
+    find_lex $P2462, "$/"
+    $P2463 = $P2458."new"($P2461, "pastnode" :named("pasttype"), $P2462 :named("node"))
+    $P2464 = $P2457."!make"($P2463)
+.annotate 'line', 887
+    .return ($P2464)
+  control_2454:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2371, exception, "payload"
-    .return ($P2371)
+    getattribute $P2465, exception, "payload"
+    .return ($P2465)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "metachar:sym<nqpvar>"  :subid("136_1283975952.27658") :method :outer("133_1283975952.27658")
-    .param pmc param_2375
-.annotate 'line', 0
-    new $P2374, 'ExceptionHandler'
-    set_addr $P2374, control_2373
-    $P2374."handle_types"(.CONTROL_RETURN)
-    push_eh $P2374
-    .lex "self", self
-    .lex "$/", param_2375
-    find_lex $P2376, "$/"
-    get_hll_global $P2377, ["PAST"], "Regex"
-    find_lex $P2378, "$/"
-    unless_null $P2378, vivify_660
-    $P2378 = root_new ['parrot';'Hash']
-  vivify_660:
-    set $P2379, $P2378["var"]
-    unless_null $P2379, vivify_661
-    new $P2379, "Undef"
-  vivify_661:
-    $P2380 = $P2379."ast"()
-    find_lex $P2381, "$/"
-    $P2382 = $P2377."new"("!INTERPOLATE", $P2380, "subrule" :named("pasttype"), "method" :named("subtype"), $P2381 :named("node"))
-    $P2383 = $P2376."!make"($P2382)
-    .return ($P2383)
-  control_2373:
+.sub "metachar:sym<nqpvar>"  :subid("141_1284728484.24945") :method :outer("138_1284728484.24945")
+    .param pmc param_2469
+.annotate 'line', 892
+    new $P2468, 'ExceptionHandler'
+    set_addr $P2468, control_2467
+    $P2468."handle_types"(.CONTROL_RETURN)
+    push_eh $P2468
+    .lex "self", self
+    .lex "$/", param_2469
+.annotate 'line', 893
+    find_lex $P2470, "$/"
+    get_hll_global $P2471, ["PAST"], "Regex"
+    find_lex $P2472, "$/"
+    unless_null $P2472, vivify_687
+    $P2472 = root_new ['parrot';'Hash']
+  vivify_687:
+    set $P2473, $P2472["var"]
+    unless_null $P2473, vivify_688
+    new $P2473, "Undef"
+  vivify_688:
+    $P2474 = $P2473."ast"()
+    find_lex $P2475, "$/"
+    $P2476 = $P2471."new"("!INTERPOLATE", $P2474, "subrule" :named("pasttype"), "method" :named("subtype"), $P2475 :named("node"))
+    $P2477 = $P2470."!make"($P2476)
+.annotate 'line', 892
+    .return ($P2477)
+  control_2467:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2384, exception, "payload"
-    .return ($P2384)
+    getattribute $P2478, exception, "payload"
+    .return ($P2478)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "assertion:sym<{ }>"  :subid("137_1283975952.27658") :method :outer("133_1283975952.27658")
-    .param pmc param_2388
-.annotate 'line', 0
-    new $P2387, 'ExceptionHandler'
-    set_addr $P2387, control_2386
-    $P2387."handle_types"(.CONTROL_RETURN)
-    push_eh $P2387
-    .lex "self", self
-    .lex "$/", param_2388
-    find_lex $P2389, "$/"
-    get_hll_global $P2390, ["PAST"], "Regex"
-    find_lex $P2391, "$/"
-    unless_null $P2391, vivify_662
-    $P2391 = root_new ['parrot';'Hash']
-  vivify_662:
-    set $P2392, $P2391["codeblock"]
-    unless_null $P2392, vivify_663
-    new $P2392, "Undef"
-  vivify_663:
-    $P2393 = $P2392."ast"()
-    find_lex $P2394, "$/"
-    $P2395 = $P2390."new"("!INTERPOLATE_REGEX", $P2393, "subrule" :named("pasttype"), "method" :named("subtype"), $P2394 :named("node"))
-    $P2396 = $P2389."!make"($P2395)
-    .return ($P2396)
-  control_2386:
+.sub "assertion:sym<{ }>"  :subid("142_1284728484.24945") :method :outer("138_1284728484.24945")
+    .param pmc param_2482
+.annotate 'line', 897
+    new $P2481, 'ExceptionHandler'
+    set_addr $P2481, control_2480
+    $P2481."handle_types"(.CONTROL_RETURN)
+    push_eh $P2481
+    .lex "self", self
+    .lex "$/", param_2482
+.annotate 'line', 898
+    find_lex $P2483, "$/"
+    get_hll_global $P2484, ["PAST"], "Regex"
+    find_lex $P2485, "$/"
+    unless_null $P2485, vivify_689
+    $P2485 = root_new ['parrot';'Hash']
+  vivify_689:
+    set $P2486, $P2485["codeblock"]
+    unless_null $P2486, vivify_690
+    new $P2486, "Undef"
+  vivify_690:
+    $P2487 = $P2486."ast"()
+    find_lex $P2488, "$/"
+    $P2489 = $P2484."new"("!INTERPOLATE_REGEX", $P2487, "subrule" :named("pasttype"), "method" :named("subtype"), $P2488 :named("node"))
+    $P2490 = $P2483."!make"($P2489)
+.annotate 'line', 897
+    .return ($P2490)
+  control_2480:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2397, exception, "payload"
-    .return ($P2397)
+    getattribute $P2491, exception, "payload"
+    .return ($P2491)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "assertion:sym<?{ }>"  :subid("138_1283975952.27658") :method :outer("133_1283975952.27658")
-    .param pmc param_2401
-.annotate 'line', 0
-    new $P2400, 'ExceptionHandler'
-    set_addr $P2400, control_2399
-    $P2400."handle_types"(.CONTROL_RETURN)
-    push_eh $P2400
-    .lex "self", self
-    .lex "$/", param_2401
-    find_lex $P2402, "$/"
-    get_hll_global $P2403, ["PAST"], "Regex"
-    find_lex $P2404, "$/"
-    unless_null $P2404, vivify_664
-    $P2404 = root_new ['parrot';'Hash']
-  vivify_664:
-    set $P2405, $P2404["codeblock"]
-    unless_null $P2405, vivify_665
-    new $P2405, "Undef"
-  vivify_665:
-    $P2406 = $P2405."ast"()
-    find_lex $P2407, "$/"
-    unless_null $P2407, vivify_666
-    $P2407 = root_new ['parrot';'Hash']
-  vivify_666:
-    set $P2408, $P2407["zw"]
-    unless_null $P2408, vivify_667
-    new $P2408, "Undef"
-  vivify_667:
-    set $S2409, $P2408
-    iseq $I2410, $S2409, "!"
-    find_lex $P2411, "$/"
-    $P2412 = $P2403."new"($P2406, "zerowidth" :named("subtype"), $I2410 :named("negate"), "pastnode" :named("pasttype"), $P2411 :named("node"))
-    $P2413 = $P2402."!make"($P2412)
-    .return ($P2413)
-  control_2399:
+.sub "assertion:sym<?{ }>"  :subid("143_1284728484.24945") :method :outer("138_1284728484.24945")
+    .param pmc param_2495
+.annotate 'line', 902
+    new $P2494, 'ExceptionHandler'
+    set_addr $P2494, control_2493
+    $P2494."handle_types"(.CONTROL_RETURN)
+    push_eh $P2494
+    .lex "self", self
+    .lex "$/", param_2495
+.annotate 'line', 903
+    find_lex $P2496, "$/"
+    get_hll_global $P2497, ["PAST"], "Regex"
+    find_lex $P2498, "$/"
+    unless_null $P2498, vivify_691
+    $P2498 = root_new ['parrot';'Hash']
+  vivify_691:
+    set $P2499, $P2498["codeblock"]
+    unless_null $P2499, vivify_692
+    new $P2499, "Undef"
+  vivify_692:
+    $P2500 = $P2499."ast"()
+.annotate 'line', 904
+    find_lex $P2501, "$/"
+    unless_null $P2501, vivify_693
+    $P2501 = root_new ['parrot';'Hash']
+  vivify_693:
+    set $P2502, $P2501["zw"]
+    unless_null $P2502, vivify_694
+    new $P2502, "Undef"
+  vivify_694:
+    set $S2503, $P2502
+    iseq $I2504, $S2503, "!"
+    find_lex $P2505, "$/"
+    $P2506 = $P2497."new"($P2500, "zerowidth" :named("subtype"), $I2504 :named("negate"), "pastnode" :named("pasttype"), $P2505 :named("node"))
+.annotate 'line', 903
+    $P2507 = $P2496."!make"($P2506)
+.annotate 'line', 902
+    .return ($P2507)
+  control_2493:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2414, exception, "payload"
-    .return ($P2414)
+    getattribute $P2508, exception, "payload"
+    .return ($P2508)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "assertion:sym<var>"  :subid("139_1283975952.27658") :method :outer("133_1283975952.27658")
-    .param pmc param_2418
-.annotate 'line', 0
-    new $P2417, 'ExceptionHandler'
-    set_addr $P2417, control_2416
-    $P2417."handle_types"(.CONTROL_RETURN)
-    push_eh $P2417
-    .lex "self", self
-    .lex "$/", param_2418
-    find_lex $P2419, "$/"
-    get_hll_global $P2420, ["PAST"], "Regex"
-    find_lex $P2421, "$/"
-    unless_null $P2421, vivify_668
-    $P2421 = root_new ['parrot';'Hash']
-  vivify_668:
-    set $P2422, $P2421["var"]
-    unless_null $P2422, vivify_669
-    new $P2422, "Undef"
-  vivify_669:
-    $P2423 = $P2422."ast"()
-    find_lex $P2424, "$/"
-    $P2425 = $P2420."new"("!INTERPOLATE_REGEX", $P2423, "subrule" :named("pasttype"), "method" :named("subtype"), $P2424 :named("node"))
-    $P2426 = $P2419."!make"($P2425)
-    .return ($P2426)
-  control_2416:
+.sub "assertion:sym<var>"  :subid("144_1284728484.24945") :method :outer("138_1284728484.24945")
+    .param pmc param_2512
+.annotate 'line', 908
+    new $P2511, 'ExceptionHandler'
+    set_addr $P2511, control_2510
+    $P2511."handle_types"(.CONTROL_RETURN)
+    push_eh $P2511
+    .lex "self", self
+    .lex "$/", param_2512
+.annotate 'line', 909
+    find_lex $P2513, "$/"
+    get_hll_global $P2514, ["PAST"], "Regex"
+    find_lex $P2515, "$/"
+    unless_null $P2515, vivify_695
+    $P2515 = root_new ['parrot';'Hash']
+  vivify_695:
+    set $P2516, $P2515["var"]
+    unless_null $P2516, vivify_696
+    new $P2516, "Undef"
+  vivify_696:
+    $P2517 = $P2516."ast"()
+    find_lex $P2518, "$/"
+    $P2519 = $P2514."new"("!INTERPOLATE_REGEX", $P2517, "subrule" :named("pasttype"), "method" :named("subtype"), $P2518 :named("node"))
+    $P2520 = $P2513."!make"($P2519)
+.annotate 'line', 908
+    .return ($P2520)
+  control_2510:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2427, exception, "payload"
-    .return ($P2427)
+    getattribute $P2521, exception, "payload"
+    .return ($P2521)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "codeblock"  :subid("140_1283975952.27658") :method :outer("133_1283975952.27658")
-    .param pmc param_2431
-.annotate 'line', 0
-    new $P2430, 'ExceptionHandler'
-    set_addr $P2430, control_2429
-    $P2430."handle_types"(.CONTROL_RETURN)
-    push_eh $P2430
-    .lex "self", self
-    .lex "$/", param_2431
-    new $P2432, "Undef"
-    .lex "$block", $P2432
-    new $P2433, "Undef"
-    .lex "$past", $P2433
-    find_lex $P2434, "$/"
-    unless_null $P2434, vivify_670
-    $P2434 = root_new ['parrot';'Hash']
-  vivify_670:
-    set $P2435, $P2434["block"]
-    unless_null $P2435, vivify_671
-    new $P2435, "Undef"
-  vivify_671:
-    $P2436 = $P2435."ast"()
-    store_lex "$block", $P2436
-    find_lex $P2437, "$block"
-    $P2437."blocktype"("immediate")
-    get_hll_global $P2438, ["PAST"], "Stmts"
-    get_hll_global $P2439, ["PAST"], "Op"
-    get_hll_global $P2440, ["PAST"], "Var"
-    $P2441 = $P2440."new"("$/" :named("name"))
-    get_hll_global $P2442, ["PAST"], "Op"
-    get_hll_global $P2443, ["PAST"], "Var"
-    $P2444 = $P2443."new"(unicode:"$\x{a2}" :named("name"))
-    $P2445 = $P2442."new"($P2444, "MATCH" :named("name"), "callmethod" :named("pasttype"))
-    $P2446 = $P2439."new"($P2441, $P2445, "bind" :named("pasttype"))
-    find_lex $P2447, "$block"
-    $P2448 = $P2438."new"($P2446, $P2447)
-    store_lex "$past", $P2448
-    find_lex $P2449, "$/"
-    find_lex $P2450, "$past"
-    $P2451 = $P2449."!make"($P2450)
-    .return ($P2451)
-  control_2429:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P2452, exception, "payload"
-    .return ($P2452)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "_block2455" :load :anon :subid("141_1283975952.27658")
-.annotate 'line', 0
-    .const 'Sub' $P2457 = "11_1283975952.27658" 
-    $P2458 = $P2457()
-    .return ($P2458)
+.sub "codeblock"  :subid("145_1284728484.24945") :method :outer("138_1284728484.24945")
+    .param pmc param_2525
+.annotate 'line', 913
+    new $P2524, 'ExceptionHandler'
+    set_addr $P2524, control_2523
+    $P2524."handle_types"(.CONTROL_RETURN)
+    push_eh $P2524
+    .lex "self", self
+    .lex "$/", param_2525
+.annotate 'line', 914
+    new $P2526, "Undef"
+    .lex "$block", $P2526
+.annotate 'line', 916
+    new $P2527, "Undef"
+    .lex "$past", $P2527
+.annotate 'line', 914
+    find_lex $P2528, "$/"
+    unless_null $P2528, vivify_697
+    $P2528 = root_new ['parrot';'Hash']
+  vivify_697:
+    set $P2529, $P2528["block"]
+    unless_null $P2529, vivify_698
+    new $P2529, "Undef"
+  vivify_698:
+    $P2530 = $P2529."ast"()
+    store_lex "$block", $P2530
+.annotate 'line', 915
+    find_lex $P2531, "$block"
+    $P2531."blocktype"("immediate")
+.annotate 'line', 917
+    get_hll_global $P2532, ["PAST"], "Stmts"
+.annotate 'line', 918
+    get_hll_global $P2533, ["PAST"], "Op"
+.annotate 'line', 919
+    get_hll_global $P2534, ["PAST"], "Var"
+    $P2535 = $P2534."new"("$/" :named("name"))
+.annotate 'line', 920
+    get_hll_global $P2536, ["PAST"], "Op"
+.annotate 'line', 921
+    get_hll_global $P2537, ["PAST"], "Var"
+    $P2538 = $P2537."new"(unicode:"$\x{a2}" :named("name"))
+    $P2539 = $P2536."new"($P2538, "MATCH" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 920
+    $P2540 = $P2533."new"($P2535, $P2539, "bind" :named("pasttype"))
+.annotate 'line', 918
+    find_lex $P2541, "$block"
+    $P2542 = $P2532."new"($P2540, $P2541)
+.annotate 'line', 917
+    store_lex "$past", $P2542
+.annotate 'line', 929
+    find_lex $P2543, "$/"
+    find_lex $P2544, "$past"
+    $P2545 = $P2543."!make"($P2544)
+.annotate 'line', 913
+    .return ($P2545)
+  control_2523:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2546, exception, "payload"
+    .return ($P2546)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block2549" :load :anon :subid("146_1284728484.24945")
+.annotate 'line', 3
+    .const 'Sub' $P2551 = "11_1284728484.24945" 
+    $P2552 = $P2551()
+    .return ($P2552)
 .end
 
 
 .namespace []
-.sub "_block2465" :load :anon :subid("143_1283975952.27658")
-.annotate 'line', 0
-    .const 'Sub' $P2467 = "10_1283975952.27658" 
-    $P2468 = $P2467()
-    .return ($P2468)
+.sub "_block2559" :load :anon :subid("148_1284728484.24945")
+.annotate 'line', 1
+    .const 'Sub' $P2561 = "10_1284728484.24945" 
+    $P2562 = $P2561()
+    .return ($P2562)
 .end
 
 ### .include 'src/cheats/nqp-builtins.pir'

Modified: branches/gc_massacre/ext/nqp-rx/src/stage0/P6Regex-s0.pir
==============================================================================
--- branches/gc_massacre/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Wed Sep 22 10:45:52 2010	(r49243)
@@ -16,170 +16,175 @@
 ### .include 'gen/p6regex-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1283975941.34404")
+.sub "_block11"  :anon :subid("10_1284728471.30547")
 .annotate 'line', 0
     get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" 
     capture_lex $P14
+.annotate 'line', 1
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
     $I0 = can $P0, "ctxsave"
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
+.annotate 'line', 3
     get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" 
     capture_lex $P14
-    $P597 = $P14()
-    .return ($P597)
-    .const 'Sub' $P599 = "168_1283975941.34404" 
-    .return ($P599)
+    $P620 = $P14()
+.annotate 'line', 1
+    .return ($P620)
+    .const 'Sub' $P622 = "174_1284728471.30547" 
+    .return ($P622)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post169") :outer("10_1283975941.34404")
+.sub "" :load :init :subid("post175") :outer("10_1284728471.30547")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1283975941.34404" 
+    .const 'Sub' $P12 = "10_1284728471.30547" 
     .local pmc block
     set block, $P12
-    $P602 = get_root_global ["parrot"], "P6metaclass"
-    $P602."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent"))
+    $P625 = get_root_global ["parrot"], "P6metaclass"
+    $P625."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent"))
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block13"  :subid("11_1283975941.34404") :outer("10_1283975941.34404")
-.annotate 'line', 0
-    .const 'Sub' $P586 = "165_1283975941.34404" 
-    capture_lex $P586
-    .const 'Sub' $P579 = "163_1283975941.34404" 
-    capture_lex $P579
-    .const 'Sub' $P572 = "161_1283975941.34404" 
-    capture_lex $P572
-    .const 'Sub' $P552 = "156_1283975941.34404" 
-    capture_lex $P552
-    .const 'Sub' $P518 = "150_1283975941.34404" 
-    capture_lex $P518
-    .const 'Sub' $P506 = "147_1283975941.34404" 
-    capture_lex $P506
-    .const 'Sub' $P494 = "144_1283975941.34404" 
-    capture_lex $P494
-    .const 'Sub' $P488 = "142_1283975941.34404" 
-    capture_lex $P488
-    .const 'Sub' $P477 = "139_1283975941.34404" 
-    capture_lex $P477
-    .const 'Sub' $P466 = "136_1283975941.34404" 
-    capture_lex $P466
-    .const 'Sub' $P457 = "132_1283975941.34404" 
-    capture_lex $P457
-    .const 'Sub' $P447 = "129_1283975941.34404" 
-    capture_lex $P447
-    .const 'Sub' $P441 = "127_1283975941.34404" 
-    capture_lex $P441
-    .const 'Sub' $P435 = "125_1283975941.34404" 
-    capture_lex $P435
-    .const 'Sub' $P429 = "123_1283975941.34404" 
-    capture_lex $P429
-    .const 'Sub' $P423 = "121_1283975941.34404" 
-    capture_lex $P423
-    .const 'Sub' $P415 = "119_1283975941.34404" 
-    capture_lex $P415
-    .const 'Sub' $P404 = "117_1283975941.34404" 
+.sub "_block13"  :subid("11_1284728471.30547") :outer("10_1284728471.30547")
+.annotate 'line', 3
+    .const 'Sub' $P609 = "171_1284728471.30547" 
+    capture_lex $P609
+    .const 'Sub' $P602 = "169_1284728471.30547" 
+    capture_lex $P602
+    .const 'Sub' $P595 = "167_1284728471.30547" 
+    capture_lex $P595
+    .const 'Sub' $P575 = "162_1284728471.30547" 
+    capture_lex $P575
+    .const 'Sub' $P541 = "156_1284728471.30547" 
+    capture_lex $P541
+    .const 'Sub' $P529 = "153_1284728471.30547" 
+    capture_lex $P529
+    .const 'Sub' $P517 = "150_1284728471.30547" 
+    capture_lex $P517
+    .const 'Sub' $P511 = "148_1284728471.30547" 
+    capture_lex $P511
+    .const 'Sub' $P500 = "145_1284728471.30547" 
+    capture_lex $P500
+    .const 'Sub' $P489 = "142_1284728471.30547" 
+    capture_lex $P489
+    .const 'Sub' $P480 = "138_1284728471.30547" 
+    capture_lex $P480
+    .const 'Sub' $P470 = "135_1284728471.30547" 
+    capture_lex $P470
+    .const 'Sub' $P464 = "133_1284728471.30547" 
+    capture_lex $P464
+    .const 'Sub' $P458 = "131_1284728471.30547" 
+    capture_lex $P458
+    .const 'Sub' $P452 = "129_1284728471.30547" 
+    capture_lex $P452
+    .const 'Sub' $P446 = "127_1284728471.30547" 
+    capture_lex $P446
+    .const 'Sub' $P438 = "125_1284728471.30547" 
+    capture_lex $P438
+    .const 'Sub' $P427 = "123_1284728471.30547" 
+    capture_lex $P427
+    .const 'Sub' $P416 = "121_1284728471.30547" 
+    capture_lex $P416
+    .const 'Sub' $P410 = "119_1284728471.30547" 
+    capture_lex $P410
+    .const 'Sub' $P404 = "117_1284728471.30547" 
     capture_lex $P404
-    .const 'Sub' $P393 = "115_1283975941.34404" 
-    capture_lex $P393
-    .const 'Sub' $P387 = "113_1283975941.34404" 
-    capture_lex $P387
-    .const 'Sub' $P381 = "111_1283975941.34404" 
-    capture_lex $P381
-    .const 'Sub' $P375 = "109_1283975941.34404" 
-    capture_lex $P375
-    .const 'Sub' $P369 = "107_1283975941.34404" 
-    capture_lex $P369
-    .const 'Sub' $P363 = "105_1283975941.34404" 
-    capture_lex $P363
-    .const 'Sub' $P357 = "103_1283975941.34404" 
-    capture_lex $P357
-    .const 'Sub' $P351 = "101_1283975941.34404" 
-    capture_lex $P351
-    .const 'Sub' $P345 = "99_1283975941.34404" 
-    capture_lex $P345
-    .const 'Sub' $P333 = "95_1283975941.34404" 
-    capture_lex $P333
-    .const 'Sub' $P323 = "93_1283975941.34404" 
-    capture_lex $P323
-    .const 'Sub' $P316 = "91_1283975941.34404" 
-    capture_lex $P316
-    .const 'Sub' $P304 = "89_1283975941.34404" 
-    capture_lex $P304
-    .const 'Sub' $P297 = "87_1283975941.34404" 
-    capture_lex $P297
-    .const 'Sub' $P291 = "85_1283975941.34404" 
-    capture_lex $P291
-    .const 'Sub' $P285 = "83_1283975941.34404" 
-    capture_lex $P285
-    .const 'Sub' $P279 = "81_1283975941.34404" 
-    capture_lex $P279
-    .const 'Sub' $P272 = "79_1283975941.34404" 
-    capture_lex $P272
-    .const 'Sub' $P265 = "77_1283975941.34404" 
-    capture_lex $P265
-    .const 'Sub' $P258 = "75_1283975941.34404" 
-    capture_lex $P258
-    .const 'Sub' $P251 = "73_1283975941.34404" 
-    capture_lex $P251
-    .const 'Sub' $P245 = "71_1283975941.34404" 
-    capture_lex $P245
-    .const 'Sub' $P239 = "69_1283975941.34404" 
+    .const 'Sub' $P398 = "115_1284728471.30547" 
+    capture_lex $P398
+    .const 'Sub' $P392 = "113_1284728471.30547" 
+    capture_lex $P392
+    .const 'Sub' $P386 = "111_1284728471.30547" 
+    capture_lex $P386
+    .const 'Sub' $P380 = "109_1284728471.30547" 
+    capture_lex $P380
+    .const 'Sub' $P374 = "107_1284728471.30547" 
+    capture_lex $P374
+    .const 'Sub' $P368 = "105_1284728471.30547" 
+    capture_lex $P368
+    .const 'Sub' $P356 = "101_1284728471.30547" 
+    capture_lex $P356
+    .const 'Sub' $P346 = "99_1284728471.30547" 
+    capture_lex $P346
+    .const 'Sub' $P339 = "97_1284728471.30547" 
+    capture_lex $P339
+    .const 'Sub' $P327 = "95_1284728471.30547" 
+    capture_lex $P327
+    .const 'Sub' $P320 = "93_1284728471.30547" 
+    capture_lex $P320
+    .const 'Sub' $P314 = "91_1284728471.30547" 
+    capture_lex $P314
+    .const 'Sub' $P308 = "89_1284728471.30547" 
+    capture_lex $P308
+    .const 'Sub' $P302 = "87_1284728471.30547" 
+    capture_lex $P302
+    .const 'Sub' $P295 = "85_1284728471.30547" 
+    capture_lex $P295
+    .const 'Sub' $P288 = "83_1284728471.30547" 
+    capture_lex $P288
+    .const 'Sub' $P281 = "81_1284728471.30547" 
+    capture_lex $P281
+    .const 'Sub' $P274 = "79_1284728471.30547" 
+    capture_lex $P274
+    .const 'Sub' $P268 = "77_1284728471.30547" 
+    capture_lex $P268
+    .const 'Sub' $P262 = "75_1284728471.30547" 
+    capture_lex $P262
+    .const 'Sub' $P256 = "73_1284728471.30547" 
+    capture_lex $P256
+    .const 'Sub' $P250 = "71_1284728471.30547" 
+    capture_lex $P250
+    .const 'Sub' $P244 = "69_1284728471.30547" 
+    capture_lex $P244
+    .const 'Sub' $P239 = "67_1284728471.30547" 
     capture_lex $P239
-    .const 'Sub' $P233 = "67_1283975941.34404" 
-    capture_lex $P233
-    .const 'Sub' $P227 = "65_1283975941.34404" 
-    capture_lex $P227
-    .const 'Sub' $P221 = "63_1283975941.34404" 
-    capture_lex $P221
-    .const 'Sub' $P216 = "61_1283975941.34404" 
+    .const 'Sub' $P234 = "65_1284728471.30547" 
+    capture_lex $P234
+    .const 'Sub' $P228 = "63_1284728471.30547" 
+    capture_lex $P228
+    .const 'Sub' $P222 = "61_1284728471.30547" 
+    capture_lex $P222
+    .const 'Sub' $P216 = "59_1284728471.30547" 
     capture_lex $P216
-    .const 'Sub' $P211 = "59_1283975941.34404" 
-    capture_lex $P211
-    .const 'Sub' $P205 = "57_1283975941.34404" 
-    capture_lex $P205
-    .const 'Sub' $P199 = "55_1283975941.34404" 
-    capture_lex $P199
-    .const 'Sub' $P193 = "53_1283975941.34404" 
-    capture_lex $P193
-    .const 'Sub' $P178 = "48_1283975941.34404" 
-    capture_lex $P178
-    .const 'Sub' $P163 = "46_1283975941.34404" 
+    .const 'Sub' $P201 = "54_1284728471.30547" 
+    capture_lex $P201
+    .const 'Sub' $P186 = "52_1284728471.30547" 
+    capture_lex $P186
+    .const 'Sub' $P163 = "46_1284728471.30547" 
     capture_lex $P163
-    .const 'Sub' $P156 = "44_1283975941.34404" 
+    .const 'Sub' $P156 = "44_1284728471.30547" 
     capture_lex $P156
-    .const 'Sub' $P149 = "42_1283975941.34404" 
+    .const 'Sub' $P149 = "42_1284728471.30547" 
     capture_lex $P149
-    .const 'Sub' $P142 = "40_1283975941.34404" 
+    .const 'Sub' $P142 = "40_1284728471.30547" 
     capture_lex $P142
-    .const 'Sub' $P125 = "35_1283975941.34404" 
+    .const 'Sub' $P125 = "35_1284728471.30547" 
     capture_lex $P125
-    .const 'Sub' $P113 = "32_1283975941.34404" 
+    .const 'Sub' $P113 = "32_1284728471.30547" 
     capture_lex $P113
-    .const 'Sub' $P106 = "30_1283975941.34404" 
+    .const 'Sub' $P106 = "30_1284728471.30547" 
     capture_lex $P106
-    .const 'Sub' $P97 = "28_1283975941.34404" 
+    .const 'Sub' $P97 = "28_1284728471.30547" 
     capture_lex $P97
-    .const 'Sub' $P87 = "26_1283975941.34404" 
+    .const 'Sub' $P87 = "26_1284728471.30547" 
     capture_lex $P87
-    .const 'Sub' $P80 = "24_1283975941.34404" 
+    .const 'Sub' $P80 = "24_1284728471.30547" 
     capture_lex $P80
-    .const 'Sub' $P68 = "22_1283975941.34404" 
+    .const 'Sub' $P68 = "22_1284728471.30547" 
     capture_lex $P68
-    .const 'Sub' $P61 = "20_1283975941.34404" 
+    .const 'Sub' $P61 = "20_1284728471.30547" 
     capture_lex $P61
-    .const 'Sub' $P54 = "18_1283975941.34404" 
+    .const 'Sub' $P54 = "18_1284728471.30547" 
     capture_lex $P54
-    .const 'Sub' $P44 = "15_1283975941.34404" 
+    .const 'Sub' $P44 = "15_1284728471.30547" 
     capture_lex $P44
-    .const 'Sub' $P37 = "13_1283975941.34404" 
+    .const 'Sub' $P37 = "13_1284728471.30547" 
     capture_lex $P37
-    .const 'Sub' $P15 = "12_1283975941.34404" 
+    .const 'Sub' $P15 = "12_1284728471.30547" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -187,22 +192,22 @@
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
-    .const 'Sub' $P586 = "165_1283975941.34404" 
-    capture_lex $P586
-    .return ($P586)
-    .const 'Sub' $P594 = "167_1283975941.34404" 
-    .return ($P594)
+    .const 'Sub' $P609 = "171_1284728471.30547" 
+    capture_lex $P609
+    .return ($P609)
+    .const 'Sub' $P617 = "173_1284728471.30547" 
+    .return ($P617)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
 .include "except_types.pasm"
-.sub "obs"  :subid("12_1283975941.34404") :method :outer("11_1283975941.34404")
+.sub "obs"  :subid("12_1284728471.30547") :method :outer("11_1284728471.30547")
     .param pmc param_18
     .param pmc param_19
     .param pmc param_20 :optional
     .param int has_param_20 :opt_flag
-.annotate 'line', 0
+.annotate 'line', 3
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
     $P17."handle_types"(.CONTROL_RETURN)
@@ -210,12 +215,13 @@
     .lex "self", self
     .lex "$old", param_18
     .lex "$new", param_19
-    if has_param_20, optparam_170
+    if has_param_20, optparam_176
     new $P21, "String"
     assign $P21, "in Perl 6"
     set param_20, $P21
-  optparam_170:
+  optparam_176:
     .lex "$when", param_20
+.annotate 'line', 4
     find_lex $P22, "self"
     new $P23, "String"
     assign $P23, "Unsupported use of "
@@ -223,6 +229,7 @@
     set $S25, $P24
     concat $P26, $P23, $S25
     concat $P27, $P26, ";"
+.annotate 'line', 5
     find_lex $P28, "$when"
     set $S29, $P28
     concat $P30, $P27, $S29
@@ -231,6 +238,7 @@
     set $S33, $P32
     concat $P34, $P31, $S33
     $P35 = $P22."panic"($P34)
+.annotate 'line', 3
     .return ($P35)
   control_16:
     .local pmc exception 
@@ -241,8 +249,8 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "ws"  :subid("13_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
+.sub "ws"  :subid("13_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
     .local string rx38_tgt
     .local int rx38_pos
     .local int rx38_off
@@ -263,9 +271,9 @@
     substr rx38_tgt, rx38_tgt, rx38_off
   rx38_start:
     eq $I10, 1, rx38_restart
-    if_null rx38_debug, debug_171
+    if_null rx38_debug, debug_177
     rx38_cur."!cursor_debug"("START", "ws")
-  debug_171:
+  debug_177:
     $I10 = self.'from'()
     ne $I10, -1, rxscan41_done
     goto rxscan41_scan
@@ -278,6 +286,7 @@
     set_addr $I10, rxscan41_loop
     rx38_cur."!mark_push"(0, rx38_pos, $I10)
   rxscan41_done:
+.annotate 'line', 8
   # rx rxquantr42 ** 0..*
     set_addr $I10, rxquantr42_done
     rx38_cur."!mark_push"(0, rx38_pos, $I10)
@@ -313,14 +322,15 @@
   rxquantr42_done:
   # rx pass
     rx38_cur."!cursor_pass"(rx38_pos, "ws")
-    if_null rx38_debug, debug_172
+    if_null rx38_debug, debug_178
     rx38_cur."!cursor_debug"("PASS", "ws", " at pos=", rx38_pos)
-  debug_172:
+  debug_178:
     .return (rx38_cur)
   rx38_restart:
-    if_null rx38_debug, debug_173
+.annotate 'line', 3
+    if_null rx38_debug, debug_179
     rx38_cur."!cursor_debug"("NEXT", "ws")
-  debug_173:
+  debug_179:
   rx38_fail:
     (rx38_rep, rx38_pos, $I10, $P10) = rx38_cur."!mark_fail"(0)
     lt rx38_pos, -1, rx38_done
@@ -328,17 +338,17 @@
     jump $I10
   rx38_done:
     rx38_cur."!cursor_fail"()
-    if_null rx38_debug, debug_174
+    if_null rx38_debug, debug_180
     rx38_cur."!cursor_debug"("FAIL", "ws")
-  debug_174:
+  debug_180:
     .return (rx38_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__ws"  :subid("14_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__ws"  :subid("14_1284728471.30547") :method
+.annotate 'line', 3
     new $P40, "ResizablePMCArray"
     push $P40, ""
     .return ($P40)
@@ -346,9 +356,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "normspace"  :subid("15_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .const 'Sub' $P50 = "17_1283975941.34404" 
+.sub "normspace"  :subid("15_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .const 'Sub' $P50 = "17_1284728471.30547" 
     capture_lex $P50
     .local string rx45_tgt
     .local int rx45_pos
@@ -370,9 +380,9 @@
     substr rx45_tgt, rx45_tgt, rx45_off
   rx45_start:
     eq $I10, 1, rx45_restart
-    if_null rx45_debug, debug_175
+    if_null rx45_debug, debug_181
     rx45_cur."!cursor_debug"("START", "normspace")
-  debug_175:
+  debug_181:
     $I10 = self.'from'()
     ne $I10, -1, rxscan48_done
     goto rxscan48_scan
@@ -385,9 +395,10 @@
     set_addr $I10, rxscan48_loop
     rx45_cur."!mark_push"(0, rx45_pos, $I10)
   rxscan48_done:
+.annotate 'line', 10
   # rx subrule "before" subtype=zerowidth negate=
     rx45_cur."!cursor_pos"(rx45_pos)
-    .const 'Sub' $P50 = "17_1283975941.34404" 
+    .const 'Sub' $P50 = "17_1284728471.30547" 
     capture_lex $P50
     $P10 = rx45_cur."before"($P50)
     unless $P10, rx45_fail
@@ -398,14 +409,15 @@
     rx45_pos = $P10."pos"()
   # rx pass
     rx45_cur."!cursor_pass"(rx45_pos, "normspace")
-    if_null rx45_debug, debug_180
+    if_null rx45_debug, debug_186
     rx45_cur."!cursor_debug"("PASS", "normspace", " at pos=", rx45_pos)
-  debug_180:
+  debug_186:
     .return (rx45_cur)
   rx45_restart:
-    if_null rx45_debug, debug_181
+.annotate 'line', 3
+    if_null rx45_debug, debug_187
     rx45_cur."!cursor_debug"("NEXT", "normspace")
-  debug_181:
+  debug_187:
   rx45_fail:
     (rx45_rep, rx45_pos, $I10, $P10) = rx45_cur."!mark_fail"(0)
     lt rx45_pos, -1, rx45_done
@@ -413,17 +425,17 @@
     jump $I10
   rx45_done:
     rx45_cur."!cursor_fail"()
-    if_null rx45_debug, debug_182
+    if_null rx45_debug, debug_188
     rx45_cur."!cursor_debug"("FAIL", "normspace")
-  debug_182:
+  debug_188:
     .return (rx45_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__normspace"  :subid("16_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__normspace"  :subid("16_1284728471.30547") :method
+.annotate 'line', 3
     new $P47, "ResizablePMCArray"
     push $P47, ""
     .return ($P47)
@@ -431,8 +443,8 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block49"  :anon :subid("17_1283975941.34404") :method :outer("15_1283975941.34404")
-.annotate 'line', 0
+.sub "_block49"  :anon :subid("17_1284728471.30547") :method :outer("15_1284728471.30547")
+.annotate 'line', 10
     .local string rx51_tgt
     .local int rx51_pos
     .local int rx51_off
@@ -453,9 +465,9 @@
     substr rx51_tgt, rx51_tgt, rx51_off
   rx51_start:
     eq $I10, 1, rx51_restart
-    if_null rx51_debug, debug_176
+    if_null rx51_debug, debug_182
     rx51_cur."!cursor_debug"("START", "")
-  debug_176:
+  debug_182:
     $I10 = self.'from'()
     ne $I10, -1, rxscan52_done
     goto rxscan52_scan
@@ -489,14 +501,14 @@
   alt53_end:
   # rx pass
     rx51_cur."!cursor_pass"(rx51_pos, "")
-    if_null rx51_debug, debug_177
+    if_null rx51_debug, debug_183
     rx51_cur."!cursor_debug"("PASS", "", " at pos=", rx51_pos)
-  debug_177:
+  debug_183:
     .return (rx51_cur)
   rx51_restart:
-    if_null rx51_debug, debug_178
+    if_null rx51_debug, debug_184
     rx51_cur."!cursor_debug"("NEXT", "")
-  debug_178:
+  debug_184:
   rx51_fail:
     (rx51_rep, rx51_pos, $I10, $P10) = rx51_cur."!mark_fail"(0)
     lt rx51_pos, -1, rx51_done
@@ -504,17 +516,17 @@
     jump $I10
   rx51_done:
     rx51_cur."!cursor_fail"()
-    if_null rx51_debug, debug_179
+    if_null rx51_debug, debug_185
     rx51_cur."!cursor_debug"("FAIL", "")
-  debug_179:
+  debug_185:
     .return (rx51_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "identifier"  :subid("18_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
+.sub "identifier"  :subid("18_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
     .local string rx55_tgt
     .local int rx55_pos
     .local int rx55_off
@@ -535,9 +547,9 @@
     substr rx55_tgt, rx55_tgt, rx55_off
   rx55_start:
     eq $I10, 1, rx55_restart
-    if_null rx55_debug, debug_183
+    if_null rx55_debug, debug_189
     rx55_cur."!cursor_debug"("START", "identifier")
-  debug_183:
+  debug_189:
     $I10 = self.'from'()
     ne $I10, -1, rxscan59_done
     goto rxscan59_scan
@@ -550,6 +562,7 @@
     set_addr $I10, rxscan59_loop
     rx55_cur."!mark_push"(0, rx55_pos, $I10)
   rxscan59_done:
+.annotate 'line', 12
   # rx subrule "ident" subtype=method negate=
     rx55_cur."!cursor_pos"(rx55_pos)
     $P10 = rx55_cur."ident"()
@@ -579,14 +592,15 @@
   rxquantr60_done:
   # rx pass
     rx55_cur."!cursor_pass"(rx55_pos, "identifier")
-    if_null rx55_debug, debug_184
+    if_null rx55_debug, debug_190
     rx55_cur."!cursor_debug"("PASS", "identifier", " at pos=", rx55_pos)
-  debug_184:
+  debug_190:
     .return (rx55_cur)
   rx55_restart:
-    if_null rx55_debug, debug_185
+.annotate 'line', 3
+    if_null rx55_debug, debug_191
     rx55_cur."!cursor_debug"("NEXT", "identifier")
-  debug_185:
+  debug_191:
   rx55_fail:
     (rx55_rep, rx55_pos, $I10, $P10) = rx55_cur."!mark_fail"(0)
     lt rx55_pos, -1, rx55_done
@@ -594,17 +608,17 @@
     jump $I10
   rx55_done:
     rx55_cur."!cursor_fail"()
-    if_null rx55_debug, debug_186
+    if_null rx55_debug, debug_192
     rx55_cur."!cursor_debug"("FAIL", "identifier")
-  debug_186:
+  debug_192:
     .return (rx55_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("19_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__identifier"  :subid("19_1284728471.30547") :method
+.annotate 'line', 3
     $P57 = self."!PREFIX__!subrule"("ident", "")
     new $P58, "ResizablePMCArray"
     push $P58, $P57
@@ -613,8 +627,8 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arg"  :subid("20_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
+.sub "arg"  :subid("20_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
     .local string rx62_tgt
     .local int rx62_pos
     .local int rx62_off
@@ -635,9 +649,9 @@
     substr rx62_tgt, rx62_tgt, rx62_off
   rx62_start:
     eq $I10, 1, rx62_restart
-    if_null rx62_debug, debug_187
+    if_null rx62_debug, debug_193
     rx62_cur."!cursor_debug"("START", "arg")
-  debug_187:
+  debug_193:
     $I10 = self.'from'()
     ne $I10, -1, rxscan65_done
     goto rxscan65_scan
@@ -651,10 +665,11 @@
     rx62_cur."!mark_push"(0, rx62_pos, $I10)
   rxscan65_done:
   alt66_0:
+.annotate 'line', 15
     set_addr $I10, alt66_1
     rx62_cur."!mark_push"(0, rx62_pos, $I10)
+.annotate 'line', 16
   # rx enumcharlist negate=0 zerowidth
-    ge rx62_pos, rx62_eos, rx62_fail
     sub $I10, rx62_pos, rx62_off
     substr $S10, rx62_tgt, $I10, 1
     index $I11, "'", $S10
@@ -670,8 +685,8 @@
   alt66_1:
     set_addr $I10, alt66_2
     rx62_cur."!mark_push"(0, rx62_pos, $I10)
+.annotate 'line', 17
   # rx enumcharlist negate=0 zerowidth
-    ge rx62_pos, rx62_eos, rx62_fail
     sub $I10, rx62_pos, rx62_off
     substr $S10, rx62_tgt, $I10, 1
     index $I11, "\"", $S10
@@ -685,6 +700,7 @@
     rx62_pos = $P10."pos"()
     goto alt66_end
   alt66_2:
+.annotate 'line', 18
   # rx subcapture "val"
     set_addr $I10, rxcap_67_fail
     rx62_cur."!mark_push"(0, rx62_pos, $I10)
@@ -706,16 +722,18 @@
     goto rx62_fail
   rxcap_67_done:
   alt66_end:
+.annotate 'line', 14
   # rx pass
     rx62_cur."!cursor_pass"(rx62_pos, "arg")
-    if_null rx62_debug, debug_188
+    if_null rx62_debug, debug_194
     rx62_cur."!cursor_debug"("PASS", "arg", " at pos=", rx62_pos)
-  debug_188:
+  debug_194:
     .return (rx62_cur)
   rx62_restart:
-    if_null rx62_debug, debug_189
+.annotate 'line', 3
+    if_null rx62_debug, debug_195
     rx62_cur."!cursor_debug"("NEXT", "arg")
-  debug_189:
+  debug_195:
   rx62_fail:
     (rx62_rep, rx62_pos, $I10, $P10) = rx62_cur."!mark_fail"(0)
     lt rx62_pos, -1, rx62_done
@@ -723,17 +741,17 @@
     jump $I10
   rx62_done:
     rx62_cur."!cursor_fail"()
-    if_null rx62_debug, debug_190
+    if_null rx62_debug, debug_196
     rx62_cur."!cursor_debug"("FAIL", "arg")
-  debug_190:
+  debug_196:
     .return (rx62_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arg"  :subid("21_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__arg"  :subid("21_1284728471.30547") :method
+.annotate 'line', 3
     new $P64, "ResizablePMCArray"
     push $P64, ""
     push $P64, "\""
@@ -743,8 +761,8 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arglist"  :subid("22_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
+.sub "arglist"  :subid("22_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
     .local string rx69_tgt
     .local int rx69_pos
     .local int rx69_off
@@ -766,9 +784,9 @@
     substr rx69_tgt, rx69_tgt, rx69_off
   rx69_start:
     eq $I10, 1, rx69_restart
-    if_null rx69_debug, debug_191
+    if_null rx69_debug, debug_197
     rx69_cur."!cursor_debug"("START", "arglist")
-  debug_191:
+  debug_197:
     $I10 = self.'from'()
     ne $I10, -1, rxscan73_done
     goto rxscan73_scan
@@ -781,6 +799,7 @@
     set_addr $I10, rxscan73_loop
     rx69_cur."!mark_push"(0, rx69_pos, $I10)
   rxscan73_done:
+.annotate 'line', 22
   # rx subrule "ws" subtype=method negate=
     rx69_cur."!cursor_pos"(rx69_pos)
     $P10 = rx69_cur."ws"()
@@ -839,14 +858,15 @@
     rx69_pos = $P10."pos"()
   # rx pass
     rx69_cur."!cursor_pass"(rx69_pos, "arglist")
-    if_null rx69_debug, debug_192
+    if_null rx69_debug, debug_198
     rx69_cur."!cursor_debug"("PASS", "arglist", " at pos=", rx69_pos)
-  debug_192:
+  debug_198:
     .return (rx69_cur)
   rx69_restart:
-    if_null rx69_debug, debug_193
+.annotate 'line', 3
+    if_null rx69_debug, debug_199
     rx69_cur."!cursor_debug"("NEXT", "arglist")
-  debug_193:
+  debug_199:
   rx69_fail:
     (rx69_rep, rx69_pos, $I10, $P10) = rx69_cur."!mark_fail"(0)
     lt rx69_pos, -1, rx69_done
@@ -854,17 +874,17 @@
     jump $I10
   rx69_done:
     rx69_cur."!cursor_fail"()
-    if_null rx69_debug, debug_194
+    if_null rx69_debug, debug_200
     rx69_cur."!cursor_debug"("FAIL", "arglist")
-  debug_194:
+  debug_200:
     .return (rx69_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("23_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__arglist"  :subid("23_1284728471.30547") :method
+.annotate 'line', 3
     $P71 = self."!PREFIX__!subrule"("ws", "")
     new $P72, "ResizablePMCArray"
     push $P72, $P71
@@ -873,8 +893,8 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "TOP"  :subid("24_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
+.sub "TOP"  :subid("24_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
     .local string rx81_tgt
     .local int rx81_pos
     .local int rx81_off
@@ -895,9 +915,9 @@
     substr rx81_tgt, rx81_tgt, rx81_off
   rx81_start:
     eq $I10, 1, rx81_restart
-    if_null rx81_debug, debug_195
+    if_null rx81_debug, debug_201
     rx81_cur."!cursor_debug"("START", "TOP")
-  debug_195:
+  debug_201:
     $I10 = self.'from'()
     ne $I10, -1, rxscan85_done
     goto rxscan85_scan
@@ -910,6 +930,7 @@
     set_addr $I10, rxscan85_loop
     rx81_cur."!mark_push"(0, rx81_pos, $I10)
   rxscan85_done:
+.annotate 'line', 25
   # rx subrule "nibbler" subtype=capture negate=
     rx81_cur."!cursor_pos"(rx81_pos)
     $P10 = rx81_cur."nibbler"()
@@ -918,6 +939,7 @@
     $P10."!cursor_names"("nibbler")
     rx81_pos = $P10."pos"()
   alt86_0:
+.annotate 'line', 26
     set_addr $I10, alt86_1
     rx81_cur."!mark_push"(0, rx81_pos, $I10)
   # rxanchor eos
@@ -930,16 +952,18 @@
     unless $P10, rx81_fail
     rx81_pos = $P10."pos"()
   alt86_end:
+.annotate 'line', 24
   # rx pass
     rx81_cur."!cursor_pass"(rx81_pos, "TOP")
-    if_null rx81_debug, debug_196
+    if_null rx81_debug, debug_202
     rx81_cur."!cursor_debug"("PASS", "TOP", " at pos=", rx81_pos)
-  debug_196:
+  debug_202:
     .return (rx81_cur)
   rx81_restart:
-    if_null rx81_debug, debug_197
+.annotate 'line', 3
+    if_null rx81_debug, debug_203
     rx81_cur."!cursor_debug"("NEXT", "TOP")
-  debug_197:
+  debug_203:
   rx81_fail:
     (rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0)
     lt rx81_pos, -1, rx81_done
@@ -947,17 +971,17 @@
     jump $I10
   rx81_done:
     rx81_cur."!cursor_fail"()
-    if_null rx81_debug, debug_198
+    if_null rx81_debug, debug_204
     rx81_cur."!cursor_debug"("FAIL", "TOP")
-  debug_198:
+  debug_204:
     .return (rx81_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__TOP"  :subid("25_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__TOP"  :subid("25_1284728471.30547") :method
+.annotate 'line', 3
     $P83 = self."!PREFIX__!subrule"("nibbler", "")
     new $P84, "ResizablePMCArray"
     push $P84, $P83
@@ -966,8 +990,8 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "nibbler"  :subid("26_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
+.sub "nibbler"  :subid("26_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
     .local string rx88_tgt
     .local int rx88_pos
     .local int rx88_off
@@ -989,9 +1013,9 @@
     substr rx88_tgt, rx88_tgt, rx88_off
   rx88_start:
     eq $I10, 1, rx88_restart
-    if_null rx88_debug, debug_199
+    if_null rx88_debug, debug_205
     rx88_cur."!cursor_debug"("START", "nibbler")
-  debug_199:
+  debug_205:
     $I10 = self.'from'()
     ne $I10, -1, rxscan91_done
     goto rxscan91_scan
@@ -1004,9 +1028,11 @@
     set_addr $I10, rxscan91_loop
     rx88_cur."!mark_push"(0, rx88_pos, $I10)
   rxscan91_done:
+.annotate 'line', 30
   # rx reduce name="nibbler" key="open"
     rx88_cur."!cursor_pos"(rx88_pos)
     rx88_cur."!reduce"("nibbler", "open")
+.annotate 'line', 31
   # rx rxquantr92 ** 0..1
     set_addr $I10, rxquantr92_done
     rx88_cur."!mark_push"(0, rx88_pos, $I10)
@@ -1061,6 +1087,7 @@
     set_addr $I10, rxquantr92_done
     (rx88_rep) = rx88_cur."!mark_commit"($I10)
   rxquantr92_done:
+.annotate 'line', 32
   # rx subrule "termconj" subtype=capture negate=
     rx88_cur."!cursor_pos"(rx88_pos)
     $P10 = rx88_cur."termconj"()
@@ -1068,11 +1095,13 @@
     rx88_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("termconj")
     rx88_pos = $P10."pos"()
+.annotate 'line', 35
   # rx rxquantr94 ** 0..*
     set_addr $I10, rxquantr94_done
     rx88_cur."!mark_push"(0, rx88_pos, $I10)
   rxquantr94_loop:
   alt95_0:
+.annotate 'line', 33
     set_addr $I10, alt95_1
     rx88_cur."!mark_push"(0, rx88_pos, $I10)
   # rx literal  "||"
@@ -1093,6 +1122,7 @@
     add rx88_pos, 1
   alt95_end:
   alt96_0:
+.annotate 'line', 34
     set_addr $I10, alt96_1
     rx88_cur."!mark_push"(0, rx88_pos, $I10)
   # rx subrule "termconj" subtype=capture negate=
@@ -1110,22 +1140,25 @@
     unless $P10, rx88_fail
     rx88_pos = $P10."pos"()
   alt96_end:
+.annotate 'line', 35
     set_addr $I10, rxquantr94_done
     (rx88_rep) = rx88_cur."!mark_commit"($I10)
     set_addr $I10, rxquantr94_done
     rx88_cur."!mark_push"(rx88_rep, rx88_pos, $I10)
     goto rxquantr94_loop
   rxquantr94_done:
+.annotate 'line', 29
   # rx pass
     rx88_cur."!cursor_pass"(rx88_pos, "nibbler")
-    if_null rx88_debug, debug_200
+    if_null rx88_debug, debug_206
     rx88_cur."!cursor_debug"("PASS", "nibbler", " at pos=", rx88_pos)
-  debug_200:
+  debug_206:
     .return (rx88_cur)
   rx88_restart:
-    if_null rx88_debug, debug_201
+.annotate 'line', 3
+    if_null rx88_debug, debug_207
     rx88_cur."!cursor_debug"("NEXT", "nibbler")
-  debug_201:
+  debug_207:
   rx88_fail:
     (rx88_rep, rx88_pos, $I10, $P10) = rx88_cur."!mark_fail"(0)
     lt rx88_pos, -1, rx88_done
@@ -1133,17 +1166,17 @@
     jump $I10
   rx88_done:
     rx88_cur."!cursor_fail"()
-    if_null rx88_debug, debug_202
+    if_null rx88_debug, debug_208
     rx88_cur."!cursor_debug"("FAIL", "nibbler")
-  debug_202:
+  debug_208:
     .return (rx88_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__nibbler"  :subid("27_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__nibbler"  :subid("27_1284728471.30547") :method
+.annotate 'line', 3
     new $P90, "ResizablePMCArray"
     push $P90, ""
     .return ($P90)
@@ -1151,8 +1184,8 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termconj"  :subid("28_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
+.sub "termconj"  :subid("28_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
     .local string rx98_tgt
     .local int rx98_pos
     .local int rx98_off
@@ -1174,9 +1207,9 @@
     substr rx98_tgt, rx98_tgt, rx98_off
   rx98_start:
     eq $I10, 1, rx98_restart
-    if_null rx98_debug, debug_203
+    if_null rx98_debug, debug_209
     rx98_cur."!cursor_debug"("START", "termconj")
-  debug_203:
+  debug_209:
     $I10 = self.'from'()
     ne $I10, -1, rxscan102_done
     goto rxscan102_scan
@@ -1189,6 +1222,7 @@
     set_addr $I10, rxscan102_loop
     rx98_cur."!mark_push"(0, rx98_pos, $I10)
   rxscan102_done:
+.annotate 'line', 39
   # rx subrule "termish" subtype=capture negate=
     rx98_cur."!cursor_pos"(rx98_pos)
     $P10 = rx98_cur."termish"()
@@ -1196,11 +1230,13 @@
     rx98_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("termish")
     rx98_pos = $P10."pos"()
+.annotate 'line', 42
   # rx rxquantr103 ** 0..*
     set_addr $I10, rxquantr103_done
     rx98_cur."!mark_push"(0, rx98_pos, $I10)
   rxquantr103_loop:
   alt104_0:
+.annotate 'line', 40
     set_addr $I10, alt104_1
     rx98_cur."!mark_push"(0, rx98_pos, $I10)
   # rx literal  "&&"
@@ -1221,6 +1257,7 @@
     add rx98_pos, 1
   alt104_end:
   alt105_0:
+.annotate 'line', 41
     set_addr $I10, alt105_1
     rx98_cur."!mark_push"(0, rx98_pos, $I10)
   # rx subrule "termish" subtype=capture negate=
@@ -1238,22 +1275,25 @@
     unless $P10, rx98_fail
     rx98_pos = $P10."pos"()
   alt105_end:
+.annotate 'line', 42
     set_addr $I10, rxquantr103_done
     (rx98_rep) = rx98_cur."!mark_commit"($I10)
     set_addr $I10, rxquantr103_done
     rx98_cur."!mark_push"(rx98_rep, rx98_pos, $I10)
     goto rxquantr103_loop
   rxquantr103_done:
+.annotate 'line', 38
   # rx pass
     rx98_cur."!cursor_pass"(rx98_pos, "termconj")
-    if_null rx98_debug, debug_204
+    if_null rx98_debug, debug_210
     rx98_cur."!cursor_debug"("PASS", "termconj", " at pos=", rx98_pos)
-  debug_204:
+  debug_210:
     .return (rx98_cur)
   rx98_restart:
-    if_null rx98_debug, debug_205
+.annotate 'line', 3
+    if_null rx98_debug, debug_211
     rx98_cur."!cursor_debug"("NEXT", "termconj")
-  debug_205:
+  debug_211:
   rx98_fail:
     (rx98_rep, rx98_pos, $I10, $P10) = rx98_cur."!mark_fail"(0)
     lt rx98_pos, -1, rx98_done
@@ -1261,17 +1301,17 @@
     jump $I10
   rx98_done:
     rx98_cur."!cursor_fail"()
-    if_null rx98_debug, debug_206
+    if_null rx98_debug, debug_212
     rx98_cur."!cursor_debug"("FAIL", "termconj")
-  debug_206:
+  debug_212:
     .return (rx98_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__termconj"  :subid("29_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__termconj"  :subid("29_1284728471.30547") :method
+.annotate 'line', 3
     $P100 = self."!PREFIX__!subrule"("termish", "")
     new $P101, "ResizablePMCArray"
     push $P101, $P100
@@ -1280,8 +1320,8 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termish"  :subid("30_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
+.sub "termish"  :subid("30_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
     .local string rx107_tgt
     .local int rx107_pos
     .local int rx107_off
@@ -1303,9 +1343,9 @@
     substr rx107_tgt, rx107_tgt, rx107_off
   rx107_start:
     eq $I10, 1, rx107_restart
-    if_null rx107_debug, debug_207
+    if_null rx107_debug, debug_213
     rx107_cur."!cursor_debug"("START", "termish")
-  debug_207:
+  debug_213:
     $I10 = self.'from'()
     ne $I10, -1, rxscan110_done
     goto rxscan110_scan
@@ -1318,6 +1358,7 @@
     set_addr $I10, rxscan110_loop
     rx107_cur."!mark_push"(0, rx107_pos, $I10)
   rxscan110_done:
+.annotate 'line', 46
   # rx rxquantr111 ** 1..*
     set_addr $I10, rxquantr111_done
     rx107_cur."!mark_push"(0, -1, $I10)
@@ -1341,16 +1382,18 @@
     rx107_cur."!mark_push"(rx107_rep, rx107_pos, $I10)
     goto rxquantr111_loop
   rxquantr111_done:
+.annotate 'line', 45
   # rx pass
     rx107_cur."!cursor_pass"(rx107_pos, "termish")
-    if_null rx107_debug, debug_208
+    if_null rx107_debug, debug_214
     rx107_cur."!cursor_debug"("PASS", "termish", " at pos=", rx107_pos)
-  debug_208:
+  debug_214:
     .return (rx107_cur)
   rx107_restart:
-    if_null rx107_debug, debug_209
+.annotate 'line', 3
+    if_null rx107_debug, debug_215
     rx107_cur."!cursor_debug"("NEXT", "termish")
-  debug_209:
+  debug_215:
   rx107_fail:
     (rx107_rep, rx107_pos, $I10, $P10) = rx107_cur."!mark_fail"(0)
     lt rx107_pos, -1, rx107_done
@@ -1358,17 +1401,17 @@
     jump $I10
   rx107_done:
     rx107_cur."!cursor_fail"()
-    if_null rx107_debug, debug_210
+    if_null rx107_debug, debug_216
     rx107_cur."!cursor_debug"("FAIL", "termish")
-  debug_210:
+  debug_216:
     .return (rx107_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__termish"  :subid("31_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__termish"  :subid("31_1284728471.30547") :method
+.annotate 'line', 3
     new $P109, "ResizablePMCArray"
     push $P109, ""
     .return ($P109)
@@ -1376,9 +1419,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantified_atom"  :subid("32_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .const 'Sub' $P122 = "34_1283975941.34404" 
+.sub "quantified_atom"  :subid("32_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .const 'Sub' $P122 = "34_1284728471.30547" 
     capture_lex $P122
     .local string rx114_tgt
     .local int rx114_pos
@@ -1401,9 +1444,9 @@
     substr rx114_tgt, rx114_tgt, rx114_off
   rx114_start:
     eq $I10, 1, rx114_restart
-    if_null rx114_debug, debug_211
+    if_null rx114_debug, debug_217
     rx114_cur."!cursor_debug"("START", "quantified_atom")
-  debug_211:
+  debug_217:
     $I10 = self.'from'()
     ne $I10, -1, rxscan118_done
     goto rxscan118_scan
@@ -1416,6 +1459,7 @@
     set_addr $I10, rxscan118_loop
     rx114_cur."!mark_push"(0, rx114_pos, $I10)
   rxscan118_done:
+.annotate 'line', 50
   # rx subrule "atom" subtype=capture negate=
     rx114_cur."!cursor_pos"(rx114_pos)
     $P10 = rx114_cur."atom"()
@@ -1446,7 +1490,7 @@
   alt120_1:
   # rx subrule "before" subtype=zerowidth negate=
     rx114_cur."!cursor_pos"(rx114_pos)
-    .const 'Sub' $P122 = "34_1283975941.34404" 
+    .const 'Sub' $P122 = "34_1284728471.30547" 
     capture_lex $P122
     $P10 = rx114_cur."before"($P122)
     unless $P10, rx114_fail
@@ -1465,16 +1509,18 @@
     set_addr $I10, rxquantr119_done
     (rx114_rep) = rx114_cur."!mark_commit"($I10)
   rxquantr119_done:
+.annotate 'line', 49
   # rx pass
     rx114_cur."!cursor_pass"(rx114_pos, "quantified_atom")
-    if_null rx114_debug, debug_216
+    if_null rx114_debug, debug_222
     rx114_cur."!cursor_debug"("PASS", "quantified_atom", " at pos=", rx114_pos)
-  debug_216:
+  debug_222:
     .return (rx114_cur)
   rx114_restart:
-    if_null rx114_debug, debug_217
+.annotate 'line', 3
+    if_null rx114_debug, debug_223
     rx114_cur."!cursor_debug"("NEXT", "quantified_atom")
-  debug_217:
+  debug_223:
   rx114_fail:
     (rx114_rep, rx114_pos, $I10, $P10) = rx114_cur."!mark_fail"(0)
     lt rx114_pos, -1, rx114_done
@@ -1482,17 +1528,17 @@
     jump $I10
   rx114_done:
     rx114_cur."!cursor_fail"()
-    if_null rx114_debug, debug_218
+    if_null rx114_debug, debug_224
     rx114_cur."!cursor_debug"("FAIL", "quantified_atom")
-  debug_218:
+  debug_224:
     .return (rx114_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantified_atom"  :subid("33_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__quantified_atom"  :subid("33_1284728471.30547") :method
+.annotate 'line', 3
     $P116 = self."!PREFIX__!subrule"("atom", "")
     new $P117, "ResizablePMCArray"
     push $P117, $P116
@@ -1501,8 +1547,8 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block121"  :anon :subid("34_1283975941.34404") :method :outer("32_1283975941.34404")
-.annotate 'line', 0
+.sub "_block121"  :anon :subid("34_1284728471.30547") :method :outer("32_1284728471.30547")
+.annotate 'line', 50
     .local string rx123_tgt
     .local int rx123_pos
     .local int rx123_off
@@ -1523,9 +1569,9 @@
     substr rx123_tgt, rx123_tgt, rx123_off
   rx123_start:
     eq $I10, 1, rx123_restart
-    if_null rx123_debug, debug_212
+    if_null rx123_debug, debug_218
     rx123_cur."!cursor_debug"("START", "")
-  debug_212:
+  debug_218:
     $I10 = self.'from'()
     ne $I10, -1, rxscan124_done
     goto rxscan124_scan
@@ -1547,14 +1593,14 @@
     add rx123_pos, 1
   # rx pass
     rx123_cur."!cursor_pass"(rx123_pos, "")
-    if_null rx123_debug, debug_213
+    if_null rx123_debug, debug_219
     rx123_cur."!cursor_debug"("PASS", "", " at pos=", rx123_pos)
-  debug_213:
+  debug_219:
     .return (rx123_cur)
   rx123_restart:
-    if_null rx123_debug, debug_214
+    if_null rx123_debug, debug_220
     rx123_cur."!cursor_debug"("NEXT", "")
-  debug_214:
+  debug_220:
   rx123_fail:
     (rx123_rep, rx123_pos, $I10, $P10) = rx123_cur."!mark_fail"(0)
     lt rx123_pos, -1, rx123_done
@@ -1562,18 +1608,18 @@
     jump $I10
   rx123_done:
     rx123_cur."!cursor_fail"()
-    if_null rx123_debug, debug_215
+    if_null rx123_debug, debug_221
     rx123_cur."!cursor_debug"("FAIL", "")
-  debug_215:
+  debug_221:
     .return (rx123_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "atom"  :subid("35_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .const 'Sub' $P135 = "37_1283975941.34404" 
+.sub "atom"  :subid("35_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .const 'Sub' $P135 = "37_1284728471.30547" 
     capture_lex $P135
     .local string rx126_tgt
     .local int rx126_pos
@@ -1595,9 +1641,9 @@
     substr rx126_tgt, rx126_tgt, rx126_off
   rx126_start:
     eq $I10, 1, rx126_restart
-    if_null rx126_debug, debug_219
+    if_null rx126_debug, debug_225
     rx126_cur."!cursor_debug"("START", "atom")
-  debug_219:
+  debug_225:
     $I10 = self.'from'()
     ne $I10, -1, rxscan130_done
     goto rxscan130_scan
@@ -1611,8 +1657,10 @@
     rx126_cur."!mark_push"(0, rx126_pos, $I10)
   rxscan130_done:
   alt131_0:
+.annotate 'line', 55
     set_addr $I10, alt131_1
     rx126_cur."!mark_push"(0, rx126_pos, $I10)
+.annotate 'line', 56
   # rx charclass w
     ge rx126_pos, rx126_eos, rx126_fail
     sub $I10, rx126_pos, rx126_off
@@ -1637,7 +1685,7 @@
   rxquantg133_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx126_cur."!cursor_pos"(rx126_pos)
-    .const 'Sub' $P135 = "37_1283975941.34404" 
+    .const 'Sub' $P135 = "37_1284728471.30547" 
     capture_lex $P135
     $P10 = rx126_cur."before"($P135)
     unless $P10, rx126_fail
@@ -1646,6 +1694,7 @@
   rxquantr132_done:
     goto alt131_end
   alt131_1:
+.annotate 'line', 57
   # rx subrule "metachar" subtype=capture negate=
     rx126_cur."!cursor_pos"(rx126_pos)
     $P10 = rx126_cur."metachar"()
@@ -1654,16 +1703,18 @@
     $P10."!cursor_names"("metachar")
     rx126_pos = $P10."pos"()
   alt131_end:
+.annotate 'line', 53
   # rx pass
     rx126_cur."!cursor_pass"(rx126_pos, "atom")
-    if_null rx126_debug, debug_224
+    if_null rx126_debug, debug_230
     rx126_cur."!cursor_debug"("PASS", "atom", " at pos=", rx126_pos)
-  debug_224:
+  debug_230:
     .return (rx126_cur)
   rx126_restart:
-    if_null rx126_debug, debug_225
+.annotate 'line', 3
+    if_null rx126_debug, debug_231
     rx126_cur."!cursor_debug"("NEXT", "atom")
-  debug_225:
+  debug_231:
   rx126_fail:
     (rx126_rep, rx126_pos, $I10, $P10) = rx126_cur."!mark_fail"(0)
     lt rx126_pos, -1, rx126_done
@@ -1671,17 +1722,17 @@
     jump $I10
   rx126_done:
     rx126_cur."!cursor_fail"()
-    if_null rx126_debug, debug_226
+    if_null rx126_debug, debug_232
     rx126_cur."!cursor_debug"("FAIL", "atom")
-  debug_226:
+  debug_232:
     .return (rx126_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__atom"  :subid("36_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__atom"  :subid("36_1284728471.30547") :method
+.annotate 'line', 3
     $P128 = self."!PREFIX__!subrule"("metachar", "")
     new $P129, "ResizablePMCArray"
     push $P129, $P128
@@ -1691,8 +1742,8 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block134"  :anon :subid("37_1283975941.34404") :method :outer("35_1283975941.34404")
-.annotate 'line', 0
+.sub "_block134"  :anon :subid("37_1284728471.30547") :method :outer("35_1284728471.30547")
+.annotate 'line', 56
     .local string rx136_tgt
     .local int rx136_pos
     .local int rx136_off
@@ -1713,9 +1764,9 @@
     substr rx136_tgt, rx136_tgt, rx136_off
   rx136_start:
     eq $I10, 1, rx136_restart
-    if_null rx136_debug, debug_220
+    if_null rx136_debug, debug_226
     rx136_cur."!cursor_debug"("START", "")
-  debug_220:
+  debug_226:
     $I10 = self.'from'()
     ne $I10, -1, rxscan137_done
     goto rxscan137_scan
@@ -1736,14 +1787,14 @@
     inc rx136_pos
   # rx pass
     rx136_cur."!cursor_pass"(rx136_pos, "")
-    if_null rx136_debug, debug_221
+    if_null rx136_debug, debug_227
     rx136_cur."!cursor_debug"("PASS", "", " at pos=", rx136_pos)
-  debug_221:
+  debug_227:
     .return (rx136_cur)
   rx136_restart:
-    if_null rx136_debug, debug_222
+    if_null rx136_debug, debug_228
     rx136_cur."!cursor_debug"("NEXT", "")
-  debug_222:
+  debug_228:
   rx136_fail:
     (rx136_rep, rx136_pos, $I10, $P10) = rx136_cur."!mark_fail"(0)
     lt rx136_pos, -1, rx136_done
@@ -1751,33 +1802,33 @@
     jump $I10
   rx136_done:
     rx136_cur."!cursor_fail"()
-    if_null rx136_debug, debug_223
+    if_null rx136_debug, debug_229
     rx136_cur."!cursor_debug"("FAIL", "")
-  debug_223:
+  debug_229:
     .return (rx136_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier"  :subid("38_1283975941.34404") :method
-.annotate 'line', 0
+.sub "quantifier"  :subid("38_1284728471.30547") :method
+.annotate 'line', 61
     $P139 = self."!protoregex"("quantifier")
     .return ($P139)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier"  :subid("39_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__quantifier"  :subid("39_1284728471.30547") :method
+.annotate 'line', 61
     $P141 = self."!PREFIX__!protoregex"("quantifier")
     .return ($P141)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<*>"  :subid("40_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
+.sub "quantifier:sym<*>"  :subid("40_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
     .local string rx143_tgt
     .local int rx143_pos
     .local int rx143_off
@@ -1798,9 +1849,9 @@
     substr rx143_tgt, rx143_tgt, rx143_off
   rx143_start:
     eq $I10, 1, rx143_restart
-    if_null rx143_debug, debug_227
+    if_null rx143_debug, debug_233
     rx143_cur."!cursor_debug"("START", "quantifier:sym<*>")
-  debug_227:
+  debug_233:
     $I10 = self.'from'()
     ne $I10, -1, rxscan147_done
     goto rxscan147_scan
@@ -1813,6 +1864,7 @@
     set_addr $I10, rxscan147_loop
     rx143_cur."!mark_push"(0, rx143_pos, $I10)
   rxscan147_done:
+.annotate 'line', 62
   # rx subcapture "sym"
     set_addr $I10, rxcap_148_fail
     rx143_cur."!mark_push"(0, rx143_pos, $I10)
@@ -1843,14 +1895,15 @@
     rx143_pos = $P10."pos"()
   # rx pass
     rx143_cur."!cursor_pass"(rx143_pos, "quantifier:sym<*>")
-    if_null rx143_debug, debug_228
+    if_null rx143_debug, debug_234
     rx143_cur."!cursor_debug"("PASS", "quantifier:sym<*>", " at pos=", rx143_pos)
-  debug_228:
+  debug_234:
     .return (rx143_cur)
   rx143_restart:
-    if_null rx143_debug, debug_229
+.annotate 'line', 3
+    if_null rx143_debug, debug_235
     rx143_cur."!cursor_debug"("NEXT", "quantifier:sym<*>")
-  debug_229:
+  debug_235:
   rx143_fail:
     (rx143_rep, rx143_pos, $I10, $P10) = rx143_cur."!mark_fail"(0)
     lt rx143_pos, -1, rx143_done
@@ -1858,17 +1911,17 @@
     jump $I10
   rx143_done:
     rx143_cur."!cursor_fail"()
-    if_null rx143_debug, debug_230
+    if_null rx143_debug, debug_236
     rx143_cur."!cursor_debug"("FAIL", "quantifier:sym<*>")
-  debug_230:
+  debug_236:
     .return (rx143_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<*>"  :subid("41_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__quantifier:sym<*>"  :subid("41_1284728471.30547") :method
+.annotate 'line', 3
     $P145 = self."!PREFIX__!subrule"("backmod", "*")
     new $P146, "ResizablePMCArray"
     push $P146, $P145
@@ -1877,8 +1930,8 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<+>"  :subid("42_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
+.sub "quantifier:sym<+>"  :subid("42_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
     .local string rx150_tgt
     .local int rx150_pos
     .local int rx150_off
@@ -1899,9 +1952,9 @@
     substr rx150_tgt, rx150_tgt, rx150_off
   rx150_start:
     eq $I10, 1, rx150_restart
-    if_null rx150_debug, debug_231
+    if_null rx150_debug, debug_237
     rx150_cur."!cursor_debug"("START", "quantifier:sym<+>")
-  debug_231:
+  debug_237:
     $I10 = self.'from'()
     ne $I10, -1, rxscan154_done
     goto rxscan154_scan
@@ -1914,6 +1967,7 @@
     set_addr $I10, rxscan154_loop
     rx150_cur."!mark_push"(0, rx150_pos, $I10)
   rxscan154_done:
+.annotate 'line', 63
   # rx subcapture "sym"
     set_addr $I10, rxcap_155_fail
     rx150_cur."!mark_push"(0, rx150_pos, $I10)
@@ -1944,14 +1998,15 @@
     rx150_pos = $P10."pos"()
   # rx pass
     rx150_cur."!cursor_pass"(rx150_pos, "quantifier:sym<+>")
-    if_null rx150_debug, debug_232
+    if_null rx150_debug, debug_238
     rx150_cur."!cursor_debug"("PASS", "quantifier:sym<+>", " at pos=", rx150_pos)
-  debug_232:
+  debug_238:
     .return (rx150_cur)
   rx150_restart:
-    if_null rx150_debug, debug_233
+.annotate 'line', 3
+    if_null rx150_debug, debug_239
     rx150_cur."!cursor_debug"("NEXT", "quantifier:sym<+>")
-  debug_233:
+  debug_239:
   rx150_fail:
     (rx150_rep, rx150_pos, $I10, $P10) = rx150_cur."!mark_fail"(0)
     lt rx150_pos, -1, rx150_done
@@ -1959,17 +2014,17 @@
     jump $I10
   rx150_done:
     rx150_cur."!cursor_fail"()
-    if_null rx150_debug, debug_234
+    if_null rx150_debug, debug_240
     rx150_cur."!cursor_debug"("FAIL", "quantifier:sym<+>")
-  debug_234:
+  debug_240:
     .return (rx150_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<+>"  :subid("43_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__quantifier:sym<+>"  :subid("43_1284728471.30547") :method
+.annotate 'line', 3
     $P152 = self."!PREFIX__!subrule"("backmod", "+")
     new $P153, "ResizablePMCArray"
     push $P153, $P152
@@ -1978,8 +2033,8 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<?>"  :subid("44_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
+.sub "quantifier:sym<?>"  :subid("44_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
     .local string rx157_tgt
     .local int rx157_pos
     .local int rx157_off
@@ -2000,9 +2055,9 @@
     substr rx157_tgt, rx157_tgt, rx157_off
   rx157_start:
     eq $I10, 1, rx157_restart
-    if_null rx157_debug, debug_235
+    if_null rx157_debug, debug_241
     rx157_cur."!cursor_debug"("START", "quantifier:sym<?>")
-  debug_235:
+  debug_241:
     $I10 = self.'from'()
     ne $I10, -1, rxscan161_done
     goto rxscan161_scan
@@ -2015,6 +2070,7 @@
     set_addr $I10, rxscan161_loop
     rx157_cur."!mark_push"(0, rx157_pos, $I10)
   rxscan161_done:
+.annotate 'line', 64
   # rx subcapture "sym"
     set_addr $I10, rxcap_162_fail
     rx157_cur."!mark_push"(0, rx157_pos, $I10)
@@ -2045,14 +2101,15 @@
     rx157_pos = $P10."pos"()
   # rx pass
     rx157_cur."!cursor_pass"(rx157_pos, "quantifier:sym<?>")
-    if_null rx157_debug, debug_236
+    if_null rx157_debug, debug_242
     rx157_cur."!cursor_debug"("PASS", "quantifier:sym<?>", " at pos=", rx157_pos)
-  debug_236:
+  debug_242:
     .return (rx157_cur)
   rx157_restart:
-    if_null rx157_debug, debug_237
+.annotate 'line', 3
+    if_null rx157_debug, debug_243
     rx157_cur."!cursor_debug"("NEXT", "quantifier:sym<?>")
-  debug_237:
+  debug_243:
   rx157_fail:
     (rx157_rep, rx157_pos, $I10, $P10) = rx157_cur."!mark_fail"(0)
     lt rx157_pos, -1, rx157_done
@@ -2060,17 +2117,17 @@
     jump $I10
   rx157_done:
     rx157_cur."!cursor_fail"()
-    if_null rx157_debug, debug_238
+    if_null rx157_debug, debug_244
     rx157_cur."!cursor_debug"("FAIL", "quantifier:sym<?>")
-  debug_238:
+  debug_244:
     .return (rx157_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<?>"  :subid("45_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__quantifier:sym<?>"  :subid("45_1284728471.30547") :method
+.annotate 'line', 3
     $P159 = self."!PREFIX__!subrule"("backmod", "?")
     new $P160, "ResizablePMCArray"
     push $P160, $P159
@@ -2079,8 +2136,16 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<**>"  :subid("46_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
+.sub "quantifier:sym<{N,M}>"  :subid("46_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .const 'Sub' $P183 = "51_1284728471.30547" 
+    capture_lex $P183
+    .const 'Sub' $P178 = "50_1284728471.30547" 
+    capture_lex $P178
+    .const 'Sub' $P174 = "49_1284728471.30547" 
+    capture_lex $P174
+    .const 'Sub' $P171 = "48_1284728471.30547" 
+    capture_lex $P171
     .local string rx164_tgt
     .local int rx164_pos
     .local int rx164_off
@@ -2089,7 +2154,6 @@
     .local pmc rx164_cur
     .local pmc rx164_debug
     (rx164_cur, rx164_pos, rx164_tgt, $I10) = self."!cursor_start"()
-    rx164_cur."!cursor_caparray"("normspace", "max")
     getattribute rx164_debug, rx164_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx164_cur
     .local pmc match
@@ -2102,9 +2166,9 @@
     substr rx164_tgt, rx164_tgt, rx164_off
   rx164_start:
     eq $I10, 1, rx164_restart
-    if_null rx164_debug, debug_239
-    rx164_cur."!cursor_debug"("START", "quantifier:sym<**>")
-  debug_239:
+    if_null rx164_debug, debug_245
+    rx164_cur."!cursor_debug"("START", "quantifier:sym<{N,M}>")
+  debug_245:
     $I10 = self.'from'()
     ne $I10, -1, rxscan167_done
     goto rxscan167_scan
@@ -2117,173 +2181,73 @@
     set_addr $I10, rxscan167_loop
     rx164_cur."!mark_push"(0, rx164_pos, $I10)
   rxscan167_done:
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_168_fail
-    rx164_cur."!mark_push"(0, rx164_pos, $I10)
-  # rx literal  "**"
-    add $I11, rx164_pos, 2
+.annotate 'line', 65
+    rx164_cur."!cursor_pos"(rx164_pos)
+    find_lex $P168, unicode:"$\x{a2}"
+    $P169 = $P168."MATCH"()
+    store_lex "$/", $P169
+    .const 'Sub' $P171 = "48_1284728471.30547" 
+    capture_lex $P171
+    $P172 = $P171()
+  # rx literal  "{"
+    add $I11, rx164_pos, 1
     gt $I11, rx164_eos, rx164_fail
     sub $I11, rx164_pos, rx164_off
-    substr $S10, rx164_tgt, $I11, 2
-    ne $S10, "**", rx164_fail
-    add rx164_pos, 2
-    set_addr $I10, rxcap_168_fail
-    ($I12, $I11) = rx164_cur."!mark_peek"($I10)
-    rx164_cur."!cursor_pos"($I11)
-    ($P10) = rx164_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx164_pos, "")
-    rx164_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_168_done
-  rxcap_168_fail:
-    goto rx164_fail
-  rxcap_168_done:
-  # rx rxquantr169 ** 0..1
-    set_addr $I10, rxquantr169_done
-    rx164_cur."!mark_push"(0, rx164_pos, $I10)
-  rxquantr169_loop:
-  # rx subrule "normspace" subtype=capture negate=
+    ord $I11, rx164_tgt, $I11
+    ne $I11, 123, rx164_fail
+    add rx164_pos, 1
+  # rx subrule $P174 subtype=capture negate=
     rx164_cur."!cursor_pos"(rx164_pos)
-    $P10 = rx164_cur."normspace"()
-    unless $P10, rx164_fail
-    goto rxsubrule170_pass
-  rxsubrule170_back:
-    $P10 = $P10."!cursor_next"()
+    .const 'Sub' $P174 = "49_1284728471.30547" 
+    capture_lex $P174
+    $P10 = rx164_cur.$P174()
     unless $P10, rx164_fail
-  rxsubrule170_pass:
-    set_addr $I10, rxsubrule170_back
-    rx164_cur."!mark_push"(0, rx164_pos, $I10, $P10)
-    $P10."!cursor_names"("normspace")
+    rx164_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"(0)
     rx164_pos = $P10."pos"()
-    set_addr $I10, rxquantr169_done
-    (rx164_rep) = rx164_cur."!mark_commit"($I10)
-  rxquantr169_done:
-  # rx subrule "backmod" subtype=capture negate=
+  # rx subrule $P178 subtype=capture negate=
     rx164_cur."!cursor_pos"(rx164_pos)
-    $P10 = rx164_cur."backmod"()
+    .const 'Sub' $P178 = "50_1284728471.30547" 
+    capture_lex $P178
+    $P10 = rx164_cur.$P178()
     unless $P10, rx164_fail
     rx164_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("backmod")
+    $P10."!cursor_names"("1")
     rx164_pos = $P10."pos"()
-  # rx rxquantr171 ** 0..1
-    set_addr $I10, rxquantr171_done
-    rx164_cur."!mark_push"(0, rx164_pos, $I10)
-  rxquantr171_loop:
-  # rx subrule "normspace" subtype=capture negate=
+  # rx subrule $P183 subtype=capture negate=
     rx164_cur."!cursor_pos"(rx164_pos)
-    $P10 = rx164_cur."normspace"()
-    unless $P10, rx164_fail
-    goto rxsubrule172_pass
-  rxsubrule172_back:
-    $P10 = $P10."!cursor_next"()
+    .const 'Sub' $P183 = "51_1284728471.30547" 
+    capture_lex $P183
+    $P10 = rx164_cur.$P183()
     unless $P10, rx164_fail
-  rxsubrule172_pass:
-    set_addr $I10, rxsubrule172_back
-    rx164_cur."!mark_push"(0, rx164_pos, $I10, $P10)
-    $P10."!cursor_names"("normspace")
-    rx164_pos = $P10."pos"()
-    set_addr $I10, rxquantr171_done
-    (rx164_rep) = rx164_cur."!mark_commit"($I10)
-  rxquantr171_done:
-  alt173_0:
-    set_addr $I10, alt173_1
-    rx164_cur."!mark_push"(0, rx164_pos, $I10)
-  # rx subcapture "min"
-    set_addr $I10, rxcap_174_fail
-    rx164_cur."!mark_push"(0, rx164_pos, $I10)
-  # rx charclass_q d r 1..-1
-    sub $I10, rx164_pos, rx164_off
-    find_not_cclass $I11, 8, rx164_tgt, $I10, rx164_eos
-    add $I12, $I10, 1
-    lt $I11, $I12, rx164_fail
-    add rx164_pos, rx164_off, $I11
-    set_addr $I10, rxcap_174_fail
-    ($I12, $I11) = rx164_cur."!mark_peek"($I10)
-    rx164_cur."!cursor_pos"($I11)
-    ($P10) = rx164_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx164_pos, "")
     rx164_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("min")
-    goto rxcap_174_done
-  rxcap_174_fail:
-    goto rx164_fail
-  rxcap_174_done:
-  # rx rxquantr175 ** 0..1
-    set_addr $I10, rxquantr175_done
-    rx164_cur."!mark_push"(0, rx164_pos, $I10)
-  rxquantr175_loop:
-  # rx literal  ".."
-    add $I11, rx164_pos, 2
-    gt $I11, rx164_eos, rx164_fail
-    sub $I11, rx164_pos, rx164_off
-    substr $S10, rx164_tgt, $I11, 2
-    ne $S10, "..", rx164_fail
-    add rx164_pos, 2
-  # rx subcapture "max"
-    set_addr $I10, rxcap_177_fail
-    rx164_cur."!mark_push"(0, rx164_pos, $I10)
-  alt176_0:
-    set_addr $I10, alt176_1
-    rx164_cur."!mark_push"(0, rx164_pos, $I10)
-  # rx charclass_q d r 1..-1
-    sub $I10, rx164_pos, rx164_off
-    find_not_cclass $I11, 8, rx164_tgt, $I10, rx164_eos
-    add $I12, $I10, 1
-    lt $I11, $I12, rx164_fail
-    add rx164_pos, rx164_off, $I11
-    goto alt176_end
-  alt176_1:
-    set_addr $I10, alt176_2
-    rx164_cur."!mark_push"(0, rx164_pos, $I10)
-  # rx literal  "*"
+    $P10."!cursor_names"("2")
+    rx164_pos = $P10."pos"()
+  # rx literal  "}"
     add $I11, rx164_pos, 1
     gt $I11, rx164_eos, rx164_fail
     sub $I11, rx164_pos, rx164_off
     ord $I11, rx164_tgt, $I11
-    ne $I11, 42, rx164_fail
+    ne $I11, 125, rx164_fail
     add rx164_pos, 1
-    goto alt176_end
-  alt176_2:
-  # rx subrule "panic" subtype=method negate=
-    rx164_cur."!cursor_pos"(rx164_pos)
-    $P10 = rx164_cur."panic"("Only integers or '*' allowed as range quantifier endpoint")
-    unless $P10, rx164_fail
-    rx164_pos = $P10."pos"()
-  alt176_end:
-    set_addr $I10, rxcap_177_fail
-    ($I12, $I11) = rx164_cur."!mark_peek"($I10)
-    rx164_cur."!cursor_pos"($I11)
-    ($P10) = rx164_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx164_pos, "")
-    rx164_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("max")
-    goto rxcap_177_done
-  rxcap_177_fail:
-    goto rx164_fail
-  rxcap_177_done:
-    set_addr $I10, rxquantr175_done
-    (rx164_rep) = rx164_cur."!mark_commit"($I10)
-  rxquantr175_done:
-    goto alt173_end
-  alt173_1:
-  # rx subrule "quantified_atom" subtype=capture negate=
+.annotate 'line', 66
+  # rx subrule "obs" subtype=method negate=
     rx164_cur."!cursor_pos"(rx164_pos)
-    $P10 = rx164_cur."quantified_atom"()
+    $P10 = rx164_cur."obs"("{N,M} as general quantifier", "** N..M (or ** N..*)")
     unless $P10, rx164_fail
-    rx164_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quantified_atom")
     rx164_pos = $P10."pos"()
-  alt173_end:
+.annotate 'line', 65
   # rx pass
-    rx164_cur."!cursor_pass"(rx164_pos, "quantifier:sym<**>")
-    if_null rx164_debug, debug_240
-    rx164_cur."!cursor_debug"("PASS", "quantifier:sym<**>", " at pos=", rx164_pos)
-  debug_240:
+    rx164_cur."!cursor_pass"(rx164_pos, "quantifier:sym<{N,M}>")
+    if_null rx164_debug, debug_258
+    rx164_cur."!cursor_debug"("PASS", "quantifier:sym<{N,M}>", " at pos=", rx164_pos)
+  debug_258:
     .return (rx164_cur)
   rx164_restart:
-    if_null rx164_debug, debug_241
-    rx164_cur."!cursor_debug"("NEXT", "quantifier:sym<**>")
-  debug_241:
+.annotate 'line', 3
+    if_null rx164_debug, debug_259
+    rx164_cur."!cursor_debug"("NEXT", "quantifier:sym<{N,M}>")
+  debug_259:
   rx164_fail:
     (rx164_rep, rx164_pos, $I10, $P10) = rx164_cur."!mark_fail"(0)
     lt rx164_pos, -1, rx164_done
@@ -2291,37 +2255,111 @@
     jump $I10
   rx164_done:
     rx164_cur."!cursor_fail"()
-    if_null rx164_debug, debug_242
-    rx164_cur."!cursor_debug"("FAIL", "quantifier:sym<**>")
-  debug_242:
+    if_null rx164_debug, debug_260
+    rx164_cur."!cursor_debug"("FAIL", "quantifier:sym<{N,M}>")
+  debug_260:
     .return (rx164_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<**>"  :subid("47_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__quantifier:sym<{N,M}>"  :subid("47_1284728471.30547") :method
+.annotate 'line', 3
     new $P166, "ResizablePMCArray"
-    push $P166, "**"
+    push $P166, ""
     .return ($P166)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backmod"  :subid("48_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .const 'Sub' $P186 = "50_1283975941.34404" 
-    capture_lex $P186
-    .local string rx179_tgt
-    .local int rx179_pos
-    .local int rx179_off
-    .local int rx179_eos
-    .local int rx179_rep
-    .local pmc rx179_cur
-    .local pmc rx179_debug
-    (rx179_cur, rx179_pos, rx179_tgt, $I10) = self."!cursor_start"()
-    getattribute rx179_debug, rx179_cur, "$!debug"
+.sub "_block170"  :anon :subid("48_1284728471.30547") :outer("46_1284728471.30547")
+.annotate 'line', 65
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "_block173"  :anon :subid("49_1284728471.30547") :method :outer("46_1284728471.30547")
+.annotate 'line', 65
+    .local string rx175_tgt
+    .local int rx175_pos
+    .local int rx175_off
+    .local int rx175_eos
+    .local int rx175_rep
+    .local pmc rx175_cur
+    .local pmc rx175_debug
+    (rx175_cur, rx175_pos, rx175_tgt, $I10) = self."!cursor_start"()
+    getattribute rx175_debug, rx175_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx175_cur
+    .local pmc match
+    .lex "$/", match
+    length rx175_eos, rx175_tgt
+    gt rx175_pos, rx175_eos, rx175_done
+    set rx175_off, 0
+    lt rx175_pos, 2, rx175_start
+    sub rx175_off, rx175_pos, 1
+    substr rx175_tgt, rx175_tgt, rx175_off
+  rx175_start:
+    eq $I10, 1, rx175_restart
+    if_null rx175_debug, debug_246
+    rx175_cur."!cursor_debug"("START", "")
+  debug_246:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan176_done
+    goto rxscan176_scan
+  rxscan176_loop:
+    ($P10) = rx175_cur."from"()
+    inc $P10
+    set rx175_pos, $P10
+    ge rx175_pos, rx175_eos, rxscan176_done
+  rxscan176_scan:
+    set_addr $I10, rxscan176_loop
+    rx175_cur."!mark_push"(0, rx175_pos, $I10)
+  rxscan176_done:
+  # rx charclass_q d r 1..-1
+    sub $I10, rx175_pos, rx175_off
+    find_not_cclass $I11, 8, rx175_tgt, $I10, rx175_eos
+    add $I12, $I10, 1
+    lt $I11, $I12, rx175_fail
+    add rx175_pos, rx175_off, $I11
+  # rx pass
+    rx175_cur."!cursor_pass"(rx175_pos, "")
+    if_null rx175_debug, debug_247
+    rx175_cur."!cursor_debug"("PASS", "", " at pos=", rx175_pos)
+  debug_247:
+    .return (rx175_cur)
+  rx175_restart:
+    if_null rx175_debug, debug_248
+    rx175_cur."!cursor_debug"("NEXT", "")
+  debug_248:
+  rx175_fail:
+    (rx175_rep, rx175_pos, $I10, $P10) = rx175_cur."!mark_fail"(0)
+    lt rx175_pos, -1, rx175_done
+    eq rx175_pos, -1, rx175_fail
+    jump $I10
+  rx175_done:
+    rx175_cur."!cursor_fail"()
+    if_null rx175_debug, debug_249
+    rx175_cur."!cursor_debug"("FAIL", "")
+  debug_249:
+    .return (rx175_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "_block177"  :anon :subid("50_1284728471.30547") :method :outer("46_1284728471.30547")
+.annotate 'line', 65
+    .local string rx179_tgt
+    .local int rx179_pos
+    .local int rx179_off
+    .local int rx179_eos
+    .local int rx179_rep
+    .local pmc rx179_cur
+    .local pmc rx179_debug
+    (rx179_cur, rx179_pos, rx179_tgt, $I10) = self."!cursor_start"()
+    getattribute rx179_debug, rx179_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx179_cur
     .local pmc match
     .lex "$/", match
@@ -2333,75 +2371,45 @@
     substr rx179_tgt, rx179_tgt, rx179_off
   rx179_start:
     eq $I10, 1, rx179_restart
-    if_null rx179_debug, debug_243
-    rx179_cur."!cursor_debug"("START", "backmod")
-  debug_243:
+    if_null rx179_debug, debug_250
+    rx179_cur."!cursor_debug"("START", "")
+  debug_250:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan182_done
-    goto rxscan182_scan
-  rxscan182_loop:
+    ne $I10, -1, rxscan180_done
+    goto rxscan180_scan
+  rxscan180_loop:
     ($P10) = rx179_cur."from"()
     inc $P10
     set rx179_pos, $P10
-    ge rx179_pos, rx179_eos, rxscan182_done
-  rxscan182_scan:
-    set_addr $I10, rxscan182_loop
+    ge rx179_pos, rx179_eos, rxscan180_done
+  rxscan180_scan:
+    set_addr $I10, rxscan180_loop
     rx179_cur."!mark_push"(0, rx179_pos, $I10)
-  rxscan182_done:
-  # rx rxquantr183 ** 0..1
-    set_addr $I10, rxquantr183_done
+  rxscan180_done:
+  # rx rxquantr181 ** 0..1
+    set_addr $I10, rxquantr181_done
     rx179_cur."!mark_push"(0, rx179_pos, $I10)
-  rxquantr183_loop:
-  # rx literal  ":"
+  rxquantr181_loop:
+  # rx literal  ","
     add $I11, rx179_pos, 1
     gt $I11, rx179_eos, rx179_fail
     sub $I11, rx179_pos, rx179_off
     ord $I11, rx179_tgt, $I11
-    ne $I11, 58, rx179_fail
+    ne $I11, 44, rx179_fail
     add rx179_pos, 1
-    set_addr $I10, rxquantr183_done
+    set_addr $I10, rxquantr181_done
     (rx179_rep) = rx179_cur."!mark_commit"($I10)
-  rxquantr183_done:
-  alt184_0:
-    set_addr $I10, alt184_1
-    rx179_cur."!mark_push"(0, rx179_pos, $I10)
-  # rx literal  "?"
-    add $I11, rx179_pos, 1
-    gt $I11, rx179_eos, rx179_fail
-    sub $I11, rx179_pos, rx179_off
-    ord $I11, rx179_tgt, $I11
-    ne $I11, 63, rx179_fail
-    add rx179_pos, 1
-    goto alt184_end
-  alt184_1:
-    set_addr $I10, alt184_2
-    rx179_cur."!mark_push"(0, rx179_pos, $I10)
-  # rx literal  "!"
-    add $I11, rx179_pos, 1
-    gt $I11, rx179_eos, rx179_fail
-    sub $I11, rx179_pos, rx179_off
-    ord $I11, rx179_tgt, $I11
-    ne $I11, 33, rx179_fail
-    add rx179_pos, 1
-    goto alt184_end
-  alt184_2:
-  # rx subrule "before" subtype=zerowidth negate=1
-    rx179_cur."!cursor_pos"(rx179_pos)
-    .const 'Sub' $P186 = "50_1283975941.34404" 
-    capture_lex $P186
-    $P10 = rx179_cur."before"($P186)
-    if $P10, rx179_fail
-  alt184_end:
-  # rx pass
-    rx179_cur."!cursor_pass"(rx179_pos, "backmod")
-    if_null rx179_debug, debug_248
-    rx179_cur."!cursor_debug"("PASS", "backmod", " at pos=", rx179_pos)
-  debug_248:
+  rxquantr181_done:
+  # rx pass
+    rx179_cur."!cursor_pass"(rx179_pos, "")
+    if_null rx179_debug, debug_251
+    rx179_cur."!cursor_debug"("PASS", "", " at pos=", rx179_pos)
+  debug_251:
     .return (rx179_cur)
   rx179_restart:
-    if_null rx179_debug, debug_249
-    rx179_cur."!cursor_debug"("NEXT", "backmod")
-  debug_249:
+    if_null rx179_debug, debug_252
+    rx179_cur."!cursor_debug"("NEXT", "")
+  debug_252:
   rx179_fail:
     (rx179_rep, rx179_pos, $I10, $P10) = rx179_cur."!mark_fail"(0)
     lt rx179_pos, -1, rx179_done
@@ -2409,26 +2417,84 @@
     jump $I10
   rx179_done:
     rx179_cur."!cursor_fail"()
-    if_null rx179_debug, debug_250
-    rx179_cur."!cursor_debug"("FAIL", "backmod")
-  debug_250:
+    if_null rx179_debug, debug_253
+    rx179_cur."!cursor_debug"("FAIL", "")
+  debug_253:
     .return (rx179_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backmod"  :subid("49_1283975941.34404") :method
-.annotate 'line', 0
-    new $P181, "ResizablePMCArray"
-    push $P181, ""
-    .return ($P181)
+.sub "_block182"  :anon :subid("51_1284728471.30547") :method :outer("46_1284728471.30547")
+.annotate 'line', 65
+    .local string rx184_tgt
+    .local int rx184_pos
+    .local int rx184_off
+    .local int rx184_eos
+    .local int rx184_rep
+    .local pmc rx184_cur
+    .local pmc rx184_debug
+    (rx184_cur, rx184_pos, rx184_tgt, $I10) = self."!cursor_start"()
+    getattribute rx184_debug, rx184_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx184_cur
+    .local pmc match
+    .lex "$/", match
+    length rx184_eos, rx184_tgt
+    gt rx184_pos, rx184_eos, rx184_done
+    set rx184_off, 0
+    lt rx184_pos, 2, rx184_start
+    sub rx184_off, rx184_pos, 1
+    substr rx184_tgt, rx184_tgt, rx184_off
+  rx184_start:
+    eq $I10, 1, rx184_restart
+    if_null rx184_debug, debug_254
+    rx184_cur."!cursor_debug"("START", "")
+  debug_254:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan185_done
+    goto rxscan185_scan
+  rxscan185_loop:
+    ($P10) = rx184_cur."from"()
+    inc $P10
+    set rx184_pos, $P10
+    ge rx184_pos, rx184_eos, rxscan185_done
+  rxscan185_scan:
+    set_addr $I10, rxscan185_loop
+    rx184_cur."!mark_push"(0, rx184_pos, $I10)
+  rxscan185_done:
+  # rx charclass_q d r 0..-1
+    sub $I10, rx184_pos, rx184_off
+    find_not_cclass $I11, 8, rx184_tgt, $I10, rx184_eos
+    add rx184_pos, rx184_off, $I11
+  # rx pass
+    rx184_cur."!cursor_pass"(rx184_pos, "")
+    if_null rx184_debug, debug_255
+    rx184_cur."!cursor_debug"("PASS", "", " at pos=", rx184_pos)
+  debug_255:
+    .return (rx184_cur)
+  rx184_restart:
+    if_null rx184_debug, debug_256
+    rx184_cur."!cursor_debug"("NEXT", "")
+  debug_256:
+  rx184_fail:
+    (rx184_rep, rx184_pos, $I10, $P10) = rx184_cur."!mark_fail"(0)
+    lt rx184_pos, -1, rx184_done
+    eq rx184_pos, -1, rx184_fail
+    jump $I10
+  rx184_done:
+    rx184_cur."!cursor_fail"()
+    if_null rx184_debug, debug_257
+    rx184_cur."!cursor_debug"("FAIL", "")
+  debug_257:
+    .return (rx184_cur)
+    .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block185"  :anon :subid("50_1283975941.34404") :method :outer("48_1283975941.34404")
-.annotate 'line', 0
+.sub "quantifier:sym<**>"  :subid("52_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
     .local string rx187_tgt
     .local int rx187_pos
     .local int rx187_off
@@ -2437,6 +2503,7 @@
     .local pmc rx187_cur
     .local pmc rx187_debug
     (rx187_cur, rx187_pos, rx187_tgt, $I10) = self."!cursor_start"()
+    rx187_cur."!cursor_caparray"("max", "normspace")
     getattribute rx187_debug, rx187_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx187_cur
     .local pmc match
@@ -2449,38 +2516,203 @@
     substr rx187_tgt, rx187_tgt, rx187_off
   rx187_start:
     eq $I10, 1, rx187_restart
-    if_null rx187_debug, debug_244
-    rx187_cur."!cursor_debug"("START", "")
-  debug_244:
+    if_null rx187_debug, debug_261
+    rx187_cur."!cursor_debug"("START", "quantifier:sym<**>")
+  debug_261:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan188_done
-    goto rxscan188_scan
-  rxscan188_loop:
+    ne $I10, -1, rxscan190_done
+    goto rxscan190_scan
+  rxscan190_loop:
     ($P10) = rx187_cur."from"()
     inc $P10
     set rx187_pos, $P10
-    ge rx187_pos, rx187_eos, rxscan188_done
-  rxscan188_scan:
-    set_addr $I10, rxscan188_loop
+    ge rx187_pos, rx187_eos, rxscan190_done
+  rxscan190_scan:
+    set_addr $I10, rxscan190_loop
     rx187_cur."!mark_push"(0, rx187_pos, $I10)
-  rxscan188_done:
-  # rx literal  ":"
+  rxscan190_done:
+.annotate 'line', 69
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_191_fail
+    rx187_cur."!mark_push"(0, rx187_pos, $I10)
+  # rx literal  "**"
+    add $I11, rx187_pos, 2
+    gt $I11, rx187_eos, rx187_fail
+    sub $I11, rx187_pos, rx187_off
+    substr $S10, rx187_tgt, $I11, 2
+    ne $S10, "**", rx187_fail
+    add rx187_pos, 2
+    set_addr $I10, rxcap_191_fail
+    ($I12, $I11) = rx187_cur."!mark_peek"($I10)
+    rx187_cur."!cursor_pos"($I11)
+    ($P10) = rx187_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx187_pos, "")
+    rx187_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_191_done
+  rxcap_191_fail:
+    goto rx187_fail
+  rxcap_191_done:
+  # rx rxquantr192 ** 0..1
+    set_addr $I10, rxquantr192_done
+    rx187_cur."!mark_push"(0, rx187_pos, $I10)
+  rxquantr192_loop:
+  # rx subrule "normspace" subtype=capture negate=
+    rx187_cur."!cursor_pos"(rx187_pos)
+    $P10 = rx187_cur."normspace"()
+    unless $P10, rx187_fail
+    goto rxsubrule193_pass
+  rxsubrule193_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx187_fail
+  rxsubrule193_pass:
+    set_addr $I10, rxsubrule193_back
+    rx187_cur."!mark_push"(0, rx187_pos, $I10, $P10)
+    $P10."!cursor_names"("normspace")
+    rx187_pos = $P10."pos"()
+    set_addr $I10, rxquantr192_done
+    (rx187_rep) = rx187_cur."!mark_commit"($I10)
+  rxquantr192_done:
+  # rx subrule "backmod" subtype=capture negate=
+    rx187_cur."!cursor_pos"(rx187_pos)
+    $P10 = rx187_cur."backmod"()
+    unless $P10, rx187_fail
+    rx187_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("backmod")
+    rx187_pos = $P10."pos"()
+  # rx rxquantr194 ** 0..1
+    set_addr $I10, rxquantr194_done
+    rx187_cur."!mark_push"(0, rx187_pos, $I10)
+  rxquantr194_loop:
+  # rx subrule "normspace" subtype=capture negate=
+    rx187_cur."!cursor_pos"(rx187_pos)
+    $P10 = rx187_cur."normspace"()
+    unless $P10, rx187_fail
+    goto rxsubrule195_pass
+  rxsubrule195_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx187_fail
+  rxsubrule195_pass:
+    set_addr $I10, rxsubrule195_back
+    rx187_cur."!mark_push"(0, rx187_pos, $I10, $P10)
+    $P10."!cursor_names"("normspace")
+    rx187_pos = $P10."pos"()
+    set_addr $I10, rxquantr194_done
+    (rx187_rep) = rx187_cur."!mark_commit"($I10)
+  rxquantr194_done:
+  alt196_0:
+.annotate 'line', 70
+    set_addr $I10, alt196_1
+    rx187_cur."!mark_push"(0, rx187_pos, $I10)
+.annotate 'line', 71
+  # rx subcapture "min"
+    set_addr $I10, rxcap_197_fail
+    rx187_cur."!mark_push"(0, rx187_pos, $I10)
+  # rx charclass_q d r 1..-1
+    sub $I10, rx187_pos, rx187_off
+    find_not_cclass $I11, 8, rx187_tgt, $I10, rx187_eos
+    add $I12, $I10, 1
+    lt $I11, $I12, rx187_fail
+    add rx187_pos, rx187_off, $I11
+    set_addr $I10, rxcap_197_fail
+    ($I12, $I11) = rx187_cur."!mark_peek"($I10)
+    rx187_cur."!cursor_pos"($I11)
+    ($P10) = rx187_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx187_pos, "")
+    rx187_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("min")
+    goto rxcap_197_done
+  rxcap_197_fail:
+    goto rx187_fail
+  rxcap_197_done:
+.annotate 'line', 78
+  # rx rxquantr198 ** 0..1
+    set_addr $I10, rxquantr198_done
+    rx187_cur."!mark_push"(0, rx187_pos, $I10)
+  rxquantr198_loop:
+.annotate 'line', 72
+  # rx literal  ".."
+    add $I11, rx187_pos, 2
+    gt $I11, rx187_eos, rx187_fail
+    sub $I11, rx187_pos, rx187_off
+    substr $S10, rx187_tgt, $I11, 2
+    ne $S10, "..", rx187_fail
+    add rx187_pos, 2
+.annotate 'line', 73
+  # rx subcapture "max"
+    set_addr $I10, rxcap_200_fail
+    rx187_cur."!mark_push"(0, rx187_pos, $I10)
+  alt199_0:
+    set_addr $I10, alt199_1
+    rx187_cur."!mark_push"(0, rx187_pos, $I10)
+.annotate 'line', 74
+  # rx charclass_q d r 1..-1
+    sub $I10, rx187_pos, rx187_off
+    find_not_cclass $I11, 8, rx187_tgt, $I10, rx187_eos
+    add $I12, $I10, 1
+    lt $I11, $I12, rx187_fail
+    add rx187_pos, rx187_off, $I11
+    goto alt199_end
+  alt199_1:
+    set_addr $I10, alt199_2
+    rx187_cur."!mark_push"(0, rx187_pos, $I10)
+.annotate 'line', 75
+  # rx literal  "*"
     add $I11, rx187_pos, 1
     gt $I11, rx187_eos, rx187_fail
     sub $I11, rx187_pos, rx187_off
     ord $I11, rx187_tgt, $I11
-    ne $I11, 58, rx187_fail
+    ne $I11, 42, rx187_fail
     add rx187_pos, 1
-  # rx pass
-    rx187_cur."!cursor_pass"(rx187_pos, "")
-    if_null rx187_debug, debug_245
-    rx187_cur."!cursor_debug"("PASS", "", " at pos=", rx187_pos)
-  debug_245:
+    goto alt199_end
+  alt199_2:
+.annotate 'line', 76
+  # rx subrule "panic" subtype=method negate=
+    rx187_cur."!cursor_pos"(rx187_pos)
+    $P10 = rx187_cur."panic"("Only integers or '*' allowed as range quantifier endpoint")
+    unless $P10, rx187_fail
+    rx187_pos = $P10."pos"()
+  alt199_end:
+.annotate 'line', 73
+    set_addr $I10, rxcap_200_fail
+    ($I12, $I11) = rx187_cur."!mark_peek"($I10)
+    rx187_cur."!cursor_pos"($I11)
+    ($P10) = rx187_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx187_pos, "")
+    rx187_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("max")
+    goto rxcap_200_done
+  rxcap_200_fail:
+    goto rx187_fail
+  rxcap_200_done:
+.annotate 'line', 78
+    set_addr $I10, rxquantr198_done
+    (rx187_rep) = rx187_cur."!mark_commit"($I10)
+  rxquantr198_done:
+.annotate 'line', 71
+    goto alt196_end
+  alt196_1:
+.annotate 'line', 79
+  # rx subrule "quantified_atom" subtype=capture negate=
+    rx187_cur."!cursor_pos"(rx187_pos)
+    $P10 = rx187_cur."quantified_atom"()
+    unless $P10, rx187_fail
+    rx187_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("quantified_atom")
+    rx187_pos = $P10."pos"()
+  alt196_end:
+.annotate 'line', 68
+  # rx pass
+    rx187_cur."!cursor_pass"(rx187_pos, "quantifier:sym<**>")
+    if_null rx187_debug, debug_262
+    rx187_cur."!cursor_debug"("PASS", "quantifier:sym<**>", " at pos=", rx187_pos)
+  debug_262:
     .return (rx187_cur)
   rx187_restart:
-    if_null rx187_debug, debug_246
-    rx187_cur."!cursor_debug"("NEXT", "")
-  debug_246:
+.annotate 'line', 3
+    if_null rx187_debug, debug_263
+    rx187_cur."!cursor_debug"("NEXT", "quantifier:sym<**>")
+  debug_263:
   rx187_fail:
     (rx187_rep, rx187_pos, $I10, $P10) = rx187_cur."!mark_fail"(0)
     lt rx187_pos, -1, rx187_done
@@ -2488,384 +2720,232 @@
     jump $I10
   rx187_done:
     rx187_cur."!cursor_fail"()
-    if_null rx187_debug, debug_247
-    rx187_cur."!cursor_debug"("FAIL", "")
-  debug_247:
+    if_null rx187_debug, debug_264
+    rx187_cur."!cursor_debug"("FAIL", "quantifier:sym<**>")
+  debug_264:
     .return (rx187_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar"  :subid("51_1283975941.34404") :method
-.annotate 'line', 0
-    $P190 = self."!protoregex"("metachar")
-    .return ($P190)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar"  :subid("52_1283975941.34404") :method
-.annotate 'line', 0
-    $P192 = self."!PREFIX__!protoregex"("metachar")
-    .return ($P192)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<ws>"  :subid("53_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx194_tgt
-    .local int rx194_pos
-    .local int rx194_off
-    .local int rx194_eos
-    .local int rx194_rep
-    .local pmc rx194_cur
-    .local pmc rx194_debug
-    (rx194_cur, rx194_pos, rx194_tgt, $I10) = self."!cursor_start"()
-    getattribute rx194_debug, rx194_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx194_cur
-    .local pmc match
-    .lex "$/", match
-    length rx194_eos, rx194_tgt
-    gt rx194_pos, rx194_eos, rx194_done
-    set rx194_off, 0
-    lt rx194_pos, 2, rx194_start
-    sub rx194_off, rx194_pos, 1
-    substr rx194_tgt, rx194_tgt, rx194_off
-  rx194_start:
-    eq $I10, 1, rx194_restart
-    if_null rx194_debug, debug_251
-    rx194_cur."!cursor_debug"("START", "metachar:sym<ws>")
-  debug_251:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan198_done
-    goto rxscan198_scan
-  rxscan198_loop:
-    ($P10) = rx194_cur."from"()
-    inc $P10
-    set rx194_pos, $P10
-    ge rx194_pos, rx194_eos, rxscan198_done
-  rxscan198_scan:
-    set_addr $I10, rxscan198_loop
-    rx194_cur."!mark_push"(0, rx194_pos, $I10)
-  rxscan198_done:
-  # rx subrule "normspace" subtype=method negate=
-    rx194_cur."!cursor_pos"(rx194_pos)
-    $P10 = rx194_cur."normspace"()
-    unless $P10, rx194_fail
-    rx194_pos = $P10."pos"()
-  # rx pass
-    rx194_cur."!cursor_pass"(rx194_pos, "metachar:sym<ws>")
-    if_null rx194_debug, debug_252
-    rx194_cur."!cursor_debug"("PASS", "metachar:sym<ws>", " at pos=", rx194_pos)
-  debug_252:
-    .return (rx194_cur)
-  rx194_restart:
-    if_null rx194_debug, debug_253
-    rx194_cur."!cursor_debug"("NEXT", "metachar:sym<ws>")
-  debug_253:
-  rx194_fail:
-    (rx194_rep, rx194_pos, $I10, $P10) = rx194_cur."!mark_fail"(0)
-    lt rx194_pos, -1, rx194_done
-    eq rx194_pos, -1, rx194_fail
-    jump $I10
-  rx194_done:
-    rx194_cur."!cursor_fail"()
-    if_null rx194_debug, debug_254
-    rx194_cur."!cursor_debug"("FAIL", "metachar:sym<ws>")
-  debug_254:
-    .return (rx194_cur)
-    .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<ws>"  :subid("54_1283975941.34404") :method
-.annotate 'line', 0
-    $P196 = self."!PREFIX__!subrule"("normspace", "")
-    new $P197, "ResizablePMCArray"
-    push $P197, $P196
-    .return ($P197)
+.sub "!PREFIX__quantifier:sym<**>"  :subid("53_1284728471.30547") :method
+.annotate 'line', 3
+    new $P189, "ResizablePMCArray"
+    push $P189, "**"
+    .return ($P189)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<[ ]>"  :subid("55_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx200_tgt
-    .local int rx200_pos
-    .local int rx200_off
-    .local int rx200_eos
-    .local int rx200_rep
-    .local pmc rx200_cur
-    .local pmc rx200_debug
-    (rx200_cur, rx200_pos, rx200_tgt, $I10) = self."!cursor_start"()
-    getattribute rx200_debug, rx200_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx200_cur
-    .local pmc match
-    .lex "$/", match
-    length rx200_eos, rx200_tgt
-    gt rx200_pos, rx200_eos, rx200_done
-    set rx200_off, 0
-    lt rx200_pos, 2, rx200_start
-    sub rx200_off, rx200_pos, 1
-    substr rx200_tgt, rx200_tgt, rx200_off
-  rx200_start:
-    eq $I10, 1, rx200_restart
-    if_null rx200_debug, debug_255
-    rx200_cur."!cursor_debug"("START", "metachar:sym<[ ]>")
-  debug_255:
+.sub "backmod"  :subid("54_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .const 'Sub' $P209 = "56_1284728471.30547" 
+    capture_lex $P209
+    .local string rx202_tgt
+    .local int rx202_pos
+    .local int rx202_off
+    .local int rx202_eos
+    .local int rx202_rep
+    .local pmc rx202_cur
+    .local pmc rx202_debug
+    (rx202_cur, rx202_pos, rx202_tgt, $I10) = self."!cursor_start"()
+    getattribute rx202_debug, rx202_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx202_cur
+    .local pmc match
+    .lex "$/", match
+    length rx202_eos, rx202_tgt
+    gt rx202_pos, rx202_eos, rx202_done
+    set rx202_off, 0
+    lt rx202_pos, 2, rx202_start
+    sub rx202_off, rx202_pos, 1
+    substr rx202_tgt, rx202_tgt, rx202_off
+  rx202_start:
+    eq $I10, 1, rx202_restart
+    if_null rx202_debug, debug_265
+    rx202_cur."!cursor_debug"("START", "backmod")
+  debug_265:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan204_done
-    goto rxscan204_scan
-  rxscan204_loop:
-    ($P10) = rx200_cur."from"()
-    inc $P10
-    set rx200_pos, $P10
-    ge rx200_pos, rx200_eos, rxscan204_done
-  rxscan204_scan:
-    set_addr $I10, rxscan204_loop
-    rx200_cur."!mark_push"(0, rx200_pos, $I10)
-  rxscan204_done:
-  # rx literal  "["
-    add $I11, rx200_pos, 1
-    gt $I11, rx200_eos, rx200_fail
-    sub $I11, rx200_pos, rx200_off
-    ord $I11, rx200_tgt, $I11
-    ne $I11, 91, rx200_fail
-    add rx200_pos, 1
-  # rx subrule "nibbler" subtype=capture negate=
-    rx200_cur."!cursor_pos"(rx200_pos)
-    $P10 = rx200_cur."nibbler"()
-    unless $P10, rx200_fail
-    rx200_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("nibbler")
-    rx200_pos = $P10."pos"()
-  # rx literal  "]"
-    add $I11, rx200_pos, 1
-    gt $I11, rx200_eos, rx200_fail
-    sub $I11, rx200_pos, rx200_off
-    ord $I11, rx200_tgt, $I11
-    ne $I11, 93, rx200_fail
-    add rx200_pos, 1
-  # rx pass
-    rx200_cur."!cursor_pass"(rx200_pos, "metachar:sym<[ ]>")
-    if_null rx200_debug, debug_256
-    rx200_cur."!cursor_debug"("PASS", "metachar:sym<[ ]>", " at pos=", rx200_pos)
-  debug_256:
-    .return (rx200_cur)
-  rx200_restart:
-    if_null rx200_debug, debug_257
-    rx200_cur."!cursor_debug"("NEXT", "metachar:sym<[ ]>")
-  debug_257:
-  rx200_fail:
-    (rx200_rep, rx200_pos, $I10, $P10) = rx200_cur."!mark_fail"(0)
-    lt rx200_pos, -1, rx200_done
-    eq rx200_pos, -1, rx200_fail
-    jump $I10
-  rx200_done:
-    rx200_cur."!cursor_fail"()
-    if_null rx200_debug, debug_258
-    rx200_cur."!cursor_debug"("FAIL", "metachar:sym<[ ]>")
-  debug_258:
-    .return (rx200_cur)
+    ne $I10, -1, rxscan205_done
+    goto rxscan205_scan
+  rxscan205_loop:
+    ($P10) = rx202_cur."from"()
+    inc $P10
+    set rx202_pos, $P10
+    ge rx202_pos, rx202_eos, rxscan205_done
+  rxscan205_scan:
+    set_addr $I10, rxscan205_loop
+    rx202_cur."!mark_push"(0, rx202_pos, $I10)
+  rxscan205_done:
+.annotate 'line', 83
+  # rx rxquantr206 ** 0..1
+    set_addr $I10, rxquantr206_done
+    rx202_cur."!mark_push"(0, rx202_pos, $I10)
+  rxquantr206_loop:
+  # rx literal  ":"
+    add $I11, rx202_pos, 1
+    gt $I11, rx202_eos, rx202_fail
+    sub $I11, rx202_pos, rx202_off
+    ord $I11, rx202_tgt, $I11
+    ne $I11, 58, rx202_fail
+    add rx202_pos, 1
+    set_addr $I10, rxquantr206_done
+    (rx202_rep) = rx202_cur."!mark_commit"($I10)
+  rxquantr206_done:
+  alt207_0:
+    set_addr $I10, alt207_1
+    rx202_cur."!mark_push"(0, rx202_pos, $I10)
+  # rx literal  "?"
+    add $I11, rx202_pos, 1
+    gt $I11, rx202_eos, rx202_fail
+    sub $I11, rx202_pos, rx202_off
+    ord $I11, rx202_tgt, $I11
+    ne $I11, 63, rx202_fail
+    add rx202_pos, 1
+    goto alt207_end
+  alt207_1:
+    set_addr $I10, alt207_2
+    rx202_cur."!mark_push"(0, rx202_pos, $I10)
+  # rx literal  "!"
+    add $I11, rx202_pos, 1
+    gt $I11, rx202_eos, rx202_fail
+    sub $I11, rx202_pos, rx202_off
+    ord $I11, rx202_tgt, $I11
+    ne $I11, 33, rx202_fail
+    add rx202_pos, 1
+    goto alt207_end
+  alt207_2:
+  # rx subrule "before" subtype=zerowidth negate=1
+    rx202_cur."!cursor_pos"(rx202_pos)
+    .const 'Sub' $P209 = "56_1284728471.30547" 
+    capture_lex $P209
+    $P10 = rx202_cur."before"($P209)
+    if $P10, rx202_fail
+  alt207_end:
+  # rx pass
+    rx202_cur."!cursor_pass"(rx202_pos, "backmod")
+    if_null rx202_debug, debug_270
+    rx202_cur."!cursor_debug"("PASS", "backmod", " at pos=", rx202_pos)
+  debug_270:
+    .return (rx202_cur)
+  rx202_restart:
+.annotate 'line', 3
+    if_null rx202_debug, debug_271
+    rx202_cur."!cursor_debug"("NEXT", "backmod")
+  debug_271:
+  rx202_fail:
+    (rx202_rep, rx202_pos, $I10, $P10) = rx202_cur."!mark_fail"(0)
+    lt rx202_pos, -1, rx202_done
+    eq rx202_pos, -1, rx202_fail
+    jump $I10
+  rx202_done:
+    rx202_cur."!cursor_fail"()
+    if_null rx202_debug, debug_272
+    rx202_cur."!cursor_debug"("FAIL", "backmod")
+  debug_272:
+    .return (rx202_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<[ ]>"  :subid("56_1283975941.34404") :method
-.annotate 'line', 0
-    $P202 = self."!PREFIX__!subrule"("nibbler", "[")
-    new $P203, "ResizablePMCArray"
-    push $P203, $P202
-    .return ($P203)
+.sub "!PREFIX__backmod"  :subid("55_1284728471.30547") :method
+.annotate 'line', 3
+    new $P204, "ResizablePMCArray"
+    push $P204, ""
+    .return ($P204)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<( )>"  :subid("57_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx206_tgt
-    .local int rx206_pos
-    .local int rx206_off
-    .local int rx206_eos
-    .local int rx206_rep
-    .local pmc rx206_cur
-    .local pmc rx206_debug
-    (rx206_cur, rx206_pos, rx206_tgt, $I10) = self."!cursor_start"()
-    getattribute rx206_debug, rx206_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx206_cur
-    .local pmc match
-    .lex "$/", match
-    length rx206_eos, rx206_tgt
-    gt rx206_pos, rx206_eos, rx206_done
-    set rx206_off, 0
-    lt rx206_pos, 2, rx206_start
-    sub rx206_off, rx206_pos, 1
-    substr rx206_tgt, rx206_tgt, rx206_off
-  rx206_start:
-    eq $I10, 1, rx206_restart
-    if_null rx206_debug, debug_259
-    rx206_cur."!cursor_debug"("START", "metachar:sym<( )>")
-  debug_259:
+.sub "_block208"  :anon :subid("56_1284728471.30547") :method :outer("54_1284728471.30547")
+.annotate 'line', 83
+    .local string rx210_tgt
+    .local int rx210_pos
+    .local int rx210_off
+    .local int rx210_eos
+    .local int rx210_rep
+    .local pmc rx210_cur
+    .local pmc rx210_debug
+    (rx210_cur, rx210_pos, rx210_tgt, $I10) = self."!cursor_start"()
+    getattribute rx210_debug, rx210_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx210_cur
+    .local pmc match
+    .lex "$/", match
+    length rx210_eos, rx210_tgt
+    gt rx210_pos, rx210_eos, rx210_done
+    set rx210_off, 0
+    lt rx210_pos, 2, rx210_start
+    sub rx210_off, rx210_pos, 1
+    substr rx210_tgt, rx210_tgt, rx210_off
+  rx210_start:
+    eq $I10, 1, rx210_restart
+    if_null rx210_debug, debug_266
+    rx210_cur."!cursor_debug"("START", "")
+  debug_266:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan210_done
-    goto rxscan210_scan
-  rxscan210_loop:
-    ($P10) = rx206_cur."from"()
-    inc $P10
-    set rx206_pos, $P10
-    ge rx206_pos, rx206_eos, rxscan210_done
-  rxscan210_scan:
-    set_addr $I10, rxscan210_loop
-    rx206_cur."!mark_push"(0, rx206_pos, $I10)
-  rxscan210_done:
-  # rx literal  "("
-    add $I11, rx206_pos, 1
-    gt $I11, rx206_eos, rx206_fail
-    sub $I11, rx206_pos, rx206_off
-    ord $I11, rx206_tgt, $I11
-    ne $I11, 40, rx206_fail
-    add rx206_pos, 1
-  # rx subrule "nibbler" subtype=capture negate=
-    rx206_cur."!cursor_pos"(rx206_pos)
-    $P10 = rx206_cur."nibbler"()
-    unless $P10, rx206_fail
-    rx206_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("nibbler")
-    rx206_pos = $P10."pos"()
-  # rx literal  ")"
-    add $I11, rx206_pos, 1
-    gt $I11, rx206_eos, rx206_fail
-    sub $I11, rx206_pos, rx206_off
-    ord $I11, rx206_tgt, $I11
-    ne $I11, 41, rx206_fail
-    add rx206_pos, 1
-  # rx pass
-    rx206_cur."!cursor_pass"(rx206_pos, "metachar:sym<( )>")
-    if_null rx206_debug, debug_260
-    rx206_cur."!cursor_debug"("PASS", "metachar:sym<( )>", " at pos=", rx206_pos)
-  debug_260:
-    .return (rx206_cur)
-  rx206_restart:
-    if_null rx206_debug, debug_261
-    rx206_cur."!cursor_debug"("NEXT", "metachar:sym<( )>")
-  debug_261:
-  rx206_fail:
-    (rx206_rep, rx206_pos, $I10, $P10) = rx206_cur."!mark_fail"(0)
-    lt rx206_pos, -1, rx206_done
-    eq rx206_pos, -1, rx206_fail
-    jump $I10
-  rx206_done:
-    rx206_cur."!cursor_fail"()
-    if_null rx206_debug, debug_262
-    rx206_cur."!cursor_debug"("FAIL", "metachar:sym<( )>")
-  debug_262:
-    .return (rx206_cur)
+    ne $I10, -1, rxscan211_done
+    goto rxscan211_scan
+  rxscan211_loop:
+    ($P10) = rx210_cur."from"()
+    inc $P10
+    set rx210_pos, $P10
+    ge rx210_pos, rx210_eos, rxscan211_done
+  rxscan211_scan:
+    set_addr $I10, rxscan211_loop
+    rx210_cur."!mark_push"(0, rx210_pos, $I10)
+  rxscan211_done:
+  # rx literal  ":"
+    add $I11, rx210_pos, 1
+    gt $I11, rx210_eos, rx210_fail
+    sub $I11, rx210_pos, rx210_off
+    ord $I11, rx210_tgt, $I11
+    ne $I11, 58, rx210_fail
+    add rx210_pos, 1
+  # rx pass
+    rx210_cur."!cursor_pass"(rx210_pos, "")
+    if_null rx210_debug, debug_267
+    rx210_cur."!cursor_debug"("PASS", "", " at pos=", rx210_pos)
+  debug_267:
+    .return (rx210_cur)
+  rx210_restart:
+    if_null rx210_debug, debug_268
+    rx210_cur."!cursor_debug"("NEXT", "")
+  debug_268:
+  rx210_fail:
+    (rx210_rep, rx210_pos, $I10, $P10) = rx210_cur."!mark_fail"(0)
+    lt rx210_pos, -1, rx210_done
+    eq rx210_pos, -1, rx210_fail
+    jump $I10
+  rx210_done:
+    rx210_cur."!cursor_fail"()
+    if_null rx210_debug, debug_269
+    rx210_cur."!cursor_debug"("FAIL", "")
+  debug_269:
+    .return (rx210_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<( )>"  :subid("58_1283975941.34404") :method
-.annotate 'line', 0
-    $P208 = self."!PREFIX__!subrule"("nibbler", "(")
-    new $P209, "ResizablePMCArray"
-    push $P209, $P208
-    .return ($P209)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<'>"  :subid("59_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx212_tgt
-    .local int rx212_pos
-    .local int rx212_off
-    .local int rx212_eos
-    .local int rx212_rep
-    .local pmc rx212_cur
-    .local pmc rx212_debug
-    (rx212_cur, rx212_pos, rx212_tgt, $I10) = self."!cursor_start"()
-    getattribute rx212_debug, rx212_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx212_cur
-    .local pmc match
-    .lex "$/", match
-    length rx212_eos, rx212_tgt
-    gt rx212_pos, rx212_eos, rx212_done
-    set rx212_off, 0
-    lt rx212_pos, 2, rx212_start
-    sub rx212_off, rx212_pos, 1
-    substr rx212_tgt, rx212_tgt, rx212_off
-  rx212_start:
-    eq $I10, 1, rx212_restart
-    if_null rx212_debug, debug_263
-    rx212_cur."!cursor_debug"("START", "metachar:sym<'>")
-  debug_263:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan215_done
-    goto rxscan215_scan
-  rxscan215_loop:
-    ($P10) = rx212_cur."from"()
-    inc $P10
-    set rx212_pos, $P10
-    ge rx212_pos, rx212_eos, rxscan215_done
-  rxscan215_scan:
-    set_addr $I10, rxscan215_loop
-    rx212_cur."!mark_push"(0, rx212_pos, $I10)
-  rxscan215_done:
-  # rx enumcharlist negate=0 zerowidth
-    ge rx212_pos, rx212_eos, rx212_fail
-    sub $I10, rx212_pos, rx212_off
-    substr $S10, rx212_tgt, $I10, 1
-    index $I11, "'", $S10
-    lt $I11, 0, rx212_fail
-  # rx subrule "quote_EXPR" subtype=capture negate=
-    rx212_cur."!cursor_pos"(rx212_pos)
-    $P10 = rx212_cur."quote_EXPR"(":q")
-    unless $P10, rx212_fail
-    rx212_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
-    rx212_pos = $P10."pos"()
-  # rx pass
-    rx212_cur."!cursor_pass"(rx212_pos, "metachar:sym<'>")
-    if_null rx212_debug, debug_264
-    rx212_cur."!cursor_debug"("PASS", "metachar:sym<'>", " at pos=", rx212_pos)
-  debug_264:
-    .return (rx212_cur)
-  rx212_restart:
-    if_null rx212_debug, debug_265
-    rx212_cur."!cursor_debug"("NEXT", "metachar:sym<'>")
-  debug_265:
-  rx212_fail:
-    (rx212_rep, rx212_pos, $I10, $P10) = rx212_cur."!mark_fail"(0)
-    lt rx212_pos, -1, rx212_done
-    eq rx212_pos, -1, rx212_fail
-    jump $I10
-  rx212_done:
-    rx212_cur."!cursor_fail"()
-    if_null rx212_debug, debug_266
-    rx212_cur."!cursor_debug"("FAIL", "metachar:sym<'>")
-  debug_266:
-    .return (rx212_cur)
-    .return ()
+.sub "metachar"  :subid("57_1284728471.30547") :method
+.annotate 'line', 85
+    $P213 = self."!protoregex"("metachar")
+    .return ($P213)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<'>"  :subid("60_1283975941.34404") :method
-.annotate 'line', 0
-    new $P214, "ResizablePMCArray"
-    push $P214, "'"
-    .return ($P214)
+.sub "!PREFIX__metachar"  :subid("58_1284728471.30547") :method
+.annotate 'line', 85
+    $P215 = self."!PREFIX__!protoregex"("metachar")
+    .return ($P215)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<\">"  :subid("61_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
+.sub "metachar:sym<ws>"  :subid("59_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
     .local string rx217_tgt
     .local int rx217_pos
     .local int rx217_off
@@ -2886,44 +2966,38 @@
     substr rx217_tgt, rx217_tgt, rx217_off
   rx217_start:
     eq $I10, 1, rx217_restart
-    if_null rx217_debug, debug_267
-    rx217_cur."!cursor_debug"("START", "metachar:sym<\">")
-  debug_267:
+    if_null rx217_debug, debug_273
+    rx217_cur."!cursor_debug"("START", "metachar:sym<ws>")
+  debug_273:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan220_done
-    goto rxscan220_scan
-  rxscan220_loop:
+    ne $I10, -1, rxscan221_done
+    goto rxscan221_scan
+  rxscan221_loop:
     ($P10) = rx217_cur."from"()
     inc $P10
     set rx217_pos, $P10
-    ge rx217_pos, rx217_eos, rxscan220_done
-  rxscan220_scan:
-    set_addr $I10, rxscan220_loop
+    ge rx217_pos, rx217_eos, rxscan221_done
+  rxscan221_scan:
+    set_addr $I10, rxscan221_loop
     rx217_cur."!mark_push"(0, rx217_pos, $I10)
-  rxscan220_done:
-  # rx enumcharlist negate=0 zerowidth
-    ge rx217_pos, rx217_eos, rx217_fail
-    sub $I10, rx217_pos, rx217_off
-    substr $S10, rx217_tgt, $I10, 1
-    index $I11, "\"", $S10
-    lt $I11, 0, rx217_fail
-  # rx subrule "quote_EXPR" subtype=capture negate=
+  rxscan221_done:
+.annotate 'line', 86
+  # rx subrule "normspace" subtype=method negate=
     rx217_cur."!cursor_pos"(rx217_pos)
-    $P10 = rx217_cur."quote_EXPR"(":qq")
+    $P10 = rx217_cur."normspace"()
     unless $P10, rx217_fail
-    rx217_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
     rx217_pos = $P10."pos"()
   # rx pass
-    rx217_cur."!cursor_pass"(rx217_pos, "metachar:sym<\">")
-    if_null rx217_debug, debug_268
-    rx217_cur."!cursor_debug"("PASS", "metachar:sym<\">", " at pos=", rx217_pos)
-  debug_268:
+    rx217_cur."!cursor_pass"(rx217_pos, "metachar:sym<ws>")
+    if_null rx217_debug, debug_274
+    rx217_cur."!cursor_debug"("PASS", "metachar:sym<ws>", " at pos=", rx217_pos)
+  debug_274:
     .return (rx217_cur)
   rx217_restart:
-    if_null rx217_debug, debug_269
-    rx217_cur."!cursor_debug"("NEXT", "metachar:sym<\">")
-  debug_269:
+.annotate 'line', 3
+    if_null rx217_debug, debug_275
+    rx217_cur."!cursor_debug"("NEXT", "metachar:sym<ws>")
+  debug_275:
   rx217_fail:
     (rx217_rep, rx217_pos, $I10, $P10) = rx217_cur."!mark_fail"(0)
     lt rx217_pos, -1, rx217_done
@@ -2931,305 +3005,305 @@
     jump $I10
   rx217_done:
     rx217_cur."!cursor_fail"()
-    if_null rx217_debug, debug_270
-    rx217_cur."!cursor_debug"("FAIL", "metachar:sym<\">")
-  debug_270:
+    if_null rx217_debug, debug_276
+    rx217_cur."!cursor_debug"("FAIL", "metachar:sym<ws>")
+  debug_276:
     .return (rx217_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<\">"  :subid("62_1283975941.34404") :method
-.annotate 'line', 0
-    new $P219, "ResizablePMCArray"
-    push $P219, "\""
-    .return ($P219)
+.sub "!PREFIX__metachar:sym<ws>"  :subid("60_1284728471.30547") :method
+.annotate 'line', 3
+    $P219 = self."!PREFIX__!subrule"("normspace", "")
+    new $P220, "ResizablePMCArray"
+    push $P220, $P219
+    .return ($P220)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<.>"  :subid("63_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx222_tgt
-    .local int rx222_pos
-    .local int rx222_off
-    .local int rx222_eos
-    .local int rx222_rep
-    .local pmc rx222_cur
-    .local pmc rx222_debug
-    (rx222_cur, rx222_pos, rx222_tgt, $I10) = self."!cursor_start"()
-    getattribute rx222_debug, rx222_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx222_cur
-    .local pmc match
-    .lex "$/", match
-    length rx222_eos, rx222_tgt
-    gt rx222_pos, rx222_eos, rx222_done
-    set rx222_off, 0
-    lt rx222_pos, 2, rx222_start
-    sub rx222_off, rx222_pos, 1
-    substr rx222_tgt, rx222_tgt, rx222_off
-  rx222_start:
-    eq $I10, 1, rx222_restart
-    if_null rx222_debug, debug_271
-    rx222_cur."!cursor_debug"("START", "metachar:sym<.>")
-  debug_271:
+.sub "metachar:sym<[ ]>"  :subid("61_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx223_tgt
+    .local int rx223_pos
+    .local int rx223_off
+    .local int rx223_eos
+    .local int rx223_rep
+    .local pmc rx223_cur
+    .local pmc rx223_debug
+    (rx223_cur, rx223_pos, rx223_tgt, $I10) = self."!cursor_start"()
+    getattribute rx223_debug, rx223_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx223_cur
+    .local pmc match
+    .lex "$/", match
+    length rx223_eos, rx223_tgt
+    gt rx223_pos, rx223_eos, rx223_done
+    set rx223_off, 0
+    lt rx223_pos, 2, rx223_start
+    sub rx223_off, rx223_pos, 1
+    substr rx223_tgt, rx223_tgt, rx223_off
+  rx223_start:
+    eq $I10, 1, rx223_restart
+    if_null rx223_debug, debug_277
+    rx223_cur."!cursor_debug"("START", "metachar:sym<[ ]>")
+  debug_277:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan225_done
-    goto rxscan225_scan
-  rxscan225_loop:
-    ($P10) = rx222_cur."from"()
-    inc $P10
-    set rx222_pos, $P10
-    ge rx222_pos, rx222_eos, rxscan225_done
-  rxscan225_scan:
-    set_addr $I10, rxscan225_loop
-    rx222_cur."!mark_push"(0, rx222_pos, $I10)
-  rxscan225_done:
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_226_fail
-    rx222_cur."!mark_push"(0, rx222_pos, $I10)
-  # rx literal  "."
-    add $I11, rx222_pos, 1
-    gt $I11, rx222_eos, rx222_fail
-    sub $I11, rx222_pos, rx222_off
-    ord $I11, rx222_tgt, $I11
-    ne $I11, 46, rx222_fail
-    add rx222_pos, 1
-    set_addr $I10, rxcap_226_fail
-    ($I12, $I11) = rx222_cur."!mark_peek"($I10)
-    rx222_cur."!cursor_pos"($I11)
-    ($P10) = rx222_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx222_pos, "")
-    rx222_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_226_done
-  rxcap_226_fail:
-    goto rx222_fail
-  rxcap_226_done:
-  # rx pass
-    rx222_cur."!cursor_pass"(rx222_pos, "metachar:sym<.>")
-    if_null rx222_debug, debug_272
-    rx222_cur."!cursor_debug"("PASS", "metachar:sym<.>", " at pos=", rx222_pos)
-  debug_272:
-    .return (rx222_cur)
-  rx222_restart:
-    if_null rx222_debug, debug_273
-    rx222_cur."!cursor_debug"("NEXT", "metachar:sym<.>")
-  debug_273:
-  rx222_fail:
-    (rx222_rep, rx222_pos, $I10, $P10) = rx222_cur."!mark_fail"(0)
-    lt rx222_pos, -1, rx222_done
-    eq rx222_pos, -1, rx222_fail
-    jump $I10
-  rx222_done:
-    rx222_cur."!cursor_fail"()
-    if_null rx222_debug, debug_274
-    rx222_cur."!cursor_debug"("FAIL", "metachar:sym<.>")
-  debug_274:
-    .return (rx222_cur)
+    ne $I10, -1, rxscan227_done
+    goto rxscan227_scan
+  rxscan227_loop:
+    ($P10) = rx223_cur."from"()
+    inc $P10
+    set rx223_pos, $P10
+    ge rx223_pos, rx223_eos, rxscan227_done
+  rxscan227_scan:
+    set_addr $I10, rxscan227_loop
+    rx223_cur."!mark_push"(0, rx223_pos, $I10)
+  rxscan227_done:
+.annotate 'line', 87
+  # rx literal  "["
+    add $I11, rx223_pos, 1
+    gt $I11, rx223_eos, rx223_fail
+    sub $I11, rx223_pos, rx223_off
+    ord $I11, rx223_tgt, $I11
+    ne $I11, 91, rx223_fail
+    add rx223_pos, 1
+  # rx subrule "nibbler" subtype=capture negate=
+    rx223_cur."!cursor_pos"(rx223_pos)
+    $P10 = rx223_cur."nibbler"()
+    unless $P10, rx223_fail
+    rx223_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("nibbler")
+    rx223_pos = $P10."pos"()
+  # rx literal  "]"
+    add $I11, rx223_pos, 1
+    gt $I11, rx223_eos, rx223_fail
+    sub $I11, rx223_pos, rx223_off
+    ord $I11, rx223_tgt, $I11
+    ne $I11, 93, rx223_fail
+    add rx223_pos, 1
+  # rx pass
+    rx223_cur."!cursor_pass"(rx223_pos, "metachar:sym<[ ]>")
+    if_null rx223_debug, debug_278
+    rx223_cur."!cursor_debug"("PASS", "metachar:sym<[ ]>", " at pos=", rx223_pos)
+  debug_278:
+    .return (rx223_cur)
+  rx223_restart:
+.annotate 'line', 3
+    if_null rx223_debug, debug_279
+    rx223_cur."!cursor_debug"("NEXT", "metachar:sym<[ ]>")
+  debug_279:
+  rx223_fail:
+    (rx223_rep, rx223_pos, $I10, $P10) = rx223_cur."!mark_fail"(0)
+    lt rx223_pos, -1, rx223_done
+    eq rx223_pos, -1, rx223_fail
+    jump $I10
+  rx223_done:
+    rx223_cur."!cursor_fail"()
+    if_null rx223_debug, debug_280
+    rx223_cur."!cursor_debug"("FAIL", "metachar:sym<[ ]>")
+  debug_280:
+    .return (rx223_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<.>"  :subid("64_1283975941.34404") :method
-.annotate 'line', 0
-    new $P224, "ResizablePMCArray"
-    push $P224, "."
-    .return ($P224)
+.sub "!PREFIX__metachar:sym<[ ]>"  :subid("62_1284728471.30547") :method
+.annotate 'line', 3
+    $P225 = self."!PREFIX__!subrule"("nibbler", "[")
+    new $P226, "ResizablePMCArray"
+    push $P226, $P225
+    .return ($P226)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^>"  :subid("65_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx228_tgt
-    .local int rx228_pos
-    .local int rx228_off
-    .local int rx228_eos
-    .local int rx228_rep
-    .local pmc rx228_cur
-    .local pmc rx228_debug
-    (rx228_cur, rx228_pos, rx228_tgt, $I10) = self."!cursor_start"()
-    getattribute rx228_debug, rx228_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx228_cur
-    .local pmc match
-    .lex "$/", match
-    length rx228_eos, rx228_tgt
-    gt rx228_pos, rx228_eos, rx228_done
-    set rx228_off, 0
-    lt rx228_pos, 2, rx228_start
-    sub rx228_off, rx228_pos, 1
-    substr rx228_tgt, rx228_tgt, rx228_off
-  rx228_start:
-    eq $I10, 1, rx228_restart
-    if_null rx228_debug, debug_275
-    rx228_cur."!cursor_debug"("START", "metachar:sym<^>")
-  debug_275:
+.sub "metachar:sym<( )>"  :subid("63_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx229_tgt
+    .local int rx229_pos
+    .local int rx229_off
+    .local int rx229_eos
+    .local int rx229_rep
+    .local pmc rx229_cur
+    .local pmc rx229_debug
+    (rx229_cur, rx229_pos, rx229_tgt, $I10) = self."!cursor_start"()
+    getattribute rx229_debug, rx229_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx229_cur
+    .local pmc match
+    .lex "$/", match
+    length rx229_eos, rx229_tgt
+    gt rx229_pos, rx229_eos, rx229_done
+    set rx229_off, 0
+    lt rx229_pos, 2, rx229_start
+    sub rx229_off, rx229_pos, 1
+    substr rx229_tgt, rx229_tgt, rx229_off
+  rx229_start:
+    eq $I10, 1, rx229_restart
+    if_null rx229_debug, debug_281
+    rx229_cur."!cursor_debug"("START", "metachar:sym<( )>")
+  debug_281:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan231_done
-    goto rxscan231_scan
-  rxscan231_loop:
-    ($P10) = rx228_cur."from"()
-    inc $P10
-    set rx228_pos, $P10
-    ge rx228_pos, rx228_eos, rxscan231_done
-  rxscan231_scan:
-    set_addr $I10, rxscan231_loop
-    rx228_cur."!mark_push"(0, rx228_pos, $I10)
-  rxscan231_done:
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_232_fail
-    rx228_cur."!mark_push"(0, rx228_pos, $I10)
-  # rx literal  "^"
-    add $I11, rx228_pos, 1
-    gt $I11, rx228_eos, rx228_fail
-    sub $I11, rx228_pos, rx228_off
-    ord $I11, rx228_tgt, $I11
-    ne $I11, 94, rx228_fail
-    add rx228_pos, 1
-    set_addr $I10, rxcap_232_fail
-    ($I12, $I11) = rx228_cur."!mark_peek"($I10)
-    rx228_cur."!cursor_pos"($I11)
-    ($P10) = rx228_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx228_pos, "")
-    rx228_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_232_done
-  rxcap_232_fail:
-    goto rx228_fail
-  rxcap_232_done:
-  # rx pass
-    rx228_cur."!cursor_pass"(rx228_pos, "metachar:sym<^>")
-    if_null rx228_debug, debug_276
-    rx228_cur."!cursor_debug"("PASS", "metachar:sym<^>", " at pos=", rx228_pos)
-  debug_276:
-    .return (rx228_cur)
-  rx228_restart:
-    if_null rx228_debug, debug_277
-    rx228_cur."!cursor_debug"("NEXT", "metachar:sym<^>")
-  debug_277:
-  rx228_fail:
-    (rx228_rep, rx228_pos, $I10, $P10) = rx228_cur."!mark_fail"(0)
-    lt rx228_pos, -1, rx228_done
-    eq rx228_pos, -1, rx228_fail
-    jump $I10
-  rx228_done:
-    rx228_cur."!cursor_fail"()
-    if_null rx228_debug, debug_278
-    rx228_cur."!cursor_debug"("FAIL", "metachar:sym<^>")
-  debug_278:
-    .return (rx228_cur)
+    ne $I10, -1, rxscan233_done
+    goto rxscan233_scan
+  rxscan233_loop:
+    ($P10) = rx229_cur."from"()
+    inc $P10
+    set rx229_pos, $P10
+    ge rx229_pos, rx229_eos, rxscan233_done
+  rxscan233_scan:
+    set_addr $I10, rxscan233_loop
+    rx229_cur."!mark_push"(0, rx229_pos, $I10)
+  rxscan233_done:
+.annotate 'line', 88
+  # rx literal  "("
+    add $I11, rx229_pos, 1
+    gt $I11, rx229_eos, rx229_fail
+    sub $I11, rx229_pos, rx229_off
+    ord $I11, rx229_tgt, $I11
+    ne $I11, 40, rx229_fail
+    add rx229_pos, 1
+  # rx subrule "nibbler" subtype=capture negate=
+    rx229_cur."!cursor_pos"(rx229_pos)
+    $P10 = rx229_cur."nibbler"()
+    unless $P10, rx229_fail
+    rx229_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("nibbler")
+    rx229_pos = $P10."pos"()
+  # rx literal  ")"
+    add $I11, rx229_pos, 1
+    gt $I11, rx229_eos, rx229_fail
+    sub $I11, rx229_pos, rx229_off
+    ord $I11, rx229_tgt, $I11
+    ne $I11, 41, rx229_fail
+    add rx229_pos, 1
+  # rx pass
+    rx229_cur."!cursor_pass"(rx229_pos, "metachar:sym<( )>")
+    if_null rx229_debug, debug_282
+    rx229_cur."!cursor_debug"("PASS", "metachar:sym<( )>", " at pos=", rx229_pos)
+  debug_282:
+    .return (rx229_cur)
+  rx229_restart:
+.annotate 'line', 3
+    if_null rx229_debug, debug_283
+    rx229_cur."!cursor_debug"("NEXT", "metachar:sym<( )>")
+  debug_283:
+  rx229_fail:
+    (rx229_rep, rx229_pos, $I10, $P10) = rx229_cur."!mark_fail"(0)
+    lt rx229_pos, -1, rx229_done
+    eq rx229_pos, -1, rx229_fail
+    jump $I10
+  rx229_done:
+    rx229_cur."!cursor_fail"()
+    if_null rx229_debug, debug_284
+    rx229_cur."!cursor_debug"("FAIL", "metachar:sym<( )>")
+  debug_284:
+    .return (rx229_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^>"  :subid("66_1283975941.34404") :method
-.annotate 'line', 0
-    new $P230, "ResizablePMCArray"
-    push $P230, "^"
-    .return ($P230)
+.sub "!PREFIX__metachar:sym<( )>"  :subid("64_1284728471.30547") :method
+.annotate 'line', 3
+    $P231 = self."!PREFIX__!subrule"("nibbler", "(")
+    new $P232, "ResizablePMCArray"
+    push $P232, $P231
+    .return ($P232)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^^>"  :subid("67_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx234_tgt
-    .local int rx234_pos
-    .local int rx234_off
-    .local int rx234_eos
-    .local int rx234_rep
-    .local pmc rx234_cur
-    .local pmc rx234_debug
-    (rx234_cur, rx234_pos, rx234_tgt, $I10) = self."!cursor_start"()
-    getattribute rx234_debug, rx234_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx234_cur
-    .local pmc match
-    .lex "$/", match
-    length rx234_eos, rx234_tgt
-    gt rx234_pos, rx234_eos, rx234_done
-    set rx234_off, 0
-    lt rx234_pos, 2, rx234_start
-    sub rx234_off, rx234_pos, 1
-    substr rx234_tgt, rx234_tgt, rx234_off
-  rx234_start:
-    eq $I10, 1, rx234_restart
-    if_null rx234_debug, debug_279
-    rx234_cur."!cursor_debug"("START", "metachar:sym<^^>")
-  debug_279:
+.sub "metachar:sym<'>"  :subid("65_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx235_tgt
+    .local int rx235_pos
+    .local int rx235_off
+    .local int rx235_eos
+    .local int rx235_rep
+    .local pmc rx235_cur
+    .local pmc rx235_debug
+    (rx235_cur, rx235_pos, rx235_tgt, $I10) = self."!cursor_start"()
+    getattribute rx235_debug, rx235_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx235_cur
+    .local pmc match
+    .lex "$/", match
+    length rx235_eos, rx235_tgt
+    gt rx235_pos, rx235_eos, rx235_done
+    set rx235_off, 0
+    lt rx235_pos, 2, rx235_start
+    sub rx235_off, rx235_pos, 1
+    substr rx235_tgt, rx235_tgt, rx235_off
+  rx235_start:
+    eq $I10, 1, rx235_restart
+    if_null rx235_debug, debug_285
+    rx235_cur."!cursor_debug"("START", "metachar:sym<'>")
+  debug_285:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan237_done
-    goto rxscan237_scan
-  rxscan237_loop:
-    ($P10) = rx234_cur."from"()
-    inc $P10
-    set rx234_pos, $P10
-    ge rx234_pos, rx234_eos, rxscan237_done
-  rxscan237_scan:
-    set_addr $I10, rxscan237_loop
-    rx234_cur."!mark_push"(0, rx234_pos, $I10)
-  rxscan237_done:
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_238_fail
-    rx234_cur."!mark_push"(0, rx234_pos, $I10)
-  # rx literal  "^^"
-    add $I11, rx234_pos, 2
-    gt $I11, rx234_eos, rx234_fail
-    sub $I11, rx234_pos, rx234_off
-    substr $S10, rx234_tgt, $I11, 2
-    ne $S10, "^^", rx234_fail
-    add rx234_pos, 2
-    set_addr $I10, rxcap_238_fail
-    ($I12, $I11) = rx234_cur."!mark_peek"($I10)
-    rx234_cur."!cursor_pos"($I11)
-    ($P10) = rx234_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx234_pos, "")
-    rx234_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_238_done
-  rxcap_238_fail:
-    goto rx234_fail
-  rxcap_238_done:
-  # rx pass
-    rx234_cur."!cursor_pass"(rx234_pos, "metachar:sym<^^>")
-    if_null rx234_debug, debug_280
-    rx234_cur."!cursor_debug"("PASS", "metachar:sym<^^>", " at pos=", rx234_pos)
-  debug_280:
-    .return (rx234_cur)
-  rx234_restart:
-    if_null rx234_debug, debug_281
-    rx234_cur."!cursor_debug"("NEXT", "metachar:sym<^^>")
-  debug_281:
-  rx234_fail:
-    (rx234_rep, rx234_pos, $I10, $P10) = rx234_cur."!mark_fail"(0)
-    lt rx234_pos, -1, rx234_done
-    eq rx234_pos, -1, rx234_fail
-    jump $I10
-  rx234_done:
-    rx234_cur."!cursor_fail"()
-    if_null rx234_debug, debug_282
-    rx234_cur."!cursor_debug"("FAIL", "metachar:sym<^^>")
-  debug_282:
-    .return (rx234_cur)
+    ne $I10, -1, rxscan238_done
+    goto rxscan238_scan
+  rxscan238_loop:
+    ($P10) = rx235_cur."from"()
+    inc $P10
+    set rx235_pos, $P10
+    ge rx235_pos, rx235_eos, rxscan238_done
+  rxscan238_scan:
+    set_addr $I10, rxscan238_loop
+    rx235_cur."!mark_push"(0, rx235_pos, $I10)
+  rxscan238_done:
+.annotate 'line', 89
+  # rx enumcharlist negate=0 zerowidth
+    sub $I10, rx235_pos, rx235_off
+    substr $S10, rx235_tgt, $I10, 1
+    index $I11, "'", $S10
+    lt $I11, 0, rx235_fail
+  # rx subrule "quote_EXPR" subtype=capture negate=
+    rx235_cur."!cursor_pos"(rx235_pos)
+    $P10 = rx235_cur."quote_EXPR"(":q")
+    unless $P10, rx235_fail
+    rx235_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("quote_EXPR")
+    rx235_pos = $P10."pos"()
+  # rx pass
+    rx235_cur."!cursor_pass"(rx235_pos, "metachar:sym<'>")
+    if_null rx235_debug, debug_286
+    rx235_cur."!cursor_debug"("PASS", "metachar:sym<'>", " at pos=", rx235_pos)
+  debug_286:
+    .return (rx235_cur)
+  rx235_restart:
+.annotate 'line', 3
+    if_null rx235_debug, debug_287
+    rx235_cur."!cursor_debug"("NEXT", "metachar:sym<'>")
+  debug_287:
+  rx235_fail:
+    (rx235_rep, rx235_pos, $I10, $P10) = rx235_cur."!mark_fail"(0)
+    lt rx235_pos, -1, rx235_done
+    eq rx235_pos, -1, rx235_fail
+    jump $I10
+  rx235_done:
+    rx235_cur."!cursor_fail"()
+    if_null rx235_debug, debug_288
+    rx235_cur."!cursor_debug"("FAIL", "metachar:sym<'>")
+  debug_288:
+    .return (rx235_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^^>"  :subid("68_1283975941.34404") :method
-.annotate 'line', 0
-    new $P236, "ResizablePMCArray"
-    push $P236, "^^"
-    .return ($P236)
+.sub "!PREFIX__metachar:sym<'>"  :subid("66_1284728471.30547") :method
+.annotate 'line', 3
+    new $P237, "ResizablePMCArray"
+    push $P237, "'"
+    .return ($P237)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$>"  :subid("69_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
+.sub "metachar:sym<\">"  :subid("67_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
     .local string rx240_tgt
     .local int rx240_pos
     .local int rx240_off
@@ -3250,9 +3324,9 @@
     substr rx240_tgt, rx240_tgt, rx240_off
   rx240_start:
     eq $I10, 1, rx240_restart
-    if_null rx240_debug, debug_283
-    rx240_cur."!cursor_debug"("START", "metachar:sym<$>")
-  debug_283:
+    if_null rx240_debug, debug_289
+    rx240_cur."!cursor_debug"("START", "metachar:sym<\">")
+  debug_289:
     $I10 = self.'from'()
     ne $I10, -1, rxscan243_done
     goto rxscan243_scan
@@ -3265,37 +3339,30 @@
     set_addr $I10, rxscan243_loop
     rx240_cur."!mark_push"(0, rx240_pos, $I10)
   rxscan243_done:
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_244_fail
-    rx240_cur."!mark_push"(0, rx240_pos, $I10)
-  # rx literal  "$"
-    add $I11, rx240_pos, 1
-    gt $I11, rx240_eos, rx240_fail
-    sub $I11, rx240_pos, rx240_off
-    ord $I11, rx240_tgt, $I11
-    ne $I11, 36, rx240_fail
-    add rx240_pos, 1
-    set_addr $I10, rxcap_244_fail
-    ($I12, $I11) = rx240_cur."!mark_peek"($I10)
-    rx240_cur."!cursor_pos"($I11)
-    ($P10) = rx240_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx240_pos, "")
+.annotate 'line', 90
+  # rx enumcharlist negate=0 zerowidth
+    sub $I10, rx240_pos, rx240_off
+    substr $S10, rx240_tgt, $I10, 1
+    index $I11, "\"", $S10
+    lt $I11, 0, rx240_fail
+  # rx subrule "quote_EXPR" subtype=capture negate=
+    rx240_cur."!cursor_pos"(rx240_pos)
+    $P10 = rx240_cur."quote_EXPR"(":qq")
+    unless $P10, rx240_fail
     rx240_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_244_done
-  rxcap_244_fail:
-    goto rx240_fail
-  rxcap_244_done:
-  # rx pass
-    rx240_cur."!cursor_pass"(rx240_pos, "metachar:sym<$>")
-    if_null rx240_debug, debug_284
-    rx240_cur."!cursor_debug"("PASS", "metachar:sym<$>", " at pos=", rx240_pos)
-  debug_284:
+    $P10."!cursor_names"("quote_EXPR")
+    rx240_pos = $P10."pos"()
+  # rx pass
+    rx240_cur."!cursor_pass"(rx240_pos, "metachar:sym<\">")
+    if_null rx240_debug, debug_290
+    rx240_cur."!cursor_debug"("PASS", "metachar:sym<\">", " at pos=", rx240_pos)
+  debug_290:
     .return (rx240_cur)
   rx240_restart:
-    if_null rx240_debug, debug_285
-    rx240_cur."!cursor_debug"("NEXT", "metachar:sym<$>")
-  debug_285:
+.annotate 'line', 3
+    if_null rx240_debug, debug_291
+    rx240_cur."!cursor_debug"("NEXT", "metachar:sym<\">")
+  debug_291:
   rx240_fail:
     (rx240_rep, rx240_pos, $I10, $P10) = rx240_cur."!mark_fail"(0)
     lt rx240_pos, -1, rx240_done
@@ -3303,5264 +3370,5767 @@
     jump $I10
   rx240_done:
     rx240_cur."!cursor_fail"()
-    if_null rx240_debug, debug_286
-    rx240_cur."!cursor_debug"("FAIL", "metachar:sym<$>")
-  debug_286:
+    if_null rx240_debug, debug_292
+    rx240_cur."!cursor_debug"("FAIL", "metachar:sym<\">")
+  debug_292:
     .return (rx240_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$>"  :subid("70_1283975941.34404") :method
-.annotate 'line', 0
+.sub "!PREFIX__metachar:sym<\">"  :subid("68_1284728471.30547") :method
+.annotate 'line', 3
     new $P242, "ResizablePMCArray"
-    push $P242, "$"
+    push $P242, "\""
     .return ($P242)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$$>"  :subid("71_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx246_tgt
-    .local int rx246_pos
-    .local int rx246_off
-    .local int rx246_eos
-    .local int rx246_rep
-    .local pmc rx246_cur
-    .local pmc rx246_debug
-    (rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"()
-    getattribute rx246_debug, rx246_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx246_cur
-    .local pmc match
-    .lex "$/", match
-    length rx246_eos, rx246_tgt
-    gt rx246_pos, rx246_eos, rx246_done
-    set rx246_off, 0
-    lt rx246_pos, 2, rx246_start
-    sub rx246_off, rx246_pos, 1
-    substr rx246_tgt, rx246_tgt, rx246_off
-  rx246_start:
-    eq $I10, 1, rx246_restart
-    if_null rx246_debug, debug_287
-    rx246_cur."!cursor_debug"("START", "metachar:sym<$$>")
-  debug_287:
+.sub "metachar:sym<.>"  :subid("69_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx245_tgt
+    .local int rx245_pos
+    .local int rx245_off
+    .local int rx245_eos
+    .local int rx245_rep
+    .local pmc rx245_cur
+    .local pmc rx245_debug
+    (rx245_cur, rx245_pos, rx245_tgt, $I10) = self."!cursor_start"()
+    getattribute rx245_debug, rx245_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx245_cur
+    .local pmc match
+    .lex "$/", match
+    length rx245_eos, rx245_tgt
+    gt rx245_pos, rx245_eos, rx245_done
+    set rx245_off, 0
+    lt rx245_pos, 2, rx245_start
+    sub rx245_off, rx245_pos, 1
+    substr rx245_tgt, rx245_tgt, rx245_off
+  rx245_start:
+    eq $I10, 1, rx245_restart
+    if_null rx245_debug, debug_293
+    rx245_cur."!cursor_debug"("START", "metachar:sym<.>")
+  debug_293:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan248_done
+    goto rxscan248_scan
+  rxscan248_loop:
+    ($P10) = rx245_cur."from"()
+    inc $P10
+    set rx245_pos, $P10
+    ge rx245_pos, rx245_eos, rxscan248_done
+  rxscan248_scan:
+    set_addr $I10, rxscan248_loop
+    rx245_cur."!mark_push"(0, rx245_pos, $I10)
+  rxscan248_done:
+.annotate 'line', 91
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_249_fail
+    rx245_cur."!mark_push"(0, rx245_pos, $I10)
+  # rx literal  "."
+    add $I11, rx245_pos, 1
+    gt $I11, rx245_eos, rx245_fail
+    sub $I11, rx245_pos, rx245_off
+    ord $I11, rx245_tgt, $I11
+    ne $I11, 46, rx245_fail
+    add rx245_pos, 1
+    set_addr $I10, rxcap_249_fail
+    ($I12, $I11) = rx245_cur."!mark_peek"($I10)
+    rx245_cur."!cursor_pos"($I11)
+    ($P10) = rx245_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx245_pos, "")
+    rx245_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_249_done
+  rxcap_249_fail:
+    goto rx245_fail
+  rxcap_249_done:
+  # rx pass
+    rx245_cur."!cursor_pass"(rx245_pos, "metachar:sym<.>")
+    if_null rx245_debug, debug_294
+    rx245_cur."!cursor_debug"("PASS", "metachar:sym<.>", " at pos=", rx245_pos)
+  debug_294:
+    .return (rx245_cur)
+  rx245_restart:
+.annotate 'line', 3
+    if_null rx245_debug, debug_295
+    rx245_cur."!cursor_debug"("NEXT", "metachar:sym<.>")
+  debug_295:
+  rx245_fail:
+    (rx245_rep, rx245_pos, $I10, $P10) = rx245_cur."!mark_fail"(0)
+    lt rx245_pos, -1, rx245_done
+    eq rx245_pos, -1, rx245_fail
+    jump $I10
+  rx245_done:
+    rx245_cur."!cursor_fail"()
+    if_null rx245_debug, debug_296
+    rx245_cur."!cursor_debug"("FAIL", "metachar:sym<.>")
+  debug_296:
+    .return (rx245_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__metachar:sym<.>"  :subid("70_1284728471.30547") :method
+.annotate 'line', 3
+    new $P247, "ResizablePMCArray"
+    push $P247, "."
+    .return ($P247)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<^>"  :subid("71_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx251_tgt
+    .local int rx251_pos
+    .local int rx251_off
+    .local int rx251_eos
+    .local int rx251_rep
+    .local pmc rx251_cur
+    .local pmc rx251_debug
+    (rx251_cur, rx251_pos, rx251_tgt, $I10) = self."!cursor_start"()
+    getattribute rx251_debug, rx251_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx251_cur
+    .local pmc match
+    .lex "$/", match
+    length rx251_eos, rx251_tgt
+    gt rx251_pos, rx251_eos, rx251_done
+    set rx251_off, 0
+    lt rx251_pos, 2, rx251_start
+    sub rx251_off, rx251_pos, 1
+    substr rx251_tgt, rx251_tgt, rx251_off
+  rx251_start:
+    eq $I10, 1, rx251_restart
+    if_null rx251_debug, debug_297
+    rx251_cur."!cursor_debug"("START", "metachar:sym<^>")
+  debug_297:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan254_done
+    goto rxscan254_scan
+  rxscan254_loop:
+    ($P10) = rx251_cur."from"()
+    inc $P10
+    set rx251_pos, $P10
+    ge rx251_pos, rx251_eos, rxscan254_done
+  rxscan254_scan:
+    set_addr $I10, rxscan254_loop
+    rx251_cur."!mark_push"(0, rx251_pos, $I10)
+  rxscan254_done:
+.annotate 'line', 92
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_255_fail
+    rx251_cur."!mark_push"(0, rx251_pos, $I10)
+  # rx literal  "^"
+    add $I11, rx251_pos, 1
+    gt $I11, rx251_eos, rx251_fail
+    sub $I11, rx251_pos, rx251_off
+    ord $I11, rx251_tgt, $I11
+    ne $I11, 94, rx251_fail
+    add rx251_pos, 1
+    set_addr $I10, rxcap_255_fail
+    ($I12, $I11) = rx251_cur."!mark_peek"($I10)
+    rx251_cur."!cursor_pos"($I11)
+    ($P10) = rx251_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx251_pos, "")
+    rx251_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_255_done
+  rxcap_255_fail:
+    goto rx251_fail
+  rxcap_255_done:
+  # rx pass
+    rx251_cur."!cursor_pass"(rx251_pos, "metachar:sym<^>")
+    if_null rx251_debug, debug_298
+    rx251_cur."!cursor_debug"("PASS", "metachar:sym<^>", " at pos=", rx251_pos)
+  debug_298:
+    .return (rx251_cur)
+  rx251_restart:
+.annotate 'line', 3
+    if_null rx251_debug, debug_299
+    rx251_cur."!cursor_debug"("NEXT", "metachar:sym<^>")
+  debug_299:
+  rx251_fail:
+    (rx251_rep, rx251_pos, $I10, $P10) = rx251_cur."!mark_fail"(0)
+    lt rx251_pos, -1, rx251_done
+    eq rx251_pos, -1, rx251_fail
+    jump $I10
+  rx251_done:
+    rx251_cur."!cursor_fail"()
+    if_null rx251_debug, debug_300
+    rx251_cur."!cursor_debug"("FAIL", "metachar:sym<^>")
+  debug_300:
+    .return (rx251_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__metachar:sym<^>"  :subid("72_1284728471.30547") :method
+.annotate 'line', 3
+    new $P253, "ResizablePMCArray"
+    push $P253, "^"
+    .return ($P253)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<^^>"  :subid("73_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx257_tgt
+    .local int rx257_pos
+    .local int rx257_off
+    .local int rx257_eos
+    .local int rx257_rep
+    .local pmc rx257_cur
+    .local pmc rx257_debug
+    (rx257_cur, rx257_pos, rx257_tgt, $I10) = self."!cursor_start"()
+    getattribute rx257_debug, rx257_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx257_cur
+    .local pmc match
+    .lex "$/", match
+    length rx257_eos, rx257_tgt
+    gt rx257_pos, rx257_eos, rx257_done
+    set rx257_off, 0
+    lt rx257_pos, 2, rx257_start
+    sub rx257_off, rx257_pos, 1
+    substr rx257_tgt, rx257_tgt, rx257_off
+  rx257_start:
+    eq $I10, 1, rx257_restart
+    if_null rx257_debug, debug_301
+    rx257_cur."!cursor_debug"("START", "metachar:sym<^^>")
+  debug_301:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan260_done
+    goto rxscan260_scan
+  rxscan260_loop:
+    ($P10) = rx257_cur."from"()
+    inc $P10
+    set rx257_pos, $P10
+    ge rx257_pos, rx257_eos, rxscan260_done
+  rxscan260_scan:
+    set_addr $I10, rxscan260_loop
+    rx257_cur."!mark_push"(0, rx257_pos, $I10)
+  rxscan260_done:
+.annotate 'line', 93
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_261_fail
+    rx257_cur."!mark_push"(0, rx257_pos, $I10)
+  # rx literal  "^^"
+    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
+    add rx257_pos, 2
+    set_addr $I10, rxcap_261_fail
+    ($I12, $I11) = rx257_cur."!mark_peek"($I10)
+    rx257_cur."!cursor_pos"($I11)
+    ($P10) = rx257_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx257_pos, "")
+    rx257_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_261_done
+  rxcap_261_fail:
+    goto rx257_fail
+  rxcap_261_done:
+  # rx pass
+    rx257_cur."!cursor_pass"(rx257_pos, "metachar:sym<^^>")
+    if_null rx257_debug, debug_302
+    rx257_cur."!cursor_debug"("PASS", "metachar:sym<^^>", " at pos=", rx257_pos)
+  debug_302:
+    .return (rx257_cur)
+  rx257_restart:
+.annotate 'line', 3
+    if_null rx257_debug, debug_303
+    rx257_cur."!cursor_debug"("NEXT", "metachar:sym<^^>")
+  debug_303:
+  rx257_fail:
+    (rx257_rep, rx257_pos, $I10, $P10) = rx257_cur."!mark_fail"(0)
+    lt rx257_pos, -1, rx257_done
+    eq rx257_pos, -1, rx257_fail
+    jump $I10
+  rx257_done:
+    rx257_cur."!cursor_fail"()
+    if_null rx257_debug, debug_304
+    rx257_cur."!cursor_debug"("FAIL", "metachar:sym<^^>")
+  debug_304:
+    .return (rx257_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__metachar:sym<^^>"  :subid("74_1284728471.30547") :method
+.annotate 'line', 3
+    new $P259, "ResizablePMCArray"
+    push $P259, "^^"
+    .return ($P259)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<$>"  :subid("75_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx263_tgt
+    .local int rx263_pos
+    .local int rx263_off
+    .local int rx263_eos
+    .local int rx263_rep
+    .local pmc rx263_cur
+    .local pmc rx263_debug
+    (rx263_cur, rx263_pos, rx263_tgt, $I10) = self."!cursor_start"()
+    getattribute rx263_debug, rx263_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx263_cur
+    .local pmc match
+    .lex "$/", match
+    length rx263_eos, rx263_tgt
+    gt rx263_pos, rx263_eos, rx263_done
+    set rx263_off, 0
+    lt rx263_pos, 2, rx263_start
+    sub rx263_off, rx263_pos, 1
+    substr rx263_tgt, rx263_tgt, rx263_off
+  rx263_start:
+    eq $I10, 1, rx263_restart
+    if_null rx263_debug, debug_305
+    rx263_cur."!cursor_debug"("START", "metachar:sym<$>")
+  debug_305:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan266_done
+    goto rxscan266_scan
+  rxscan266_loop:
+    ($P10) = rx263_cur."from"()
+    inc $P10
+    set rx263_pos, $P10
+    ge rx263_pos, rx263_eos, rxscan266_done
+  rxscan266_scan:
+    set_addr $I10, rxscan266_loop
+    rx263_cur."!mark_push"(0, rx263_pos, $I10)
+  rxscan266_done:
+.annotate 'line', 94
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_267_fail
+    rx263_cur."!mark_push"(0, rx263_pos, $I10)
+  # rx literal  "$"
+    add $I11, rx263_pos, 1
+    gt $I11, rx263_eos, rx263_fail
+    sub $I11, rx263_pos, rx263_off
+    ord $I11, rx263_tgt, $I11
+    ne $I11, 36, rx263_fail
+    add rx263_pos, 1
+    set_addr $I10, rxcap_267_fail
+    ($I12, $I11) = rx263_cur."!mark_peek"($I10)
+    rx263_cur."!cursor_pos"($I11)
+    ($P10) = rx263_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx263_pos, "")
+    rx263_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_267_done
+  rxcap_267_fail:
+    goto rx263_fail
+  rxcap_267_done:
+  # rx pass
+    rx263_cur."!cursor_pass"(rx263_pos, "metachar:sym<$>")
+    if_null rx263_debug, debug_306
+    rx263_cur."!cursor_debug"("PASS", "metachar:sym<$>", " at pos=", rx263_pos)
+  debug_306:
+    .return (rx263_cur)
+  rx263_restart:
+.annotate 'line', 3
+    if_null rx263_debug, debug_307
+    rx263_cur."!cursor_debug"("NEXT", "metachar:sym<$>")
+  debug_307:
+  rx263_fail:
+    (rx263_rep, rx263_pos, $I10, $P10) = rx263_cur."!mark_fail"(0)
+    lt rx263_pos, -1, rx263_done
+    eq rx263_pos, -1, rx263_fail
+    jump $I10
+  rx263_done:
+    rx263_cur."!cursor_fail"()
+    if_null rx263_debug, debug_308
+    rx263_cur."!cursor_debug"("FAIL", "metachar:sym<$>")
+  debug_308:
+    .return (rx263_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__metachar:sym<$>"  :subid("76_1284728471.30547") :method
+.annotate 'line', 3
+    new $P265, "ResizablePMCArray"
+    push $P265, "$"
+    .return ($P265)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<$$>"  :subid("77_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx269_tgt
+    .local int rx269_pos
+    .local int rx269_off
+    .local int rx269_eos
+    .local int rx269_rep
+    .local pmc rx269_cur
+    .local pmc rx269_debug
+    (rx269_cur, rx269_pos, rx269_tgt, $I10) = self."!cursor_start"()
+    getattribute rx269_debug, rx269_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx269_cur
+    .local pmc match
+    .lex "$/", match
+    length rx269_eos, rx269_tgt
+    gt rx269_pos, rx269_eos, rx269_done
+    set rx269_off, 0
+    lt rx269_pos, 2, rx269_start
+    sub rx269_off, rx269_pos, 1
+    substr rx269_tgt, rx269_tgt, rx269_off
+  rx269_start:
+    eq $I10, 1, rx269_restart
+    if_null rx269_debug, debug_309
+    rx269_cur."!cursor_debug"("START", "metachar:sym<$$>")
+  debug_309:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan249_done
-    goto rxscan249_scan
-  rxscan249_loop:
-    ($P10) = rx246_cur."from"()
-    inc $P10
-    set rx246_pos, $P10
-    ge rx246_pos, rx246_eos, rxscan249_done
-  rxscan249_scan:
-    set_addr $I10, rxscan249_loop
-    rx246_cur."!mark_push"(0, rx246_pos, $I10)
-  rxscan249_done:
+    ne $I10, -1, rxscan272_done
+    goto rxscan272_scan
+  rxscan272_loop:
+    ($P10) = rx269_cur."from"()
+    inc $P10
+    set rx269_pos, $P10
+    ge rx269_pos, rx269_eos, rxscan272_done
+  rxscan272_scan:
+    set_addr $I10, rxscan272_loop
+    rx269_cur."!mark_push"(0, rx269_pos, $I10)
+  rxscan272_done:
+.annotate 'line', 95
   # rx subcapture "sym"
-    set_addr $I10, rxcap_250_fail
-    rx246_cur."!mark_push"(0, rx246_pos, $I10)
+    set_addr $I10, rxcap_273_fail
+    rx269_cur."!mark_push"(0, rx269_pos, $I10)
   # rx literal  "$$"
-    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, "$$", rx246_fail
-    add rx246_pos, 2
-    set_addr $I10, rxcap_250_fail
-    ($I12, $I11) = rx246_cur."!mark_peek"($I10)
-    rx246_cur."!cursor_pos"($I11)
-    ($P10) = rx246_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx246_pos, "")
-    rx246_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx269_pos, 2
+    gt $I11, rx269_eos, rx269_fail
+    sub $I11, rx269_pos, rx269_off
+    substr $S10, rx269_tgt, $I11, 2
+    ne $S10, "$$", rx269_fail
+    add rx269_pos, 2
+    set_addr $I10, rxcap_273_fail
+    ($I12, $I11) = rx269_cur."!mark_peek"($I10)
+    rx269_cur."!cursor_pos"($I11)
+    ($P10) = rx269_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx269_pos, "")
+    rx269_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_250_done
-  rxcap_250_fail:
-    goto rx246_fail
-  rxcap_250_done:
-  # rx pass
-    rx246_cur."!cursor_pass"(rx246_pos, "metachar:sym<$$>")
-    if_null rx246_debug, debug_288
-    rx246_cur."!cursor_debug"("PASS", "metachar:sym<$$>", " at pos=", rx246_pos)
-  debug_288:
-    .return (rx246_cur)
-  rx246_restart:
-    if_null rx246_debug, debug_289
-    rx246_cur."!cursor_debug"("NEXT", "metachar:sym<$$>")
-  debug_289:
-  rx246_fail:
-    (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
-    lt rx246_pos, -1, rx246_done
-    eq rx246_pos, -1, rx246_fail
-    jump $I10
-  rx246_done:
-    rx246_cur."!cursor_fail"()
-    if_null rx246_debug, debug_290
-    rx246_cur."!cursor_debug"("FAIL", "metachar:sym<$$>")
-  debug_290:
-    .return (rx246_cur)
+    goto rxcap_273_done
+  rxcap_273_fail:
+    goto rx269_fail
+  rxcap_273_done:
+  # rx pass
+    rx269_cur."!cursor_pass"(rx269_pos, "metachar:sym<$$>")
+    if_null rx269_debug, debug_310
+    rx269_cur."!cursor_debug"("PASS", "metachar:sym<$$>", " at pos=", rx269_pos)
+  debug_310:
+    .return (rx269_cur)
+  rx269_restart:
+.annotate 'line', 3
+    if_null rx269_debug, debug_311
+    rx269_cur."!cursor_debug"("NEXT", "metachar:sym<$$>")
+  debug_311:
+  rx269_fail:
+    (rx269_rep, rx269_pos, $I10, $P10) = rx269_cur."!mark_fail"(0)
+    lt rx269_pos, -1, rx269_done
+    eq rx269_pos, -1, rx269_fail
+    jump $I10
+  rx269_done:
+    rx269_cur."!cursor_fail"()
+    if_null rx269_debug, debug_312
+    rx269_cur."!cursor_debug"("FAIL", "metachar:sym<$$>")
+  debug_312:
+    .return (rx269_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$$>"  :subid("72_1283975941.34404") :method
-.annotate 'line', 0
-    new $P248, "ResizablePMCArray"
-    push $P248, "$$"
-    .return ($P248)
+.sub "!PREFIX__metachar:sym<$$>"  :subid("78_1284728471.30547") :method
+.annotate 'line', 3
+    new $P271, "ResizablePMCArray"
+    push $P271, "$$"
+    .return ($P271)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<:::>"  :subid("73_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx252_tgt
-    .local int rx252_pos
-    .local int rx252_off
-    .local int rx252_eos
-    .local int rx252_rep
-    .local pmc rx252_cur
-    .local pmc rx252_debug
-    (rx252_cur, rx252_pos, rx252_tgt, $I10) = self."!cursor_start"()
-    getattribute rx252_debug, rx252_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx252_cur
-    .local pmc match
-    .lex "$/", match
-    length rx252_eos, rx252_tgt
-    gt rx252_pos, rx252_eos, rx252_done
-    set rx252_off, 0
-    lt rx252_pos, 2, rx252_start
-    sub rx252_off, rx252_pos, 1
-    substr rx252_tgt, rx252_tgt, rx252_off
-  rx252_start:
-    eq $I10, 1, rx252_restart
-    if_null rx252_debug, debug_291
-    rx252_cur."!cursor_debug"("START", "metachar:sym<:::>")
-  debug_291:
+.sub "metachar:sym<:::>"  :subid("79_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx275_tgt
+    .local int rx275_pos
+    .local int rx275_off
+    .local int rx275_eos
+    .local int rx275_rep
+    .local pmc rx275_cur
+    .local pmc rx275_debug
+    (rx275_cur, rx275_pos, rx275_tgt, $I10) = self."!cursor_start"()
+    getattribute rx275_debug, rx275_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx275_cur
+    .local pmc match
+    .lex "$/", match
+    length rx275_eos, rx275_tgt
+    gt rx275_pos, rx275_eos, rx275_done
+    set rx275_off, 0
+    lt rx275_pos, 2, rx275_start
+    sub rx275_off, rx275_pos, 1
+    substr rx275_tgt, rx275_tgt, rx275_off
+  rx275_start:
+    eq $I10, 1, rx275_restart
+    if_null rx275_debug, debug_313
+    rx275_cur."!cursor_debug"("START", "metachar:sym<:::>")
+  debug_313:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan256_done
-    goto rxscan256_scan
-  rxscan256_loop:
-    ($P10) = rx252_cur."from"()
-    inc $P10
-    set rx252_pos, $P10
-    ge rx252_pos, rx252_eos, rxscan256_done
-  rxscan256_scan:
-    set_addr $I10, rxscan256_loop
-    rx252_cur."!mark_push"(0, rx252_pos, $I10)
-  rxscan256_done:
+    ne $I10, -1, rxscan279_done
+    goto rxscan279_scan
+  rxscan279_loop:
+    ($P10) = rx275_cur."from"()
+    inc $P10
+    set rx275_pos, $P10
+    ge rx275_pos, rx275_eos, rxscan279_done
+  rxscan279_scan:
+    set_addr $I10, rxscan279_loop
+    rx275_cur."!mark_push"(0, rx275_pos, $I10)
+  rxscan279_done:
+.annotate 'line', 96
   # rx subcapture "sym"
-    set_addr $I10, rxcap_257_fail
-    rx252_cur."!mark_push"(0, rx252_pos, $I10)
+    set_addr $I10, rxcap_280_fail
+    rx275_cur."!mark_push"(0, rx275_pos, $I10)
   # rx literal  ":::"
-    add $I11, rx252_pos, 3
-    gt $I11, rx252_eos, rx252_fail
-    sub $I11, rx252_pos, rx252_off
-    substr $S10, rx252_tgt, $I11, 3
-    ne $S10, ":::", rx252_fail
-    add rx252_pos, 3
-    set_addr $I10, rxcap_257_fail
-    ($I12, $I11) = rx252_cur."!mark_peek"($I10)
-    rx252_cur."!cursor_pos"($I11)
-    ($P10) = rx252_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx252_pos, "")
-    rx252_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx275_pos, 3
+    gt $I11, rx275_eos, rx275_fail
+    sub $I11, rx275_pos, rx275_off
+    substr $S10, rx275_tgt, $I11, 3
+    ne $S10, ":::", rx275_fail
+    add rx275_pos, 3
+    set_addr $I10, rxcap_280_fail
+    ($I12, $I11) = rx275_cur."!mark_peek"($I10)
+    rx275_cur."!cursor_pos"($I11)
+    ($P10) = rx275_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx275_pos, "")
+    rx275_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_257_done
-  rxcap_257_fail:
-    goto rx252_fail
-  rxcap_257_done:
+    goto rxcap_280_done
+  rxcap_280_fail:
+    goto rx275_fail
+  rxcap_280_done:
   # rx subrule "panic" subtype=method negate=
-    rx252_cur."!cursor_pos"(rx252_pos)
-    $P10 = rx252_cur."panic"("::: not yet implemented")
-    unless $P10, rx252_fail
-    rx252_pos = $P10."pos"()
-  # rx pass
-    rx252_cur."!cursor_pass"(rx252_pos, "metachar:sym<:::>")
-    if_null rx252_debug, debug_292
-    rx252_cur."!cursor_debug"("PASS", "metachar:sym<:::>", " at pos=", rx252_pos)
-  debug_292:
-    .return (rx252_cur)
-  rx252_restart:
-    if_null rx252_debug, debug_293
-    rx252_cur."!cursor_debug"("NEXT", "metachar:sym<:::>")
-  debug_293:
-  rx252_fail:
-    (rx252_rep, rx252_pos, $I10, $P10) = rx252_cur."!mark_fail"(0)
-    lt rx252_pos, -1, rx252_done
-    eq rx252_pos, -1, rx252_fail
-    jump $I10
-  rx252_done:
-    rx252_cur."!cursor_fail"()
-    if_null rx252_debug, debug_294
-    rx252_cur."!cursor_debug"("FAIL", "metachar:sym<:::>")
-  debug_294:
-    .return (rx252_cur)
+    rx275_cur."!cursor_pos"(rx275_pos)
+    $P10 = rx275_cur."panic"("::: not yet implemented")
+    unless $P10, rx275_fail
+    rx275_pos = $P10."pos"()
+  # rx pass
+    rx275_cur."!cursor_pass"(rx275_pos, "metachar:sym<:::>")
+    if_null rx275_debug, debug_314
+    rx275_cur."!cursor_debug"("PASS", "metachar:sym<:::>", " at pos=", rx275_pos)
+  debug_314:
+    .return (rx275_cur)
+  rx275_restart:
+.annotate 'line', 3
+    if_null rx275_debug, debug_315
+    rx275_cur."!cursor_debug"("NEXT", "metachar:sym<:::>")
+  debug_315:
+  rx275_fail:
+    (rx275_rep, rx275_pos, $I10, $P10) = rx275_cur."!mark_fail"(0)
+    lt rx275_pos, -1, rx275_done
+    eq rx275_pos, -1, rx275_fail
+    jump $I10
+  rx275_done:
+    rx275_cur."!cursor_fail"()
+    if_null rx275_debug, debug_316
+    rx275_cur."!cursor_debug"("FAIL", "metachar:sym<:::>")
+  debug_316:
+    .return (rx275_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<:::>"  :subid("74_1283975941.34404") :method
-.annotate 'line', 0
-    $P254 = self."!PREFIX__!subrule"("panic", ":::")
-    new $P255, "ResizablePMCArray"
-    push $P255, $P254
-    .return ($P255)
+.sub "!PREFIX__metachar:sym<:::>"  :subid("80_1284728471.30547") :method
+.annotate 'line', 3
+    $P277 = self."!PREFIX__!subrule"("panic", ":::")
+    new $P278, "ResizablePMCArray"
+    push $P278, $P277
+    .return ($P278)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<::>"  :subid("75_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx259_tgt
-    .local int rx259_pos
-    .local int rx259_off
-    .local int rx259_eos
-    .local int rx259_rep
-    .local pmc rx259_cur
-    .local pmc rx259_debug
-    (rx259_cur, rx259_pos, rx259_tgt, $I10) = self."!cursor_start"()
-    getattribute rx259_debug, rx259_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx259_cur
-    .local pmc match
-    .lex "$/", match
-    length rx259_eos, rx259_tgt
-    gt rx259_pos, rx259_eos, rx259_done
-    set rx259_off, 0
-    lt rx259_pos, 2, rx259_start
-    sub rx259_off, rx259_pos, 1
-    substr rx259_tgt, rx259_tgt, rx259_off
-  rx259_start:
-    eq $I10, 1, rx259_restart
-    if_null rx259_debug, debug_295
-    rx259_cur."!cursor_debug"("START", "metachar:sym<::>")
-  debug_295:
+.sub "metachar:sym<::>"  :subid("81_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx282_tgt
+    .local int rx282_pos
+    .local int rx282_off
+    .local int rx282_eos
+    .local int rx282_rep
+    .local pmc rx282_cur
+    .local pmc rx282_debug
+    (rx282_cur, rx282_pos, rx282_tgt, $I10) = self."!cursor_start"()
+    getattribute rx282_debug, rx282_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx282_cur
+    .local pmc match
+    .lex "$/", match
+    length rx282_eos, rx282_tgt
+    gt rx282_pos, rx282_eos, rx282_done
+    set rx282_off, 0
+    lt rx282_pos, 2, rx282_start
+    sub rx282_off, rx282_pos, 1
+    substr rx282_tgt, rx282_tgt, rx282_off
+  rx282_start:
+    eq $I10, 1, rx282_restart
+    if_null rx282_debug, debug_317
+    rx282_cur."!cursor_debug"("START", "metachar:sym<::>")
+  debug_317:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan263_done
-    goto rxscan263_scan
-  rxscan263_loop:
-    ($P10) = rx259_cur."from"()
-    inc $P10
-    set rx259_pos, $P10
-    ge rx259_pos, rx259_eos, rxscan263_done
-  rxscan263_scan:
-    set_addr $I10, rxscan263_loop
-    rx259_cur."!mark_push"(0, rx259_pos, $I10)
-  rxscan263_done:
+    ne $I10, -1, rxscan286_done
+    goto rxscan286_scan
+  rxscan286_loop:
+    ($P10) = rx282_cur."from"()
+    inc $P10
+    set rx282_pos, $P10
+    ge rx282_pos, rx282_eos, rxscan286_done
+  rxscan286_scan:
+    set_addr $I10, rxscan286_loop
+    rx282_cur."!mark_push"(0, rx282_pos, $I10)
+  rxscan286_done:
+.annotate 'line', 97
   # rx subcapture "sym"
-    set_addr $I10, rxcap_264_fail
-    rx259_cur."!mark_push"(0, rx259_pos, $I10)
+    set_addr $I10, rxcap_287_fail
+    rx282_cur."!mark_push"(0, rx282_pos, $I10)
   # rx literal  "::"
-    add $I11, rx259_pos, 2
-    gt $I11, rx259_eos, rx259_fail
-    sub $I11, rx259_pos, rx259_off
-    substr $S10, rx259_tgt, $I11, 2
-    ne $S10, "::", rx259_fail
-    add rx259_pos, 2
-    set_addr $I10, rxcap_264_fail
-    ($I12, $I11) = rx259_cur."!mark_peek"($I10)
-    rx259_cur."!cursor_pos"($I11)
-    ($P10) = rx259_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx259_pos, "")
-    rx259_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx282_pos, 2
+    gt $I11, rx282_eos, rx282_fail
+    sub $I11, rx282_pos, rx282_off
+    substr $S10, rx282_tgt, $I11, 2
+    ne $S10, "::", rx282_fail
+    add rx282_pos, 2
+    set_addr $I10, rxcap_287_fail
+    ($I12, $I11) = rx282_cur."!mark_peek"($I10)
+    rx282_cur."!cursor_pos"($I11)
+    ($P10) = rx282_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx282_pos, "")
+    rx282_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_264_done
-  rxcap_264_fail:
-    goto rx259_fail
-  rxcap_264_done:
+    goto rxcap_287_done
+  rxcap_287_fail:
+    goto rx282_fail
+  rxcap_287_done:
   # rx subrule "panic" subtype=method negate=
-    rx259_cur."!cursor_pos"(rx259_pos)
-    $P10 = rx259_cur."panic"(":: not yet implemented")
-    unless $P10, rx259_fail
-    rx259_pos = $P10."pos"()
-  # rx pass
-    rx259_cur."!cursor_pass"(rx259_pos, "metachar:sym<::>")
-    if_null rx259_debug, debug_296
-    rx259_cur."!cursor_debug"("PASS", "metachar:sym<::>", " at pos=", rx259_pos)
-  debug_296:
-    .return (rx259_cur)
-  rx259_restart:
-    if_null rx259_debug, debug_297
-    rx259_cur."!cursor_debug"("NEXT", "metachar:sym<::>")
-  debug_297:
-  rx259_fail:
-    (rx259_rep, rx259_pos, $I10, $P10) = rx259_cur."!mark_fail"(0)
-    lt rx259_pos, -1, rx259_done
-    eq rx259_pos, -1, rx259_fail
-    jump $I10
-  rx259_done:
-    rx259_cur."!cursor_fail"()
-    if_null rx259_debug, debug_298
-    rx259_cur."!cursor_debug"("FAIL", "metachar:sym<::>")
-  debug_298:
-    .return (rx259_cur)
+    rx282_cur."!cursor_pos"(rx282_pos)
+    $P10 = rx282_cur."panic"(":: not yet implemented")
+    unless $P10, rx282_fail
+    rx282_pos = $P10."pos"()
+  # rx pass
+    rx282_cur."!cursor_pass"(rx282_pos, "metachar:sym<::>")
+    if_null rx282_debug, debug_318
+    rx282_cur."!cursor_debug"("PASS", "metachar:sym<::>", " at pos=", rx282_pos)
+  debug_318:
+    .return (rx282_cur)
+  rx282_restart:
+.annotate 'line', 3
+    if_null rx282_debug, debug_319
+    rx282_cur."!cursor_debug"("NEXT", "metachar:sym<::>")
+  debug_319:
+  rx282_fail:
+    (rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0)
+    lt rx282_pos, -1, rx282_done
+    eq rx282_pos, -1, rx282_fail
+    jump $I10
+  rx282_done:
+    rx282_cur."!cursor_fail"()
+    if_null rx282_debug, debug_320
+    rx282_cur."!cursor_debug"("FAIL", "metachar:sym<::>")
+  debug_320:
+    .return (rx282_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<::>"  :subid("76_1283975941.34404") :method
-.annotate 'line', 0
-    $P261 = self."!PREFIX__!subrule"("panic", "::")
-    new $P262, "ResizablePMCArray"
-    push $P262, $P261
-    .return ($P262)
+.sub "!PREFIX__metachar:sym<::>"  :subid("82_1284728471.30547") :method
+.annotate 'line', 3
+    $P284 = self."!PREFIX__!subrule"("panic", "::")
+    new $P285, "ResizablePMCArray"
+    push $P285, $P284
+    .return ($P285)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<lwb>"  :subid("77_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx266_tgt
-    .local int rx266_pos
-    .local int rx266_off
-    .local int rx266_eos
-    .local int rx266_rep
-    .local pmc rx266_cur
-    .local pmc rx266_debug
-    (rx266_cur, rx266_pos, rx266_tgt, $I10) = self."!cursor_start"()
-    getattribute rx266_debug, rx266_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx266_cur
-    .local pmc match
-    .lex "$/", match
-    length rx266_eos, rx266_tgt
-    gt rx266_pos, rx266_eos, rx266_done
-    set rx266_off, 0
-    lt rx266_pos, 2, rx266_start
-    sub rx266_off, rx266_pos, 1
-    substr rx266_tgt, rx266_tgt, rx266_off
-  rx266_start:
-    eq $I10, 1, rx266_restart
-    if_null rx266_debug, debug_299
-    rx266_cur."!cursor_debug"("START", "metachar:sym<lwb>")
-  debug_299:
+.sub "metachar:sym<lwb>"  :subid("83_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx289_tgt
+    .local int rx289_pos
+    .local int rx289_off
+    .local int rx289_eos
+    .local int rx289_rep
+    .local pmc rx289_cur
+    .local pmc rx289_debug
+    (rx289_cur, rx289_pos, rx289_tgt, $I10) = self."!cursor_start"()
+    getattribute rx289_debug, rx289_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx289_cur
+    .local pmc match
+    .lex "$/", match
+    length rx289_eos, rx289_tgt
+    gt rx289_pos, rx289_eos, rx289_done
+    set rx289_off, 0
+    lt rx289_pos, 2, rx289_start
+    sub rx289_off, rx289_pos, 1
+    substr rx289_tgt, rx289_tgt, rx289_off
+  rx289_start:
+    eq $I10, 1, rx289_restart
+    if_null rx289_debug, debug_321
+    rx289_cur."!cursor_debug"("START", "metachar:sym<lwb>")
+  debug_321:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan269_done
-    goto rxscan269_scan
-  rxscan269_loop:
-    ($P10) = rx266_cur."from"()
-    inc $P10
-    set rx266_pos, $P10
-    ge rx266_pos, rx266_eos, rxscan269_done
-  rxscan269_scan:
-    set_addr $I10, rxscan269_loop
-    rx266_cur."!mark_push"(0, rx266_pos, $I10)
-  rxscan269_done:
+    ne $I10, -1, rxscan292_done
+    goto rxscan292_scan
+  rxscan292_loop:
+    ($P10) = rx289_cur."from"()
+    inc $P10
+    set rx289_pos, $P10
+    ge rx289_pos, rx289_eos, rxscan292_done
+  rxscan292_scan:
+    set_addr $I10, rxscan292_loop
+    rx289_cur."!mark_push"(0, rx289_pos, $I10)
+  rxscan292_done:
+.annotate 'line', 98
   # rx subcapture "sym"
-    set_addr $I10, rxcap_271_fail
-    rx266_cur."!mark_push"(0, rx266_pos, $I10)
-  alt270_0:
-    set_addr $I10, alt270_1
-    rx266_cur."!mark_push"(0, rx266_pos, $I10)
+    set_addr $I10, rxcap_294_fail
+    rx289_cur."!mark_push"(0, rx289_pos, $I10)
+  alt293_0:
+    set_addr $I10, alt293_1
+    rx289_cur."!mark_push"(0, rx289_pos, $I10)
   # rx literal  "<<"
-    add $I11, rx266_pos, 2
-    gt $I11, rx266_eos, rx266_fail
-    sub $I11, rx266_pos, rx266_off
-    substr $S10, rx266_tgt, $I11, 2
-    ne $S10, "<<", rx266_fail
-    add rx266_pos, 2
-    goto alt270_end
-  alt270_1:
+    add $I11, rx289_pos, 2
+    gt $I11, rx289_eos, rx289_fail
+    sub $I11, rx289_pos, rx289_off
+    substr $S10, rx289_tgt, $I11, 2
+    ne $S10, "<<", rx289_fail
+    add rx289_pos, 2
+    goto alt293_end
+  alt293_1:
   # rx literal  unicode:"\x{ab}"
-    add $I11, rx266_pos, 1
-    gt $I11, rx266_eos, rx266_fail
-    sub $I11, rx266_pos, rx266_off
-    ord $I11, rx266_tgt, $I11
-    ne $I11, 171, rx266_fail
-    add rx266_pos, 1
-  alt270_end:
-    set_addr $I10, rxcap_271_fail
-    ($I12, $I11) = rx266_cur."!mark_peek"($I10)
-    rx266_cur."!cursor_pos"($I11)
-    ($P10) = rx266_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx266_pos, "")
-    rx266_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx289_pos, 1
+    gt $I11, rx289_eos, rx289_fail
+    sub $I11, rx289_pos, rx289_off
+    ord $I11, rx289_tgt, $I11
+    ne $I11, 171, rx289_fail
+    add rx289_pos, 1
+  alt293_end:
+    set_addr $I10, rxcap_294_fail
+    ($I12, $I11) = rx289_cur."!mark_peek"($I10)
+    rx289_cur."!cursor_pos"($I11)
+    ($P10) = rx289_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx289_pos, "")
+    rx289_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_271_done
-  rxcap_271_fail:
-    goto rx266_fail
-  rxcap_271_done:
-  # rx pass
-    rx266_cur."!cursor_pass"(rx266_pos, "metachar:sym<lwb>")
-    if_null rx266_debug, debug_300
-    rx266_cur."!cursor_debug"("PASS", "metachar:sym<lwb>", " at pos=", rx266_pos)
-  debug_300:
-    .return (rx266_cur)
-  rx266_restart:
-    if_null rx266_debug, debug_301
-    rx266_cur."!cursor_debug"("NEXT", "metachar:sym<lwb>")
-  debug_301:
-  rx266_fail:
-    (rx266_rep, rx266_pos, $I10, $P10) = rx266_cur."!mark_fail"(0)
-    lt rx266_pos, -1, rx266_done
-    eq rx266_pos, -1, rx266_fail
-    jump $I10
-  rx266_done:
-    rx266_cur."!cursor_fail"()
-    if_null rx266_debug, debug_302
-    rx266_cur."!cursor_debug"("FAIL", "metachar:sym<lwb>")
-  debug_302:
-    .return (rx266_cur)
+    goto rxcap_294_done
+  rxcap_294_fail:
+    goto rx289_fail
+  rxcap_294_done:
+  # rx pass
+    rx289_cur."!cursor_pass"(rx289_pos, "metachar:sym<lwb>")
+    if_null rx289_debug, debug_322
+    rx289_cur."!cursor_debug"("PASS", "metachar:sym<lwb>", " at pos=", rx289_pos)
+  debug_322:
+    .return (rx289_cur)
+  rx289_restart:
+.annotate 'line', 3
+    if_null rx289_debug, debug_323
+    rx289_cur."!cursor_debug"("NEXT", "metachar:sym<lwb>")
+  debug_323:
+  rx289_fail:
+    (rx289_rep, rx289_pos, $I10, $P10) = rx289_cur."!mark_fail"(0)
+    lt rx289_pos, -1, rx289_done
+    eq rx289_pos, -1, rx289_fail
+    jump $I10
+  rx289_done:
+    rx289_cur."!cursor_fail"()
+    if_null rx289_debug, debug_324
+    rx289_cur."!cursor_debug"("FAIL", "metachar:sym<lwb>")
+  debug_324:
+    .return (rx289_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<lwb>"  :subid("78_1283975941.34404") :method
-.annotate 'line', 0
-    new $P268, "ResizablePMCArray"
-    push $P268, unicode:"\x{ab}"
-    push $P268, "<<"
-    .return ($P268)
+.sub "!PREFIX__metachar:sym<lwb>"  :subid("84_1284728471.30547") :method
+.annotate 'line', 3
+    new $P291, "ResizablePMCArray"
+    push $P291, unicode:"\x{ab}"
+    push $P291, "<<"
+    .return ($P291)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<rwb>"  :subid("79_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx273_tgt
-    .local int rx273_pos
-    .local int rx273_off
-    .local int rx273_eos
-    .local int rx273_rep
-    .local pmc rx273_cur
-    .local pmc rx273_debug
-    (rx273_cur, rx273_pos, rx273_tgt, $I10) = self."!cursor_start"()
-    getattribute rx273_debug, rx273_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx273_cur
-    .local pmc match
-    .lex "$/", match
-    length rx273_eos, rx273_tgt
-    gt rx273_pos, rx273_eos, rx273_done
-    set rx273_off, 0
-    lt rx273_pos, 2, rx273_start
-    sub rx273_off, rx273_pos, 1
-    substr rx273_tgt, rx273_tgt, rx273_off
-  rx273_start:
-    eq $I10, 1, rx273_restart
-    if_null rx273_debug, debug_303
-    rx273_cur."!cursor_debug"("START", "metachar:sym<rwb>")
-  debug_303:
+.sub "metachar:sym<rwb>"  :subid("85_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx296_tgt
+    .local int rx296_pos
+    .local int rx296_off
+    .local int rx296_eos
+    .local int rx296_rep
+    .local pmc rx296_cur
+    .local pmc rx296_debug
+    (rx296_cur, rx296_pos, rx296_tgt, $I10) = self."!cursor_start"()
+    getattribute rx296_debug, rx296_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx296_cur
+    .local pmc match
+    .lex "$/", match
+    length rx296_eos, rx296_tgt
+    gt rx296_pos, rx296_eos, rx296_done
+    set rx296_off, 0
+    lt rx296_pos, 2, rx296_start
+    sub rx296_off, rx296_pos, 1
+    substr rx296_tgt, rx296_tgt, rx296_off
+  rx296_start:
+    eq $I10, 1, rx296_restart
+    if_null rx296_debug, debug_325
+    rx296_cur."!cursor_debug"("START", "metachar:sym<rwb>")
+  debug_325:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan276_done
-    goto rxscan276_scan
-  rxscan276_loop:
-    ($P10) = rx273_cur."from"()
-    inc $P10
-    set rx273_pos, $P10
-    ge rx273_pos, rx273_eos, rxscan276_done
-  rxscan276_scan:
-    set_addr $I10, rxscan276_loop
-    rx273_cur."!mark_push"(0, rx273_pos, $I10)
-  rxscan276_done:
+    ne $I10, -1, rxscan299_done
+    goto rxscan299_scan
+  rxscan299_loop:
+    ($P10) = rx296_cur."from"()
+    inc $P10
+    set rx296_pos, $P10
+    ge rx296_pos, rx296_eos, rxscan299_done
+  rxscan299_scan:
+    set_addr $I10, rxscan299_loop
+    rx296_cur."!mark_push"(0, rx296_pos, $I10)
+  rxscan299_done:
+.annotate 'line', 99
   # rx subcapture "sym"
-    set_addr $I10, rxcap_278_fail
-    rx273_cur."!mark_push"(0, rx273_pos, $I10)
-  alt277_0:
-    set_addr $I10, alt277_1
-    rx273_cur."!mark_push"(0, rx273_pos, $I10)
+    set_addr $I10, rxcap_301_fail
+    rx296_cur."!mark_push"(0, rx296_pos, $I10)
+  alt300_0:
+    set_addr $I10, alt300_1
+    rx296_cur."!mark_push"(0, rx296_pos, $I10)
   # rx literal  ">>"
-    add $I11, rx273_pos, 2
-    gt $I11, rx273_eos, rx273_fail
-    sub $I11, rx273_pos, rx273_off
-    substr $S10, rx273_tgt, $I11, 2
-    ne $S10, ">>", rx273_fail
-    add rx273_pos, 2
-    goto alt277_end
-  alt277_1:
+    add $I11, rx296_pos, 2
+    gt $I11, rx296_eos, rx296_fail
+    sub $I11, rx296_pos, rx296_off
+    substr $S10, rx296_tgt, $I11, 2
+    ne $S10, ">>", rx296_fail
+    add rx296_pos, 2
+    goto alt300_end
+  alt300_1:
   # rx literal  unicode:"\x{bb}"
-    add $I11, rx273_pos, 1
-    gt $I11, rx273_eos, rx273_fail
-    sub $I11, rx273_pos, rx273_off
-    ord $I11, rx273_tgt, $I11
-    ne $I11, 187, rx273_fail
-    add rx273_pos, 1
-  alt277_end:
-    set_addr $I10, rxcap_278_fail
-    ($I12, $I11) = rx273_cur."!mark_peek"($I10)
-    rx273_cur."!cursor_pos"($I11)
-    ($P10) = rx273_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx273_pos, "")
-    rx273_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx296_pos, 1
+    gt $I11, rx296_eos, rx296_fail
+    sub $I11, rx296_pos, rx296_off
+    ord $I11, rx296_tgt, $I11
+    ne $I11, 187, rx296_fail
+    add rx296_pos, 1
+  alt300_end:
+    set_addr $I10, rxcap_301_fail
+    ($I12, $I11) = rx296_cur."!mark_peek"($I10)
+    rx296_cur."!cursor_pos"($I11)
+    ($P10) = rx296_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx296_pos, "")
+    rx296_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_278_done
-  rxcap_278_fail:
-    goto rx273_fail
-  rxcap_278_done:
-  # rx pass
-    rx273_cur."!cursor_pass"(rx273_pos, "metachar:sym<rwb>")
-    if_null rx273_debug, debug_304
-    rx273_cur."!cursor_debug"("PASS", "metachar:sym<rwb>", " at pos=", rx273_pos)
-  debug_304:
-    .return (rx273_cur)
-  rx273_restart:
-    if_null rx273_debug, debug_305
-    rx273_cur."!cursor_debug"("NEXT", "metachar:sym<rwb>")
-  debug_305:
-  rx273_fail:
-    (rx273_rep, rx273_pos, $I10, $P10) = rx273_cur."!mark_fail"(0)
-    lt rx273_pos, -1, rx273_done
-    eq rx273_pos, -1, rx273_fail
-    jump $I10
-  rx273_done:
-    rx273_cur."!cursor_fail"()
-    if_null rx273_debug, debug_306
-    rx273_cur."!cursor_debug"("FAIL", "metachar:sym<rwb>")
-  debug_306:
-    .return (rx273_cur)
+    goto rxcap_301_done
+  rxcap_301_fail:
+    goto rx296_fail
+  rxcap_301_done:
+  # rx pass
+    rx296_cur."!cursor_pass"(rx296_pos, "metachar:sym<rwb>")
+    if_null rx296_debug, debug_326
+    rx296_cur."!cursor_debug"("PASS", "metachar:sym<rwb>", " at pos=", rx296_pos)
+  debug_326:
+    .return (rx296_cur)
+  rx296_restart:
+.annotate 'line', 3
+    if_null rx296_debug, debug_327
+    rx296_cur."!cursor_debug"("NEXT", "metachar:sym<rwb>")
+  debug_327:
+  rx296_fail:
+    (rx296_rep, rx296_pos, $I10, $P10) = rx296_cur."!mark_fail"(0)
+    lt rx296_pos, -1, rx296_done
+    eq rx296_pos, -1, rx296_fail
+    jump $I10
+  rx296_done:
+    rx296_cur."!cursor_fail"()
+    if_null rx296_debug, debug_328
+    rx296_cur."!cursor_debug"("FAIL", "metachar:sym<rwb>")
+  debug_328:
+    .return (rx296_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<rwb>"  :subid("80_1283975941.34404") :method
-.annotate 'line', 0
-    new $P275, "ResizablePMCArray"
-    push $P275, unicode:"\x{bb}"
-    push $P275, ">>"
-    .return ($P275)
+.sub "!PREFIX__metachar:sym<rwb>"  :subid("86_1284728471.30547") :method
+.annotate 'line', 3
+    new $P298, "ResizablePMCArray"
+    push $P298, unicode:"\x{bb}"
+    push $P298, ">>"
+    .return ($P298)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<bs>"  :subid("81_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx280_tgt
-    .local int rx280_pos
-    .local int rx280_off
-    .local int rx280_eos
-    .local int rx280_rep
-    .local pmc rx280_cur
-    .local pmc rx280_debug
-    (rx280_cur, rx280_pos, rx280_tgt, $I10) = self."!cursor_start"()
-    getattribute rx280_debug, rx280_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx280_cur
-    .local pmc match
-    .lex "$/", match
-    length rx280_eos, rx280_tgt
-    gt rx280_pos, rx280_eos, rx280_done
-    set rx280_off, 0
-    lt rx280_pos, 2, rx280_start
-    sub rx280_off, rx280_pos, 1
-    substr rx280_tgt, rx280_tgt, rx280_off
-  rx280_start:
-    eq $I10, 1, rx280_restart
-    if_null rx280_debug, debug_307
-    rx280_cur."!cursor_debug"("START", "metachar:sym<bs>")
-  debug_307:
+.sub "metachar:sym<bs>"  :subid("87_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx303_tgt
+    .local int rx303_pos
+    .local int rx303_off
+    .local int rx303_eos
+    .local int rx303_rep
+    .local pmc rx303_cur
+    .local pmc rx303_debug
+    (rx303_cur, rx303_pos, rx303_tgt, $I10) = self."!cursor_start"()
+    getattribute rx303_debug, rx303_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx303_cur
+    .local pmc match
+    .lex "$/", match
+    length rx303_eos, rx303_tgt
+    gt rx303_pos, rx303_eos, rx303_done
+    set rx303_off, 0
+    lt rx303_pos, 2, rx303_start
+    sub rx303_off, rx303_pos, 1
+    substr rx303_tgt, rx303_tgt, rx303_off
+  rx303_start:
+    eq $I10, 1, rx303_restart
+    if_null rx303_debug, debug_329
+    rx303_cur."!cursor_debug"("START", "metachar:sym<bs>")
+  debug_329:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan284_done
-    goto rxscan284_scan
-  rxscan284_loop:
-    ($P10) = rx280_cur."from"()
-    inc $P10
-    set rx280_pos, $P10
-    ge rx280_pos, rx280_eos, rxscan284_done
-  rxscan284_scan:
-    set_addr $I10, rxscan284_loop
-    rx280_cur."!mark_push"(0, rx280_pos, $I10)
-  rxscan284_done:
+    ne $I10, -1, rxscan307_done
+    goto rxscan307_scan
+  rxscan307_loop:
+    ($P10) = rx303_cur."from"()
+    inc $P10
+    set rx303_pos, $P10
+    ge rx303_pos, rx303_eos, rxscan307_done
+  rxscan307_scan:
+    set_addr $I10, rxscan307_loop
+    rx303_cur."!mark_push"(0, rx303_pos, $I10)
+  rxscan307_done:
+.annotate 'line', 100
   # rx literal  "\\"
-    add $I11, rx280_pos, 1
-    gt $I11, rx280_eos, rx280_fail
-    sub $I11, rx280_pos, rx280_off
-    ord $I11, rx280_tgt, $I11
-    ne $I11, 92, rx280_fail
-    add rx280_pos, 1
+    add $I11, rx303_pos, 1
+    gt $I11, rx303_eos, rx303_fail
+    sub $I11, rx303_pos, rx303_off
+    ord $I11, rx303_tgt, $I11
+    ne $I11, 92, rx303_fail
+    add rx303_pos, 1
   # rx subrule "backslash" subtype=capture negate=
-    rx280_cur."!cursor_pos"(rx280_pos)
-    $P10 = rx280_cur."backslash"()
-    unless $P10, rx280_fail
-    rx280_cur."!mark_push"(0, -1, 0, $P10)
+    rx303_cur."!cursor_pos"(rx303_pos)
+    $P10 = rx303_cur."backslash"()
+    unless $P10, rx303_fail
+    rx303_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backslash")
-    rx280_pos = $P10."pos"()
+    rx303_pos = $P10."pos"()
   # rx pass
-    rx280_cur."!cursor_pass"(rx280_pos, "metachar:sym<bs>")
-    if_null rx280_debug, debug_308
-    rx280_cur."!cursor_debug"("PASS", "metachar:sym<bs>", " at pos=", rx280_pos)
-  debug_308:
-    .return (rx280_cur)
-  rx280_restart:
-    if_null rx280_debug, debug_309
-    rx280_cur."!cursor_debug"("NEXT", "metachar:sym<bs>")
-  debug_309:
-  rx280_fail:
-    (rx280_rep, rx280_pos, $I10, $P10) = rx280_cur."!mark_fail"(0)
-    lt rx280_pos, -1, rx280_done
-    eq rx280_pos, -1, rx280_fail
-    jump $I10
-  rx280_done:
-    rx280_cur."!cursor_fail"()
-    if_null rx280_debug, debug_310
-    rx280_cur."!cursor_debug"("FAIL", "metachar:sym<bs>")
-  debug_310:
-    .return (rx280_cur)
+    rx303_cur."!cursor_pass"(rx303_pos, "metachar:sym<bs>")
+    if_null rx303_debug, debug_330
+    rx303_cur."!cursor_debug"("PASS", "metachar:sym<bs>", " at pos=", rx303_pos)
+  debug_330:
+    .return (rx303_cur)
+  rx303_restart:
+.annotate 'line', 3
+    if_null rx303_debug, debug_331
+    rx303_cur."!cursor_debug"("NEXT", "metachar:sym<bs>")
+  debug_331:
+  rx303_fail:
+    (rx303_rep, rx303_pos, $I10, $P10) = rx303_cur."!mark_fail"(0)
+    lt rx303_pos, -1, rx303_done
+    eq rx303_pos, -1, rx303_fail
+    jump $I10
+  rx303_done:
+    rx303_cur."!cursor_fail"()
+    if_null rx303_debug, debug_332
+    rx303_cur."!cursor_debug"("FAIL", "metachar:sym<bs>")
+  debug_332:
+    .return (rx303_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<bs>"  :subid("82_1283975941.34404") :method
-.annotate 'line', 0
-    $P282 = self."!PREFIX__!subrule"("backslash", "\\")
-    new $P283, "ResizablePMCArray"
-    push $P283, $P282
-    .return ($P283)
+.sub "!PREFIX__metachar:sym<bs>"  :subid("88_1284728471.30547") :method
+.annotate 'line', 3
+    $P305 = self."!PREFIX__!subrule"("backslash", "\\")
+    new $P306, "ResizablePMCArray"
+    push $P306, $P305
+    .return ($P306)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<mod>"  :subid("83_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx286_tgt
-    .local int rx286_pos
-    .local int rx286_off
-    .local int rx286_eos
-    .local int rx286_rep
-    .local pmc rx286_cur
-    .local pmc rx286_debug
-    (rx286_cur, rx286_pos, rx286_tgt, $I10) = self."!cursor_start"()
-    getattribute rx286_debug, rx286_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx286_cur
-    .local pmc match
-    .lex "$/", match
-    length rx286_eos, rx286_tgt
-    gt rx286_pos, rx286_eos, rx286_done
-    set rx286_off, 0
-    lt rx286_pos, 2, rx286_start
-    sub rx286_off, rx286_pos, 1
-    substr rx286_tgt, rx286_tgt, rx286_off
-  rx286_start:
-    eq $I10, 1, rx286_restart
-    if_null rx286_debug, debug_311
-    rx286_cur."!cursor_debug"("START", "metachar:sym<mod>")
-  debug_311:
+.sub "metachar:sym<mod>"  :subid("89_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx309_tgt
+    .local int rx309_pos
+    .local int rx309_off
+    .local int rx309_eos
+    .local int rx309_rep
+    .local pmc rx309_cur
+    .local pmc rx309_debug
+    (rx309_cur, rx309_pos, rx309_tgt, $I10) = self."!cursor_start"()
+    getattribute rx309_debug, rx309_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx309_cur
+    .local pmc match
+    .lex "$/", match
+    length rx309_eos, rx309_tgt
+    gt rx309_pos, rx309_eos, rx309_done
+    set rx309_off, 0
+    lt rx309_pos, 2, rx309_start
+    sub rx309_off, rx309_pos, 1
+    substr rx309_tgt, rx309_tgt, rx309_off
+  rx309_start:
+    eq $I10, 1, rx309_restart
+    if_null rx309_debug, debug_333
+    rx309_cur."!cursor_debug"("START", "metachar:sym<mod>")
+  debug_333:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan290_done
-    goto rxscan290_scan
-  rxscan290_loop:
-    ($P10) = rx286_cur."from"()
-    inc $P10
-    set rx286_pos, $P10
-    ge rx286_pos, rx286_eos, rxscan290_done
-  rxscan290_scan:
-    set_addr $I10, rxscan290_loop
-    rx286_cur."!mark_push"(0, rx286_pos, $I10)
-  rxscan290_done:
+    ne $I10, -1, rxscan313_done
+    goto rxscan313_scan
+  rxscan313_loop:
+    ($P10) = rx309_cur."from"()
+    inc $P10
+    set rx309_pos, $P10
+    ge rx309_pos, rx309_eos, rxscan313_done
+  rxscan313_scan:
+    set_addr $I10, rxscan313_loop
+    rx309_cur."!mark_push"(0, rx309_pos, $I10)
+  rxscan313_done:
+.annotate 'line', 101
   # rx subrule "mod_internal" subtype=capture negate=
-    rx286_cur."!cursor_pos"(rx286_pos)
-    $P10 = rx286_cur."mod_internal"()
-    unless $P10, rx286_fail
-    rx286_cur."!mark_push"(0, -1, 0, $P10)
+    rx309_cur."!cursor_pos"(rx309_pos)
+    $P10 = rx309_cur."mod_internal"()
+    unless $P10, rx309_fail
+    rx309_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("mod_internal")
-    rx286_pos = $P10."pos"()
+    rx309_pos = $P10."pos"()
   # rx pass
-    rx286_cur."!cursor_pass"(rx286_pos, "metachar:sym<mod>")
-    if_null rx286_debug, debug_312
-    rx286_cur."!cursor_debug"("PASS", "metachar:sym<mod>", " at pos=", rx286_pos)
-  debug_312:
-    .return (rx286_cur)
-  rx286_restart:
-    if_null rx286_debug, debug_313
-    rx286_cur."!cursor_debug"("NEXT", "metachar:sym<mod>")
-  debug_313:
-  rx286_fail:
-    (rx286_rep, rx286_pos, $I10, $P10) = rx286_cur."!mark_fail"(0)
-    lt rx286_pos, -1, rx286_done
-    eq rx286_pos, -1, rx286_fail
-    jump $I10
-  rx286_done:
-    rx286_cur."!cursor_fail"()
-    if_null rx286_debug, debug_314
-    rx286_cur."!cursor_debug"("FAIL", "metachar:sym<mod>")
-  debug_314:
-    .return (rx286_cur)
+    rx309_cur."!cursor_pass"(rx309_pos, "metachar:sym<mod>")
+    if_null rx309_debug, debug_334
+    rx309_cur."!cursor_debug"("PASS", "metachar:sym<mod>", " at pos=", rx309_pos)
+  debug_334:
+    .return (rx309_cur)
+  rx309_restart:
+.annotate 'line', 3
+    if_null rx309_debug, debug_335
+    rx309_cur."!cursor_debug"("NEXT", "metachar:sym<mod>")
+  debug_335:
+  rx309_fail:
+    (rx309_rep, rx309_pos, $I10, $P10) = rx309_cur."!mark_fail"(0)
+    lt rx309_pos, -1, rx309_done
+    eq rx309_pos, -1, rx309_fail
+    jump $I10
+  rx309_done:
+    rx309_cur."!cursor_fail"()
+    if_null rx309_debug, debug_336
+    rx309_cur."!cursor_debug"("FAIL", "metachar:sym<mod>")
+  debug_336:
+    .return (rx309_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<mod>"  :subid("84_1283975941.34404") :method
-.annotate 'line', 0
-    $P288 = self."!PREFIX__!subrule"("mod_internal", "")
-    new $P289, "ResizablePMCArray"
-    push $P289, $P288
-    .return ($P289)
+.sub "!PREFIX__metachar:sym<mod>"  :subid("90_1284728471.30547") :method
+.annotate 'line', 3
+    $P311 = self."!PREFIX__!subrule"("mod_internal", "")
+    new $P312, "ResizablePMCArray"
+    push $P312, $P311
+    .return ($P312)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<quantifier>"  :subid("85_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx292_tgt
-    .local int rx292_pos
-    .local int rx292_off
-    .local int rx292_eos
-    .local int rx292_rep
-    .local pmc rx292_cur
-    .local pmc rx292_debug
-    (rx292_cur, rx292_pos, rx292_tgt, $I10) = self."!cursor_start"()
-    getattribute rx292_debug, rx292_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx292_cur
-    .local pmc match
-    .lex "$/", match
-    length rx292_eos, rx292_tgt
-    gt rx292_pos, rx292_eos, rx292_done
-    set rx292_off, 0
-    lt rx292_pos, 2, rx292_start
-    sub rx292_off, rx292_pos, 1
-    substr rx292_tgt, rx292_tgt, rx292_off
-  rx292_start:
-    eq $I10, 1, rx292_restart
-    if_null rx292_debug, debug_315
-    rx292_cur."!cursor_debug"("START", "metachar:sym<quantifier>")
-  debug_315:
+.sub "metachar:sym<quantifier>"  :subid("91_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx315_tgt
+    .local int rx315_pos
+    .local int rx315_off
+    .local int rx315_eos
+    .local int rx315_rep
+    .local pmc rx315_cur
+    .local pmc rx315_debug
+    (rx315_cur, rx315_pos, rx315_tgt, $I10) = self."!cursor_start"()
+    getattribute rx315_debug, rx315_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx315_cur
+    .local pmc match
+    .lex "$/", match
+    length rx315_eos, rx315_tgt
+    gt rx315_pos, rx315_eos, rx315_done
+    set rx315_off, 0
+    lt rx315_pos, 2, rx315_start
+    sub rx315_off, rx315_pos, 1
+    substr rx315_tgt, rx315_tgt, rx315_off
+  rx315_start:
+    eq $I10, 1, rx315_restart
+    if_null rx315_debug, debug_337
+    rx315_cur."!cursor_debug"("START", "metachar:sym<quantifier>")
+  debug_337:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan296_done
-    goto rxscan296_scan
-  rxscan296_loop:
-    ($P10) = rx292_cur."from"()
-    inc $P10
-    set rx292_pos, $P10
-    ge rx292_pos, rx292_eos, rxscan296_done
-  rxscan296_scan:
-    set_addr $I10, rxscan296_loop
-    rx292_cur."!mark_push"(0, rx292_pos, $I10)
-  rxscan296_done:
+    ne $I10, -1, rxscan319_done
+    goto rxscan319_scan
+  rxscan319_loop:
+    ($P10) = rx315_cur."from"()
+    inc $P10
+    set rx315_pos, $P10
+    ge rx315_pos, rx315_eos, rxscan319_done
+  rxscan319_scan:
+    set_addr $I10, rxscan319_loop
+    rx315_cur."!mark_push"(0, rx315_pos, $I10)
+  rxscan319_done:
+.annotate 'line', 103
   # rx subrule "quantifier" subtype=capture negate=
-    rx292_cur."!cursor_pos"(rx292_pos)
-    $P10 = rx292_cur."quantifier"()
-    unless $P10, rx292_fail
-    rx292_cur."!mark_push"(0, -1, 0, $P10)
+    rx315_cur."!cursor_pos"(rx315_pos)
+    $P10 = rx315_cur."quantifier"()
+    unless $P10, rx315_fail
+    rx315_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quantifier")
-    rx292_pos = $P10."pos"()
+    rx315_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx292_cur."!cursor_pos"(rx292_pos)
-    $P10 = rx292_cur."panic"("Quantifier quantifies nothing")
-    unless $P10, rx292_fail
-    rx292_pos = $P10."pos"()
-  # rx pass
-    rx292_cur."!cursor_pass"(rx292_pos, "metachar:sym<quantifier>")
-    if_null rx292_debug, debug_316
-    rx292_cur."!cursor_debug"("PASS", "metachar:sym<quantifier>", " at pos=", rx292_pos)
-  debug_316:
-    .return (rx292_cur)
-  rx292_restart:
-    if_null rx292_debug, debug_317
-    rx292_cur."!cursor_debug"("NEXT", "metachar:sym<quantifier>")
-  debug_317:
-  rx292_fail:
-    (rx292_rep, rx292_pos, $I10, $P10) = rx292_cur."!mark_fail"(0)
-    lt rx292_pos, -1, rx292_done
-    eq rx292_pos, -1, rx292_fail
-    jump $I10
-  rx292_done:
-    rx292_cur."!cursor_fail"()
-    if_null rx292_debug, debug_318
-    rx292_cur."!cursor_debug"("FAIL", "metachar:sym<quantifier>")
-  debug_318:
-    .return (rx292_cur)
+    rx315_cur."!cursor_pos"(rx315_pos)
+    $P10 = rx315_cur."panic"("Quantifier quantifies nothing")
+    unless $P10, rx315_fail
+    rx315_pos = $P10."pos"()
+.annotate 'line', 102
+  # rx pass
+    rx315_cur."!cursor_pass"(rx315_pos, "metachar:sym<quantifier>")
+    if_null rx315_debug, debug_338
+    rx315_cur."!cursor_debug"("PASS", "metachar:sym<quantifier>", " at pos=", rx315_pos)
+  debug_338:
+    .return (rx315_cur)
+  rx315_restart:
+.annotate 'line', 3
+    if_null rx315_debug, debug_339
+    rx315_cur."!cursor_debug"("NEXT", "metachar:sym<quantifier>")
+  debug_339:
+  rx315_fail:
+    (rx315_rep, rx315_pos, $I10, $P10) = rx315_cur."!mark_fail"(0)
+    lt rx315_pos, -1, rx315_done
+    eq rx315_pos, -1, rx315_fail
+    jump $I10
+  rx315_done:
+    rx315_cur."!cursor_fail"()
+    if_null rx315_debug, debug_340
+    rx315_cur."!cursor_debug"("FAIL", "metachar:sym<quantifier>")
+  debug_340:
+    .return (rx315_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<quantifier>"  :subid("86_1283975941.34404") :method
-.annotate 'line', 0
-    $P294 = self."!PREFIX__!subrule"("quantifier", "")
-    new $P295, "ResizablePMCArray"
-    push $P295, $P294
-    .return ($P295)
+.sub "!PREFIX__metachar:sym<quantifier>"  :subid("92_1284728471.30547") :method
+.annotate 'line', 3
+    $P317 = self."!PREFIX__!subrule"("quantifier", "")
+    new $P318, "ResizablePMCArray"
+    push $P318, $P317
+    .return ($P318)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<~>"  :subid("87_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx298_tgt
-    .local int rx298_pos
-    .local int rx298_off
-    .local int rx298_eos
-    .local int rx298_rep
-    .local pmc rx298_cur
-    .local pmc rx298_debug
-    (rx298_cur, rx298_pos, rx298_tgt, $I10) = self."!cursor_start"()
-    getattribute rx298_debug, rx298_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx298_cur
-    .local pmc match
-    .lex "$/", match
-    length rx298_eos, rx298_tgt
-    gt rx298_pos, rx298_eos, rx298_done
-    set rx298_off, 0
-    lt rx298_pos, 2, rx298_start
-    sub rx298_off, rx298_pos, 1
-    substr rx298_tgt, rx298_tgt, rx298_off
-  rx298_start:
-    eq $I10, 1, rx298_restart
-    if_null rx298_debug, debug_319
-    rx298_cur."!cursor_debug"("START", "metachar:sym<~>")
-  debug_319:
+.sub "metachar:sym<~>"  :subid("93_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx321_tgt
+    .local int rx321_pos
+    .local int rx321_off
+    .local int rx321_eos
+    .local int rx321_rep
+    .local pmc rx321_cur
+    .local pmc rx321_debug
+    (rx321_cur, rx321_pos, rx321_tgt, $I10) = self."!cursor_start"()
+    getattribute rx321_debug, rx321_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx321_cur
+    .local pmc match
+    .lex "$/", match
+    length rx321_eos, rx321_tgt
+    gt rx321_pos, rx321_eos, rx321_done
+    set rx321_off, 0
+    lt rx321_pos, 2, rx321_start
+    sub rx321_off, rx321_pos, 1
+    substr rx321_tgt, rx321_tgt, rx321_off
+  rx321_start:
+    eq $I10, 1, rx321_restart
+    if_null rx321_debug, debug_341
+    rx321_cur."!cursor_debug"("START", "metachar:sym<~>")
+  debug_341:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan302_done
-    goto rxscan302_scan
-  rxscan302_loop:
-    ($P10) = rx298_cur."from"()
-    inc $P10
-    set rx298_pos, $P10
-    ge rx298_pos, rx298_eos, rxscan302_done
-  rxscan302_scan:
-    set_addr $I10, rxscan302_loop
-    rx298_cur."!mark_push"(0, rx298_pos, $I10)
-  rxscan302_done:
+    ne $I10, -1, rxscan325_done
+    goto rxscan325_scan
+  rxscan325_loop:
+    ($P10) = rx321_cur."from"()
+    inc $P10
+    set rx321_pos, $P10
+    ge rx321_pos, rx321_eos, rxscan325_done
+  rxscan325_scan:
+    set_addr $I10, rxscan325_loop
+    rx321_cur."!mark_push"(0, rx321_pos, $I10)
+  rxscan325_done:
+.annotate 'line', 108
   # rx subcapture "sym"
-    set_addr $I10, rxcap_303_fail
-    rx298_cur."!mark_push"(0, rx298_pos, $I10)
+    set_addr $I10, rxcap_326_fail
+    rx321_cur."!mark_push"(0, rx321_pos, $I10)
   # rx literal  "~"
-    add $I11, rx298_pos, 1
-    gt $I11, rx298_eos, rx298_fail
-    sub $I11, rx298_pos, rx298_off
-    ord $I11, rx298_tgt, $I11
-    ne $I11, 126, rx298_fail
-    add rx298_pos, 1
-    set_addr $I10, rxcap_303_fail
-    ($I12, $I11) = rx298_cur."!mark_peek"($I10)
-    rx298_cur."!cursor_pos"($I11)
-    ($P10) = rx298_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx298_pos, "")
-    rx298_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx321_pos, 1
+    gt $I11, rx321_eos, rx321_fail
+    sub $I11, rx321_pos, rx321_off
+    ord $I11, rx321_tgt, $I11
+    ne $I11, 126, rx321_fail
+    add rx321_pos, 1
+    set_addr $I10, rxcap_326_fail
+    ($I12, $I11) = rx321_cur."!mark_peek"($I10)
+    rx321_cur."!cursor_pos"($I11)
+    ($P10) = rx321_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx321_pos, "")
+    rx321_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_303_done
-  rxcap_303_fail:
-    goto rx298_fail
-  rxcap_303_done:
+    goto rxcap_326_done
+  rxcap_326_fail:
+    goto rx321_fail
+  rxcap_326_done:
+.annotate 'line', 109
   # rx subrule "ws" subtype=method negate=
-    rx298_cur."!cursor_pos"(rx298_pos)
-    $P10 = rx298_cur."ws"()
-    unless $P10, rx298_fail
-    rx298_pos = $P10."pos"()
+    rx321_cur."!cursor_pos"(rx321_pos)
+    $P10 = rx321_cur."ws"()
+    unless $P10, rx321_fail
+    rx321_pos = $P10."pos"()
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx298_cur."!cursor_pos"(rx298_pos)
-    $P10 = rx298_cur."quantified_atom"()
-    unless $P10, rx298_fail
-    rx298_cur."!mark_push"(0, -1, 0, $P10)
+    rx321_cur."!cursor_pos"(rx321_pos)
+    $P10 = rx321_cur."quantified_atom"()
+    unless $P10, rx321_fail
+    rx321_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("GOAL")
-    rx298_pos = $P10."pos"()
+    rx321_pos = $P10."pos"()
+.annotate 'line', 110
   # rx subrule "ws" subtype=method negate=
-    rx298_cur."!cursor_pos"(rx298_pos)
-    $P10 = rx298_cur."ws"()
-    unless $P10, rx298_fail
-    rx298_pos = $P10."pos"()
+    rx321_cur."!cursor_pos"(rx321_pos)
+    $P10 = rx321_cur."ws"()
+    unless $P10, rx321_fail
+    rx321_pos = $P10."pos"()
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx298_cur."!cursor_pos"(rx298_pos)
-    $P10 = rx298_cur."quantified_atom"()
-    unless $P10, rx298_fail
-    rx298_cur."!mark_push"(0, -1, 0, $P10)
+    rx321_cur."!cursor_pos"(rx321_pos)
+    $P10 = rx321_cur."quantified_atom"()
+    unless $P10, rx321_fail
+    rx321_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx298_pos = $P10."pos"()
+    rx321_pos = $P10."pos"()
+.annotate 'line', 107
   # rx pass
-    rx298_cur."!cursor_pass"(rx298_pos, "metachar:sym<~>")
-    if_null rx298_debug, debug_320
-    rx298_cur."!cursor_debug"("PASS", "metachar:sym<~>", " at pos=", rx298_pos)
-  debug_320:
-    .return (rx298_cur)
-  rx298_restart:
-    if_null rx298_debug, debug_321
-    rx298_cur."!cursor_debug"("NEXT", "metachar:sym<~>")
-  debug_321:
-  rx298_fail:
-    (rx298_rep, rx298_pos, $I10, $P10) = rx298_cur."!mark_fail"(0)
-    lt rx298_pos, -1, rx298_done
-    eq rx298_pos, -1, rx298_fail
-    jump $I10
-  rx298_done:
-    rx298_cur."!cursor_fail"()
-    if_null rx298_debug, debug_322
-    rx298_cur."!cursor_debug"("FAIL", "metachar:sym<~>")
-  debug_322:
-    .return (rx298_cur)
+    rx321_cur."!cursor_pass"(rx321_pos, "metachar:sym<~>")
+    if_null rx321_debug, debug_342
+    rx321_cur."!cursor_debug"("PASS", "metachar:sym<~>", " at pos=", rx321_pos)
+  debug_342:
+    .return (rx321_cur)
+  rx321_restart:
+.annotate 'line', 3
+    if_null rx321_debug, debug_343
+    rx321_cur."!cursor_debug"("NEXT", "metachar:sym<~>")
+  debug_343:
+  rx321_fail:
+    (rx321_rep, rx321_pos, $I10, $P10) = rx321_cur."!mark_fail"(0)
+    lt rx321_pos, -1, rx321_done
+    eq rx321_pos, -1, rx321_fail
+    jump $I10
+  rx321_done:
+    rx321_cur."!cursor_fail"()
+    if_null rx321_debug, debug_344
+    rx321_cur."!cursor_debug"("FAIL", "metachar:sym<~>")
+  debug_344:
+    .return (rx321_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<~>"  :subid("88_1283975941.34404") :method
-.annotate 'line', 0
-    $P300 = self."!PREFIX__!subrule"("ws", "~")
-    new $P301, "ResizablePMCArray"
-    push $P301, $P300
-    .return ($P301)
+.sub "!PREFIX__metachar:sym<~>"  :subid("94_1284728471.30547") :method
+.annotate 'line', 3
+    $P323 = self."!PREFIX__!subrule"("ws", "~")
+    new $P324, "ResizablePMCArray"
+    push $P324, $P323
+    .return ($P324)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<{*}>"  :subid("89_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx305_tgt
-    .local int rx305_pos
-    .local int rx305_off
-    .local int rx305_eos
-    .local int rx305_rep
-    .local pmc rx305_cur
-    .local pmc rx305_debug
-    (rx305_cur, rx305_pos, rx305_tgt, $I10) = self."!cursor_start"()
-    rx305_cur."!cursor_caparray"("key")
-    getattribute rx305_debug, rx305_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx305_cur
-    .local pmc match
-    .lex "$/", match
-    length rx305_eos, rx305_tgt
-    gt rx305_pos, rx305_eos, rx305_done
-    set rx305_off, 0
-    lt rx305_pos, 2, rx305_start
-    sub rx305_off, rx305_pos, 1
-    substr rx305_tgt, rx305_tgt, rx305_off
-  rx305_start:
-    eq $I10, 1, rx305_restart
-    if_null rx305_debug, debug_323
-    rx305_cur."!cursor_debug"("START", "metachar:sym<{*}>")
-  debug_323:
+.sub "metachar:sym<{*}>"  :subid("95_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx328_tgt
+    .local int rx328_pos
+    .local int rx328_off
+    .local int rx328_eos
+    .local int rx328_rep
+    .local pmc rx328_cur
+    .local pmc rx328_debug
+    (rx328_cur, rx328_pos, rx328_tgt, $I10) = self."!cursor_start"()
+    rx328_cur."!cursor_caparray"("key")
+    getattribute rx328_debug, rx328_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx328_cur
+    .local pmc match
+    .lex "$/", match
+    length rx328_eos, rx328_tgt
+    gt rx328_pos, rx328_eos, rx328_done
+    set rx328_off, 0
+    lt rx328_pos, 2, rx328_start
+    sub rx328_off, rx328_pos, 1
+    substr rx328_tgt, rx328_tgt, rx328_off
+  rx328_start:
+    eq $I10, 1, rx328_restart
+    if_null rx328_debug, debug_345
+    rx328_cur."!cursor_debug"("START", "metachar:sym<{*}>")
+  debug_345:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan308_done
-    goto rxscan308_scan
-  rxscan308_loop:
-    ($P10) = rx305_cur."from"()
-    inc $P10
-    set rx305_pos, $P10
-    ge rx305_pos, rx305_eos, rxscan308_done
-  rxscan308_scan:
-    set_addr $I10, rxscan308_loop
-    rx305_cur."!mark_push"(0, rx305_pos, $I10)
-  rxscan308_done:
+    ne $I10, -1, rxscan331_done
+    goto rxscan331_scan
+  rxscan331_loop:
+    ($P10) = rx328_cur."from"()
+    inc $P10
+    set rx328_pos, $P10
+    ge rx328_pos, rx328_eos, rxscan331_done
+  rxscan331_scan:
+    set_addr $I10, rxscan331_loop
+    rx328_cur."!mark_push"(0, rx328_pos, $I10)
+  rxscan331_done:
+.annotate 'line', 114
   # rx subcapture "sym"
-    set_addr $I10, rxcap_309_fail
-    rx305_cur."!mark_push"(0, rx305_pos, $I10)
+    set_addr $I10, rxcap_332_fail
+    rx328_cur."!mark_push"(0, rx328_pos, $I10)
   # rx literal  "{*}"
-    add $I11, rx305_pos, 3
-    gt $I11, rx305_eos, rx305_fail
-    sub $I11, rx305_pos, rx305_off
-    substr $S10, rx305_tgt, $I11, 3
-    ne $S10, "{*}", rx305_fail
-    add rx305_pos, 3
-    set_addr $I10, rxcap_309_fail
-    ($I12, $I11) = rx305_cur."!mark_peek"($I10)
-    rx305_cur."!cursor_pos"($I11)
-    ($P10) = rx305_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx305_pos, "")
-    rx305_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx328_pos, 3
+    gt $I11, rx328_eos, rx328_fail
+    sub $I11, rx328_pos, rx328_off
+    substr $S10, rx328_tgt, $I11, 3
+    ne $S10, "{*}", rx328_fail
+    add rx328_pos, 3
+    set_addr $I10, rxcap_332_fail
+    ($I12, $I11) = rx328_cur."!mark_peek"($I10)
+    rx328_cur."!cursor_pos"($I11)
+    ($P10) = rx328_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx328_pos, "")
+    rx328_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_309_done
-  rxcap_309_fail:
-    goto rx305_fail
-  rxcap_309_done:
-  # rx rxquantr310 ** 0..1
-    set_addr $I10, rxquantr310_done
-    rx305_cur."!mark_push"(0, rx305_pos, $I10)
-  rxquantr310_loop:
+    goto rxcap_332_done
+  rxcap_332_fail:
+    goto rx328_fail
+  rxcap_332_done:
+.annotate 'line', 115
+  # rx rxquantr333 ** 0..1
+    set_addr $I10, rxquantr333_done
+    rx328_cur."!mark_push"(0, rx328_pos, $I10)
+  rxquantr333_loop:
   # rx enumcharlist_q negate=0  r 0..-1
-    sub $I10, rx305_pos, rx305_off
-    set rx305_rep, 0
-    sub $I12, rx305_eos, rx305_pos
-  rxenumcharlistq311_loop:
-    le $I12, 0, rxenumcharlistq311_done
-    substr $S10, rx305_tgt, $I10, 1
+    sub $I10, rx328_pos, rx328_off
+    set rx328_rep, 0
+    sub $I12, rx328_eos, rx328_pos
+  rxenumcharlistq334_loop:
+    le $I12, 0, rxenumcharlistq334_done
+    substr $S10, rx328_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rxenumcharlistq311_done
-    inc rx305_rep
+    lt $I11, 0, rxenumcharlistq334_done
+    inc rx328_rep
     inc $I10
     dec $I12
-    goto rxenumcharlistq311_loop
-  rxenumcharlistq311_done:
-    add rx305_pos, rx305_pos, rx305_rep
+    goto rxenumcharlistq334_loop
+  rxenumcharlistq334_done:
+    add rx328_pos, rx328_pos, rx328_rep
   # rx literal  "#= "
-    add $I11, rx305_pos, 3
-    gt $I11, rx305_eos, rx305_fail
-    sub $I11, rx305_pos, rx305_off
-    substr $S10, rx305_tgt, $I11, 3
-    ne $S10, "#= ", rx305_fail
-    add rx305_pos, 3
+    add $I11, rx328_pos, 3
+    gt $I11, rx328_eos, rx328_fail
+    sub $I11, rx328_pos, rx328_off
+    substr $S10, rx328_tgt, $I11, 3
+    ne $S10, "#= ", rx328_fail
+    add rx328_pos, 3
   # rx enumcharlist_q negate=0  r 0..-1
-    sub $I10, rx305_pos, rx305_off
-    set rx305_rep, 0
-    sub $I12, rx305_eos, rx305_pos
-  rxenumcharlistq312_loop:
-    le $I12, 0, rxenumcharlistq312_done
-    substr $S10, rx305_tgt, $I10, 1
+    sub $I10, rx328_pos, rx328_off
+    set rx328_rep, 0
+    sub $I12, rx328_eos, rx328_pos
+  rxenumcharlistq335_loop:
+    le $I12, 0, rxenumcharlistq335_done
+    substr $S10, rx328_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rxenumcharlistq312_done
-    inc rx305_rep
+    lt $I11, 0, rxenumcharlistq335_done
+    inc rx328_rep
     inc $I10
     dec $I12
-    goto rxenumcharlistq312_loop
-  rxenumcharlistq312_done:
-    add rx305_pos, rx305_pos, rx305_rep
+    goto rxenumcharlistq335_loop
+  rxenumcharlistq335_done:
+    add rx328_pos, rx328_pos, rx328_rep
   # rx subcapture "key"
-    set_addr $I10, rxcap_315_fail
-    rx305_cur."!mark_push"(0, rx305_pos, $I10)
+    set_addr $I10, rxcap_338_fail
+    rx328_cur."!mark_push"(0, rx328_pos, $I10)
   # rx charclass_q S r 1..-1
-    sub $I10, rx305_pos, rx305_off
-    find_cclass $I11, 32, rx305_tgt, $I10, rx305_eos
+    sub $I10, rx328_pos, rx328_off
+    find_cclass $I11, 32, rx328_tgt, $I10, rx328_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx305_fail
-    add rx305_pos, rx305_off, $I11
-  # rx rxquantr313 ** 0..*
-    set_addr $I10, rxquantr313_done
-    rx305_cur."!mark_push"(0, rx305_pos, $I10)
-  rxquantr313_loop:
+    lt $I11, $I12, rx328_fail
+    add rx328_pos, rx328_off, $I11
+  # rx rxquantr336 ** 0..*
+    set_addr $I10, rxquantr336_done
+    rx328_cur."!mark_push"(0, rx328_pos, $I10)
+  rxquantr336_loop:
   # rx enumcharlist_q negate=0  r 1..-1
-    sub $I10, rx305_pos, rx305_off
-    set rx305_rep, 0
-    sub $I12, rx305_eos, rx305_pos
-  rxenumcharlistq314_loop:
-    le $I12, 0, rxenumcharlistq314_done
-    substr $S10, rx305_tgt, $I10, 1
+    sub $I10, rx328_pos, rx328_off
+    set rx328_rep, 0
+    sub $I12, rx328_eos, rx328_pos
+  rxenumcharlistq337_loop:
+    le $I12, 0, rxenumcharlistq337_done
+    substr $S10, rx328_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rxenumcharlistq314_done
-    inc rx305_rep
+    lt $I11, 0, rxenumcharlistq337_done
+    inc rx328_rep
     inc $I10
     dec $I12
-    goto rxenumcharlistq314_loop
-  rxenumcharlistq314_done:
-    lt rx305_rep, 1, rx305_fail
-    add rx305_pos, rx305_pos, rx305_rep
+    goto rxenumcharlistq337_loop
+  rxenumcharlistq337_done:
+    lt rx328_rep, 1, rx328_fail
+    add rx328_pos, rx328_pos, rx328_rep
   # rx charclass_q S r 1..-1
-    sub $I10, rx305_pos, rx305_off
-    find_cclass $I11, 32, rx305_tgt, $I10, rx305_eos
+    sub $I10, rx328_pos, rx328_off
+    find_cclass $I11, 32, rx328_tgt, $I10, rx328_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx305_fail
-    add rx305_pos, rx305_off, $I11
-    set_addr $I10, rxquantr313_done
-    (rx305_rep) = rx305_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr313_done
-    rx305_cur."!mark_push"(rx305_rep, rx305_pos, $I10)
-    goto rxquantr313_loop
-  rxquantr313_done:
-    set_addr $I10, rxcap_315_fail
-    ($I12, $I11) = rx305_cur."!mark_peek"($I10)
-    rx305_cur."!cursor_pos"($I11)
-    ($P10) = rx305_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx305_pos, "")
-    rx305_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx328_fail
+    add rx328_pos, rx328_off, $I11
+    set_addr $I10, rxquantr336_done
+    (rx328_rep) = rx328_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr336_done
+    rx328_cur."!mark_push"(rx328_rep, rx328_pos, $I10)
+    goto rxquantr336_loop
+  rxquantr336_done:
+    set_addr $I10, rxcap_338_fail
+    ($I12, $I11) = rx328_cur."!mark_peek"($I10)
+    rx328_cur."!cursor_pos"($I11)
+    ($P10) = rx328_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx328_pos, "")
+    rx328_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("key")
-    goto rxcap_315_done
-  rxcap_315_fail:
-    goto rx305_fail
-  rxcap_315_done:
-    set_addr $I10, rxquantr310_done
-    (rx305_rep) = rx305_cur."!mark_commit"($I10)
-  rxquantr310_done:
-  # rx pass
-    rx305_cur."!cursor_pass"(rx305_pos, "metachar:sym<{*}>")
-    if_null rx305_debug, debug_324
-    rx305_cur."!cursor_debug"("PASS", "metachar:sym<{*}>", " at pos=", rx305_pos)
-  debug_324:
-    .return (rx305_cur)
-  rx305_restart:
-    if_null rx305_debug, debug_325
-    rx305_cur."!cursor_debug"("NEXT", "metachar:sym<{*}>")
-  debug_325:
-  rx305_fail:
-    (rx305_rep, rx305_pos, $I10, $P10) = rx305_cur."!mark_fail"(0)
-    lt rx305_pos, -1, rx305_done
-    eq rx305_pos, -1, rx305_fail
-    jump $I10
-  rx305_done:
-    rx305_cur."!cursor_fail"()
-    if_null rx305_debug, debug_326
-    rx305_cur."!cursor_debug"("FAIL", "metachar:sym<{*}>")
-  debug_326:
-    .return (rx305_cur)
+    goto rxcap_338_done
+  rxcap_338_fail:
+    goto rx328_fail
+  rxcap_338_done:
+    set_addr $I10, rxquantr333_done
+    (rx328_rep) = rx328_cur."!mark_commit"($I10)
+  rxquantr333_done:
+.annotate 'line', 113
+  # rx pass
+    rx328_cur."!cursor_pass"(rx328_pos, "metachar:sym<{*}>")
+    if_null rx328_debug, debug_346
+    rx328_cur."!cursor_debug"("PASS", "metachar:sym<{*}>", " at pos=", rx328_pos)
+  debug_346:
+    .return (rx328_cur)
+  rx328_restart:
+.annotate 'line', 3
+    if_null rx328_debug, debug_347
+    rx328_cur."!cursor_debug"("NEXT", "metachar:sym<{*}>")
+  debug_347:
+  rx328_fail:
+    (rx328_rep, rx328_pos, $I10, $P10) = rx328_cur."!mark_fail"(0)
+    lt rx328_pos, -1, rx328_done
+    eq rx328_pos, -1, rx328_fail
+    jump $I10
+  rx328_done:
+    rx328_cur."!cursor_fail"()
+    if_null rx328_debug, debug_348
+    rx328_cur."!cursor_debug"("FAIL", "metachar:sym<{*}>")
+  debug_348:
+    .return (rx328_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<{*}>"  :subid("90_1283975941.34404") :method
-.annotate 'line', 0
-    new $P307, "ResizablePMCArray"
-    push $P307, "{*}"
-    .return ($P307)
+.sub "!PREFIX__metachar:sym<{*}>"  :subid("96_1284728471.30547") :method
+.annotate 'line', 3
+    new $P330, "ResizablePMCArray"
+    push $P330, "{*}"
+    .return ($P330)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<assert>"  :subid("91_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx317_tgt
-    .local int rx317_pos
-    .local int rx317_off
-    .local int rx317_eos
-    .local int rx317_rep
-    .local pmc rx317_cur
-    .local pmc rx317_debug
-    (rx317_cur, rx317_pos, rx317_tgt, $I10) = self."!cursor_start"()
-    getattribute rx317_debug, rx317_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx317_cur
-    .local pmc match
-    .lex "$/", match
-    length rx317_eos, rx317_tgt
-    gt rx317_pos, rx317_eos, rx317_done
-    set rx317_off, 0
-    lt rx317_pos, 2, rx317_start
-    sub rx317_off, rx317_pos, 1
-    substr rx317_tgt, rx317_tgt, rx317_off
-  rx317_start:
-    eq $I10, 1, rx317_restart
-    if_null rx317_debug, debug_327
-    rx317_cur."!cursor_debug"("START", "metachar:sym<assert>")
-  debug_327:
+.sub "metachar:sym<assert>"  :subid("97_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx340_tgt
+    .local int rx340_pos
+    .local int rx340_off
+    .local int rx340_eos
+    .local int rx340_rep
+    .local pmc rx340_cur
+    .local pmc rx340_debug
+    (rx340_cur, rx340_pos, rx340_tgt, $I10) = self."!cursor_start"()
+    getattribute rx340_debug, rx340_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx340_cur
+    .local pmc match
+    .lex "$/", match
+    length rx340_eos, rx340_tgt
+    gt rx340_pos, rx340_eos, rx340_done
+    set rx340_off, 0
+    lt rx340_pos, 2, rx340_start
+    sub rx340_off, rx340_pos, 1
+    substr rx340_tgt, rx340_tgt, rx340_off
+  rx340_start:
+    eq $I10, 1, rx340_restart
+    if_null rx340_debug, debug_349
+    rx340_cur."!cursor_debug"("START", "metachar:sym<assert>")
+  debug_349:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan321_done
-    goto rxscan321_scan
-  rxscan321_loop:
-    ($P10) = rx317_cur."from"()
-    inc $P10
-    set rx317_pos, $P10
-    ge rx317_pos, rx317_eos, rxscan321_done
-  rxscan321_scan:
-    set_addr $I10, rxscan321_loop
-    rx317_cur."!mark_push"(0, rx317_pos, $I10)
-  rxscan321_done:
+    ne $I10, -1, rxscan344_done
+    goto rxscan344_scan
+  rxscan344_loop:
+    ($P10) = rx340_cur."from"()
+    inc $P10
+    set rx340_pos, $P10
+    ge rx340_pos, rx340_eos, rxscan344_done
+  rxscan344_scan:
+    set_addr $I10, rxscan344_loop
+    rx340_cur."!mark_push"(0, rx340_pos, $I10)
+  rxscan344_done:
+.annotate 'line', 118
   # rx literal  "<"
-    add $I11, rx317_pos, 1
-    gt $I11, rx317_eos, rx317_fail
-    sub $I11, rx317_pos, rx317_off
-    ord $I11, rx317_tgt, $I11
-    ne $I11, 60, rx317_fail
-    add rx317_pos, 1
+    add $I11, rx340_pos, 1
+    gt $I11, rx340_eos, rx340_fail
+    sub $I11, rx340_pos, rx340_off
+    ord $I11, rx340_tgt, $I11
+    ne $I11, 60, rx340_fail
+    add rx340_pos, 1
   # rx subrule "assertion" subtype=capture negate=
-    rx317_cur."!cursor_pos"(rx317_pos)
-    $P10 = rx317_cur."assertion"()
-    unless $P10, rx317_fail
-    rx317_cur."!mark_push"(0, -1, 0, $P10)
+    rx340_cur."!cursor_pos"(rx340_pos)
+    $P10 = rx340_cur."assertion"()
+    unless $P10, rx340_fail
+    rx340_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx317_pos = $P10."pos"()
-  alt322_0:
-    set_addr $I10, alt322_1
-    rx317_cur."!mark_push"(0, rx317_pos, $I10)
+    rx340_pos = $P10."pos"()
+  alt345_0:
+.annotate 'line', 119
+    set_addr $I10, alt345_1
+    rx340_cur."!mark_push"(0, rx340_pos, $I10)
   # rx literal  ">"
-    add $I11, rx317_pos, 1
-    gt $I11, rx317_eos, rx317_fail
-    sub $I11, rx317_pos, rx317_off
-    ord $I11, rx317_tgt, $I11
-    ne $I11, 62, rx317_fail
-    add rx317_pos, 1
-    goto alt322_end
-  alt322_1:
+    add $I11, rx340_pos, 1
+    gt $I11, rx340_eos, rx340_fail
+    sub $I11, rx340_pos, rx340_off
+    ord $I11, rx340_tgt, $I11
+    ne $I11, 62, rx340_fail
+    add rx340_pos, 1
+    goto alt345_end
+  alt345_1:
   # rx subrule "panic" subtype=method negate=
-    rx317_cur."!cursor_pos"(rx317_pos)
-    $P10 = rx317_cur."panic"("regex assertion not terminated by angle bracket")
-    unless $P10, rx317_fail
-    rx317_pos = $P10."pos"()
-  alt322_end:
-  # rx pass
-    rx317_cur."!cursor_pass"(rx317_pos, "metachar:sym<assert>")
-    if_null rx317_debug, debug_328
-    rx317_cur."!cursor_debug"("PASS", "metachar:sym<assert>", " at pos=", rx317_pos)
-  debug_328:
-    .return (rx317_cur)
-  rx317_restart:
-    if_null rx317_debug, debug_329
-    rx317_cur."!cursor_debug"("NEXT", "metachar:sym<assert>")
-  debug_329:
-  rx317_fail:
-    (rx317_rep, rx317_pos, $I10, $P10) = rx317_cur."!mark_fail"(0)
-    lt rx317_pos, -1, rx317_done
-    eq rx317_pos, -1, rx317_fail
-    jump $I10
-  rx317_done:
-    rx317_cur."!cursor_fail"()
-    if_null rx317_debug, debug_330
-    rx317_cur."!cursor_debug"("FAIL", "metachar:sym<assert>")
-  debug_330:
-    .return (rx317_cur)
+    rx340_cur."!cursor_pos"(rx340_pos)
+    $P10 = rx340_cur."panic"("regex assertion not terminated by angle bracket")
+    unless $P10, rx340_fail
+    rx340_pos = $P10."pos"()
+  alt345_end:
+.annotate 'line', 117
+  # rx pass
+    rx340_cur."!cursor_pass"(rx340_pos, "metachar:sym<assert>")
+    if_null rx340_debug, debug_350
+    rx340_cur."!cursor_debug"("PASS", "metachar:sym<assert>", " at pos=", rx340_pos)
+  debug_350:
+    .return (rx340_cur)
+  rx340_restart:
+.annotate 'line', 3
+    if_null rx340_debug, debug_351
+    rx340_cur."!cursor_debug"("NEXT", "metachar:sym<assert>")
+  debug_351:
+  rx340_fail:
+    (rx340_rep, rx340_pos, $I10, $P10) = rx340_cur."!mark_fail"(0)
+    lt rx340_pos, -1, rx340_done
+    eq rx340_pos, -1, rx340_fail
+    jump $I10
+  rx340_done:
+    rx340_cur."!cursor_fail"()
+    if_null rx340_debug, debug_352
+    rx340_cur."!cursor_debug"("FAIL", "metachar:sym<assert>")
+  debug_352:
+    .return (rx340_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<assert>"  :subid("92_1283975941.34404") :method
-.annotate 'line', 0
-    $P319 = self."!PREFIX__!subrule"("assertion", "<")
-    new $P320, "ResizablePMCArray"
-    push $P320, $P319
-    .return ($P320)
+.sub "!PREFIX__metachar:sym<assert>"  :subid("98_1284728471.30547") :method
+.annotate 'line', 3
+    $P342 = self."!PREFIX__!subrule"("assertion", "<")
+    new $P343, "ResizablePMCArray"
+    push $P343, $P342
+    .return ($P343)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<var>"  :subid("93_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx324_tgt
-    .local int rx324_pos
-    .local int rx324_off
-    .local int rx324_eos
-    .local int rx324_rep
-    .local pmc rx324_cur
-    .local pmc rx324_debug
-    (rx324_cur, rx324_pos, rx324_tgt, $I10) = self."!cursor_start"()
-    rx324_cur."!cursor_caparray"("quantified_atom")
-    getattribute rx324_debug, rx324_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx324_cur
-    .local pmc match
-    .lex "$/", match
-    length rx324_eos, rx324_tgt
-    gt rx324_pos, rx324_eos, rx324_done
-    set rx324_off, 0
-    lt rx324_pos, 2, rx324_start
-    sub rx324_off, rx324_pos, 1
-    substr rx324_tgt, rx324_tgt, rx324_off
-  rx324_start:
-    eq $I10, 1, rx324_restart
-    if_null rx324_debug, debug_331
-    rx324_cur."!cursor_debug"("START", "metachar:sym<var>")
-  debug_331:
+.sub "metachar:sym<var>"  :subid("99_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx347_tgt
+    .local int rx347_pos
+    .local int rx347_off
+    .local int rx347_eos
+    .local int rx347_rep
+    .local pmc rx347_cur
+    .local pmc rx347_debug
+    (rx347_cur, rx347_pos, rx347_tgt, $I10) = self."!cursor_start"()
+    rx347_cur."!cursor_caparray"("quantified_atom")
+    getattribute rx347_debug, rx347_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx347_cur
+    .local pmc match
+    .lex "$/", match
+    length rx347_eos, rx347_tgt
+    gt rx347_pos, rx347_eos, rx347_done
+    set rx347_off, 0
+    lt rx347_pos, 2, rx347_start
+    sub rx347_off, rx347_pos, 1
+    substr rx347_tgt, rx347_tgt, rx347_off
+  rx347_start:
+    eq $I10, 1, rx347_restart
+    if_null rx347_debug, debug_353
+    rx347_cur."!cursor_debug"("START", "metachar:sym<var>")
+  debug_353:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan327_done
-    goto rxscan327_scan
-  rxscan327_loop:
-    ($P10) = rx324_cur."from"()
-    inc $P10
-    set rx324_pos, $P10
-    ge rx324_pos, rx324_eos, rxscan327_done
-  rxscan327_scan:
-    set_addr $I10, rxscan327_loop
-    rx324_cur."!mark_push"(0, rx324_pos, $I10)
-  rxscan327_done:
-  alt328_0:
-    set_addr $I10, alt328_1
-    rx324_cur."!mark_push"(0, rx324_pos, $I10)
+    ne $I10, -1, rxscan350_done
+    goto rxscan350_scan
+  rxscan350_loop:
+    ($P10) = rx347_cur."from"()
+    inc $P10
+    set rx347_pos, $P10
+    ge rx347_pos, rx347_eos, rxscan350_done
+  rxscan350_scan:
+    set_addr $I10, rxscan350_loop
+    rx347_cur."!mark_push"(0, rx347_pos, $I10)
+  rxscan350_done:
+  alt351_0:
+.annotate 'line', 123
+    set_addr $I10, alt351_1
+    rx347_cur."!mark_push"(0, rx347_pos, $I10)
+.annotate 'line', 124
   # rx literal  "$<"
-    add $I11, rx324_pos, 2
-    gt $I11, rx324_eos, rx324_fail
-    sub $I11, rx324_pos, rx324_off
-    substr $S10, rx324_tgt, $I11, 2
-    ne $S10, "$<", rx324_fail
-    add rx324_pos, 2
+    add $I11, rx347_pos, 2
+    gt $I11, rx347_eos, rx347_fail
+    sub $I11, rx347_pos, rx347_off
+    substr $S10, rx347_tgt, $I11, 2
+    ne $S10, "$<", rx347_fail
+    add rx347_pos, 2
   # rx subcapture "name"
-    set_addr $I10, rxcap_330_fail
-    rx324_cur."!mark_push"(0, rx324_pos, $I10)
+    set_addr $I10, rxcap_353_fail
+    rx347_cur."!mark_push"(0, rx347_pos, $I10)
   # rx enumcharlist_q negate=1  r 1..-1
-    sub $I10, rx324_pos, rx324_off
-    set rx324_rep, 0
-    sub $I12, rx324_eos, rx324_pos
-  rxenumcharlistq329_loop:
-    le $I12, 0, rxenumcharlistq329_done
-    substr $S10, rx324_tgt, $I10, 1
+    sub $I10, rx347_pos, rx347_off
+    set rx347_rep, 0
+    sub $I12, rx347_eos, rx347_pos
+  rxenumcharlistq352_loop:
+    le $I12, 0, rxenumcharlistq352_done
+    substr $S10, rx347_tgt, $I10, 1
     index $I11, ">", $S10
-    ge $I11, 0, rxenumcharlistq329_done
-    inc rx324_rep
+    ge $I11, 0, rxenumcharlistq352_done
+    inc rx347_rep
     inc $I10
     dec $I12
-    goto rxenumcharlistq329_loop
-  rxenumcharlistq329_done:
-    lt rx324_rep, 1, rx324_fail
-    add rx324_pos, rx324_pos, rx324_rep
-    set_addr $I10, rxcap_330_fail
-    ($I12, $I11) = rx324_cur."!mark_peek"($I10)
-    rx324_cur."!cursor_pos"($I11)
-    ($P10) = rx324_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx324_pos, "")
-    rx324_cur."!mark_push"(0, -1, 0, $P10)
+    goto rxenumcharlistq352_loop
+  rxenumcharlistq352_done:
+    lt rx347_rep, 1, rx347_fail
+    add rx347_pos, rx347_pos, rx347_rep
+    set_addr $I10, rxcap_353_fail
+    ($I12, $I11) = rx347_cur."!mark_peek"($I10)
+    rx347_cur."!cursor_pos"($I11)
+    ($P10) = rx347_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx347_pos, "")
+    rx347_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    goto rxcap_330_done
-  rxcap_330_fail:
-    goto rx324_fail
-  rxcap_330_done:
+    goto rxcap_353_done
+  rxcap_353_fail:
+    goto rx347_fail
+  rxcap_353_done:
   # rx literal  ">"
-    add $I11, rx324_pos, 1
-    gt $I11, rx324_eos, rx324_fail
-    sub $I11, rx324_pos, rx324_off
-    ord $I11, rx324_tgt, $I11
-    ne $I11, 62, rx324_fail
-    add rx324_pos, 1
-    goto alt328_end
-  alt328_1:
+    add $I11, rx347_pos, 1
+    gt $I11, rx347_eos, rx347_fail
+    sub $I11, rx347_pos, rx347_off
+    ord $I11, rx347_tgt, $I11
+    ne $I11, 62, rx347_fail
+    add rx347_pos, 1
+    goto alt351_end
+  alt351_1:
+.annotate 'line', 125
   # rx literal  "$"
-    add $I11, rx324_pos, 1
-    gt $I11, rx324_eos, rx324_fail
-    sub $I11, rx324_pos, rx324_off
-    ord $I11, rx324_tgt, $I11
-    ne $I11, 36, rx324_fail
-    add rx324_pos, 1
+    add $I11, rx347_pos, 1
+    gt $I11, rx347_eos, rx347_fail
+    sub $I11, rx347_pos, rx347_off
+    ord $I11, rx347_tgt, $I11
+    ne $I11, 36, rx347_fail
+    add rx347_pos, 1
   # rx subcapture "pos"
-    set_addr $I10, rxcap_331_fail
-    rx324_cur."!mark_push"(0, rx324_pos, $I10)
+    set_addr $I10, rxcap_354_fail
+    rx347_cur."!mark_push"(0, rx347_pos, $I10)
   # rx charclass_q d r 1..-1
-    sub $I10, rx324_pos, rx324_off
-    find_not_cclass $I11, 8, rx324_tgt, $I10, rx324_eos
+    sub $I10, rx347_pos, rx347_off
+    find_not_cclass $I11, 8, rx347_tgt, $I10, rx347_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx324_fail
-    add rx324_pos, rx324_off, $I11
-    set_addr $I10, rxcap_331_fail
-    ($I12, $I11) = rx324_cur."!mark_peek"($I10)
-    rx324_cur."!cursor_pos"($I11)
-    ($P10) = rx324_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx324_pos, "")
-    rx324_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx347_fail
+    add rx347_pos, rx347_off, $I11
+    set_addr $I10, rxcap_354_fail
+    ($I12, $I11) = rx347_cur."!mark_peek"($I10)
+    rx347_cur."!cursor_pos"($I11)
+    ($P10) = rx347_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx347_pos, "")
+    rx347_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pos")
-    goto rxcap_331_done
-  rxcap_331_fail:
-    goto rx324_fail
-  rxcap_331_done:
-  alt328_end:
-  # rx rxquantr332 ** 0..1
-    set_addr $I10, rxquantr332_done
-    rx324_cur."!mark_push"(0, rx324_pos, $I10)
-  rxquantr332_loop:
+    goto rxcap_354_done
+  rxcap_354_fail:
+    goto rx347_fail
+  rxcap_354_done:
+  alt351_end:
+.annotate 'line', 128
+  # rx rxquantr355 ** 0..1
+    set_addr $I10, rxquantr355_done
+    rx347_cur."!mark_push"(0, rx347_pos, $I10)
+  rxquantr355_loop:
   # rx subrule "ws" subtype=method negate=
-    rx324_cur."!cursor_pos"(rx324_pos)
-    $P10 = rx324_cur."ws"()
-    unless $P10, rx324_fail
-    rx324_pos = $P10."pos"()
+    rx347_cur."!cursor_pos"(rx347_pos)
+    $P10 = rx347_cur."ws"()
+    unless $P10, rx347_fail
+    rx347_pos = $P10."pos"()
   # rx literal  "="
-    add $I11, rx324_pos, 1
-    gt $I11, rx324_eos, rx324_fail
-    sub $I11, rx324_pos, rx324_off
-    ord $I11, rx324_tgt, $I11
-    ne $I11, 61, rx324_fail
-    add rx324_pos, 1
+    add $I11, rx347_pos, 1
+    gt $I11, rx347_eos, rx347_fail
+    sub $I11, rx347_pos, rx347_off
+    ord $I11, rx347_tgt, $I11
+    ne $I11, 61, rx347_fail
+    add rx347_pos, 1
   # rx subrule "ws" subtype=method negate=
-    rx324_cur."!cursor_pos"(rx324_pos)
-    $P10 = rx324_cur."ws"()
-    unless $P10, rx324_fail
-    rx324_pos = $P10."pos"()
+    rx347_cur."!cursor_pos"(rx347_pos)
+    $P10 = rx347_cur."ws"()
+    unless $P10, rx347_fail
+    rx347_pos = $P10."pos"()
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx324_cur."!cursor_pos"(rx324_pos)
-    $P10 = rx324_cur."quantified_atom"()
-    unless $P10, rx324_fail
-    rx324_cur."!mark_push"(0, -1, 0, $P10)
+    rx347_cur."!cursor_pos"(rx347_pos)
+    $P10 = rx347_cur."quantified_atom"()
+    unless $P10, rx347_fail
+    rx347_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quantified_atom")
-    rx324_pos = $P10."pos"()
-    set_addr $I10, rxquantr332_done
-    (rx324_rep) = rx324_cur."!mark_commit"($I10)
-  rxquantr332_done:
-  # rx pass
-    rx324_cur."!cursor_pass"(rx324_pos, "metachar:sym<var>")
-    if_null rx324_debug, debug_332
-    rx324_cur."!cursor_debug"("PASS", "metachar:sym<var>", " at pos=", rx324_pos)
-  debug_332:
-    .return (rx324_cur)
-  rx324_restart:
-    if_null rx324_debug, debug_333
-    rx324_cur."!cursor_debug"("NEXT", "metachar:sym<var>")
-  debug_333:
-  rx324_fail:
-    (rx324_rep, rx324_pos, $I10, $P10) = rx324_cur."!mark_fail"(0)
-    lt rx324_pos, -1, rx324_done
-    eq rx324_pos, -1, rx324_fail
-    jump $I10
-  rx324_done:
-    rx324_cur."!cursor_fail"()
-    if_null rx324_debug, debug_334
-    rx324_cur."!cursor_debug"("FAIL", "metachar:sym<var>")
-  debug_334:
-    .return (rx324_cur)
+    rx347_pos = $P10."pos"()
+    set_addr $I10, rxquantr355_done
+    (rx347_rep) = rx347_cur."!mark_commit"($I10)
+  rxquantr355_done:
+.annotate 'line', 122
+  # rx pass
+    rx347_cur."!cursor_pass"(rx347_pos, "metachar:sym<var>")
+    if_null rx347_debug, debug_354
+    rx347_cur."!cursor_debug"("PASS", "metachar:sym<var>", " at pos=", rx347_pos)
+  debug_354:
+    .return (rx347_cur)
+  rx347_restart:
+.annotate 'line', 3
+    if_null rx347_debug, debug_355
+    rx347_cur."!cursor_debug"("NEXT", "metachar:sym<var>")
+  debug_355:
+  rx347_fail:
+    (rx347_rep, rx347_pos, $I10, $P10) = rx347_cur."!mark_fail"(0)
+    lt rx347_pos, -1, rx347_done
+    eq rx347_pos, -1, rx347_fail
+    jump $I10
+  rx347_done:
+    rx347_cur."!cursor_fail"()
+    if_null rx347_debug, debug_356
+    rx347_cur."!cursor_debug"("FAIL", "metachar:sym<var>")
+  debug_356:
+    .return (rx347_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<var>"  :subid("94_1283975941.34404") :method
-.annotate 'line', 0
-    new $P326, "ResizablePMCArray"
-    push $P326, "$"
-    push $P326, "$<"
-    .return ($P326)
+.sub "!PREFIX__metachar:sym<var>"  :subid("100_1284728471.30547") :method
+.annotate 'line', 3
+    new $P349, "ResizablePMCArray"
+    push $P349, "$"
+    push $P349, "$<"
+    .return ($P349)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<PIR>"  :subid("95_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx334_tgt
-    .local int rx334_pos
-    .local int rx334_off
-    .local int rx334_eos
-    .local int rx334_rep
-    .local pmc rx334_cur
-    .local pmc rx334_debug
-    (rx334_cur, rx334_pos, rx334_tgt, $I10) = self."!cursor_start"()
-    getattribute rx334_debug, rx334_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx334_cur
-    .local pmc match
-    .lex "$/", match
-    length rx334_eos, rx334_tgt
-    gt rx334_pos, rx334_eos, rx334_done
-    set rx334_off, 0
-    lt rx334_pos, 2, rx334_start
-    sub rx334_off, rx334_pos, 1
-    substr rx334_tgt, rx334_tgt, rx334_off
-  rx334_start:
-    eq $I10, 1, rx334_restart
-    if_null rx334_debug, debug_335
-    rx334_cur."!cursor_debug"("START", "metachar:sym<PIR>")
-  debug_335:
+.sub "metachar:sym<PIR>"  :subid("101_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx357_tgt
+    .local int rx357_pos
+    .local int rx357_off
+    .local int rx357_eos
+    .local int rx357_rep
+    .local pmc rx357_cur
+    .local pmc rx357_debug
+    (rx357_cur, rx357_pos, rx357_tgt, $I10) = self."!cursor_start"()
+    getattribute rx357_debug, rx357_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx357_cur
+    .local pmc match
+    .lex "$/", match
+    length rx357_eos, rx357_tgt
+    gt rx357_pos, rx357_eos, rx357_done
+    set rx357_off, 0
+    lt rx357_pos, 2, rx357_start
+    sub rx357_off, rx357_pos, 1
+    substr rx357_tgt, rx357_tgt, rx357_off
+  rx357_start:
+    eq $I10, 1, rx357_restart
+    if_null rx357_debug, debug_357
+    rx357_cur."!cursor_debug"("START", "metachar:sym<PIR>")
+  debug_357:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan337_done
-    goto rxscan337_scan
-  rxscan337_loop:
-    ($P10) = rx334_cur."from"()
-    inc $P10
-    set rx334_pos, $P10
-    ge rx334_pos, rx334_eos, rxscan337_done
-  rxscan337_scan:
-    set_addr $I10, rxscan337_loop
-    rx334_cur."!mark_push"(0, rx334_pos, $I10)
-  rxscan337_done:
+    ne $I10, -1, rxscan360_done
+    goto rxscan360_scan
+  rxscan360_loop:
+    ($P10) = rx357_cur."from"()
+    inc $P10
+    set rx357_pos, $P10
+    ge rx357_pos, rx357_eos, rxscan360_done
+  rxscan360_scan:
+    set_addr $I10, rxscan360_loop
+    rx357_cur."!mark_push"(0, rx357_pos, $I10)
+  rxscan360_done:
+.annotate 'line', 132
   # rx literal  ":PIR{{"
-    add $I11, rx334_pos, 6
-    gt $I11, rx334_eos, rx334_fail
-    sub $I11, rx334_pos, rx334_off
-    substr $S10, rx334_tgt, $I11, 6
-    ne $S10, ":PIR{{", rx334_fail
-    add rx334_pos, 6
+    add $I11, rx357_pos, 6
+    gt $I11, rx357_eos, rx357_fail
+    sub $I11, rx357_pos, rx357_off
+    substr $S10, rx357_tgt, $I11, 6
+    ne $S10, ":PIR{{", rx357_fail
+    add rx357_pos, 6
   # rx subcapture "pir"
-    set_addr $I10, rxcap_340_fail
-    rx334_cur."!mark_push"(0, rx334_pos, $I10)
-  # rx rxquantf338 ** 0..*
-    set_addr $I10, rxquantf338_loop
-    rx334_cur."!mark_push"(0, rx334_pos, $I10)
-    goto rxquantf338_done
-  rxquantf338_loop:
+    set_addr $I10, rxcap_363_fail
+    rx357_cur."!mark_push"(0, rx357_pos, $I10)
+  # rx rxquantf361 ** 0..*
+    set_addr $I10, rxquantf361_loop
+    rx357_cur."!mark_push"(0, rx357_pos, $I10)
+    goto rxquantf361_done
+  rxquantf361_loop:
   # rx charclass .
-    ge rx334_pos, rx334_eos, rx334_fail
-    inc rx334_pos
-    set_addr $I10, rxquantf338_loop
-    rx334_cur."!mark_push"(rx334_rep, rx334_pos, $I10)
-  rxquantf338_done:
-    set_addr $I10, rxcap_340_fail
-    ($I12, $I11) = rx334_cur."!mark_peek"($I10)
-    rx334_cur."!cursor_pos"($I11)
-    ($P10) = rx334_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx334_pos, "")
-    rx334_cur."!mark_push"(0, -1, 0, $P10)
+    ge rx357_pos, rx357_eos, rx357_fail
+    inc rx357_pos
+    set_addr $I10, rxquantf361_loop
+    rx357_cur."!mark_push"(rx357_rep, rx357_pos, $I10)
+  rxquantf361_done:
+    set_addr $I10, rxcap_363_fail
+    ($I12, $I11) = rx357_cur."!mark_peek"($I10)
+    rx357_cur."!cursor_pos"($I11)
+    ($P10) = rx357_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx357_pos, "")
+    rx357_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pir")
-    goto rxcap_340_done
-  rxcap_340_fail:
-    goto rx334_fail
-  rxcap_340_done:
+    goto rxcap_363_done
+  rxcap_363_fail:
+    goto rx357_fail
+  rxcap_363_done:
   # rx literal  "}}"
-    add $I11, rx334_pos, 2
-    gt $I11, rx334_eos, rx334_fail
-    sub $I11, rx334_pos, rx334_off
-    substr $S10, rx334_tgt, $I11, 2
-    ne $S10, "}}", rx334_fail
-    add rx334_pos, 2
-  # rx pass
-    rx334_cur."!cursor_pass"(rx334_pos, "metachar:sym<PIR>")
-    if_null rx334_debug, debug_336
-    rx334_cur."!cursor_debug"("PASS", "metachar:sym<PIR>", " at pos=", rx334_pos)
-  debug_336:
-    .return (rx334_cur)
-  rx334_restart:
-    if_null rx334_debug, debug_337
-    rx334_cur."!cursor_debug"("NEXT", "metachar:sym<PIR>")
-  debug_337:
-  rx334_fail:
-    (rx334_rep, rx334_pos, $I10, $P10) = rx334_cur."!mark_fail"(0)
-    lt rx334_pos, -1, rx334_done
-    eq rx334_pos, -1, rx334_fail
-    jump $I10
-  rx334_done:
-    rx334_cur."!cursor_fail"()
-    if_null rx334_debug, debug_338
-    rx334_cur."!cursor_debug"("FAIL", "metachar:sym<PIR>")
-  debug_338:
-    .return (rx334_cur)
+    add $I11, rx357_pos, 2
+    gt $I11, rx357_eos, rx357_fail
+    sub $I11, rx357_pos, rx357_off
+    substr $S10, rx357_tgt, $I11, 2
+    ne $S10, "}}", rx357_fail
+    add rx357_pos, 2
+.annotate 'line', 131
+  # rx pass
+    rx357_cur."!cursor_pass"(rx357_pos, "metachar:sym<PIR>")
+    if_null rx357_debug, debug_358
+    rx357_cur."!cursor_debug"("PASS", "metachar:sym<PIR>", " at pos=", rx357_pos)
+  debug_358:
+    .return (rx357_cur)
+  rx357_restart:
+.annotate 'line', 3
+    if_null rx357_debug, debug_359
+    rx357_cur."!cursor_debug"("NEXT", "metachar:sym<PIR>")
+  debug_359:
+  rx357_fail:
+    (rx357_rep, rx357_pos, $I10, $P10) = rx357_cur."!mark_fail"(0)
+    lt rx357_pos, -1, rx357_done
+    eq rx357_pos, -1, rx357_fail
+    jump $I10
+  rx357_done:
+    rx357_cur."!cursor_fail"()
+    if_null rx357_debug, debug_360
+    rx357_cur."!cursor_debug"("FAIL", "metachar:sym<PIR>")
+  debug_360:
+    .return (rx357_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<PIR>"  :subid("96_1283975941.34404") :method
-.annotate 'line', 0
-    new $P336, "ResizablePMCArray"
-    push $P336, ":PIR{{"
-    .return ($P336)
+.sub "!PREFIX__metachar:sym<PIR>"  :subid("102_1284728471.30547") :method
+.annotate 'line', 3
+    new $P359, "ResizablePMCArray"
+    push $P359, ":PIR{{"
+    .return ($P359)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash"  :subid("97_1283975941.34404") :method
-.annotate 'line', 0
-    $P342 = self."!protoregex"("backslash")
-    .return ($P342)
+.sub "backslash"  :subid("103_1284728471.30547") :method
+.annotate 'line', 135
+    $P365 = self."!protoregex"("backslash")
+    .return ($P365)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash"  :subid("98_1283975941.34404") :method
-.annotate 'line', 0
-    $P344 = self."!PREFIX__!protoregex"("backslash")
-    .return ($P344)
+.sub "!PREFIX__backslash"  :subid("104_1284728471.30547") :method
+.annotate 'line', 135
+    $P367 = self."!PREFIX__!protoregex"("backslash")
+    .return ($P367)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<w>"  :subid("99_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx346_tgt
-    .local int rx346_pos
-    .local int rx346_off
-    .local int rx346_eos
-    .local int rx346_rep
-    .local pmc rx346_cur
-    .local pmc rx346_debug
-    (rx346_cur, rx346_pos, rx346_tgt, $I10) = self."!cursor_start"()
-    getattribute rx346_debug, rx346_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx346_cur
-    .local pmc match
-    .lex "$/", match
-    length rx346_eos, rx346_tgt
-    gt rx346_pos, rx346_eos, rx346_done
-    set rx346_off, 0
-    lt rx346_pos, 2, rx346_start
-    sub rx346_off, rx346_pos, 1
-    substr rx346_tgt, rx346_tgt, rx346_off
-  rx346_start:
-    eq $I10, 1, rx346_restart
-    if_null rx346_debug, debug_339
-    rx346_cur."!cursor_debug"("START", "backslash:sym<w>")
-  debug_339:
+.sub "backslash:sym<w>"  :subid("105_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx369_tgt
+    .local int rx369_pos
+    .local int rx369_off
+    .local int rx369_eos
+    .local int rx369_rep
+    .local pmc rx369_cur
+    .local pmc rx369_debug
+    (rx369_cur, rx369_pos, rx369_tgt, $I10) = self."!cursor_start"()
+    getattribute rx369_debug, rx369_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx369_cur
+    .local pmc match
+    .lex "$/", match
+    length rx369_eos, rx369_tgt
+    gt rx369_pos, rx369_eos, rx369_done
+    set rx369_off, 0
+    lt rx369_pos, 2, rx369_start
+    sub rx369_off, rx369_pos, 1
+    substr rx369_tgt, rx369_tgt, rx369_off
+  rx369_start:
+    eq $I10, 1, rx369_restart
+    if_null rx369_debug, debug_361
+    rx369_cur."!cursor_debug"("START", "backslash:sym<w>")
+  debug_361:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan349_done
-    goto rxscan349_scan
-  rxscan349_loop:
-    ($P10) = rx346_cur."from"()
-    inc $P10
-    set rx346_pos, $P10
-    ge rx346_pos, rx346_eos, rxscan349_done
-  rxscan349_scan:
-    set_addr $I10, rxscan349_loop
-    rx346_cur."!mark_push"(0, rx346_pos, $I10)
-  rxscan349_done:
+    ne $I10, -1, rxscan372_done
+    goto rxscan372_scan
+  rxscan372_loop:
+    ($P10) = rx369_cur."from"()
+    inc $P10
+    set rx369_pos, $P10
+    ge rx369_pos, rx369_eos, rxscan372_done
+  rxscan372_scan:
+    set_addr $I10, rxscan372_loop
+    rx369_cur."!mark_push"(0, rx369_pos, $I10)
+  rxscan372_done:
+.annotate 'line', 136
   # rx subcapture "sym"
-    set_addr $I10, rxcap_350_fail
-    rx346_cur."!mark_push"(0, rx346_pos, $I10)
+    set_addr $I10, rxcap_373_fail
+    rx369_cur."!mark_push"(0, rx369_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx346_pos, rx346_eos, rx346_fail
-    sub $I10, rx346_pos, rx346_off
-    substr $S10, rx346_tgt, $I10, 1
+    ge rx369_pos, rx369_eos, rx369_fail
+    sub $I10, rx369_pos, rx369_off
+    substr $S10, rx369_tgt, $I10, 1
     index $I11, "dswnDSWN", $S10
-    lt $I11, 0, rx346_fail
-    inc rx346_pos
-    set_addr $I10, rxcap_350_fail
-    ($I12, $I11) = rx346_cur."!mark_peek"($I10)
-    rx346_cur."!cursor_pos"($I11)
-    ($P10) = rx346_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx346_pos, "")
-    rx346_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx369_fail
+    inc rx369_pos
+    set_addr $I10, rxcap_373_fail
+    ($I12, $I11) = rx369_cur."!mark_peek"($I10)
+    rx369_cur."!cursor_pos"($I11)
+    ($P10) = rx369_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx369_pos, "")
+    rx369_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_350_done
-  rxcap_350_fail:
-    goto rx346_fail
-  rxcap_350_done:
-  # rx pass
-    rx346_cur."!cursor_pass"(rx346_pos, "backslash:sym<w>")
-    if_null rx346_debug, debug_340
-    rx346_cur."!cursor_debug"("PASS", "backslash:sym<w>", " at pos=", rx346_pos)
-  debug_340:
-    .return (rx346_cur)
-  rx346_restart:
-    if_null rx346_debug, debug_341
-    rx346_cur."!cursor_debug"("NEXT", "backslash:sym<w>")
-  debug_341:
-  rx346_fail:
-    (rx346_rep, rx346_pos, $I10, $P10) = rx346_cur."!mark_fail"(0)
-    lt rx346_pos, -1, rx346_done
-    eq rx346_pos, -1, rx346_fail
-    jump $I10
-  rx346_done:
-    rx346_cur."!cursor_fail"()
-    if_null rx346_debug, debug_342
-    rx346_cur."!cursor_debug"("FAIL", "backslash:sym<w>")
-  debug_342:
-    .return (rx346_cur)
+    goto rxcap_373_done
+  rxcap_373_fail:
+    goto rx369_fail
+  rxcap_373_done:
+  # rx pass
+    rx369_cur."!cursor_pass"(rx369_pos, "backslash:sym<w>")
+    if_null rx369_debug, debug_362
+    rx369_cur."!cursor_debug"("PASS", "backslash:sym<w>", " at pos=", rx369_pos)
+  debug_362:
+    .return (rx369_cur)
+  rx369_restart:
+.annotate 'line', 3
+    if_null rx369_debug, debug_363
+    rx369_cur."!cursor_debug"("NEXT", "backslash:sym<w>")
+  debug_363:
+  rx369_fail:
+    (rx369_rep, rx369_pos, $I10, $P10) = rx369_cur."!mark_fail"(0)
+    lt rx369_pos, -1, rx369_done
+    eq rx369_pos, -1, rx369_fail
+    jump $I10
+  rx369_done:
+    rx369_cur."!cursor_fail"()
+    if_null rx369_debug, debug_364
+    rx369_cur."!cursor_debug"("FAIL", "backslash:sym<w>")
+  debug_364:
+    .return (rx369_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<w>"  :subid("100_1283975941.34404") :method
-.annotate 'line', 0
-    new $P348, "ResizablePMCArray"
-    push $P348, "N"
-    push $P348, "W"
-    push $P348, "S"
-    push $P348, "D"
-    push $P348, "n"
-    push $P348, "w"
-    push $P348, "s"
-    push $P348, "d"
-    .return ($P348)
+.sub "!PREFIX__backslash:sym<w>"  :subid("106_1284728471.30547") :method
+.annotate 'line', 3
+    new $P371, "ResizablePMCArray"
+    push $P371, "N"
+    push $P371, "W"
+    push $P371, "S"
+    push $P371, "D"
+    push $P371, "n"
+    push $P371, "w"
+    push $P371, "s"
+    push $P371, "d"
+    .return ($P371)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<b>"  :subid("101_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx352_tgt
-    .local int rx352_pos
-    .local int rx352_off
-    .local int rx352_eos
-    .local int rx352_rep
-    .local pmc rx352_cur
-    .local pmc rx352_debug
-    (rx352_cur, rx352_pos, rx352_tgt, $I10) = self."!cursor_start"()
-    getattribute rx352_debug, rx352_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx352_cur
-    .local pmc match
-    .lex "$/", match
-    length rx352_eos, rx352_tgt
-    gt rx352_pos, rx352_eos, rx352_done
-    set rx352_off, 0
-    lt rx352_pos, 2, rx352_start
-    sub rx352_off, rx352_pos, 1
-    substr rx352_tgt, rx352_tgt, rx352_off
-  rx352_start:
-    eq $I10, 1, rx352_restart
-    if_null rx352_debug, debug_343
-    rx352_cur."!cursor_debug"("START", "backslash:sym<b>")
-  debug_343:
+.sub "backslash:sym<b>"  :subid("107_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx375_tgt
+    .local int rx375_pos
+    .local int rx375_off
+    .local int rx375_eos
+    .local int rx375_rep
+    .local pmc rx375_cur
+    .local pmc rx375_debug
+    (rx375_cur, rx375_pos, rx375_tgt, $I10) = self."!cursor_start"()
+    getattribute rx375_debug, rx375_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx375_cur
+    .local pmc match
+    .lex "$/", match
+    length rx375_eos, rx375_tgt
+    gt rx375_pos, rx375_eos, rx375_done
+    set rx375_off, 0
+    lt rx375_pos, 2, rx375_start
+    sub rx375_off, rx375_pos, 1
+    substr rx375_tgt, rx375_tgt, rx375_off
+  rx375_start:
+    eq $I10, 1, rx375_restart
+    if_null rx375_debug, debug_365
+    rx375_cur."!cursor_debug"("START", "backslash:sym<b>")
+  debug_365:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan355_done
-    goto rxscan355_scan
-  rxscan355_loop:
-    ($P10) = rx352_cur."from"()
-    inc $P10
-    set rx352_pos, $P10
-    ge rx352_pos, rx352_eos, rxscan355_done
-  rxscan355_scan:
-    set_addr $I10, rxscan355_loop
-    rx352_cur."!mark_push"(0, rx352_pos, $I10)
-  rxscan355_done:
+    ne $I10, -1, rxscan378_done
+    goto rxscan378_scan
+  rxscan378_loop:
+    ($P10) = rx375_cur."from"()
+    inc $P10
+    set rx375_pos, $P10
+    ge rx375_pos, rx375_eos, rxscan378_done
+  rxscan378_scan:
+    set_addr $I10, rxscan378_loop
+    rx375_cur."!mark_push"(0, rx375_pos, $I10)
+  rxscan378_done:
+.annotate 'line', 137
   # rx subcapture "sym"
-    set_addr $I10, rxcap_356_fail
-    rx352_cur."!mark_push"(0, rx352_pos, $I10)
+    set_addr $I10, rxcap_379_fail
+    rx375_cur."!mark_push"(0, rx375_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx352_pos, rx352_eos, rx352_fail
-    sub $I10, rx352_pos, rx352_off
-    substr $S10, rx352_tgt, $I10, 1
+    ge rx375_pos, rx375_eos, rx375_fail
+    sub $I10, rx375_pos, rx375_off
+    substr $S10, rx375_tgt, $I10, 1
     index $I11, "bB", $S10
-    lt $I11, 0, rx352_fail
-    inc rx352_pos
-    set_addr $I10, rxcap_356_fail
-    ($I12, $I11) = rx352_cur."!mark_peek"($I10)
-    rx352_cur."!cursor_pos"($I11)
-    ($P10) = rx352_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx352_pos, "")
-    rx352_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx375_fail
+    inc rx375_pos
+    set_addr $I10, rxcap_379_fail
+    ($I12, $I11) = rx375_cur."!mark_peek"($I10)
+    rx375_cur."!cursor_pos"($I11)
+    ($P10) = rx375_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx375_pos, "")
+    rx375_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_356_done
-  rxcap_356_fail:
-    goto rx352_fail
-  rxcap_356_done:
-  # rx pass
-    rx352_cur."!cursor_pass"(rx352_pos, "backslash:sym<b>")
-    if_null rx352_debug, debug_344
-    rx352_cur."!cursor_debug"("PASS", "backslash:sym<b>", " at pos=", rx352_pos)
-  debug_344:
-    .return (rx352_cur)
-  rx352_restart:
-    if_null rx352_debug, debug_345
-    rx352_cur."!cursor_debug"("NEXT", "backslash:sym<b>")
-  debug_345:
-  rx352_fail:
-    (rx352_rep, rx352_pos, $I10, $P10) = rx352_cur."!mark_fail"(0)
-    lt rx352_pos, -1, rx352_done
-    eq rx352_pos, -1, rx352_fail
-    jump $I10
-  rx352_done:
-    rx352_cur."!cursor_fail"()
-    if_null rx352_debug, debug_346
-    rx352_cur."!cursor_debug"("FAIL", "backslash:sym<b>")
-  debug_346:
-    .return (rx352_cur)
+    goto rxcap_379_done
+  rxcap_379_fail:
+    goto rx375_fail
+  rxcap_379_done:
+  # rx pass
+    rx375_cur."!cursor_pass"(rx375_pos, "backslash:sym<b>")
+    if_null rx375_debug, debug_366
+    rx375_cur."!cursor_debug"("PASS", "backslash:sym<b>", " at pos=", rx375_pos)
+  debug_366:
+    .return (rx375_cur)
+  rx375_restart:
+.annotate 'line', 3
+    if_null rx375_debug, debug_367
+    rx375_cur."!cursor_debug"("NEXT", "backslash:sym<b>")
+  debug_367:
+  rx375_fail:
+    (rx375_rep, rx375_pos, $I10, $P10) = rx375_cur."!mark_fail"(0)
+    lt rx375_pos, -1, rx375_done
+    eq rx375_pos, -1, rx375_fail
+    jump $I10
+  rx375_done:
+    rx375_cur."!cursor_fail"()
+    if_null rx375_debug, debug_368
+    rx375_cur."!cursor_debug"("FAIL", "backslash:sym<b>")
+  debug_368:
+    .return (rx375_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<b>"  :subid("102_1283975941.34404") :method
-.annotate 'line', 0
-    new $P354, "ResizablePMCArray"
-    push $P354, "B"
-    push $P354, "b"
-    .return ($P354)
+.sub "!PREFIX__backslash:sym<b>"  :subid("108_1284728471.30547") :method
+.annotate 'line', 3
+    new $P377, "ResizablePMCArray"
+    push $P377, "B"
+    push $P377, "b"
+    .return ($P377)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<e>"  :subid("103_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx358_tgt
-    .local int rx358_pos
-    .local int rx358_off
-    .local int rx358_eos
-    .local int rx358_rep
-    .local pmc rx358_cur
-    .local pmc rx358_debug
-    (rx358_cur, rx358_pos, rx358_tgt, $I10) = self."!cursor_start"()
-    getattribute rx358_debug, rx358_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx358_cur
-    .local pmc match
-    .lex "$/", match
-    length rx358_eos, rx358_tgt
-    gt rx358_pos, rx358_eos, rx358_done
-    set rx358_off, 0
-    lt rx358_pos, 2, rx358_start
-    sub rx358_off, rx358_pos, 1
-    substr rx358_tgt, rx358_tgt, rx358_off
-  rx358_start:
-    eq $I10, 1, rx358_restart
-    if_null rx358_debug, debug_347
-    rx358_cur."!cursor_debug"("START", "backslash:sym<e>")
-  debug_347:
+.sub "backslash:sym<e>"  :subid("109_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx381_tgt
+    .local int rx381_pos
+    .local int rx381_off
+    .local int rx381_eos
+    .local int rx381_rep
+    .local pmc rx381_cur
+    .local pmc rx381_debug
+    (rx381_cur, rx381_pos, rx381_tgt, $I10) = self."!cursor_start"()
+    getattribute rx381_debug, rx381_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx381_cur
+    .local pmc match
+    .lex "$/", match
+    length rx381_eos, rx381_tgt
+    gt rx381_pos, rx381_eos, rx381_done
+    set rx381_off, 0
+    lt rx381_pos, 2, rx381_start
+    sub rx381_off, rx381_pos, 1
+    substr rx381_tgt, rx381_tgt, rx381_off
+  rx381_start:
+    eq $I10, 1, rx381_restart
+    if_null rx381_debug, debug_369
+    rx381_cur."!cursor_debug"("START", "backslash:sym<e>")
+  debug_369:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan361_done
-    goto rxscan361_scan
-  rxscan361_loop:
-    ($P10) = rx358_cur."from"()
-    inc $P10
-    set rx358_pos, $P10
-    ge rx358_pos, rx358_eos, rxscan361_done
-  rxscan361_scan:
-    set_addr $I10, rxscan361_loop
-    rx358_cur."!mark_push"(0, rx358_pos, $I10)
-  rxscan361_done:
+    ne $I10, -1, rxscan384_done
+    goto rxscan384_scan
+  rxscan384_loop:
+    ($P10) = rx381_cur."from"()
+    inc $P10
+    set rx381_pos, $P10
+    ge rx381_pos, rx381_eos, rxscan384_done
+  rxscan384_scan:
+    set_addr $I10, rxscan384_loop
+    rx381_cur."!mark_push"(0, rx381_pos, $I10)
+  rxscan384_done:
+.annotate 'line', 138
   # rx subcapture "sym"
-    set_addr $I10, rxcap_362_fail
-    rx358_cur."!mark_push"(0, rx358_pos, $I10)
+    set_addr $I10, rxcap_385_fail
+    rx381_cur."!mark_push"(0, rx381_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx358_pos, rx358_eos, rx358_fail
-    sub $I10, rx358_pos, rx358_off
-    substr $S10, rx358_tgt, $I10, 1
+    ge rx381_pos, rx381_eos, rx381_fail
+    sub $I10, rx381_pos, rx381_off
+    substr $S10, rx381_tgt, $I10, 1
     index $I11, "eE", $S10
-    lt $I11, 0, rx358_fail
-    inc rx358_pos
-    set_addr $I10, rxcap_362_fail
-    ($I12, $I11) = rx358_cur."!mark_peek"($I10)
-    rx358_cur."!cursor_pos"($I11)
-    ($P10) = rx358_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx358_pos, "")
-    rx358_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx381_fail
+    inc rx381_pos
+    set_addr $I10, rxcap_385_fail
+    ($I12, $I11) = rx381_cur."!mark_peek"($I10)
+    rx381_cur."!cursor_pos"($I11)
+    ($P10) = rx381_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx381_pos, "")
+    rx381_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_362_done
-  rxcap_362_fail:
-    goto rx358_fail
-  rxcap_362_done:
-  # rx pass
-    rx358_cur."!cursor_pass"(rx358_pos, "backslash:sym<e>")
-    if_null rx358_debug, debug_348
-    rx358_cur."!cursor_debug"("PASS", "backslash:sym<e>", " at pos=", rx358_pos)
-  debug_348:
-    .return (rx358_cur)
-  rx358_restart:
-    if_null rx358_debug, debug_349
-    rx358_cur."!cursor_debug"("NEXT", "backslash:sym<e>")
-  debug_349:
-  rx358_fail:
-    (rx358_rep, rx358_pos, $I10, $P10) = rx358_cur."!mark_fail"(0)
-    lt rx358_pos, -1, rx358_done
-    eq rx358_pos, -1, rx358_fail
-    jump $I10
-  rx358_done:
-    rx358_cur."!cursor_fail"()
-    if_null rx358_debug, debug_350
-    rx358_cur."!cursor_debug"("FAIL", "backslash:sym<e>")
-  debug_350:
-    .return (rx358_cur)
+    goto rxcap_385_done
+  rxcap_385_fail:
+    goto rx381_fail
+  rxcap_385_done:
+  # rx pass
+    rx381_cur."!cursor_pass"(rx381_pos, "backslash:sym<e>")
+    if_null rx381_debug, debug_370
+    rx381_cur."!cursor_debug"("PASS", "backslash:sym<e>", " at pos=", rx381_pos)
+  debug_370:
+    .return (rx381_cur)
+  rx381_restart:
+.annotate 'line', 3
+    if_null rx381_debug, debug_371
+    rx381_cur."!cursor_debug"("NEXT", "backslash:sym<e>")
+  debug_371:
+  rx381_fail:
+    (rx381_rep, rx381_pos, $I10, $P10) = rx381_cur."!mark_fail"(0)
+    lt rx381_pos, -1, rx381_done
+    eq rx381_pos, -1, rx381_fail
+    jump $I10
+  rx381_done:
+    rx381_cur."!cursor_fail"()
+    if_null rx381_debug, debug_372
+    rx381_cur."!cursor_debug"("FAIL", "backslash:sym<e>")
+  debug_372:
+    .return (rx381_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<e>"  :subid("104_1283975941.34404") :method
-.annotate 'line', 0
-    new $P360, "ResizablePMCArray"
-    push $P360, "E"
-    push $P360, "e"
-    .return ($P360)
+.sub "!PREFIX__backslash:sym<e>"  :subid("110_1284728471.30547") :method
+.annotate 'line', 3
+    new $P383, "ResizablePMCArray"
+    push $P383, "E"
+    push $P383, "e"
+    .return ($P383)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<f>"  :subid("105_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx364_tgt
-    .local int rx364_pos
-    .local int rx364_off
-    .local int rx364_eos
-    .local int rx364_rep
-    .local pmc rx364_cur
-    .local pmc rx364_debug
-    (rx364_cur, rx364_pos, rx364_tgt, $I10) = self."!cursor_start"()
-    getattribute rx364_debug, rx364_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx364_cur
-    .local pmc match
-    .lex "$/", match
-    length rx364_eos, rx364_tgt
-    gt rx364_pos, rx364_eos, rx364_done
-    set rx364_off, 0
-    lt rx364_pos, 2, rx364_start
-    sub rx364_off, rx364_pos, 1
-    substr rx364_tgt, rx364_tgt, rx364_off
-  rx364_start:
-    eq $I10, 1, rx364_restart
-    if_null rx364_debug, debug_351
-    rx364_cur."!cursor_debug"("START", "backslash:sym<f>")
-  debug_351:
+.sub "backslash:sym<f>"  :subid("111_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx387_tgt
+    .local int rx387_pos
+    .local int rx387_off
+    .local int rx387_eos
+    .local int rx387_rep
+    .local pmc rx387_cur
+    .local pmc rx387_debug
+    (rx387_cur, rx387_pos, rx387_tgt, $I10) = self."!cursor_start"()
+    getattribute rx387_debug, rx387_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx387_cur
+    .local pmc match
+    .lex "$/", match
+    length rx387_eos, rx387_tgt
+    gt rx387_pos, rx387_eos, rx387_done
+    set rx387_off, 0
+    lt rx387_pos, 2, rx387_start
+    sub rx387_off, rx387_pos, 1
+    substr rx387_tgt, rx387_tgt, rx387_off
+  rx387_start:
+    eq $I10, 1, rx387_restart
+    if_null rx387_debug, debug_373
+    rx387_cur."!cursor_debug"("START", "backslash:sym<f>")
+  debug_373:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan367_done
-    goto rxscan367_scan
-  rxscan367_loop:
-    ($P10) = rx364_cur."from"()
-    inc $P10
-    set rx364_pos, $P10
-    ge rx364_pos, rx364_eos, rxscan367_done
-  rxscan367_scan:
-    set_addr $I10, rxscan367_loop
-    rx364_cur."!mark_push"(0, rx364_pos, $I10)
-  rxscan367_done:
+    ne $I10, -1, rxscan390_done
+    goto rxscan390_scan
+  rxscan390_loop:
+    ($P10) = rx387_cur."from"()
+    inc $P10
+    set rx387_pos, $P10
+    ge rx387_pos, rx387_eos, rxscan390_done
+  rxscan390_scan:
+    set_addr $I10, rxscan390_loop
+    rx387_cur."!mark_push"(0, rx387_pos, $I10)
+  rxscan390_done:
+.annotate 'line', 139
   # rx subcapture "sym"
-    set_addr $I10, rxcap_368_fail
-    rx364_cur."!mark_push"(0, rx364_pos, $I10)
+    set_addr $I10, rxcap_391_fail
+    rx387_cur."!mark_push"(0, rx387_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx364_pos, rx364_eos, rx364_fail
-    sub $I10, rx364_pos, rx364_off
-    substr $S10, rx364_tgt, $I10, 1
+    ge rx387_pos, rx387_eos, rx387_fail
+    sub $I10, rx387_pos, rx387_off
+    substr $S10, rx387_tgt, $I10, 1
     index $I11, "fF", $S10
-    lt $I11, 0, rx364_fail
-    inc rx364_pos
-    set_addr $I10, rxcap_368_fail
-    ($I12, $I11) = rx364_cur."!mark_peek"($I10)
-    rx364_cur."!cursor_pos"($I11)
-    ($P10) = rx364_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx364_pos, "")
-    rx364_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx387_fail
+    inc rx387_pos
+    set_addr $I10, rxcap_391_fail
+    ($I12, $I11) = rx387_cur."!mark_peek"($I10)
+    rx387_cur."!cursor_pos"($I11)
+    ($P10) = rx387_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx387_pos, "")
+    rx387_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_368_done
-  rxcap_368_fail:
-    goto rx364_fail
-  rxcap_368_done:
-  # rx pass
-    rx364_cur."!cursor_pass"(rx364_pos, "backslash:sym<f>")
-    if_null rx364_debug, debug_352
-    rx364_cur."!cursor_debug"("PASS", "backslash:sym<f>", " at pos=", rx364_pos)
-  debug_352:
-    .return (rx364_cur)
-  rx364_restart:
-    if_null rx364_debug, debug_353
-    rx364_cur."!cursor_debug"("NEXT", "backslash:sym<f>")
-  debug_353:
-  rx364_fail:
-    (rx364_rep, rx364_pos, $I10, $P10) = rx364_cur."!mark_fail"(0)
-    lt rx364_pos, -1, rx364_done
-    eq rx364_pos, -1, rx364_fail
-    jump $I10
-  rx364_done:
-    rx364_cur."!cursor_fail"()
-    if_null rx364_debug, debug_354
-    rx364_cur."!cursor_debug"("FAIL", "backslash:sym<f>")
-  debug_354:
-    .return (rx364_cur)
+    goto rxcap_391_done
+  rxcap_391_fail:
+    goto rx387_fail
+  rxcap_391_done:
+  # rx pass
+    rx387_cur."!cursor_pass"(rx387_pos, "backslash:sym<f>")
+    if_null rx387_debug, debug_374
+    rx387_cur."!cursor_debug"("PASS", "backslash:sym<f>", " at pos=", rx387_pos)
+  debug_374:
+    .return (rx387_cur)
+  rx387_restart:
+.annotate 'line', 3
+    if_null rx387_debug, debug_375
+    rx387_cur."!cursor_debug"("NEXT", "backslash:sym<f>")
+  debug_375:
+  rx387_fail:
+    (rx387_rep, rx387_pos, $I10, $P10) = rx387_cur."!mark_fail"(0)
+    lt rx387_pos, -1, rx387_done
+    eq rx387_pos, -1, rx387_fail
+    jump $I10
+  rx387_done:
+    rx387_cur."!cursor_fail"()
+    if_null rx387_debug, debug_376
+    rx387_cur."!cursor_debug"("FAIL", "backslash:sym<f>")
+  debug_376:
+    .return (rx387_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<f>"  :subid("106_1283975941.34404") :method
-.annotate 'line', 0
-    new $P366, "ResizablePMCArray"
-    push $P366, "F"
-    push $P366, "f"
-    .return ($P366)
+.sub "!PREFIX__backslash:sym<f>"  :subid("112_1284728471.30547") :method
+.annotate 'line', 3
+    new $P389, "ResizablePMCArray"
+    push $P389, "F"
+    push $P389, "f"
+    .return ($P389)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<h>"  :subid("107_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx370_tgt
-    .local int rx370_pos
-    .local int rx370_off
-    .local int rx370_eos
-    .local int rx370_rep
-    .local pmc rx370_cur
-    .local pmc rx370_debug
-    (rx370_cur, rx370_pos, rx370_tgt, $I10) = self."!cursor_start"()
-    getattribute rx370_debug, rx370_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx370_cur
-    .local pmc match
-    .lex "$/", match
-    length rx370_eos, rx370_tgt
-    gt rx370_pos, rx370_eos, rx370_done
-    set rx370_off, 0
-    lt rx370_pos, 2, rx370_start
-    sub rx370_off, rx370_pos, 1
-    substr rx370_tgt, rx370_tgt, rx370_off
-  rx370_start:
-    eq $I10, 1, rx370_restart
-    if_null rx370_debug, debug_355
-    rx370_cur."!cursor_debug"("START", "backslash:sym<h>")
-  debug_355:
+.sub "backslash:sym<h>"  :subid("113_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx393_tgt
+    .local int rx393_pos
+    .local int rx393_off
+    .local int rx393_eos
+    .local int rx393_rep
+    .local pmc rx393_cur
+    .local pmc rx393_debug
+    (rx393_cur, rx393_pos, rx393_tgt, $I10) = self."!cursor_start"()
+    getattribute rx393_debug, rx393_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx393_cur
+    .local pmc match
+    .lex "$/", match
+    length rx393_eos, rx393_tgt
+    gt rx393_pos, rx393_eos, rx393_done
+    set rx393_off, 0
+    lt rx393_pos, 2, rx393_start
+    sub rx393_off, rx393_pos, 1
+    substr rx393_tgt, rx393_tgt, rx393_off
+  rx393_start:
+    eq $I10, 1, rx393_restart
+    if_null rx393_debug, debug_377
+    rx393_cur."!cursor_debug"("START", "backslash:sym<h>")
+  debug_377:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan373_done
-    goto rxscan373_scan
-  rxscan373_loop:
-    ($P10) = rx370_cur."from"()
-    inc $P10
-    set rx370_pos, $P10
-    ge rx370_pos, rx370_eos, rxscan373_done
-  rxscan373_scan:
-    set_addr $I10, rxscan373_loop
-    rx370_cur."!mark_push"(0, rx370_pos, $I10)
-  rxscan373_done:
+    ne $I10, -1, rxscan396_done
+    goto rxscan396_scan
+  rxscan396_loop:
+    ($P10) = rx393_cur."from"()
+    inc $P10
+    set rx393_pos, $P10
+    ge rx393_pos, rx393_eos, rxscan396_done
+  rxscan396_scan:
+    set_addr $I10, rxscan396_loop
+    rx393_cur."!mark_push"(0, rx393_pos, $I10)
+  rxscan396_done:
+.annotate 'line', 140
   # rx subcapture "sym"
-    set_addr $I10, rxcap_374_fail
-    rx370_cur."!mark_push"(0, rx370_pos, $I10)
+    set_addr $I10, rxcap_397_fail
+    rx393_cur."!mark_push"(0, rx393_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx370_pos, rx370_eos, rx370_fail
-    sub $I10, rx370_pos, rx370_off
-    substr $S10, rx370_tgt, $I10, 1
+    ge rx393_pos, rx393_eos, rx393_fail
+    sub $I10, rx393_pos, rx393_off
+    substr $S10, rx393_tgt, $I10, 1
     index $I11, "hH", $S10
-    lt $I11, 0, rx370_fail
-    inc rx370_pos
-    set_addr $I10, rxcap_374_fail
-    ($I12, $I11) = rx370_cur."!mark_peek"($I10)
-    rx370_cur."!cursor_pos"($I11)
-    ($P10) = rx370_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx370_pos, "")
-    rx370_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx393_fail
+    inc rx393_pos
+    set_addr $I10, rxcap_397_fail
+    ($I12, $I11) = rx393_cur."!mark_peek"($I10)
+    rx393_cur."!cursor_pos"($I11)
+    ($P10) = rx393_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx393_pos, "")
+    rx393_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_374_done
-  rxcap_374_fail:
-    goto rx370_fail
-  rxcap_374_done:
-  # rx pass
-    rx370_cur."!cursor_pass"(rx370_pos, "backslash:sym<h>")
-    if_null rx370_debug, debug_356
-    rx370_cur."!cursor_debug"("PASS", "backslash:sym<h>", " at pos=", rx370_pos)
-  debug_356:
-    .return (rx370_cur)
-  rx370_restart:
-    if_null rx370_debug, debug_357
-    rx370_cur."!cursor_debug"("NEXT", "backslash:sym<h>")
-  debug_357:
-  rx370_fail:
-    (rx370_rep, rx370_pos, $I10, $P10) = rx370_cur."!mark_fail"(0)
-    lt rx370_pos, -1, rx370_done
-    eq rx370_pos, -1, rx370_fail
-    jump $I10
-  rx370_done:
-    rx370_cur."!cursor_fail"()
-    if_null rx370_debug, debug_358
-    rx370_cur."!cursor_debug"("FAIL", "backslash:sym<h>")
-  debug_358:
-    .return (rx370_cur)
+    goto rxcap_397_done
+  rxcap_397_fail:
+    goto rx393_fail
+  rxcap_397_done:
+  # rx pass
+    rx393_cur."!cursor_pass"(rx393_pos, "backslash:sym<h>")
+    if_null rx393_debug, debug_378
+    rx393_cur."!cursor_debug"("PASS", "backslash:sym<h>", " at pos=", rx393_pos)
+  debug_378:
+    .return (rx393_cur)
+  rx393_restart:
+.annotate 'line', 3
+    if_null rx393_debug, debug_379
+    rx393_cur."!cursor_debug"("NEXT", "backslash:sym<h>")
+  debug_379:
+  rx393_fail:
+    (rx393_rep, rx393_pos, $I10, $P10) = rx393_cur."!mark_fail"(0)
+    lt rx393_pos, -1, rx393_done
+    eq rx393_pos, -1, rx393_fail
+    jump $I10
+  rx393_done:
+    rx393_cur."!cursor_fail"()
+    if_null rx393_debug, debug_380
+    rx393_cur."!cursor_debug"("FAIL", "backslash:sym<h>")
+  debug_380:
+    .return (rx393_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<h>"  :subid("108_1283975941.34404") :method
-.annotate 'line', 0
-    new $P372, "ResizablePMCArray"
-    push $P372, "H"
-    push $P372, "h"
-    .return ($P372)
+.sub "!PREFIX__backslash:sym<h>"  :subid("114_1284728471.30547") :method
+.annotate 'line', 3
+    new $P395, "ResizablePMCArray"
+    push $P395, "H"
+    push $P395, "h"
+    .return ($P395)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<r>"  :subid("109_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx376_tgt
-    .local int rx376_pos
-    .local int rx376_off
-    .local int rx376_eos
-    .local int rx376_rep
-    .local pmc rx376_cur
-    .local pmc rx376_debug
-    (rx376_cur, rx376_pos, rx376_tgt, $I10) = self."!cursor_start"()
-    getattribute rx376_debug, rx376_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx376_cur
-    .local pmc match
-    .lex "$/", match
-    length rx376_eos, rx376_tgt
-    gt rx376_pos, rx376_eos, rx376_done
-    set rx376_off, 0
-    lt rx376_pos, 2, rx376_start
-    sub rx376_off, rx376_pos, 1
-    substr rx376_tgt, rx376_tgt, rx376_off
-  rx376_start:
-    eq $I10, 1, rx376_restart
-    if_null rx376_debug, debug_359
-    rx376_cur."!cursor_debug"("START", "backslash:sym<r>")
-  debug_359:
+.sub "backslash:sym<r>"  :subid("115_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx399_tgt
+    .local int rx399_pos
+    .local int rx399_off
+    .local int rx399_eos
+    .local int rx399_rep
+    .local pmc rx399_cur
+    .local pmc rx399_debug
+    (rx399_cur, rx399_pos, rx399_tgt, $I10) = self."!cursor_start"()
+    getattribute rx399_debug, rx399_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx399_cur
+    .local pmc match
+    .lex "$/", match
+    length rx399_eos, rx399_tgt
+    gt rx399_pos, rx399_eos, rx399_done
+    set rx399_off, 0
+    lt rx399_pos, 2, rx399_start
+    sub rx399_off, rx399_pos, 1
+    substr rx399_tgt, rx399_tgt, rx399_off
+  rx399_start:
+    eq $I10, 1, rx399_restart
+    if_null rx399_debug, debug_381
+    rx399_cur."!cursor_debug"("START", "backslash:sym<r>")
+  debug_381:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan379_done
-    goto rxscan379_scan
-  rxscan379_loop:
-    ($P10) = rx376_cur."from"()
-    inc $P10
-    set rx376_pos, $P10
-    ge rx376_pos, rx376_eos, rxscan379_done
-  rxscan379_scan:
-    set_addr $I10, rxscan379_loop
-    rx376_cur."!mark_push"(0, rx376_pos, $I10)
-  rxscan379_done:
+    ne $I10, -1, rxscan402_done
+    goto rxscan402_scan
+  rxscan402_loop:
+    ($P10) = rx399_cur."from"()
+    inc $P10
+    set rx399_pos, $P10
+    ge rx399_pos, rx399_eos, rxscan402_done
+  rxscan402_scan:
+    set_addr $I10, rxscan402_loop
+    rx399_cur."!mark_push"(0, rx399_pos, $I10)
+  rxscan402_done:
+.annotate 'line', 141
   # rx subcapture "sym"
-    set_addr $I10, rxcap_380_fail
-    rx376_cur."!mark_push"(0, rx376_pos, $I10)
+    set_addr $I10, rxcap_403_fail
+    rx399_cur."!mark_push"(0, rx399_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx376_pos, rx376_eos, rx376_fail
-    sub $I10, rx376_pos, rx376_off
-    substr $S10, rx376_tgt, $I10, 1
+    ge rx399_pos, rx399_eos, rx399_fail
+    sub $I10, rx399_pos, rx399_off
+    substr $S10, rx399_tgt, $I10, 1
     index $I11, "rR", $S10
-    lt $I11, 0, rx376_fail
-    inc rx376_pos
-    set_addr $I10, rxcap_380_fail
-    ($I12, $I11) = rx376_cur."!mark_peek"($I10)
-    rx376_cur."!cursor_pos"($I11)
-    ($P10) = rx376_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx376_pos, "")
-    rx376_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx399_fail
+    inc rx399_pos
+    set_addr $I10, rxcap_403_fail
+    ($I12, $I11) = rx399_cur."!mark_peek"($I10)
+    rx399_cur."!cursor_pos"($I11)
+    ($P10) = rx399_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx399_pos, "")
+    rx399_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_380_done
-  rxcap_380_fail:
-    goto rx376_fail
-  rxcap_380_done:
-  # rx pass
-    rx376_cur."!cursor_pass"(rx376_pos, "backslash:sym<r>")
-    if_null rx376_debug, debug_360
-    rx376_cur."!cursor_debug"("PASS", "backslash:sym<r>", " at pos=", rx376_pos)
-  debug_360:
-    .return (rx376_cur)
-  rx376_restart:
-    if_null rx376_debug, debug_361
-    rx376_cur."!cursor_debug"("NEXT", "backslash:sym<r>")
-  debug_361:
-  rx376_fail:
-    (rx376_rep, rx376_pos, $I10, $P10) = rx376_cur."!mark_fail"(0)
-    lt rx376_pos, -1, rx376_done
-    eq rx376_pos, -1, rx376_fail
-    jump $I10
-  rx376_done:
-    rx376_cur."!cursor_fail"()
-    if_null rx376_debug, debug_362
-    rx376_cur."!cursor_debug"("FAIL", "backslash:sym<r>")
-  debug_362:
-    .return (rx376_cur)
+    goto rxcap_403_done
+  rxcap_403_fail:
+    goto rx399_fail
+  rxcap_403_done:
+  # rx pass
+    rx399_cur."!cursor_pass"(rx399_pos, "backslash:sym<r>")
+    if_null rx399_debug, debug_382
+    rx399_cur."!cursor_debug"("PASS", "backslash:sym<r>", " at pos=", rx399_pos)
+  debug_382:
+    .return (rx399_cur)
+  rx399_restart:
+.annotate 'line', 3
+    if_null rx399_debug, debug_383
+    rx399_cur."!cursor_debug"("NEXT", "backslash:sym<r>")
+  debug_383:
+  rx399_fail:
+    (rx399_rep, rx399_pos, $I10, $P10) = rx399_cur."!mark_fail"(0)
+    lt rx399_pos, -1, rx399_done
+    eq rx399_pos, -1, rx399_fail
+    jump $I10
+  rx399_done:
+    rx399_cur."!cursor_fail"()
+    if_null rx399_debug, debug_384
+    rx399_cur."!cursor_debug"("FAIL", "backslash:sym<r>")
+  debug_384:
+    .return (rx399_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<r>"  :subid("110_1283975941.34404") :method
-.annotate 'line', 0
-    new $P378, "ResizablePMCArray"
-    push $P378, "R"
-    push $P378, "r"
-    .return ($P378)
+.sub "!PREFIX__backslash:sym<r>"  :subid("116_1284728471.30547") :method
+.annotate 'line', 3
+    new $P401, "ResizablePMCArray"
+    push $P401, "R"
+    push $P401, "r"
+    .return ($P401)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<t>"  :subid("111_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx382_tgt
-    .local int rx382_pos
-    .local int rx382_off
-    .local int rx382_eos
-    .local int rx382_rep
-    .local pmc rx382_cur
-    .local pmc rx382_debug
-    (rx382_cur, rx382_pos, rx382_tgt, $I10) = self."!cursor_start"()
-    getattribute rx382_debug, rx382_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx382_cur
-    .local pmc match
-    .lex "$/", match
-    length rx382_eos, rx382_tgt
-    gt rx382_pos, rx382_eos, rx382_done
-    set rx382_off, 0
-    lt rx382_pos, 2, rx382_start
-    sub rx382_off, rx382_pos, 1
-    substr rx382_tgt, rx382_tgt, rx382_off
-  rx382_start:
-    eq $I10, 1, rx382_restart
-    if_null rx382_debug, debug_363
-    rx382_cur."!cursor_debug"("START", "backslash:sym<t>")
-  debug_363:
+.sub "backslash:sym<t>"  :subid("117_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx405_tgt
+    .local int rx405_pos
+    .local int rx405_off
+    .local int rx405_eos
+    .local int rx405_rep
+    .local pmc rx405_cur
+    .local pmc rx405_debug
+    (rx405_cur, rx405_pos, rx405_tgt, $I10) = self."!cursor_start"()
+    getattribute rx405_debug, rx405_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx405_cur
+    .local pmc match
+    .lex "$/", match
+    length rx405_eos, rx405_tgt
+    gt rx405_pos, rx405_eos, rx405_done
+    set rx405_off, 0
+    lt rx405_pos, 2, rx405_start
+    sub rx405_off, rx405_pos, 1
+    substr rx405_tgt, rx405_tgt, rx405_off
+  rx405_start:
+    eq $I10, 1, rx405_restart
+    if_null rx405_debug, debug_385
+    rx405_cur."!cursor_debug"("START", "backslash:sym<t>")
+  debug_385:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan385_done
-    goto rxscan385_scan
-  rxscan385_loop:
-    ($P10) = rx382_cur."from"()
-    inc $P10
-    set rx382_pos, $P10
-    ge rx382_pos, rx382_eos, rxscan385_done
-  rxscan385_scan:
-    set_addr $I10, rxscan385_loop
-    rx382_cur."!mark_push"(0, rx382_pos, $I10)
-  rxscan385_done:
+    ne $I10, -1, rxscan408_done
+    goto rxscan408_scan
+  rxscan408_loop:
+    ($P10) = rx405_cur."from"()
+    inc $P10
+    set rx405_pos, $P10
+    ge rx405_pos, rx405_eos, rxscan408_done
+  rxscan408_scan:
+    set_addr $I10, rxscan408_loop
+    rx405_cur."!mark_push"(0, rx405_pos, $I10)
+  rxscan408_done:
+.annotate 'line', 142
   # rx subcapture "sym"
-    set_addr $I10, rxcap_386_fail
-    rx382_cur."!mark_push"(0, rx382_pos, $I10)
+    set_addr $I10, rxcap_409_fail
+    rx405_cur."!mark_push"(0, rx405_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx382_pos, rx382_eos, rx382_fail
-    sub $I10, rx382_pos, rx382_off
-    substr $S10, rx382_tgt, $I10, 1
+    ge rx405_pos, rx405_eos, rx405_fail
+    sub $I10, rx405_pos, rx405_off
+    substr $S10, rx405_tgt, $I10, 1
     index $I11, "tT", $S10
-    lt $I11, 0, rx382_fail
-    inc rx382_pos
-    set_addr $I10, rxcap_386_fail
-    ($I12, $I11) = rx382_cur."!mark_peek"($I10)
-    rx382_cur."!cursor_pos"($I11)
-    ($P10) = rx382_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx382_pos, "")
-    rx382_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx405_fail
+    inc rx405_pos
+    set_addr $I10, rxcap_409_fail
+    ($I12, $I11) = rx405_cur."!mark_peek"($I10)
+    rx405_cur."!cursor_pos"($I11)
+    ($P10) = rx405_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx405_pos, "")
+    rx405_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_386_done
-  rxcap_386_fail:
-    goto rx382_fail
-  rxcap_386_done:
-  # rx pass
-    rx382_cur."!cursor_pass"(rx382_pos, "backslash:sym<t>")
-    if_null rx382_debug, debug_364
-    rx382_cur."!cursor_debug"("PASS", "backslash:sym<t>", " at pos=", rx382_pos)
-  debug_364:
-    .return (rx382_cur)
-  rx382_restart:
-    if_null rx382_debug, debug_365
-    rx382_cur."!cursor_debug"("NEXT", "backslash:sym<t>")
-  debug_365:
-  rx382_fail:
-    (rx382_rep, rx382_pos, $I10, $P10) = rx382_cur."!mark_fail"(0)
-    lt rx382_pos, -1, rx382_done
-    eq rx382_pos, -1, rx382_fail
-    jump $I10
-  rx382_done:
-    rx382_cur."!cursor_fail"()
-    if_null rx382_debug, debug_366
-    rx382_cur."!cursor_debug"("FAIL", "backslash:sym<t>")
-  debug_366:
-    .return (rx382_cur)
+    goto rxcap_409_done
+  rxcap_409_fail:
+    goto rx405_fail
+  rxcap_409_done:
+  # rx pass
+    rx405_cur."!cursor_pass"(rx405_pos, "backslash:sym<t>")
+    if_null rx405_debug, debug_386
+    rx405_cur."!cursor_debug"("PASS", "backslash:sym<t>", " at pos=", rx405_pos)
+  debug_386:
+    .return (rx405_cur)
+  rx405_restart:
+.annotate 'line', 3
+    if_null rx405_debug, debug_387
+    rx405_cur."!cursor_debug"("NEXT", "backslash:sym<t>")
+  debug_387:
+  rx405_fail:
+    (rx405_rep, rx405_pos, $I10, $P10) = rx405_cur."!mark_fail"(0)
+    lt rx405_pos, -1, rx405_done
+    eq rx405_pos, -1, rx405_fail
+    jump $I10
+  rx405_done:
+    rx405_cur."!cursor_fail"()
+    if_null rx405_debug, debug_388
+    rx405_cur."!cursor_debug"("FAIL", "backslash:sym<t>")
+  debug_388:
+    .return (rx405_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<t>"  :subid("112_1283975941.34404") :method
-.annotate 'line', 0
-    new $P384, "ResizablePMCArray"
-    push $P384, "T"
-    push $P384, "t"
-    .return ($P384)
+.sub "!PREFIX__backslash:sym<t>"  :subid("118_1284728471.30547") :method
+.annotate 'line', 3
+    new $P407, "ResizablePMCArray"
+    push $P407, "T"
+    push $P407, "t"
+    .return ($P407)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<v>"  :subid("113_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx388_tgt
-    .local int rx388_pos
-    .local int rx388_off
-    .local int rx388_eos
-    .local int rx388_rep
-    .local pmc rx388_cur
-    .local pmc rx388_debug
-    (rx388_cur, rx388_pos, rx388_tgt, $I10) = self."!cursor_start"()
-    getattribute rx388_debug, rx388_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx388_cur
-    .local pmc match
-    .lex "$/", match
-    length rx388_eos, rx388_tgt
-    gt rx388_pos, rx388_eos, rx388_done
-    set rx388_off, 0
-    lt rx388_pos, 2, rx388_start
-    sub rx388_off, rx388_pos, 1
-    substr rx388_tgt, rx388_tgt, rx388_off
-  rx388_start:
-    eq $I10, 1, rx388_restart
-    if_null rx388_debug, debug_367
-    rx388_cur."!cursor_debug"("START", "backslash:sym<v>")
-  debug_367:
+.sub "backslash:sym<v>"  :subid("119_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx411_tgt
+    .local int rx411_pos
+    .local int rx411_off
+    .local int rx411_eos
+    .local int rx411_rep
+    .local pmc rx411_cur
+    .local pmc rx411_debug
+    (rx411_cur, rx411_pos, rx411_tgt, $I10) = self."!cursor_start"()
+    getattribute rx411_debug, rx411_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx411_cur
+    .local pmc match
+    .lex "$/", match
+    length rx411_eos, rx411_tgt
+    gt rx411_pos, rx411_eos, rx411_done
+    set rx411_off, 0
+    lt rx411_pos, 2, rx411_start
+    sub rx411_off, rx411_pos, 1
+    substr rx411_tgt, rx411_tgt, rx411_off
+  rx411_start:
+    eq $I10, 1, rx411_restart
+    if_null rx411_debug, debug_389
+    rx411_cur."!cursor_debug"("START", "backslash:sym<v>")
+  debug_389:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan391_done
-    goto rxscan391_scan
-  rxscan391_loop:
-    ($P10) = rx388_cur."from"()
-    inc $P10
-    set rx388_pos, $P10
-    ge rx388_pos, rx388_eos, rxscan391_done
-  rxscan391_scan:
-    set_addr $I10, rxscan391_loop
-    rx388_cur."!mark_push"(0, rx388_pos, $I10)
-  rxscan391_done:
+    ne $I10, -1, rxscan414_done
+    goto rxscan414_scan
+  rxscan414_loop:
+    ($P10) = rx411_cur."from"()
+    inc $P10
+    set rx411_pos, $P10
+    ge rx411_pos, rx411_eos, rxscan414_done
+  rxscan414_scan:
+    set_addr $I10, rxscan414_loop
+    rx411_cur."!mark_push"(0, rx411_pos, $I10)
+  rxscan414_done:
+.annotate 'line', 143
   # rx subcapture "sym"
-    set_addr $I10, rxcap_392_fail
-    rx388_cur."!mark_push"(0, rx388_pos, $I10)
+    set_addr $I10, rxcap_415_fail
+    rx411_cur."!mark_push"(0, rx411_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx388_pos, rx388_eos, rx388_fail
-    sub $I10, rx388_pos, rx388_off
-    substr $S10, rx388_tgt, $I10, 1
+    ge rx411_pos, rx411_eos, rx411_fail
+    sub $I10, rx411_pos, rx411_off
+    substr $S10, rx411_tgt, $I10, 1
     index $I11, "vV", $S10
-    lt $I11, 0, rx388_fail
-    inc rx388_pos
-    set_addr $I10, rxcap_392_fail
-    ($I12, $I11) = rx388_cur."!mark_peek"($I10)
-    rx388_cur."!cursor_pos"($I11)
-    ($P10) = rx388_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx388_pos, "")
-    rx388_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx411_fail
+    inc rx411_pos
+    set_addr $I10, rxcap_415_fail
+    ($I12, $I11) = rx411_cur."!mark_peek"($I10)
+    rx411_cur."!cursor_pos"($I11)
+    ($P10) = rx411_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx411_pos, "")
+    rx411_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_392_done
-  rxcap_392_fail:
-    goto rx388_fail
-  rxcap_392_done:
-  # rx pass
-    rx388_cur."!cursor_pass"(rx388_pos, "backslash:sym<v>")
-    if_null rx388_debug, debug_368
-    rx388_cur."!cursor_debug"("PASS", "backslash:sym<v>", " at pos=", rx388_pos)
-  debug_368:
-    .return (rx388_cur)
-  rx388_restart:
-    if_null rx388_debug, debug_369
-    rx388_cur."!cursor_debug"("NEXT", "backslash:sym<v>")
-  debug_369:
-  rx388_fail:
-    (rx388_rep, rx388_pos, $I10, $P10) = rx388_cur."!mark_fail"(0)
-    lt rx388_pos, -1, rx388_done
-    eq rx388_pos, -1, rx388_fail
-    jump $I10
-  rx388_done:
-    rx388_cur."!cursor_fail"()
-    if_null rx388_debug, debug_370
-    rx388_cur."!cursor_debug"("FAIL", "backslash:sym<v>")
-  debug_370:
-    .return (rx388_cur)
+    goto rxcap_415_done
+  rxcap_415_fail:
+    goto rx411_fail
+  rxcap_415_done:
+  # rx pass
+    rx411_cur."!cursor_pass"(rx411_pos, "backslash:sym<v>")
+    if_null rx411_debug, debug_390
+    rx411_cur."!cursor_debug"("PASS", "backslash:sym<v>", " at pos=", rx411_pos)
+  debug_390:
+    .return (rx411_cur)
+  rx411_restart:
+.annotate 'line', 3
+    if_null rx411_debug, debug_391
+    rx411_cur."!cursor_debug"("NEXT", "backslash:sym<v>")
+  debug_391:
+  rx411_fail:
+    (rx411_rep, rx411_pos, $I10, $P10) = rx411_cur."!mark_fail"(0)
+    lt rx411_pos, -1, rx411_done
+    eq rx411_pos, -1, rx411_fail
+    jump $I10
+  rx411_done:
+    rx411_cur."!cursor_fail"()
+    if_null rx411_debug, debug_392
+    rx411_cur."!cursor_debug"("FAIL", "backslash:sym<v>")
+  debug_392:
+    .return (rx411_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<v>"  :subid("114_1283975941.34404") :method
-.annotate 'line', 0
-    new $P390, "ResizablePMCArray"
-    push $P390, "V"
-    push $P390, "v"
-    .return ($P390)
+.sub "!PREFIX__backslash:sym<v>"  :subid("120_1284728471.30547") :method
+.annotate 'line', 3
+    new $P413, "ResizablePMCArray"
+    push $P413, "V"
+    push $P413, "v"
+    .return ($P413)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<o>"  :subid("115_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx394_tgt
-    .local int rx394_pos
-    .local int rx394_off
-    .local int rx394_eos
-    .local int rx394_rep
-    .local pmc rx394_cur
-    .local pmc rx394_debug
-    (rx394_cur, rx394_pos, rx394_tgt, $I10) = self."!cursor_start"()
-    getattribute rx394_debug, rx394_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx394_cur
-    .local pmc match
-    .lex "$/", match
-    length rx394_eos, rx394_tgt
-    gt rx394_pos, rx394_eos, rx394_done
-    set rx394_off, 0
-    lt rx394_pos, 2, rx394_start
-    sub rx394_off, rx394_pos, 1
-    substr rx394_tgt, rx394_tgt, rx394_off
-  rx394_start:
-    eq $I10, 1, rx394_restart
-    if_null rx394_debug, debug_371
-    rx394_cur."!cursor_debug"("START", "backslash:sym<o>")
-  debug_371:
+.sub "backslash:sym<o>"  :subid("121_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx417_tgt
+    .local int rx417_pos
+    .local int rx417_off
+    .local int rx417_eos
+    .local int rx417_rep
+    .local pmc rx417_cur
+    .local pmc rx417_debug
+    (rx417_cur, rx417_pos, rx417_tgt, $I10) = self."!cursor_start"()
+    getattribute rx417_debug, rx417_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx417_cur
+    .local pmc match
+    .lex "$/", match
+    length rx417_eos, rx417_tgt
+    gt rx417_pos, rx417_eos, rx417_done
+    set rx417_off, 0
+    lt rx417_pos, 2, rx417_start
+    sub rx417_off, rx417_pos, 1
+    substr rx417_tgt, rx417_tgt, rx417_off
+  rx417_start:
+    eq $I10, 1, rx417_restart
+    if_null rx417_debug, debug_393
+    rx417_cur."!cursor_debug"("START", "backslash:sym<o>")
+  debug_393:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan401_done
-    goto rxscan401_scan
-  rxscan401_loop:
-    ($P10) = rx394_cur."from"()
-    inc $P10
-    set rx394_pos, $P10
-    ge rx394_pos, rx394_eos, rxscan401_done
-  rxscan401_scan:
-    set_addr $I10, rxscan401_loop
-    rx394_cur."!mark_push"(0, rx394_pos, $I10)
-  rxscan401_done:
+    ne $I10, -1, rxscan424_done
+    goto rxscan424_scan
+  rxscan424_loop:
+    ($P10) = rx417_cur."from"()
+    inc $P10
+    set rx417_pos, $P10
+    ge rx417_pos, rx417_eos, rxscan424_done
+  rxscan424_scan:
+    set_addr $I10, rxscan424_loop
+    rx417_cur."!mark_push"(0, rx417_pos, $I10)
+  rxscan424_done:
+.annotate 'line', 144
   # rx subcapture "sym"
-    set_addr $I10, rxcap_402_fail
-    rx394_cur."!mark_push"(0, rx394_pos, $I10)
+    set_addr $I10, rxcap_425_fail
+    rx417_cur."!mark_push"(0, rx417_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx394_pos, rx394_eos, rx394_fail
-    sub $I10, rx394_pos, rx394_off
-    substr $S10, rx394_tgt, $I10, 1
+    ge rx417_pos, rx417_eos, rx417_fail
+    sub $I10, rx417_pos, rx417_off
+    substr $S10, rx417_tgt, $I10, 1
     index $I11, "oO", $S10
-    lt $I11, 0, rx394_fail
-    inc rx394_pos
-    set_addr $I10, rxcap_402_fail
-    ($I12, $I11) = rx394_cur."!mark_peek"($I10)
-    rx394_cur."!cursor_pos"($I11)
-    ($P10) = rx394_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx394_pos, "")
-    rx394_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx417_fail
+    inc rx417_pos
+    set_addr $I10, rxcap_425_fail
+    ($I12, $I11) = rx417_cur."!mark_peek"($I10)
+    rx417_cur."!cursor_pos"($I11)
+    ($P10) = rx417_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx417_pos, "")
+    rx417_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_402_done
-  rxcap_402_fail:
-    goto rx394_fail
-  rxcap_402_done:
-  alt403_0:
-    set_addr $I10, alt403_1
-    rx394_cur."!mark_push"(0, rx394_pos, $I10)
+    goto rxcap_425_done
+  rxcap_425_fail:
+    goto rx417_fail
+  rxcap_425_done:
+  alt426_0:
+    set_addr $I10, alt426_1
+    rx417_cur."!mark_push"(0, rx417_pos, $I10)
   # rx subrule "octint" subtype=capture negate=
-    rx394_cur."!cursor_pos"(rx394_pos)
-    $P10 = rx394_cur."octint"()
-    unless $P10, rx394_fail
-    rx394_cur."!mark_push"(0, -1, 0, $P10)
+    rx417_cur."!cursor_pos"(rx417_pos)
+    $P10 = rx417_cur."octint"()
+    unless $P10, rx417_fail
+    rx417_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("octint")
-    rx394_pos = $P10."pos"()
-    goto alt403_end
-  alt403_1:
+    rx417_pos = $P10."pos"()
+    goto alt426_end
+  alt426_1:
   # rx literal  "["
-    add $I11, rx394_pos, 1
-    gt $I11, rx394_eos, rx394_fail
-    sub $I11, rx394_pos, rx394_off
-    ord $I11, rx394_tgt, $I11
-    ne $I11, 91, rx394_fail
-    add rx394_pos, 1
+    add $I11, rx417_pos, 1
+    gt $I11, rx417_eos, rx417_fail
+    sub $I11, rx417_pos, rx417_off
+    ord $I11, rx417_tgt, $I11
+    ne $I11, 91, rx417_fail
+    add rx417_pos, 1
   # rx subrule "octints" subtype=capture negate=
-    rx394_cur."!cursor_pos"(rx394_pos)
-    $P10 = rx394_cur."octints"()
-    unless $P10, rx394_fail
-    rx394_cur."!mark_push"(0, -1, 0, $P10)
+    rx417_cur."!cursor_pos"(rx417_pos)
+    $P10 = rx417_cur."octints"()
+    unless $P10, rx417_fail
+    rx417_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("octints")
-    rx394_pos = $P10."pos"()
+    rx417_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx394_pos, 1
-    gt $I11, rx394_eos, rx394_fail
-    sub $I11, rx394_pos, rx394_off
-    ord $I11, rx394_tgt, $I11
-    ne $I11, 93, rx394_fail
-    add rx394_pos, 1
-  alt403_end:
-  # rx pass
-    rx394_cur."!cursor_pass"(rx394_pos, "backslash:sym<o>")
-    if_null rx394_debug, debug_372
-    rx394_cur."!cursor_debug"("PASS", "backslash:sym<o>", " at pos=", rx394_pos)
-  debug_372:
-    .return (rx394_cur)
-  rx394_restart:
-    if_null rx394_debug, debug_373
-    rx394_cur."!cursor_debug"("NEXT", "backslash:sym<o>")
-  debug_373:
-  rx394_fail:
-    (rx394_rep, rx394_pos, $I10, $P10) = rx394_cur."!mark_fail"(0)
-    lt rx394_pos, -1, rx394_done
-    eq rx394_pos, -1, rx394_fail
-    jump $I10
-  rx394_done:
-    rx394_cur."!cursor_fail"()
-    if_null rx394_debug, debug_374
-    rx394_cur."!cursor_debug"("FAIL", "backslash:sym<o>")
-  debug_374:
-    .return (rx394_cur)
+    add $I11, rx417_pos, 1
+    gt $I11, rx417_eos, rx417_fail
+    sub $I11, rx417_pos, rx417_off
+    ord $I11, rx417_tgt, $I11
+    ne $I11, 93, rx417_fail
+    add rx417_pos, 1
+  alt426_end:
+  # rx pass
+    rx417_cur."!cursor_pass"(rx417_pos, "backslash:sym<o>")
+    if_null rx417_debug, debug_394
+    rx417_cur."!cursor_debug"("PASS", "backslash:sym<o>", " at pos=", rx417_pos)
+  debug_394:
+    .return (rx417_cur)
+  rx417_restart:
+.annotate 'line', 3
+    if_null rx417_debug, debug_395
+    rx417_cur."!cursor_debug"("NEXT", "backslash:sym<o>")
+  debug_395:
+  rx417_fail:
+    (rx417_rep, rx417_pos, $I10, $P10) = rx417_cur."!mark_fail"(0)
+    lt rx417_pos, -1, rx417_done
+    eq rx417_pos, -1, rx417_fail
+    jump $I10
+  rx417_done:
+    rx417_cur."!cursor_fail"()
+    if_null rx417_debug, debug_396
+    rx417_cur."!cursor_debug"("FAIL", "backslash:sym<o>")
+  debug_396:
+    .return (rx417_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<o>"  :subid("116_1283975941.34404") :method
-.annotate 'line', 0
-    $P396 = self."!PREFIX__!subrule"("octints", "O[")
-    $P397 = self."!PREFIX__!subrule"("octint", "O")
-    $P398 = self."!PREFIX__!subrule"("octints", "o[")
-    $P399 = self."!PREFIX__!subrule"("octint", "o")
-    new $P400, "ResizablePMCArray"
-    push $P400, $P396
-    push $P400, $P397
-    push $P400, $P398
-    push $P400, $P399
-    .return ($P400)
+.sub "!PREFIX__backslash:sym<o>"  :subid("122_1284728471.30547") :method
+.annotate 'line', 3
+    $P419 = self."!PREFIX__!subrule"("octints", "O[")
+    $P420 = self."!PREFIX__!subrule"("octint", "O")
+    $P421 = self."!PREFIX__!subrule"("octints", "o[")
+    $P422 = self."!PREFIX__!subrule"("octint", "o")
+    new $P423, "ResizablePMCArray"
+    push $P423, $P419
+    push $P423, $P420
+    push $P423, $P421
+    push $P423, $P422
+    .return ($P423)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<x>"  :subid("117_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx405_tgt
-    .local int rx405_pos
-    .local int rx405_off
-    .local int rx405_eos
-    .local int rx405_rep
-    .local pmc rx405_cur
-    .local pmc rx405_debug
-    (rx405_cur, rx405_pos, rx405_tgt, $I10) = self."!cursor_start"()
-    getattribute rx405_debug, rx405_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx405_cur
-    .local pmc match
-    .lex "$/", match
-    length rx405_eos, rx405_tgt
-    gt rx405_pos, rx405_eos, rx405_done
-    set rx405_off, 0
-    lt rx405_pos, 2, rx405_start
-    sub rx405_off, rx405_pos, 1
-    substr rx405_tgt, rx405_tgt, rx405_off
-  rx405_start:
-    eq $I10, 1, rx405_restart
-    if_null rx405_debug, debug_375
-    rx405_cur."!cursor_debug"("START", "backslash:sym<x>")
-  debug_375:
+.sub "backslash:sym<x>"  :subid("123_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx428_tgt
+    .local int rx428_pos
+    .local int rx428_off
+    .local int rx428_eos
+    .local int rx428_rep
+    .local pmc rx428_cur
+    .local pmc rx428_debug
+    (rx428_cur, rx428_pos, rx428_tgt, $I10) = self."!cursor_start"()
+    getattribute rx428_debug, rx428_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx428_cur
+    .local pmc match
+    .lex "$/", match
+    length rx428_eos, rx428_tgt
+    gt rx428_pos, rx428_eos, rx428_done
+    set rx428_off, 0
+    lt rx428_pos, 2, rx428_start
+    sub rx428_off, rx428_pos, 1
+    substr rx428_tgt, rx428_tgt, rx428_off
+  rx428_start:
+    eq $I10, 1, rx428_restart
+    if_null rx428_debug, debug_397
+    rx428_cur."!cursor_debug"("START", "backslash:sym<x>")
+  debug_397:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan412_done
-    goto rxscan412_scan
-  rxscan412_loop:
-    ($P10) = rx405_cur."from"()
-    inc $P10
-    set rx405_pos, $P10
-    ge rx405_pos, rx405_eos, rxscan412_done
-  rxscan412_scan:
-    set_addr $I10, rxscan412_loop
-    rx405_cur."!mark_push"(0, rx405_pos, $I10)
-  rxscan412_done:
+    ne $I10, -1, rxscan435_done
+    goto rxscan435_scan
+  rxscan435_loop:
+    ($P10) = rx428_cur."from"()
+    inc $P10
+    set rx428_pos, $P10
+    ge rx428_pos, rx428_eos, rxscan435_done
+  rxscan435_scan:
+    set_addr $I10, rxscan435_loop
+    rx428_cur."!mark_push"(0, rx428_pos, $I10)
+  rxscan435_done:
+.annotate 'line', 145
   # rx subcapture "sym"
-    set_addr $I10, rxcap_413_fail
-    rx405_cur."!mark_push"(0, rx405_pos, $I10)
+    set_addr $I10, rxcap_436_fail
+    rx428_cur."!mark_push"(0, rx428_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx405_pos, rx405_eos, rx405_fail
-    sub $I10, rx405_pos, rx405_off
-    substr $S10, rx405_tgt, $I10, 1
+    ge rx428_pos, rx428_eos, rx428_fail
+    sub $I10, rx428_pos, rx428_off
+    substr $S10, rx428_tgt, $I10, 1
     index $I11, "xX", $S10
-    lt $I11, 0, rx405_fail
-    inc rx405_pos
-    set_addr $I10, rxcap_413_fail
-    ($I12, $I11) = rx405_cur."!mark_peek"($I10)
-    rx405_cur."!cursor_pos"($I11)
-    ($P10) = rx405_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx405_pos, "")
-    rx405_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx428_fail
+    inc rx428_pos
+    set_addr $I10, rxcap_436_fail
+    ($I12, $I11) = rx428_cur."!mark_peek"($I10)
+    rx428_cur."!cursor_pos"($I11)
+    ($P10) = rx428_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx428_pos, "")
+    rx428_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_413_done
-  rxcap_413_fail:
-    goto rx405_fail
-  rxcap_413_done:
-  alt414_0:
-    set_addr $I10, alt414_1
-    rx405_cur."!mark_push"(0, rx405_pos, $I10)
+    goto rxcap_436_done
+  rxcap_436_fail:
+    goto rx428_fail
+  rxcap_436_done:
+  alt437_0:
+    set_addr $I10, alt437_1
+    rx428_cur."!mark_push"(0, rx428_pos, $I10)
   # rx subrule "hexint" subtype=capture negate=
-    rx405_cur."!cursor_pos"(rx405_pos)
-    $P10 = rx405_cur."hexint"()
-    unless $P10, rx405_fail
-    rx405_cur."!mark_push"(0, -1, 0, $P10)
+    rx428_cur."!cursor_pos"(rx428_pos)
+    $P10 = rx428_cur."hexint"()
+    unless $P10, rx428_fail
+    rx428_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("hexint")
-    rx405_pos = $P10."pos"()
-    goto alt414_end
-  alt414_1:
+    rx428_pos = $P10."pos"()
+    goto alt437_end
+  alt437_1:
   # rx literal  "["
-    add $I11, rx405_pos, 1
-    gt $I11, rx405_eos, rx405_fail
-    sub $I11, rx405_pos, rx405_off
-    ord $I11, rx405_tgt, $I11
-    ne $I11, 91, rx405_fail
-    add rx405_pos, 1
+    add $I11, rx428_pos, 1
+    gt $I11, rx428_eos, rx428_fail
+    sub $I11, rx428_pos, rx428_off
+    ord $I11, rx428_tgt, $I11
+    ne $I11, 91, rx428_fail
+    add rx428_pos, 1
   # rx subrule "hexints" subtype=capture negate=
-    rx405_cur."!cursor_pos"(rx405_pos)
-    $P10 = rx405_cur."hexints"()
-    unless $P10, rx405_fail
-    rx405_cur."!mark_push"(0, -1, 0, $P10)
+    rx428_cur."!cursor_pos"(rx428_pos)
+    $P10 = rx428_cur."hexints"()
+    unless $P10, rx428_fail
+    rx428_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("hexints")
-    rx405_pos = $P10."pos"()
+    rx428_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx405_pos, 1
-    gt $I11, rx405_eos, rx405_fail
-    sub $I11, rx405_pos, rx405_off
-    ord $I11, rx405_tgt, $I11
-    ne $I11, 93, rx405_fail
-    add rx405_pos, 1
-  alt414_end:
-  # rx pass
-    rx405_cur."!cursor_pass"(rx405_pos, "backslash:sym<x>")
-    if_null rx405_debug, debug_376
-    rx405_cur."!cursor_debug"("PASS", "backslash:sym<x>", " at pos=", rx405_pos)
-  debug_376:
-    .return (rx405_cur)
-  rx405_restart:
-    if_null rx405_debug, debug_377
-    rx405_cur."!cursor_debug"("NEXT", "backslash:sym<x>")
-  debug_377:
-  rx405_fail:
-    (rx405_rep, rx405_pos, $I10, $P10) = rx405_cur."!mark_fail"(0)
-    lt rx405_pos, -1, rx405_done
-    eq rx405_pos, -1, rx405_fail
-    jump $I10
-  rx405_done:
-    rx405_cur."!cursor_fail"()
-    if_null rx405_debug, debug_378
-    rx405_cur."!cursor_debug"("FAIL", "backslash:sym<x>")
-  debug_378:
-    .return (rx405_cur)
+    add $I11, rx428_pos, 1
+    gt $I11, rx428_eos, rx428_fail
+    sub $I11, rx428_pos, rx428_off
+    ord $I11, rx428_tgt, $I11
+    ne $I11, 93, rx428_fail
+    add rx428_pos, 1
+  alt437_end:
+  # rx pass
+    rx428_cur."!cursor_pass"(rx428_pos, "backslash:sym<x>")
+    if_null rx428_debug, debug_398
+    rx428_cur."!cursor_debug"("PASS", "backslash:sym<x>", " at pos=", rx428_pos)
+  debug_398:
+    .return (rx428_cur)
+  rx428_restart:
+.annotate 'line', 3
+    if_null rx428_debug, debug_399
+    rx428_cur."!cursor_debug"("NEXT", "backslash:sym<x>")
+  debug_399:
+  rx428_fail:
+    (rx428_rep, rx428_pos, $I10, $P10) = rx428_cur."!mark_fail"(0)
+    lt rx428_pos, -1, rx428_done
+    eq rx428_pos, -1, rx428_fail
+    jump $I10
+  rx428_done:
+    rx428_cur."!cursor_fail"()
+    if_null rx428_debug, debug_400
+    rx428_cur."!cursor_debug"("FAIL", "backslash:sym<x>")
+  debug_400:
+    .return (rx428_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<x>"  :subid("118_1283975941.34404") :method
-.annotate 'line', 0
-    $P407 = self."!PREFIX__!subrule"("hexints", "X[")
-    $P408 = self."!PREFIX__!subrule"("hexint", "X")
-    $P409 = self."!PREFIX__!subrule"("hexints", "x[")
-    $P410 = self."!PREFIX__!subrule"("hexint", "x")
-    new $P411, "ResizablePMCArray"
-    push $P411, $P407
-    push $P411, $P408
-    push $P411, $P409
-    push $P411, $P410
-    .return ($P411)
+.sub "!PREFIX__backslash:sym<x>"  :subid("124_1284728471.30547") :method
+.annotate 'line', 3
+    $P430 = self."!PREFIX__!subrule"("hexints", "X[")
+    $P431 = self."!PREFIX__!subrule"("hexint", "X")
+    $P432 = self."!PREFIX__!subrule"("hexints", "x[")
+    $P433 = self."!PREFIX__!subrule"("hexint", "x")
+    new $P434, "ResizablePMCArray"
+    push $P434, $P430
+    push $P434, $P431
+    push $P434, $P432
+    push $P434, $P433
+    .return ($P434)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<c>"  :subid("119_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx416_tgt
-    .local int rx416_pos
-    .local int rx416_off
-    .local int rx416_eos
-    .local int rx416_rep
-    .local pmc rx416_cur
-    .local pmc rx416_debug
-    (rx416_cur, rx416_pos, rx416_tgt, $I10) = self."!cursor_start"()
-    getattribute rx416_debug, rx416_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx416_cur
-    .local pmc match
-    .lex "$/", match
-    length rx416_eos, rx416_tgt
-    gt rx416_pos, rx416_eos, rx416_done
-    set rx416_off, 0
-    lt rx416_pos, 2, rx416_start
-    sub rx416_off, rx416_pos, 1
-    substr rx416_tgt, rx416_tgt, rx416_off
-  rx416_start:
-    eq $I10, 1, rx416_restart
-    if_null rx416_debug, debug_379
-    rx416_cur."!cursor_debug"("START", "backslash:sym<c>")
-  debug_379:
+.sub "backslash:sym<c>"  :subid("125_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx439_tgt
+    .local int rx439_pos
+    .local int rx439_off
+    .local int rx439_eos
+    .local int rx439_rep
+    .local pmc rx439_cur
+    .local pmc rx439_debug
+    (rx439_cur, rx439_pos, rx439_tgt, $I10) = self."!cursor_start"()
+    getattribute rx439_debug, rx439_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx439_cur
+    .local pmc match
+    .lex "$/", match
+    length rx439_eos, rx439_tgt
+    gt rx439_pos, rx439_eos, rx439_done
+    set rx439_off, 0
+    lt rx439_pos, 2, rx439_start
+    sub rx439_off, rx439_pos, 1
+    substr rx439_tgt, rx439_tgt, rx439_off
+  rx439_start:
+    eq $I10, 1, rx439_restart
+    if_null rx439_debug, debug_401
+    rx439_cur."!cursor_debug"("START", "backslash:sym<c>")
+  debug_401:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan421_done
-    goto rxscan421_scan
-  rxscan421_loop:
-    ($P10) = rx416_cur."from"()
-    inc $P10
-    set rx416_pos, $P10
-    ge rx416_pos, rx416_eos, rxscan421_done
-  rxscan421_scan:
-    set_addr $I10, rxscan421_loop
-    rx416_cur."!mark_push"(0, rx416_pos, $I10)
-  rxscan421_done:
+    ne $I10, -1, rxscan444_done
+    goto rxscan444_scan
+  rxscan444_loop:
+    ($P10) = rx439_cur."from"()
+    inc $P10
+    set rx439_pos, $P10
+    ge rx439_pos, rx439_eos, rxscan444_done
+  rxscan444_scan:
+    set_addr $I10, rxscan444_loop
+    rx439_cur."!mark_push"(0, rx439_pos, $I10)
+  rxscan444_done:
+.annotate 'line', 146
   # rx subcapture "sym"
-    set_addr $I10, rxcap_422_fail
-    rx416_cur."!mark_push"(0, rx416_pos, $I10)
+    set_addr $I10, rxcap_445_fail
+    rx439_cur."!mark_push"(0, rx439_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx416_pos, rx416_eos, rx416_fail
-    sub $I10, rx416_pos, rx416_off
-    substr $S10, rx416_tgt, $I10, 1
+    ge rx439_pos, rx439_eos, rx439_fail
+    sub $I10, rx439_pos, rx439_off
+    substr $S10, rx439_tgt, $I10, 1
     index $I11, "cC", $S10
-    lt $I11, 0, rx416_fail
-    inc rx416_pos
-    set_addr $I10, rxcap_422_fail
-    ($I12, $I11) = rx416_cur."!mark_peek"($I10)
-    rx416_cur."!cursor_pos"($I11)
-    ($P10) = rx416_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx416_pos, "")
-    rx416_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx439_fail
+    inc rx439_pos
+    set_addr $I10, rxcap_445_fail
+    ($I12, $I11) = rx439_cur."!mark_peek"($I10)
+    rx439_cur."!cursor_pos"($I11)
+    ($P10) = rx439_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx439_pos, "")
+    rx439_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_422_done
-  rxcap_422_fail:
-    goto rx416_fail
-  rxcap_422_done:
+    goto rxcap_445_done
+  rxcap_445_fail:
+    goto rx439_fail
+  rxcap_445_done:
   # rx subrule "charspec" subtype=capture negate=
-    rx416_cur."!cursor_pos"(rx416_pos)
-    $P10 = rx416_cur."charspec"()
-    unless $P10, rx416_fail
-    rx416_cur."!mark_push"(0, -1, 0, $P10)
+    rx439_cur."!cursor_pos"(rx439_pos)
+    $P10 = rx439_cur."charspec"()
+    unless $P10, rx439_fail
+    rx439_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("charspec")
-    rx416_pos = $P10."pos"()
+    rx439_pos = $P10."pos"()
   # rx pass
-    rx416_cur."!cursor_pass"(rx416_pos, "backslash:sym<c>")
-    if_null rx416_debug, debug_380
-    rx416_cur."!cursor_debug"("PASS", "backslash:sym<c>", " at pos=", rx416_pos)
-  debug_380:
-    .return (rx416_cur)
-  rx416_restart:
-    if_null rx416_debug, debug_381
-    rx416_cur."!cursor_debug"("NEXT", "backslash:sym<c>")
-  debug_381:
-  rx416_fail:
-    (rx416_rep, rx416_pos, $I10, $P10) = rx416_cur."!mark_fail"(0)
-    lt rx416_pos, -1, rx416_done
-    eq rx416_pos, -1, rx416_fail
-    jump $I10
-  rx416_done:
-    rx416_cur."!cursor_fail"()
-    if_null rx416_debug, debug_382
-    rx416_cur."!cursor_debug"("FAIL", "backslash:sym<c>")
-  debug_382:
-    .return (rx416_cur)
+    rx439_cur."!cursor_pass"(rx439_pos, "backslash:sym<c>")
+    if_null rx439_debug, debug_402
+    rx439_cur."!cursor_debug"("PASS", "backslash:sym<c>", " at pos=", rx439_pos)
+  debug_402:
+    .return (rx439_cur)
+  rx439_restart:
+.annotate 'line', 3
+    if_null rx439_debug, debug_403
+    rx439_cur."!cursor_debug"("NEXT", "backslash:sym<c>")
+  debug_403:
+  rx439_fail:
+    (rx439_rep, rx439_pos, $I10, $P10) = rx439_cur."!mark_fail"(0)
+    lt rx439_pos, -1, rx439_done
+    eq rx439_pos, -1, rx439_fail
+    jump $I10
+  rx439_done:
+    rx439_cur."!cursor_fail"()
+    if_null rx439_debug, debug_404
+    rx439_cur."!cursor_debug"("FAIL", "backslash:sym<c>")
+  debug_404:
+    .return (rx439_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<c>"  :subid("120_1283975941.34404") :method
-.annotate 'line', 0
-    $P418 = self."!PREFIX__!subrule"("charspec", "C")
-    $P419 = self."!PREFIX__!subrule"("charspec", "c")
-    new $P420, "ResizablePMCArray"
-    push $P420, $P418
-    push $P420, $P419
-    .return ($P420)
+.sub "!PREFIX__backslash:sym<c>"  :subid("126_1284728471.30547") :method
+.annotate 'line', 3
+    $P441 = self."!PREFIX__!subrule"("charspec", "C")
+    $P442 = self."!PREFIX__!subrule"("charspec", "c")
+    new $P443, "ResizablePMCArray"
+    push $P443, $P441
+    push $P443, $P442
+    .return ($P443)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<A>"  :subid("121_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx424_tgt
-    .local int rx424_pos
-    .local int rx424_off
-    .local int rx424_eos
-    .local int rx424_rep
-    .local pmc rx424_cur
-    .local pmc rx424_debug
-    (rx424_cur, rx424_pos, rx424_tgt, $I10) = self."!cursor_start"()
-    getattribute rx424_debug, rx424_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx424_cur
-    .local pmc match
-    .lex "$/", match
-    length rx424_eos, rx424_tgt
-    gt rx424_pos, rx424_eos, rx424_done
-    set rx424_off, 0
-    lt rx424_pos, 2, rx424_start
-    sub rx424_off, rx424_pos, 1
-    substr rx424_tgt, rx424_tgt, rx424_off
-  rx424_start:
-    eq $I10, 1, rx424_restart
-    if_null rx424_debug, debug_383
-    rx424_cur."!cursor_debug"("START", "backslash:sym<A>")
-  debug_383:
+.sub "backslash:sym<A>"  :subid("127_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx447_tgt
+    .local int rx447_pos
+    .local int rx447_off
+    .local int rx447_eos
+    .local int rx447_rep
+    .local pmc rx447_cur
+    .local pmc rx447_debug
+    (rx447_cur, rx447_pos, rx447_tgt, $I10) = self."!cursor_start"()
+    getattribute rx447_debug, rx447_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx447_cur
+    .local pmc match
+    .lex "$/", match
+    length rx447_eos, rx447_tgt
+    gt rx447_pos, rx447_eos, rx447_done
+    set rx447_off, 0
+    lt rx447_pos, 2, rx447_start
+    sub rx447_off, rx447_pos, 1
+    substr rx447_tgt, rx447_tgt, rx447_off
+  rx447_start:
+    eq $I10, 1, rx447_restart
+    if_null rx447_debug, debug_405
+    rx447_cur."!cursor_debug"("START", "backslash:sym<A>")
+  debug_405:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan428_done
-    goto rxscan428_scan
-  rxscan428_loop:
-    ($P10) = rx424_cur."from"()
-    inc $P10
-    set rx424_pos, $P10
-    ge rx424_pos, rx424_eos, rxscan428_done
-  rxscan428_scan:
-    set_addr $I10, rxscan428_loop
-    rx424_cur."!mark_push"(0, rx424_pos, $I10)
-  rxscan428_done:
+    ne $I10, -1, rxscan451_done
+    goto rxscan451_scan
+  rxscan451_loop:
+    ($P10) = rx447_cur."from"()
+    inc $P10
+    set rx447_pos, $P10
+    ge rx447_pos, rx447_eos, rxscan451_done
+  rxscan451_scan:
+    set_addr $I10, rxscan451_loop
+    rx447_cur."!mark_push"(0, rx447_pos, $I10)
+  rxscan451_done:
+.annotate 'line', 147
   # rx literal  "A"
-    add $I11, rx424_pos, 1
-    gt $I11, rx424_eos, rx424_fail
-    sub $I11, rx424_pos, rx424_off
-    ord $I11, rx424_tgt, $I11
-    ne $I11, 65, rx424_fail
-    add rx424_pos, 1
+    add $I11, rx447_pos, 1
+    gt $I11, rx447_eos, rx447_fail
+    sub $I11, rx447_pos, rx447_off
+    ord $I11, rx447_tgt, $I11
+    ne $I11, 65, rx447_fail
+    add rx447_pos, 1
   # rx subrule "obs" subtype=method negate=
-    rx424_cur."!cursor_pos"(rx424_pos)
-    $P10 = rx424_cur."obs"("\\A as beginning-of-string matcher", "^")
-    unless $P10, rx424_fail
-    rx424_pos = $P10."pos"()
-  # rx pass
-    rx424_cur."!cursor_pass"(rx424_pos, "backslash:sym<A>")
-    if_null rx424_debug, debug_384
-    rx424_cur."!cursor_debug"("PASS", "backslash:sym<A>", " at pos=", rx424_pos)
-  debug_384:
-    .return (rx424_cur)
-  rx424_restart:
-    if_null rx424_debug, debug_385
-    rx424_cur."!cursor_debug"("NEXT", "backslash:sym<A>")
-  debug_385:
-  rx424_fail:
-    (rx424_rep, rx424_pos, $I10, $P10) = rx424_cur."!mark_fail"(0)
-    lt rx424_pos, -1, rx424_done
-    eq rx424_pos, -1, rx424_fail
-    jump $I10
-  rx424_done:
-    rx424_cur."!cursor_fail"()
-    if_null rx424_debug, debug_386
-    rx424_cur."!cursor_debug"("FAIL", "backslash:sym<A>")
-  debug_386:
-    .return (rx424_cur)
+    rx447_cur."!cursor_pos"(rx447_pos)
+    $P10 = rx447_cur."obs"("\\A as beginning-of-string matcher", "^")
+    unless $P10, rx447_fail
+    rx447_pos = $P10."pos"()
+  # rx pass
+    rx447_cur."!cursor_pass"(rx447_pos, "backslash:sym<A>")
+    if_null rx447_debug, debug_406
+    rx447_cur."!cursor_debug"("PASS", "backslash:sym<A>", " at pos=", rx447_pos)
+  debug_406:
+    .return (rx447_cur)
+  rx447_restart:
+.annotate 'line', 3
+    if_null rx447_debug, debug_407
+    rx447_cur."!cursor_debug"("NEXT", "backslash:sym<A>")
+  debug_407:
+  rx447_fail:
+    (rx447_rep, rx447_pos, $I10, $P10) = rx447_cur."!mark_fail"(0)
+    lt rx447_pos, -1, rx447_done
+    eq rx447_pos, -1, rx447_fail
+    jump $I10
+  rx447_done:
+    rx447_cur."!cursor_fail"()
+    if_null rx447_debug, debug_408
+    rx447_cur."!cursor_debug"("FAIL", "backslash:sym<A>")
+  debug_408:
+    .return (rx447_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<A>"  :subid("122_1283975941.34404") :method
-.annotate 'line', 0
-    $P426 = self."!PREFIX__!subrule"("obs", "A")
-    new $P427, "ResizablePMCArray"
-    push $P427, $P426
-    .return ($P427)
+.sub "!PREFIX__backslash:sym<A>"  :subid("128_1284728471.30547") :method
+.annotate 'line', 3
+    $P449 = self."!PREFIX__!subrule"("obs", "A")
+    new $P450, "ResizablePMCArray"
+    push $P450, $P449
+    .return ($P450)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<z>"  :subid("123_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx430_tgt
-    .local int rx430_pos
-    .local int rx430_off
-    .local int rx430_eos
-    .local int rx430_rep
-    .local pmc rx430_cur
-    .local pmc rx430_debug
-    (rx430_cur, rx430_pos, rx430_tgt, $I10) = self."!cursor_start"()
-    getattribute rx430_debug, rx430_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx430_cur
-    .local pmc match
-    .lex "$/", match
-    length rx430_eos, rx430_tgt
-    gt rx430_pos, rx430_eos, rx430_done
-    set rx430_off, 0
-    lt rx430_pos, 2, rx430_start
-    sub rx430_off, rx430_pos, 1
-    substr rx430_tgt, rx430_tgt, rx430_off
-  rx430_start:
-    eq $I10, 1, rx430_restart
-    if_null rx430_debug, debug_387
-    rx430_cur."!cursor_debug"("START", "backslash:sym<z>")
-  debug_387:
+.sub "backslash:sym<z>"  :subid("129_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx453_tgt
+    .local int rx453_pos
+    .local int rx453_off
+    .local int rx453_eos
+    .local int rx453_rep
+    .local pmc rx453_cur
+    .local pmc rx453_debug
+    (rx453_cur, rx453_pos, rx453_tgt, $I10) = self."!cursor_start"()
+    getattribute rx453_debug, rx453_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx453_cur
+    .local pmc match
+    .lex "$/", match
+    length rx453_eos, rx453_tgt
+    gt rx453_pos, rx453_eos, rx453_done
+    set rx453_off, 0
+    lt rx453_pos, 2, rx453_start
+    sub rx453_off, rx453_pos, 1
+    substr rx453_tgt, rx453_tgt, rx453_off
+  rx453_start:
+    eq $I10, 1, rx453_restart
+    if_null rx453_debug, debug_409
+    rx453_cur."!cursor_debug"("START", "backslash:sym<z>")
+  debug_409:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan434_done
-    goto rxscan434_scan
-  rxscan434_loop:
-    ($P10) = rx430_cur."from"()
-    inc $P10
-    set rx430_pos, $P10
-    ge rx430_pos, rx430_eos, rxscan434_done
-  rxscan434_scan:
-    set_addr $I10, rxscan434_loop
-    rx430_cur."!mark_push"(0, rx430_pos, $I10)
-  rxscan434_done:
+    ne $I10, -1, rxscan457_done
+    goto rxscan457_scan
+  rxscan457_loop:
+    ($P10) = rx453_cur."from"()
+    inc $P10
+    set rx453_pos, $P10
+    ge rx453_pos, rx453_eos, rxscan457_done
+  rxscan457_scan:
+    set_addr $I10, rxscan457_loop
+    rx453_cur."!mark_push"(0, rx453_pos, $I10)
+  rxscan457_done:
+.annotate 'line', 148
   # rx literal  "z"
-    add $I11, rx430_pos, 1
-    gt $I11, rx430_eos, rx430_fail
-    sub $I11, rx430_pos, rx430_off
-    ord $I11, rx430_tgt, $I11
-    ne $I11, 122, rx430_fail
-    add rx430_pos, 1
+    add $I11, rx453_pos, 1
+    gt $I11, rx453_eos, rx453_fail
+    sub $I11, rx453_pos, rx453_off
+    ord $I11, rx453_tgt, $I11
+    ne $I11, 122, rx453_fail
+    add rx453_pos, 1
   # rx subrule "obs" subtype=method negate=
-    rx430_cur."!cursor_pos"(rx430_pos)
-    $P10 = rx430_cur."obs"("\\z as end-of-string matcher", "$")
-    unless $P10, rx430_fail
-    rx430_pos = $P10."pos"()
-  # rx pass
-    rx430_cur."!cursor_pass"(rx430_pos, "backslash:sym<z>")
-    if_null rx430_debug, debug_388
-    rx430_cur."!cursor_debug"("PASS", "backslash:sym<z>", " at pos=", rx430_pos)
-  debug_388:
-    .return (rx430_cur)
-  rx430_restart:
-    if_null rx430_debug, debug_389
-    rx430_cur."!cursor_debug"("NEXT", "backslash:sym<z>")
-  debug_389:
-  rx430_fail:
-    (rx430_rep, rx430_pos, $I10, $P10) = rx430_cur."!mark_fail"(0)
-    lt rx430_pos, -1, rx430_done
-    eq rx430_pos, -1, rx430_fail
-    jump $I10
-  rx430_done:
-    rx430_cur."!cursor_fail"()
-    if_null rx430_debug, debug_390
-    rx430_cur."!cursor_debug"("FAIL", "backslash:sym<z>")
-  debug_390:
-    .return (rx430_cur)
+    rx453_cur."!cursor_pos"(rx453_pos)
+    $P10 = rx453_cur."obs"("\\z as end-of-string matcher", "$")
+    unless $P10, rx453_fail
+    rx453_pos = $P10."pos"()
+  # rx pass
+    rx453_cur."!cursor_pass"(rx453_pos, "backslash:sym<z>")
+    if_null rx453_debug, debug_410
+    rx453_cur."!cursor_debug"("PASS", "backslash:sym<z>", " at pos=", rx453_pos)
+  debug_410:
+    .return (rx453_cur)
+  rx453_restart:
+.annotate 'line', 3
+    if_null rx453_debug, debug_411
+    rx453_cur."!cursor_debug"("NEXT", "backslash:sym<z>")
+  debug_411:
+  rx453_fail:
+    (rx453_rep, rx453_pos, $I10, $P10) = rx453_cur."!mark_fail"(0)
+    lt rx453_pos, -1, rx453_done
+    eq rx453_pos, -1, rx453_fail
+    jump $I10
+  rx453_done:
+    rx453_cur."!cursor_fail"()
+    if_null rx453_debug, debug_412
+    rx453_cur."!cursor_debug"("FAIL", "backslash:sym<z>")
+  debug_412:
+    .return (rx453_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<z>"  :subid("124_1283975941.34404") :method
-.annotate 'line', 0
-    $P432 = self."!PREFIX__!subrule"("obs", "z")
-    new $P433, "ResizablePMCArray"
-    push $P433, $P432
-    .return ($P433)
+.sub "!PREFIX__backslash:sym<z>"  :subid("130_1284728471.30547") :method
+.annotate 'line', 3
+    $P455 = self."!PREFIX__!subrule"("obs", "z")
+    new $P456, "ResizablePMCArray"
+    push $P456, $P455
+    .return ($P456)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Z>"  :subid("125_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx436_tgt
-    .local int rx436_pos
-    .local int rx436_off
-    .local int rx436_eos
-    .local int rx436_rep
-    .local pmc rx436_cur
-    .local pmc rx436_debug
-    (rx436_cur, rx436_pos, rx436_tgt, $I10) = self."!cursor_start"()
-    getattribute rx436_debug, rx436_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx436_cur
-    .local pmc match
-    .lex "$/", match
-    length rx436_eos, rx436_tgt
-    gt rx436_pos, rx436_eos, rx436_done
-    set rx436_off, 0
-    lt rx436_pos, 2, rx436_start
-    sub rx436_off, rx436_pos, 1
-    substr rx436_tgt, rx436_tgt, rx436_off
-  rx436_start:
-    eq $I10, 1, rx436_restart
-    if_null rx436_debug, debug_391
-    rx436_cur."!cursor_debug"("START", "backslash:sym<Z>")
-  debug_391:
+.sub "backslash:sym<Z>"  :subid("131_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx459_tgt
+    .local int rx459_pos
+    .local int rx459_off
+    .local int rx459_eos
+    .local int rx459_rep
+    .local pmc rx459_cur
+    .local pmc rx459_debug
+    (rx459_cur, rx459_pos, rx459_tgt, $I10) = self."!cursor_start"()
+    getattribute rx459_debug, rx459_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx459_cur
+    .local pmc match
+    .lex "$/", match
+    length rx459_eos, rx459_tgt
+    gt rx459_pos, rx459_eos, rx459_done
+    set rx459_off, 0
+    lt rx459_pos, 2, rx459_start
+    sub rx459_off, rx459_pos, 1
+    substr rx459_tgt, rx459_tgt, rx459_off
+  rx459_start:
+    eq $I10, 1, rx459_restart
+    if_null rx459_debug, debug_413
+    rx459_cur."!cursor_debug"("START", "backslash:sym<Z>")
+  debug_413:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan440_done
-    goto rxscan440_scan
-  rxscan440_loop:
-    ($P10) = rx436_cur."from"()
-    inc $P10
-    set rx436_pos, $P10
-    ge rx436_pos, rx436_eos, rxscan440_done
-  rxscan440_scan:
-    set_addr $I10, rxscan440_loop
-    rx436_cur."!mark_push"(0, rx436_pos, $I10)
-  rxscan440_done:
+    ne $I10, -1, rxscan463_done
+    goto rxscan463_scan
+  rxscan463_loop:
+    ($P10) = rx459_cur."from"()
+    inc $P10
+    set rx459_pos, $P10
+    ge rx459_pos, rx459_eos, rxscan463_done
+  rxscan463_scan:
+    set_addr $I10, rxscan463_loop
+    rx459_cur."!mark_push"(0, rx459_pos, $I10)
+  rxscan463_done:
+.annotate 'line', 149
   # rx literal  "Z"
-    add $I11, rx436_pos, 1
-    gt $I11, rx436_eos, rx436_fail
-    sub $I11, rx436_pos, rx436_off
-    ord $I11, rx436_tgt, $I11
-    ne $I11, 90, rx436_fail
-    add rx436_pos, 1
+    add $I11, rx459_pos, 1
+    gt $I11, rx459_eos, rx459_fail
+    sub $I11, rx459_pos, rx459_off
+    ord $I11, rx459_tgt, $I11
+    ne $I11, 90, rx459_fail
+    add rx459_pos, 1
   # rx subrule "obs" subtype=method negate=
-    rx436_cur."!cursor_pos"(rx436_pos)
-    $P10 = rx436_cur."obs"("\\Z as end-of-string matcher", "\\n?$")
-    unless $P10, rx436_fail
-    rx436_pos = $P10."pos"()
-  # rx pass
-    rx436_cur."!cursor_pass"(rx436_pos, "backslash:sym<Z>")
-    if_null rx436_debug, debug_392
-    rx436_cur."!cursor_debug"("PASS", "backslash:sym<Z>", " at pos=", rx436_pos)
-  debug_392:
-    .return (rx436_cur)
-  rx436_restart:
-    if_null rx436_debug, debug_393
-    rx436_cur."!cursor_debug"("NEXT", "backslash:sym<Z>")
-  debug_393:
-  rx436_fail:
-    (rx436_rep, rx436_pos, $I10, $P10) = rx436_cur."!mark_fail"(0)
-    lt rx436_pos, -1, rx436_done
-    eq rx436_pos, -1, rx436_fail
-    jump $I10
-  rx436_done:
-    rx436_cur."!cursor_fail"()
-    if_null rx436_debug, debug_394
-    rx436_cur."!cursor_debug"("FAIL", "backslash:sym<Z>")
-  debug_394:
-    .return (rx436_cur)
+    rx459_cur."!cursor_pos"(rx459_pos)
+    $P10 = rx459_cur."obs"("\\Z as end-of-string matcher", "\\n?$")
+    unless $P10, rx459_fail
+    rx459_pos = $P10."pos"()
+  # rx pass
+    rx459_cur."!cursor_pass"(rx459_pos, "backslash:sym<Z>")
+    if_null rx459_debug, debug_414
+    rx459_cur."!cursor_debug"("PASS", "backslash:sym<Z>", " at pos=", rx459_pos)
+  debug_414:
+    .return (rx459_cur)
+  rx459_restart:
+.annotate 'line', 3
+    if_null rx459_debug, debug_415
+    rx459_cur."!cursor_debug"("NEXT", "backslash:sym<Z>")
+  debug_415:
+  rx459_fail:
+    (rx459_rep, rx459_pos, $I10, $P10) = rx459_cur."!mark_fail"(0)
+    lt rx459_pos, -1, rx459_done
+    eq rx459_pos, -1, rx459_fail
+    jump $I10
+  rx459_done:
+    rx459_cur."!cursor_fail"()
+    if_null rx459_debug, debug_416
+    rx459_cur."!cursor_debug"("FAIL", "backslash:sym<Z>")
+  debug_416:
+    .return (rx459_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Z>"  :subid("126_1283975941.34404") :method
-.annotate 'line', 0
-    $P438 = self."!PREFIX__!subrule"("obs", "Z")
-    new $P439, "ResizablePMCArray"
-    push $P439, $P438
-    .return ($P439)
+.sub "!PREFIX__backslash:sym<Z>"  :subid("132_1284728471.30547") :method
+.annotate 'line', 3
+    $P461 = self."!PREFIX__!subrule"("obs", "Z")
+    new $P462, "ResizablePMCArray"
+    push $P462, $P461
+    .return ($P462)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Q>"  :subid("127_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx442_tgt
-    .local int rx442_pos
-    .local int rx442_off
-    .local int rx442_eos
-    .local int rx442_rep
-    .local pmc rx442_cur
-    .local pmc rx442_debug
-    (rx442_cur, rx442_pos, rx442_tgt, $I10) = self."!cursor_start"()
-    getattribute rx442_debug, rx442_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx442_cur
-    .local pmc match
-    .lex "$/", match
-    length rx442_eos, rx442_tgt
-    gt rx442_pos, rx442_eos, rx442_done
-    set rx442_off, 0
-    lt rx442_pos, 2, rx442_start
-    sub rx442_off, rx442_pos, 1
-    substr rx442_tgt, rx442_tgt, rx442_off
-  rx442_start:
-    eq $I10, 1, rx442_restart
-    if_null rx442_debug, debug_395
-    rx442_cur."!cursor_debug"("START", "backslash:sym<Q>")
-  debug_395:
+.sub "backslash:sym<Q>"  :subid("133_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx465_tgt
+    .local int rx465_pos
+    .local int rx465_off
+    .local int rx465_eos
+    .local int rx465_rep
+    .local pmc rx465_cur
+    .local pmc rx465_debug
+    (rx465_cur, rx465_pos, rx465_tgt, $I10) = self."!cursor_start"()
+    getattribute rx465_debug, rx465_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx465_cur
+    .local pmc match
+    .lex "$/", match
+    length rx465_eos, rx465_tgt
+    gt rx465_pos, rx465_eos, rx465_done
+    set rx465_off, 0
+    lt rx465_pos, 2, rx465_start
+    sub rx465_off, rx465_pos, 1
+    substr rx465_tgt, rx465_tgt, rx465_off
+  rx465_start:
+    eq $I10, 1, rx465_restart
+    if_null rx465_debug, debug_417
+    rx465_cur."!cursor_debug"("START", "backslash:sym<Q>")
+  debug_417:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan446_done
-    goto rxscan446_scan
-  rxscan446_loop:
-    ($P10) = rx442_cur."from"()
-    inc $P10
-    set rx442_pos, $P10
-    ge rx442_pos, rx442_eos, rxscan446_done
-  rxscan446_scan:
-    set_addr $I10, rxscan446_loop
-    rx442_cur."!mark_push"(0, rx442_pos, $I10)
-  rxscan446_done:
+    ne $I10, -1, rxscan469_done
+    goto rxscan469_scan
+  rxscan469_loop:
+    ($P10) = rx465_cur."from"()
+    inc $P10
+    set rx465_pos, $P10
+    ge rx465_pos, rx465_eos, rxscan469_done
+  rxscan469_scan:
+    set_addr $I10, rxscan469_loop
+    rx465_cur."!mark_push"(0, rx465_pos, $I10)
+  rxscan469_done:
+.annotate 'line', 150
   # rx literal  "Q"
-    add $I11, rx442_pos, 1
-    gt $I11, rx442_eos, rx442_fail
-    sub $I11, rx442_pos, rx442_off
-    ord $I11, rx442_tgt, $I11
-    ne $I11, 81, rx442_fail
-    add rx442_pos, 1
+    add $I11, rx465_pos, 1
+    gt $I11, rx465_eos, rx465_fail
+    sub $I11, rx465_pos, rx465_off
+    ord $I11, rx465_tgt, $I11
+    ne $I11, 81, rx465_fail
+    add rx465_pos, 1
   # rx subrule "obs" subtype=method negate=
-    rx442_cur."!cursor_pos"(rx442_pos)
-    $P10 = rx442_cur."obs"("\\Q as quotemeta", "quotes or literal variable match")
-    unless $P10, rx442_fail
-    rx442_pos = $P10."pos"()
-  # rx pass
-    rx442_cur."!cursor_pass"(rx442_pos, "backslash:sym<Q>")
-    if_null rx442_debug, debug_396
-    rx442_cur."!cursor_debug"("PASS", "backslash:sym<Q>", " at pos=", rx442_pos)
-  debug_396:
-    .return (rx442_cur)
-  rx442_restart:
-    if_null rx442_debug, debug_397
-    rx442_cur."!cursor_debug"("NEXT", "backslash:sym<Q>")
-  debug_397:
-  rx442_fail:
-    (rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0)
-    lt rx442_pos, -1, rx442_done
-    eq rx442_pos, -1, rx442_fail
-    jump $I10
-  rx442_done:
-    rx442_cur."!cursor_fail"()
-    if_null rx442_debug, debug_398
-    rx442_cur."!cursor_debug"("FAIL", "backslash:sym<Q>")
-  debug_398:
-    .return (rx442_cur)
+    rx465_cur."!cursor_pos"(rx465_pos)
+    $P10 = rx465_cur."obs"("\\Q as quotemeta", "quotes or literal variable match")
+    unless $P10, rx465_fail
+    rx465_pos = $P10."pos"()
+  # rx pass
+    rx465_cur."!cursor_pass"(rx465_pos, "backslash:sym<Q>")
+    if_null rx465_debug, debug_418
+    rx465_cur."!cursor_debug"("PASS", "backslash:sym<Q>", " at pos=", rx465_pos)
+  debug_418:
+    .return (rx465_cur)
+  rx465_restart:
+.annotate 'line', 3
+    if_null rx465_debug, debug_419
+    rx465_cur."!cursor_debug"("NEXT", "backslash:sym<Q>")
+  debug_419:
+  rx465_fail:
+    (rx465_rep, rx465_pos, $I10, $P10) = rx465_cur."!mark_fail"(0)
+    lt rx465_pos, -1, rx465_done
+    eq rx465_pos, -1, rx465_fail
+    jump $I10
+  rx465_done:
+    rx465_cur."!cursor_fail"()
+    if_null rx465_debug, debug_420
+    rx465_cur."!cursor_debug"("FAIL", "backslash:sym<Q>")
+  debug_420:
+    .return (rx465_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Q>"  :subid("128_1283975941.34404") :method
-.annotate 'line', 0
-    $P444 = self."!PREFIX__!subrule"("obs", "Q")
-    new $P445, "ResizablePMCArray"
-    push $P445, $P444
-    .return ($P445)
+.sub "!PREFIX__backslash:sym<Q>"  :subid("134_1284728471.30547") :method
+.annotate 'line', 3
+    $P467 = self."!PREFIX__!subrule"("obs", "Q")
+    new $P468, "ResizablePMCArray"
+    push $P468, $P467
+    .return ($P468)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<unrec>"  :subid("129_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .const 'Sub' $P455 = "131_1283975941.34404" 
-    capture_lex $P455
-    .local string rx448_tgt
-    .local int rx448_pos
-    .local int rx448_off
-    .local int rx448_eos
-    .local int rx448_rep
-    .local pmc rx448_cur
-    .local pmc rx448_debug
-    (rx448_cur, rx448_pos, rx448_tgt, $I10) = self."!cursor_start"()
-    getattribute rx448_debug, rx448_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx448_cur
-    .local pmc match
-    .lex "$/", match
-    length rx448_eos, rx448_tgt
-    gt rx448_pos, rx448_eos, rx448_done
-    set rx448_off, 0
-    lt rx448_pos, 2, rx448_start
-    sub rx448_off, rx448_pos, 1
-    substr rx448_tgt, rx448_tgt, rx448_off
-  rx448_start:
-    eq $I10, 1, rx448_restart
-    if_null rx448_debug, debug_399
-    rx448_cur."!cursor_debug"("START", "backslash:sym<unrec>")
-  debug_399:
+.sub "backslash:sym<unrec>"  :subid("135_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .const 'Sub' $P478 = "137_1284728471.30547" 
+    capture_lex $P478
+    .local string rx471_tgt
+    .local int rx471_pos
+    .local int rx471_off
+    .local int rx471_eos
+    .local int rx471_rep
+    .local pmc rx471_cur
+    .local pmc rx471_debug
+    (rx471_cur, rx471_pos, rx471_tgt, $I10) = self."!cursor_start"()
+    getattribute rx471_debug, rx471_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx471_cur
+    .local pmc match
+    .lex "$/", match
+    length rx471_eos, rx471_tgt
+    gt rx471_pos, rx471_eos, rx471_done
+    set rx471_off, 0
+    lt rx471_pos, 2, rx471_start
+    sub rx471_off, rx471_pos, 1
+    substr rx471_tgt, rx471_tgt, rx471_off
+  rx471_start:
+    eq $I10, 1, rx471_restart
+    if_null rx471_debug, debug_421
+    rx471_cur."!cursor_debug"("START", "backslash:sym<unrec>")
+  debug_421:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan451_done
-    goto rxscan451_scan
-  rxscan451_loop:
-    ($P10) = rx448_cur."from"()
-    inc $P10
-    set rx448_pos, $P10
-    ge rx448_pos, rx448_eos, rxscan451_done
-  rxscan451_scan:
-    set_addr $I10, rxscan451_loop
-    rx448_cur."!mark_push"(0, rx448_pos, $I10)
-  rxscan451_done:
-    rx448_cur."!cursor_pos"(rx448_pos)
-    find_lex $P452, unicode:"$\x{a2}"
-    $P453 = $P452."MATCH"()
-    store_lex "$/", $P453
-    .const 'Sub' $P455 = "131_1283975941.34404" 
-    capture_lex $P455
-    $P456 = $P455()
+    ne $I10, -1, rxscan474_done
+    goto rxscan474_scan
+  rxscan474_loop:
+    ($P10) = rx471_cur."from"()
+    inc $P10
+    set rx471_pos, $P10
+    ge rx471_pos, rx471_eos, rxscan474_done
+  rxscan474_scan:
+    set_addr $I10, rxscan474_loop
+    rx471_cur."!mark_push"(0, rx471_pos, $I10)
+  rxscan474_done:
+.annotate 'line', 151
+    rx471_cur."!cursor_pos"(rx471_pos)
+    find_lex $P475, unicode:"$\x{a2}"
+    $P476 = $P475."MATCH"()
+    store_lex "$/", $P476
+    .const 'Sub' $P478 = "137_1284728471.30547" 
+    capture_lex $P478
+    $P479 = $P478()
   # rx charclass w
-    ge rx448_pos, rx448_eos, rx448_fail
-    sub $I10, rx448_pos, rx448_off
-    is_cclass $I11, 8192, rx448_tgt, $I10
-    unless $I11, rx448_fail
-    inc rx448_pos
+    ge rx471_pos, rx471_eos, rx471_fail
+    sub $I10, rx471_pos, rx471_off
+    is_cclass $I11, 8192, rx471_tgt, $I10
+    unless $I11, rx471_fail
+    inc rx471_pos
   # rx subrule "panic" subtype=method negate=
-    rx448_cur."!cursor_pos"(rx448_pos)
-    $P10 = rx448_cur."panic"("Unrecognized backslash sequence")
-    unless $P10, rx448_fail
-    rx448_pos = $P10."pos"()
-  # rx pass
-    rx448_cur."!cursor_pass"(rx448_pos, "backslash:sym<unrec>")
-    if_null rx448_debug, debug_400
-    rx448_cur."!cursor_debug"("PASS", "backslash:sym<unrec>", " at pos=", rx448_pos)
-  debug_400:
-    .return (rx448_cur)
-  rx448_restart:
-    if_null rx448_debug, debug_401
-    rx448_cur."!cursor_debug"("NEXT", "backslash:sym<unrec>")
-  debug_401:
-  rx448_fail:
-    (rx448_rep, rx448_pos, $I10, $P10) = rx448_cur."!mark_fail"(0)
-    lt rx448_pos, -1, rx448_done
-    eq rx448_pos, -1, rx448_fail
-    jump $I10
-  rx448_done:
-    rx448_cur."!cursor_fail"()
-    if_null rx448_debug, debug_402
-    rx448_cur."!cursor_debug"("FAIL", "backslash:sym<unrec>")
-  debug_402:
-    .return (rx448_cur)
+    rx471_cur."!cursor_pos"(rx471_pos)
+    $P10 = rx471_cur."panic"("Unrecognized backslash sequence")
+    unless $P10, rx471_fail
+    rx471_pos = $P10."pos"()
+  # rx pass
+    rx471_cur."!cursor_pass"(rx471_pos, "backslash:sym<unrec>")
+    if_null rx471_debug, debug_422
+    rx471_cur."!cursor_debug"("PASS", "backslash:sym<unrec>", " at pos=", rx471_pos)
+  debug_422:
+    .return (rx471_cur)
+  rx471_restart:
+.annotate 'line', 3
+    if_null rx471_debug, debug_423
+    rx471_cur."!cursor_debug"("NEXT", "backslash:sym<unrec>")
+  debug_423:
+  rx471_fail:
+    (rx471_rep, rx471_pos, $I10, $P10) = rx471_cur."!mark_fail"(0)
+    lt rx471_pos, -1, rx471_done
+    eq rx471_pos, -1, rx471_fail
+    jump $I10
+  rx471_done:
+    rx471_cur."!cursor_fail"()
+    if_null rx471_debug, debug_424
+    rx471_cur."!cursor_debug"("FAIL", "backslash:sym<unrec>")
+  debug_424:
+    .return (rx471_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<unrec>"  :subid("130_1283975941.34404") :method
-.annotate 'line', 0
-    new $P450, "ResizablePMCArray"
-    push $P450, ""
-    .return ($P450)
+.sub "!PREFIX__backslash:sym<unrec>"  :subid("136_1284728471.30547") :method
+.annotate 'line', 3
+    new $P473, "ResizablePMCArray"
+    push $P473, ""
+    .return ($P473)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block454"  :anon :subid("131_1283975941.34404") :outer("129_1283975941.34404")
-.annotate 'line', 0
+.sub "_block477"  :anon :subid("137_1284728471.30547") :outer("135_1284728471.30547")
+.annotate 'line', 151
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<misc>"  :subid("132_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx458_tgt
-    .local int rx458_pos
-    .local int rx458_off
-    .local int rx458_eos
-    .local int rx458_rep
-    .local pmc rx458_cur
-    .local pmc rx458_debug
-    (rx458_cur, rx458_pos, rx458_tgt, $I10) = self."!cursor_start"()
-    getattribute rx458_debug, rx458_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx458_cur
-    .local pmc match
-    .lex "$/", match
-    length rx458_eos, rx458_tgt
-    gt rx458_pos, rx458_eos, rx458_done
-    set rx458_off, 0
-    lt rx458_pos, 2, rx458_start
-    sub rx458_off, rx458_pos, 1
-    substr rx458_tgt, rx458_tgt, rx458_off
-  rx458_start:
-    eq $I10, 1, rx458_restart
-    if_null rx458_debug, debug_403
-    rx458_cur."!cursor_debug"("START", "backslash:sym<misc>")
-  debug_403:
+.sub "backslash:sym<misc>"  :subid("138_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx481_tgt
+    .local int rx481_pos
+    .local int rx481_off
+    .local int rx481_eos
+    .local int rx481_rep
+    .local pmc rx481_cur
+    .local pmc rx481_debug
+    (rx481_cur, rx481_pos, rx481_tgt, $I10) = self."!cursor_start"()
+    getattribute rx481_debug, rx481_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx481_cur
+    .local pmc match
+    .lex "$/", match
+    length rx481_eos, rx481_tgt
+    gt rx481_pos, rx481_eos, rx481_done
+    set rx481_off, 0
+    lt rx481_pos, 2, rx481_start
+    sub rx481_off, rx481_pos, 1
+    substr rx481_tgt, rx481_tgt, rx481_off
+  rx481_start:
+    eq $I10, 1, rx481_restart
+    if_null rx481_debug, debug_425
+    rx481_cur."!cursor_debug"("START", "backslash:sym<misc>")
+  debug_425:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan461_done
-    goto rxscan461_scan
-  rxscan461_loop:
-    ($P10) = rx458_cur."from"()
-    inc $P10
-    set rx458_pos, $P10
-    ge rx458_pos, rx458_eos, rxscan461_done
-  rxscan461_scan:
-    set_addr $I10, rxscan461_loop
-    rx458_cur."!mark_push"(0, rx458_pos, $I10)
-  rxscan461_done:
+    ne $I10, -1, rxscan484_done
+    goto rxscan484_scan
+  rxscan484_loop:
+    ($P10) = rx481_cur."from"()
+    inc $P10
+    set rx481_pos, $P10
+    ge rx481_pos, rx481_eos, rxscan484_done
+  rxscan484_scan:
+    set_addr $I10, rxscan484_loop
+    rx481_cur."!mark_push"(0, rx481_pos, $I10)
+  rxscan484_done:
+.annotate 'line', 152
   # rx charclass W
-    ge rx458_pos, rx458_eos, rx458_fail
-    sub $I10, rx458_pos, rx458_off
-    is_cclass $I11, 8192, rx458_tgt, $I10
-    if $I11, rx458_fail
-    inc rx458_pos
-  # rx pass
-    rx458_cur."!cursor_pass"(rx458_pos, "backslash:sym<misc>")
-    if_null rx458_debug, debug_404
-    rx458_cur."!cursor_debug"("PASS", "backslash:sym<misc>", " at pos=", rx458_pos)
-  debug_404:
-    .return (rx458_cur)
-  rx458_restart:
-    if_null rx458_debug, debug_405
-    rx458_cur."!cursor_debug"("NEXT", "backslash:sym<misc>")
-  debug_405:
-  rx458_fail:
-    (rx458_rep, rx458_pos, $I10, $P10) = rx458_cur."!mark_fail"(0)
-    lt rx458_pos, -1, rx458_done
-    eq rx458_pos, -1, rx458_fail
-    jump $I10
-  rx458_done:
-    rx458_cur."!cursor_fail"()
-    if_null rx458_debug, debug_406
-    rx458_cur."!cursor_debug"("FAIL", "backslash:sym<misc>")
-  debug_406:
-    .return (rx458_cur)
+    ge rx481_pos, rx481_eos, rx481_fail
+    sub $I10, rx481_pos, rx481_off
+    is_cclass $I11, 8192, rx481_tgt, $I10
+    if $I11, rx481_fail
+    inc rx481_pos
+  # rx pass
+    rx481_cur."!cursor_pass"(rx481_pos, "backslash:sym<misc>")
+    if_null rx481_debug, debug_426
+    rx481_cur."!cursor_debug"("PASS", "backslash:sym<misc>", " at pos=", rx481_pos)
+  debug_426:
+    .return (rx481_cur)
+  rx481_restart:
+.annotate 'line', 3
+    if_null rx481_debug, debug_427
+    rx481_cur."!cursor_debug"("NEXT", "backslash:sym<misc>")
+  debug_427:
+  rx481_fail:
+    (rx481_rep, rx481_pos, $I10, $P10) = rx481_cur."!mark_fail"(0)
+    lt rx481_pos, -1, rx481_done
+    eq rx481_pos, -1, rx481_fail
+    jump $I10
+  rx481_done:
+    rx481_cur."!cursor_fail"()
+    if_null rx481_debug, debug_428
+    rx481_cur."!cursor_debug"("FAIL", "backslash:sym<misc>")
+  debug_428:
+    .return (rx481_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<misc>"  :subid("133_1283975941.34404") :method
-.annotate 'line', 0
-    new $P460, "ResizablePMCArray"
-    push $P460, ""
-    .return ($P460)
+.sub "!PREFIX__backslash:sym<misc>"  :subid("139_1284728471.30547") :method
+.annotate 'line', 3
+    new $P483, "ResizablePMCArray"
+    push $P483, ""
+    .return ($P483)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion"  :subid("134_1283975941.34404") :method
-.annotate 'line', 0
-    $P463 = self."!protoregex"("assertion")
-    .return ($P463)
+.sub "assertion"  :subid("140_1284728471.30547") :method
+.annotate 'line', 154
+    $P486 = self."!protoregex"("assertion")
+    .return ($P486)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion"  :subid("135_1283975941.34404") :method
-.annotate 'line', 0
-    $P465 = self."!PREFIX__!protoregex"("assertion")
-    .return ($P465)
+.sub "!PREFIX__assertion"  :subid("141_1284728471.30547") :method
+.annotate 'line', 154
+    $P488 = self."!PREFIX__!protoregex"("assertion")
+    .return ($P488)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<?>"  :subid("136_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .const 'Sub' $P474 = "138_1283975941.34404" 
-    capture_lex $P474
-    .local string rx467_tgt
-    .local int rx467_pos
-    .local int rx467_off
-    .local int rx467_eos
-    .local int rx467_rep
-    .local pmc rx467_cur
-    .local pmc rx467_debug
-    (rx467_cur, rx467_pos, rx467_tgt, $I10) = self."!cursor_start"()
-    getattribute rx467_debug, rx467_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx467_cur
-    .local pmc match
-    .lex "$/", match
-    length rx467_eos, rx467_tgt
-    gt rx467_pos, rx467_eos, rx467_done
-    set rx467_off, 0
-    lt rx467_pos, 2, rx467_start
-    sub rx467_off, rx467_pos, 1
-    substr rx467_tgt, rx467_tgt, rx467_off
-  rx467_start:
-    eq $I10, 1, rx467_restart
-    if_null rx467_debug, debug_407
-    rx467_cur."!cursor_debug"("START", "assertion:sym<?>")
-  debug_407:
+.sub "assertion:sym<?>"  :subid("142_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .const 'Sub' $P497 = "144_1284728471.30547" 
+    capture_lex $P497
+    .local string rx490_tgt
+    .local int rx490_pos
+    .local int rx490_off
+    .local int rx490_eos
+    .local int rx490_rep
+    .local pmc rx490_cur
+    .local pmc rx490_debug
+    (rx490_cur, rx490_pos, rx490_tgt, $I10) = self."!cursor_start"()
+    getattribute rx490_debug, rx490_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx490_cur
+    .local pmc match
+    .lex "$/", match
+    length rx490_eos, rx490_tgt
+    gt rx490_pos, rx490_eos, rx490_done
+    set rx490_off, 0
+    lt rx490_pos, 2, rx490_start
+    sub rx490_off, rx490_pos, 1
+    substr rx490_tgt, rx490_tgt, rx490_off
+  rx490_start:
+    eq $I10, 1, rx490_restart
+    if_null rx490_debug, debug_429
+    rx490_cur."!cursor_debug"("START", "assertion:sym<?>")
+  debug_429:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan471_done
-    goto rxscan471_scan
-  rxscan471_loop:
-    ($P10) = rx467_cur."from"()
-    inc $P10
-    set rx467_pos, $P10
-    ge rx467_pos, rx467_eos, rxscan471_done
-  rxscan471_scan:
-    set_addr $I10, rxscan471_loop
-    rx467_cur."!mark_push"(0, rx467_pos, $I10)
-  rxscan471_done:
+    ne $I10, -1, rxscan494_done
+    goto rxscan494_scan
+  rxscan494_loop:
+    ($P10) = rx490_cur."from"()
+    inc $P10
+    set rx490_pos, $P10
+    ge rx490_pos, rx490_eos, rxscan494_done
+  rxscan494_scan:
+    set_addr $I10, rxscan494_loop
+    rx490_cur."!mark_push"(0, rx490_pos, $I10)
+  rxscan494_done:
+.annotate 'line', 156
   # rx literal  "?"
-    add $I11, rx467_pos, 1
-    gt $I11, rx467_eos, rx467_fail
-    sub $I11, rx467_pos, rx467_off
-    ord $I11, rx467_tgt, $I11
-    ne $I11, 63, rx467_fail
-    add rx467_pos, 1
-  alt472_0:
-    set_addr $I10, alt472_1
-    rx467_cur."!mark_push"(0, rx467_pos, $I10)
+    add $I11, rx490_pos, 1
+    gt $I11, rx490_eos, rx490_fail
+    sub $I11, rx490_pos, rx490_off
+    ord $I11, rx490_tgt, $I11
+    ne $I11, 63, rx490_fail
+    add rx490_pos, 1
+  alt495_0:
+    set_addr $I10, alt495_1
+    rx490_cur."!mark_push"(0, rx490_pos, $I10)
   # rx subrule "before" subtype=zerowidth negate=
-    rx467_cur."!cursor_pos"(rx467_pos)
-    .const 'Sub' $P474 = "138_1283975941.34404" 
-    capture_lex $P474
-    $P10 = rx467_cur."before"($P474)
-    unless $P10, rx467_fail
-    goto alt472_end
-  alt472_1:
+    rx490_cur."!cursor_pos"(rx490_pos)
+    .const 'Sub' $P497 = "144_1284728471.30547" 
+    capture_lex $P497
+    $P10 = rx490_cur."before"($P497)
+    unless $P10, rx490_fail
+    goto alt495_end
+  alt495_1:
   # rx subrule "assertion" subtype=capture negate=
-    rx467_cur."!cursor_pos"(rx467_pos)
-    $P10 = rx467_cur."assertion"()
-    unless $P10, rx467_fail
-    rx467_cur."!mark_push"(0, -1, 0, $P10)
+    rx490_cur."!cursor_pos"(rx490_pos)
+    $P10 = rx490_cur."assertion"()
+    unless $P10, rx490_fail
+    rx490_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx467_pos = $P10."pos"()
-  alt472_end:
+    rx490_pos = $P10."pos"()
+  alt495_end:
   # rx pass
-    rx467_cur."!cursor_pass"(rx467_pos, "assertion:sym<?>")
-    if_null rx467_debug, debug_412
-    rx467_cur."!cursor_debug"("PASS", "assertion:sym<?>", " at pos=", rx467_pos)
-  debug_412:
-    .return (rx467_cur)
-  rx467_restart:
-    if_null rx467_debug, debug_413
-    rx467_cur."!cursor_debug"("NEXT", "assertion:sym<?>")
-  debug_413:
-  rx467_fail:
-    (rx467_rep, rx467_pos, $I10, $P10) = rx467_cur."!mark_fail"(0)
-    lt rx467_pos, -1, rx467_done
-    eq rx467_pos, -1, rx467_fail
-    jump $I10
-  rx467_done:
-    rx467_cur."!cursor_fail"()
-    if_null rx467_debug, debug_414
-    rx467_cur."!cursor_debug"("FAIL", "assertion:sym<?>")
-  debug_414:
-    .return (rx467_cur)
+    rx490_cur."!cursor_pass"(rx490_pos, "assertion:sym<?>")
+    if_null rx490_debug, debug_434
+    rx490_cur."!cursor_debug"("PASS", "assertion:sym<?>", " at pos=", rx490_pos)
+  debug_434:
+    .return (rx490_cur)
+  rx490_restart:
+.annotate 'line', 3
+    if_null rx490_debug, debug_435
+    rx490_cur."!cursor_debug"("NEXT", "assertion:sym<?>")
+  debug_435:
+  rx490_fail:
+    (rx490_rep, rx490_pos, $I10, $P10) = rx490_cur."!mark_fail"(0)
+    lt rx490_pos, -1, rx490_done
+    eq rx490_pos, -1, rx490_fail
+    jump $I10
+  rx490_done:
+    rx490_cur."!cursor_fail"()
+    if_null rx490_debug, debug_436
+    rx490_cur."!cursor_debug"("FAIL", "assertion:sym<?>")
+  debug_436:
+    .return (rx490_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<?>"  :subid("137_1283975941.34404") :method
-.annotate 'line', 0
-    $P469 = self."!PREFIX__!subrule"("assertion", "?")
-    new $P470, "ResizablePMCArray"
-    push $P470, $P469
-    push $P470, "?"
-    .return ($P470)
+.sub "!PREFIX__assertion:sym<?>"  :subid("143_1284728471.30547") :method
+.annotate 'line', 3
+    $P492 = self."!PREFIX__!subrule"("assertion", "?")
+    new $P493, "ResizablePMCArray"
+    push $P493, $P492
+    push $P493, "?"
+    .return ($P493)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block473"  :anon :subid("138_1283975941.34404") :method :outer("136_1283975941.34404")
-.annotate 'line', 0
-    .local string rx475_tgt
-    .local int rx475_pos
-    .local int rx475_off
-    .local int rx475_eos
-    .local int rx475_rep
-    .local pmc rx475_cur
-    .local pmc rx475_debug
-    (rx475_cur, rx475_pos, rx475_tgt, $I10) = self."!cursor_start"()
-    getattribute rx475_debug, rx475_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx475_cur
-    .local pmc match
-    .lex "$/", match
-    length rx475_eos, rx475_tgt
-    gt rx475_pos, rx475_eos, rx475_done
-    set rx475_off, 0
-    lt rx475_pos, 2, rx475_start
-    sub rx475_off, rx475_pos, 1
-    substr rx475_tgt, rx475_tgt, rx475_off
-  rx475_start:
-    eq $I10, 1, rx475_restart
-    if_null rx475_debug, debug_408
-    rx475_cur."!cursor_debug"("START", "")
-  debug_408:
+.sub "_block496"  :anon :subid("144_1284728471.30547") :method :outer("142_1284728471.30547")
+.annotate 'line', 156
+    .local string rx498_tgt
+    .local int rx498_pos
+    .local int rx498_off
+    .local int rx498_eos
+    .local int rx498_rep
+    .local pmc rx498_cur
+    .local pmc rx498_debug
+    (rx498_cur, rx498_pos, rx498_tgt, $I10) = self."!cursor_start"()
+    getattribute rx498_debug, rx498_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx498_cur
+    .local pmc match
+    .lex "$/", match
+    length rx498_eos, rx498_tgt
+    gt rx498_pos, rx498_eos, rx498_done
+    set rx498_off, 0
+    lt rx498_pos, 2, rx498_start
+    sub rx498_off, rx498_pos, 1
+    substr rx498_tgt, rx498_tgt, rx498_off
+  rx498_start:
+    eq $I10, 1, rx498_restart
+    if_null rx498_debug, debug_430
+    rx498_cur."!cursor_debug"("START", "")
+  debug_430:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan476_done
-    goto rxscan476_scan
-  rxscan476_loop:
-    ($P10) = rx475_cur."from"()
-    inc $P10
-    set rx475_pos, $P10
-    ge rx475_pos, rx475_eos, rxscan476_done
-  rxscan476_scan:
-    set_addr $I10, rxscan476_loop
-    rx475_cur."!mark_push"(0, rx475_pos, $I10)
-  rxscan476_done:
+    ne $I10, -1, rxscan499_done
+    goto rxscan499_scan
+  rxscan499_loop:
+    ($P10) = rx498_cur."from"()
+    inc $P10
+    set rx498_pos, $P10
+    ge rx498_pos, rx498_eos, rxscan499_done
+  rxscan499_scan:
+    set_addr $I10, rxscan499_loop
+    rx498_cur."!mark_push"(0, rx498_pos, $I10)
+  rxscan499_done:
   # rx literal  ">"
-    add $I11, rx475_pos, 1
-    gt $I11, rx475_eos, rx475_fail
-    sub $I11, rx475_pos, rx475_off
-    ord $I11, rx475_tgt, $I11
-    ne $I11, 62, rx475_fail
-    add rx475_pos, 1
-  # rx pass
-    rx475_cur."!cursor_pass"(rx475_pos, "")
-    if_null rx475_debug, debug_409
-    rx475_cur."!cursor_debug"("PASS", "", " at pos=", rx475_pos)
-  debug_409:
-    .return (rx475_cur)
-  rx475_restart:
-    if_null rx475_debug, debug_410
-    rx475_cur."!cursor_debug"("NEXT", "")
-  debug_410:
-  rx475_fail:
-    (rx475_rep, rx475_pos, $I10, $P10) = rx475_cur."!mark_fail"(0)
-    lt rx475_pos, -1, rx475_done
-    eq rx475_pos, -1, rx475_fail
-    jump $I10
-  rx475_done:
-    rx475_cur."!cursor_fail"()
-    if_null rx475_debug, debug_411
-    rx475_cur."!cursor_debug"("FAIL", "")
-  debug_411:
-    .return (rx475_cur)
+    add $I11, rx498_pos, 1
+    gt $I11, rx498_eos, rx498_fail
+    sub $I11, rx498_pos, rx498_off
+    ord $I11, rx498_tgt, $I11
+    ne $I11, 62, rx498_fail
+    add rx498_pos, 1
+  # rx pass
+    rx498_cur."!cursor_pass"(rx498_pos, "")
+    if_null rx498_debug, debug_431
+    rx498_cur."!cursor_debug"("PASS", "", " at pos=", rx498_pos)
+  debug_431:
+    .return (rx498_cur)
+  rx498_restart:
+    if_null rx498_debug, debug_432
+    rx498_cur."!cursor_debug"("NEXT", "")
+  debug_432:
+  rx498_fail:
+    (rx498_rep, rx498_pos, $I10, $P10) = rx498_cur."!mark_fail"(0)
+    lt rx498_pos, -1, rx498_done
+    eq rx498_pos, -1, rx498_fail
+    jump $I10
+  rx498_done:
+    rx498_cur."!cursor_fail"()
+    if_null rx498_debug, debug_433
+    rx498_cur."!cursor_debug"("FAIL", "")
+  debug_433:
+    .return (rx498_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<!>"  :subid("139_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .const 'Sub' $P485 = "141_1283975941.34404" 
-    capture_lex $P485
-    .local string rx478_tgt
-    .local int rx478_pos
-    .local int rx478_off
-    .local int rx478_eos
-    .local int rx478_rep
-    .local pmc rx478_cur
-    .local pmc rx478_debug
-    (rx478_cur, rx478_pos, rx478_tgt, $I10) = self."!cursor_start"()
-    getattribute rx478_debug, rx478_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx478_cur
-    .local pmc match
-    .lex "$/", match
-    length rx478_eos, rx478_tgt
-    gt rx478_pos, rx478_eos, rx478_done
-    set rx478_off, 0
-    lt rx478_pos, 2, rx478_start
-    sub rx478_off, rx478_pos, 1
-    substr rx478_tgt, rx478_tgt, rx478_off
-  rx478_start:
-    eq $I10, 1, rx478_restart
-    if_null rx478_debug, debug_415
-    rx478_cur."!cursor_debug"("START", "assertion:sym<!>")
-  debug_415:
+.sub "assertion:sym<!>"  :subid("145_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .const 'Sub' $P508 = "147_1284728471.30547" 
+    capture_lex $P508
+    .local string rx501_tgt
+    .local int rx501_pos
+    .local int rx501_off
+    .local int rx501_eos
+    .local int rx501_rep
+    .local pmc rx501_cur
+    .local pmc rx501_debug
+    (rx501_cur, rx501_pos, rx501_tgt, $I10) = self."!cursor_start"()
+    getattribute rx501_debug, rx501_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx501_cur
+    .local pmc match
+    .lex "$/", match
+    length rx501_eos, rx501_tgt
+    gt rx501_pos, rx501_eos, rx501_done
+    set rx501_off, 0
+    lt rx501_pos, 2, rx501_start
+    sub rx501_off, rx501_pos, 1
+    substr rx501_tgt, rx501_tgt, rx501_off
+  rx501_start:
+    eq $I10, 1, rx501_restart
+    if_null rx501_debug, debug_437
+    rx501_cur."!cursor_debug"("START", "assertion:sym<!>")
+  debug_437:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan482_done
-    goto rxscan482_scan
-  rxscan482_loop:
-    ($P10) = rx478_cur."from"()
-    inc $P10
-    set rx478_pos, $P10
-    ge rx478_pos, rx478_eos, rxscan482_done
-  rxscan482_scan:
-    set_addr $I10, rxscan482_loop
-    rx478_cur."!mark_push"(0, rx478_pos, $I10)
-  rxscan482_done:
+    ne $I10, -1, rxscan505_done
+    goto rxscan505_scan
+  rxscan505_loop:
+    ($P10) = rx501_cur."from"()
+    inc $P10
+    set rx501_pos, $P10
+    ge rx501_pos, rx501_eos, rxscan505_done
+  rxscan505_scan:
+    set_addr $I10, rxscan505_loop
+    rx501_cur."!mark_push"(0, rx501_pos, $I10)
+  rxscan505_done:
+.annotate 'line', 157
   # rx literal  "!"
-    add $I11, rx478_pos, 1
-    gt $I11, rx478_eos, rx478_fail
-    sub $I11, rx478_pos, rx478_off
-    ord $I11, rx478_tgt, $I11
-    ne $I11, 33, rx478_fail
-    add rx478_pos, 1
-  alt483_0:
-    set_addr $I10, alt483_1
-    rx478_cur."!mark_push"(0, rx478_pos, $I10)
+    add $I11, rx501_pos, 1
+    gt $I11, rx501_eos, rx501_fail
+    sub $I11, rx501_pos, rx501_off
+    ord $I11, rx501_tgt, $I11
+    ne $I11, 33, rx501_fail
+    add rx501_pos, 1
+  alt506_0:
+    set_addr $I10, alt506_1
+    rx501_cur."!mark_push"(0, rx501_pos, $I10)
   # rx subrule "before" subtype=zerowidth negate=
-    rx478_cur."!cursor_pos"(rx478_pos)
-    .const 'Sub' $P485 = "141_1283975941.34404" 
-    capture_lex $P485
-    $P10 = rx478_cur."before"($P485)
-    unless $P10, rx478_fail
-    goto alt483_end
-  alt483_1:
+    rx501_cur."!cursor_pos"(rx501_pos)
+    .const 'Sub' $P508 = "147_1284728471.30547" 
+    capture_lex $P508
+    $P10 = rx501_cur."before"($P508)
+    unless $P10, rx501_fail
+    goto alt506_end
+  alt506_1:
   # rx subrule "assertion" subtype=capture negate=
-    rx478_cur."!cursor_pos"(rx478_pos)
-    $P10 = rx478_cur."assertion"()
-    unless $P10, rx478_fail
-    rx478_cur."!mark_push"(0, -1, 0, $P10)
+    rx501_cur."!cursor_pos"(rx501_pos)
+    $P10 = rx501_cur."assertion"()
+    unless $P10, rx501_fail
+    rx501_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx478_pos = $P10."pos"()
-  alt483_end:
+    rx501_pos = $P10."pos"()
+  alt506_end:
   # rx pass
-    rx478_cur."!cursor_pass"(rx478_pos, "assertion:sym<!>")
-    if_null rx478_debug, debug_420
-    rx478_cur."!cursor_debug"("PASS", "assertion:sym<!>", " at pos=", rx478_pos)
-  debug_420:
-    .return (rx478_cur)
-  rx478_restart:
-    if_null rx478_debug, debug_421
-    rx478_cur."!cursor_debug"("NEXT", "assertion:sym<!>")
-  debug_421:
-  rx478_fail:
-    (rx478_rep, rx478_pos, $I10, $P10) = rx478_cur."!mark_fail"(0)
-    lt rx478_pos, -1, rx478_done
-    eq rx478_pos, -1, rx478_fail
-    jump $I10
-  rx478_done:
-    rx478_cur."!cursor_fail"()
-    if_null rx478_debug, debug_422
-    rx478_cur."!cursor_debug"("FAIL", "assertion:sym<!>")
-  debug_422:
-    .return (rx478_cur)
+    rx501_cur."!cursor_pass"(rx501_pos, "assertion:sym<!>")
+    if_null rx501_debug, debug_442
+    rx501_cur."!cursor_debug"("PASS", "assertion:sym<!>", " at pos=", rx501_pos)
+  debug_442:
+    .return (rx501_cur)
+  rx501_restart:
+.annotate 'line', 3
+    if_null rx501_debug, debug_443
+    rx501_cur."!cursor_debug"("NEXT", "assertion:sym<!>")
+  debug_443:
+  rx501_fail:
+    (rx501_rep, rx501_pos, $I10, $P10) = rx501_cur."!mark_fail"(0)
+    lt rx501_pos, -1, rx501_done
+    eq rx501_pos, -1, rx501_fail
+    jump $I10
+  rx501_done:
+    rx501_cur."!cursor_fail"()
+    if_null rx501_debug, debug_444
+    rx501_cur."!cursor_debug"("FAIL", "assertion:sym<!>")
+  debug_444:
+    .return (rx501_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<!>"  :subid("140_1283975941.34404") :method
-.annotate 'line', 0
-    $P480 = self."!PREFIX__!subrule"("assertion", "!")
-    new $P481, "ResizablePMCArray"
-    push $P481, $P480
-    push $P481, "!"
-    .return ($P481)
+.sub "!PREFIX__assertion:sym<!>"  :subid("146_1284728471.30547") :method
+.annotate 'line', 3
+    $P503 = self."!PREFIX__!subrule"("assertion", "!")
+    new $P504, "ResizablePMCArray"
+    push $P504, $P503
+    push $P504, "!"
+    .return ($P504)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block484"  :anon :subid("141_1283975941.34404") :method :outer("139_1283975941.34404")
-.annotate 'line', 0
-    .local string rx486_tgt
-    .local int rx486_pos
-    .local int rx486_off
-    .local int rx486_eos
-    .local int rx486_rep
-    .local pmc rx486_cur
-    .local pmc rx486_debug
-    (rx486_cur, rx486_pos, rx486_tgt, $I10) = self."!cursor_start"()
-    getattribute rx486_debug, rx486_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx486_cur
-    .local pmc match
-    .lex "$/", match
-    length rx486_eos, rx486_tgt
-    gt rx486_pos, rx486_eos, rx486_done
-    set rx486_off, 0
-    lt rx486_pos, 2, rx486_start
-    sub rx486_off, rx486_pos, 1
-    substr rx486_tgt, rx486_tgt, rx486_off
-  rx486_start:
-    eq $I10, 1, rx486_restart
-    if_null rx486_debug, debug_416
-    rx486_cur."!cursor_debug"("START", "")
-  debug_416:
+.sub "_block507"  :anon :subid("147_1284728471.30547") :method :outer("145_1284728471.30547")
+.annotate 'line', 157
+    .local string rx509_tgt
+    .local int rx509_pos
+    .local int rx509_off
+    .local int rx509_eos
+    .local int rx509_rep
+    .local pmc rx509_cur
+    .local pmc rx509_debug
+    (rx509_cur, rx509_pos, rx509_tgt, $I10) = self."!cursor_start"()
+    getattribute rx509_debug, rx509_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx509_cur
+    .local pmc match
+    .lex "$/", match
+    length rx509_eos, rx509_tgt
+    gt rx509_pos, rx509_eos, rx509_done
+    set rx509_off, 0
+    lt rx509_pos, 2, rx509_start
+    sub rx509_off, rx509_pos, 1
+    substr rx509_tgt, rx509_tgt, rx509_off
+  rx509_start:
+    eq $I10, 1, rx509_restart
+    if_null rx509_debug, debug_438
+    rx509_cur."!cursor_debug"("START", "")
+  debug_438:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan487_done
-    goto rxscan487_scan
-  rxscan487_loop:
-    ($P10) = rx486_cur."from"()
-    inc $P10
-    set rx486_pos, $P10
-    ge rx486_pos, rx486_eos, rxscan487_done
-  rxscan487_scan:
-    set_addr $I10, rxscan487_loop
-    rx486_cur."!mark_push"(0, rx486_pos, $I10)
-  rxscan487_done:
+    ne $I10, -1, rxscan510_done
+    goto rxscan510_scan
+  rxscan510_loop:
+    ($P10) = rx509_cur."from"()
+    inc $P10
+    set rx509_pos, $P10
+    ge rx509_pos, rx509_eos, rxscan510_done
+  rxscan510_scan:
+    set_addr $I10, rxscan510_loop
+    rx509_cur."!mark_push"(0, rx509_pos, $I10)
+  rxscan510_done:
   # rx literal  ">"
-    add $I11, rx486_pos, 1
-    gt $I11, rx486_eos, rx486_fail
-    sub $I11, rx486_pos, rx486_off
-    ord $I11, rx486_tgt, $I11
-    ne $I11, 62, rx486_fail
-    add rx486_pos, 1
-  # rx pass
-    rx486_cur."!cursor_pass"(rx486_pos, "")
-    if_null rx486_debug, debug_417
-    rx486_cur."!cursor_debug"("PASS", "", " at pos=", rx486_pos)
-  debug_417:
-    .return (rx486_cur)
-  rx486_restart:
-    if_null rx486_debug, debug_418
-    rx486_cur."!cursor_debug"("NEXT", "")
-  debug_418:
-  rx486_fail:
-    (rx486_rep, rx486_pos, $I10, $P10) = rx486_cur."!mark_fail"(0)
-    lt rx486_pos, -1, rx486_done
-    eq rx486_pos, -1, rx486_fail
-    jump $I10
-  rx486_done:
-    rx486_cur."!cursor_fail"()
-    if_null rx486_debug, debug_419
-    rx486_cur."!cursor_debug"("FAIL", "")
-  debug_419:
-    .return (rx486_cur)
+    add $I11, rx509_pos, 1
+    gt $I11, rx509_eos, rx509_fail
+    sub $I11, rx509_pos, rx509_off
+    ord $I11, rx509_tgt, $I11
+    ne $I11, 62, rx509_fail
+    add rx509_pos, 1
+  # rx pass
+    rx509_cur."!cursor_pass"(rx509_pos, "")
+    if_null rx509_debug, debug_439
+    rx509_cur."!cursor_debug"("PASS", "", " at pos=", rx509_pos)
+  debug_439:
+    .return (rx509_cur)
+  rx509_restart:
+    if_null rx509_debug, debug_440
+    rx509_cur."!cursor_debug"("NEXT", "")
+  debug_440:
+  rx509_fail:
+    (rx509_rep, rx509_pos, $I10, $P10) = rx509_cur."!mark_fail"(0)
+    lt rx509_pos, -1, rx509_done
+    eq rx509_pos, -1, rx509_fail
+    jump $I10
+  rx509_done:
+    rx509_cur."!cursor_fail"()
+    if_null rx509_debug, debug_441
+    rx509_cur."!cursor_debug"("FAIL", "")
+  debug_441:
+    .return (rx509_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<method>"  :subid("142_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx489_tgt
-    .local int rx489_pos
-    .local int rx489_off
-    .local int rx489_eos
-    .local int rx489_rep
-    .local pmc rx489_cur
-    .local pmc rx489_debug
-    (rx489_cur, rx489_pos, rx489_tgt, $I10) = self."!cursor_start"()
-    getattribute rx489_debug, rx489_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx489_cur
-    .local pmc match
-    .lex "$/", match
-    length rx489_eos, rx489_tgt
-    gt rx489_pos, rx489_eos, rx489_done
-    set rx489_off, 0
-    lt rx489_pos, 2, rx489_start
-    sub rx489_off, rx489_pos, 1
-    substr rx489_tgt, rx489_tgt, rx489_off
-  rx489_start:
-    eq $I10, 1, rx489_restart
-    if_null rx489_debug, debug_423
-    rx489_cur."!cursor_debug"("START", "assertion:sym<method>")
-  debug_423:
+.sub "assertion:sym<method>"  :subid("148_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx512_tgt
+    .local int rx512_pos
+    .local int rx512_off
+    .local int rx512_eos
+    .local int rx512_rep
+    .local pmc rx512_cur
+    .local pmc rx512_debug
+    (rx512_cur, rx512_pos, rx512_tgt, $I10) = self."!cursor_start"()
+    getattribute rx512_debug, rx512_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx512_cur
+    .local pmc match
+    .lex "$/", match
+    length rx512_eos, rx512_tgt
+    gt rx512_pos, rx512_eos, rx512_done
+    set rx512_off, 0
+    lt rx512_pos, 2, rx512_start
+    sub rx512_off, rx512_pos, 1
+    substr rx512_tgt, rx512_tgt, rx512_off
+  rx512_start:
+    eq $I10, 1, rx512_restart
+    if_null rx512_debug, debug_445
+    rx512_cur."!cursor_debug"("START", "assertion:sym<method>")
+  debug_445:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan493_done
-    goto rxscan493_scan
-  rxscan493_loop:
-    ($P10) = rx489_cur."from"()
-    inc $P10
-    set rx489_pos, $P10
-    ge rx489_pos, rx489_eos, rxscan493_done
-  rxscan493_scan:
-    set_addr $I10, rxscan493_loop
-    rx489_cur."!mark_push"(0, rx489_pos, $I10)
-  rxscan493_done:
+    ne $I10, -1, rxscan516_done
+    goto rxscan516_scan
+  rxscan516_loop:
+    ($P10) = rx512_cur."from"()
+    inc $P10
+    set rx512_pos, $P10
+    ge rx512_pos, rx512_eos, rxscan516_done
+  rxscan516_scan:
+    set_addr $I10, rxscan516_loop
+    rx512_cur."!mark_push"(0, rx512_pos, $I10)
+  rxscan516_done:
+.annotate 'line', 160
   # rx literal  "."
-    add $I11, rx489_pos, 1
-    gt $I11, rx489_eos, rx489_fail
-    sub $I11, rx489_pos, rx489_off
-    ord $I11, rx489_tgt, $I11
-    ne $I11, 46, rx489_fail
-    add rx489_pos, 1
+    add $I11, rx512_pos, 1
+    gt $I11, rx512_eos, rx512_fail
+    sub $I11, rx512_pos, rx512_off
+    ord $I11, rx512_tgt, $I11
+    ne $I11, 46, rx512_fail
+    add rx512_pos, 1
   # rx subrule "assertion" subtype=capture negate=
-    rx489_cur."!cursor_pos"(rx489_pos)
-    $P10 = rx489_cur."assertion"()
-    unless $P10, rx489_fail
-    rx489_cur."!mark_push"(0, -1, 0, $P10)
+    rx512_cur."!cursor_pos"(rx512_pos)
+    $P10 = rx512_cur."assertion"()
+    unless $P10, rx512_fail
+    rx512_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx489_pos = $P10."pos"()
+    rx512_pos = $P10."pos"()
+.annotate 'line', 159
   # rx pass
-    rx489_cur."!cursor_pass"(rx489_pos, "assertion:sym<method>")
-    if_null rx489_debug, debug_424
-    rx489_cur."!cursor_debug"("PASS", "assertion:sym<method>", " at pos=", rx489_pos)
-  debug_424:
-    .return (rx489_cur)
-  rx489_restart:
-    if_null rx489_debug, debug_425
-    rx489_cur."!cursor_debug"("NEXT", "assertion:sym<method>")
-  debug_425:
-  rx489_fail:
-    (rx489_rep, rx489_pos, $I10, $P10) = rx489_cur."!mark_fail"(0)
-    lt rx489_pos, -1, rx489_done
-    eq rx489_pos, -1, rx489_fail
-    jump $I10
-  rx489_done:
-    rx489_cur."!cursor_fail"()
-    if_null rx489_debug, debug_426
-    rx489_cur."!cursor_debug"("FAIL", "assertion:sym<method>")
-  debug_426:
-    .return (rx489_cur)
+    rx512_cur."!cursor_pass"(rx512_pos, "assertion:sym<method>")
+    if_null rx512_debug, debug_446
+    rx512_cur."!cursor_debug"("PASS", "assertion:sym<method>", " at pos=", rx512_pos)
+  debug_446:
+    .return (rx512_cur)
+  rx512_restart:
+.annotate 'line', 3
+    if_null rx512_debug, debug_447
+    rx512_cur."!cursor_debug"("NEXT", "assertion:sym<method>")
+  debug_447:
+  rx512_fail:
+    (rx512_rep, rx512_pos, $I10, $P10) = rx512_cur."!mark_fail"(0)
+    lt rx512_pos, -1, rx512_done
+    eq rx512_pos, -1, rx512_fail
+    jump $I10
+  rx512_done:
+    rx512_cur."!cursor_fail"()
+    if_null rx512_debug, debug_448
+    rx512_cur."!cursor_debug"("FAIL", "assertion:sym<method>")
+  debug_448:
+    .return (rx512_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<method>"  :subid("143_1283975941.34404") :method
-.annotate 'line', 0
-    $P491 = self."!PREFIX__!subrule"("assertion", ".")
-    new $P492, "ResizablePMCArray"
-    push $P492, $P491
-    .return ($P492)
+.sub "!PREFIX__assertion:sym<method>"  :subid("149_1284728471.30547") :method
+.annotate 'line', 3
+    $P514 = self."!PREFIX__!subrule"("assertion", ".")
+    new $P515, "ResizablePMCArray"
+    push $P515, $P514
+    .return ($P515)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<name>"  :subid("144_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .const 'Sub' $P503 = "146_1283975941.34404" 
-    capture_lex $P503
-    .local string rx495_tgt
-    .local int rx495_pos
-    .local int rx495_off
-    .local int rx495_eos
-    .local int rx495_rep
-    .local pmc rx495_cur
-    .local pmc rx495_debug
-    (rx495_cur, rx495_pos, rx495_tgt, $I10) = self."!cursor_start"()
-    rx495_cur."!cursor_caparray"("assertion", "nibbler", "arglist")
-    getattribute rx495_debug, rx495_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx495_cur
-    .local pmc match
-    .lex "$/", match
-    length rx495_eos, rx495_tgt
-    gt rx495_pos, rx495_eos, rx495_done
-    set rx495_off, 0
-    lt rx495_pos, 2, rx495_start
-    sub rx495_off, rx495_pos, 1
-    substr rx495_tgt, rx495_tgt, rx495_off
-  rx495_start:
-    eq $I10, 1, rx495_restart
-    if_null rx495_debug, debug_427
-    rx495_cur."!cursor_debug"("START", "assertion:sym<name>")
-  debug_427:
+.sub "assertion:sym<name>"  :subid("150_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .const 'Sub' $P526 = "152_1284728471.30547" 
+    capture_lex $P526
+    .local string rx518_tgt
+    .local int rx518_pos
+    .local int rx518_off
+    .local int rx518_eos
+    .local int rx518_rep
+    .local pmc rx518_cur
+    .local pmc rx518_debug
+    (rx518_cur, rx518_pos, rx518_tgt, $I10) = self."!cursor_start"()
+    rx518_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+    getattribute rx518_debug, rx518_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx518_cur
+    .local pmc match
+    .lex "$/", match
+    length rx518_eos, rx518_tgt
+    gt rx518_pos, rx518_eos, rx518_done
+    set rx518_off, 0
+    lt rx518_pos, 2, rx518_start
+    sub rx518_off, rx518_pos, 1
+    substr rx518_tgt, rx518_tgt, rx518_off
+  rx518_start:
+    eq $I10, 1, rx518_restart
+    if_null rx518_debug, debug_449
+    rx518_cur."!cursor_debug"("START", "assertion:sym<name>")
+  debug_449:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan499_done
-    goto rxscan499_scan
-  rxscan499_loop:
-    ($P10) = rx495_cur."from"()
+    ne $I10, -1, rxscan522_done
+    goto rxscan522_scan
+  rxscan522_loop:
+    ($P10) = rx518_cur."from"()
     inc $P10
-    set rx495_pos, $P10
-    ge rx495_pos, rx495_eos, rxscan499_done
-  rxscan499_scan:
-    set_addr $I10, rxscan499_loop
-    rx495_cur."!mark_push"(0, rx495_pos, $I10)
-  rxscan499_done:
+    set rx518_pos, $P10
+    ge rx518_pos, rx518_eos, rxscan522_done
+  rxscan522_scan:
+    set_addr $I10, rxscan522_loop
+    rx518_cur."!mark_push"(0, rx518_pos, $I10)
+  rxscan522_done:
+.annotate 'line', 164
   # rx subrule "identifier" subtype=capture negate=
-    rx495_cur."!cursor_pos"(rx495_pos)
-    $P10 = rx495_cur."identifier"()
-    unless $P10, rx495_fail
-    rx495_cur."!mark_push"(0, -1, 0, $P10)
+    rx518_cur."!cursor_pos"(rx518_pos)
+    $P10 = rx518_cur."identifier"()
+    unless $P10, rx518_fail
+    rx518_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("longname")
-    rx495_pos = $P10."pos"()
-  # rx rxquantr500 ** 0..1
-    set_addr $I10, rxquantr500_done
-    rx495_cur."!mark_push"(0, rx495_pos, $I10)
-  rxquantr500_loop:
-  alt501_0:
-    set_addr $I10, alt501_1
-    rx495_cur."!mark_push"(0, rx495_pos, $I10)
+    rx518_pos = $P10."pos"()
+.annotate 'line', 171
+  # rx rxquantr523 ** 0..1
+    set_addr $I10, rxquantr523_done
+    rx518_cur."!mark_push"(0, rx518_pos, $I10)
+  rxquantr523_loop:
+  alt524_0:
+.annotate 'line', 165
+    set_addr $I10, alt524_1
+    rx518_cur."!mark_push"(0, rx518_pos, $I10)
+.annotate 'line', 166
   # rx subrule "before" subtype=zerowidth negate=
-    rx495_cur."!cursor_pos"(rx495_pos)
-    .const 'Sub' $P503 = "146_1283975941.34404" 
-    capture_lex $P503
-    $P10 = rx495_cur."before"($P503)
-    unless $P10, rx495_fail
-    goto alt501_end
-  alt501_1:
-    set_addr $I10, alt501_2
-    rx495_cur."!mark_push"(0, rx495_pos, $I10)
+    rx518_cur."!cursor_pos"(rx518_pos)
+    .const 'Sub' $P526 = "152_1284728471.30547" 
+    capture_lex $P526
+    $P10 = rx518_cur."before"($P526)
+    unless $P10, rx518_fail
+    goto alt524_end
+  alt524_1:
+    set_addr $I10, alt524_2
+    rx518_cur."!mark_push"(0, rx518_pos, $I10)
+.annotate 'line', 167
   # rx literal  "="
-    add $I11, rx495_pos, 1
-    gt $I11, rx495_eos, rx495_fail
-    sub $I11, rx495_pos, rx495_off
-    ord $I11, rx495_tgt, $I11
-    ne $I11, 61, rx495_fail
-    add rx495_pos, 1
+    add $I11, rx518_pos, 1
+    gt $I11, rx518_eos, rx518_fail
+    sub $I11, rx518_pos, rx518_off
+    ord $I11, rx518_tgt, $I11
+    ne $I11, 61, rx518_fail
+    add rx518_pos, 1
   # rx subrule "assertion" subtype=capture negate=
-    rx495_cur."!cursor_pos"(rx495_pos)
-    $P10 = rx495_cur."assertion"()
-    unless $P10, rx495_fail
-    rx495_cur."!mark_push"(0, -1, 0, $P10)
+    rx518_cur."!cursor_pos"(rx518_pos)
+    $P10 = rx518_cur."assertion"()
+    unless $P10, rx518_fail
+    rx518_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx495_pos = $P10."pos"()
-    goto alt501_end
-  alt501_2:
-    set_addr $I10, alt501_3
-    rx495_cur."!mark_push"(0, rx495_pos, $I10)
+    rx518_pos = $P10."pos"()
+    goto alt524_end
+  alt524_2:
+    set_addr $I10, alt524_3
+    rx518_cur."!mark_push"(0, rx518_pos, $I10)
+.annotate 'line', 168
   # rx literal  ":"
-    add $I11, rx495_pos, 1
-    gt $I11, rx495_eos, rx495_fail
-    sub $I11, rx495_pos, rx495_off
-    ord $I11, rx495_tgt, $I11
-    ne $I11, 58, rx495_fail
-    add rx495_pos, 1
+    add $I11, rx518_pos, 1
+    gt $I11, rx518_eos, rx518_fail
+    sub $I11, rx518_pos, rx518_off
+    ord $I11, rx518_tgt, $I11
+    ne $I11, 58, rx518_fail
+    add rx518_pos, 1
   # rx subrule "arglist" subtype=capture negate=
-    rx495_cur."!cursor_pos"(rx495_pos)
-    $P10 = rx495_cur."arglist"()
-    unless $P10, rx495_fail
-    rx495_cur."!mark_push"(0, -1, 0, $P10)
+    rx518_cur."!cursor_pos"(rx518_pos)
+    $P10 = rx518_cur."arglist"()
+    unless $P10, rx518_fail
+    rx518_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx495_pos = $P10."pos"()
-    goto alt501_end
-  alt501_3:
-    set_addr $I10, alt501_4
-    rx495_cur."!mark_push"(0, rx495_pos, $I10)
+    rx518_pos = $P10."pos"()
+    goto alt524_end
+  alt524_3:
+    set_addr $I10, alt524_4
+    rx518_cur."!mark_push"(0, rx518_pos, $I10)
+.annotate 'line', 169
   # rx literal  "("
-    add $I11, rx495_pos, 1
-    gt $I11, rx495_eos, rx495_fail
-    sub $I11, rx495_pos, rx495_off
-    ord $I11, rx495_tgt, $I11
-    ne $I11, 40, rx495_fail
-    add rx495_pos, 1
+    add $I11, rx518_pos, 1
+    gt $I11, rx518_eos, rx518_fail
+    sub $I11, rx518_pos, rx518_off
+    ord $I11, rx518_tgt, $I11
+    ne $I11, 40, rx518_fail
+    add rx518_pos, 1
   # rx subrule "arglist" subtype=capture negate=
-    rx495_cur."!cursor_pos"(rx495_pos)
-    $P10 = rx495_cur."arglist"()
-    unless $P10, rx495_fail
-    rx495_cur."!mark_push"(0, -1, 0, $P10)
+    rx518_cur."!cursor_pos"(rx518_pos)
+    $P10 = rx518_cur."arglist"()
+    unless $P10, rx518_fail
+    rx518_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx495_pos = $P10."pos"()
+    rx518_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx495_pos, 1
-    gt $I11, rx495_eos, rx495_fail
-    sub $I11, rx495_pos, rx495_off
-    ord $I11, rx495_tgt, $I11
-    ne $I11, 41, rx495_fail
-    add rx495_pos, 1
-    goto alt501_end
-  alt501_4:
+    add $I11, rx518_pos, 1
+    gt $I11, rx518_eos, rx518_fail
+    sub $I11, rx518_pos, rx518_off
+    ord $I11, rx518_tgt, $I11
+    ne $I11, 41, rx518_fail
+    add rx518_pos, 1
+    goto alt524_end
+  alt524_4:
+.annotate 'line', 170
   # rx subrule "normspace" subtype=method negate=
-    rx495_cur."!cursor_pos"(rx495_pos)
-    $P10 = rx495_cur."normspace"()
-    unless $P10, rx495_fail
-    rx495_pos = $P10."pos"()
+    rx518_cur."!cursor_pos"(rx518_pos)
+    $P10 = rx518_cur."normspace"()
+    unless $P10, rx518_fail
+    rx518_pos = $P10."pos"()
   # rx subrule "nibbler" subtype=capture negate=
-    rx495_cur."!cursor_pos"(rx495_pos)
-    $P10 = rx495_cur."nibbler"()
-    unless $P10, rx495_fail
-    rx495_cur."!mark_push"(0, -1, 0, $P10)
+    rx518_cur."!cursor_pos"(rx518_pos)
+    $P10 = rx518_cur."nibbler"()
+    unless $P10, rx518_fail
+    rx518_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("nibbler")
-    rx495_pos = $P10."pos"()
-  alt501_end:
-    set_addr $I10, rxquantr500_done
-    (rx495_rep) = rx495_cur."!mark_commit"($I10)
-  rxquantr500_done:
-  # rx pass
-    rx495_cur."!cursor_pass"(rx495_pos, "assertion:sym<name>")
-    if_null rx495_debug, debug_432
-    rx495_cur."!cursor_debug"("PASS", "assertion:sym<name>", " at pos=", rx495_pos)
-  debug_432:
-    .return (rx495_cur)
-  rx495_restart:
-    if_null rx495_debug, debug_433
-    rx495_cur."!cursor_debug"("NEXT", "assertion:sym<name>")
-  debug_433:
-  rx495_fail:
-    (rx495_rep, rx495_pos, $I10, $P10) = rx495_cur."!mark_fail"(0)
-    lt rx495_pos, -1, rx495_done
-    eq rx495_pos, -1, rx495_fail
-    jump $I10
-  rx495_done:
-    rx495_cur."!cursor_fail"()
-    if_null rx495_debug, debug_434
-    rx495_cur."!cursor_debug"("FAIL", "assertion:sym<name>")
-  debug_434:
-    .return (rx495_cur)
+    rx518_pos = $P10."pos"()
+  alt524_end:
+.annotate 'line', 171
+    set_addr $I10, rxquantr523_done
+    (rx518_rep) = rx518_cur."!mark_commit"($I10)
+  rxquantr523_done:
+.annotate 'line', 163
+  # rx pass
+    rx518_cur."!cursor_pass"(rx518_pos, "assertion:sym<name>")
+    if_null rx518_debug, debug_454
+    rx518_cur."!cursor_debug"("PASS", "assertion:sym<name>", " at pos=", rx518_pos)
+  debug_454:
+    .return (rx518_cur)
+  rx518_restart:
+.annotate 'line', 3
+    if_null rx518_debug, debug_455
+    rx518_cur."!cursor_debug"("NEXT", "assertion:sym<name>")
+  debug_455:
+  rx518_fail:
+    (rx518_rep, rx518_pos, $I10, $P10) = rx518_cur."!mark_fail"(0)
+    lt rx518_pos, -1, rx518_done
+    eq rx518_pos, -1, rx518_fail
+    jump $I10
+  rx518_done:
+    rx518_cur."!cursor_fail"()
+    if_null rx518_debug, debug_456
+    rx518_cur."!cursor_debug"("FAIL", "assertion:sym<name>")
+  debug_456:
+    .return (rx518_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("145_1283975941.34404") :method
-.annotate 'line', 0
-    $P497 = self."!PREFIX__!subrule"("identifier", "")
-    new $P498, "ResizablePMCArray"
-    push $P498, $P497
-    .return ($P498)
+.sub "!PREFIX__assertion:sym<name>"  :subid("151_1284728471.30547") :method
+.annotate 'line', 3
+    $P520 = self."!PREFIX__!subrule"("identifier", "")
+    new $P521, "ResizablePMCArray"
+    push $P521, $P520
+    .return ($P521)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block502"  :anon :subid("146_1283975941.34404") :method :outer("144_1283975941.34404")
-.annotate 'line', 0
-    .local string rx504_tgt
-    .local int rx504_pos
-    .local int rx504_off
-    .local int rx504_eos
-    .local int rx504_rep
-    .local pmc rx504_cur
-    .local pmc rx504_debug
-    (rx504_cur, rx504_pos, rx504_tgt, $I10) = self."!cursor_start"()
-    getattribute rx504_debug, rx504_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx504_cur
-    .local pmc match
-    .lex "$/", match
-    length rx504_eos, rx504_tgt
-    gt rx504_pos, rx504_eos, rx504_done
-    set rx504_off, 0
-    lt rx504_pos, 2, rx504_start
-    sub rx504_off, rx504_pos, 1
-    substr rx504_tgt, rx504_tgt, rx504_off
-  rx504_start:
-    eq $I10, 1, rx504_restart
-    if_null rx504_debug, debug_428
-    rx504_cur."!cursor_debug"("START", "")
-  debug_428:
+.sub "_block525"  :anon :subid("152_1284728471.30547") :method :outer("150_1284728471.30547")
+.annotate 'line', 166
+    .local string rx527_tgt
+    .local int rx527_pos
+    .local int rx527_off
+    .local int rx527_eos
+    .local int rx527_rep
+    .local pmc rx527_cur
+    .local pmc rx527_debug
+    (rx527_cur, rx527_pos, rx527_tgt, $I10) = self."!cursor_start"()
+    getattribute rx527_debug, rx527_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx527_cur
+    .local pmc match
+    .lex "$/", match
+    length rx527_eos, rx527_tgt
+    gt rx527_pos, rx527_eos, rx527_done
+    set rx527_off, 0
+    lt rx527_pos, 2, rx527_start
+    sub rx527_off, rx527_pos, 1
+    substr rx527_tgt, rx527_tgt, rx527_off
+  rx527_start:
+    eq $I10, 1, rx527_restart
+    if_null rx527_debug, debug_450
+    rx527_cur."!cursor_debug"("START", "")
+  debug_450:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan505_done
-    goto rxscan505_scan
-  rxscan505_loop:
-    ($P10) = rx504_cur."from"()
-    inc $P10
-    set rx504_pos, $P10
-    ge rx504_pos, rx504_eos, rxscan505_done
-  rxscan505_scan:
-    set_addr $I10, rxscan505_loop
-    rx504_cur."!mark_push"(0, rx504_pos, $I10)
-  rxscan505_done:
+    ne $I10, -1, rxscan528_done
+    goto rxscan528_scan
+  rxscan528_loop:
+    ($P10) = rx527_cur."from"()
+    inc $P10
+    set rx527_pos, $P10
+    ge rx527_pos, rx527_eos, rxscan528_done
+  rxscan528_scan:
+    set_addr $I10, rxscan528_loop
+    rx527_cur."!mark_push"(0, rx527_pos, $I10)
+  rxscan528_done:
   # rx literal  ">"
-    add $I11, rx504_pos, 1
-    gt $I11, rx504_eos, rx504_fail
-    sub $I11, rx504_pos, rx504_off
-    ord $I11, rx504_tgt, $I11
-    ne $I11, 62, rx504_fail
-    add rx504_pos, 1
-  # rx pass
-    rx504_cur."!cursor_pass"(rx504_pos, "")
-    if_null rx504_debug, debug_429
-    rx504_cur."!cursor_debug"("PASS", "", " at pos=", rx504_pos)
-  debug_429:
-    .return (rx504_cur)
-  rx504_restart:
-    if_null rx504_debug, debug_430
-    rx504_cur."!cursor_debug"("NEXT", "")
-  debug_430:
-  rx504_fail:
-    (rx504_rep, rx504_pos, $I10, $P10) = rx504_cur."!mark_fail"(0)
-    lt rx504_pos, -1, rx504_done
-    eq rx504_pos, -1, rx504_fail
-    jump $I10
-  rx504_done:
-    rx504_cur."!cursor_fail"()
-    if_null rx504_debug, debug_431
-    rx504_cur."!cursor_debug"("FAIL", "")
-  debug_431:
-    .return (rx504_cur)
+    add $I11, rx527_pos, 1
+    gt $I11, rx527_eos, rx527_fail
+    sub $I11, rx527_pos, rx527_off
+    ord $I11, rx527_tgt, $I11
+    ne $I11, 62, rx527_fail
+    add rx527_pos, 1
+  # rx pass
+    rx527_cur."!cursor_pass"(rx527_pos, "")
+    if_null rx527_debug, debug_451
+    rx527_cur."!cursor_debug"("PASS", "", " at pos=", rx527_pos)
+  debug_451:
+    .return (rx527_cur)
+  rx527_restart:
+    if_null rx527_debug, debug_452
+    rx527_cur."!cursor_debug"("NEXT", "")
+  debug_452:
+  rx527_fail:
+    (rx527_rep, rx527_pos, $I10, $P10) = rx527_cur."!mark_fail"(0)
+    lt rx527_pos, -1, rx527_done
+    eq rx527_pos, -1, rx527_fail
+    jump $I10
+  rx527_done:
+    rx527_cur."!cursor_fail"()
+    if_null rx527_debug, debug_453
+    rx527_cur."!cursor_debug"("FAIL", "")
+  debug_453:
+    .return (rx527_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<[>"  :subid("147_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .const 'Sub' $P512 = "149_1283975941.34404" 
-    capture_lex $P512
-    .local string rx507_tgt
-    .local int rx507_pos
-    .local int rx507_off
-    .local int rx507_eos
-    .local int rx507_rep
-    .local pmc rx507_cur
-    .local pmc rx507_debug
-    (rx507_cur, rx507_pos, rx507_tgt, $I10) = self."!cursor_start"()
-    rx507_cur."!cursor_caparray"("cclass_elem")
-    getattribute rx507_debug, rx507_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx507_cur
-    .local pmc match
-    .lex "$/", match
-    length rx507_eos, rx507_tgt
-    gt rx507_pos, rx507_eos, rx507_done
-    set rx507_off, 0
-    lt rx507_pos, 2, rx507_start
-    sub rx507_off, rx507_pos, 1
-    substr rx507_tgt, rx507_tgt, rx507_off
-  rx507_start:
-    eq $I10, 1, rx507_restart
-    if_null rx507_debug, debug_435
-    rx507_cur."!cursor_debug"("START", "assertion:sym<[>")
-  debug_435:
+.sub "assertion:sym<[>"  :subid("153_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .const 'Sub' $P535 = "155_1284728471.30547" 
+    capture_lex $P535
+    .local string rx530_tgt
+    .local int rx530_pos
+    .local int rx530_off
+    .local int rx530_eos
+    .local int rx530_rep
+    .local pmc rx530_cur
+    .local pmc rx530_debug
+    (rx530_cur, rx530_pos, rx530_tgt, $I10) = self."!cursor_start"()
+    rx530_cur."!cursor_caparray"("cclass_elem")
+    getattribute rx530_debug, rx530_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx530_cur
+    .local pmc match
+    .lex "$/", match
+    length rx530_eos, rx530_tgt
+    gt rx530_pos, rx530_eos, rx530_done
+    set rx530_off, 0
+    lt rx530_pos, 2, rx530_start
+    sub rx530_off, rx530_pos, 1
+    substr rx530_tgt, rx530_tgt, rx530_off
+  rx530_start:
+    eq $I10, 1, rx530_restart
+    if_null rx530_debug, debug_457
+    rx530_cur."!cursor_debug"("START", "assertion:sym<[>")
+  debug_457:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan510_done
-    goto rxscan510_scan
-  rxscan510_loop:
-    ($P10) = rx507_cur."from"()
-    inc $P10
-    set rx507_pos, $P10
-    ge rx507_pos, rx507_eos, rxscan510_done
-  rxscan510_scan:
-    set_addr $I10, rxscan510_loop
-    rx507_cur."!mark_push"(0, rx507_pos, $I10)
-  rxscan510_done:
+    ne $I10, -1, rxscan533_done
+    goto rxscan533_scan
+  rxscan533_loop:
+    ($P10) = rx530_cur."from"()
+    inc $P10
+    set rx530_pos, $P10
+    ge rx530_pos, rx530_eos, rxscan533_done
+  rxscan533_scan:
+    set_addr $I10, rxscan533_loop
+    rx530_cur."!mark_push"(0, rx530_pos, $I10)
+  rxscan533_done:
+.annotate 'line', 174
   # rx subrule "before" subtype=zerowidth negate=
-    rx507_cur."!cursor_pos"(rx507_pos)
-    .const 'Sub' $P512 = "149_1283975941.34404" 
-    capture_lex $P512
-    $P10 = rx507_cur."before"($P512)
-    unless $P10, rx507_fail
-  # rx rxquantr516 ** 1..*
-    set_addr $I10, rxquantr516_done
-    rx507_cur."!mark_push"(0, -1, $I10)
-  rxquantr516_loop:
+    rx530_cur."!cursor_pos"(rx530_pos)
+    .const 'Sub' $P535 = "155_1284728471.30547" 
+    capture_lex $P535
+    $P10 = rx530_cur."before"($P535)
+    unless $P10, rx530_fail
+  # rx rxquantr539 ** 1..*
+    set_addr $I10, rxquantr539_done
+    rx530_cur."!mark_push"(0, -1, $I10)
+  rxquantr539_loop:
   # rx subrule "cclass_elem" subtype=capture negate=
-    rx507_cur."!cursor_pos"(rx507_pos)
-    $P10 = rx507_cur."cclass_elem"()
-    unless $P10, rx507_fail
-    goto rxsubrule517_pass
-  rxsubrule517_back:
+    rx530_cur."!cursor_pos"(rx530_pos)
+    $P10 = rx530_cur."cclass_elem"()
+    unless $P10, rx530_fail
+    goto rxsubrule540_pass
+  rxsubrule540_back:
     $P10 = $P10."!cursor_next"()
-    unless $P10, rx507_fail
-  rxsubrule517_pass:
-    set_addr $I10, rxsubrule517_back
-    rx507_cur."!mark_push"(0, rx507_pos, $I10, $P10)
+    unless $P10, rx530_fail
+  rxsubrule540_pass:
+    set_addr $I10, rxsubrule540_back
+    rx530_cur."!mark_push"(0, rx530_pos, $I10, $P10)
     $P10."!cursor_names"("cclass_elem")
-    rx507_pos = $P10."pos"()
-    set_addr $I10, rxquantr516_done
-    (rx507_rep) = rx507_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr516_done
-    rx507_cur."!mark_push"(rx507_rep, rx507_pos, $I10)
-    goto rxquantr516_loop
-  rxquantr516_done:
-  # rx pass
-    rx507_cur."!cursor_pass"(rx507_pos, "assertion:sym<[>")
-    if_null rx507_debug, debug_440
-    rx507_cur."!cursor_debug"("PASS", "assertion:sym<[>", " at pos=", rx507_pos)
-  debug_440:
-    .return (rx507_cur)
-  rx507_restart:
-    if_null rx507_debug, debug_441
-    rx507_cur."!cursor_debug"("NEXT", "assertion:sym<[>")
-  debug_441:
-  rx507_fail:
-    (rx507_rep, rx507_pos, $I10, $P10) = rx507_cur."!mark_fail"(0)
-    lt rx507_pos, -1, rx507_done
-    eq rx507_pos, -1, rx507_fail
-    jump $I10
-  rx507_done:
-    rx507_cur."!cursor_fail"()
-    if_null rx507_debug, debug_442
-    rx507_cur."!cursor_debug"("FAIL", "assertion:sym<[>")
-  debug_442:
-    .return (rx507_cur)
+    rx530_pos = $P10."pos"()
+    set_addr $I10, rxquantr539_done
+    (rx530_rep) = rx530_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr539_done
+    rx530_cur."!mark_push"(rx530_rep, rx530_pos, $I10)
+    goto rxquantr539_loop
+  rxquantr539_done:
+  # rx pass
+    rx530_cur."!cursor_pass"(rx530_pos, "assertion:sym<[>")
+    if_null rx530_debug, debug_462
+    rx530_cur."!cursor_debug"("PASS", "assertion:sym<[>", " at pos=", rx530_pos)
+  debug_462:
+    .return (rx530_cur)
+  rx530_restart:
+.annotate 'line', 3
+    if_null rx530_debug, debug_463
+    rx530_cur."!cursor_debug"("NEXT", "assertion:sym<[>")
+  debug_463:
+  rx530_fail:
+    (rx530_rep, rx530_pos, $I10, $P10) = rx530_cur."!mark_fail"(0)
+    lt rx530_pos, -1, rx530_done
+    eq rx530_pos, -1, rx530_fail
+    jump $I10
+  rx530_done:
+    rx530_cur."!cursor_fail"()
+    if_null rx530_debug, debug_464
+    rx530_cur."!cursor_debug"("FAIL", "assertion:sym<[>")
+  debug_464:
+    .return (rx530_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<[>"  :subid("148_1283975941.34404") :method
-.annotate 'line', 0
-    new $P509, "ResizablePMCArray"
-    push $P509, ""
-    .return ($P509)
+.sub "!PREFIX__assertion:sym<[>"  :subid("154_1284728471.30547") :method
+.annotate 'line', 3
+    new $P532, "ResizablePMCArray"
+    push $P532, ""
+    .return ($P532)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block511"  :anon :subid("149_1283975941.34404") :method :outer("147_1283975941.34404")
-.annotate 'line', 0
-    .local string rx513_tgt
-    .local int rx513_pos
-    .local int rx513_off
-    .local int rx513_eos
-    .local int rx513_rep
-    .local pmc rx513_cur
-    .local pmc rx513_debug
-    (rx513_cur, rx513_pos, rx513_tgt, $I10) = self."!cursor_start"()
-    getattribute rx513_debug, rx513_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx513_cur
-    .local pmc match
-    .lex "$/", match
-    length rx513_eos, rx513_tgt
-    gt rx513_pos, rx513_eos, rx513_done
-    set rx513_off, 0
-    lt rx513_pos, 2, rx513_start
-    sub rx513_off, rx513_pos, 1
-    substr rx513_tgt, rx513_tgt, rx513_off
-  rx513_start:
-    eq $I10, 1, rx513_restart
-    if_null rx513_debug, debug_436
-    rx513_cur."!cursor_debug"("START", "")
-  debug_436:
+.sub "_block534"  :anon :subid("155_1284728471.30547") :method :outer("153_1284728471.30547")
+.annotate 'line', 174
+    .local string rx536_tgt
+    .local int rx536_pos
+    .local int rx536_off
+    .local int rx536_eos
+    .local int rx536_rep
+    .local pmc rx536_cur
+    .local pmc rx536_debug
+    (rx536_cur, rx536_pos, rx536_tgt, $I10) = self."!cursor_start"()
+    getattribute rx536_debug, rx536_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx536_cur
+    .local pmc match
+    .lex "$/", match
+    length rx536_eos, rx536_tgt
+    gt rx536_pos, rx536_eos, rx536_done
+    set rx536_off, 0
+    lt rx536_pos, 2, rx536_start
+    sub rx536_off, rx536_pos, 1
+    substr rx536_tgt, rx536_tgt, rx536_off
+  rx536_start:
+    eq $I10, 1, rx536_restart
+    if_null rx536_debug, debug_458
+    rx536_cur."!cursor_debug"("START", "")
+  debug_458:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan514_done
-    goto rxscan514_scan
-  rxscan514_loop:
-    ($P10) = rx513_cur."from"()
-    inc $P10
-    set rx513_pos, $P10
-    ge rx513_pos, rx513_eos, rxscan514_done
-  rxscan514_scan:
-    set_addr $I10, rxscan514_loop
-    rx513_cur."!mark_push"(0, rx513_pos, $I10)
-  rxscan514_done:
-  alt515_0:
-    set_addr $I10, alt515_1
-    rx513_cur."!mark_push"(0, rx513_pos, $I10)
+    ne $I10, -1, rxscan537_done
+    goto rxscan537_scan
+  rxscan537_loop:
+    ($P10) = rx536_cur."from"()
+    inc $P10
+    set rx536_pos, $P10
+    ge rx536_pos, rx536_eos, rxscan537_done
+  rxscan537_scan:
+    set_addr $I10, rxscan537_loop
+    rx536_cur."!mark_push"(0, rx536_pos, $I10)
+  rxscan537_done:
+  alt538_0:
+    set_addr $I10, alt538_1
+    rx536_cur."!mark_push"(0, rx536_pos, $I10)
   # rx literal  "["
-    add $I11, rx513_pos, 1
-    gt $I11, rx513_eos, rx513_fail
-    sub $I11, rx513_pos, rx513_off
-    ord $I11, rx513_tgt, $I11
-    ne $I11, 91, rx513_fail
-    add rx513_pos, 1
-    goto alt515_end
-  alt515_1:
-    set_addr $I10, alt515_2
-    rx513_cur."!mark_push"(0, rx513_pos, $I10)
+    add $I11, rx536_pos, 1
+    gt $I11, rx536_eos, rx536_fail
+    sub $I11, rx536_pos, rx536_off
+    ord $I11, rx536_tgt, $I11
+    ne $I11, 91, rx536_fail
+    add rx536_pos, 1
+    goto alt538_end
+  alt538_1:
+    set_addr $I10, alt538_2
+    rx536_cur."!mark_push"(0, rx536_pos, $I10)
   # rx literal  "+"
-    add $I11, rx513_pos, 1
-    gt $I11, rx513_eos, rx513_fail
-    sub $I11, rx513_pos, rx513_off
-    ord $I11, rx513_tgt, $I11
-    ne $I11, 43, rx513_fail
-    add rx513_pos, 1
-    goto alt515_end
-  alt515_2:
+    add $I11, rx536_pos, 1
+    gt $I11, rx536_eos, rx536_fail
+    sub $I11, rx536_pos, rx536_off
+    ord $I11, rx536_tgt, $I11
+    ne $I11, 43, rx536_fail
+    add rx536_pos, 1
+    goto alt538_end
+  alt538_2:
   # rx literal  "-"
-    add $I11, rx513_pos, 1
-    gt $I11, rx513_eos, rx513_fail
-    sub $I11, rx513_pos, rx513_off
-    ord $I11, rx513_tgt, $I11
-    ne $I11, 45, rx513_fail
-    add rx513_pos, 1
-  alt515_end:
-  # rx pass
-    rx513_cur."!cursor_pass"(rx513_pos, "")
-    if_null rx513_debug, debug_437
-    rx513_cur."!cursor_debug"("PASS", "", " at pos=", rx513_pos)
-  debug_437:
-    .return (rx513_cur)
-  rx513_restart:
-    if_null rx513_debug, debug_438
-    rx513_cur."!cursor_debug"("NEXT", "")
-  debug_438:
-  rx513_fail:
-    (rx513_rep, rx513_pos, $I10, $P10) = rx513_cur."!mark_fail"(0)
-    lt rx513_pos, -1, rx513_done
-    eq rx513_pos, -1, rx513_fail
-    jump $I10
-  rx513_done:
-    rx513_cur."!cursor_fail"()
-    if_null rx513_debug, debug_439
-    rx513_cur."!cursor_debug"("FAIL", "")
-  debug_439:
-    .return (rx513_cur)
+    add $I11, rx536_pos, 1
+    gt $I11, rx536_eos, rx536_fail
+    sub $I11, rx536_pos, rx536_off
+    ord $I11, rx536_tgt, $I11
+    ne $I11, 45, rx536_fail
+    add rx536_pos, 1
+  alt538_end:
+  # rx pass
+    rx536_cur."!cursor_pass"(rx536_pos, "")
+    if_null rx536_debug, debug_459
+    rx536_cur."!cursor_debug"("PASS", "", " at pos=", rx536_pos)
+  debug_459:
+    .return (rx536_cur)
+  rx536_restart:
+    if_null rx536_debug, debug_460
+    rx536_cur."!cursor_debug"("NEXT", "")
+  debug_460:
+  rx536_fail:
+    (rx536_rep, rx536_pos, $I10, $P10) = rx536_cur."!mark_fail"(0)
+    lt rx536_pos, -1, rx536_done
+    eq rx536_pos, -1, rx536_fail
+    jump $I10
+  rx536_done:
+    rx536_cur."!cursor_fail"()
+    if_null rx536_debug, debug_461
+    rx536_cur."!cursor_debug"("FAIL", "")
+  debug_461:
+    .return (rx536_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "cclass_elem"  :subid("150_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .const 'Sub' $P530 = "152_1283975941.34404" 
-    capture_lex $P530
-    .local string rx519_tgt
-    .local int rx519_pos
-    .local int rx519_off
-    .local int rx519_eos
-    .local int rx519_rep
-    .local pmc rx519_cur
-    .local pmc rx519_debug
-    (rx519_cur, rx519_pos, rx519_tgt, $I10) = self."!cursor_start"()
-    rx519_cur."!cursor_caparray"("charspec")
-    getattribute rx519_debug, rx519_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx519_cur
-    .local pmc match
-    .lex "$/", match
-    length rx519_eos, rx519_tgt
-    gt rx519_pos, rx519_eos, rx519_done
-    set rx519_off, 0
-    lt rx519_pos, 2, rx519_start
-    sub rx519_off, rx519_pos, 1
-    substr rx519_tgt, rx519_tgt, rx519_off
-  rx519_start:
-    eq $I10, 1, rx519_restart
-    if_null rx519_debug, debug_443
-    rx519_cur."!cursor_debug"("START", "cclass_elem")
-  debug_443:
+.sub "cclass_elem"  :subid("156_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .const 'Sub' $P553 = "158_1284728471.30547" 
+    capture_lex $P553
+    .local string rx542_tgt
+    .local int rx542_pos
+    .local int rx542_off
+    .local int rx542_eos
+    .local int rx542_rep
+    .local pmc rx542_cur
+    .local pmc rx542_debug
+    (rx542_cur, rx542_pos, rx542_tgt, $I10) = self."!cursor_start"()
+    rx542_cur."!cursor_caparray"("charspec")
+    getattribute rx542_debug, rx542_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx542_cur
+    .local pmc match
+    .lex "$/", match
+    length rx542_eos, rx542_tgt
+    gt rx542_pos, rx542_eos, rx542_done
+    set rx542_off, 0
+    lt rx542_pos, 2, rx542_start
+    sub rx542_off, rx542_pos, 1
+    substr rx542_tgt, rx542_tgt, rx542_off
+  rx542_start:
+    eq $I10, 1, rx542_restart
+    if_null rx542_debug, debug_465
+    rx542_cur."!cursor_debug"("START", "cclass_elem")
+  debug_465:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan522_done
-    goto rxscan522_scan
-  rxscan522_loop:
-    ($P10) = rx519_cur."from"()
-    inc $P10
-    set rx519_pos, $P10
-    ge rx519_pos, rx519_eos, rxscan522_done
-  rxscan522_scan:
-    set_addr $I10, rxscan522_loop
-    rx519_cur."!mark_push"(0, rx519_pos, $I10)
-  rxscan522_done:
+    ne $I10, -1, rxscan545_done
+    goto rxscan545_scan
+  rxscan545_loop:
+    ($P10) = rx542_cur."from"()
+    inc $P10
+    set rx542_pos, $P10
+    ge rx542_pos, rx542_eos, rxscan545_done
+  rxscan545_scan:
+    set_addr $I10, rxscan545_loop
+    rx542_cur."!mark_push"(0, rx542_pos, $I10)
+  rxscan545_done:
+.annotate 'line', 177
   # rx subcapture "sign"
-    set_addr $I10, rxcap_524_fail
-    rx519_cur."!mark_push"(0, rx519_pos, $I10)
-  alt523_0:
-    set_addr $I10, alt523_1
-    rx519_cur."!mark_push"(0, rx519_pos, $I10)
+    set_addr $I10, rxcap_547_fail
+    rx542_cur."!mark_push"(0, rx542_pos, $I10)
+  alt546_0:
+    set_addr $I10, alt546_1
+    rx542_cur."!mark_push"(0, rx542_pos, $I10)
   # rx literal  "+"
-    add $I11, rx519_pos, 1
-    gt $I11, rx519_eos, rx519_fail
-    sub $I11, rx519_pos, rx519_off
-    ord $I11, rx519_tgt, $I11
-    ne $I11, 43, rx519_fail
-    add rx519_pos, 1
-    goto alt523_end
-  alt523_1:
-    set_addr $I10, alt523_2
-    rx519_cur."!mark_push"(0, rx519_pos, $I10)
+    add $I11, rx542_pos, 1
+    gt $I11, rx542_eos, rx542_fail
+    sub $I11, rx542_pos, rx542_off
+    ord $I11, rx542_tgt, $I11
+    ne $I11, 43, rx542_fail
+    add rx542_pos, 1
+    goto alt546_end
+  alt546_1:
+    set_addr $I10, alt546_2
+    rx542_cur."!mark_push"(0, rx542_pos, $I10)
   # rx literal  "-"
-    add $I11, rx519_pos, 1
-    gt $I11, rx519_eos, rx519_fail
-    sub $I11, rx519_pos, rx519_off
-    ord $I11, rx519_tgt, $I11
-    ne $I11, 45, rx519_fail
-    add rx519_pos, 1
-    goto alt523_end
-  alt523_2:
-  alt523_end:
-    set_addr $I10, rxcap_524_fail
-    ($I12, $I11) = rx519_cur."!mark_peek"($I10)
-    rx519_cur."!cursor_pos"($I11)
-    ($P10) = rx519_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx519_pos, "")
-    rx519_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx542_pos, 1
+    gt $I11, rx542_eos, rx542_fail
+    sub $I11, rx542_pos, rx542_off
+    ord $I11, rx542_tgt, $I11
+    ne $I11, 45, rx542_fail
+    add rx542_pos, 1
+    goto alt546_end
+  alt546_2:
+  alt546_end:
+    set_addr $I10, rxcap_547_fail
+    ($I12, $I11) = rx542_cur."!mark_peek"($I10)
+    rx542_cur."!cursor_pos"($I11)
+    ($P10) = rx542_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx542_pos, "")
+    rx542_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sign")
-    goto rxcap_524_done
-  rxcap_524_fail:
-    goto rx519_fail
-  rxcap_524_done:
-  # rx rxquantr525 ** 0..1
-    set_addr $I10, rxquantr525_done
-    rx519_cur."!mark_push"(0, rx519_pos, $I10)
-  rxquantr525_loop:
+    goto rxcap_547_done
+  rxcap_547_fail:
+    goto rx542_fail
+  rxcap_547_done:
+.annotate 'line', 178
+  # rx rxquantr548 ** 0..1
+    set_addr $I10, rxquantr548_done
+    rx542_cur."!mark_push"(0, rx542_pos, $I10)
+  rxquantr548_loop:
   # rx subrule "normspace" subtype=method negate=
-    rx519_cur."!cursor_pos"(rx519_pos)
-    $P10 = rx519_cur."normspace"()
-    unless $P10, rx519_fail
-    goto rxsubrule526_pass
-  rxsubrule526_back:
+    rx542_cur."!cursor_pos"(rx542_pos)
+    $P10 = rx542_cur."normspace"()
+    unless $P10, rx542_fail
+    goto rxsubrule549_pass
+  rxsubrule549_back:
     $P10 = $P10."!cursor_next"()
-    unless $P10, rx519_fail
-  rxsubrule526_pass:
-    set_addr $I10, rxsubrule526_back
-    rx519_cur."!mark_push"(0, rx519_pos, $I10, $P10)
-    rx519_pos = $P10."pos"()
-    set_addr $I10, rxquantr525_done
-    (rx519_rep) = rx519_cur."!mark_commit"($I10)
-  rxquantr525_done:
-  alt527_0:
-    set_addr $I10, alt527_1
-    rx519_cur."!mark_push"(0, rx519_pos, $I10)
+    unless $P10, rx542_fail
+  rxsubrule549_pass:
+    set_addr $I10, rxsubrule549_back
+    rx542_cur."!mark_push"(0, rx542_pos, $I10, $P10)
+    rx542_pos = $P10."pos"()
+    set_addr $I10, rxquantr548_done
+    (rx542_rep) = rx542_cur."!mark_commit"($I10)
+  rxquantr548_done:
+  alt550_0:
+.annotate 'line', 179
+    set_addr $I10, alt550_1
+    rx542_cur."!mark_push"(0, rx542_pos, $I10)
+.annotate 'line', 180
   # rx literal  "["
-    add $I11, rx519_pos, 1
-    gt $I11, rx519_eos, rx519_fail
-    sub $I11, rx519_pos, rx519_off
-    ord $I11, rx519_tgt, $I11
-    ne $I11, 91, rx519_fail
-    add rx519_pos, 1
-  # rx rxquantr528 ** 0..*
-    set_addr $I10, rxquantr528_done
-    rx519_cur."!mark_push"(0, rx519_pos, $I10)
-  rxquantr528_loop:
-  # rx subrule $P530 subtype=capture negate=
-    rx519_cur."!cursor_pos"(rx519_pos)
-    .const 'Sub' $P530 = "152_1283975941.34404" 
-    capture_lex $P530
-    $P10 = rx519_cur.$P530()
-    unless $P10, rx519_fail
-    goto rxsubrule548_pass
-  rxsubrule548_back:
+    add $I11, rx542_pos, 1
+    gt $I11, rx542_eos, rx542_fail
+    sub $I11, rx542_pos, rx542_off
+    ord $I11, rx542_tgt, $I11
+    ne $I11, 91, rx542_fail
+    add rx542_pos, 1
+.annotate 'line', 183
+  # rx rxquantr551 ** 0..*
+    set_addr $I10, rxquantr551_done
+    rx542_cur."!mark_push"(0, rx542_pos, $I10)
+  rxquantr551_loop:
+.annotate 'line', 180
+  # rx subrule $P553 subtype=capture negate=
+    rx542_cur."!cursor_pos"(rx542_pos)
+    .const 'Sub' $P553 = "158_1284728471.30547" 
+    capture_lex $P553
+    $P10 = rx542_cur.$P553()
+    unless $P10, rx542_fail
+    goto rxsubrule571_pass
+  rxsubrule571_back:
     $P10 = $P10."!cursor_next"()
-    unless $P10, rx519_fail
-  rxsubrule548_pass:
-    set_addr $I10, rxsubrule548_back
-    rx519_cur."!mark_push"(0, rx519_pos, $I10, $P10)
+    unless $P10, rx542_fail
+  rxsubrule571_pass:
+    set_addr $I10, rxsubrule571_back
+    rx542_cur."!mark_push"(0, rx542_pos, $I10, $P10)
     $P10."!cursor_names"("charspec")
-    rx519_pos = $P10."pos"()
-    set_addr $I10, rxquantr528_done
-    (rx519_rep) = rx519_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr528_done
-    rx519_cur."!mark_push"(rx519_rep, rx519_pos, $I10)
-    goto rxquantr528_loop
-  rxquantr528_done:
+    rx542_pos = $P10."pos"()
+.annotate 'line', 183
+    set_addr $I10, rxquantr551_done
+    (rx542_rep) = rx542_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr551_done
+    rx542_cur."!mark_push"(rx542_rep, rx542_pos, $I10)
+    goto rxquantr551_loop
+  rxquantr551_done:
+.annotate 'line', 184
   # rx charclass_q s r 0..-1
-    sub $I10, rx519_pos, rx519_off
-    find_not_cclass $I11, 32, rx519_tgt, $I10, rx519_eos
-    add rx519_pos, rx519_off, $I11
+    sub $I10, rx542_pos, rx542_off
+    find_not_cclass $I11, 32, rx542_tgt, $I10, rx542_eos
+    add rx542_pos, rx542_off, $I11
   # rx literal  "]"
-    add $I11, rx519_pos, 1
-    gt $I11, rx519_eos, rx519_fail
-    sub $I11, rx519_pos, rx519_off
-    ord $I11, rx519_tgt, $I11
-    ne $I11, 93, rx519_fail
-    add rx519_pos, 1
-    goto alt527_end
-  alt527_1:
+    add $I11, rx542_pos, 1
+    gt $I11, rx542_eos, rx542_fail
+    sub $I11, rx542_pos, rx542_off
+    ord $I11, rx542_tgt, $I11
+    ne $I11, 93, rx542_fail
+    add rx542_pos, 1
+.annotate 'line', 180
+    goto alt550_end
+  alt550_1:
+.annotate 'line', 185
   # rx subcapture "name"
-    set_addr $I10, rxcap_549_fail
-    rx519_cur."!mark_push"(0, rx519_pos, $I10)
+    set_addr $I10, rxcap_572_fail
+    rx542_cur."!mark_push"(0, rx542_pos, $I10)
   # rx charclass_q w r 1..-1
-    sub $I10, rx519_pos, rx519_off
-    find_not_cclass $I11, 8192, rx519_tgt, $I10, rx519_eos
+    sub $I10, rx542_pos, rx542_off
+    find_not_cclass $I11, 8192, rx542_tgt, $I10, rx542_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx519_fail
-    add rx519_pos, rx519_off, $I11
-    set_addr $I10, rxcap_549_fail
-    ($I12, $I11) = rx519_cur."!mark_peek"($I10)
-    rx519_cur."!cursor_pos"($I11)
-    ($P10) = rx519_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx519_pos, "")
-    rx519_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx542_fail
+    add rx542_pos, rx542_off, $I11
+    set_addr $I10, rxcap_572_fail
+    ($I12, $I11) = rx542_cur."!mark_peek"($I10)
+    rx542_cur."!cursor_pos"($I11)
+    ($P10) = rx542_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx542_pos, "")
+    rx542_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    goto rxcap_549_done
-  rxcap_549_fail:
-    goto rx519_fail
-  rxcap_549_done:
-  alt527_end:
-  # rx rxquantr550 ** 0..1
-    set_addr $I10, rxquantr550_done
-    rx519_cur."!mark_push"(0, rx519_pos, $I10)
-  rxquantr550_loop:
+    goto rxcap_572_done
+  rxcap_572_fail:
+    goto rx542_fail
+  rxcap_572_done:
+  alt550_end:
+.annotate 'line', 187
+  # rx rxquantr573 ** 0..1
+    set_addr $I10, rxquantr573_done
+    rx542_cur."!mark_push"(0, rx542_pos, $I10)
+  rxquantr573_loop:
   # rx subrule "normspace" subtype=method negate=
-    rx519_cur."!cursor_pos"(rx519_pos)
-    $P10 = rx519_cur."normspace"()
-    unless $P10, rx519_fail
-    goto rxsubrule551_pass
-  rxsubrule551_back:
+    rx542_cur."!cursor_pos"(rx542_pos)
+    $P10 = rx542_cur."normspace"()
+    unless $P10, rx542_fail
+    goto rxsubrule574_pass
+  rxsubrule574_back:
     $P10 = $P10."!cursor_next"()
-    unless $P10, rx519_fail
-  rxsubrule551_pass:
-    set_addr $I10, rxsubrule551_back
-    rx519_cur."!mark_push"(0, rx519_pos, $I10, $P10)
-    rx519_pos = $P10."pos"()
-    set_addr $I10, rxquantr550_done
-    (rx519_rep) = rx519_cur."!mark_commit"($I10)
-  rxquantr550_done:
-  # rx pass
-    rx519_cur."!cursor_pass"(rx519_pos, "cclass_elem")
-    if_null rx519_debug, debug_460
-    rx519_cur."!cursor_debug"("PASS", "cclass_elem", " at pos=", rx519_pos)
-  debug_460:
-    .return (rx519_cur)
-  rx519_restart:
-    if_null rx519_debug, debug_461
-    rx519_cur."!cursor_debug"("NEXT", "cclass_elem")
-  debug_461:
-  rx519_fail:
-    (rx519_rep, rx519_pos, $I10, $P10) = rx519_cur."!mark_fail"(0)
-    lt rx519_pos, -1, rx519_done
-    eq rx519_pos, -1, rx519_fail
-    jump $I10
-  rx519_done:
-    rx519_cur."!cursor_fail"()
-    if_null rx519_debug, debug_462
-    rx519_cur."!cursor_debug"("FAIL", "cclass_elem")
-  debug_462:
-    .return (rx519_cur)
+    unless $P10, rx542_fail
+  rxsubrule574_pass:
+    set_addr $I10, rxsubrule574_back
+    rx542_cur."!mark_push"(0, rx542_pos, $I10, $P10)
+    rx542_pos = $P10."pos"()
+    set_addr $I10, rxquantr573_done
+    (rx542_rep) = rx542_cur."!mark_commit"($I10)
+  rxquantr573_done:
+.annotate 'line', 176
+  # rx pass
+    rx542_cur."!cursor_pass"(rx542_pos, "cclass_elem")
+    if_null rx542_debug, debug_482
+    rx542_cur."!cursor_debug"("PASS", "cclass_elem", " at pos=", rx542_pos)
+  debug_482:
+    .return (rx542_cur)
+  rx542_restart:
+.annotate 'line', 3
+    if_null rx542_debug, debug_483
+    rx542_cur."!cursor_debug"("NEXT", "cclass_elem")
+  debug_483:
+  rx542_fail:
+    (rx542_rep, rx542_pos, $I10, $P10) = rx542_cur."!mark_fail"(0)
+    lt rx542_pos, -1, rx542_done
+    eq rx542_pos, -1, rx542_fail
+    jump $I10
+  rx542_done:
+    rx542_cur."!cursor_fail"()
+    if_null rx542_debug, debug_484
+    rx542_cur."!cursor_debug"("FAIL", "cclass_elem")
+  debug_484:
+    .return (rx542_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__cclass_elem"  :subid("151_1283975941.34404") :method
-.annotate 'line', 0
-    new $P521, "ResizablePMCArray"
-    push $P521, ""
-    push $P521, "-"
-    push $P521, "+"
-    .return ($P521)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block529"  :anon :subid("152_1283975941.34404") :method :outer("150_1283975941.34404")
-.annotate 'line', 0
-    .const 'Sub' $P545 = "155_1283975941.34404" 
-    capture_lex $P545
-    .const 'Sub' $P540 = "154_1283975941.34404" 
-    capture_lex $P540
-    .const 'Sub' $P536 = "153_1283975941.34404" 
-    capture_lex $P536
-    .local string rx531_tgt
-    .local int rx531_pos
-    .local int rx531_off
-    .local int rx531_eos
-    .local int rx531_rep
-    .local pmc rx531_cur
-    .local pmc rx531_debug
-    (rx531_cur, rx531_pos, rx531_tgt, $I10) = self."!cursor_start"()
-    rx531_cur."!cursor_caparray"("1")
-    getattribute rx531_debug, rx531_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx531_cur
-    .local pmc match
-    .lex "$/", match
-    length rx531_eos, rx531_tgt
-    gt rx531_pos, rx531_eos, rx531_done
-    set rx531_off, 0
-    lt rx531_pos, 2, rx531_start
-    sub rx531_off, rx531_pos, 1
-    substr rx531_tgt, rx531_tgt, rx531_off
-  rx531_start:
-    eq $I10, 1, rx531_restart
-    if_null rx531_debug, debug_444
-    rx531_cur."!cursor_debug"("START", "")
-  debug_444:
+.sub "!PREFIX__cclass_elem"  :subid("157_1284728471.30547") :method
+.annotate 'line', 3
+    new $P544, "ResizablePMCArray"
+    push $P544, ""
+    push $P544, "-"
+    push $P544, "+"
+    .return ($P544)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "_block552"  :anon :subid("158_1284728471.30547") :method :outer("156_1284728471.30547")
+.annotate 'line', 180
+    .const 'Sub' $P568 = "161_1284728471.30547" 
+    capture_lex $P568
+    .const 'Sub' $P563 = "160_1284728471.30547" 
+    capture_lex $P563
+    .const 'Sub' $P559 = "159_1284728471.30547" 
+    capture_lex $P559
+    .local string rx554_tgt
+    .local int rx554_pos
+    .local int rx554_off
+    .local int rx554_eos
+    .local int rx554_rep
+    .local pmc rx554_cur
+    .local pmc rx554_debug
+    (rx554_cur, rx554_pos, rx554_tgt, $I10) = self."!cursor_start"()
+    rx554_cur."!cursor_caparray"("1")
+    getattribute rx554_debug, rx554_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx554_cur
+    .local pmc match
+    .lex "$/", match
+    length rx554_eos, rx554_tgt
+    gt rx554_pos, rx554_eos, rx554_done
+    set rx554_off, 0
+    lt rx554_pos, 2, rx554_start
+    sub rx554_off, rx554_pos, 1
+    substr rx554_tgt, rx554_tgt, rx554_off
+  rx554_start:
+    eq $I10, 1, rx554_restart
+    if_null rx554_debug, debug_466
+    rx554_cur."!cursor_debug"("START", "")
+  debug_466:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan532_done
-    goto rxscan532_scan
-  rxscan532_loop:
-    ($P10) = rx531_cur."from"()
-    inc $P10
-    set rx531_pos, $P10
-    ge rx531_pos, rx531_eos, rxscan532_done
-  rxscan532_scan:
-    set_addr $I10, rxscan532_loop
-    rx531_cur."!mark_push"(0, rx531_pos, $I10)
-  rxscan532_done:
-  alt533_0:
-    set_addr $I10, alt533_1
-    rx531_cur."!mark_push"(0, rx531_pos, $I10)
+    ne $I10, -1, rxscan555_done
+    goto rxscan555_scan
+  rxscan555_loop:
+    ($P10) = rx554_cur."from"()
+    inc $P10
+    set rx554_pos, $P10
+    ge rx554_pos, rx554_eos, rxscan555_done
+  rxscan555_scan:
+    set_addr $I10, rxscan555_loop
+    rx554_cur."!mark_push"(0, rx554_pos, $I10)
+  rxscan555_done:
+  alt556_0:
+    set_addr $I10, alt556_1
+    rx554_cur."!mark_push"(0, rx554_pos, $I10)
+.annotate 'line', 181
   # rx charclass_q s r 0..-1
-    sub $I10, rx531_pos, rx531_off
-    find_not_cclass $I11, 32, rx531_tgt, $I10, rx531_eos
-    add rx531_pos, rx531_off, $I11
+    sub $I10, rx554_pos, rx554_off
+    find_not_cclass $I11, 32, rx554_tgt, $I10, rx554_eos
+    add rx554_pos, rx554_off, $I11
   # rx literal  "-"
-    add $I11, rx531_pos, 1
-    gt $I11, rx531_eos, rx531_fail
-    sub $I11, rx531_pos, rx531_off
-    ord $I11, rx531_tgt, $I11
-    ne $I11, 45, rx531_fail
-    add rx531_pos, 1
+    add $I11, rx554_pos, 1
+    gt $I11, rx554_eos, rx554_fail
+    sub $I11, rx554_pos, rx554_off
+    ord $I11, rx554_tgt, $I11
+    ne $I11, 45, rx554_fail
+    add rx554_pos, 1
   # rx subrule "obs" subtype=method negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    $P10 = rx531_cur."obs"("- as character range", "..")
-    unless $P10, rx531_fail
-    rx531_pos = $P10."pos"()
-    goto alt533_end
-  alt533_1:
+    rx554_cur."!cursor_pos"(rx554_pos)
+    $P10 = rx554_cur."obs"("- as character range", "..")
+    unless $P10, rx554_fail
+    rx554_pos = $P10."pos"()
+    goto alt556_end
+  alt556_1:
+.annotate 'line', 182
   # rx charclass_q s r 0..-1
-    sub $I10, rx531_pos, rx531_off
-    find_not_cclass $I11, 32, rx531_tgt, $I10, rx531_eos
-    add rx531_pos, rx531_off, $I11
-  alt534_0:
-    set_addr $I10, alt534_1
-    rx531_cur."!mark_push"(0, rx531_pos, $I10)
+    sub $I10, rx554_pos, rx554_off
+    find_not_cclass $I11, 32, rx554_tgt, $I10, rx554_eos
+    add rx554_pos, rx554_off, $I11
+  alt557_0:
+    set_addr $I10, alt557_1
+    rx554_cur."!mark_push"(0, rx554_pos, $I10)
   # rx literal  "\\"
-    add $I11, rx531_pos, 1
-    gt $I11, rx531_eos, rx531_fail
-    sub $I11, rx531_pos, rx531_off
-    ord $I11, rx531_tgt, $I11
-    ne $I11, 92, rx531_fail
-    add rx531_pos, 1
-  # rx subrule $P536 subtype=capture negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    .const 'Sub' $P536 = "153_1283975941.34404" 
-    capture_lex $P536
-    $P10 = rx531_cur.$P536()
-    unless $P10, rx531_fail
-    rx531_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx554_pos, 1
+    gt $I11, rx554_eos, rx554_fail
+    sub $I11, rx554_pos, rx554_off
+    ord $I11, rx554_tgt, $I11
+    ne $I11, 92, rx554_fail
+    add rx554_pos, 1
+  # rx subrule $P559 subtype=capture negate=
+    rx554_cur."!cursor_pos"(rx554_pos)
+    .const 'Sub' $P559 = "159_1284728471.30547" 
+    capture_lex $P559
+    $P10 = rx554_cur.$P559()
+    unless $P10, rx554_fail
+    rx554_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"(0)
-    rx531_pos = $P10."pos"()
-    goto alt534_end
-  alt534_1:
-  # rx subrule $P540 subtype=capture negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    .const 'Sub' $P540 = "154_1283975941.34404" 
-    capture_lex $P540
-    $P10 = rx531_cur.$P540()
-    unless $P10, rx531_fail
-    rx531_cur."!mark_push"(0, -1, 0, $P10)
+    rx554_pos = $P10."pos"()
+    goto alt557_end
+  alt557_1:
+  # rx subrule $P563 subtype=capture negate=
+    rx554_cur."!cursor_pos"(rx554_pos)
+    .const 'Sub' $P563 = "160_1284728471.30547" 
+    capture_lex $P563
+    $P10 = rx554_cur.$P563()
+    unless $P10, rx554_fail
+    rx554_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"(0)
-    rx531_pos = $P10."pos"()
-  alt534_end:
-  # rx rxquantr543 ** 0..1
-    set_addr $I10, rxquantr543_done
-    rx531_cur."!mark_push"(0, rx531_pos, $I10)
-  rxquantr543_loop:
+    rx554_pos = $P10."pos"()
+  alt557_end:
+  # rx rxquantr566 ** 0..1
+    set_addr $I10, rxquantr566_done
+    rx554_cur."!mark_push"(0, rx554_pos, $I10)
+  rxquantr566_loop:
   # rx charclass_q s r 0..-1
-    sub $I10, rx531_pos, rx531_off
-    find_not_cclass $I11, 32, rx531_tgt, $I10, rx531_eos
-    add rx531_pos, rx531_off, $I11
+    sub $I10, rx554_pos, rx554_off
+    find_not_cclass $I11, 32, rx554_tgt, $I10, rx554_eos
+    add rx554_pos, rx554_off, $I11
   # rx literal  ".."
-    add $I11, rx531_pos, 2
-    gt $I11, rx531_eos, rx531_fail
-    sub $I11, rx531_pos, rx531_off
-    substr $S10, rx531_tgt, $I11, 2
-    ne $S10, "..", rx531_fail
-    add rx531_pos, 2
+    add $I11, rx554_pos, 2
+    gt $I11, rx554_eos, rx554_fail
+    sub $I11, rx554_pos, rx554_off
+    substr $S10, rx554_tgt, $I11, 2
+    ne $S10, "..", rx554_fail
+    add rx554_pos, 2
   # rx charclass_q s r 0..-1
-    sub $I10, rx531_pos, rx531_off
-    find_not_cclass $I11, 32, rx531_tgt, $I10, rx531_eos
-    add rx531_pos, rx531_off, $I11
-  # rx subrule $P545 subtype=capture negate=
-    rx531_cur."!cursor_pos"(rx531_pos)
-    .const 'Sub' $P545 = "155_1283975941.34404" 
-    capture_lex $P545
-    $P10 = rx531_cur.$P545()
-    unless $P10, rx531_fail
-    rx531_cur."!mark_push"(0, -1, 0, $P10)
+    sub $I10, rx554_pos, rx554_off
+    find_not_cclass $I11, 32, rx554_tgt, $I10, rx554_eos
+    add rx554_pos, rx554_off, $I11
+  # rx subrule $P568 subtype=capture negate=
+    rx554_cur."!cursor_pos"(rx554_pos)
+    .const 'Sub' $P568 = "161_1284728471.30547" 
+    capture_lex $P568
+    $P10 = rx554_cur.$P568()
+    unless $P10, rx554_fail
+    rx554_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("1")
-    rx531_pos = $P10."pos"()
-    set_addr $I10, rxquantr543_done
-    (rx531_rep) = rx531_cur."!mark_commit"($I10)
-  rxquantr543_done:
-  alt533_end:
-  # rx pass
-    rx531_cur."!cursor_pass"(rx531_pos, "")
-    if_null rx531_debug, debug_457
-    rx531_cur."!cursor_debug"("PASS", "", " at pos=", rx531_pos)
-  debug_457:
-    .return (rx531_cur)
-  rx531_restart:
-    if_null rx531_debug, debug_458
-    rx531_cur."!cursor_debug"("NEXT", "")
-  debug_458:
-  rx531_fail:
-    (rx531_rep, rx531_pos, $I10, $P10) = rx531_cur."!mark_fail"(0)
-    lt rx531_pos, -1, rx531_done
-    eq rx531_pos, -1, rx531_fail
-    jump $I10
-  rx531_done:
-    rx531_cur."!cursor_fail"()
-    if_null rx531_debug, debug_459
-    rx531_cur."!cursor_debug"("FAIL", "")
-  debug_459:
-    .return (rx531_cur)
+    rx554_pos = $P10."pos"()
+    set_addr $I10, rxquantr566_done
+    (rx554_rep) = rx554_cur."!mark_commit"($I10)
+  rxquantr566_done:
+  alt556_end:
+.annotate 'line', 180
+  # rx pass
+    rx554_cur."!cursor_pass"(rx554_pos, "")
+    if_null rx554_debug, debug_479
+    rx554_cur."!cursor_debug"("PASS", "", " at pos=", rx554_pos)
+  debug_479:
+    .return (rx554_cur)
+  rx554_restart:
+    if_null rx554_debug, debug_480
+    rx554_cur."!cursor_debug"("NEXT", "")
+  debug_480:
+  rx554_fail:
+    (rx554_rep, rx554_pos, $I10, $P10) = rx554_cur."!mark_fail"(0)
+    lt rx554_pos, -1, rx554_done
+    eq rx554_pos, -1, rx554_fail
+    jump $I10
+  rx554_done:
+    rx554_cur."!cursor_fail"()
+    if_null rx554_debug, debug_481
+    rx554_cur."!cursor_debug"("FAIL", "")
+  debug_481:
+    .return (rx554_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block535"  :anon :subid("153_1283975941.34404") :method :outer("152_1283975941.34404")
-.annotate 'line', 0
-    .local string rx537_tgt
-    .local int rx537_pos
-    .local int rx537_off
-    .local int rx537_eos
-    .local int rx537_rep
-    .local pmc rx537_cur
-    .local pmc rx537_debug
-    (rx537_cur, rx537_pos, rx537_tgt, $I10) = self."!cursor_start"()
-    getattribute rx537_debug, rx537_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx537_cur
-    .local pmc match
-    .lex "$/", match
-    length rx537_eos, rx537_tgt
-    gt rx537_pos, rx537_eos, rx537_done
-    set rx537_off, 0
-    lt rx537_pos, 2, rx537_start
-    sub rx537_off, rx537_pos, 1
-    substr rx537_tgt, rx537_tgt, rx537_off
-  rx537_start:
-    eq $I10, 1, rx537_restart
-    if_null rx537_debug, debug_445
-    rx537_cur."!cursor_debug"("START", "")
-  debug_445:
+.sub "_block558"  :anon :subid("159_1284728471.30547") :method :outer("158_1284728471.30547")
+.annotate 'line', 182
+    .local string rx560_tgt
+    .local int rx560_pos
+    .local int rx560_off
+    .local int rx560_eos
+    .local int rx560_rep
+    .local pmc rx560_cur
+    .local pmc rx560_debug
+    (rx560_cur, rx560_pos, rx560_tgt, $I10) = self."!cursor_start"()
+    getattribute rx560_debug, rx560_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx560_cur
+    .local pmc match
+    .lex "$/", match
+    length rx560_eos, rx560_tgt
+    gt rx560_pos, rx560_eos, rx560_done
+    set rx560_off, 0
+    lt rx560_pos, 2, rx560_start
+    sub rx560_off, rx560_pos, 1
+    substr rx560_tgt, rx560_tgt, rx560_off
+  rx560_start:
+    eq $I10, 1, rx560_restart
+    if_null rx560_debug, debug_467
+    rx560_cur."!cursor_debug"("START", "")
+  debug_467:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan538_done
-    goto rxscan538_scan
-  rxscan538_loop:
-    ($P10) = rx537_cur."from"()
-    inc $P10
-    set rx537_pos, $P10
-    ge rx537_pos, rx537_eos, rxscan538_done
-  rxscan538_scan:
-    set_addr $I10, rxscan538_loop
-    rx537_cur."!mark_push"(0, rx537_pos, $I10)
-  rxscan538_done:
+    ne $I10, -1, rxscan561_done
+    goto rxscan561_scan
+  rxscan561_loop:
+    ($P10) = rx560_cur."from"()
+    inc $P10
+    set rx560_pos, $P10
+    ge rx560_pos, rx560_eos, rxscan561_done
+  rxscan561_scan:
+    set_addr $I10, rxscan561_loop
+    rx560_cur."!mark_push"(0, rx560_pos, $I10)
+  rxscan561_done:
   # rx charclass .
-    ge rx537_pos, rx537_eos, rx537_fail
-    inc rx537_pos
+    ge rx560_pos, rx560_eos, rx560_fail
+    inc rx560_pos
   # rx pass
-    rx537_cur."!cursor_pass"(rx537_pos, "")
-    if_null rx537_debug, debug_446
-    rx537_cur."!cursor_debug"("PASS", "", " at pos=", rx537_pos)
-  debug_446:
-    .return (rx537_cur)
-  rx537_restart:
-    if_null rx537_debug, debug_447
-    rx537_cur."!cursor_debug"("NEXT", "")
-  debug_447:
-  rx537_fail:
-    (rx537_rep, rx537_pos, $I10, $P10) = rx537_cur."!mark_fail"(0)
-    lt rx537_pos, -1, rx537_done
-    eq rx537_pos, -1, rx537_fail
-    jump $I10
-  rx537_done:
-    rx537_cur."!cursor_fail"()
-    if_null rx537_debug, debug_448
-    rx537_cur."!cursor_debug"("FAIL", "")
-  debug_448:
-    .return (rx537_cur)
+    rx560_cur."!cursor_pass"(rx560_pos, "")
+    if_null rx560_debug, debug_468
+    rx560_cur."!cursor_debug"("PASS", "", " at pos=", rx560_pos)
+  debug_468:
+    .return (rx560_cur)
+  rx560_restart:
+    if_null rx560_debug, debug_469
+    rx560_cur."!cursor_debug"("NEXT", "")
+  debug_469:
+  rx560_fail:
+    (rx560_rep, rx560_pos, $I10, $P10) = rx560_cur."!mark_fail"(0)
+    lt rx560_pos, -1, rx560_done
+    eq rx560_pos, -1, rx560_fail
+    jump $I10
+  rx560_done:
+    rx560_cur."!cursor_fail"()
+    if_null rx560_debug, debug_470
+    rx560_cur."!cursor_debug"("FAIL", "")
+  debug_470:
+    .return (rx560_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block539"  :anon :subid("154_1283975941.34404") :method :outer("152_1283975941.34404")
-.annotate 'line', 0
-    .local string rx541_tgt
-    .local int rx541_pos
-    .local int rx541_off
-    .local int rx541_eos
-    .local int rx541_rep
-    .local pmc rx541_cur
-    .local pmc rx541_debug
-    (rx541_cur, rx541_pos, rx541_tgt, $I10) = self."!cursor_start"()
-    getattribute rx541_debug, rx541_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx541_cur
-    .local pmc match
-    .lex "$/", match
-    length rx541_eos, rx541_tgt
-    gt rx541_pos, rx541_eos, rx541_done
-    set rx541_off, 0
-    lt rx541_pos, 2, rx541_start
-    sub rx541_off, rx541_pos, 1
-    substr rx541_tgt, rx541_tgt, rx541_off
-  rx541_start:
-    eq $I10, 1, rx541_restart
-    if_null rx541_debug, debug_449
-    rx541_cur."!cursor_debug"("START", "")
-  debug_449:
+.sub "_block562"  :anon :subid("160_1284728471.30547") :method :outer("158_1284728471.30547")
+.annotate 'line', 182
+    .local string rx564_tgt
+    .local int rx564_pos
+    .local int rx564_off
+    .local int rx564_eos
+    .local int rx564_rep
+    .local pmc rx564_cur
+    .local pmc rx564_debug
+    (rx564_cur, rx564_pos, rx564_tgt, $I10) = self."!cursor_start"()
+    getattribute rx564_debug, rx564_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx564_cur
+    .local pmc match
+    .lex "$/", match
+    length rx564_eos, rx564_tgt
+    gt rx564_pos, rx564_eos, rx564_done
+    set rx564_off, 0
+    lt rx564_pos, 2, rx564_start
+    sub rx564_off, rx564_pos, 1
+    substr rx564_tgt, rx564_tgt, rx564_off
+  rx564_start:
+    eq $I10, 1, rx564_restart
+    if_null rx564_debug, debug_471
+    rx564_cur."!cursor_debug"("START", "")
+  debug_471:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan542_done
-    goto rxscan542_scan
-  rxscan542_loop:
-    ($P10) = rx541_cur."from"()
-    inc $P10
-    set rx541_pos, $P10
-    ge rx541_pos, rx541_eos, rxscan542_done
-  rxscan542_scan:
-    set_addr $I10, rxscan542_loop
-    rx541_cur."!mark_push"(0, rx541_pos, $I10)
-  rxscan542_done:
+    ne $I10, -1, rxscan565_done
+    goto rxscan565_scan
+  rxscan565_loop:
+    ($P10) = rx564_cur."from"()
+    inc $P10
+    set rx564_pos, $P10
+    ge rx564_pos, rx564_eos, rxscan565_done
+  rxscan565_scan:
+    set_addr $I10, rxscan565_loop
+    rx564_cur."!mark_push"(0, rx564_pos, $I10)
+  rxscan565_done:
   # rx enumcharlist negate=1 
-    ge rx541_pos, rx541_eos, rx541_fail
-    sub $I10, rx541_pos, rx541_off
-    substr $S10, rx541_tgt, $I10, 1
+    ge rx564_pos, rx564_eos, rx564_fail
+    sub $I10, rx564_pos, rx564_off
+    substr $S10, rx564_tgt, $I10, 1
     index $I11, "]\\", $S10
-    ge $I11, 0, rx541_fail
-    inc rx541_pos
+    ge $I11, 0, rx564_fail
+    inc rx564_pos
   # rx pass
-    rx541_cur."!cursor_pass"(rx541_pos, "")
-    if_null rx541_debug, debug_450
-    rx541_cur."!cursor_debug"("PASS", "", " at pos=", rx541_pos)
-  debug_450:
-    .return (rx541_cur)
-  rx541_restart:
-    if_null rx541_debug, debug_451
-    rx541_cur."!cursor_debug"("NEXT", "")
-  debug_451:
-  rx541_fail:
-    (rx541_rep, rx541_pos, $I10, $P10) = rx541_cur."!mark_fail"(0)
-    lt rx541_pos, -1, rx541_done
-    eq rx541_pos, -1, rx541_fail
-    jump $I10
-  rx541_done:
-    rx541_cur."!cursor_fail"()
-    if_null rx541_debug, debug_452
-    rx541_cur."!cursor_debug"("FAIL", "")
-  debug_452:
-    .return (rx541_cur)
+    rx564_cur."!cursor_pass"(rx564_pos, "")
+    if_null rx564_debug, debug_472
+    rx564_cur."!cursor_debug"("PASS", "", " at pos=", rx564_pos)
+  debug_472:
+    .return (rx564_cur)
+  rx564_restart:
+    if_null rx564_debug, debug_473
+    rx564_cur."!cursor_debug"("NEXT", "")
+  debug_473:
+  rx564_fail:
+    (rx564_rep, rx564_pos, $I10, $P10) = rx564_cur."!mark_fail"(0)
+    lt rx564_pos, -1, rx564_done
+    eq rx564_pos, -1, rx564_fail
+    jump $I10
+  rx564_done:
+    rx564_cur."!cursor_fail"()
+    if_null rx564_debug, debug_474
+    rx564_cur."!cursor_debug"("FAIL", "")
+  debug_474:
+    .return (rx564_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block544"  :anon :subid("155_1283975941.34404") :method :outer("152_1283975941.34404")
-.annotate 'line', 0
-    .local string rx546_tgt
-    .local int rx546_pos
-    .local int rx546_off
-    .local int rx546_eos
-    .local int rx546_rep
-    .local pmc rx546_cur
-    .local pmc rx546_debug
-    (rx546_cur, rx546_pos, rx546_tgt, $I10) = self."!cursor_start"()
-    getattribute rx546_debug, rx546_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx546_cur
-    .local pmc match
-    .lex "$/", match
-    length rx546_eos, rx546_tgt
-    gt rx546_pos, rx546_eos, rx546_done
-    set rx546_off, 0
-    lt rx546_pos, 2, rx546_start
-    sub rx546_off, rx546_pos, 1
-    substr rx546_tgt, rx546_tgt, rx546_off
-  rx546_start:
-    eq $I10, 1, rx546_restart
-    if_null rx546_debug, debug_453
-    rx546_cur."!cursor_debug"("START", "")
-  debug_453:
+.sub "_block567"  :anon :subid("161_1284728471.30547") :method :outer("158_1284728471.30547")
+.annotate 'line', 182
+    .local string rx569_tgt
+    .local int rx569_pos
+    .local int rx569_off
+    .local int rx569_eos
+    .local int rx569_rep
+    .local pmc rx569_cur
+    .local pmc rx569_debug
+    (rx569_cur, rx569_pos, rx569_tgt, $I10) = self."!cursor_start"()
+    getattribute rx569_debug, rx569_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx569_cur
+    .local pmc match
+    .lex "$/", match
+    length rx569_eos, rx569_tgt
+    gt rx569_pos, rx569_eos, rx569_done
+    set rx569_off, 0
+    lt rx569_pos, 2, rx569_start
+    sub rx569_off, rx569_pos, 1
+    substr rx569_tgt, rx569_tgt, rx569_off
+  rx569_start:
+    eq $I10, 1, rx569_restart
+    if_null rx569_debug, debug_475
+    rx569_cur."!cursor_debug"("START", "")
+  debug_475:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan547_done
-    goto rxscan547_scan
-  rxscan547_loop:
-    ($P10) = rx546_cur."from"()
-    inc $P10
-    set rx546_pos, $P10
-    ge rx546_pos, rx546_eos, rxscan547_done
-  rxscan547_scan:
-    set_addr $I10, rxscan547_loop
-    rx546_cur."!mark_push"(0, rx546_pos, $I10)
-  rxscan547_done:
+    ne $I10, -1, rxscan570_done
+    goto rxscan570_scan
+  rxscan570_loop:
+    ($P10) = rx569_cur."from"()
+    inc $P10
+    set rx569_pos, $P10
+    ge rx569_pos, rx569_eos, rxscan570_done
+  rxscan570_scan:
+    set_addr $I10, rxscan570_loop
+    rx569_cur."!mark_push"(0, rx569_pos, $I10)
+  rxscan570_done:
   # rx charclass .
-    ge rx546_pos, rx546_eos, rx546_fail
-    inc rx546_pos
+    ge rx569_pos, rx569_eos, rx569_fail
+    inc rx569_pos
   # rx pass
-    rx546_cur."!cursor_pass"(rx546_pos, "")
-    if_null rx546_debug, debug_454
-    rx546_cur."!cursor_debug"("PASS", "", " at pos=", rx546_pos)
-  debug_454:
-    .return (rx546_cur)
-  rx546_restart:
-    if_null rx546_debug, debug_455
-    rx546_cur."!cursor_debug"("NEXT", "")
-  debug_455:
-  rx546_fail:
-    (rx546_rep, rx546_pos, $I10, $P10) = rx546_cur."!mark_fail"(0)
-    lt rx546_pos, -1, rx546_done
-    eq rx546_pos, -1, rx546_fail
-    jump $I10
-  rx546_done:
-    rx546_cur."!cursor_fail"()
-    if_null rx546_debug, debug_456
-    rx546_cur."!cursor_debug"("FAIL", "")
-  debug_456:
-    .return (rx546_cur)
+    rx569_cur."!cursor_pass"(rx569_pos, "")
+    if_null rx569_debug, debug_476
+    rx569_cur."!cursor_debug"("PASS", "", " at pos=", rx569_pos)
+  debug_476:
+    .return (rx569_cur)
+  rx569_restart:
+    if_null rx569_debug, debug_477
+    rx569_cur."!cursor_debug"("NEXT", "")
+  debug_477:
+  rx569_fail:
+    (rx569_rep, rx569_pos, $I10, $P10) = rx569_cur."!mark_fail"(0)
+    lt rx569_pos, -1, rx569_done
+    eq rx569_pos, -1, rx569_fail
+    jump $I10
+  rx569_done:
+    rx569_cur."!cursor_fail"()
+    if_null rx569_debug, debug_478
+    rx569_cur."!cursor_debug"("FAIL", "")
+  debug_478:
+    .return (rx569_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_internal"  :subid("156_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .const 'Sub' $P561 = "158_1283975941.34404" 
-    capture_lex $P561
-    .local string rx553_tgt
-    .local int rx553_pos
-    .local int rx553_off
-    .local int rx553_eos
-    .local int rx553_rep
-    .local pmc rx553_cur
-    .local pmc rx553_debug
-    (rx553_cur, rx553_pos, rx553_tgt, $I10) = self."!cursor_start"()
-    rx553_cur."!cursor_caparray"("n")
-    getattribute rx553_debug, rx553_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx553_cur
-    .local pmc match
-    .lex "$/", match
-    length rx553_eos, rx553_tgt
-    gt rx553_pos, rx553_eos, rx553_done
-    set rx553_off, 0
-    lt rx553_pos, 2, rx553_start
-    sub rx553_off, rx553_pos, 1
-    substr rx553_tgt, rx553_tgt, rx553_off
-  rx553_start:
-    eq $I10, 1, rx553_restart
-    if_null rx553_debug, debug_463
-    rx553_cur."!cursor_debug"("START", "mod_internal")
-  debug_463:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan557_done
-    goto rxscan557_scan
-  rxscan557_loop:
-    ($P10) = rx553_cur."from"()
-    inc $P10
-    set rx553_pos, $P10
-    ge rx553_pos, rx553_eos, rxscan557_done
-  rxscan557_scan:
-    set_addr $I10, rxscan557_loop
-    rx553_cur."!mark_push"(0, rx553_pos, $I10)
-  rxscan557_done:
-  alt558_0:
-    set_addr $I10, alt558_1
-    rx553_cur."!mark_push"(0, rx553_pos, $I10)
+.sub "mod_internal"  :subid("162_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .const 'Sub' $P584 = "164_1284728471.30547" 
+    capture_lex $P584
+    .local string rx576_tgt
+    .local int rx576_pos
+    .local int rx576_off
+    .local int rx576_eos
+    .local int rx576_rep
+    .local pmc rx576_cur
+    .local pmc rx576_debug
+    (rx576_cur, rx576_pos, rx576_tgt, $I10) = self."!cursor_start"()
+    rx576_cur."!cursor_caparray"("n")
+    getattribute rx576_debug, rx576_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx576_cur
+    .local pmc match
+    .lex "$/", match
+    length rx576_eos, rx576_tgt
+    gt rx576_pos, rx576_eos, rx576_done
+    set rx576_off, 0
+    lt rx576_pos, 2, rx576_start
+    sub rx576_off, rx576_pos, 1
+    substr rx576_tgt, rx576_tgt, rx576_off
+  rx576_start:
+    eq $I10, 1, rx576_restart
+    if_null rx576_debug, debug_485
+    rx576_cur."!cursor_debug"("START", "mod_internal")
+  debug_485:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan580_done
+    goto rxscan580_scan
+  rxscan580_loop:
+    ($P10) = rx576_cur."from"()
+    inc $P10
+    set rx576_pos, $P10
+    ge rx576_pos, rx576_eos, rxscan580_done
+  rxscan580_scan:
+    set_addr $I10, rxscan580_loop
+    rx576_cur."!mark_push"(0, rx576_pos, $I10)
+  rxscan580_done:
+  alt581_0:
+.annotate 'line', 191
+    set_addr $I10, alt581_1
+    rx576_cur."!mark_push"(0, rx576_pos, $I10)
+.annotate 'line', 192
   # rx literal  ":"
-    add $I11, rx553_pos, 1
-    gt $I11, rx553_eos, rx553_fail
-    sub $I11, rx553_pos, rx553_off
-    ord $I11, rx553_tgt, $I11
-    ne $I11, 58, rx553_fail
-    add rx553_pos, 1
-  # rx rxquantr559 ** 1..1
-    set_addr $I10, rxquantr559_done
-    rx553_cur."!mark_push"(0, -1, $I10)
-  rxquantr559_loop:
-  # rx subrule $P561 subtype=capture negate=
-    rx553_cur."!cursor_pos"(rx553_pos)
-    .const 'Sub' $P561 = "158_1283975941.34404" 
-    capture_lex $P561
-    $P10 = rx553_cur.$P561()
-    unless $P10, rx553_fail
-    goto rxsubrule565_pass
-  rxsubrule565_back:
+    add $I11, rx576_pos, 1
+    gt $I11, rx576_eos, rx576_fail
+    sub $I11, rx576_pos, rx576_off
+    ord $I11, rx576_tgt, $I11
+    ne $I11, 58, rx576_fail
+    add rx576_pos, 1
+  # rx rxquantr582 ** 1..1
+    set_addr $I10, rxquantr582_done
+    rx576_cur."!mark_push"(0, -1, $I10)
+  rxquantr582_loop:
+  # rx subrule $P584 subtype=capture negate=
+    rx576_cur."!cursor_pos"(rx576_pos)
+    .const 'Sub' $P584 = "164_1284728471.30547" 
+    capture_lex $P584
+    $P10 = rx576_cur.$P584()
+    unless $P10, rx576_fail
+    goto rxsubrule588_pass
+  rxsubrule588_back:
     $P10 = $P10."!cursor_next"()
-    unless $P10, rx553_fail
-  rxsubrule565_pass:
-    set_addr $I10, rxsubrule565_back
-    rx553_cur."!mark_push"(0, rx553_pos, $I10, $P10)
+    unless $P10, rx576_fail
+  rxsubrule588_pass:
+    set_addr $I10, rxsubrule588_back
+    rx576_cur."!mark_push"(0, rx576_pos, $I10, $P10)
     $P10."!cursor_names"("n")
-    rx553_pos = $P10."pos"()
-    set_addr $I10, rxquantr559_done
-    (rx553_rep) = rx553_cur."!mark_commit"($I10)
-  rxquantr559_done:
+    rx576_pos = $P10."pos"()
+    set_addr $I10, rxquantr582_done
+    (rx576_rep) = rx576_cur."!mark_commit"($I10)
+  rxquantr582_done:
   # rx subrule "mod_ident" subtype=capture negate=
-    rx553_cur."!cursor_pos"(rx553_pos)
-    $P10 = rx553_cur."mod_ident"()
-    unless $P10, rx553_fail
-    rx553_cur."!mark_push"(0, -1, 0, $P10)
+    rx576_cur."!cursor_pos"(rx576_pos)
+    $P10 = rx576_cur."mod_ident"()
+    unless $P10, rx576_fail
+    rx576_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("mod_ident")
-    rx553_pos = $P10."pos"()
+    rx576_pos = $P10."pos"()
   # rxanchor rwb
-    le rx553_pos, 0, rx553_fail
-    sub $I10, rx553_pos, rx553_off
-    is_cclass $I11, 8192, rx553_tgt, $I10
-    if $I11, rx553_fail
+    le rx576_pos, 0, rx576_fail
+    sub $I10, rx576_pos, rx576_off
+    is_cclass $I11, 8192, rx576_tgt, $I10
+    if $I11, rx576_fail
     dec $I10
-    is_cclass $I11, 8192, rx553_tgt, $I10
-    unless $I11, rx553_fail
-    goto alt558_end
-  alt558_1:
+    is_cclass $I11, 8192, rx576_tgt, $I10
+    unless $I11, rx576_fail
+    goto alt581_end
+  alt581_1:
+.annotate 'line', 193
   # rx literal  ":"
-    add $I11, rx553_pos, 1
-    gt $I11, rx553_eos, rx553_fail
-    sub $I11, rx553_pos, rx553_off
-    ord $I11, rx553_tgt, $I11
-    ne $I11, 58, rx553_fail
-    add rx553_pos, 1
+    add $I11, rx576_pos, 1
+    gt $I11, rx576_eos, rx576_fail
+    sub $I11, rx576_pos, rx576_off
+    ord $I11, rx576_tgt, $I11
+    ne $I11, 58, rx576_fail
+    add rx576_pos, 1
   # rx subrule "mod_ident" subtype=capture negate=
-    rx553_cur."!cursor_pos"(rx553_pos)
-    $P10 = rx553_cur."mod_ident"()
-    unless $P10, rx553_fail
-    rx553_cur."!mark_push"(0, -1, 0, $P10)
+    rx576_cur."!cursor_pos"(rx576_pos)
+    $P10 = rx576_cur."mod_ident"()
+    unless $P10, rx576_fail
+    rx576_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("mod_ident")
-    rx553_pos = $P10."pos"()
-  # rx rxquantr566 ** 0..1
-    set_addr $I10, rxquantr566_done
-    rx553_cur."!mark_push"(0, rx553_pos, $I10)
-  rxquantr566_loop:
+    rx576_pos = $P10."pos"()
+  # rx rxquantr589 ** 0..1
+    set_addr $I10, rxquantr589_done
+    rx576_cur."!mark_push"(0, rx576_pos, $I10)
+  rxquantr589_loop:
   # rx literal  "("
-    add $I11, rx553_pos, 1
-    gt $I11, rx553_eos, rx553_fail
-    sub $I11, rx553_pos, rx553_off
-    ord $I11, rx553_tgt, $I11
-    ne $I11, 40, rx553_fail
-    add rx553_pos, 1
+    add $I11, rx576_pos, 1
+    gt $I11, rx576_eos, rx576_fail
+    sub $I11, rx576_pos, rx576_off
+    ord $I11, rx576_tgt, $I11
+    ne $I11, 40, rx576_fail
+    add rx576_pos, 1
   # rx subcapture "n"
-    set_addr $I10, rxcap_567_fail
-    rx553_cur."!mark_push"(0, rx553_pos, $I10)
+    set_addr $I10, rxcap_590_fail
+    rx576_cur."!mark_push"(0, rx576_pos, $I10)
   # rx charclass_q d r 1..-1
-    sub $I10, rx553_pos, rx553_off
-    find_not_cclass $I11, 8, rx553_tgt, $I10, rx553_eos
+    sub $I10, rx576_pos, rx576_off
+    find_not_cclass $I11, 8, rx576_tgt, $I10, rx576_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx553_fail
-    add rx553_pos, rx553_off, $I11
-    set_addr $I10, rxcap_567_fail
-    ($I12, $I11) = rx553_cur."!mark_peek"($I10)
-    rx553_cur."!cursor_pos"($I11)
-    ($P10) = rx553_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx553_pos, "")
-    rx553_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx576_fail
+    add rx576_pos, rx576_off, $I11
+    set_addr $I10, rxcap_590_fail
+    ($I12, $I11) = rx576_cur."!mark_peek"($I10)
+    rx576_cur."!cursor_pos"($I11)
+    ($P10) = rx576_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx576_pos, "")
+    rx576_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("n")
-    goto rxcap_567_done
-  rxcap_567_fail:
-    goto rx553_fail
-  rxcap_567_done:
+    goto rxcap_590_done
+  rxcap_590_fail:
+    goto rx576_fail
+  rxcap_590_done:
   # rx literal  ")"
-    add $I11, rx553_pos, 1
-    gt $I11, rx553_eos, rx553_fail
-    sub $I11, rx553_pos, rx553_off
-    ord $I11, rx553_tgt, $I11
-    ne $I11, 41, rx553_fail
-    add rx553_pos, 1
-    set_addr $I10, rxquantr566_done
-    (rx553_rep) = rx553_cur."!mark_commit"($I10)
-  rxquantr566_done:
-  alt558_end:
-  # rx pass
-    rx553_cur."!cursor_pass"(rx553_pos, "mod_internal")
-    if_null rx553_debug, debug_468
-    rx553_cur."!cursor_debug"("PASS", "mod_internal", " at pos=", rx553_pos)
-  debug_468:
-    .return (rx553_cur)
-  rx553_restart:
-    if_null rx553_debug, debug_469
-    rx553_cur."!cursor_debug"("NEXT", "mod_internal")
-  debug_469:
-  rx553_fail:
-    (rx553_rep, rx553_pos, $I10, $P10) = rx553_cur."!mark_fail"(0)
-    lt rx553_pos, -1, rx553_done
-    eq rx553_pos, -1, rx553_fail
-    jump $I10
-  rx553_done:
-    rx553_cur."!cursor_fail"()
-    if_null rx553_debug, debug_470
-    rx553_cur."!cursor_debug"("FAIL", "mod_internal")
-  debug_470:
-    .return (rx553_cur)
+    add $I11, rx576_pos, 1
+    gt $I11, rx576_eos, rx576_fail
+    sub $I11, rx576_pos, rx576_off
+    ord $I11, rx576_tgt, $I11
+    ne $I11, 41, rx576_fail
+    add rx576_pos, 1
+    set_addr $I10, rxquantr589_done
+    (rx576_rep) = rx576_cur."!mark_commit"($I10)
+  rxquantr589_done:
+  alt581_end:
+.annotate 'line', 190
+  # rx pass
+    rx576_cur."!cursor_pass"(rx576_pos, "mod_internal")
+    if_null rx576_debug, debug_490
+    rx576_cur."!cursor_debug"("PASS", "mod_internal", " at pos=", rx576_pos)
+  debug_490:
+    .return (rx576_cur)
+  rx576_restart:
+.annotate 'line', 3
+    if_null rx576_debug, debug_491
+    rx576_cur."!cursor_debug"("NEXT", "mod_internal")
+  debug_491:
+  rx576_fail:
+    (rx576_rep, rx576_pos, $I10, $P10) = rx576_cur."!mark_fail"(0)
+    lt rx576_pos, -1, rx576_done
+    eq rx576_pos, -1, rx576_fail
+    jump $I10
+  rx576_done:
+    rx576_cur."!cursor_fail"()
+    if_null rx576_debug, debug_492
+    rx576_cur."!cursor_debug"("FAIL", "mod_internal")
+  debug_492:
+    .return (rx576_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_internal"  :subid("157_1283975941.34404") :method
-.annotate 'line', 0
-    $P555 = self."!PREFIX__!subrule"("mod_ident", ":")
-    new $P556, "ResizablePMCArray"
-    push $P556, $P555
-    push $P556, ":"
-    .return ($P556)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block560"  :anon :subid("158_1283975941.34404") :method :outer("156_1283975941.34404")
-.annotate 'line', 0
-    .local string rx562_tgt
-    .local int rx562_pos
-    .local int rx562_off
-    .local int rx562_eos
-    .local int rx562_rep
-    .local pmc rx562_cur
-    .local pmc rx562_debug
-    (rx562_cur, rx562_pos, rx562_tgt, $I10) = self."!cursor_start"()
-    getattribute rx562_debug, rx562_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx562_cur
-    .local pmc match
-    .lex "$/", match
-    length rx562_eos, rx562_tgt
-    gt rx562_pos, rx562_eos, rx562_done
-    set rx562_off, 0
-    lt rx562_pos, 2, rx562_start
-    sub rx562_off, rx562_pos, 1
-    substr rx562_tgt, rx562_tgt, rx562_off
-  rx562_start:
-    eq $I10, 1, rx562_restart
-    if_null rx562_debug, debug_464
-    rx562_cur."!cursor_debug"("START", "")
-  debug_464:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan563_done
-    goto rxscan563_scan
-  rxscan563_loop:
-    ($P10) = rx562_cur."from"()
-    inc $P10
-    set rx562_pos, $P10
-    ge rx562_pos, rx562_eos, rxscan563_done
-  rxscan563_scan:
-    set_addr $I10, rxscan563_loop
-    rx562_cur."!mark_push"(0, rx562_pos, $I10)
-  rxscan563_done:
-  alt564_0:
-    set_addr $I10, alt564_1
-    rx562_cur."!mark_push"(0, rx562_pos, $I10)
+.sub "!PREFIX__mod_internal"  :subid("163_1284728471.30547") :method
+.annotate 'line', 3
+    $P578 = self."!PREFIX__!subrule"("mod_ident", ":")
+    new $P579, "ResizablePMCArray"
+    push $P579, $P578
+    push $P579, ":"
+    .return ($P579)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "_block583"  :anon :subid("164_1284728471.30547") :method :outer("162_1284728471.30547")
+.annotate 'line', 192
+    .local string rx585_tgt
+    .local int rx585_pos
+    .local int rx585_off
+    .local int rx585_eos
+    .local int rx585_rep
+    .local pmc rx585_cur
+    .local pmc rx585_debug
+    (rx585_cur, rx585_pos, rx585_tgt, $I10) = self."!cursor_start"()
+    getattribute rx585_debug, rx585_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx585_cur
+    .local pmc match
+    .lex "$/", match
+    length rx585_eos, rx585_tgt
+    gt rx585_pos, rx585_eos, rx585_done
+    set rx585_off, 0
+    lt rx585_pos, 2, rx585_start
+    sub rx585_off, rx585_pos, 1
+    substr rx585_tgt, rx585_tgt, rx585_off
+  rx585_start:
+    eq $I10, 1, rx585_restart
+    if_null rx585_debug, debug_486
+    rx585_cur."!cursor_debug"("START", "")
+  debug_486:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan586_done
+    goto rxscan586_scan
+  rxscan586_loop:
+    ($P10) = rx585_cur."from"()
+    inc $P10
+    set rx585_pos, $P10
+    ge rx585_pos, rx585_eos, rxscan586_done
+  rxscan586_scan:
+    set_addr $I10, rxscan586_loop
+    rx585_cur."!mark_push"(0, rx585_pos, $I10)
+  rxscan586_done:
+  alt587_0:
+    set_addr $I10, alt587_1
+    rx585_cur."!mark_push"(0, rx585_pos, $I10)
   # rx literal  "!"
-    add $I11, rx562_pos, 1
-    gt $I11, rx562_eos, rx562_fail
-    sub $I11, rx562_pos, rx562_off
-    ord $I11, rx562_tgt, $I11
-    ne $I11, 33, rx562_fail
-    add rx562_pos, 1
-    goto alt564_end
-  alt564_1:
+    add $I11, rx585_pos, 1
+    gt $I11, rx585_eos, rx585_fail
+    sub $I11, rx585_pos, rx585_off
+    ord $I11, rx585_tgt, $I11
+    ne $I11, 33, rx585_fail
+    add rx585_pos, 1
+    goto alt587_end
+  alt587_1:
   # rx charclass_q d r 1..-1
-    sub $I10, rx562_pos, rx562_off
-    find_not_cclass $I11, 8, rx562_tgt, $I10, rx562_eos
+    sub $I10, rx585_pos, rx585_off
+    find_not_cclass $I11, 8, rx585_tgt, $I10, rx585_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx562_fail
-    add rx562_pos, rx562_off, $I11
-  alt564_end:
-  # rx pass
-    rx562_cur."!cursor_pass"(rx562_pos, "")
-    if_null rx562_debug, debug_465
-    rx562_cur."!cursor_debug"("PASS", "", " at pos=", rx562_pos)
-  debug_465:
-    .return (rx562_cur)
-  rx562_restart:
-    if_null rx562_debug, debug_466
-    rx562_cur."!cursor_debug"("NEXT", "")
-  debug_466:
-  rx562_fail:
-    (rx562_rep, rx562_pos, $I10, $P10) = rx562_cur."!mark_fail"(0)
-    lt rx562_pos, -1, rx562_done
-    eq rx562_pos, -1, rx562_fail
-    jump $I10
-  rx562_done:
-    rx562_cur."!cursor_fail"()
-    if_null rx562_debug, debug_467
-    rx562_cur."!cursor_debug"("FAIL", "")
-  debug_467:
-    .return (rx562_cur)
+    lt $I11, $I12, rx585_fail
+    add rx585_pos, rx585_off, $I11
+  alt587_end:
+  # rx pass
+    rx585_cur."!cursor_pass"(rx585_pos, "")
+    if_null rx585_debug, debug_487
+    rx585_cur."!cursor_debug"("PASS", "", " at pos=", rx585_pos)
+  debug_487:
+    .return (rx585_cur)
+  rx585_restart:
+    if_null rx585_debug, debug_488
+    rx585_cur."!cursor_debug"("NEXT", "")
+  debug_488:
+  rx585_fail:
+    (rx585_rep, rx585_pos, $I10, $P10) = rx585_cur."!mark_fail"(0)
+    lt rx585_pos, -1, rx585_done
+    eq rx585_pos, -1, rx585_fail
+    jump $I10
+  rx585_done:
+    rx585_cur."!cursor_fail"()
+    if_null rx585_debug, debug_489
+    rx585_cur."!cursor_debug"("FAIL", "")
+  debug_489:
+    .return (rx585_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident"  :subid("159_1283975941.34404") :method
-.annotate 'line', 0
-    $P569 = self."!protoregex"("mod_ident")
-    .return ($P569)
+.sub "mod_ident"  :subid("165_1284728471.30547") :method
+.annotate 'line', 197
+    $P592 = self."!protoregex"("mod_ident")
+    .return ($P592)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident"  :subid("160_1283975941.34404") :method
-.annotate 'line', 0
-    $P571 = self."!PREFIX__!protoregex"("mod_ident")
-    .return ($P571)
+.sub "!PREFIX__mod_ident"  :subid("166_1284728471.30547") :method
+.annotate 'line', 197
+    $P594 = self."!PREFIX__!protoregex"("mod_ident")
+    .return ($P594)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ignorecase>"  :subid("161_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx573_tgt
-    .local int rx573_pos
-    .local int rx573_off
-    .local int rx573_eos
-    .local int rx573_rep
-    .local pmc rx573_cur
-    .local pmc rx573_debug
-    (rx573_cur, rx573_pos, rx573_tgt, $I10) = self."!cursor_start"()
-    getattribute rx573_debug, rx573_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx573_cur
-    .local pmc match
-    .lex "$/", match
-    length rx573_eos, rx573_tgt
-    gt rx573_pos, rx573_eos, rx573_done
-    set rx573_off, 0
-    lt rx573_pos, 2, rx573_start
-    sub rx573_off, rx573_pos, 1
-    substr rx573_tgt, rx573_tgt, rx573_off
-  rx573_start:
-    eq $I10, 1, rx573_restart
-    if_null rx573_debug, debug_471
-    rx573_cur."!cursor_debug"("START", "mod_ident:sym<ignorecase>")
-  debug_471:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan576_done
-    goto rxscan576_scan
-  rxscan576_loop:
-    ($P10) = rx573_cur."from"()
-    inc $P10
-    set rx573_pos, $P10
-    ge rx573_pos, rx573_eos, rxscan576_done
-  rxscan576_scan:
-    set_addr $I10, rxscan576_loop
-    rx573_cur."!mark_push"(0, rx573_pos, $I10)
-  rxscan576_done:
+.sub "mod_ident:sym<ignorecase>"  :subid("167_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx596_tgt
+    .local int rx596_pos
+    .local int rx596_off
+    .local int rx596_eos
+    .local int rx596_rep
+    .local pmc rx596_cur
+    .local pmc rx596_debug
+    (rx596_cur, rx596_pos, rx596_tgt, $I10) = self."!cursor_start"()
+    getattribute rx596_debug, rx596_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx596_cur
+    .local pmc match
+    .lex "$/", match
+    length rx596_eos, rx596_tgt
+    gt rx596_pos, rx596_eos, rx596_done
+    set rx596_off, 0
+    lt rx596_pos, 2, rx596_start
+    sub rx596_off, rx596_pos, 1
+    substr rx596_tgt, rx596_tgt, rx596_off
+  rx596_start:
+    eq $I10, 1, rx596_restart
+    if_null rx596_debug, debug_493
+    rx596_cur."!cursor_debug"("START", "mod_ident:sym<ignorecase>")
+  debug_493:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan599_done
+    goto rxscan599_scan
+  rxscan599_loop:
+    ($P10) = rx596_cur."from"()
+    inc $P10
+    set rx596_pos, $P10
+    ge rx596_pos, rx596_eos, rxscan599_done
+  rxscan599_scan:
+    set_addr $I10, rxscan599_loop
+    rx596_cur."!mark_push"(0, rx596_pos, $I10)
+  rxscan599_done:
+.annotate 'line', 198
   # rx subcapture "sym"
-    set_addr $I10, rxcap_577_fail
-    rx573_cur."!mark_push"(0, rx573_pos, $I10)
+    set_addr $I10, rxcap_600_fail
+    rx596_cur."!mark_push"(0, rx596_pos, $I10)
   # rx literal  "i"
-    add $I11, rx573_pos, 1
-    gt $I11, rx573_eos, rx573_fail
-    sub $I11, rx573_pos, rx573_off
-    ord $I11, rx573_tgt, $I11
-    ne $I11, 105, rx573_fail
-    add rx573_pos, 1
-    set_addr $I10, rxcap_577_fail
-    ($I12, $I11) = rx573_cur."!mark_peek"($I10)
-    rx573_cur."!cursor_pos"($I11)
-    ($P10) = rx573_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx573_pos, "")
-    rx573_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx596_pos, 1
+    gt $I11, rx596_eos, rx596_fail
+    sub $I11, rx596_pos, rx596_off
+    ord $I11, rx596_tgt, $I11
+    ne $I11, 105, rx596_fail
+    add rx596_pos, 1
+    set_addr $I10, rxcap_600_fail
+    ($I12, $I11) = rx596_cur."!mark_peek"($I10)
+    rx596_cur."!cursor_pos"($I11)
+    ($P10) = rx596_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx596_pos, "")
+    rx596_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_577_done
-  rxcap_577_fail:
-    goto rx573_fail
-  rxcap_577_done:
-  # rx rxquantr578 ** 0..1
-    set_addr $I10, rxquantr578_done
-    rx573_cur."!mark_push"(0, rx573_pos, $I10)
-  rxquantr578_loop:
+    goto rxcap_600_done
+  rxcap_600_fail:
+    goto rx596_fail
+  rxcap_600_done:
+  # rx rxquantr601 ** 0..1
+    set_addr $I10, rxquantr601_done
+    rx596_cur."!mark_push"(0, rx596_pos, $I10)
+  rxquantr601_loop:
   # rx literal  "gnorecase"
-    add $I11, rx573_pos, 9
-    gt $I11, rx573_eos, rx573_fail
-    sub $I11, rx573_pos, rx573_off
-    substr $S10, rx573_tgt, $I11, 9
-    ne $S10, "gnorecase", rx573_fail
-    add rx573_pos, 9
-    set_addr $I10, rxquantr578_done
-    (rx573_rep) = rx573_cur."!mark_commit"($I10)
-  rxquantr578_done:
-  # rx pass
-    rx573_cur."!cursor_pass"(rx573_pos, "mod_ident:sym<ignorecase>")
-    if_null rx573_debug, debug_472
-    rx573_cur."!cursor_debug"("PASS", "mod_ident:sym<ignorecase>", " at pos=", rx573_pos)
-  debug_472:
-    .return (rx573_cur)
-  rx573_restart:
-    if_null rx573_debug, debug_473
-    rx573_cur."!cursor_debug"("NEXT", "mod_ident:sym<ignorecase>")
-  debug_473:
-  rx573_fail:
-    (rx573_rep, rx573_pos, $I10, $P10) = rx573_cur."!mark_fail"(0)
-    lt rx573_pos, -1, rx573_done
-    eq rx573_pos, -1, rx573_fail
-    jump $I10
-  rx573_done:
-    rx573_cur."!cursor_fail"()
-    if_null rx573_debug, debug_474
-    rx573_cur."!cursor_debug"("FAIL", "mod_ident:sym<ignorecase>")
-  debug_474:
-    .return (rx573_cur)
+    add $I11, rx596_pos, 9
+    gt $I11, rx596_eos, rx596_fail
+    sub $I11, rx596_pos, rx596_off
+    substr $S10, rx596_tgt, $I11, 9
+    ne $S10, "gnorecase", rx596_fail
+    add rx596_pos, 9
+    set_addr $I10, rxquantr601_done
+    (rx596_rep) = rx596_cur."!mark_commit"($I10)
+  rxquantr601_done:
+  # rx pass
+    rx596_cur."!cursor_pass"(rx596_pos, "mod_ident:sym<ignorecase>")
+    if_null rx596_debug, debug_494
+    rx596_cur."!cursor_debug"("PASS", "mod_ident:sym<ignorecase>", " at pos=", rx596_pos)
+  debug_494:
+    .return (rx596_cur)
+  rx596_restart:
+.annotate 'line', 3
+    if_null rx596_debug, debug_495
+    rx596_cur."!cursor_debug"("NEXT", "mod_ident:sym<ignorecase>")
+  debug_495:
+  rx596_fail:
+    (rx596_rep, rx596_pos, $I10, $P10) = rx596_cur."!mark_fail"(0)
+    lt rx596_pos, -1, rx596_done
+    eq rx596_pos, -1, rx596_fail
+    jump $I10
+  rx596_done:
+    rx596_cur."!cursor_fail"()
+    if_null rx596_debug, debug_496
+    rx596_cur."!cursor_debug"("FAIL", "mod_ident:sym<ignorecase>")
+  debug_496:
+    .return (rx596_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("162_1283975941.34404") :method
-.annotate 'line', 0
-    new $P575, "ResizablePMCArray"
-    push $P575, "i"
-    .return ($P575)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ratchet>"  :subid("163_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx580_tgt
-    .local int rx580_pos
-    .local int rx580_off
-    .local int rx580_eos
-    .local int rx580_rep
-    .local pmc rx580_cur
-    .local pmc rx580_debug
-    (rx580_cur, rx580_pos, rx580_tgt, $I10) = self."!cursor_start"()
-    getattribute rx580_debug, rx580_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx580_cur
-    .local pmc match
-    .lex "$/", match
-    length rx580_eos, rx580_tgt
-    gt rx580_pos, rx580_eos, rx580_done
-    set rx580_off, 0
-    lt rx580_pos, 2, rx580_start
-    sub rx580_off, rx580_pos, 1
-    substr rx580_tgt, rx580_tgt, rx580_off
-  rx580_start:
-    eq $I10, 1, rx580_restart
-    if_null rx580_debug, debug_475
-    rx580_cur."!cursor_debug"("START", "mod_ident:sym<ratchet>")
-  debug_475:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan583_done
-    goto rxscan583_scan
-  rxscan583_loop:
-    ($P10) = rx580_cur."from"()
-    inc $P10
-    set rx580_pos, $P10
-    ge rx580_pos, rx580_eos, rxscan583_done
-  rxscan583_scan:
-    set_addr $I10, rxscan583_loop
-    rx580_cur."!mark_push"(0, rx580_pos, $I10)
-  rxscan583_done:
+.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("168_1284728471.30547") :method
+.annotate 'line', 3
+    new $P598, "ResizablePMCArray"
+    push $P598, "i"
+    .return ($P598)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "mod_ident:sym<ratchet>"  :subid("169_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx603_tgt
+    .local int rx603_pos
+    .local int rx603_off
+    .local int rx603_eos
+    .local int rx603_rep
+    .local pmc rx603_cur
+    .local pmc rx603_debug
+    (rx603_cur, rx603_pos, rx603_tgt, $I10) = self."!cursor_start"()
+    getattribute rx603_debug, rx603_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx603_cur
+    .local pmc match
+    .lex "$/", match
+    length rx603_eos, rx603_tgt
+    gt rx603_pos, rx603_eos, rx603_done
+    set rx603_off, 0
+    lt rx603_pos, 2, rx603_start
+    sub rx603_off, rx603_pos, 1
+    substr rx603_tgt, rx603_tgt, rx603_off
+  rx603_start:
+    eq $I10, 1, rx603_restart
+    if_null rx603_debug, debug_497
+    rx603_cur."!cursor_debug"("START", "mod_ident:sym<ratchet>")
+  debug_497:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan606_done
+    goto rxscan606_scan
+  rxscan606_loop:
+    ($P10) = rx603_cur."from"()
+    inc $P10
+    set rx603_pos, $P10
+    ge rx603_pos, rx603_eos, rxscan606_done
+  rxscan606_scan:
+    set_addr $I10, rxscan606_loop
+    rx603_cur."!mark_push"(0, rx603_pos, $I10)
+  rxscan606_done:
+.annotate 'line', 199
   # rx subcapture "sym"
-    set_addr $I10, rxcap_584_fail
-    rx580_cur."!mark_push"(0, rx580_pos, $I10)
+    set_addr $I10, rxcap_607_fail
+    rx603_cur."!mark_push"(0, rx603_pos, $I10)
   # rx literal  "r"
-    add $I11, rx580_pos, 1
-    gt $I11, rx580_eos, rx580_fail
-    sub $I11, rx580_pos, rx580_off
-    ord $I11, rx580_tgt, $I11
-    ne $I11, 114, rx580_fail
-    add rx580_pos, 1
-    set_addr $I10, rxcap_584_fail
-    ($I12, $I11) = rx580_cur."!mark_peek"($I10)
-    rx580_cur."!cursor_pos"($I11)
-    ($P10) = rx580_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx580_pos, "")
-    rx580_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx603_pos, 1
+    gt $I11, rx603_eos, rx603_fail
+    sub $I11, rx603_pos, rx603_off
+    ord $I11, rx603_tgt, $I11
+    ne $I11, 114, rx603_fail
+    add rx603_pos, 1
+    set_addr $I10, rxcap_607_fail
+    ($I12, $I11) = rx603_cur."!mark_peek"($I10)
+    rx603_cur."!cursor_pos"($I11)
+    ($P10) = rx603_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx603_pos, "")
+    rx603_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_584_done
-  rxcap_584_fail:
-    goto rx580_fail
-  rxcap_584_done:
-  # rx rxquantr585 ** 0..1
-    set_addr $I10, rxquantr585_done
-    rx580_cur."!mark_push"(0, rx580_pos, $I10)
-  rxquantr585_loop:
+    goto rxcap_607_done
+  rxcap_607_fail:
+    goto rx603_fail
+  rxcap_607_done:
+  # rx rxquantr608 ** 0..1
+    set_addr $I10, rxquantr608_done
+    rx603_cur."!mark_push"(0, rx603_pos, $I10)
+  rxquantr608_loop:
   # rx literal  "atchet"
-    add $I11, rx580_pos, 6
-    gt $I11, rx580_eos, rx580_fail
-    sub $I11, rx580_pos, rx580_off
-    substr $S10, rx580_tgt, $I11, 6
-    ne $S10, "atchet", rx580_fail
-    add rx580_pos, 6
-    set_addr $I10, rxquantr585_done
-    (rx580_rep) = rx580_cur."!mark_commit"($I10)
-  rxquantr585_done:
-  # rx pass
-    rx580_cur."!cursor_pass"(rx580_pos, "mod_ident:sym<ratchet>")
-    if_null rx580_debug, debug_476
-    rx580_cur."!cursor_debug"("PASS", "mod_ident:sym<ratchet>", " at pos=", rx580_pos)
-  debug_476:
-    .return (rx580_cur)
-  rx580_restart:
-    if_null rx580_debug, debug_477
-    rx580_cur."!cursor_debug"("NEXT", "mod_ident:sym<ratchet>")
-  debug_477:
-  rx580_fail:
-    (rx580_rep, rx580_pos, $I10, $P10) = rx580_cur."!mark_fail"(0)
-    lt rx580_pos, -1, rx580_done
-    eq rx580_pos, -1, rx580_fail
-    jump $I10
-  rx580_done:
-    rx580_cur."!cursor_fail"()
-    if_null rx580_debug, debug_478
-    rx580_cur."!cursor_debug"("FAIL", "mod_ident:sym<ratchet>")
-  debug_478:
-    .return (rx580_cur)
+    add $I11, rx603_pos, 6
+    gt $I11, rx603_eos, rx603_fail
+    sub $I11, rx603_pos, rx603_off
+    substr $S10, rx603_tgt, $I11, 6
+    ne $S10, "atchet", rx603_fail
+    add rx603_pos, 6
+    set_addr $I10, rxquantr608_done
+    (rx603_rep) = rx603_cur."!mark_commit"($I10)
+  rxquantr608_done:
+  # rx pass
+    rx603_cur."!cursor_pass"(rx603_pos, "mod_ident:sym<ratchet>")
+    if_null rx603_debug, debug_498
+    rx603_cur."!cursor_debug"("PASS", "mod_ident:sym<ratchet>", " at pos=", rx603_pos)
+  debug_498:
+    .return (rx603_cur)
+  rx603_restart:
+.annotate 'line', 3
+    if_null rx603_debug, debug_499
+    rx603_cur."!cursor_debug"("NEXT", "mod_ident:sym<ratchet>")
+  debug_499:
+  rx603_fail:
+    (rx603_rep, rx603_pos, $I10, $P10) = rx603_cur."!mark_fail"(0)
+    lt rx603_pos, -1, rx603_done
+    eq rx603_pos, -1, rx603_fail
+    jump $I10
+  rx603_done:
+    rx603_cur."!cursor_fail"()
+    if_null rx603_debug, debug_500
+    rx603_cur."!cursor_debug"("FAIL", "mod_ident:sym<ratchet>")
+  debug_500:
+    .return (rx603_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("164_1283975941.34404") :method
-.annotate 'line', 0
-    new $P582, "ResizablePMCArray"
-    push $P582, "r"
-    .return ($P582)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<sigspace>"  :subid("165_1283975941.34404") :method :outer("11_1283975941.34404")
-.annotate 'line', 0
-    .local string rx587_tgt
-    .local int rx587_pos
-    .local int rx587_off
-    .local int rx587_eos
-    .local int rx587_rep
-    .local pmc rx587_cur
-    .local pmc rx587_debug
-    (rx587_cur, rx587_pos, rx587_tgt, $I10) = self."!cursor_start"()
-    getattribute rx587_debug, rx587_cur, "$!debug"
-    .lex unicode:"$\x{a2}", rx587_cur
-    .local pmc match
-    .lex "$/", match
-    length rx587_eos, rx587_tgt
-    gt rx587_pos, rx587_eos, rx587_done
-    set rx587_off, 0
-    lt rx587_pos, 2, rx587_start
-    sub rx587_off, rx587_pos, 1
-    substr rx587_tgt, rx587_tgt, rx587_off
-  rx587_start:
-    eq $I10, 1, rx587_restart
-    if_null rx587_debug, debug_479
-    rx587_cur."!cursor_debug"("START", "mod_ident:sym<sigspace>")
-  debug_479:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan590_done
-    goto rxscan590_scan
-  rxscan590_loop:
-    ($P10) = rx587_cur."from"()
-    inc $P10
-    set rx587_pos, $P10
-    ge rx587_pos, rx587_eos, rxscan590_done
-  rxscan590_scan:
-    set_addr $I10, rxscan590_loop
-    rx587_cur."!mark_push"(0, rx587_pos, $I10)
-  rxscan590_done:
+.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("170_1284728471.30547") :method
+.annotate 'line', 3
+    new $P605, "ResizablePMCArray"
+    push $P605, "r"
+    .return ($P605)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "mod_ident:sym<sigspace>"  :subid("171_1284728471.30547") :method :outer("11_1284728471.30547")
+.annotate 'line', 3
+    .local string rx610_tgt
+    .local int rx610_pos
+    .local int rx610_off
+    .local int rx610_eos
+    .local int rx610_rep
+    .local pmc rx610_cur
+    .local pmc rx610_debug
+    (rx610_cur, rx610_pos, rx610_tgt, $I10) = self."!cursor_start"()
+    getattribute rx610_debug, rx610_cur, "$!debug"
+    .lex unicode:"$\x{a2}", rx610_cur
+    .local pmc match
+    .lex "$/", match
+    length rx610_eos, rx610_tgt
+    gt rx610_pos, rx610_eos, rx610_done
+    set rx610_off, 0
+    lt rx610_pos, 2, rx610_start
+    sub rx610_off, rx610_pos, 1
+    substr rx610_tgt, rx610_tgt, rx610_off
+  rx610_start:
+    eq $I10, 1, rx610_restart
+    if_null rx610_debug, debug_501
+    rx610_cur."!cursor_debug"("START", "mod_ident:sym<sigspace>")
+  debug_501:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan613_done
+    goto rxscan613_scan
+  rxscan613_loop:
+    ($P10) = rx610_cur."from"()
+    inc $P10
+    set rx610_pos, $P10
+    ge rx610_pos, rx610_eos, rxscan613_done
+  rxscan613_scan:
+    set_addr $I10, rxscan613_loop
+    rx610_cur."!mark_push"(0, rx610_pos, $I10)
+  rxscan613_done:
+.annotate 'line', 200
   # rx subcapture "sym"
-    set_addr $I10, rxcap_591_fail
-    rx587_cur."!mark_push"(0, rx587_pos, $I10)
+    set_addr $I10, rxcap_614_fail
+    rx610_cur."!mark_push"(0, rx610_pos, $I10)
   # rx literal  "s"
-    add $I11, rx587_pos, 1
-    gt $I11, rx587_eos, rx587_fail
-    sub $I11, rx587_pos, rx587_off
-    ord $I11, rx587_tgt, $I11
-    ne $I11, 115, rx587_fail
-    add rx587_pos, 1
-    set_addr $I10, rxcap_591_fail
-    ($I12, $I11) = rx587_cur."!mark_peek"($I10)
-    rx587_cur."!cursor_pos"($I11)
-    ($P10) = rx587_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx587_pos, "")
-    rx587_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx610_pos, 1
+    gt $I11, rx610_eos, rx610_fail
+    sub $I11, rx610_pos, rx610_off
+    ord $I11, rx610_tgt, $I11
+    ne $I11, 115, rx610_fail
+    add rx610_pos, 1
+    set_addr $I10, rxcap_614_fail
+    ($I12, $I11) = rx610_cur."!mark_peek"($I10)
+    rx610_cur."!cursor_pos"($I11)
+    ($P10) = rx610_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx610_pos, "")
+    rx610_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_591_done
-  rxcap_591_fail:
-    goto rx587_fail
-  rxcap_591_done:
-  # rx rxquantr592 ** 0..1
-    set_addr $I10, rxquantr592_done
-    rx587_cur."!mark_push"(0, rx587_pos, $I10)
-  rxquantr592_loop:
+    goto rxcap_614_done
+  rxcap_614_fail:
+    goto rx610_fail
+  rxcap_614_done:
+  # rx rxquantr615 ** 0..1
+    set_addr $I10, rxquantr615_done
+    rx610_cur."!mark_push"(0, rx610_pos, $I10)
+  rxquantr615_loop:
   # rx literal  "igspace"
-    add $I11, rx587_pos, 7
-    gt $I11, rx587_eos, rx587_fail
-    sub $I11, rx587_pos, rx587_off
-    substr $S10, rx587_tgt, $I11, 7
-    ne $S10, "igspace", rx587_fail
-    add rx587_pos, 7
-    set_addr $I10, rxquantr592_done
-    (rx587_rep) = rx587_cur."!mark_commit"($I10)
-  rxquantr592_done:
-  # rx pass
-    rx587_cur."!cursor_pass"(rx587_pos, "mod_ident:sym<sigspace>")
-    if_null rx587_debug, debug_480
-    rx587_cur."!cursor_debug"("PASS", "mod_ident:sym<sigspace>", " at pos=", rx587_pos)
-  debug_480:
-    .return (rx587_cur)
-  rx587_restart:
-    if_null rx587_debug, debug_481
-    rx587_cur."!cursor_debug"("NEXT", "mod_ident:sym<sigspace>")
-  debug_481:
-  rx587_fail:
-    (rx587_rep, rx587_pos, $I10, $P10) = rx587_cur."!mark_fail"(0)
-    lt rx587_pos, -1, rx587_done
-    eq rx587_pos, -1, rx587_fail
-    jump $I10
-  rx587_done:
-    rx587_cur."!cursor_fail"()
-    if_null rx587_debug, debug_482
-    rx587_cur."!cursor_debug"("FAIL", "mod_ident:sym<sigspace>")
-  debug_482:
-    .return (rx587_cur)
+    add $I11, rx610_pos, 7
+    gt $I11, rx610_eos, rx610_fail
+    sub $I11, rx610_pos, rx610_off
+    substr $S10, rx610_tgt, $I11, 7
+    ne $S10, "igspace", rx610_fail
+    add rx610_pos, 7
+    set_addr $I10, rxquantr615_done
+    (rx610_rep) = rx610_cur."!mark_commit"($I10)
+  rxquantr615_done:
+  # rx pass
+    rx610_cur."!cursor_pass"(rx610_pos, "mod_ident:sym<sigspace>")
+    if_null rx610_debug, debug_502
+    rx610_cur."!cursor_debug"("PASS", "mod_ident:sym<sigspace>", " at pos=", rx610_pos)
+  debug_502:
+    .return (rx610_cur)
+  rx610_restart:
+.annotate 'line', 3
+    if_null rx610_debug, debug_503
+    rx610_cur."!cursor_debug"("NEXT", "mod_ident:sym<sigspace>")
+  debug_503:
+  rx610_fail:
+    (rx610_rep, rx610_pos, $I10, $P10) = rx610_cur."!mark_fail"(0)
+    lt rx610_pos, -1, rx610_done
+    eq rx610_pos, -1, rx610_fail
+    jump $I10
+  rx610_done:
+    rx610_cur."!cursor_fail"()
+    if_null rx610_debug, debug_504
+    rx610_cur."!cursor_debug"("FAIL", "mod_ident:sym<sigspace>")
+  debug_504:
+    .return (rx610_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("166_1283975941.34404") :method
-.annotate 'line', 0
-    new $P589, "ResizablePMCArray"
-    push $P589, "s"
-    .return ($P589)
+.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("172_1284728471.30547") :method
+.annotate 'line', 3
+    new $P612, "ResizablePMCArray"
+    push $P612, "s"
+    .return ($P612)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block593" :load :anon :subid("167_1283975941.34404")
-.annotate 'line', 0
-    .const 'Sub' $P595 = "11_1283975941.34404" 
-    $P596 = $P595()
-    .return ($P596)
+.sub "_block616" :load :anon :subid("173_1284728471.30547")
+.annotate 'line', 3
+    .const 'Sub' $P618 = "11_1284728471.30547" 
+    $P619 = $P618()
+    .return ($P619)
 .end
 
 
 .namespace []
-.sub "_block598" :load :anon :subid("168_1283975941.34404")
-.annotate 'line', 0
-    .const 'Sub' $P600 = "10_1283975941.34404" 
-    $P601 = $P600()
-    .return ($P601)
+.sub "_block621" :load :anon :subid("174_1284728471.30547")
+.annotate 'line', 1
+    .const 'Sub' $P623 = "10_1284728471.30547" 
+    $P624 = $P623()
+    .return ($P624)
 .end
 
 ### .include 'gen/p6regex-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1283975944.26638")
+.sub "_block11"  :anon :subid("10_1284728474.62745")
 .annotate 'line', 0
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     capture_lex $P14
+.annotate 'line', 1
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
     $I0 = can $P0, "ctxsave"
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
+.annotate 'line', 4
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     capture_lex $P14
     $P1671 = $P14()
+.annotate 'line', 1
     .return ($P1671)
-    .const 'Sub' $P1673 = "94_1283975944.26638" 
+    .const 'Sub' $P1673 = "94_1284728474.62745" 
     .return ($P1673)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post95") :outer("10_1283975944.26638")
+.sub "" :load :init :subid("post95") :outer("10_1284728474.62745")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1283975944.26638" 
+    .const 'Sub' $P12 = "10_1284728474.62745" 
     .local pmc block
     set block, $P12
     $P1676 = get_root_global ["parrot"], "P6metaclass"
@@ -8569,134 +9139,138 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block13"  :subid("11_1283975944.26638") :outer("10_1283975944.26638")
-.annotate 'line', 0
-    .const 'Sub' $P1648 = "92_1283975944.26638" 
+.sub "_block13"  :subid("11_1284728474.62745") :outer("10_1284728474.62745")
+.annotate 'line', 4
+    .const 'Sub' $P1648 = "92_1284728474.62745" 
     capture_lex $P1648
-    .const 'Sub' $P1628 = "91_1283975944.26638" 
+    .const 'Sub' $P1628 = "91_1284728474.62745" 
     capture_lex $P1628
-    .const 'Sub' $P1596 = "90_1283975944.26638" 
+    .const 'Sub' $P1596 = "90_1284728474.62745" 
     capture_lex $P1596
-    .const 'Sub' $P1527 = "86_1283975944.26638" 
+    .const 'Sub' $P1527 = "86_1284728474.62745" 
     capture_lex $P1527
-    .const 'Sub' $P1459 = "84_1283975944.26638" 
+    .const 'Sub' $P1459 = "84_1284728474.62745" 
     capture_lex $P1459
-    .const 'Sub' $P1387 = "81_1283975944.26638" 
+    .const 'Sub' $P1387 = "81_1284728474.62745" 
     capture_lex $P1387
-    .const 'Sub' $P1373 = "80_1283975944.26638" 
+    .const 'Sub' $P1373 = "80_1284728474.62745" 
     capture_lex $P1373
-    .const 'Sub' $P1349 = "79_1283975944.26638" 
+    .const 'Sub' $P1349 = "79_1284728474.62745" 
     capture_lex $P1349
-    .const 'Sub' $P1331 = "78_1283975944.26638" 
+    .const 'Sub' $P1331 = "78_1284728474.62745" 
     capture_lex $P1331
-    .const 'Sub' $P1317 = "77_1283975944.26638" 
+    .const 'Sub' $P1317 = "77_1284728474.62745" 
     capture_lex $P1317
-    .const 'Sub' $P1304 = "76_1283975944.26638" 
+    .const 'Sub' $P1304 = "76_1284728474.62745" 
     capture_lex $P1304
-    .const 'Sub' $P1273 = "75_1283975944.26638" 
+    .const 'Sub' $P1273 = "75_1284728474.62745" 
     capture_lex $P1273
-    .const 'Sub' $P1242 = "74_1283975944.26638" 
+    .const 'Sub' $P1242 = "74_1284728474.62745" 
     capture_lex $P1242
-    .const 'Sub' $P1226 = "73_1283975944.26638" 
+    .const 'Sub' $P1226 = "73_1284728474.62745" 
     capture_lex $P1226
-    .const 'Sub' $P1210 = "72_1283975944.26638" 
+    .const 'Sub' $P1210 = "72_1284728474.62745" 
     capture_lex $P1210
-    .const 'Sub' $P1194 = "71_1283975944.26638" 
+    .const 'Sub' $P1194 = "71_1284728474.62745" 
     capture_lex $P1194
-    .const 'Sub' $P1178 = "70_1283975944.26638" 
+    .const 'Sub' $P1178 = "70_1284728474.62745" 
     capture_lex $P1178
-    .const 'Sub' $P1162 = "69_1283975944.26638" 
+    .const 'Sub' $P1162 = "69_1284728474.62745" 
     capture_lex $P1162
-    .const 'Sub' $P1146 = "68_1283975944.26638" 
+    .const 'Sub' $P1146 = "68_1284728474.62745" 
     capture_lex $P1146
-    .const 'Sub' $P1130 = "67_1283975944.26638" 
+    .const 'Sub' $P1130 = "67_1284728474.62745" 
     capture_lex $P1130
-    .const 'Sub' $P1106 = "66_1283975944.26638" 
+    .const 'Sub' $P1106 = "66_1284728474.62745" 
     capture_lex $P1106
-    .const 'Sub' $P1091 = "65_1283975944.26638" 
+    .const 'Sub' $P1091 = "65_1284728474.62745" 
     capture_lex $P1091
-    .const 'Sub' $P1033 = "64_1283975944.26638" 
+    .const 'Sub' $P1033 = "64_1284728474.62745" 
     capture_lex $P1033
-    .const 'Sub' $P1012 = "63_1283975944.26638" 
+    .const 'Sub' $P1012 = "63_1284728474.62745" 
     capture_lex $P1012
-    .const 'Sub' $P990 = "62_1283975944.26638" 
+    .const 'Sub' $P990 = "62_1284728474.62745" 
     capture_lex $P990
-    .const 'Sub' $P980 = "61_1283975944.26638" 
+    .const 'Sub' $P980 = "61_1284728474.62745" 
     capture_lex $P980
-    .const 'Sub' $P970 = "60_1283975944.26638" 
+    .const 'Sub' $P970 = "60_1284728474.62745" 
     capture_lex $P970
-    .const 'Sub' $P960 = "59_1283975944.26638" 
+    .const 'Sub' $P960 = "59_1284728474.62745" 
     capture_lex $P960
-    .const 'Sub' $P948 = "58_1283975944.26638" 
+    .const 'Sub' $P948 = "58_1284728474.62745" 
     capture_lex $P948
-    .const 'Sub' $P936 = "57_1283975944.26638" 
+    .const 'Sub' $P936 = "57_1284728474.62745" 
     capture_lex $P936
-    .const 'Sub' $P924 = "56_1283975944.26638" 
+    .const 'Sub' $P924 = "56_1284728474.62745" 
     capture_lex $P924
-    .const 'Sub' $P912 = "55_1283975944.26638" 
+    .const 'Sub' $P912 = "55_1284728474.62745" 
     capture_lex $P912
-    .const 'Sub' $P900 = "54_1283975944.26638" 
+    .const 'Sub' $P900 = "54_1284728474.62745" 
     capture_lex $P900
-    .const 'Sub' $P888 = "53_1283975944.26638" 
+    .const 'Sub' $P888 = "53_1284728474.62745" 
     capture_lex $P888
-    .const 'Sub' $P876 = "52_1283975944.26638" 
+    .const 'Sub' $P876 = "52_1284728474.62745" 
     capture_lex $P876
-    .const 'Sub' $P864 = "51_1283975944.26638" 
+    .const 'Sub' $P864 = "51_1284728474.62745" 
     capture_lex $P864
-    .const 'Sub' $P836 = "50_1283975944.26638" 
+    .const 'Sub' $P836 = "50_1284728474.62745" 
     capture_lex $P836
-    .const 'Sub' $P808 = "49_1283975944.26638" 
+    .const 'Sub' $P808 = "49_1284728474.62745" 
     capture_lex $P808
-    .const 'Sub' $P790 = "48_1283975944.26638" 
+    .const 'Sub' $P790 = "48_1284728474.62745" 
     capture_lex $P790
-    .const 'Sub' $P780 = "47_1283975944.26638" 
+    .const 'Sub' $P780 = "47_1284728474.62745" 
     capture_lex $P780
-    .const 'Sub' $P762 = "46_1283975944.26638" 
+    .const 'Sub' $P762 = "46_1284728474.62745" 
     capture_lex $P762
-    .const 'Sub' $P689 = "44_1283975944.26638" 
+    .const 'Sub' $P689 = "44_1284728474.62745" 
     capture_lex $P689
-    .const 'Sub' $P672 = "43_1283975944.26638" 
+    .const 'Sub' $P672 = "43_1284728474.62745" 
     capture_lex $P672
-    .const 'Sub' $P657 = "42_1283975944.26638" 
+    .const 'Sub' $P657 = "42_1284728474.62745" 
     capture_lex $P657
-    .const 'Sub' $P642 = "41_1283975944.26638" 
+    .const 'Sub' $P642 = "41_1284728474.62745" 
     capture_lex $P642
-    .const 'Sub' $P616 = "40_1283975944.26638" 
+    .const 'Sub' $P616 = "40_1284728474.62745" 
     capture_lex $P616
-    .const 'Sub' $P565 = "38_1283975944.26638" 
+    .const 'Sub' $P565 = "38_1284728474.62745" 
     capture_lex $P565
-    .const 'Sub' $P497 = "36_1283975944.26638" 
+    .const 'Sub' $P497 = "36_1284728474.62745" 
     capture_lex $P497
-    .const 'Sub' $P460 = "34_1283975944.26638" 
+    .const 'Sub' $P460 = "34_1284728474.62745" 
     capture_lex $P460
-    .const 'Sub' $P404 = "31_1283975944.26638" 
+    .const 'Sub' $P404 = "31_1284728474.62745" 
     capture_lex $P404
-    .const 'Sub' $P389 = "30_1283975944.26638" 
+    .const 'Sub' $P389 = "30_1284728474.62745" 
     capture_lex $P389
-    .const 'Sub' $P363 = "28_1283975944.26638" 
+    .const 'Sub' $P363 = "28_1284728474.62745" 
     capture_lex $P363
-    .const 'Sub' $P346 = "27_1283975944.26638" 
+    .const 'Sub' $P346 = "27_1284728474.62745" 
     capture_lex $P346
-    .const 'Sub' $P312 = "26_1283975944.26638" 
+    .const 'Sub' $P312 = "26_1284728474.62745" 
     capture_lex $P312
-    .const 'Sub' $P57 = "13_1283975944.26638" 
+    .const 'Sub' $P57 = "13_1284728474.62745" 
     capture_lex $P57
-    .const 'Sub' $P16 = "12_1283975944.26638" 
+    .const 'Sub' $P16 = "12_1284728474.62745" 
     capture_lex $P16
     get_global $P15, "@MODIFIERS"
     unless_null $P15, vivify_97
     $P15 = root_new ['parrot';'ResizablePMCArray']
     set_global "@MODIFIERS", $P15
   vivify_97:
-    .const 'Sub' $P16 = "12_1283975944.26638" 
+.annotate 'line', 506
+    .const 'Sub' $P16 = "12_1284728474.62745" 
     newclosure $P56, $P16
     .lex "buildsub", $P56
-    .const 'Sub' $P57 = "13_1283975944.26638" 
+.annotate 'line', 524
+    .const 'Sub' $P57 = "13_1284728474.62745" 
     newclosure $P311, $P57
     .lex "capnames", $P311
-    .const 'Sub' $P312 = "26_1283975944.26638" 
+.annotate 'line', 590
+    .const 'Sub' $P312 = "26_1284728474.62745" 
     newclosure $P344, $P312
     .lex "backmod", $P344
+.annotate 'line', 4
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
     $I0 = can $P0, "ctxsave"
@@ -8704,23 +9278,27 @@
     $P0."ctxsave"()
   ctxsave_done:
     get_global $P345, "@MODIFIERS"
+.annotate 'line', 499
     find_lex $P1625, "buildsub"
     find_lex $P1626, "capnames"
     find_lex $P1627, "backmod"
-    .const 'Sub' $P1648 = "92_1283975944.26638" 
+.annotate 'line', 603
+    .const 'Sub' $P1648 = "92_1284728474.62745" 
     newclosure $P1665, $P1648
+.annotate 'line', 4
     .return ($P1665)
-    .const 'Sub' $P1667 = "93_1283975944.26638" 
+    .const 'Sub' $P1667 = "93_1284728474.62745" 
     .return ($P1667)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "" :load :init :subid("post96") :outer("11_1283975944.26638")
-.annotate 'line', 0
+.sub "" :load :init :subid("post96") :outer("11_1284728474.62745")
+.annotate 'line', 4
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     .local pmc block
     set block, $P14
+.annotate 'line', 7
 
         $P1670 = new ['ResizablePMCArray']
         $P0 = new ['Hash']
@@ -8732,11 +9310,11 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "buildsub"  :subid("12_1283975944.26638") :outer("11_1283975944.26638")
+.sub "buildsub"  :subid("12_1284728474.62745") :outer("11_1284728474.62745")
     .param pmc param_19
     .param pmc param_20 :optional
     .param int has_param_20 :opt_flag
-.annotate 'line', 0
+.annotate 'line', 506
     new $P18, 'ExceptionHandler'
     set_addr $P18, control_17
     $P18."handle_types"(.CONTROL_RETURN)
@@ -8748,11 +9326,13 @@
     set param_20, $P22
   optparam_98:
     .lex "$block", param_20
+.annotate 'line', 507
     $P23 = root_new ['parrot';'Hash']
     .lex "%capnames", $P23
     find_lex $P24, "$rpast"
     $P25 = "capnames"($P24, 0)
     store_lex "%capnames", $P25
+.annotate 'line', 508
     new $P26, "Integer"
     assign $P26, 0
     find_lex $P27, "%capnames"
@@ -8761,11 +9341,15 @@
     store_lex "%capnames", $P27
   vivify_99:
     set $P27[""], $P26
+.annotate 'line', 509
     get_hll_global $P28, ["PAST"], "Regex"
+.annotate 'line', 510
     get_hll_global $P29, ["PAST"], "Regex"
     $P30 = $P29."new"("scan" :named("pasttype"))
     find_lex $P31, "$rpast"
+.annotate 'line', 512
     get_hll_global $P32, ["PAST"], "Regex"
+.annotate 'line', 513
     get_global $P35, "@MODIFIERS"
     unless_null $P35, vivify_100
     $P35 = root_new ['parrot';'ResizablePMCArray']
@@ -8789,27 +9373,34 @@
     set $P33, $P38
   if_34_end:
     $P40 = $P32."new"("pass" :named("pasttype"), $P33 :named("backtrack"))
+.annotate 'line', 512
     find_lex $P41, "%capnames"
     $P42 = $P28."new"($P30, $P31, $P40, "concat" :named("pasttype"), $P41 :named("capnames"))
+.annotate 'line', 509
     store_lex "$rpast", $P42
+.annotate 'line', 517
     find_lex $P44, "$block"
     $P45 = $P44."symbol"(unicode:"$\x{a2}")
     if $P45, unless_43_end
     find_lex $P46, "$block"
     $P46."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
   unless_43_end:
+.annotate 'line', 518
     find_lex $P48, "$block"
     $P49 = $P48."symbol"("$/")
     if $P49, unless_47_end
     find_lex $P50, "$block"
     $P50."symbol"("$/", "lexical" :named("scope"))
   unless_47_end:
+.annotate 'line', 519
     find_lex $P51, "$block"
     find_lex $P52, "$rpast"
     $P51."push"($P52)
+.annotate 'line', 520
     find_lex $P53, "$block"
     $P53."blocktype"("method")
     find_lex $P54, "$block"
+.annotate 'line', 506
     .return ($P54)
   control_17:
     .local pmc exception 
@@ -8821,19 +9412,19 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "capnames"  :subid("13_1283975944.26638") :outer("11_1283975944.26638")
+.sub "capnames"  :subid("13_1284728474.62745") :outer("11_1284728474.62745")
     .param pmc param_60
     .param pmc param_61
-.annotate 'line', 0
-    .const 'Sub' $P286 = "24_1283975944.26638" 
+.annotate 'line', 524
+    .const 'Sub' $P286 = "24_1284728474.62745" 
     capture_lex $P286
-    .const 'Sub' $P223 = "21_1283975944.26638" 
+    .const 'Sub' $P223 = "21_1284728474.62745" 
     capture_lex $P223
-    .const 'Sub' $P181 = "19_1283975944.26638" 
+    .const 'Sub' $P181 = "19_1284728474.62745" 
     capture_lex $P181
-    .const 'Sub' $P139 = "17_1283975944.26638" 
+    .const 'Sub' $P139 = "17_1284728474.62745" 
     capture_lex $P139
-    .const 'Sub' $P72 = "14_1283975944.26638" 
+    .const 'Sub' $P72 = "14_1284728474.62745" 
     capture_lex $P72
     new $P59, 'ExceptionHandler'
     set_addr $P59, control_58
@@ -8841,22 +9432,29 @@
     push_eh $P59
     .lex "$ast", param_60
     .lex "$count", param_61
+.annotate 'line', 525
     $P62 = root_new ['parrot';'Hash']
     .lex "%capnames", $P62
+.annotate 'line', 526
     new $P63, "Undef"
     .lex "$pasttype", $P63
+.annotate 'line', 524
     find_lex $P64, "%capnames"
+.annotate 'line', 526
     find_lex $P65, "$ast"
     $P66 = $P65."pasttype"()
     store_lex "$pasttype", $P66
+.annotate 'line', 527
     find_lex $P68, "$pasttype"
     set $S69, $P68
     iseq $I70, $S69, "alt"
     if $I70, if_67
+.annotate 'line', 540
     find_lex $P130, "$pasttype"
     set $S131, $P130
     iseq $I132, $S131, "concat"
     if $I132, if_129
+.annotate 'line', 549
     find_lex $P174, "$pasttype"
     set $S175, $P174
     iseq $I176, $S175, "subrule"
@@ -8872,32 +9470,37 @@
     set $P172, $I179
   if_173_end:
     if $P172, if_171
+.annotate 'line', 562
     find_lex $P219, "$pasttype"
     set $S220, $P219
     iseq $I221, $S220, "subcapture"
     if $I221, if_218
+.annotate 'line', 579
     find_lex $P282, "$pasttype"
     set $S283, $P282
     iseq $I284, $S283, "quant"
     unless $I284, if_281_end
-    .const 'Sub' $P286 = "24_1283975944.26638" 
+    .const 'Sub' $P286 = "24_1284728474.62745" 
     capture_lex $P286
     $P286()
   if_281_end:
     goto if_218_end
   if_218:
-    .const 'Sub' $P223 = "21_1283975944.26638" 
+.annotate 'line', 562
+    .const 'Sub' $P223 = "21_1284728474.62745" 
     capture_lex $P223
     $P223()
   if_218_end:
     goto if_171_end
   if_171:
-    .const 'Sub' $P181 = "19_1283975944.26638" 
+.annotate 'line', 549
+    .const 'Sub' $P181 = "19_1284728474.62745" 
     capture_lex $P181
     $P181()
   if_171_end:
     goto if_129_end
   if_129:
+.annotate 'line', 541
     find_lex $P134, "$ast"
     $P135 = $P134."list"()
     defined $I136, $P135
@@ -8911,7 +9514,7 @@
     unless $P133, loop168_done
     shift $P137, $P133
   loop168_redo:
-    .const 'Sub' $P139 = "17_1283975944.26638" 
+    .const 'Sub' $P139 = "17_1284728474.62745" 
     capture_lex $P139
     $P139($P137)
   loop168_next:
@@ -8926,12 +9529,15 @@
     pop_eh 
   for_undef_123:
   if_129_end:
+.annotate 'line', 540
     goto if_67_end
   if_67:
-    .const 'Sub' $P72 = "14_1283975944.26638" 
+.annotate 'line', 527
+    .const 'Sub' $P72 = "14_1284728474.62745" 
     capture_lex $P72
     $P72()
   if_67_end:
+.annotate 'line', 586
     find_lex $P307, "$count"
     find_lex $P308, "%capnames"
     unless_null $P308, vivify_143
@@ -8940,6 +9546,7 @@
   vivify_143:
     set $P308[""], $P307
     find_lex $P309, "%capnames"
+.annotate 'line', 524
     .return ($P309)
   control_58:
     .local pmc exception 
@@ -8951,10 +9558,11 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block285"  :anon :subid("24_1283975944.26638") :outer("13_1283975944.26638")
-.annotate 'line', 0
-    .const 'Sub' $P297 = "25_1283975944.26638" 
+.sub "_block285"  :anon :subid("24_1284728474.62745") :outer("13_1284728474.62745")
+.annotate 'line', 579
+    .const 'Sub' $P297 = "25_1284728474.62745" 
     capture_lex $P297
+.annotate 'line', 580
     $P287 = root_new ['parrot';'Hash']
     .lex "%astcap", $P287
     find_lex $P288, "$ast"
@@ -8968,6 +9576,7 @@
     find_lex $P290, "$count"
     $P291 = "capnames"($P289, $P290)
     store_lex "%astcap", $P291
+.annotate 'line', 581
     find_lex $P293, "%astcap"
     defined $I294, $P293
     unless $I294, for_undef_105
@@ -8980,7 +9589,7 @@
     unless $P292, loop302_done
     shift $P295, $P292
   loop302_redo:
-    .const 'Sub' $P297 = "25_1283975944.26638" 
+    .const 'Sub' $P297 = "25_1284728474.62745" 
     capture_lex $P297
     $P297($P295)
   loop302_next:
@@ -8994,6 +9603,7 @@
   loop302_done:
     pop_eh 
   for_undef_105:
+.annotate 'line', 584
     find_lex $P305, "%astcap"
     unless_null $P305, vivify_107
     $P305 = root_new ['parrot';'Hash']
@@ -9003,15 +9613,17 @@
     new $P306, "Undef"
   vivify_108:
     store_lex "$count", $P306
+.annotate 'line', 579
     .return ($P306)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block296"  :anon :subid("25_1283975944.26638") :outer("24_1283975944.26638")
+.sub "_block296"  :anon :subid("25_1284728474.62745") :outer("24_1284728474.62745")
     .param pmc param_298
-.annotate 'line', 0
+.annotate 'line', 581
     .lex "$_", param_298
+.annotate 'line', 582
     new $P299, "Integer"
     assign $P299, 2
     find_lex $P300, "$_"
@@ -9021,33 +9633,40 @@
     store_lex "%capnames", $P301
   vivify_106:
     set $P301[$P300], $P299
+.annotate 'line', 581
     .return ($P299)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block222"  :anon :subid("21_1283975944.26638") :outer("13_1283975944.26638")
-.annotate 'line', 0
-    .const 'Sub' $P263 = "23_1283975944.26638" 
+.sub "_block222"  :anon :subid("21_1284728474.62745") :outer("13_1284728474.62745")
+.annotate 'line', 562
+    .const 'Sub' $P263 = "23_1284728474.62745" 
     capture_lex $P263
-    .const 'Sub' $P235 = "22_1283975944.26638" 
+    .const 'Sub' $P235 = "22_1284728474.62745" 
     capture_lex $P235
+.annotate 'line', 563
     new $P224, "Undef"
     .lex "$name", $P224
+.annotate 'line', 564
     $P225 = root_new ['parrot';'ResizablePMCArray']
     .lex "@names", $P225
+.annotate 'line', 573
     $P226 = root_new ['parrot';'Hash']
     .lex "%x", $P226
+.annotate 'line', 563
     find_lex $P227, "$ast"
     $P228 = $P227."name"()
     store_lex "$name", $P228
+.annotate 'line', 564
 
             $P0 = find_lex '$name'
             $S0 = $P0
             $P229 = split '=', $S0
         
     store_lex "@names", $P229
+.annotate 'line', 569
     find_lex $P231, "@names"
     defined $I232, $P231
     unless $I232, for_undef_109
@@ -9060,7 +9679,7 @@
     unless $P230, loop251_done
     shift $P233, $P230
   loop251_redo:
-    .const 'Sub' $P235 = "22_1283975944.26638" 
+    .const 'Sub' $P235 = "22_1284728474.62745" 
     capture_lex $P235
     $P235($P233)
   loop251_next:
@@ -9074,6 +9693,7 @@
   loop251_done:
     pop_eh 
   for_undef_109:
+.annotate 'line', 573
     find_lex $P254, "$ast"
     unless_null $P254, vivify_111
     $P254 = root_new ['parrot';'ResizablePMCArray']
@@ -9085,6 +9705,7 @@
     find_lex $P256, "$count"
     $P257 = "capnames"($P255, $P256)
     store_lex "%x", $P257
+.annotate 'line', 574
     find_lex $P259, "%x"
     defined $I260, $P259
     unless $I260, for_undef_113
@@ -9097,7 +9718,7 @@
     unless $P258, loop276_done
     shift $P261, $P258
   loop276_redo:
-    .const 'Sub' $P263 = "23_1283975944.26638" 
+    .const 'Sub' $P263 = "23_1284728474.62745" 
     capture_lex $P263
     $P263($P261)
   loop276_next:
@@ -9111,6 +9732,7 @@
   loop276_done:
     pop_eh 
   for_undef_113:
+.annotate 'line', 577
     find_lex $P279, "%x"
     unless_null $P279, vivify_119
     $P279 = root_new ['parrot';'Hash']
@@ -9120,15 +9742,17 @@
     new $P280, "Undef"
   vivify_120:
     store_lex "$count", $P280
+.annotate 'line', 562
     .return ($P280)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block234"  :anon :subid("22_1283975944.26638") :outer("21_1283975944.26638")
+.sub "_block234"  :anon :subid("22_1284728474.62745") :outer("21_1284728474.62745")
     .param pmc param_236
-.annotate 'line', 0
+.annotate 'line', 569
     .lex "$_", param_236
+.annotate 'line', 570
     find_lex $P240, "$_"
     set $S241, $P240
     iseq $I242, $S241, "0"
@@ -9148,6 +9772,7 @@
     add $P247, $P246, 1
     store_lex "$count", $P247
   if_237_end:
+.annotate 'line', 571
     new $P248, "Integer"
     assign $P248, 1
     find_lex $P249, "$_"
@@ -9157,15 +9782,17 @@
     store_lex "%capnames", $P250
   vivify_110:
     set $P250[$P249], $P248
+.annotate 'line', 569
     .return ($P248)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block262"  :anon :subid("23_1283975944.26638") :outer("21_1283975944.26638")
+.sub "_block262"  :anon :subid("23_1284728474.62745") :outer("21_1284728474.62745")
     .param pmc param_264
-.annotate 'line', 0
+.annotate 'line', 574
     .lex "$_", param_264
+.annotate 'line', 575
     find_lex $P265, "$_"
     find_lex $P266, "%capnames"
     unless_null $P266, vivify_114
@@ -9195,23 +9822,28 @@
     store_lex "%capnames", $P275
   vivify_118:
     set $P275[$P274], $P273
+.annotate 'line', 574
     .return ($P273)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block180"  :anon :subid("19_1283975944.26638") :outer("13_1283975944.26638")
-.annotate 'line', 0
-    .const 'Sub' $P199 = "20_1283975944.26638" 
+.sub "_block180"  :anon :subid("19_1284728474.62745") :outer("13_1284728474.62745")
+.annotate 'line', 549
+    .const 'Sub' $P199 = "20_1284728474.62745" 
     capture_lex $P199
+.annotate 'line', 550
     new $P182, "Undef"
     .lex "$name", $P182
+.annotate 'line', 552
     $P183 = root_new ['parrot';'ResizablePMCArray']
     .lex "@names", $P183
+.annotate 'line', 550
     find_lex $P184, "$ast"
     $P185 = $P184."name"()
     store_lex "$name", $P185
+.annotate 'line', 551
     find_lex $P187, "$name"
     set $S188, $P187
     iseq $I189, $S188, ""
@@ -9222,12 +9854,14 @@
     find_lex $P192, "$name"
     $P191."name"($P192)
   if_186_end:
+.annotate 'line', 552
 
             $P0 = find_lex '$name'
             $S0 = $P0
             $P193 = split '=', $S0
         
     store_lex "@names", $P193
+.annotate 'line', 557
     find_lex $P195, "@names"
     defined $I196, $P195
     unless $I196, for_undef_121
@@ -9240,7 +9874,7 @@
     unless $P194, loop215_done
     shift $P197, $P194
   loop215_redo:
-    .const 'Sub' $P199 = "20_1283975944.26638" 
+    .const 'Sub' $P199 = "20_1284728474.62745" 
     capture_lex $P199
     $P199($P197)
   loop215_next:
@@ -9254,15 +9888,17 @@
   loop215_done:
     pop_eh 
   for_undef_121:
+.annotate 'line', 549
     .return ($P194)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block198"  :anon :subid("20_1283975944.26638") :outer("19_1283975944.26638")
+.sub "_block198"  :anon :subid("20_1284728474.62745") :outer("19_1284728474.62745")
     .param pmc param_200
-.annotate 'line', 0
+.annotate 'line', 557
     .lex "$_", param_200
+.annotate 'line', 558
     find_lex $P204, "$_"
     set $S205, $P204
     iseq $I206, $S205, "0"
@@ -9282,6 +9918,7 @@
     add $P211, $P210, 1
     store_lex "$count", $P211
   if_201_end:
+.annotate 'line', 559
     new $P212, "Integer"
     assign $P212, 1
     find_lex $P213, "$_"
@@ -9291,17 +9928,19 @@
     store_lex "%capnames", $P214
   vivify_122:
     set $P214[$P213], $P212
+.annotate 'line', 557
     .return ($P212)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block138"  :anon :subid("17_1283975944.26638") :outer("13_1283975944.26638")
+.sub "_block138"  :anon :subid("17_1284728474.62745") :outer("13_1284728474.62745")
     .param pmc param_141
-.annotate 'line', 0
-    .const 'Sub' $P150 = "18_1283975944.26638" 
+.annotate 'line', 541
+    .const 'Sub' $P150 = "18_1284728474.62745" 
     capture_lex $P150
+.annotate 'line', 542
     $P140 = root_new ['parrot';'Hash']
     .lex "%x", $P140
     .lex "$_", param_141
@@ -9309,6 +9948,7 @@
     find_lex $P143, "$count"
     $P144 = "capnames"($P142, $P143)
     store_lex "%x", $P144
+.annotate 'line', 543
     find_lex $P146, "%x"
     defined $I147, $P146
     unless $I147, for_undef_124
@@ -9321,7 +9961,7 @@
     unless $P145, loop163_done
     shift $P148, $P145
   loop163_redo:
-    .const 'Sub' $P150 = "18_1283975944.26638" 
+    .const 'Sub' $P150 = "18_1284728474.62745" 
     capture_lex $P150
     $P150($P148)
   loop163_next:
@@ -9335,6 +9975,7 @@
   loop163_done:
     pop_eh 
   for_undef_124:
+.annotate 'line', 546
     find_lex $P166, "%x"
     unless_null $P166, vivify_130
     $P166 = root_new ['parrot';'Hash']
@@ -9344,15 +9985,17 @@
     new $P167, "Undef"
   vivify_131:
     store_lex "$count", $P167
+.annotate 'line', 541
     .return ($P167)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block149"  :anon :subid("18_1283975944.26638") :outer("17_1283975944.26638")
+.sub "_block149"  :anon :subid("18_1284728474.62745") :outer("17_1284728474.62745")
     .param pmc param_151
-.annotate 'line', 0
+.annotate 'line', 543
     .lex "$_", param_151
+.annotate 'line', 544
     find_lex $P152, "$_"
     find_lex $P153, "%capnames"
     unless_null $P153, vivify_125
@@ -9382,20 +10025,23 @@
     store_lex "%capnames", $P162
   vivify_129:
     set $P162[$P161], $P160
+.annotate 'line', 543
     .return ($P160)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block71"  :anon :subid("14_1283975944.26638") :outer("13_1283975944.26638")
-.annotate 'line', 0
-    .const 'Sub' $P81 = "15_1283975944.26638" 
+.sub "_block71"  :anon :subid("14_1284728474.62745") :outer("13_1284728474.62745")
+.annotate 'line', 527
+    .const 'Sub' $P81 = "15_1284728474.62745" 
     capture_lex $P81
+.annotate 'line', 528
     new $P73, "Undef"
     .lex "$max", $P73
     find_lex $P74, "$count"
     store_lex "$max", $P74
+.annotate 'line', 529
     find_lex $P76, "$ast"
     $P77 = $P76."list"()
     defined $I78, $P77
@@ -9409,7 +10055,7 @@
     unless $P75, loop125_done
     shift $P79, $P75
   loop125_redo:
-    .const 'Sub' $P81 = "15_1283975944.26638" 
+    .const 'Sub' $P81 = "15_1284728474.62745" 
     capture_lex $P81
     $P81($P79)
   loop125_next:
@@ -9423,19 +10069,22 @@
   loop125_done:
     pop_eh 
   for_undef_132:
+.annotate 'line', 538
     find_lex $P128, "$max"
     store_lex "$count", $P128
+.annotate 'line', 527
     .return ($P128)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block80"  :anon :subid("15_1283975944.26638") :outer("14_1283975944.26638")
+.sub "_block80"  :anon :subid("15_1284728474.62745") :outer("14_1284728474.62745")
     .param pmc param_83
-.annotate 'line', 0
-    .const 'Sub' $P92 = "16_1283975944.26638" 
+.annotate 'line', 529
+    .const 'Sub' $P92 = "16_1284728474.62745" 
     capture_lex $P92
+.annotate 'line', 530
     $P82 = root_new ['parrot';'Hash']
     .lex "%x", $P82
     .lex "$_", param_83
@@ -9443,6 +10092,7 @@
     find_lex $P85, "$count"
     $P86 = "capnames"($P84, $P85)
     store_lex "%x", $P86
+.annotate 'line', 531
     find_lex $P88, "%x"
     defined $I89, $P88
     unless $I89, for_undef_133
@@ -9455,7 +10105,7 @@
     unless $P87, loop112_done
     shift $P90, $P87
   loop112_redo:
-    .const 'Sub' $P92 = "16_1283975944.26638" 
+    .const 'Sub' $P92 = "16_1284728474.62745" 
     capture_lex $P92
     $P92($P90)
   loop112_next:
@@ -9469,6 +10119,7 @@
   loop112_done:
     pop_eh 
   for_undef_133:
+.annotate 'line', 536
     find_lex $P117, "%x"
     unless_null $P117, vivify_139
     $P117 = root_new ['parrot';'Hash']
@@ -9497,15 +10148,17 @@
     store_lex "$max", $P124
     set $P115, $P124
   if_116_end:
+.annotate 'line', 529
     .return ($P115)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block91"  :anon :subid("16_1283975944.26638") :outer("15_1283975944.26638")
+.sub "_block91"  :anon :subid("16_1284728474.62745") :outer("15_1284728474.62745")
     .param pmc param_93
-.annotate 'line', 0
+.annotate 'line', 531
     .lex "$_", param_93
+.annotate 'line', 532
     find_lex $P98, "$_"
     find_lex $P99, "%capnames"
     unless_null $P99, vivify_134
@@ -9546,6 +10199,7 @@
     assign $P108, 1
     set $P94, $P108
   if_95_end:
+.annotate 'line', 533
     find_lex $P110, "$_"
     find_lex $P111, "%capnames"
     unless_null $P111, vivify_138
@@ -9553,26 +10207,29 @@
     store_lex "%capnames", $P111
   vivify_138:
     set $P111[$P110], $P94
+.annotate 'line', 531
     .return ($P94)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backmod"  :subid("26_1283975944.26638") :outer("11_1283975944.26638")
+.sub "backmod"  :subid("26_1284728474.62745") :outer("11_1284728474.62745")
     .param pmc param_315
     .param pmc param_316
-.annotate 'line', 0
+.annotate 'line', 590
     new $P314, 'ExceptionHandler'
     set_addr $P314, control_313
     $P314."handle_types"(.CONTROL_RETURN)
     push_eh $P314
     .lex "$ast", param_315
     .lex "$backmod", param_316
+.annotate 'line', 591
     find_lex $P318, "$backmod"
     set $S319, $P318
     iseq $I320, $S319, ":"
     if $I320, if_317
+.annotate 'line', 592
     find_lex $P325, "$backmod"
     set $S326, $P325
     iseq $I327, $S326, ":?"
@@ -9588,6 +10245,7 @@
     set $P323, $I330
   unless_324_end:
     if $P323, if_322
+.annotate 'line', 593
     find_lex $P335, "$backmod"
     set $S336, $P335
     iseq $I337, $S336, ":!"
@@ -9608,15 +10266,18 @@
   if_332_end:
     goto if_322_end
   if_322:
+.annotate 'line', 592
     find_lex $P331, "$ast"
     $P331."backtrack"("f")
   if_322_end:
     goto if_317_end
   if_317:
+.annotate 'line', 591
     find_lex $P321, "$ast"
     $P321."backtrack"("r")
   if_317_end:
     find_lex $P342, "$ast"
+.annotate 'line', 590
     .return ($P342)
   control_313:
     .local pmc exception 
@@ -9628,15 +10289,16 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "arg"  :subid("27_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "arg"  :subid("27_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_349
-.annotate 'line', 0
+.annotate 'line', 14
     new $P348, 'ExceptionHandler'
     set_addr $P348, control_347
     $P348."handle_types"(.CONTROL_RETURN)
     push_eh $P348
     .lex "self", self
     .lex "$/", param_349
+.annotate 'line', 15
     find_lex $P350, "$/"
     find_lex $P353, "$/"
     unless_null $P353, vivify_144
@@ -9672,6 +10334,7 @@
     set $P351, $P357
   if_352_end:
     $P361 = $P350."!make"($P351)
+.annotate 'line', 14
     .return ($P361)
   control_347:
     .local pmc exception 
@@ -9683,10 +10346,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "arglist"  :subid("28_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "arglist"  :subid("28_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_366
-.annotate 'line', 0
-    .const 'Sub' $P376 = "29_1283975944.26638" 
+.annotate 'line', 18
+    .const 'Sub' $P376 = "29_1284728474.62745" 
     capture_lex $P376
     new $P365, 'ExceptionHandler'
     set_addr $P365, control_364
@@ -9694,11 +10357,13 @@
     push_eh $P365
     .lex "self", self
     .lex "$/", param_366
+.annotate 'line', 19
     new $P367, "Undef"
     .lex "$past", $P367
     get_hll_global $P368, ["PAST"], "Op"
     $P369 = $P368."new"("list" :named("pasttype"))
     store_lex "$past", $P369
+.annotate 'line', 20
     find_lex $P371, "$/"
     unless_null $P371, vivify_150
     $P371 = root_new ['parrot';'Hash']
@@ -9718,7 +10383,7 @@
     unless $P370, loop382_done
     shift $P374, $P370
   loop382_redo:
-    .const 'Sub' $P376 = "29_1283975944.26638" 
+    .const 'Sub' $P376 = "29_1284728474.62745" 
     capture_lex $P376
     $P376($P374)
   loop382_next:
@@ -9732,9 +10397,11 @@
   loop382_done:
     pop_eh 
   for_undef_152:
+.annotate 'line', 21
     find_lex $P385, "$/"
     find_lex $P386, "$past"
     $P387 = $P385."!make"($P386)
+.annotate 'line', 18
     .return ($P387)
   control_364:
     .local pmc exception 
@@ -9745,9 +10412,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block375"  :anon :subid("29_1283975944.26638") :outer("28_1283975944.26638")
+.sub "_block375"  :anon :subid("29_1284728474.62745") :outer("28_1284728474.62745")
     .param pmc param_377
-.annotate 'line', 0
+.annotate 'line', 20
     .lex "$_", param_377
     find_lex $P378, "$past"
     find_lex $P379, "$_"
@@ -9759,15 +10426,16 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("30_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "TOP"  :subid("30_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_392
-.annotate 'line', 0
+.annotate 'line', 24
     new $P391, 'ExceptionHandler'
     set_addr $P391, control_390
     $P391."handle_types"(.CONTROL_RETURN)
     push_eh $P391
     .lex "self", self
     .lex "$/", param_392
+.annotate 'line', 25
     new $P393, "Undef"
     .lex "$past", $P393
     find_lex $P394, "$/"
@@ -9781,12 +10449,15 @@
     $P396 = $P395."ast"()
     $P397 = "buildsub"($P396)
     store_lex "$past", $P397
+.annotate 'line', 26
     find_lex $P398, "$past"
     find_lex $P399, "$/"
     $P398."node"($P399)
+.annotate 'line', 27
     find_lex $P400, "$/"
     find_lex $P401, "$past"
     $P402 = $P400."!make"($P401)
+.annotate 'line', 24
     .return ($P402)
   control_390:
     .local pmc exception 
@@ -9798,14 +10469,14 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "nibbler"  :subid("31_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "nibbler"  :subid("31_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_407
     .param pmc param_408 :optional
     .param int has_param_408 :opt_flag
-.annotate 'line', 0
-    .const 'Sub' $P443 = "33_1283975944.26638" 
+.annotate 'line', 30
+    .const 'Sub' $P443 = "33_1284728474.62745" 
     capture_lex $P443
-    .const 'Sub' $P416 = "32_1283975944.26638" 
+    .const 'Sub' $P416 = "32_1284728474.62745" 
     capture_lex $P416
     new $P406, 'ExceptionHandler'
     set_addr $P406, control_405
@@ -9818,19 +10489,23 @@
     set param_408, $P409
   optparam_155:
     .lex "$key", param_408
+.annotate 'line', 39
     new $P410, "Undef"
     .lex "$past", $P410
+.annotate 'line', 31
     find_lex $P412, "$key"
     set $S413, $P412
     iseq $I414, $S413, "open"
     unless $I414, if_411_end
-    .const 'Sub' $P416 = "32_1283975944.26638" 
+    .const 'Sub' $P416 = "32_1284728474.62745" 
     capture_lex $P416
     $P416()
   if_411_end:
+.annotate 'line', 38
     get_global $P427, "@MODIFIERS"
     $P427."shift"()
     find_lex $P428, "$past"
+.annotate 'line', 40
     find_lex $P430, "$/"
     unless_null $P430, vivify_158
     $P430 = root_new ['parrot';'Hash']
@@ -9842,6 +10517,7 @@
     set $N432, $P431
     isgt $I433, $N432, 1.0
     if $I433, if_429
+.annotate 'line', 47
     find_lex $P452, "$/"
     unless_null $P452, vivify_160
     $P452 = root_new ['parrot';'Hash']
@@ -9856,12 +10532,15 @@
   vivify_162:
     $P455 = $P454."ast"()
     store_lex "$past", $P455
+.annotate 'line', 46
     goto if_429_end
   if_429:
+.annotate 'line', 41
     get_hll_global $P434, ["PAST"], "Regex"
     find_lex $P435, "$/"
     $P436 = $P434."new"("alt" :named("pasttype"), $P435 :named("node"))
     store_lex "$past", $P436
+.annotate 'line', 42
     find_lex $P438, "$/"
     unless_null $P438, vivify_163
     $P438 = root_new ['parrot';'Hash']
@@ -9881,7 +10560,7 @@
     unless $P437, loop449_done
     shift $P441, $P437
   loop449_redo:
-    .const 'Sub' $P443 = "33_1283975944.26638" 
+    .const 'Sub' $P443 = "33_1284728474.62745" 
     capture_lex $P443
     $P443($P441)
   loop449_next:
@@ -9896,9 +10575,11 @@
     pop_eh 
   for_undef_165:
   if_429_end:
+.annotate 'line', 49
     find_lex $P456, "$/"
     find_lex $P457, "$past"
     $P458 = $P456."!make"($P457)
+.annotate 'line', 30
     .return ($P458)
   control_405:
     .local pmc exception 
@@ -9910,12 +10591,14 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block415"  :anon :subid("32_1283975944.26638") :outer("31_1283975944.26638")
-.annotate 'line', 0
+.sub "_block415"  :anon :subid("32_1284728474.62745") :outer("31_1284728474.62745")
+.annotate 'line', 32
     $P417 = root_new ['parrot';'Hash']
     .lex "%old", $P417
+.annotate 'line', 33
     $P418 = root_new ['parrot';'Hash']
     .lex "%new", $P418
+.annotate 'line', 32
     get_global $P419, "@MODIFIERS"
     unless_null $P419, vivify_156
     $P419 = root_new ['parrot';'ResizablePMCArray']
@@ -9925,41 +10608,47 @@
     new $P420, "Undef"
   vivify_157:
     store_lex "%old", $P420
+.annotate 'line', 33
     find_lex $P421, "%old"
     clone $P422, $P421
     store_lex "%new", $P422
+.annotate 'line', 34
     get_global $P423, "@MODIFIERS"
     find_lex $P424, "%new"
     $P423."unshift"($P424)
+.annotate 'line', 35
     new $P425, "Exception"
     set $P425['type'], .CONTROL_RETURN
     new $P426, "Integer"
     assign $P426, 1
     setattribute $P425, 'payload', $P426
     throw $P425
+.annotate 'line', 31
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block442"  :anon :subid("33_1283975944.26638") :outer("31_1283975944.26638")
+.sub "_block442"  :anon :subid("33_1284728474.62745") :outer("31_1284728474.62745")
     .param pmc param_444
-.annotate 'line', 0
+.annotate 'line', 42
     .lex "$_", param_444
+.annotate 'line', 43
     find_lex $P445, "$past"
     find_lex $P446, "$_"
     $P447 = $P446."ast"()
     $P448 = $P445."push"($P447)
+.annotate 'line', 42
     .return ($P448)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "termconj"  :subid("34_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "termconj"  :subid("34_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_463
-.annotate 'line', 0
-    .const 'Sub' $P480 = "35_1283975944.26638" 
+.annotate 'line', 52
+    .const 'Sub' $P480 = "35_1284728474.62745" 
     capture_lex $P480
     new $P462, 'ExceptionHandler'
     set_addr $P462, control_461
@@ -9967,9 +10656,12 @@
     push_eh $P462
     .lex "self", self
     .lex "$/", param_463
+.annotate 'line', 53
     new $P464, "Undef"
     .lex "$past", $P464
+.annotate 'line', 52
     find_lex $P465, "$past"
+.annotate 'line', 54
     find_lex $P467, "$/"
     unless_null $P467, vivify_166
     $P467 = root_new ['parrot';'Hash']
@@ -9981,6 +10673,7 @@
     set $N469, $P468
     isgt $I470, $N469, 1.0
     if $I470, if_466
+.annotate 'line', 61
     find_lex $P489, "$/"
     unless_null $P489, vivify_168
     $P489 = root_new ['parrot';'Hash']
@@ -9995,12 +10688,15 @@
   vivify_170:
     $P492 = $P491."ast"()
     store_lex "$past", $P492
+.annotate 'line', 60
     goto if_466_end
   if_466:
+.annotate 'line', 55
     get_hll_global $P471, ["PAST"], "Regex"
     find_lex $P472, "$/"
     $P473 = $P471."new"("conj" :named("pasttype"), $P472 :named("node"))
     store_lex "$past", $P473
+.annotate 'line', 56
     find_lex $P475, "$/"
     unless_null $P475, vivify_171
     $P475 = root_new ['parrot';'Hash']
@@ -10020,7 +10716,7 @@
     unless $P474, loop486_done
     shift $P478, $P474
   loop486_redo:
-    .const 'Sub' $P480 = "35_1283975944.26638" 
+    .const 'Sub' $P480 = "35_1284728474.62745" 
     capture_lex $P480
     $P480($P478)
   loop486_next:
@@ -10035,9 +10731,11 @@
     pop_eh 
   for_undef_173:
   if_466_end:
+.annotate 'line', 63
     find_lex $P493, "$/"
     find_lex $P494, "$past"
     $P495 = $P493."!make"($P494)
+.annotate 'line', 52
     .return ($P495)
   control_461:
     .local pmc exception 
@@ -10048,24 +10746,26 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block479"  :anon :subid("35_1283975944.26638") :outer("34_1283975944.26638")
+.sub "_block479"  :anon :subid("35_1284728474.62745") :outer("34_1284728474.62745")
     .param pmc param_481
-.annotate 'line', 0
+.annotate 'line', 56
     .lex "$_", param_481
+.annotate 'line', 57
     find_lex $P482, "$past"
     find_lex $P483, "$_"
     $P484 = $P483."ast"()
     $P485 = $P482."push"($P484)
+.annotate 'line', 56
     .return ($P485)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "termish"  :subid("36_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "termish"  :subid("36_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_500
-.annotate 'line', 0
-    .const 'Sub' $P513 = "37_1283975944.26638" 
+.annotate 'line', 66
+    .const 'Sub' $P513 = "37_1284728474.62745" 
     capture_lex $P513
     new $P499, 'ExceptionHandler'
     set_addr $P499, control_498
@@ -10073,17 +10773,22 @@
     push_eh $P499
     .lex "self", self
     .lex "$/", param_500
+.annotate 'line', 67
     new $P501, "Undef"
     .lex "$past", $P501
+.annotate 'line', 68
     new $P502, "Undef"
     .lex "$lastlit", $P502
+.annotate 'line', 67
     get_hll_global $P503, ["PAST"], "Regex"
     find_lex $P504, "$/"
     $P505 = $P503."new"("concat" :named("pasttype"), $P504 :named("node"))
     store_lex "$past", $P505
+.annotate 'line', 68
     new $P506, "Integer"
     assign $P506, 0
     store_lex "$lastlit", $P506
+.annotate 'line', 69
     find_lex $P508, "$/"
     unless_null $P508, vivify_174
     $P508 = root_new ['parrot';'Hash']
@@ -10103,7 +10808,7 @@
     unless $P507, loop558_done
     shift $P511, $P507
   loop558_redo:
-    .const 'Sub' $P513 = "37_1283975944.26638" 
+    .const 'Sub' $P513 = "37_1284728474.62745" 
     capture_lex $P513
     $P513($P511)
   loop558_next:
@@ -10117,9 +10822,11 @@
   loop558_done:
     pop_eh 
   for_undef_176:
+.annotate 'line', 84
     find_lex $P561, "$/"
     find_lex $P562, "$past"
     $P563 = $P561."!make"($P562)
+.annotate 'line', 66
     .return ($P563)
   control_498:
     .local pmc exception 
@@ -10130,20 +10837,22 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block512"  :anon :subid("37_1283975944.26638") :outer("36_1283975944.26638")
+.sub "_block512"  :anon :subid("37_1284728474.62745") :outer("36_1284728474.62745")
     .param pmc param_515
-.annotate 'line', 0
+.annotate 'line', 70
     new $P514, "Undef"
     .lex "$ast", $P514
     .lex "$_", param_515
     find_lex $P516, "$_"
     $P517 = $P516."ast"()
     store_lex "$ast", $P517
+.annotate 'line', 71
     find_lex $P520, "$ast"
     if $P520, if_519
     set $P518, $P520
     goto if_519_end
   if_519:
+.annotate 'line', 72
     find_lex $P527, "$lastlit"
     if $P527, if_526
     set $P525, $P527
@@ -10159,6 +10868,7 @@
     set $P523, $P525
     goto if_524_end
   if_524:
+.annotate 'line', 73
     get_hll_global $P531, ["PAST"], "Node"
     find_lex $P532, "$ast"
     unless_null $P532, vivify_177
@@ -10174,9 +10884,11 @@
     set $P523, $I535
   if_524_end:
     if $P523, if_522
+.annotate 'line', 77
     find_lex $P542, "$past"
     find_lex $P543, "$ast"
     $P542."push"($P543)
+.annotate 'line', 78
     find_lex $P548, "$ast"
     $S549 = $P548."pasttype"()
     iseq $I550, $S549, "literal"
@@ -10185,6 +10897,7 @@
     set $P546, $I550
     goto if_547_end
   if_547:
+.annotate 'line', 79
     get_hll_global $P551, ["PAST"], "Node"
     find_lex $P552, "$ast"
     unless_null $P552, vivify_179
@@ -10208,10 +10921,14 @@
     find_lex $P556, "$ast"
     set $P544, $P556
   if_545_end:
+.annotate 'line', 80
     store_lex "$lastlit", $P544
+.annotate 'line', 76
     set $P521, $P544
+.annotate 'line', 73
     goto if_522_end
   if_522:
+.annotate 'line', 74
     find_lex $P536, "$lastlit"
     unless_null $P536, vivify_181
     $P536 = root_new ['parrot';'ResizablePMCArray']
@@ -10235,20 +10952,23 @@
     store_lex "$lastlit", $P541
   vivify_185:
     set $P541[0], $P540
+.annotate 'line', 73
     set $P521, $P540
   if_522_end:
+.annotate 'line', 71
     set $P518, $P521
   if_519_end:
+.annotate 'line', 69
     .return ($P518)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantified_atom"  :subid("38_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "quantified_atom"  :subid("38_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_568
-.annotate 'line', 0
-    .const 'Sub' $P577 = "39_1283975944.26638" 
+.annotate 'line', 87
+    .const 'Sub' $P577 = "39_1284728474.62745" 
     capture_lex $P577
     new $P567, 'ExceptionHandler'
     set_addr $P567, control_566
@@ -10256,6 +10976,7 @@
     push_eh $P567
     .lex "self", self
     .lex "$/", param_568
+.annotate 'line', 88
     new $P569, "Undef"
     .lex "$past", $P569
     find_lex $P570, "$/"
@@ -10268,6 +10989,7 @@
   vivify_187:
     $P572 = $P571."ast"()
     store_lex "$past", $P572
+.annotate 'line', 89
     find_lex $P574, "$/"
     unless_null $P574, vivify_188
     $P574 = root_new ['parrot';'Hash']
@@ -10277,6 +10999,7 @@
     new $P575, "Undef"
   vivify_189:
     if $P575, if_573
+.annotate 'line', 95
     find_lex $P592, "$/"
     unless_null $P592, vivify_190
     $P592 = root_new ['parrot';'Hash']
@@ -10307,10 +11030,12 @@
   if_591_end:
     goto if_573_end
   if_573:
-    .const 'Sub' $P577 = "39_1283975944.26638" 
+.annotate 'line', 89
+    .const 'Sub' $P577 = "39_1284728474.62745" 
     capture_lex $P577
     $P577()
   if_573_end:
+.annotate 'line', 96
     find_lex $P604, "$past"
     if $P604, if_603
     set $P602, $P604
@@ -10341,12 +11066,15 @@
     set $P600, $P610
   if_601_end:
     unless $P600, if_599_end
+.annotate 'line', 97
     find_lex $P611, "$past"
     $P611."backtrack"("r")
   if_599_end:
+.annotate 'line', 99
     find_lex $P612, "$/"
     find_lex $P613, "$past"
     $P614 = $P612."!make"($P613)
+.annotate 'line', 87
     .return ($P614)
   control_566:
     .local pmc exception 
@@ -10357,10 +11085,11 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block576"  :anon :subid("39_1283975944.26638") :outer("38_1283975944.26638")
-.annotate 'line', 0
+.sub "_block576"  :anon :subid("39_1284728474.62745") :outer("38_1284728474.62745")
+.annotate 'line', 91
     new $P578, "Undef"
     .lex "$qast", $P578
+.annotate 'line', 90
     find_lex $P580, "$past"
     isfalse $I581, $P580
     unless $I581, if_579_end
@@ -10368,6 +11097,7 @@
     $P583 = $P582."CURSOR"()
     $P583."panic"("Quantifier follows nothing")
   if_579_end:
+.annotate 'line', 91
     find_lex $P584, "$/"
     unless_null $P584, vivify_196
     $P584 = root_new ['parrot';'Hash']
@@ -10382,29 +11112,35 @@
   vivify_198:
     $P587 = $P586."ast"()
     store_lex "$qast", $P587
+.annotate 'line', 92
     find_lex $P588, "$qast"
     find_lex $P589, "$past"
     $P588."unshift"($P589)
+.annotate 'line', 93
     find_lex $P590, "$qast"
     store_lex "$past", $P590
+.annotate 'line', 89
     .return ($P590)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "atom"  :subid("40_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "atom"  :subid("40_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_619
-.annotate 'line', 0
+.annotate 'line', 102
     new $P618, 'ExceptionHandler'
     set_addr $P618, control_617
     $P618."handle_types"(.CONTROL_RETURN)
     push_eh $P618
     .lex "self", self
     .lex "$/", param_619
+.annotate 'line', 103
     new $P620, "Undef"
     .lex "$past", $P620
+.annotate 'line', 102
     find_lex $P621, "$past"
+.annotate 'line', 104
     find_lex $P623, "$/"
     unless_null $P623, vivify_202
     $P623 = root_new ['parrot';'Hash']
@@ -10414,12 +11150,14 @@
     new $P624, "Undef"
   vivify_203:
     if $P624, if_622
+.annotate 'line', 106
     get_hll_global $P628, ["PAST"], "Regex"
     find_lex $P629, "$/"
     set $S630, $P629
     find_lex $P631, "$/"
     $P632 = $P628."new"($S630, "literal" :named("pasttype"), $P631 :named("node"))
     store_lex "$past", $P632
+.annotate 'line', 107
     get_global $P634, "@MODIFIERS"
     unless_null $P634, vivify_204
     $P634 = root_new ['parrot';'ResizablePMCArray']
@@ -10436,8 +11174,10 @@
     find_lex $P637, "$past"
     $P637."subtype"("ignorecase")
   if_633_end:
+.annotate 'line', 105
     goto if_622_end
   if_622:
+.annotate 'line', 104
     find_lex $P625, "$/"
     unless_null $P625, vivify_207
     $P625 = root_new ['parrot';'Hash']
@@ -10449,9 +11189,11 @@
     $P627 = $P626."ast"()
     store_lex "$past", $P627
   if_622_end:
+.annotate 'line', 109
     find_lex $P638, "$/"
     find_lex $P639, "$past"
     $P640 = $P638."!make"($P639)
+.annotate 'line', 102
     .return ($P640)
   control_617:
     .local pmc exception 
@@ -10463,21 +11205,23 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantifier:sym<*>"  :subid("41_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "quantifier:sym<*>"  :subid("41_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_645
-.annotate 'line', 0
+.annotate 'line', 112
     new $P644, 'ExceptionHandler'
     set_addr $P644, control_643
     $P644."handle_types"(.CONTROL_RETURN)
     push_eh $P644
     .lex "self", self
     .lex "$/", param_645
+.annotate 'line', 113
     new $P646, "Undef"
     .lex "$past", $P646
     get_hll_global $P647, ["PAST"], "Regex"
     find_lex $P648, "$/"
     $P649 = $P647."new"("quant" :named("pasttype"), $P648 :named("node"))
     store_lex "$past", $P649
+.annotate 'line', 114
     find_lex $P650, "$/"
     find_lex $P651, "$past"
     find_lex $P652, "$/"
@@ -10490,6 +11234,7 @@
   vivify_210:
     $P654 = "backmod"($P651, $P653)
     $P655 = $P650."!make"($P654)
+.annotate 'line', 112
     .return ($P655)
   control_643:
     .local pmc exception 
@@ -10501,21 +11246,23 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantifier:sym<+>"  :subid("42_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "quantifier:sym<+>"  :subid("42_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_660
-.annotate 'line', 0
+.annotate 'line', 117
     new $P659, 'ExceptionHandler'
     set_addr $P659, control_658
     $P659."handle_types"(.CONTROL_RETURN)
     push_eh $P659
     .lex "self", self
     .lex "$/", param_660
+.annotate 'line', 118
     new $P661, "Undef"
     .lex "$past", $P661
     get_hll_global $P662, ["PAST"], "Regex"
     find_lex $P663, "$/"
     $P664 = $P662."new"("quant" :named("pasttype"), 1 :named("min"), $P663 :named("node"))
     store_lex "$past", $P664
+.annotate 'line', 119
     find_lex $P665, "$/"
     find_lex $P666, "$past"
     find_lex $P667, "$/"
@@ -10528,6 +11275,7 @@
   vivify_212:
     $P669 = "backmod"($P666, $P668)
     $P670 = $P665."!make"($P669)
+.annotate 'line', 117
     .return ($P670)
   control_658:
     .local pmc exception 
@@ -10539,21 +11287,23 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantifier:sym<?>"  :subid("43_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "quantifier:sym<?>"  :subid("43_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_675
-.annotate 'line', 0
+.annotate 'line', 122
     new $P674, 'ExceptionHandler'
     set_addr $P674, control_673
     $P674."handle_types"(.CONTROL_RETURN)
     push_eh $P674
     .lex "self", self
     .lex "$/", param_675
+.annotate 'line', 123
     new $P676, "Undef"
     .lex "$past", $P676
     get_hll_global $P677, ["PAST"], "Regex"
     find_lex $P678, "$/"
     $P679 = $P677."new"("quant" :named("pasttype"), 0 :named("min"), 1 :named("max"), $P678 :named("node"))
     store_lex "$past", $P679
+.annotate 'line', 124
     find_lex $P680, "$/"
     find_lex $P681, "$past"
     find_lex $P682, "$/"
@@ -10566,9 +11316,11 @@
   vivify_214:
     $P684 = "backmod"($P681, $P683)
     $P680."!make"($P684)
+.annotate 'line', 125
     find_lex $P685, "$/"
     find_lex $P686, "$past"
     $P687 = $P685."!make"($P686)
+.annotate 'line', 122
     .return ($P687)
   control_673:
     .local pmc exception 
@@ -10580,10 +11332,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantifier:sym<**>"  :subid("44_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "quantifier:sym<**>"  :subid("44_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_692
-.annotate 'line', 0
-    .const 'Sub' $P707 = "45_1283975944.26638" 
+.annotate 'line', 128
+    .const 'Sub' $P707 = "45_1284728474.62745" 
     capture_lex $P707
     new $P691, 'ExceptionHandler'
     set_addr $P691, control_690
@@ -10591,11 +11343,15 @@
     push_eh $P691
     .lex "self", self
     .lex "$/", param_692
+.annotate 'line', 129
     new $P693, "Undef"
     .lex "$past", $P693
+.annotate 'line', 130
     new $P694, "Undef"
     .lex "$ws", $P694
+.annotate 'line', 128
     find_lex $P695, "$past"
+.annotate 'line', 130
     find_lex $P698, "$/"
     unless_null $P698, vivify_215
     $P698 = root_new ['parrot';'Hash']
@@ -10623,6 +11379,7 @@
     set $P696, $P702
   if_697_end:
     store_lex "$ws", $P696
+.annotate 'line', 131
     find_lex $P704, "$/"
     unless_null $P704, vivify_220
     $P704 = root_new ['parrot';'Hash']
@@ -10632,6 +11389,7 @@
     new $P705, "Undef"
   vivify_221:
     if $P705, if_703
+.annotate 'line', 147
     get_hll_global $P725, ["PAST"], "Regex"
     find_lex $P726, "$/"
     unless_null $P726, vivify_222
@@ -10645,6 +11403,7 @@
     find_lex $P729, "$/"
     $P730 = $P725."new"("quant" :named("pasttype"), $N728 :named("min"), $P729 :named("node"))
     store_lex "$past", $P730
+.annotate 'line', 148
     find_lex $P732, "$/"
     unless_null $P732, vivify_224
     $P732 = root_new ['parrot';'Hash']
@@ -10655,6 +11414,7 @@
   vivify_225:
     isfalse $I734, $P733
     if $I734, if_731
+.annotate 'line', 149
     find_lex $P740, "$/"
     unless_null $P740, vivify_226
     $P740 = root_new ['parrot';'Hash']
@@ -10688,6 +11448,7 @@
   if_739_end:
     goto if_731_end
   if_731:
+.annotate 'line', 148
     find_lex $P735, "$past"
     find_lex $P736, "$/"
     unless_null $P736, vivify_232
@@ -10700,6 +11461,7 @@
     set $N738, $P737
     $P735."max"($N738)
   if_731_end:
+.annotate 'line', 150
     find_lex $P751, "$ws"
     unless $P751, if_750_end
     find_lex $P752, "$past"
@@ -10707,12 +11469,15 @@
     $P754 = $P753."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
     $P752."sep"($P754)
   if_750_end:
+.annotate 'line', 146
     goto if_703_end
   if_703:
-    .const 'Sub' $P707 = "45_1283975944.26638" 
+.annotate 'line', 131
+    .const 'Sub' $P707 = "45_1284728474.62745" 
     capture_lex $P707
     $P707()
   if_703_end:
+.annotate 'line', 154
     find_lex $P755, "$/"
     find_lex $P756, "$past"
     find_lex $P757, "$/"
@@ -10725,6 +11490,7 @@
   vivify_237:
     $P759 = "backmod"($P756, $P758)
     $P760 = $P755."!make"($P759)
+.annotate 'line', 128
     .return ($P760)
   control_690:
     .local pmc exception 
@@ -10735,8 +11501,8 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block706"  :anon :subid("45_1283975944.26638") :outer("44_1283975944.26638")
-.annotate 'line', 0
+.sub "_block706"  :anon :subid("45_1284728474.62745") :outer("44_1284728474.62745")
+.annotate 'line', 132
     new $P708, "Undef"
     .lex "$ast", $P708
     find_lex $P709, "$/"
@@ -10749,39 +11515,48 @@
   vivify_235:
     $P711 = $P710."ast"()
     store_lex "$ast", $P711
+.annotate 'line', 133
     find_lex $P713, "$ws"
     unless $P713, if_712_end
+.annotate 'line', 134
     get_hll_global $P714, ["PAST"], "Regex"
+.annotate 'line', 136
     get_hll_global $P715, ["PAST"], "Regex"
     $P716 = $P715."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
     find_lex $P717, "$ast"
+.annotate 'line', 139
     get_hll_global $P718, ["PAST"], "Regex"
     $P719 = $P718."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
     $P720 = $P714."new"($P716, $P717, $P719, "concat" :named("pasttype"))
+.annotate 'line', 134
     store_lex "$ast", $P720
   if_712_end:
+.annotate 'line', 143
     get_hll_global $P721, ["PAST"], "Regex"
     find_lex $P722, "$ast"
     find_lex $P723, "$/"
     $P724 = $P721."new"("quant" :named("pasttype"), 1 :named("min"), $P722 :named("sep"), $P723 :named("node"))
     store_lex "$past", $P724
+.annotate 'line', 131
     .return ($P724)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<ws>"  :subid("46_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<ws>"  :subid("46_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_765
-.annotate 'line', 0
+.annotate 'line', 157
     new $P764, 'ExceptionHandler'
     set_addr $P764, control_763
     $P764."handle_types"(.CONTROL_RETURN)
     push_eh $P764
     .lex "self", self
     .lex "$/", param_765
+.annotate 'line', 158
     new $P766, "Undef"
     .lex "$past", $P766
+.annotate 'line', 159
     get_global $P769, "@MODIFIERS"
     unless_null $P769, vivify_238
     $P769 = root_new ['parrot';'ResizablePMCArray']
@@ -10806,9 +11581,11 @@
     set $P767, $P774
   if_768_end:
     store_lex "$past", $P767
+.annotate 'line', 162
     find_lex $P776, "$/"
     find_lex $P777, "$past"
     $P778 = $P776."!make"($P777)
+.annotate 'line', 157
     .return ($P778)
   control_763:
     .local pmc exception 
@@ -10820,15 +11597,16 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<[ ]>"  :subid("47_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<[ ]>"  :subid("47_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_783
-.annotate 'line', 0
+.annotate 'line', 166
     new $P782, 'ExceptionHandler'
     set_addr $P782, control_781
     $P782."handle_types"(.CONTROL_RETURN)
     push_eh $P782
     .lex "self", self
     .lex "$/", param_783
+.annotate 'line', 167
     find_lex $P784, "$/"
     find_lex $P785, "$/"
     unless_null $P785, vivify_241
@@ -10840,6 +11618,7 @@
   vivify_242:
     $P787 = $P786."ast"()
     $P788 = $P784."!make"($P787)
+.annotate 'line', 166
     .return ($P788)
   control_781:
     .local pmc exception 
@@ -10851,19 +11630,22 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<( )>"  :subid("48_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<( )>"  :subid("48_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_793
-.annotate 'line', 0
+.annotate 'line', 170
     new $P792, 'ExceptionHandler'
     set_addr $P792, control_791
     $P792."handle_types"(.CONTROL_RETURN)
     push_eh $P792
     .lex "self", self
     .lex "$/", param_793
+.annotate 'line', 171
     new $P794, "Undef"
     .lex "$subpast", $P794
+.annotate 'line', 172
     new $P795, "Undef"
     .lex "$past", $P795
+.annotate 'line', 171
     find_lex $P796, "$/"
     unless_null $P796, vivify_243
     $P796 = root_new ['parrot';'Hash']
@@ -10875,14 +11657,17 @@
     $P798 = $P797."ast"()
     $P799 = "buildsub"($P798)
     store_lex "$subpast", $P799
+.annotate 'line', 172
     get_hll_global $P800, ["PAST"], "Regex"
     find_lex $P801, "$subpast"
     find_lex $P802, "$/"
     $P803 = $P800."new"($P801, "subrule" :named("pasttype"), "capture" :named("subtype"), $P802 :named("node"))
     store_lex "$past", $P803
+.annotate 'line', 174
     find_lex $P804, "$/"
     find_lex $P805, "$past"
     $P806 = $P804."!make"($P805)
+.annotate 'line', 170
     .return ($P806)
   control_791:
     .local pmc exception 
@@ -10894,19 +11679,22 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<'>"  :subid("49_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<'>"  :subid("49_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_811
-.annotate 'line', 0
+.annotate 'line', 177
     new $P810, 'ExceptionHandler'
     set_addr $P810, control_809
     $P810."handle_types"(.CONTROL_RETURN)
     push_eh $P810
     .lex "self", self
     .lex "$/", param_811
+.annotate 'line', 178
     new $P812, "Undef"
     .lex "$quote", $P812
+.annotate 'line', 180
     new $P813, "Undef"
     .lex "$past", $P813
+.annotate 'line', 178
     find_lex $P814, "$/"
     unless_null $P814, vivify_245
     $P814 = root_new ['parrot';'Hash']
@@ -10917,6 +11705,7 @@
   vivify_246:
     $P816 = $P815."ast"()
     store_lex "$quote", $P816
+.annotate 'line', 179
     get_hll_global $P818, ["PAST"], "Val"
     find_lex $P819, "$quote"
     $P820 = $P818."ACCEPTS"($P819)
@@ -10925,11 +11714,13 @@
     $P822 = $P821."value"()
     store_lex "$quote", $P822
   if_817_end:
+.annotate 'line', 180
     get_hll_global $P823, ["PAST"], "Regex"
     find_lex $P824, "$quote"
     find_lex $P825, "$/"
     $P826 = $P823."new"($P824, "literal" :named("pasttype"), $P825 :named("node"))
     store_lex "$past", $P826
+.annotate 'line', 181
     get_global $P828, "@MODIFIERS"
     unless_null $P828, vivify_247
     $P828 = root_new ['parrot';'ResizablePMCArray']
@@ -10946,9 +11737,11 @@
     find_lex $P831, "$past"
     $P831."subtype"("ignorecase")
   if_827_end:
+.annotate 'line', 182
     find_lex $P832, "$/"
     find_lex $P833, "$past"
     $P834 = $P832."!make"($P833)
+.annotate 'line', 177
     .return ($P834)
   control_809:
     .local pmc exception 
@@ -10960,19 +11753,22 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<\">"  :subid("50_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<\">"  :subid("50_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_839
-.annotate 'line', 0
+.annotate 'line', 185
     new $P838, 'ExceptionHandler'
     set_addr $P838, control_837
     $P838."handle_types"(.CONTROL_RETURN)
     push_eh $P838
     .lex "self", self
     .lex "$/", param_839
+.annotate 'line', 186
     new $P840, "Undef"
     .lex "$quote", $P840
+.annotate 'line', 188
     new $P841, "Undef"
     .lex "$past", $P841
+.annotate 'line', 186
     find_lex $P842, "$/"
     unless_null $P842, vivify_250
     $P842 = root_new ['parrot';'Hash']
@@ -10983,6 +11779,7 @@
   vivify_251:
     $P844 = $P843."ast"()
     store_lex "$quote", $P844
+.annotate 'line', 187
     get_hll_global $P846, ["PAST"], "Val"
     find_lex $P847, "$quote"
     $P848 = $P846."ACCEPTS"($P847)
@@ -10991,11 +11788,13 @@
     $P850 = $P849."value"()
     store_lex "$quote", $P850
   if_845_end:
+.annotate 'line', 188
     get_hll_global $P851, ["PAST"], "Regex"
     find_lex $P852, "$quote"
     find_lex $P853, "$/"
     $P854 = $P851."new"($P852, "literal" :named("pasttype"), $P853 :named("node"))
     store_lex "$past", $P854
+.annotate 'line', 189
     get_global $P856, "@MODIFIERS"
     unless_null $P856, vivify_252
     $P856 = root_new ['parrot';'ResizablePMCArray']
@@ -11012,9 +11811,11 @@
     find_lex $P859, "$past"
     $P859."subtype"("ignorecase")
   if_855_end:
+.annotate 'line', 190
     find_lex $P860, "$/"
     find_lex $P861, "$past"
     $P862 = $P860."!make"($P861)
+.annotate 'line', 185
     .return ($P862)
   control_837:
     .local pmc exception 
@@ -11026,24 +11827,27 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<.>"  :subid("51_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<.>"  :subid("51_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_867
-.annotate 'line', 0
+.annotate 'line', 193
     new $P866, 'ExceptionHandler'
     set_addr $P866, control_865
     $P866."handle_types"(.CONTROL_RETURN)
     push_eh $P866
     .lex "self", self
     .lex "$/", param_867
+.annotate 'line', 194
     new $P868, "Undef"
     .lex "$past", $P868
     get_hll_global $P869, ["PAST"], "Regex"
     find_lex $P870, "$/"
     $P871 = $P869."new"("charclass" :named("pasttype"), "." :named("subtype"), $P870 :named("node"))
     store_lex "$past", $P871
+.annotate 'line', 195
     find_lex $P872, "$/"
     find_lex $P873, "$past"
     $P874 = $P872."!make"($P873)
+.annotate 'line', 193
     .return ($P874)
   control_865:
     .local pmc exception 
@@ -11055,24 +11859,27 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<^>"  :subid("52_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<^>"  :subid("52_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_879
-.annotate 'line', 0
+.annotate 'line', 198
     new $P878, 'ExceptionHandler'
     set_addr $P878, control_877
     $P878."handle_types"(.CONTROL_RETURN)
     push_eh $P878
     .lex "self", self
     .lex "$/", param_879
+.annotate 'line', 199
     new $P880, "Undef"
     .lex "$past", $P880
     get_hll_global $P881, ["PAST"], "Regex"
     find_lex $P882, "$/"
     $P883 = $P881."new"("anchor" :named("pasttype"), "bos" :named("subtype"), $P882 :named("node"))
     store_lex "$past", $P883
+.annotate 'line', 200
     find_lex $P884, "$/"
     find_lex $P885, "$past"
     $P886 = $P884."!make"($P885)
+.annotate 'line', 198
     .return ($P886)
   control_877:
     .local pmc exception 
@@ -11084,24 +11891,27 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<^^>"  :subid("53_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<^^>"  :subid("53_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_891
-.annotate 'line', 0
+.annotate 'line', 203
     new $P890, 'ExceptionHandler'
     set_addr $P890, control_889
     $P890."handle_types"(.CONTROL_RETURN)
     push_eh $P890
     .lex "self", self
     .lex "$/", param_891
+.annotate 'line', 204
     new $P892, "Undef"
     .lex "$past", $P892
     get_hll_global $P893, ["PAST"], "Regex"
     find_lex $P894, "$/"
     $P895 = $P893."new"("anchor" :named("pasttype"), "bol" :named("subtype"), $P894 :named("node"))
     store_lex "$past", $P895
+.annotate 'line', 205
     find_lex $P896, "$/"
     find_lex $P897, "$past"
     $P898 = $P896."!make"($P897)
+.annotate 'line', 203
     .return ($P898)
   control_889:
     .local pmc exception 
@@ -11113,24 +11923,27 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<$>"  :subid("54_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<$>"  :subid("54_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_903
-.annotate 'line', 0
+.annotate 'line', 208
     new $P902, 'ExceptionHandler'
     set_addr $P902, control_901
     $P902."handle_types"(.CONTROL_RETURN)
     push_eh $P902
     .lex "self", self
     .lex "$/", param_903
+.annotate 'line', 209
     new $P904, "Undef"
     .lex "$past", $P904
     get_hll_global $P905, ["PAST"], "Regex"
     find_lex $P906, "$/"
     $P907 = $P905."new"("anchor" :named("pasttype"), "eos" :named("subtype"), $P906 :named("node"))
     store_lex "$past", $P907
+.annotate 'line', 210
     find_lex $P908, "$/"
     find_lex $P909, "$past"
     $P910 = $P908."!make"($P909)
+.annotate 'line', 208
     .return ($P910)
   control_901:
     .local pmc exception 
@@ -11142,24 +11955,27 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<$$>"  :subid("55_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<$$>"  :subid("55_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_915
-.annotate 'line', 0
+.annotate 'line', 213
     new $P914, 'ExceptionHandler'
     set_addr $P914, control_913
     $P914."handle_types"(.CONTROL_RETURN)
     push_eh $P914
     .lex "self", self
     .lex "$/", param_915
+.annotate 'line', 214
     new $P916, "Undef"
     .lex "$past", $P916
     get_hll_global $P917, ["PAST"], "Regex"
     find_lex $P918, "$/"
     $P919 = $P917."new"("anchor" :named("pasttype"), "eol" :named("subtype"), $P918 :named("node"))
     store_lex "$past", $P919
+.annotate 'line', 215
     find_lex $P920, "$/"
     find_lex $P921, "$past"
     $P922 = $P920."!make"($P921)
+.annotate 'line', 213
     .return ($P922)
   control_913:
     .local pmc exception 
@@ -11171,24 +11987,27 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<:::>"  :subid("56_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<:::>"  :subid("56_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_927
-.annotate 'line', 0
+.annotate 'line', 218
     new $P926, 'ExceptionHandler'
     set_addr $P926, control_925
     $P926."handle_types"(.CONTROL_RETURN)
     push_eh $P926
     .lex "self", self
     .lex "$/", param_927
+.annotate 'line', 219
     new $P928, "Undef"
     .lex "$past", $P928
     get_hll_global $P929, ["PAST"], "Regex"
     find_lex $P930, "$/"
     $P931 = $P929."new"("cut" :named("pasttype"), $P930 :named("node"))
     store_lex "$past", $P931
+.annotate 'line', 220
     find_lex $P932, "$/"
     find_lex $P933, "$past"
     $P934 = $P932."!make"($P933)
+.annotate 'line', 218
     .return ($P934)
   control_925:
     .local pmc exception 
@@ -11200,24 +12019,27 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<lwb>"  :subid("57_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<lwb>"  :subid("57_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_939
-.annotate 'line', 0
+.annotate 'line', 223
     new $P938, 'ExceptionHandler'
     set_addr $P938, control_937
     $P938."handle_types"(.CONTROL_RETURN)
     push_eh $P938
     .lex "self", self
     .lex "$/", param_939
+.annotate 'line', 224
     new $P940, "Undef"
     .lex "$past", $P940
     get_hll_global $P941, ["PAST"], "Regex"
     find_lex $P942, "$/"
     $P943 = $P941."new"("anchor" :named("pasttype"), "lwb" :named("subtype"), $P942 :named("node"))
     store_lex "$past", $P943
+.annotate 'line', 225
     find_lex $P944, "$/"
     find_lex $P945, "$past"
     $P946 = $P944."!make"($P945)
+.annotate 'line', 223
     .return ($P946)
   control_937:
     .local pmc exception 
@@ -11229,24 +12051,27 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<rwb>"  :subid("58_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<rwb>"  :subid("58_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_951
-.annotate 'line', 0
+.annotate 'line', 228
     new $P950, 'ExceptionHandler'
     set_addr $P950, control_949
     $P950."handle_types"(.CONTROL_RETURN)
     push_eh $P950
     .lex "self", self
     .lex "$/", param_951
+.annotate 'line', 229
     new $P952, "Undef"
     .lex "$past", $P952
     get_hll_global $P953, ["PAST"], "Regex"
     find_lex $P954, "$/"
     $P955 = $P953."new"("anchor" :named("pasttype"), "rwb" :named("subtype"), $P954 :named("node"))
     store_lex "$past", $P955
+.annotate 'line', 230
     find_lex $P956, "$/"
     find_lex $P957, "$past"
     $P958 = $P956."!make"($P957)
+.annotate 'line', 228
     .return ($P958)
   control_949:
     .local pmc exception 
@@ -11258,15 +12083,16 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<bs>"  :subid("59_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<bs>"  :subid("59_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_963
-.annotate 'line', 0
+.annotate 'line', 233
     new $P962, 'ExceptionHandler'
     set_addr $P962, control_961
     $P962."handle_types"(.CONTROL_RETURN)
     push_eh $P962
     .lex "self", self
     .lex "$/", param_963
+.annotate 'line', 234
     find_lex $P964, "$/"
     find_lex $P965, "$/"
     unless_null $P965, vivify_255
@@ -11278,6 +12104,7 @@
   vivify_256:
     $P967 = $P966."ast"()
     $P968 = $P964."!make"($P967)
+.annotate 'line', 233
     .return ($P968)
   control_961:
     .local pmc exception 
@@ -11289,15 +12116,16 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<mod>"  :subid("60_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<mod>"  :subid("60_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_973
-.annotate 'line', 0
+.annotate 'line', 237
     new $P972, 'ExceptionHandler'
     set_addr $P972, control_971
     $P972."handle_types"(.CONTROL_RETURN)
     push_eh $P972
     .lex "self", self
     .lex "$/", param_973
+.annotate 'line', 238
     find_lex $P974, "$/"
     find_lex $P975, "$/"
     unless_null $P975, vivify_257
@@ -11309,6 +12137,7 @@
   vivify_258:
     $P977 = $P976."ast"()
     $P978 = $P974."!make"($P977)
+.annotate 'line', 237
     .return ($P978)
   control_971:
     .local pmc exception 
@@ -11320,15 +12149,16 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<assert>"  :subid("61_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<assert>"  :subid("61_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_983
-.annotate 'line', 0
+.annotate 'line', 241
     new $P982, 'ExceptionHandler'
     set_addr $P982, control_981
     $P982."handle_types"(.CONTROL_RETURN)
     push_eh $P982
     .lex "self", self
     .lex "$/", param_983
+.annotate 'line', 242
     find_lex $P984, "$/"
     find_lex $P985, "$/"
     unless_null $P985, vivify_259
@@ -11340,6 +12170,7 @@
   vivify_260:
     $P987 = $P986."ast"()
     $P988 = $P984."!make"($P987)
+.annotate 'line', 241
     .return ($P988)
   control_981:
     .local pmc exception 
@@ -11351,17 +12182,19 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<~>"  :subid("62_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<~>"  :subid("62_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_993
-.annotate 'line', 0
+.annotate 'line', 245
     new $P992, 'ExceptionHandler'
     set_addr $P992, control_991
     $P992."handle_types"(.CONTROL_RETURN)
     push_eh $P992
     .lex "self", self
     .lex "$/", param_993
+.annotate 'line', 246
     find_lex $P994, "$/"
     get_hll_global $P995, ["PAST"], "Regex"
+.annotate 'line', 247
     find_lex $P996, "$/"
     unless_null $P996, vivify_261
     $P996 = root_new ['parrot';'Hash']
@@ -11371,7 +12204,9 @@
     new $P997, "Undef"
   vivify_262:
     $P998 = $P997."ast"()
+.annotate 'line', 248
     get_hll_global $P999, ["PAST"], "Regex"
+.annotate 'line', 249
     find_lex $P1000, "$/"
     unless_null $P1000, vivify_263
     $P1000 = root_new ['parrot';'Hash']
@@ -11381,6 +12216,7 @@
     new $P1001, "Undef"
   vivify_264:
     $P1002 = $P1001."ast"()
+.annotate 'line', 250
     get_hll_global $P1003, ["PAST"], "Regex"
     find_lex $P1004, "$/"
     unless_null $P1004, vivify_265
@@ -11393,8 +12229,11 @@
     set $S1006, $P1005
     $P1007 = $P1003."new"("FAILGOAL", $S1006, "subrule" :named("pasttype"), "method" :named("subtype"))
     $P1008 = $P999."new"($P1002, $P1007, "alt" :named("pasttype"))
+.annotate 'line', 248
     $P1009 = $P995."new"($P998, $P1008, "concat" :named("pasttype"))
+.annotate 'line', 246
     $P1010 = $P994."!make"($P1009)
+.annotate 'line', 245
     .return ($P1010)
   control_991:
     .local pmc exception 
@@ -11406,17 +12245,19 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<{*}>"  :subid("63_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<{*}>"  :subid("63_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1015
-.annotate 'line', 0
+.annotate 'line', 258
     new $P1014, 'ExceptionHandler'
     set_addr $P1014, control_1013
     $P1014."handle_types"(.CONTROL_RETURN)
     push_eh $P1014
     .lex "self", self
     .lex "$/", param_1015
+.annotate 'line', 259
     new $P1016, "Undef"
     .lex "$past", $P1016
+.annotate 'line', 260
     find_lex $P1019, "$/"
     unless_null $P1019, vivify_267
     $P1019 = root_new ['parrot';'Hash']
@@ -11450,9 +12291,11 @@
     set $P1017, $P1027
   if_1018_end:
     store_lex "$past", $P1017
+.annotate 'line', 262
     find_lex $P1029, "$/"
     find_lex $P1030, "$past"
     $P1031 = $P1029."!make"($P1030)
+.annotate 'line', 258
     .return ($P1031)
   control_1013:
     .local pmc exception 
@@ -11464,20 +12307,24 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<var>"  :subid("64_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<var>"  :subid("64_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1036
-.annotate 'line', 0
+.annotate 'line', 265
     new $P1035, 'ExceptionHandler'
     set_addr $P1035, control_1034
     $P1035."handle_types"(.CONTROL_RETURN)
     push_eh $P1035
     .lex "self", self
     .lex "$/", param_1036
+.annotate 'line', 266
     new $P1037, "Undef"
     .lex "$past", $P1037
+.annotate 'line', 267
     new $P1038, "Undef"
     .lex "$name", $P1038
+.annotate 'line', 265
     find_lex $P1039, "$past"
+.annotate 'line', 267
     find_lex $P1042, "$/"
     unless_null $P1042, vivify_272
     $P1042 = root_new ['parrot';'Hash']
@@ -11513,6 +12360,7 @@
     set $P1040, $N1046
   if_1041_end:
     store_lex "$name", $P1040
+.annotate 'line', 268
     find_lex $P1051, "$/"
     unless_null $P1051, vivify_278
     $P1051 = root_new ['parrot';'Hash']
@@ -11522,13 +12370,16 @@
     new $P1052, "Undef"
   vivify_279:
     if $P1052, if_1050
+.annotate 'line', 279
     get_hll_global $P1083, ["PAST"], "Regex"
     find_lex $P1084, "$name"
     find_lex $P1085, "$/"
     $P1086 = $P1083."new"("!BACKREF", $P1084, "subrule" :named("pasttype"), "method" :named("subtype"), $P1085 :named("node"))
     store_lex "$past", $P1086
+.annotate 'line', 278
     goto if_1050_end
   if_1050:
+.annotate 'line', 269
     find_lex $P1053, "$/"
     unless_null $P1053, vivify_280
     $P1053 = root_new ['parrot';'Hash']
@@ -11543,6 +12394,7 @@
   vivify_282:
     $P1056 = $P1055."ast"()
     store_lex "$past", $P1056
+.annotate 'line', 270
     find_lex $P1060, "$past"
     $S1061 = $P1060."pasttype"()
     iseq $I1062, $S1061, "quant"
@@ -11565,18 +12417,22 @@
     set $P1058, $I1066
   if_1059_end:
     if $P1058, if_1057
+.annotate 'line', 273
     find_lex $P1072, "$past"
     $S1073 = $P1072."pasttype"()
     iseq $I1074, $S1073, "subrule"
     if $I1074, if_1071
+.annotate 'line', 275
     get_hll_global $P1078, ["PAST"], "Regex"
     find_lex $P1079, "$past"
     find_lex $P1080, "$name"
     find_lex $P1081, "$/"
     $P1082 = $P1078."new"($P1079, $P1080 :named("name"), "subcapture" :named("pasttype"), $P1081 :named("node"))
     store_lex "$past", $P1082
+.annotate 'line', 274
     goto if_1071_end
   if_1071:
+.annotate 'line', 273
     find_lex $P1075, "self"
     find_lex $P1076, "$past"
     find_lex $P1077, "$name"
@@ -11584,6 +12440,7 @@
   if_1071_end:
     goto if_1057_end
   if_1057:
+.annotate 'line', 271
     find_lex $P1067, "self"
     find_lex $P1068, "$past"
     unless_null $P1068, vivify_285
@@ -11597,9 +12454,11 @@
     $P1067."subrule_alias"($P1069, $P1070)
   if_1057_end:
   if_1050_end:
+.annotate 'line', 282
     find_lex $P1087, "$/"
     find_lex $P1088, "$past"
     $P1089 = $P1087."!make"($P1088)
+.annotate 'line', 265
     .return ($P1089)
   control_1034:
     .local pmc exception 
@@ -11611,17 +12470,19 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<PIR>"  :subid("65_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "metachar:sym<PIR>"  :subid("65_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1094
-.annotate 'line', 0
+.annotate 'line', 285
     new $P1093, 'ExceptionHandler'
     set_addr $P1093, control_1092
     $P1093."handle_types"(.CONTROL_RETURN)
     push_eh $P1093
     .lex "self", self
     .lex "$/", param_1094
+.annotate 'line', 286
     find_lex $P1095, "$/"
     get_hll_global $P1096, ["PAST"], "Regex"
+.annotate 'line', 287
     get_hll_global $P1097, ["PAST"], "Op"
     find_lex $P1098, "$/"
     unless_null $P1098, vivify_287
@@ -11635,7 +12496,9 @@
     $P1101 = $P1097."new"($S1100 :named("inline"), "inline" :named("pasttype"))
     find_lex $P1102, "$/"
     $P1103 = $P1096."new"($P1101, "pastnode" :named("pasttype"), $P1102 :named("node"))
+.annotate 'line', 286
     $P1104 = $P1095."!make"($P1103)
+.annotate 'line', 285
     .return ($P1104)
   control_1092:
     .local pmc exception 
@@ -11647,19 +12510,22 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<w>"  :subid("66_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "backslash:sym<w>"  :subid("66_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1109
-.annotate 'line', 0
+.annotate 'line', 293
     new $P1108, 'ExceptionHandler'
     set_addr $P1108, control_1107
     $P1108."handle_types"(.CONTROL_RETURN)
     push_eh $P1108
     .lex "self", self
     .lex "$/", param_1109
+.annotate 'line', 294
     new $P1110, "Undef"
     .lex "$subtype", $P1110
+.annotate 'line', 295
     new $P1111, "Undef"
     .lex "$past", $P1111
+.annotate 'line', 294
     find_lex $P1114, "$/"
     unless_null $P1114, vivify_289
     $P1114 = root_new ['parrot';'Hash']
@@ -11689,14 +12555,17 @@
     set $P1112, $P1118
   if_1113_end:
     store_lex "$subtype", $P1112
+.annotate 'line', 295
     get_hll_global $P1122, ["PAST"], "Regex"
     find_lex $P1123, "$subtype"
     find_lex $P1124, "$/"
     $P1125 = $P1122."new"("charclass" :named("pasttype"), $P1123 :named("subtype"), $P1124 :named("node"))
     store_lex "$past", $P1125
+.annotate 'line', 296
     find_lex $P1126, "$/"
     find_lex $P1127, "$past"
     $P1128 = $P1126."!make"($P1127)
+.annotate 'line', 293
     .return ($P1128)
   control_1107:
     .local pmc exception 
@@ -11708,18 +12577,20 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<b>"  :subid("67_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "backslash:sym<b>"  :subid("67_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1133
-.annotate 'line', 0
+.annotate 'line', 299
     new $P1132, 'ExceptionHandler'
     set_addr $P1132, control_1131
     $P1132."handle_types"(.CONTROL_RETURN)
     push_eh $P1132
     .lex "self", self
     .lex "$/", param_1133
+.annotate 'line', 300
     new $P1134, "Undef"
     .lex "$past", $P1134
     get_hll_global $P1135, ["PAST"], "Regex"
+.annotate 'line', 301
     find_lex $P1136, "$/"
     unless_null $P1136, vivify_293
     $P1136 = root_new ['parrot';'Hash']
@@ -11732,10 +12603,13 @@
     iseq $I1139, $S1138, "B"
     find_lex $P1140, "$/"
     $P1141 = $P1135."new"("\b", "enumcharlist" :named("pasttype"), $I1139 :named("negate"), $P1140 :named("node"))
+.annotate 'line', 300
     store_lex "$past", $P1141
+.annotate 'line', 302
     find_lex $P1142, "$/"
     find_lex $P1143, "$past"
     $P1144 = $P1142."!make"($P1143)
+.annotate 'line', 299
     .return ($P1144)
   control_1131:
     .local pmc exception 
@@ -11747,18 +12621,20 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<e>"  :subid("68_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "backslash:sym<e>"  :subid("68_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1149
-.annotate 'line', 0
+.annotate 'line', 305
     new $P1148, 'ExceptionHandler'
     set_addr $P1148, control_1147
     $P1148."handle_types"(.CONTROL_RETURN)
     push_eh $P1148
     .lex "self", self
     .lex "$/", param_1149
+.annotate 'line', 306
     new $P1150, "Undef"
     .lex "$past", $P1150
     get_hll_global $P1151, ["PAST"], "Regex"
+.annotate 'line', 307
     find_lex $P1152, "$/"
     unless_null $P1152, vivify_295
     $P1152 = root_new ['parrot';'Hash']
@@ -11771,10 +12647,13 @@
     iseq $I1155, $S1154, "E"
     find_lex $P1156, "$/"
     $P1157 = $P1151."new"("\e", "enumcharlist" :named("pasttype"), $I1155 :named("negate"), $P1156 :named("node"))
+.annotate 'line', 306
     store_lex "$past", $P1157
+.annotate 'line', 308
     find_lex $P1158, "$/"
     find_lex $P1159, "$past"
     $P1160 = $P1158."!make"($P1159)
+.annotate 'line', 305
     .return ($P1160)
   control_1147:
     .local pmc exception 
@@ -11786,18 +12665,20 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<f>"  :subid("69_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "backslash:sym<f>"  :subid("69_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1165
-.annotate 'line', 0
+.annotate 'line', 311
     new $P1164, 'ExceptionHandler'
     set_addr $P1164, control_1163
     $P1164."handle_types"(.CONTROL_RETURN)
     push_eh $P1164
     .lex "self", self
     .lex "$/", param_1165
+.annotate 'line', 312
     new $P1166, "Undef"
     .lex "$past", $P1166
     get_hll_global $P1167, ["PAST"], "Regex"
+.annotate 'line', 313
     find_lex $P1168, "$/"
     unless_null $P1168, vivify_297
     $P1168 = root_new ['parrot';'Hash']
@@ -11810,10 +12691,13 @@
     iseq $I1171, $S1170, "F"
     find_lex $P1172, "$/"
     $P1173 = $P1167."new"("\f", "enumcharlist" :named("pasttype"), $I1171 :named("negate"), $P1172 :named("node"))
+.annotate 'line', 312
     store_lex "$past", $P1173
+.annotate 'line', 314
     find_lex $P1174, "$/"
     find_lex $P1175, "$past"
     $P1176 = $P1174."!make"($P1175)
+.annotate 'line', 311
     .return ($P1176)
   control_1163:
     .local pmc exception 
@@ -11825,18 +12709,20 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<h>"  :subid("70_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "backslash:sym<h>"  :subid("70_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1181
-.annotate 'line', 0
+.annotate 'line', 317
     new $P1180, 'ExceptionHandler'
     set_addr $P1180, control_1179
     $P1180."handle_types"(.CONTROL_RETURN)
     push_eh $P1180
     .lex "self", self
     .lex "$/", param_1181
+.annotate 'line', 318
     new $P1182, "Undef"
     .lex "$past", $P1182
     get_hll_global $P1183, ["PAST"], "Regex"
+.annotate 'line', 319
     find_lex $P1184, "$/"
     unless_null $P1184, vivify_299
     $P1184 = root_new ['parrot';'Hash']
@@ -11849,10 +12735,13 @@
     iseq $I1187, $S1186, "H"
     find_lex $P1188, "$/"
     $P1189 = $P1183."new"(unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", "enumcharlist" :named("pasttype"), $I1187 :named("negate"), $P1188 :named("node"))
+.annotate 'line', 318
     store_lex "$past", $P1189
+.annotate 'line', 320
     find_lex $P1190, "$/"
     find_lex $P1191, "$past"
     $P1192 = $P1190."!make"($P1191)
+.annotate 'line', 317
     .return ($P1192)
   control_1179:
     .local pmc exception 
@@ -11864,18 +12753,20 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<r>"  :subid("71_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "backslash:sym<r>"  :subid("71_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1197
-.annotate 'line', 0
+.annotate 'line', 323
     new $P1196, 'ExceptionHandler'
     set_addr $P1196, control_1195
     $P1196."handle_types"(.CONTROL_RETURN)
     push_eh $P1196
     .lex "self", self
     .lex "$/", param_1197
+.annotate 'line', 324
     new $P1198, "Undef"
     .lex "$past", $P1198
     get_hll_global $P1199, ["PAST"], "Regex"
+.annotate 'line', 325
     find_lex $P1200, "$/"
     unless_null $P1200, vivify_301
     $P1200 = root_new ['parrot';'Hash']
@@ -11888,10 +12779,13 @@
     iseq $I1203, $S1202, "R"
     find_lex $P1204, "$/"
     $P1205 = $P1199."new"("\r", "enumcharlist" :named("pasttype"), $I1203 :named("negate"), $P1204 :named("node"))
+.annotate 'line', 324
     store_lex "$past", $P1205
+.annotate 'line', 326
     find_lex $P1206, "$/"
     find_lex $P1207, "$past"
     $P1208 = $P1206."!make"($P1207)
+.annotate 'line', 323
     .return ($P1208)
   control_1195:
     .local pmc exception 
@@ -11903,18 +12797,20 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<t>"  :subid("72_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "backslash:sym<t>"  :subid("72_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1213
-.annotate 'line', 0
+.annotate 'line', 329
     new $P1212, 'ExceptionHandler'
     set_addr $P1212, control_1211
     $P1212."handle_types"(.CONTROL_RETURN)
     push_eh $P1212
     .lex "self", self
     .lex "$/", param_1213
+.annotate 'line', 330
     new $P1214, "Undef"
     .lex "$past", $P1214
     get_hll_global $P1215, ["PAST"], "Regex"
+.annotate 'line', 331
     find_lex $P1216, "$/"
     unless_null $P1216, vivify_303
     $P1216 = root_new ['parrot';'Hash']
@@ -11927,10 +12823,13 @@
     iseq $I1219, $S1218, "T"
     find_lex $P1220, "$/"
     $P1221 = $P1215."new"("\t", "enumcharlist" :named("pasttype"), $I1219 :named("negate"), $P1220 :named("node"))
+.annotate 'line', 330
     store_lex "$past", $P1221
+.annotate 'line', 332
     find_lex $P1222, "$/"
     find_lex $P1223, "$past"
     $P1224 = $P1222."!make"($P1223)
+.annotate 'line', 329
     .return ($P1224)
   control_1211:
     .local pmc exception 
@@ -11942,18 +12841,20 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<v>"  :subid("73_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "backslash:sym<v>"  :subid("73_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1229
-.annotate 'line', 0
+.annotate 'line', 335
     new $P1228, 'ExceptionHandler'
     set_addr $P1228, control_1227
     $P1228."handle_types"(.CONTROL_RETURN)
     push_eh $P1228
     .lex "self", self
     .lex "$/", param_1229
+.annotate 'line', 336
     new $P1230, "Undef"
     .lex "$past", $P1230
     get_hll_global $P1231, ["PAST"], "Regex"
+.annotate 'line', 338
     find_lex $P1232, "$/"
     unless_null $P1232, vivify_305
     $P1232 = root_new ['parrot';'Hash']
@@ -11966,10 +12867,13 @@
     iseq $I1235, $S1234, "V"
     find_lex $P1236, "$/"
     $P1237 = $P1231."new"(unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", "enumcharlist" :named("pasttype"), $I1235 :named("negate"), $P1236 :named("node"))
+.annotate 'line', 336
     store_lex "$past", $P1237
+.annotate 'line', 339
     find_lex $P1238, "$/"
     find_lex $P1239, "$past"
     $P1240 = $P1238."!make"($P1239)
+.annotate 'line', 335
     .return ($P1240)
   control_1227:
     .local pmc exception 
@@ -11981,17 +12885,19 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<o>"  :subid("74_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "backslash:sym<o>"  :subid("74_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1245
-.annotate 'line', 0
+.annotate 'line', 342
     new $P1244, 'ExceptionHandler'
     set_addr $P1244, control_1243
     $P1244."handle_types"(.CONTROL_RETURN)
     push_eh $P1244
     .lex "self", self
     .lex "$/", param_1245
+.annotate 'line', 343
     new $P1246, "Undef"
     .lex "$octlit", $P1246
+.annotate 'line', 344
     get_hll_global $P1247, ["HLL";"Actions"], "ints_to_string"
     find_lex $P1250, "$/"
     unless_null $P1250, vivify_307
@@ -12021,6 +12927,7 @@
   unless_1249_end:
     $P1255 = $P1247($P1248)
     store_lex "$octlit", $P1255
+.annotate 'line', 345
     find_lex $P1256, "$/"
     find_lex $P1259, "$/"
     unless_null $P1259, vivify_312
@@ -12033,13 +12940,16 @@
     set $S1261, $P1260
     iseq $I1262, $S1261, "O"
     if $I1262, if_1258
+.annotate 'line', 348
     get_hll_global $P1267, ["PAST"], "Regex"
     find_lex $P1268, "$octlit"
     find_lex $P1269, "$/"
     $P1270 = $P1267."new"($P1268, "literal" :named("pasttype"), $P1269 :named("node"))
     set $P1257, $P1270
+.annotate 'line', 345
     goto if_1258_end
   if_1258:
+.annotate 'line', 346
     get_hll_global $P1263, ["PAST"], "Regex"
     find_lex $P1264, "$octlit"
     find_lex $P1265, "$/"
@@ -12047,6 +12957,7 @@
     set $P1257, $P1266
   if_1258_end:
     $P1271 = $P1256."!make"($P1257)
+.annotate 'line', 342
     .return ($P1271)
   control_1243:
     .local pmc exception 
@@ -12058,17 +12969,19 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<x>"  :subid("75_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "backslash:sym<x>"  :subid("75_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1276
-.annotate 'line', 0
+.annotate 'line', 351
     new $P1275, 'ExceptionHandler'
     set_addr $P1275, control_1274
     $P1275."handle_types"(.CONTROL_RETURN)
     push_eh $P1275
     .lex "self", self
     .lex "$/", param_1276
+.annotate 'line', 352
     new $P1277, "Undef"
     .lex "$hexlit", $P1277
+.annotate 'line', 353
     get_hll_global $P1278, ["HLL";"Actions"], "ints_to_string"
     find_lex $P1281, "$/"
     unless_null $P1281, vivify_314
@@ -12098,6 +13011,7 @@
   unless_1280_end:
     $P1286 = $P1278($P1279)
     store_lex "$hexlit", $P1286
+.annotate 'line', 354
     find_lex $P1287, "$/"
     find_lex $P1290, "$/"
     unless_null $P1290, vivify_319
@@ -12110,13 +13024,16 @@
     set $S1292, $P1291
     iseq $I1293, $S1292, "X"
     if $I1293, if_1289
+.annotate 'line', 357
     get_hll_global $P1298, ["PAST"], "Regex"
     find_lex $P1299, "$hexlit"
     find_lex $P1300, "$/"
     $P1301 = $P1298."new"($P1299, "literal" :named("pasttype"), $P1300 :named("node"))
     set $P1288, $P1301
+.annotate 'line', 354
     goto if_1289_end
   if_1289:
+.annotate 'line', 355
     get_hll_global $P1294, ["PAST"], "Regex"
     find_lex $P1295, "$hexlit"
     find_lex $P1296, "$/"
@@ -12124,6 +13041,7 @@
     set $P1288, $P1297
   if_1289_end:
     $P1302 = $P1287."!make"($P1288)
+.annotate 'line', 351
     .return ($P1302)
   control_1274:
     .local pmc exception 
@@ -12135,15 +13053,16 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<c>"  :subid("76_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "backslash:sym<c>"  :subid("76_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1307
-.annotate 'line', 0
+.annotate 'line', 360
     new $P1306, 'ExceptionHandler'
     set_addr $P1306, control_1305
     $P1306."handle_types"(.CONTROL_RETURN)
     push_eh $P1306
     .lex "self", self
     .lex "$/", param_1307
+.annotate 'line', 361
     find_lex $P1308, "$/"
     get_hll_global $P1309, ["PAST"], "Regex"
     find_lex $P1310, "$/"
@@ -12158,6 +13077,7 @@
     find_lex $P1313, "$/"
     $P1314 = $P1309."new"($P1312, "literal" :named("pasttype"), $P1313 :named("node"))
     $P1315 = $P1308."!make"($P1314)
+.annotate 'line', 360
     .return ($P1315)
   control_1305:
     .local pmc exception 
@@ -12169,15 +13089,16 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<misc>"  :subid("77_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "backslash:sym<misc>"  :subid("77_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1320
-.annotate 'line', 0
+.annotate 'line', 364
     new $P1319, 'ExceptionHandler'
     set_addr $P1319, control_1318
     $P1319."handle_types"(.CONTROL_RETURN)
     push_eh $P1319
     .lex "self", self
     .lex "$/", param_1320
+.annotate 'line', 365
     new $P1321, "Undef"
     .lex "$past", $P1321
     get_hll_global $P1322, ["PAST"], "Regex"
@@ -12186,9 +13107,11 @@
     find_lex $P1325, "$/"
     $P1326 = $P1322."new"($S1324, "literal" :named("pasttype"), $P1325 :named("node"))
     store_lex "$past", $P1326
+.annotate 'line', 366
     find_lex $P1327, "$/"
     find_lex $P1328, "$past"
     $P1329 = $P1327."!make"($P1328)
+.annotate 'line', 364
     .return ($P1329)
   control_1318:
     .local pmc exception 
@@ -12200,18 +13123,21 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<?>"  :subid("78_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "assertion:sym<?>"  :subid("78_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1334
-.annotate 'line', 0
+.annotate 'line', 370
     new $P1333, 'ExceptionHandler'
     set_addr $P1333, control_1332
     $P1333."handle_types"(.CONTROL_RETURN)
     push_eh $P1333
     .lex "self", self
     .lex "$/", param_1334
+.annotate 'line', 371
     new $P1335, "Undef"
     .lex "$past", $P1335
+.annotate 'line', 370
     find_lex $P1336, "$past"
+.annotate 'line', 372
     find_lex $P1338, "$/"
     unless_null $P1338, vivify_323
     $P1338 = root_new ['parrot';'Hash']
@@ -12221,11 +13147,13 @@
     new $P1339, "Undef"
   vivify_324:
     if $P1339, if_1337
+.annotate 'line', 376
     new $P1344, "Integer"
     assign $P1344, 0
     store_lex "$past", $P1344
     goto if_1337_end
   if_1337:
+.annotate 'line', 373
     find_lex $P1340, "$/"
     unless_null $P1340, vivify_325
     $P1340 = root_new ['parrot';'Hash']
@@ -12236,12 +13164,15 @@
   vivify_326:
     $P1342 = $P1341."ast"()
     store_lex "$past", $P1342
+.annotate 'line', 374
     find_lex $P1343, "$past"
     $P1343."subtype"("zerowidth")
   if_1337_end:
+.annotate 'line', 377
     find_lex $P1345, "$/"
     find_lex $P1346, "$past"
     $P1347 = $P1345."!make"($P1346)
+.annotate 'line', 370
     .return ($P1347)
   control_1332:
     .local pmc exception 
@@ -12253,18 +13184,21 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<!>"  :subid("79_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "assertion:sym<!>"  :subid("79_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1352
-.annotate 'line', 0
+.annotate 'line', 380
     new $P1351, 'ExceptionHandler'
     set_addr $P1351, control_1350
     $P1351."handle_types"(.CONTROL_RETURN)
     push_eh $P1351
     .lex "self", self
     .lex "$/", param_1352
+.annotate 'line', 381
     new $P1353, "Undef"
     .lex "$past", $P1353
+.annotate 'line', 380
     find_lex $P1354, "$past"
+.annotate 'line', 382
     find_lex $P1356, "$/"
     unless_null $P1356, vivify_327
     $P1356 = root_new ['parrot';'Hash']
@@ -12274,12 +13208,15 @@
     new $P1357, "Undef"
   vivify_328:
     if $P1357, if_1355
+.annotate 'line', 388
     get_hll_global $P1366, ["PAST"], "Regex"
     find_lex $P1367, "$/"
     $P1368 = $P1366."new"("anchor" :named("pasttype"), "fail" :named("subtype"), $P1367 :named("node"))
     store_lex "$past", $P1368
+.annotate 'line', 387
     goto if_1355_end
   if_1355:
+.annotate 'line', 383
     find_lex $P1358, "$/"
     unless_null $P1358, vivify_329
     $P1358 = root_new ['parrot';'Hash']
@@ -12290,17 +13227,21 @@
   vivify_330:
     $P1360 = $P1359."ast"()
     store_lex "$past", $P1360
+.annotate 'line', 384
     find_lex $P1361, "$past"
     find_lex $P1362, "$past"
     $P1363 = $P1362."negate"()
     isfalse $I1364, $P1363
     $P1361."negate"($I1364)
+.annotate 'line', 385
     find_lex $P1365, "$past"
     $P1365."subtype"("zerowidth")
   if_1355_end:
+.annotate 'line', 390
     find_lex $P1369, "$/"
     find_lex $P1370, "$past"
     $P1371 = $P1369."!make"($P1370)
+.annotate 'line', 380
     .return ($P1371)
   control_1350:
     .local pmc exception 
@@ -12312,15 +13253,16 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<method>"  :subid("80_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "assertion:sym<method>"  :subid("80_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1376
-.annotate 'line', 0
+.annotate 'line', 393
     new $P1375, 'ExceptionHandler'
     set_addr $P1375, control_1374
     $P1375."handle_types"(.CONTROL_RETURN)
     push_eh $P1375
     .lex "self", self
     .lex "$/", param_1376
+.annotate 'line', 394
     new $P1377, "Undef"
     .lex "$past", $P1377
     find_lex $P1378, "$/"
@@ -12333,13 +13275,17 @@
   vivify_332:
     $P1380 = $P1379."ast"()
     store_lex "$past", $P1380
+.annotate 'line', 395
     find_lex $P1381, "$past"
     $P1381."subtype"("method")
+.annotate 'line', 396
     find_lex $P1382, "$past"
     $P1382."name"("")
+.annotate 'line', 397
     find_lex $P1383, "$/"
     find_lex $P1384, "$past"
     $P1385 = $P1383."!make"($P1384)
+.annotate 'line', 393
     .return ($P1385)
   control_1374:
     .local pmc exception 
@@ -12351,12 +13297,12 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<name>"  :subid("81_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "assertion:sym<name>"  :subid("81_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1390
-.annotate 'line', 0
-    .const 'Sub' $P1447 = "83_1283975944.26638" 
+.annotate 'line', 400
+    .const 'Sub' $P1447 = "83_1284728474.62745" 
     capture_lex $P1447
-    .const 'Sub' $P1413 = "82_1283975944.26638" 
+    .const 'Sub' $P1413 = "82_1284728474.62745" 
     capture_lex $P1413
     new $P1389, 'ExceptionHandler'
     set_addr $P1389, control_1388
@@ -12364,10 +13310,13 @@
     push_eh $P1389
     .lex "self", self
     .lex "$/", param_1390
+.annotate 'line', 401
     new $P1391, "Undef"
     .lex "$name", $P1391
+.annotate 'line', 402
     new $P1392, "Undef"
     .lex "$past", $P1392
+.annotate 'line', 401
     find_lex $P1393, "$/"
     unless_null $P1393, vivify_333
     $P1393 = root_new ['parrot';'Hash']
@@ -12381,6 +13330,7 @@
     set $P1396, $S1395
     store_lex "$name", $P1396
     find_lex $P1397, "$past"
+.annotate 'line', 403
     find_lex $P1399, "$/"
     unless_null $P1399, vivify_335
     $P1399 = root_new ['parrot';'Hash']
@@ -12390,14 +13340,17 @@
     new $P1400, "Undef"
   vivify_336:
     if $P1400, if_1398
+.annotate 'line', 407
     find_lex $P1409, "$name"
     set $S1410, $P1409
     iseq $I1411, $S1410, "sym"
     if $I1411, if_1408
+.annotate 'line', 423
     find_lex $P1423, "self"
     find_lex $P1424, "$/"
     $P1425 = $P1423."named_assertion"($P1424)
     store_lex "$past", $P1425
+.annotate 'line', 424
     find_lex $P1427, "$/"
     unless_null $P1427, vivify_337
     $P1427 = root_new ['parrot';'Hash']
@@ -12407,6 +13360,7 @@
     new $P1428, "Undef"
   vivify_338:
     if $P1428, if_1426
+.annotate 'line', 427
     find_lex $P1436, "$/"
     unless_null $P1436, vivify_339
     $P1436 = root_new ['parrot';'Hash']
@@ -12416,6 +13370,7 @@
     new $P1437, "Undef"
   vivify_340:
     unless $P1437, if_1435_end
+.annotate 'line', 428
     find_lex $P1439, "$/"
     unless_null $P1439, vivify_341
     $P1439 = root_new ['parrot';'Hash']
@@ -12441,7 +13396,7 @@
     unless $P1438, loop1452_done
     shift $P1445, $P1438
   loop1452_redo:
-    .const 'Sub' $P1447 = "83_1283975944.26638" 
+    .const 'Sub' $P1447 = "83_1284728474.62745" 
     capture_lex $P1447
     $P1447($P1445)
   loop1452_next:
@@ -12456,8 +13411,10 @@
     pop_eh 
   for_undef_344:
   if_1435_end:
+.annotate 'line', 427
     goto if_1426_end
   if_1426:
+.annotate 'line', 425
     find_lex $P1429, "$past"
     find_lex $P1430, "$/"
     unless_null $P1430, vivify_345
@@ -12475,14 +13432,17 @@
     $P1434 = "buildsub"($P1433)
     $P1429."push"($P1434)
   if_1426_end:
+.annotate 'line', 422
     goto if_1408_end
   if_1408:
-    .const 'Sub' $P1413 = "82_1283975944.26638" 
+.annotate 'line', 407
+    .const 'Sub' $P1413 = "82_1284728474.62745" 
     capture_lex $P1413
     $P1413()
   if_1408_end:
     goto if_1398_end
   if_1398:
+.annotate 'line', 404
     find_lex $P1401, "$/"
     unless_null $P1401, vivify_348
     $P1401 = root_new ['parrot';'Hash']
@@ -12497,14 +13457,17 @@
   vivify_350:
     $P1404 = $P1403."ast"()
     store_lex "$past", $P1404
+.annotate 'line', 405
     find_lex $P1405, "self"
     find_lex $P1406, "$past"
     find_lex $P1407, "$name"
     $P1405."subrule_alias"($P1406, $P1407)
   if_1398_end:
+.annotate 'line', 431
     find_lex $P1455, "$/"
     find_lex $P1456, "$past"
     $P1457 = $P1455."!make"($P1456)
+.annotate 'line', 400
     .return ($P1457)
   control_1388:
     .local pmc exception 
@@ -12515,9 +13478,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1446"  :anon :subid("83_1283975944.26638") :outer("81_1283975944.26638")
+.sub "_block1446"  :anon :subid("83_1284728474.62745") :outer("81_1284728474.62745")
     .param pmc param_1448
-.annotate 'line', 0
+.annotate 'line', 428
     .lex "$_", param_1448
     find_lex $P1449, "$past"
     find_lex $P1450, "$_"
@@ -12527,8 +13490,8 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1412"  :anon :subid("82_1283975944.26638") :outer("81_1283975944.26638")
-.annotate 'line', 0
+.sub "_block1412"  :anon :subid("82_1284728474.62745") :outer("81_1284728474.62745")
+.annotate 'line', 408
     new $P1414, "Undef"
     .lex "$regexsym", $P1414
 
@@ -12541,24 +13504,28 @@
             $P1415 = box $S0
         
     store_lex "$regexsym", $P1415
+.annotate 'line', 417
     get_hll_global $P1416, ["PAST"], "Regex"
+.annotate 'line', 418
     get_hll_global $P1417, ["PAST"], "Regex"
     find_lex $P1418, "$regexsym"
     $P1419 = $P1417."new"($P1418, "literal" :named("pasttype"))
     find_lex $P1420, "$name"
     find_lex $P1421, "$/"
     $P1422 = $P1416."new"($P1419, $P1420 :named("name"), "subcapture" :named("pasttype"), $P1421 :named("node"))
+.annotate 'line', 417
     store_lex "$past", $P1422
+.annotate 'line', 407
     .return ($P1422)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<[>"  :subid("84_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "assertion:sym<[>"  :subid("84_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1462
-.annotate 'line', 0
-    .const 'Sub' $P1497 = "85_1283975944.26638" 
+.annotate 'line', 434
+    .const 'Sub' $P1497 = "85_1284728474.62745" 
     capture_lex $P1497
     new $P1461, 'ExceptionHandler'
     set_addr $P1461, control_1460
@@ -12566,14 +13533,19 @@
     push_eh $P1461
     .lex "self", self
     .lex "$/", param_1462
+.annotate 'line', 435
     new $P1463, "Undef"
     .lex "$clist", $P1463
+.annotate 'line', 436
     new $P1464, "Undef"
     .lex "$past", $P1464
+.annotate 'line', 445
     new $P1465, "Undef"
     .lex "$i", $P1465
+.annotate 'line', 446
     new $P1466, "Undef"
     .lex "$n", $P1466
+.annotate 'line', 435
     find_lex $P1467, "$/"
     unless_null $P1467, vivify_351
     $P1467 = root_new ['parrot';'Hash']
@@ -12583,6 +13555,7 @@
     new $P1468, "Undef"
   vivify_352:
     store_lex "$clist", $P1468
+.annotate 'line', 436
     find_lex $P1469, "$clist"
     unless_null $P1469, vivify_353
     $P1469 = root_new ['parrot';'ResizablePMCArray']
@@ -12593,6 +13566,7 @@
   vivify_354:
     $P1471 = $P1470."ast"()
     store_lex "$past", $P1471
+.annotate 'line', 437
     find_lex $P1475, "$past"
     $P1476 = $P1475."negate"()
     if $P1476, if_1474
@@ -12606,24 +13580,31 @@
     set $P1473, $I1479
   if_1474_end:
     unless $P1473, if_1472_end
+.annotate 'line', 438
     find_lex $P1480, "$past"
     $P1480."subtype"("zerowidth")
+.annotate 'line', 439
     get_hll_global $P1481, ["PAST"], "Regex"
     find_lex $P1482, "$past"
+.annotate 'line', 441
     get_hll_global $P1483, ["PAST"], "Regex"
     $P1484 = $P1483."new"("charclass" :named("pasttype"), "." :named("subtype"))
     find_lex $P1485, "$/"
     $P1486 = $P1481."new"($P1482, $P1484, $P1485 :named("node"))
+.annotate 'line', 439
     store_lex "$past", $P1486
   if_1472_end:
+.annotate 'line', 445
     new $P1487, "Integer"
     assign $P1487, 1
     store_lex "$i", $P1487
+.annotate 'line', 446
     find_lex $P1488, "$clist"
     set $N1489, $P1488
     new $P1490, 'Float'
     set $P1490, $N1489
     store_lex "$n", $P1490
+.annotate 'line', 447
     new $P1521, 'ExceptionHandler'
     set_addr $P1521, loop1520_handler
     $P1521."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
@@ -12636,7 +13617,7 @@
     islt $I1495, $N1492, $N1494
     unless $I1495, loop1520_done
   loop1520_redo:
-    .const 'Sub' $P1497 = "85_1283975944.26638" 
+    .const 'Sub' $P1497 = "85_1284728474.62745" 
     capture_lex $P1497
     $P1497()
   loop1520_next:
@@ -12649,9 +13630,11 @@
     eq $P1522, .CONTROL_LOOP_REDO, loop1520_redo
   loop1520_done:
     pop_eh 
+.annotate 'line', 458
     find_lex $P1523, "$/"
     find_lex $P1524, "$past"
     $P1525 = $P1523."!make"($P1524)
+.annotate 'line', 434
     .return ($P1525)
   control_1460:
     .local pmc exception 
@@ -12662,8 +13645,8 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1496"  :anon :subid("85_1283975944.26638") :outer("84_1283975944.26638")
-.annotate 'line', 0
+.sub "_block1496"  :anon :subid("85_1284728474.62745") :outer("84_1284728474.62745")
+.annotate 'line', 448
     new $P1498, "Undef"
     .lex "$ast", $P1498
     find_lex $P1499, "$i"
@@ -12678,19 +13661,24 @@
   vivify_356:
     $P1503 = $P1502."ast"()
     store_lex "$ast", $P1503
+.annotate 'line', 449
     find_lex $P1505, "$ast"
     $P1506 = $P1505."negate"()
     if $P1506, if_1504
+.annotate 'line', 454
     get_hll_global $P1513, ["PAST"], "Regex"
     find_lex $P1514, "$past"
     find_lex $P1515, "$ast"
     find_lex $P1516, "$/"
     $P1517 = $P1513."new"($P1514, $P1515, "alt" :named("pasttype"), $P1516 :named("node"))
     store_lex "$past", $P1517
+.annotate 'line', 453
     goto if_1504_end
   if_1504:
+.annotate 'line', 450
     find_lex $P1507, "$ast"
     $P1507."subtype"("zerowidth")
+.annotate 'line', 451
     get_hll_global $P1508, ["PAST"], "Regex"
     find_lex $P1509, "$ast"
     find_lex $P1510, "$past"
@@ -12698,21 +13686,23 @@
     $P1512 = $P1508."new"($P1509, $P1510, "concat" :named("pasttype"), $P1511 :named("node"))
     store_lex "$past", $P1512
   if_1504_end:
+.annotate 'line', 456
     find_lex $P1518, "$i"
     add $P1519, $P1518, 1
     store_lex "$i", $P1519
+.annotate 'line', 447
     .return ($P1519)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "cclass_elem"  :subid("86_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "cclass_elem"  :subid("86_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1530
-.annotate 'line', 0
-    .const 'Sub' $P1555 = "88_1283975944.26638" 
+.annotate 'line', 461
+    .const 'Sub' $P1555 = "88_1284728474.62745" 
     capture_lex $P1555
-    .const 'Sub' $P1539 = "87_1283975944.26638" 
+    .const 'Sub' $P1539 = "87_1284728474.62745" 
     capture_lex $P1539
     new $P1529, 'ExceptionHandler'
     set_addr $P1529, control_1528
@@ -12720,14 +13710,18 @@
     push_eh $P1529
     .lex "self", self
     .lex "$/", param_1530
+.annotate 'line', 462
     new $P1531, "Undef"
     .lex "$str", $P1531
+.annotate 'line', 463
     new $P1532, "Undef"
     .lex "$past", $P1532
+.annotate 'line', 462
     new $P1533, "String"
     assign $P1533, ""
     store_lex "$str", $P1533
     find_lex $P1534, "$past"
+.annotate 'line', 464
     find_lex $P1536, "$/"
     unless_null $P1536, vivify_357
     $P1536 = root_new ['parrot';'Hash']
@@ -12737,6 +13731,7 @@
     new $P1537, "Undef"
   vivify_358:
     if $P1537, if_1535
+.annotate 'line', 468
     find_lex $P1550, "$/"
     unless_null $P1550, vivify_359
     $P1550 = root_new ['parrot';'Hash']
@@ -12756,7 +13751,7 @@
     unless $P1549, loop1580_done
     shift $P1553, $P1549
   loop1580_redo:
-    .const 'Sub' $P1555 = "88_1283975944.26638" 
+    .const 'Sub' $P1555 = "88_1284728474.62745" 
     capture_lex $P1555
     $P1555($P1553)
   loop1580_next:
@@ -12770,17 +13765,21 @@
   loop1580_done:
     pop_eh 
   for_undef_361:
+.annotate 'line', 493
     get_hll_global $P1583, ["PAST"], "Regex"
     find_lex $P1584, "$str"
     find_lex $P1585, "$/"
     $P1586 = $P1583."new"($P1584, "enumcharlist" :named("pasttype"), $P1585 :named("node"))
     store_lex "$past", $P1586
+.annotate 'line', 467
     goto if_1535_end
   if_1535:
-    .const 'Sub' $P1539 = "87_1283975944.26638" 
+.annotate 'line', 464
+    .const 'Sub' $P1539 = "87_1284728474.62745" 
     capture_lex $P1539
     $P1539()
   if_1535_end:
+.annotate 'line', 495
     find_lex $P1587, "$past"
     find_lex $P1588, "$/"
     unless_null $P1588, vivify_373
@@ -12793,9 +13792,11 @@
     set $S1590, $P1589
     iseq $I1591, $S1590, "-"
     $P1587."negate"($I1591)
+.annotate 'line', 496
     find_lex $P1592, "$/"
     find_lex $P1593, "$past"
     $P1594 = $P1592."!make"($P1593)
+.annotate 'line', 461
     .return ($P1594)
   control_1528:
     .local pmc exception 
@@ -12806,12 +13807,13 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1554"  :anon :subid("88_1283975944.26638") :outer("86_1283975944.26638")
+.sub "_block1554"  :anon :subid("88_1284728474.62745") :outer("86_1284728474.62745")
     .param pmc param_1556
-.annotate 'line', 0
-    .const 'Sub' $P1562 = "89_1283975944.26638" 
+.annotate 'line', 468
+    .const 'Sub' $P1562 = "89_1284728474.62745" 
     capture_lex $P1562
     .lex "$_", param_1556
+.annotate 'line', 469
     find_lex $P1559, "$_"
     unless_null $P1559, vivify_362
     $P1559 = root_new ['parrot';'ResizablePMCArray']
@@ -12821,6 +13823,7 @@
     new $P1560, "Undef"
   vivify_363:
     if $P1560, if_1558
+.annotate 'line', 491
     find_lex $P1576, "$str"
     find_lex $P1577, "$_"
     unless_null $P1577, vivify_364
@@ -12833,26 +13836,31 @@
     concat $P1579, $P1576, $P1578
     store_lex "$str", $P1579
     set $P1557, $P1579
+.annotate 'line', 469
     goto if_1558_end
   if_1558:
-    .const 'Sub' $P1562 = "89_1283975944.26638" 
+    .const 'Sub' $P1562 = "89_1284728474.62745" 
     capture_lex $P1562
     $P1575 = $P1562()
     set $P1557, $P1575
   if_1558_end:
+.annotate 'line', 468
     .return ($P1557)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1561"  :anon :subid("89_1283975944.26638") :outer("88_1283975944.26638")
-.annotate 'line', 0
+.sub "_block1561"  :anon :subid("89_1284728474.62745") :outer("88_1284728474.62745")
+.annotate 'line', 470
     new $P1563, "Undef"
     .lex "$a", $P1563
+.annotate 'line', 471
     new $P1564, "Undef"
     .lex "$b", $P1564
+.annotate 'line', 472
     new $P1565, "Undef"
     .lex "$c", $P1565
+.annotate 'line', 470
     find_lex $P1566, "$_"
     unless_null $P1566, vivify_366
     $P1566 = root_new ['parrot';'ResizablePMCArray']
@@ -12862,6 +13870,7 @@
     new $P1567, "Undef"
   vivify_367:
     store_lex "$a", $P1567
+.annotate 'line', 471
     find_lex $P1568, "$_"
     unless_null $P1568, vivify_368
     $P1568 = root_new ['parrot';'ResizablePMCArray']
@@ -12875,6 +13884,7 @@
     new $P1570, "Undef"
   vivify_370:
     store_lex "$b", $P1570
+.annotate 'line', 472
 
                              $P0 = find_lex '$a'
                              $S0 = $P0
@@ -12893,17 +13903,19 @@
                              $P1571 = box $S2
                          
     store_lex "$c", $P1571
+.annotate 'line', 489
     find_lex $P1572, "$str"
     find_lex $P1573, "$c"
     concat $P1574, $P1572, $P1573
     store_lex "$str", $P1574
+.annotate 'line', 469
     .return ($P1574)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1538"  :anon :subid("87_1283975944.26638") :outer("86_1283975944.26638")
-.annotate 'line', 0
+.sub "_block1538"  :anon :subid("87_1284728474.62745") :outer("86_1284728474.62745")
+.annotate 'line', 465
     new $P1540, "Undef"
     .lex "$name", $P1540
     find_lex $P1541, "$/"
@@ -12918,30 +13930,35 @@
     new $P1544, 'String'
     set $P1544, $S1543
     store_lex "$name", $P1544
+.annotate 'line', 466
     get_hll_global $P1545, ["PAST"], "Regex"
     find_lex $P1546, "$name"
     find_lex $P1547, "$/"
     $P1548 = $P1545."new"($P1546, "subrule" :named("pasttype"), "method" :named("subtype"), $P1547 :named("node"))
     store_lex "$past", $P1548
+.annotate 'line', 464
     .return ($P1548)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "mod_internal"  :subid("90_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "mod_internal"  :subid("90_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1599
-.annotate 'line', 0
+.annotate 'line', 499
     new $P1598, 'ExceptionHandler'
     set_addr $P1598, control_1597
     $P1598."handle_types"(.CONTROL_RETURN)
     push_eh $P1598
     .lex "self", self
     .lex "$/", param_1599
+.annotate 'line', 500
     $P1600 = root_new ['parrot';'Hash']
     .lex "%mods", $P1600
+.annotate 'line', 501
     new $P1601, "Undef"
     .lex "$n", $P1601
+.annotate 'line', 500
     get_global $P1602, "@MODIFIERS"
     unless_null $P1602, vivify_375
     $P1602 = root_new ['parrot';'ResizablePMCArray']
@@ -12951,6 +13968,7 @@
     new $P1603, "Undef"
   vivify_376:
     store_lex "%mods", $P1603
+.annotate 'line', 501
     find_lex $P1606, "$/"
     unless_null $P1606, vivify_377
     $P1606 = root_new ['parrot';'Hash']
@@ -12988,6 +14006,7 @@
     set $P1604, $N1614
   if_1605_end:
     store_lex "$n", $P1604
+.annotate 'line', 502
     find_lex $P1616, "$n"
     find_lex $P1617, "$/"
     unless_null $P1617, vivify_383
@@ -13008,8 +14027,10 @@
     store_lex "%mods", $P1621
   vivify_386:
     set $P1621[$S1620], $P1616
+.annotate 'line', 503
     find_lex $P1622, "$/"
     $P1623 = $P1622."!make"(0)
+.annotate 'line', 499
     .return ($P1623)
   control_1597:
     .local pmc exception 
@@ -13021,10 +14042,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "subrule_alias"  :subid("91_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "subrule_alias"  :subid("91_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1631
     .param pmc param_1632
-.annotate 'line', 0
+.annotate 'line', 597
     new $P1630, 'ExceptionHandler'
     set_addr $P1630, control_1629
     $P1630."handle_types"(.CONTROL_RETURN)
@@ -13032,15 +14053,18 @@
     .lex "self", self
     .lex "$past", param_1631
     .lex "$name", param_1632
+.annotate 'line', 598
     find_lex $P1634, "$past"
     $S1635 = $P1634."name"()
     isgt $I1636, $S1635, ""
     if $I1636, if_1633
+.annotate 'line', 599
     find_lex $P1643, "$past"
     find_lex $P1644, "$name"
     $P1643."name"($P1644)
     goto if_1633_end
   if_1633:
+.annotate 'line', 598
     find_lex $P1637, "$past"
     find_lex $P1638, "$name"
     concat $P1639, $P1638, "="
@@ -13049,8 +14073,10 @@
     concat $P1642, $P1639, $S1641
     $P1637."name"($P1642)
   if_1633_end:
+.annotate 'line', 600
     find_lex $P1645, "$past"
     $P1646 = $P1645."subtype"("capture")
+.annotate 'line', 597
     .return ($P1646)
   control_1629:
     .local pmc exception 
@@ -13062,19 +14088,22 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "named_assertion"  :subid("92_1283975944.26638") :method :outer("11_1283975944.26638")
+.sub "named_assertion"  :subid("92_1284728474.62745") :method :outer("11_1284728474.62745")
     .param pmc param_1651
-.annotate 'line', 0
+.annotate 'line', 603
     new $P1650, 'ExceptionHandler'
     set_addr $P1650, control_1649
     $P1650."handle_types"(.CONTROL_RETURN)
     push_eh $P1650
     .lex "self", self
     .lex "$/", param_1651
+.annotate 'line', 604
     new $P1652, "Undef"
     .lex "$name", $P1652
+.annotate 'line', 605
     new $P1653, "Undef"
     .lex "$past", $P1653
+.annotate 'line', 604
     find_lex $P1654, "$/"
     unless_null $P1654, vivify_387
     $P1654 = root_new ['parrot';'Hash']
@@ -13087,6 +14116,7 @@
     new $P1657, 'String'
     set $P1657, $S1656
     store_lex "$name", $P1657
+.annotate 'line', 605
     get_hll_global $P1658, ["PAST"], "Regex"
     find_lex $P1659, "$name"
     find_lex $P1660, "$name"
@@ -13094,6 +14124,7 @@
     $P1662 = $P1658."new"($P1659, $P1660 :named("name"), "subrule" :named("pasttype"), "capture" :named("subtype"), $P1661 :named("node"))
     store_lex "$past", $P1662
     find_lex $P1663, "$past"
+.annotate 'line', 603
     .return ($P1663)
   control_1649:
     .local pmc exception 
@@ -13104,18 +14135,18 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1666" :load :anon :subid("93_1283975944.26638")
-.annotate 'line', 0
-    .const 'Sub' $P1668 = "11_1283975944.26638" 
+.sub "_block1666" :load :anon :subid("93_1284728474.62745")
+.annotate 'line', 4
+    .const 'Sub' $P1668 = "11_1284728474.62745" 
     $P1669 = $P1668()
     .return ($P1669)
 .end
 
 
 .namespace []
-.sub "_block1672" :load :anon :subid("94_1283975944.26638")
-.annotate 'line', 0
-    .const 'Sub' $P1674 = "10_1283975944.26638" 
+.sub "_block1672" :load :anon :subid("94_1284728474.62745")
+.annotate 'line', 1
+    .const 'Sub' $P1674 = "10_1284728474.62745" 
     $P1675 = $P1674()
     .return ($P1675)
 .end

Modified: branches/gc_massacre/ext/nqp-rx/src/stage0/Regex-s0.pir
==============================================================================
--- branches/gc_massacre/ext/nqp-rx/src/stage0/Regex-s0.pir	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/ext/nqp-rx/src/stage0/Regex-s0.pir	Wed Sep 22 10:45:52 2010	(r49243)
@@ -3248,7 +3248,9 @@
 
     ops.'push_pirop'('inline', negate, subtype, 'inline'=>'  # rx enumcharlist negate=%0 %1')
 
+    if zerowidth goto skip_zero_1 
     ops.'push_pirop'('ge', pos, eos, fail)
+  skip_zero_1:
     ops.'push_pirop'('sub', '$I10', pos, off)
     ops.'push_pirop'('substr', '$S10', tgt, '$I10', 1)
     ops.'push_pirop'('index', '$I11', charlist, '$S10')

Modified: branches/gc_massacre/include/parrot/context.h
==============================================================================
--- branches/gc_massacre/include/parrot/context.h	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/include/parrot/context.h	Wed Sep 22 10:45:52 2010	(r49243)
@@ -134,14 +134,6 @@
 
 PARROT_EXPORT
 PARROT_PURE_FUNCTION
-PARROT_CAN_RETURN_NULL
-INTVAL Parrot_pcc_get_int_constant_func(SHIM_INTERP,
-    ARGIN(PMC *ctx),
-    INTVAL idx)
-        __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_PURE_FUNCTION
 PARROT_CANNOT_RETURN_NULL
 PMC* Parrot_pcc_get_lex_pad_func(SHIM_INTERP, ARGIN(PMC *ctx))
         __attribute__nonnull__(2);
@@ -339,9 +331,6 @@
        PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_HLL_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(ctx))
-#define ASSERT_ARGS_Parrot_pcc_get_int_constant_func \
-     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_lex_pad_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_namespace_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -452,7 +441,6 @@
 #  define Parrot_pcc_get_signature(i, c) (CONTEXT_STRUCT(c)->current_sig)
 #  define Parrot_pcc_set_signature(i, c, value) (CONTEXT_STRUCT(c)->current_sig = (value))
 
-#  define Parrot_pcc_get_int_constant(i, c, idx) (CONTEXT_STRUCT(c)->constants[(idx)].u.integer)
 #  define Parrot_pcc_get_num_constant(i, c, idx) (CONTEXT_STRUCT(c)->constants[(idx)].u.number)
 #  define Parrot_pcc_get_string_constant(i, c, idx) (CONTEXT_STRUCT(c)->constants[(idx)].u.string)
 #  define Parrot_pcc_get_pmc_constant(i, c, idx) (CONTEXT_STRUCT(c)->constants[(idx)].u.key)
@@ -510,7 +498,6 @@
 #  define Parrot_pcc_get_signature(i, c) Parrot_pcc_get_signature_func((i), (c))
 #  define Parrot_pcc_set_signature(i, c, value) Parrot_pcc_set_signature_func((i), (c), (value))
 
-#  define Parrot_pcc_get_int_constant(i, c, idx) Parrot_pcc_get_int_constant_func((i), (c), (idx))
 #  define Parrot_pcc_get_num_constant(i, c, idx) Parrot_pcc_get_num_constant_func((i), (c), (idx))
 #  define Parrot_pcc_get_string_constant(i, c, idx) Parrot_pcc_get_string_constant_func((i), (c), (idx))
 #  define Parrot_pcc_get_pmc_constant(i, c, idx) Parrot_pcc_get_pmc_constant_func((i), (c), (idx))

Modified: branches/gc_massacre/include/parrot/gc_api.h
==============================================================================
--- branches/gc_massacre/include/parrot/gc_api.h	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/include/parrot/gc_api.h	Wed Sep 22 10:45:52 2010	(r49243)
@@ -33,6 +33,8 @@
 
 #define ALIGNED_STRING_SIZE(len) (((len) + sizeof (void*) + WORD_ALIGN_1) & WORD_ALIGN_MASK)
 
+#define GC_DYNAMIC_THRESHOLD_DEFAULT 25
+
 /* pool iteration */
 typedef enum {
     POOL_PMC    = 0x01,

Modified: branches/gc_massacre/include/parrot/hash.h
==============================================================================
--- branches/gc_massacre/include/parrot/hash.h	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/include/parrot/hash.h	Wed Sep 22 10:45:52 2010	(r49243)
@@ -72,7 +72,6 @@
 };
 
 /* Utility macros - use them, do not reinvent the wheel */
-#define parrot_hash_iterate parrot_hash_iterate_linear
 
 #define parrot_hash_iterate_linear(_hash, _code)                            \
 {                                                                           \
@@ -89,34 +88,28 @@
 
 #define parrot_hash_iterate_indexed(_hash, _code)                           \
 {                                                                           \
-    INTVAL _loc;                                                            \
-        if ((_hash)->entries){                                              \
-            for (_loc = 0; _loc <= (_hash)->mask; ++_loc) {                 \
-                HashBucket *_bucket = (_hash)->index[_loc];                 \
-                while (_bucket) {                                           \
-                    _code                                                   \
-                    _bucket = _bucket->next;                                \
-                }                                                           \
+    UINTVAL _loc;                                                           \
+    if ((_hash)->entries){                                                  \
+        for (_loc = 0; _loc <= (_hash)->mask; ++_loc) {                     \
+            HashBucket *_bucket = (_hash)->index[_loc];                     \
+            while (_bucket) {                                               \
+                _code                                                       \
+                _bucket = _bucket->next;                                    \
             }                                                               \
         }                                                                   \
+    }                                                                       \
 }
 
-#define parrot_hash_iterator_advance(_hash, _bucket, _loc)                  \
+#define parrot_hash_iterate(_hash, _code)                                   \
 {                                                                           \
-    if ((_hash)->entries) {                                                 \
-        /* Try to advance current bucket */                                 \
-        if ((_bucket))                                                      \
-            (_bucket) = (_bucket)->next;                                    \
-        while (!(_bucket)) {                                                \
-            /* If there is no more buckets */                               \
-            if ((_loc) == (INTVAL)(_hash)->mask+1)                          \
-                break;                                                      \
-            (_bucket) = (_hash)->index[(_loc)++];                           \
-        }                                                                   \
-    }                                                                       \
+    if ((_hash)->key_type == Hash_key_type_int                              \
+    ||  (_hash)->key_type == Hash_key_type_cstring                          \
+    ||  (_hash)->key_type == Hash_key_type_ptr)                             \
+        parrot_hash_iterate_indexed((_hash), _code)                         \
+    else                                                                    \
+        parrot_hash_iterate_linear((_hash), _code)                          \
 }
 
-
 typedef void (*value_free)(ARGFREE(void *));
 
 /* To avoid creating OrderedHashItem PMC we reuse FixedPMCArray PMC */

Added: branches/gc_massacre/include/parrot/imageio.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gc_massacre/include/parrot/imageio.h	Wed Sep 22 10:45:52 2010	(r49243)
@@ -0,0 +1,33 @@
+/* Copyright (C) 2001-2009, Parrot Foundation.
+ * $Id$
+ */
+#ifndef PARROT_IMAGEIO_H_GUARD
+#define PARROT_IMAGEIO_H_GUARD
+
+#define GROW_TO_16_BYTE_BOUNDARY(size) ((size) + ((size) % 16 ? 16 - (size) % 16 : 0))
+
+/* macros/constants to handle packing/unpacking of PMC IDs and flags
+ * the 2 LSBs are used for flags, all other bits are used for PMC ID
+ */
+#define PackID_new(id, flags)       (((UINTVAL)(id) * 4) | ((UINTVAL)(flags) & 3))
+#define PackID_get_PMCID(id)        ((UINTVAL)(id) / 4)
+#define PackID_set_PMCID(lv, id)    (lv) = PackID_new((id), PackID_get_FLAGS(lv))
+#define PackID_get_FLAGS(id)        ((UINTVAL)(id) & 3)
+#define PackID_set_FLAGS(lv, flags) (lv) = PackID_new(PackID_get_PMCID(lv), (flags))
+
+/* preallocate freeze image for aggregates with this estimation */
+#define FREEZE_BYTES_PER_ITEM 9
+
+enum {
+    enum_PackID_normal     = 0,
+    enum_PackID_seen       = 1,
+};
+
+#endif /* PARROT_IMAGEIO_H_GUARD */
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Modified: branches/gc_massacre/include/parrot/interpreter.h
==============================================================================
--- branches/gc_massacre/include/parrot/interpreter.h	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/include/parrot/interpreter.h	Wed Sep 22 10:45:52 2010	(r49243)
@@ -172,6 +172,8 @@
 
     struct GC_Subsystem *gc_sys;              /*functions and data specific
                                                   to current GC subsystem*/
+    UINTVAL gc_threshold;                     /* maximum percentage of memory
+                                                 wasted by GC */
 
     PMC *gc_registry;                         /* root set of registered PMCs */
 

Modified: branches/gc_massacre/include/parrot/longopt.h
==============================================================================
--- branches/gc_massacre/include/parrot/longopt.h	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/include/parrot/longopt.h	Wed Sep 22 10:45:52 2010	(r49243)
@@ -46,6 +46,7 @@
 #define OPT_PBC_OUTPUT     131
 #define OPT_RUNTIME_PREFIX 132
 #define OPT_HASH_SEED      133
+#define OPT_GC_THRESHOLD   134
 
 /* HEADERIZER BEGIN: src/longopt.c */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */

Modified: branches/gc_massacre/include/parrot/oplib.h
==============================================================================
--- branches/gc_massacre/include/parrot/oplib.h	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/include/parrot/oplib.h	Wed Sep 22 10:45:52 2010	(r49243)
@@ -24,14 +24,14 @@
 typedef struct op_lib_t {
     const char *name;
     const char *suffix;
-    int      core_type;
-    int      flags;
-    int      major_version;
-    int      minor_version;
-    int      patch_version;
-    size_t      op_count;
-    op_info_t * op_info_table;
-    op_func_t * op_func_table;
+    int         core_type;
+    int         flags;
+    int         major_version;
+    int         minor_version;
+    int         patch_version;
+    opcode_t    op_count;
+    op_info_t  *op_info_table;
+    op_func_t  *op_func_table;
     int (*_op_code)(PARROT_INTERP, const char * name, int full);
 } op_lib_t;
 

Modified: branches/gc_massacre/include/parrot/oplib/core_ops.h
==============================================================================
--- branches/gc_massacre/include/parrot/oplib/core_ops.h	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/include/parrot/oplib/core_ops.h	Wed Sep 22 10:45:52 2010	(r49243)
@@ -21,7 +21,7 @@
 #include "parrot/runcore_api.h"
 
 PARROT_EXPORT
-op_lib_t *Parrot_DynOp_core_2_7_0(PARROT_INTERP, long init);
+op_lib_t *Parrot_DynOp_core_2_8_0(PARROT_INTERP, long init);
 
  opcode_t * Parrot_end(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_noop(opcode_t *, PARROT_INTERP);

Modified: branches/gc_massacre/include/parrot/packfile.h
==============================================================================
--- branches/gc_massacre/include/parrot/packfile.h	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/include/parrot/packfile.h	Wed Sep 22 10:45:52 2010	(r49243)
@@ -170,7 +170,6 @@
 typedef struct PackFile_Constant {
     opcode_t type;
     union {
-        opcode_t  integer;
         FLOATVAL  number;
         STRING   *string;
         PMC      *key;

Modified: branches/gc_massacre/runtime/parrot/library/LWP/Protocol.pir
==============================================================================
--- branches/gc_massacre/runtime/parrot/library/LWP/Protocol.pir	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/runtime/parrot/library/LWP/Protocol.pir	Wed Sep 22 10:45:52 2010	(r49243)
@@ -476,6 +476,8 @@
     $S0 = _format_request(method, fullpath, request_headers)
     sock.'send'($S0)
 
+    .local pmc response
+    response = new ['HTTP';'Response']
     .local string content
     content = request.'content'()
     unless content goto L11
@@ -486,13 +488,18 @@
     unless $I0 < content_length goto L11
     $S0 = substr content, $I0, 8192
     $I1 = sock.'send'($S0)
+    if $I1 >= 0 goto L13
+    $P0 = box RC_INTERNAL_SERVER_ERROR
+    setattribute response, 'code', $P0
+    $P0 = box "I/O error"
+    setattribute response, 'message', $P0
+    .return (response)
+  L13:
     $I0 += $I1
     $N0 = $I0 / content_length
     goto L12
   L11:
 
-    .local pmc response
-    response = new ['HTTP';'Response']
     .local pmc buf
     buf = new 'StringBuilder'
     .local int header_length

Modified: branches/gc_massacre/runtime/parrot/library/distutils.pir
==============================================================================
--- branches/gc_massacre/runtime/parrot/library/distutils.pir	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/runtime/parrot/library/distutils.pir	Wed Sep 22 10:45:52 2010	(r49243)
@@ -1222,7 +1222,7 @@
 
 the key is the PMC name
 
-the value is an array of PMC pathname or a single PPC pathname
+the value is an array of PMC/C/H pathname or a single PMC pathname
 
 an array creates a PMC group
 
@@ -1260,24 +1260,52 @@
     .local pmc srcs
     srcs = hash[name]
     $I0 = does srcs, 'array'
-    unless $I0 goto L5
+    unless $I0 goto L3
+    .local pmc pmcs, includes
+    pmcs = new 'ResizableStringArray'
+    includes = new 'ResizableStringArray'
     $P1 = iter srcs
-  L3:
-    unless $P1 goto L4
+  L4:
+    unless $P1 goto L5
     .local string src
     src = shift $P1
+    .local string ext
+    $I0 = rindex(src, '.')
+    ext = substr src, $I0
+    unless ext == '.pmc' goto L6
+    push pmcs, src
+  L6:
+    unless ext == '.h' goto L4
+    push includes, src
+    goto L4
+  L5:
+    $P1 = iter srcs
+  L7:
+    unless $P1 goto L8
+    src = shift $P1
+    $I0 = rindex(src, '.')
+    ext = substr src, $I0
+    if ext == '.h' goto L7
     $S0 = _mk_path_gen_dynpmc(src, obj)
-    $I0 = newer($S0, src)
-    if $I0 goto L3
+    push includes, src
+    $I0 = newer($S0, includes)
+    $S1 = pop includes
+    if $I0 goto L7
+    if ext == '.c' goto L9
     __build_dynpmc(src, cflags)
-    goto L3
-  L4:
+    goto L7
+  L9:
+    __compile_cc($S0, src, cflags)
+    $S0 = ' ' . $S0
+    ldflags .= $S0
+    goto L7
+  L8:
     $S0 = _mk_path_dynpmc(name, load_ext)
     $I0 = newer($S0, srcs)
     if $I0 goto L1
-    __build_dynpmc_group(srcs, name, cflags, ldflags)
+    __build_dynpmc_group(pmcs, name, cflags, ldflags)
     goto L1
-  L5:
+  L3:
     src = srcs
     $S0 = _mk_path_dynpmc(name, load_ext)
     $I0 = newer($S0, src)
@@ -1458,8 +1486,7 @@
 .sub '_mk_path_gen_dynpmc' :anon
     .param string src
     .param string ext
-    $I0 = length src
-    $I0 -= 4
+    $I0 = rindex(src, '.')
     $S0 = substr src, 0, $I0
     $S0 .= ext
     unless ext == '.h' goto L1
@@ -1779,14 +1806,19 @@
     unless $P1 goto L4
     .local string src
     src = shift $P1
+    .local string ext
+    $I0 = rindex(src, '.')
+    ext = substr src, $I0
+    if ext == '.h' goto L3
+    $S0 = _mk_path_gen_dynpmc(src, obj)
+    unlink($S0, 1 :named('verbose'))
+    if ext == '.c' goto L3
     $S0 = _mk_path_gen_dynpmc(src, '.c')
     unlink($S0, 1 :named('verbose'))
     $S0 = _mk_path_gen_dynpmc(src, '.h')
     unlink($S0, 1 :named('verbose'))
     $S0 = _mk_path_gen_dynpmc(src, '.dump')
     unlink($S0, 1 :named('verbose'))
-    $S0 = _mk_path_gen_dynpmc(src, obj)
-    unlink($S0, 1 :named('verbose'))
     goto L3
   L4:
     src = srcs[0]

Modified: branches/gc_massacre/runtime/parrot/library/osutils.pir
==============================================================================
--- branches/gc_massacre/runtime/parrot/library/osutils.pir	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/runtime/parrot/library/osutils.pir	Wed Sep 22 10:45:52 2010	(r49243)
@@ -851,6 +851,29 @@
     .return (volume, directories, file)
 .end
 
+=item rindex
+
+=cut
+
+.sub 'rindex'
+    .param string str
+    .param string sstr
+    .param int pos              :optional
+    .param int has_pos          :opt_flag
+    if has_pos goto L1
+    pos = 0
+  L1:
+    $I0 = index str, sstr, pos
+    unless $I0 < 0 goto L2
+    .return ($I0)
+  L2:
+    $I1 = $I0
+    inc $I0
+    $I0 = index str, sstr, $I0
+    unless $I0 < 0 goto L2
+    .return ($I1)
+.end
+
 =back
 
 =head1 AUTHOR

Modified: branches/gc_massacre/src/call/context_accessors.c
==============================================================================
--- branches/gc_massacre/src/call/context_accessors.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/call/context_accessors.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -691,9 +691,6 @@
 
 /*
 
-=item C<INTVAL Parrot_pcc_get_int_constant_func(PARROT_INTERP, PMC *ctx, INTVAL
-idx)>
-
 =item C<FLOATVAL Parrot_pcc_get_num_constant_func(PARROT_INTERP, PMC *ctx,
 INTVAL idx)>
 
@@ -712,19 +709,6 @@
 PARROT_EXPORT
 PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
-INTVAL
-Parrot_pcc_get_int_constant_func(SHIM_INTERP, ARGIN(PMC *ctx), INTVAL idx)
-{
-    ASSERT_ARGS(Parrot_pcc_get_int_constant_func)
-    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
-    PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
-    PARROT_ASSERT(c->constants[idx].type == 'i');
-    return c->constants[idx].u.integer;
-}
-
-PARROT_EXPORT
-PARROT_PURE_FUNCTION
-PARROT_CAN_RETURN_NULL
 FLOATVAL
 Parrot_pcc_get_num_constant_func(SHIM_INTERP, ARGIN(PMC *ctx), INTVAL idx)
 {

Modified: branches/gc_massacre/src/gc/gc_ms.c
==============================================================================
--- branches/gc_massacre/src/gc/gc_ms.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/gc/gc_ms.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -514,6 +514,48 @@
     Memory_Pools * const source_arena = source_interp->mem_pools;
     Parrot_gc_merge_memory_pools(dest_interp, dest_arena, source_arena);
 }
+
+/*
+
+=item C<int Parrot_gc_ms_needed(PARROT_INTERP)>
+
+Determines whether a GC run is needed. The decision is based on the amount
+of memory used since the last GC run. This amount is compared to a static
+and a dynamic threshold. The dynamic threshold roughly limits the memory
+wasted by objects that could be freed but are not yet collected to a
+percentage of total memory that is actually needed.
+
+Increasing the dynamic threshold results in fewer GC runs and more memory
+consumption.
+
+=cut
+
+*/
+
+int
+Parrot_gc_ms_needed(PARROT_INTERP)
+{
+    ASSERT_ARGS(Parrot_gc_ms_needed)
+
+    const Memory_Pools * const mem_pools = interp->mem_pools;
+    size_t dynamic_threshold;
+
+    /* new_mem is the additional amount of memory used since the last GC */
+    size_t new_mem = interp->gc_sys->stats.memory_used
+                   - interp->gc_sys->stats.mem_used_last_collect;
+
+    /* Never run a GC if new_mem is below static GC_SIZE_THRESHOLD */
+    if (new_mem <= GC_SIZE_THRESHOLD)
+        return 0;
+
+    /* The dynamic threshold is a configurable percentage of the amount of
+       memory used after the last GC */
+    dynamic_threshold = (size_t)(interp->gc_sys->stats.mem_used_last_collect *
+                                 (0.01 * interp->gc_threshold));
+
+    return new_mem > dynamic_threshold;
+}
+
 /*
 
 =item C<static void gc_ms_mark_and_sweep(PARROT_INTERP, UINTVAL flags)>
@@ -1472,15 +1514,12 @@
         ARGMOD(Fixed_Size_Pool *pool))
 {
     ASSERT_ARGS(gc_ms_more_traceable_objects)
-    size_t new_mem = interp->gc_sys->stats.memory_used
-                   - interp->gc_sys->stats.mem_used_last_collect;
 
     if (pool->skip == GC_ONE_SKIP)
         pool->skip = GC_NO_SKIP;
     else if (pool->skip == GC_NEVER_SKIP
          || (pool->skip == GC_NO_SKIP
-         && (new_mem > (interp->gc_sys->stats.mem_used_last_collect >> 2)
-         &&  new_mem >= GC_SIZE_THRESHOLD)))
+         &&  Parrot_gc_ms_needed(interp)))
             Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG);
 
     /* requires that num_free_objects be updated in Parrot_gc_mark_and_sweep.

Modified: branches/gc_massacre/src/gc/gc_private.h
==============================================================================
--- branches/gc_massacre/src/gc/gc_private.h	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/gc/gc_private.h	Wed Sep 22 10:45:52 2010	(r49243)
@@ -594,6 +594,9 @@
 void Parrot_gc_ms_init(PARROT_INTERP)
         __attribute__nonnull__(1);
 
+int Parrot_gc_ms_needed(PARROT_INTERP)
+        __attribute__nonnull__(1);
+
 #define ASSERT_ARGS_gc_ms_allocate_buffer_storage __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(str))
@@ -630,6 +633,8 @@
     , PARROT_ASSERT_ARG(stats))
 #define ASSERT_ARGS_Parrot_gc_ms_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_gc_ms_needed __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: src/gc/gc_ms.c */
 

Modified: branches/gc_massacre/src/gc/string_gc.c
==============================================================================
--- branches/gc_massacre/src/gc/string_gc.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/gc/string_gc.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -662,11 +662,8 @@
          * TODO pass required allocation size to the GC system,
          *      so that collection can be skipped if needed
          */
-        size_t new_mem = interp->gc_sys->stats.memory_used -
-                         interp->gc_sys->stats.mem_used_last_collect;
         if (!Parrot_is_blocked_GC_mark(interp)
-            && new_mem > (stats->mem_used_last_collect >> 2)
-            && new_mem > GC_SIZE_THRESHOLD) {
+        &&  Parrot_gc_ms_needed(interp)) {
             Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG | GC_strings_cb_FLAG);
 
             if (interp->gc_sys->sys_type != INF) {

Modified: branches/gc_massacre/src/gc/system.c
==============================================================================
--- branches/gc_massacre/src/gc/system.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/gc/system.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -534,7 +534,7 @@
 {
     ASSERT_ARGS(is_pmc_ptr)
     return contained_in_pool(mem_pools->pmc_pool, ptr)
-        && PObj_is_PMC_TEST((PObj *)ptr);
+           && PObj_is_PMC_TEST((const PObj *)ptr);
 }
 
 

Modified: branches/gc_massacre/src/hash.c
==============================================================================
--- branches/gc_massacre/src/hash.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/hash.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -173,6 +173,26 @@
         __attribute__nonnull__(2)
         FUNC_MODIFIES(*s);
 
+PARROT_CAN_RETURN_NULL
+static HashBucket * parrot_hash_get_bucket_string(PARROT_INTERP,
+    ARGIN(const Hash *hash),
+    ARGIN(STRING *s),
+    UINTVAL hashval)
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3);
+
+static void parrot_hash_store_value_in_bucket(PARROT_INTERP,
+    ARGMOD(Hash *hash),
+    ARGMOD_NULLOK(HashBucket *bucket),
+    INTVAL hashval,
+    ARGIN_NULLOK(void *key),
+    ARGIN_NULLOK(void *value))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(*hash)
+        FUNC_MODIFIES(*bucket);
+
 static void parrot_mark_hash_both(PARROT_INTERP, ARGIN(Hash *hash))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
@@ -231,6 +251,14 @@
 #define ASSERT_ARGS_key_hash_STRING __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(s))
+#define ASSERT_ARGS_parrot_hash_get_bucket_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(hash) \
+    , PARROT_ASSERT_ARG(s))
+#define ASSERT_ARGS_parrot_hash_store_value_in_bucket \
+     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(hash))
 #define ASSERT_ARGS_parrot_mark_hash_both __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(hash))
@@ -774,9 +802,12 @@
     if (key_type   == Hash_key_type_STRING
     &&  entry_type == enum_hash_int) {
         for (entry_index = 0; entry_index < num_entries; ++entry_index) {
-            STRING * const key = VTABLE_shift_string(interp, info);
-            const INTVAL   i   = VTABLE_shift_integer(interp, info);
-            parrot_hash_put(interp, hash, (void *)key, (void *)i);
+            STRING * const key     = VTABLE_shift_string(interp, info);
+            const INTVAL   i       = VTABLE_shift_integer(interp, info);
+            const INTVAL   hashval = key_hash_STRING(interp, key, hash->seed);
+            /* serialized hashes assumed not to contain duplicates */
+            parrot_hash_store_value_in_bucket(interp, hash, NULL, hashval,
+                                         (void *)key, (void *)i);
         }
 
         return hash;
@@ -1369,7 +1400,6 @@
 {
     ASSERT_ARGS(parrot_hash_get_bucket)
     DECL_CONST_CAST;
-    HashBucket *bucket;
 
     if (hash->entries <= 0)
         return NULL;
@@ -1378,30 +1408,12 @@
         STRING * const s       = (STRING *)PARROT_const_cast(void *, key);
         const size_t   hashval = key_hash_STRING(interp, s, hash->seed);
 
-        bucket                 = hash->index[hashval & hash->mask];
-
-        while (bucket) {
-            const STRING *s2 = (const STRING *)bucket->key;
-
-            if (s == s2)
-                break;
-            /* manually inline part of string_equal  */
-            if (hashval == s2->hashval) {
-                if (s->encoding == s2->encoding){
-                    if ((STRING_byte_length(s) == STRING_byte_length(s2))
-                    && (memcmp(s->strstart, s2->strstart, STRING_byte_length(s)) == 0))
-                        break;
-                } else if (Parrot_str_equal(interp, s, s2))
-                        break;
-            }
-
-            bucket = bucket->next;
-        }
+        return parrot_hash_get_bucket_string(interp, hash, s, hashval);
     }
     else {
         const size_t hashval = key_hash(interp, hash,
                                     PARROT_const_cast(void *, key));
-        bucket               = hash->index[hashval & hash->mask];
+        HashBucket  *bucket  = hash->index[hashval & hash->mask];
 
         while (bucket) {
             if (hash_compare(interp, hash,
@@ -1410,9 +1422,9 @@
                 break;
             bucket = bucket->next;
         }
-    }
 
-    return bucket;
+        return bucket;
+    }
 }
 
 /*
@@ -1461,6 +1473,93 @@
 
 /*
 
+=item C<static HashBucket * parrot_hash_get_bucket_string(PARROT_INTERP, const
+Hash *hash, STRING *s, UINTVAL hashval)>
+
+Given a hash, a STRING key, and the hashval of the key, returns the appropriate
+bucket of the hash for the key.  This assumes buckets are already available, so
+ensure the hash has storage before calling this function.
+
+=cut
+
+*/
+
+PARROT_CAN_RETURN_NULL
+static HashBucket *
+parrot_hash_get_bucket_string(PARROT_INTERP, ARGIN(const Hash *hash),
+        ARGIN(STRING *s), UINTVAL hashval)
+{
+    ASSERT_ARGS(parrot_hash_get_bucket_string)
+    HashBucket *bucket = hash->index[hashval & hash->mask];
+
+    while (bucket) {
+        const STRING *s2 = (const STRING *)bucket->key;
+        if (s == s2)
+            break;
+
+        /* manually inline part of string_equal  */
+        if (hashval == s2->hashval) {
+            if (s->encoding == s2->encoding) {
+                if ((STRING_byte_length(s) == STRING_byte_length(s2))
+                && (memcmp(s->strstart, s2->strstart, STRING_byte_length(s)) == 0))
+                    break;
+            } else if (Parrot_str_equal(interp, s, s2))
+                    break;
+        }
+        bucket = bucket->next;
+    }
+
+    return bucket;
+}
+
+
+/*
+
+=item C<static void parrot_hash_store_value_in_bucket(PARROT_INTERP, Hash *hash,
+HashBucket *bucket, INTVAL hashval, void *key, void *value)>
+
+Given a hash, a bucket, the hashval of the key, the key, and its value, stores
+the value in the bucket.  The bucket can be NULL, in which case this function
+will allocate more storage as appropriate.
+
+Note that C<key> is B<not> copied.
+
+=cut
+
+*/
+
+static void
+parrot_hash_store_value_in_bucket(PARROT_INTERP, ARGMOD(Hash *hash),
+    ARGMOD_NULLOK(HashBucket *bucket), INTVAL hashval,
+    ARGIN_NULLOK(void *key), ARGIN_NULLOK(void *value))
+{
+    ASSERT_ARGS(parrot_hash_store_value_in_bucket)
+
+    /* If we have a bucket already, put the value in it. Otherwise, we need
+       to get a new bucket */
+    if (bucket)
+        bucket->value = value;
+    else {
+        /* Get a new bucket off the free list. If the free list is empty, we
+           expand the hash so we get more items on the free list */
+        if (!hash->free_list)
+            expand_hash(interp, hash);
+
+        bucket = hash->free_list;
+
+        /* Add the value to the new bucket, increasing the count of elements */
+        ++hash->entries;
+        hash->free_list                   = bucket->next;
+        bucket->key                       = key;
+        bucket->value                     = value;
+        bucket->next                      = hash->index[hashval & hash->mask];
+        hash->index[hashval & hash->mask] = bucket;
+    }
+}
+
+
+/*
+
 =item C<HashBucket* parrot_hash_put(PARROT_INTERP, Hash *hash, void *key, void
 *value)>
 
@@ -1487,25 +1586,9 @@
     }
     else {
         if (hash->key_type == Hash_key_type_STRING) {
-            const STRING * const s = (STRING *)key;
-            hashval                = key_hash_STRING(interp, (STRING *)key, hash->seed);
-            bucket                 = hash->index[hashval & hash->mask];
-
-            while (bucket) {
-                const STRING *s2 = (const STRING *)bucket->key;
-                if (s == s2)
-                    break;
-                /* manually inline part of string_equal  */
-                if (hashval == s2->hashval) {
-                    if (s->encoding == s2->encoding) {
-                        if ((STRING_byte_length(s) == STRING_byte_length(s2))
-                        && (memcmp(s->strstart, s2->strstart, STRING_byte_length(s)) == 0))
-                            break;
-                    } else if (Parrot_str_equal(interp, s, s2))
-                            break;
-                }
-                bucket = bucket->next;
-            }
+            STRING *s = (STRING *)key;
+            hashval = key_hash_STRING(interp, s, hash->seed);
+            bucket  = parrot_hash_get_bucket_string(interp, hash, s, hashval);
         }
         else {
             hashval = key_hash(interp, hash, key);
@@ -1519,26 +1602,8 @@
         }
     }
 
-    /* If we have a bucket already, put the value in it. Otherwise, we need
-       to get a new bucket */
-    if (bucket)
-        bucket->value = value;
-    else {
-        /* Get a new bucket off the free list. If the free list is empty, we
-           expand the hash so we get more items on the free list */
-        if (!hash->free_list)
-            expand_hash(interp, hash);
-
-        bucket = hash->free_list;
-
-        /* Add the value to the new bucket, increasing the count of elements */
-        ++hash->entries;
-        hash->free_list                   = bucket->next;
-        bucket->key                       = key;
-        bucket->value                     = value;
-        bucket->next                      = hash->index[hashval & hash->mask];
-        hash->index[hashval & hash->mask] = bucket;
-    }
+    parrot_hash_store_value_in_bucket(interp, hash, bucket, hashval,
+        key, value);
 
     return bucket;
 }
@@ -1616,6 +1681,15 @@
 {
     ASSERT_ARGS(parrot_hash_clone_prunable)
 
+    /* dest hash has the same size as source hash */
+    if (dest->buckets){
+        if (dest->mask+1 > SPLIT_POINT)
+            Parrot_gc_free_memory_chunk(interp, dest->buckets);
+        else
+            Parrot_gc_free_fixed_size_storage(interp, HASH_ALLOC_SIZE(dest->mask+1), dest->buckets);
+    }
+    allocate_buckets(interp, dest, hash->mask);
+
     parrot_hash_iterate(hash,
         void         *valtmp;
         void * const  key = _bucket->key;
@@ -1646,8 +1720,11 @@
             Parrot_ex_throw_from_c_args(interp, NULL, -1,
                     "hash corruption: type = %d\n", hash->entry_type);
         };
-        if (key)
-            parrot_hash_put(interp, dest, key, valtmp););
+        if (key) {
+            const size_t hashval = key_hash(interp, dest, key);
+            /* hash tables has no duplicate keys */
+            parrot_hash_store_value_in_bucket(interp, dest, NULL, hashval, key, valtmp);
+        });
 }
 
 /*

Modified: branches/gc_massacre/src/interp/inter_create.c
==============================================================================
--- branches/gc_massacre/src/interp/inter_create.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/interp/inter_create.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -165,6 +165,7 @@
     interp->gc_sys->sys_type = parent
                                     ? parent->gc_sys->sys_type
                                     : PARROT_GC_DEFAULT_TYPE;
+    interp->gc_threshold     = GC_DYNAMIC_THRESHOLD_DEFAULT;
 
     /* Done. Return and be done with it */
     return interp;

Modified: branches/gc_massacre/src/io/utf8.c
==============================================================================
--- branches/gc_massacre/src/io/utf8.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/io/utf8.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -65,31 +65,32 @@
             const UINTVAL c = *u8ptr;
 
             if (UTF8_IS_START(c)) {
-                UINTVAL len2 = UTF8SKIP(u8ptr);
+                UINTVAL new_bufused = iter.bytepos + UTF8SKIP(u8ptr);
+                UINTVAL len2;
                 INTVAL  read;
 
-                if (iter.bytepos + len2 <= s->bufused)
+                if (new_bufused <= s->bufused)
                     goto ok;
 
-                /* need len - 1 more chars */
-                --len2;
-                s2 = Parrot_str_new_init(interp, NULL, len2,
-                        Parrot_utf8_encoding_ptr, 0);
-                s2->bufused  = len2;
-
-                read = Parrot_io_read_buffer(interp, filehandle, &s2);
+                /* read additional bytes to complete UTF-8 char */
+                len2        = new_bufused - s->bufused;
+                s2          = Parrot_str_new_init(interp, NULL, len2,
+                                    Parrot_binary_encoding_ptr, 0);
+                s2->bufused = len2;
+                read        = Parrot_io_read_buffer(interp, filehandle, &s2);
                 UNUSED(read);
 
-                s->strlen    = iter.charpos;
-                s            = Parrot_str_concat(interp, s, s2);
-                *buf         = s;
-                len         += len2 + 1;
+                Parrot_gc_reallocate_string_storage(interp, s, new_bufused);
+                mem_sys_memcopy(s->strstart + s->bufused, s2->strstart, len2);
+
+                s->bufused  = new_bufused;
+                len        += len2;
 
                 /* check last char */
             }
         }
 ok:
-        Parrot_utf8_encoding_ptr->iter_get_and_advance(interp, *buf, &iter);
+        STRING_iter_get_and_advance(interp, s, &iter);
     }
     s->strlen = iter.charpos;
     return len;

Modified: branches/gc_massacre/src/longopt.c
==============================================================================
--- branches/gc_massacre/src/longopt.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/longopt.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -92,6 +92,7 @@
         { 'O', 'O', OPTION_optional_FLAG, { "--optimize" } },
         { 'R', 'R', OPTION_required_FLAG, { "--runcore" } },
         { 'g', 'g', OPTION_required_FLAG, { "--gc" } },
+        { '\0', OPT_GC_THRESHOLD, OPTION_required_FLAG, { "--gc-threshold" } },
         { 'V', 'V', (OPTION_flags)0, { "--version" } },
         { 'X', 'X', OPTION_required_FLAG, { "--dynext" } },
         { '\0', OPT_DESTROY_FLAG, (OPTION_flags)0,

Modified: branches/gc_massacre/src/main.c
==============================================================================
--- branches/gc_massacre/src/main.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/main.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -39,6 +39,11 @@
 static void help_debug(void);
 PARROT_WARN_UNUSED_RESULT
 PARROT_PURE_FUNCTION
+static int is_all_digits(ARGIN(const char *s))
+        __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_PURE_FUNCTION
 static int is_all_hex_digits(ARGIN(const char *s))
         __attribute__nonnull__(1);
 
@@ -74,6 +79,8 @@
 
 #define ASSERT_ARGS_help __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_help_debug __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_is_all_digits __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(s))
 #define ASSERT_ARGS_is_all_hex_digits __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(s))
 #define ASSERT_ARGS_Parrot_version __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
@@ -159,6 +166,29 @@
 
 /*
 
+=item C<static int is_all_digits(const char *s)>
+
+Tests all characters in a string are decimal digits.
+Returns 1 if true, 0 as soon as a non-decimal found
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_PURE_FUNCTION
+static int
+is_all_digits(ARGIN(const char *s))
+{
+    ASSERT_ARGS(is_all_digits)
+    for (; *s; ++s)
+        if (!isdigit((unsigned char)*s))
+            return 0;
+    return 1;
+}
+
+/*
+
 =item C<static int is_all_hex_digits(const char *s)>
 
 Tests all characters in a string are hexadecimal digits.
@@ -278,6 +308,7 @@
     printf(
     "    -w --warnings\n"
     "    -G --no-gc\n"
+    "       --gc-threshold=percentage    maximum memory wasted by GC\n"
     "       --gc-debug\n"
     "       --leak-test|--destroy-at-end\n"
     "    -g --gc ms|inf set GC type\n"
@@ -371,6 +402,29 @@
             }
             break;
         }
+        else if (!strncmp(arg, "--gc-threshold", 14)) {
+
+            if ((arg = strrchr(arg, '=')))
+                ++arg;
+            else
+                arg = argv[++pos];
+
+            if (is_all_digits(arg)) {
+                interp->gc_threshold = strtoul(arg, NULL, 10);
+
+                if (interp->gc_threshold > 1000) {
+                    fprintf(stderr, "error: maximum GC threshold is 1000\n");
+                    exit(EXIT_FAILURE);
+                }
+            }
+            else {
+                fprintf(stderr, "error: invalid GC threshold specified:"
+                        "'%s'\n", arg);
+                exit(EXIT_FAILURE);
+            }
+            ++pos;
+            arg = argv[pos];
+        }
         else if (!strncmp(arg, "--hash-seed", 11)) {
 
             if ((arg = strrchr(arg, '=')))
@@ -448,6 +502,9 @@
           case 'g':
             /* Handled in parseflags_minimal */
             break;
+          case OPT_GC_THRESHOLD:
+            /* handled in parseflags_minimal */
+            break;
           case 't':
             if (opt.opt_arg && is_all_hex_digits(opt.opt_arg)) {
                 const unsigned long _temp = strtoul(opt.opt_arg, NULL, 16);

Modified: branches/gc_massacre/src/ops/core_ops.c
==============================================================================
--- branches/gc_massacre/src/ops/core_ops.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/ops/core_ops.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -26090,7 +26090,7 @@
   PARROT_FUNCTION_CORE,                       /* core_type = PARROT_XX_CORE */
   0,                                /* flags */
   2,    /* major_version */
-  7,    /* minor_version */
+  8,    /* minor_version */
   0,    /* patch_version */
   1083,             /* op_count */
   core_op_info_table,       /* op_info_table */
@@ -26194,7 +26194,7 @@
     HOP *hops = hop_buckets =
         mem_gc_allocate_n_zeroed_typed(interp, core_op_lib.op_count * 2, HOP );
 
-    size_t i;
+    opcode_t i;
 
     /* store full names */
     for (i = 0; i < core_op_lib.op_count; i++) {
@@ -26217,7 +26217,7 @@
     hop_buckets = NULL;
 }PARROT_EXPORT
 op_lib_t *
-Parrot_DynOp_core_2_7_0(PARROT_INTERP, long init) {
+Parrot_DynOp_core_2_8_0(PARROT_INTERP, long init) {
     /* initialize and return op_lib ptr */
     if (init == 1) {
 
@@ -26246,7 +26246,7 @@
 
 {
     PMC *const lib = Parrot_pmc_new(interp, enum_class_ParrotLibrary);
-    ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) Parrot_DynOp_core_2_7_0;
+    ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) Parrot_DynOp_core_2_8_0;
     dynop_register(interp, lib);
     return lib;
 }

Modified: branches/gc_massacre/src/packfile/pf_items.c
==============================================================================
--- branches/gc_massacre/src/packfile/pf_items.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/packfile/pf_items.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -967,7 +967,7 @@
         const unsigned char *ucstream = *(const unsigned char **)stream;
         opcode_t o  = (pf->fetch_op)(ucstream);
         ucstream   += pf->header->wordsize;
-        *stream     = (opcode_t *)ucstream;
+        *stream     = (const opcode_t *)ucstream;
         return o;
     }
 }

Modified: branches/gc_massacre/src/pmc/codestring.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/codestring.pmc	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/pmc/codestring.pmc	Wed Sep 22 10:45:52 2010	(r49243)
@@ -107,6 +107,8 @@
     STRING * const percent     = CONST_STRING(INTERP, "%");
     STRING * const comma       = CONST_STRING(INTERP, ",");
     STRING * const comma_space = CONST_STRING(INTERP, ", ");
+    STRING * const newline     = CONST_STRING(INTERP, "\n");
+    PMC           *parts       = PMCNULL;
     STRING *key, *repl, *S1;
     INTVAL pos          = 0;
     INTVAL replen       = 0;
@@ -144,18 +146,15 @@
 
     GET_ATTR_str_val(INTERP, SELF, S1);
 
+    parts = Parrot_pmc_new_init_int(INTERP, enum_class_FixedStringArray, 3);
+    VTABLE_set_string_keyed_int(INTERP, parts, 0, S1);
+    VTABLE_set_string_keyed_int(INTERP, parts, 1, fmt);
+
     /* Add a newline if necessary */
-    if ('\n' != Parrot_str_indexed(INTERP, fmt, Parrot_str_length(INTERP, fmt) - 1)) {
-        STRING * const newline     = CONST_STRING(INTERP, "\n");
-        PMC     *parts = Parrot_pmc_new_init_int(INTERP, enum_class_FixedStringArray, 3);
-        VTABLE_set_string_keyed_int(INTERP, parts, 0, S1);
-        VTABLE_set_string_keyed_int(INTERP, parts, 1, fmt);
+    if ('\n' != Parrot_str_indexed(INTERP, fmt, Parrot_str_length(INTERP, fmt) - 1))
         VTABLE_set_string_keyed_int(INTERP, parts, 2, newline);
-        S1 = Parrot_str_join(INTERP, STRINGNULL, parts);
-    }
-    else
-        S1 = Parrot_str_concat(INTERP, S1, fmt);
 
+    S1 = Parrot_str_join(INTERP, STRINGNULL, parts);
     VTABLE_set_string_native(INTERP, SELF, S1);
 
     RETURN(PMC *SELF);

Modified: branches/gc_massacre/src/pmc/exceptionhandler.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/exceptionhandler.pmc	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/pmc/exceptionhandler.pmc	Wed Sep 22 10:45:52 2010	(r49243)
@@ -61,6 +61,24 @@
 
 /*
 
+=item C<void init_int(INTVAL)>
+
+Initializes the exception handler with one handled type.
+
+=cut
+
+*/
+
+    VTABLE void init_int(INTVAL handledtype) {
+        Parrot_ExceptionHandler_attributes * const attrs = PARROT_EXCEPTIONHANDLER(SELF);
+        SELF.init();
+
+        attrs->handled_types        = Parrot_pmc_new_init_int(INTERP, enum_class_FixedIntegerArray, 1);
+        VTABLE_set_integer_keyed_int(INTERP, attrs->handled_types, 0, handledtype);
+    }
+
+/*
+
 =item C<void mark()>
 
 Mark any active exception handler data as live.

Modified: branches/gc_massacre/src/pmc/hash.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/hash.pmc	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/pmc/hash.pmc	Wed Sep 22 10:45:52 2010	(r49243)
@@ -373,12 +373,13 @@
     }
 
     VTABLE STRING *get_repr() {
-        /* TT #1231:  Use freeze in get_repr() (for hashes) */
-        PMC * const  iter = VTABLE_get_iter(INTERP, SELF);
-        STRING      *res  = CONST_STRING(INTERP, "{");
-        const INTVAL n    = VTABLE_elements(INTERP, SELF);
+        PMC * const iter = VTABLE_get_iter(INTERP, SELF);
+        PMC          *sb = Parrot_pmc_new(INTERP, enum_class_StringBuilder);
+        const INTVAL n   = VTABLE_elements(INTERP, SELF);
         INTVAL       j;
 
+        VTABLE_push_string(INTERP, sb, CONST_STRING(INTERP, "{"));
+
         for (j = 0; j < n; ++j) {
             STRING * const key      = VTABLE_shift_string(INTERP, iter);
             char *   const key_str  = Parrot_str_to_cstring(INTERP, key);
@@ -397,25 +398,22 @@
             Parrot_str_free_cstring(key_str);
 
             if (all_digit) {
-                res = Parrot_str_concat(INTERP, res, key);
+                VTABLE_push_string(INTERP, sb, key);
             }
             else {
-                res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, "'"));
-                res = Parrot_str_concat(INTERP, res, key);
-                res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, "'"));
+                VTABLE_push_string(INTERP, sb, CONST_STRING(INTERP, "'"));
+                VTABLE_push_string(INTERP, sb, key);
+                VTABLE_push_string(INTERP, sb, CONST_STRING(INTERP, "'"));
             }
-
-            res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, ": "));
+            VTABLE_push_string(INTERP, sb, CONST_STRING(INTERP, ":"));
             val = SELF.get_pmc_keyed_str(key);
-            res = Parrot_str_concat(INTERP, res, VTABLE_get_string(INTERP, val));
+            VTABLE_push_string(INTERP, sb, VTABLE_get_string(INTERP, val));
 
             if (j < n - 1)
-                res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, ", "));
+                VTABLE_push_string(INTERP, sb, CONST_STRING(INTERP, ", "));
         }
 
-        res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, "}"));
-
-        return res;
+        return VTABLE_get_string(INTERP, sb);
     }
 
 /*
@@ -763,9 +761,8 @@
 
         GET_ATTR_hash(INTERP, SELF, hash);
 
-        /* special case the most likely key type, for speed */
-        if (hash->key_type != Hash_key_type_STRING)
-            key = (STRING *)hash_key_from_string(INTERP, hash, key);
+        if (!hash->entries)
+            return PMCNULL;
 
         b = parrot_hash_get_bucket(INTERP, hash, key);
 

Modified: branches/gc_massacre/src/pmc/hashiterator.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/hashiterator.pmc	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/pmc/hashiterator.pmc	Wed Sep 22 10:45:52 2010	(r49243)
@@ -79,7 +79,32 @@
 {
     ASSERT_ARGS(advance_to_next)
     Parrot_HashIterator_attributes * const attrs  = PARROT_HASHITERATOR(self);
-    parrot_hash_iterator_advance(attrs->parrot_hash, attrs->bucket, attrs->pos);
+    if (attrs->parrot_hash->key_type == Hash_key_type_int
+    ||  attrs->parrot_hash->key_type == Hash_key_type_ptr
+    ||  attrs->parrot_hash->key_type == Hash_key_type_cstring){
+        /* indexed scan */
+        if (attrs->elements){
+            if (attrs->bucket)
+                attrs->bucket = attrs->bucket->next;
+            while (!attrs->bucket) {
+                /* If there is no more buckets */
+                if (attrs->pos == attrs->total_buckets)
+                    break;
+                attrs->bucket = attrs->parrot_hash->index[attrs->pos++];
+            }
+        }
+    }
+    else{
+        /* linear scan */
+        if (!attrs->bucket)
+            attrs->bucket = attrs->parrot_hash->buckets;
+        while (attrs->elements > 0) {
+            attrs->bucket = attrs->parrot_hash->buckets + attrs->pos++;
+            if (attrs->bucket->key)
+                break;
+        }
+    }
+
     --attrs->elements;
     return;
 }
@@ -110,17 +135,11 @@
         attrs->pmc_hash         = hash;
         attrs->parrot_hash      = (Hash*)VTABLE_get_pointer(INTERP, hash);
         attrs->total_buckets    = attrs->parrot_hash->mask + 1;
-        attrs->bucket           = 0;
+        attrs->elements         = attrs->parrot_hash->entries;
+        attrs->bucket           = NULL;
         attrs->pos              = 0;
-        /* Will be decreased on initial advance_to_next */
-        /* XXX Do we really need to support this use-case ? */
-        attrs->elements         = attrs->parrot_hash->entries + 1;
 
         PObj_custom_mark_SET(SELF);
-
-        /* Initial state of iterator is "before start" */
-        /* So, advance to first element */
-        advance_to_next(INTERP, SELF);
     }
 
 /*
@@ -163,9 +182,9 @@
 
         if (value == ITERATE_FROM_START) {
             /* Restart iterator */
-            attrs->bucket           = 0;
+            attrs->elements         = attrs->parrot_hash->entries;
+            attrs->bucket           = NULL;
             attrs->pos              = 0;
-            advance_to_next(INTERP, SELF);
             return;
         }
 
@@ -197,7 +216,8 @@
 */
 
     VTABLE INTVAL get_bool() {
-        return PARROT_HASHITERATOR(SELF)->bucket != 0;
+        return PARROT_HASHITERATOR(SELF)->elements != 0;
+
     }
 
 /*
@@ -215,7 +235,7 @@
     }
 
     VTABLE INTVAL get_integer() {
-        return SELF.elements();
+        return PARROT_HASHITERATOR(SELF)->elements;
     }
 
 /*
@@ -235,7 +255,10 @@
 
         PMC        *ret;
 
-        if (!attrs->bucket)
+        /* Move to next bucket */
+        advance_to_next(INTERP, SELF);
+
+        if (attrs->elements < 0)
             Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
                 "StopIteration");
 
@@ -243,9 +266,6 @@
         VTABLE_set_pointer_keyed_int(INTERP, ret, 0, attrs->parrot_hash);
         VTABLE_set_pointer_keyed_int(INTERP, ret, 1, attrs->bucket);
 
-        /* Move to next bucket */
-        advance_to_next(INTERP, SELF);
-
         return ret;
     }
 
@@ -254,17 +274,15 @@
 */
 
     VTABLE STRING* shift_string() {
-        Parrot_HashIterator_attributes * const attrs =
-                PARROT_HASHITERATOR(SELF);
-        HashBucket                     * const bucket = attrs->bucket;
-
-        if (!attrs->parrot_hash || !attrs->bucket)
-            return CONST_STRING(INTERP, "");
+        Parrot_HashIterator_attributes * const attrs = PARROT_HASHITERATOR(SELF);
 
         /* Move to next bucket */
         advance_to_next(INTERP, SELF);
 
-        return hash_key_to_string(INTERP, attrs->parrot_hash, bucket->key);
+        if (attrs->elements < 0)
+            return CONST_STRING(INTERP, "");
+
+        return hash_key_to_string(INTERP, attrs->parrot_hash, attrs->bucket->key);
     }
 
 }

Deleted: branches/gc_massacre/src/pmc/imageio.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/imageio.pmc	Wed Sep 22 10:45:52 2010	(r49242)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,795 +0,0 @@
-/*
-Copyright (C) 2010, Parrot Foundation.
-$Id$
-
-=head1 NAME
-
-src/pmc/imageio.pmc - ImageIO PMC
-
-=head1 DESCRIPTION
-
-Freezes and thaws other PMCs.
-
-=head1 FUNCTIONS
-
-=over 4
-
-=cut
-
-*/
-
-#define GROW_TO_16_BYTE_BOUNDARY(size) ((size) + ((size) % 16 ? 16 - (size) % 16 : 0))
-
-/* preallocate freeze image for aggregates with this estimation */
-#define FREEZE_BYTES_PER_ITEM 9
-
-/* macros/constants to handle packing/unpacking of PMC IDs and flags
- * the 2 LSBs are used for flags, all other bits are used for PMC ID
- */
-#define PackID_new(id, flags)       (((UINTVAL)(id) * 4) | ((UINTVAL)(flags) & 3))
-#define PackID_get_PMCID(id)        ((UINTVAL)(id) / 4)
-#define PackID_set_PMCID(lv, id)    (lv) = PackID_new((id), PackID_get_FLAGS(lv))
-#define PackID_get_FLAGS(id)        ((UINTVAL)(id) & 3)
-#define PackID_set_FLAGS(lv, flags) (lv) = PackID_new(PackID_get_PMCID(lv), (flags))
-
-enum {
-    enum_PackID_normal     = 0,
-    enum_PackID_seen       = 1,
-};
-
-/* HEADERIZER HFILE: none */
-/* HEADERIZER BEGIN: static */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-
-static void create_buffer(PARROT_INTERP,
-    ARGIN_NULLOK(PMC *pmc),
-    ARGMOD(PMC *info))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(3)
-        FUNC_MODIFIES(*info);
-
-PARROT_INLINE
-static void ensure_buffer_size(PARROT_INTERP, ARGIN(PMC *io), size_t len)
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
-PARROT_INLINE
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-static opcode_t * GET_VISIT_CURSOR(ARGIN(const PMC *pmc))
-        __attribute__nonnull__(1);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PARROT_INLINE
-static PMC* id_list_get(PARROT_INTERP, ARGIN(const PMC *io), UINTVAL id)
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
-PARROT_INLINE
-static void INC_VISIT_CURSOR(ARGMOD(PMC *pmc), UINTVAL inc)
-        __attribute__nonnull__(1)
-        FUNC_MODIFIES(*pmc);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_INLINE
-static INTVAL INFO_HAS_DATA(ARGIN(const PMC *io))
-        __attribute__nonnull__(1);
-
-PARROT_INLINE
-static void SET_VISIT_CURSOR(ARGMOD(PMC *pmc), ARGIN(const char *cursor))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        FUNC_MODIFIES(*pmc);
-
-#define ASSERT_ARGS_create_buffer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(info))
-#define ASSERT_ARGS_ensure_buffer_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(io))
-#define ASSERT_ARGS_GET_VISIT_CURSOR __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(pmc))
-#define ASSERT_ARGS_id_list_get __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(io))
-#define ASSERT_ARGS_INC_VISIT_CURSOR __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(pmc))
-#define ASSERT_ARGS_INFO_HAS_DATA __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(io))
-#define ASSERT_ARGS_SET_VISIT_CURSOR __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(pmc) \
-    , PARROT_ASSERT_ARG(cursor))
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-/* HEADERIZER END: static */
-
-/*
-
-=item C<static opcode_t * GET_VISIT_CURSOR(const PMC *pmc)>
-
-=cut
-
-*/
-
-PARROT_INLINE
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-static opcode_t *
-GET_VISIT_CURSOR(ARGIN(const PMC *pmc))
-{
-    ASSERT_ARGS(GET_VISIT_CURSOR)
-
-    char * const buf = (char *)Buffer_bufstart(PARROT_IMAGEIO(pmc)->buffer);
-    const size_t pos = PARROT_IMAGEIO(pmc)->pos;
-    return (opcode_t *)(buf + pos);
-}
-
-/*
-
-=item C<static void SET_VISIT_CURSOR(PMC *pmc, const char *cursor)>
-
-=cut
-
-*/
-
-
-PARROT_INLINE
-static void
-SET_VISIT_CURSOR(ARGMOD(PMC *pmc), ARGIN(const char *cursor))
-{
-    ASSERT_ARGS(SET_VISIT_CURSOR)
-
-    const char * const bufstart  = (const char *)Buffer_bufstart(PARROT_IMAGEIO(pmc)->buffer);
-    PARROT_IMAGEIO(pmc)->pos = (cursor - bufstart);
-}
-
-/*
-
-=item C<static void INC_VISIT_CURSOR(PMC *pmc, UINTVAL inc)>
-
-=cut
-
-*/
-
-
-PARROT_INLINE
-static void
-INC_VISIT_CURSOR(ARGMOD(PMC *pmc), UINTVAL inc)
-{
-    ASSERT_ARGS(INC_VISIT_CURSOR)
-
-    PARROT_IMAGEIO(pmc)->pos += inc;
-}
-
-
-#define BYTECODE_SHIFT_OK(pmc) PARROT_ASSERT( \
-    PARROT_IMAGEIO(pmc)->pos <= PARROT_IMAGEIO(pmc)->input_length)
-
-/*
-
-=item C<static void create_buffer(PARROT_INTERP, PMC *pmc, PMC *info)>
-
-=cut
-
-*/
-
-static void
-create_buffer(PARROT_INTERP, ARGIN_NULLOK(PMC *pmc), ARGMOD(PMC *info))
-{
-    ASSERT_ARGS(create_buffer)
-
-    INTVAL  len;
-
-    if (!PMC_IS_NULL(pmc)) {
-        STRING * const array = CONST_STRING(interp, "array");
-        STRING * const hash  = CONST_STRING(interp, "hash");
-        INTVAL         items = 1;
-
-        if (VTABLE_does(interp, pmc, array) || VTABLE_does(interp, pmc, hash))
-            items += VTABLE_elements(interp, pmc);
-
-        len = items * FREEZE_BYTES_PER_ITEM;
-    }
-    else
-        len = FREEZE_BYTES_PER_ITEM;
-
-    PARROT_IMAGEIO(info)->buffer =
-        Parrot_gc_new_bufferlike_header(interp, sizeof (Buffer));
-    Parrot_gc_allocate_buffer_storage_aligned(interp,
-        PARROT_IMAGEIO(info)->buffer, len);
-    memset(Buffer_bufstart(PARROT_IMAGEIO(info)->buffer), 0, len);
-    SET_VISIT_CURSOR(info,
-        (const char *)Buffer_bufstart(PARROT_IMAGEIO(info)->buffer));
-}
-
-/*
-
-=item C<static void ensure_buffer_size(PARROT_INTERP, PMC *io, size_t len)>
-
-Checks the size of the buffer to see if it can accommodate C<len> more
-bytes. If not, expands the buffer.
-
-=cut
-
-*/
-
-PARROT_INLINE
-static void
-ensure_buffer_size(PARROT_INTERP, ARGIN(PMC *io), size_t len)
-{
-    ASSERT_ARGS(ensure_buffer_size)
-
-    Buffer * const buf  = PARROT_IMAGEIO(io)->buffer;
-    const size_t used   = PARROT_IMAGEIO(io)->pos;
-    const int need_free = Buffer_buflen(buf) - used - len;
-
-    /* grow by factor 1.5 or such */
-    if (need_free <= 16) {
-        size_t new_size = (size_t) (Buffer_buflen(buf) * 1.5);
-
-        if (new_size < Buffer_buflen(buf) - need_free + 512)
-            new_size = Buffer_buflen(buf) - need_free + 512;
-
-        Parrot_gc_reallocate_buffer_storage(interp, buf, new_size);
-        PARROT_ASSERT(Buffer_buflen(buf) - used - len >= 15);
-        memset(((char*)Buffer_bufstart(buf)) + used, 0, new_size - used);
-    }
-
-#ifndef DISABLE_GC_DEBUG
-    Parrot_gc_compact_memory_pool(interp);
-#endif
-}
-
-/*
-
-=item C<static INTVAL INFO_HAS_DATA(const PMC *io)>
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_INLINE
-static INTVAL
-INFO_HAS_DATA(ARGIN(const PMC *io))
-{
-    ASSERT_ARGS(INFO_HAS_DATA)
-
-    return PARROT_IMAGEIO(io)->pos < PARROT_IMAGEIO(io)->input_length;
-}
-
-/*
-
-=item C<static PMC* id_list_get(PARROT_INTERP, const PMC *io, UINTVAL id)>
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PARROT_INLINE
-static PMC*
-id_list_get(PARROT_INTERP, ARGIN(const PMC *io), UINTVAL id)
-{
-    ASSERT_ARGS(id_list_get)
-
-    return VTABLE_get_pmc_keyed_int(interp, PARROT_IMAGEIO(io)->todo, id - 1);
-}
-
-pmclass ImageIO auto_attrs {
-    ATTR Buffer              *buffer;      /* buffer to store the image */
-    ATTR size_t               pos;         /* current read/write buf position */
-    ATTR size_t               input_length;
-    ATTR INTVAL               what;
-    ATTR PMC                 *seen;        /* seen hash */
-    ATTR PMC                 *todo;        /* todo list */
-    ATTR UINTVAL              id;          /* freze ID of PMC */
-    ATTR struct PackFile     *pf;
-    ATTR PackFile_ConstTable *pf_ct;
-
-/*
-
-=back
-
-=head1 VTABLES
-
-=over 4
-
-=cut
-
-*/
-
-/*
-
-=item C<void init()>
-
-Initializes the PMC.
-
-=cut
-
-*/
-    VTABLE void init() {
-        PARROT_IMAGEIO(SELF)->seen = PMCNULL;
-        PARROT_IMAGEIO(SELF)->todo =
-            Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
-
-        PObj_flag_CLEAR(private1, SELF);
-
-        PObj_custom_mark_SET(SELF);
-    }
-
-
-/*
-
-=item C<void destroy()>
-
-Destroys the PMC.
-
-=cut
-
-*/
-    VTABLE void destroy() {
-        PackFile_destroy(INTERP, PARROT_IMAGEIO(SELF)->pf);
-        PARROT_IMAGEIO(SELF)->pf = NULL;
-    }
-
-
-/*
-
-=item C<void mark()>
-
-Marks the PMC as alive.
-
-=cut
-
-*/
-    VTABLE void mark() {
-        PObj * const buffer = (PObj *)(PARROT_IMAGEIO(SELF)->buffer);
-        if (buffer)
-            Parrot_gc_mark_PObj_alive(INTERP, buffer);
-        Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIO(SELF)->todo);
-        Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIO(SELF)->seen);
-    }
-
-
-/*
-
-=item C<STRING *get_string()>
-
-Returns the content of the image as a string.
-
-=cut
-
-*/
-
-    VTABLE STRING *get_string() {
-        return Parrot_str_new_from_buffer(INTERP,
-                                          PARROT_IMAGEIO(SELF)->buffer,
-                                          PARROT_IMAGEIO(SELF)->pos);
-    }
-
-
-/*
-
-=item C<VTABLE PMC *get_pmc()>
-
-Gets the result PMC after a thaw.
-
-=cut
-
-*/
-
-    VTABLE PMC *get_pmc() {
-        return VTABLE_get_pmc_keyed_int(INTERP,
-            (PARROT_IMAGEIO(SELF))->todo, 0);
-    }
-
-
-/*
-
-=item C<VTABLE PMC *get_iter()>
-
-Get the C<todo> list for this freeze/thaw for iterating over.
-
-=cut
-
-*/
-
-    VTABLE PMC *get_iter() {
-        return PARROT_IMAGEIO(SELF)->todo;
-    }
-
-/*
-
-=item C<VTABLE INTVAL get_integer()>
-
-Returns the flags describing the visit action.
-
-=cut
-
-*/
-
-    VTABLE INTVAL get_integer() {
-        return PARROT_IMAGEIO(SELF)->what;
-    }
-
-
-/*
-
-=item C<VTABLE void push_integer(INTVAL v)>
-
-Pushes the integer C<v> onto the end of the image.
-
-=cut
-
-*/
-
-    VTABLE void push_integer(INTVAL v) {
-        const size_t len = PF_size_integer() * sizeof (opcode_t);
-        ensure_buffer_size(INTERP, SELF, len);
-        SET_VISIT_CURSOR(SELF,
-            (const char *)PF_store_integer(GET_VISIT_CURSOR(SELF), v));
-    }
-
-
-/*
-
-=item C<VTABLE void push_float(FLOATVAL v)>
-
-Pushes the float C<v> onto the end of the image.
-
-=cut
-
-*/
-
-    VTABLE void push_float(FLOATVAL v) {
-        const size_t len = PF_size_number() * sizeof (opcode_t);
-        ensure_buffer_size(INTERP, SELF, len);
-        SET_VISIT_CURSOR(SELF,
-            (const char *)PF_store_number(GET_VISIT_CURSOR(SELF), &v));
-    }
-
-
-/*
-
-=item C<VTABLE void push_string(STRING *v)>
-
-Pushes the string C<*v> onto the end of the image.
-
-=cut
-
-*/
-
-    VTABLE void push_string(STRING *v) {
-        if (PObj_flag_TEST(private1, SELF)) {
-            /* store a reference to constant table entry of string */
-            PMC                 * const v_pmc = key_new_string(interp, v);
-            PackFile_ConstTable * const table = PARROT_IMAGEIO(SELF)->pf_ct;
-            const int idx =
-                PackFile_ConstTable_rlookup(INTERP, table, v_pmc, PFC_STRING);
-
-            if (idx >= 0) {
-                STATICSELF.push_integer(idx);
-                return;
-            }
-
-            /* XXX handle cases where the PMC has changed after
-             * Parrot_freeze_strings was called eg: :immediate subs */
-            STATICSELF.push_integer(-1);
-
-            /* TODO
-             * should really be:
-             * PANIC(INTERP, "string not previously in constant table "
-             *               "when freezing to packfile"); */
-        }
-
-        {
-            const size_t len = PF_size_string(v) * sizeof (opcode_t);
-            ensure_buffer_size(INTERP, SELF, len);
-            SET_VISIT_CURSOR(SELF,
-                (const char *)PF_store_string(GET_VISIT_CURSOR(SELF), v));
-        }
-    }
-
-
-/*
-
-=item C<VTABLE void push_pmc(PMC *v)>
-
-Pushes a reference to pmc C<*v> onto the end of the image. If C<*v>
-hasn't been seen yet, it is also pushed onto the todo list.
-
-=cut
-
-*/
-
-    VTABLE void push_pmc(PMC *v) {
-        UINTVAL id;
-        int packid_type;
-
-        PARROT_ASSERT(PARROT_IMAGEIO(SELF)->what == VISIT_FREEZE_NORMAL);
-
-        if (PMC_IS_NULL(v)) {
-            id   = 0;
-            packid_type = enum_PackID_seen;
-        }
-        else {
-            Hash * const hash = (Hash *)VTABLE_get_pointer(INTERP,
-                    PARROT_IMAGEIO(SELF)->seen);
-            HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, v);
-
-            if (b) {
-                id = (UINTVAL)b->value;
-                packid_type = enum_PackID_seen;
-            }
-            else {
-                ++PARROT_IMAGEIO(SELF)->id; /* next id to freeze */
-                id = PARROT_IMAGEIO(SELF)->id;
-                packid_type = enum_PackID_normal;
-            }
-        }
-
-        SELF.push_integer(PackID_new(id, packid_type));
-
-        if (packid_type == enum_PackID_normal) {
-            Hash * const hash = (Hash *)VTABLE_get_pointer(INTERP,
-                    PARROT_IMAGEIO(SELF)->seen);
-
-            PARROT_ASSERT(v);
-
-            /* workaround to keep ParrotInterpreter PBC hack working */
-            if (v->vtable->base_type == enum_class_ParrotInterpreter)
-                PObj_flag_CLEAR(private1, SELF);
-
-            SELF.push_integer(
-                    PObj_is_object_TEST(v)
-                    ? (INTVAL) enum_class_Object
-                    : v->vtable->base_type);
-
-            parrot_hash_put(INTERP, hash, v, (void *)id);
-            VTABLE_push_pmc(INTERP, PARROT_IMAGEIO(SELF)->todo, v);
-        }
-    }
-
-
-/*
-
-=item C<void set_pointer(void *value)>
-
-Sets the constant table of this ImageIO PMC.
-
-=cut
-
-*/
-
-    VTABLE void set_pointer(void *value) {
-        PObj_flag_SET(private1, SELF);
-        PARROT_IMAGEIO(SELF)->pf_ct = (PackFile_ConstTable *)value;
-    }
-
-
-/*
-
-=item C<VTABLE INTVAL shift_integer()>
-
-Removes and returns an integer from the start of the image.
-
-=cut
-
-*/
-
-    VTABLE INTVAL shift_integer() {
-        /* inlining PF_fetch_integer speeds up PBC thawing measurably */
-        const PackFile      *pf     = PARROT_IMAGEIO(SELF)->pf;
-        const opcode_t      *pos    = GET_VISIT_CURSOR(SELF);
-        const unsigned char *stream = (const unsigned char *)pos;
-        const INTVAL         i      = pf->fetch_iv(stream);
-
-        SET_VISIT_CURSOR(SELF, (const char *)pos + pf->header->wordsize);
-        BYTECODE_SHIFT_OK(SELF);
-        return i;
-    }
-
-
-/*
-
-=item C<VTABLE FLOATVAL shift_float()>
-
-Removes and returns an number from the start of the image.
-
-=cut
-
-*/
-
-    VTABLE FLOATVAL shift_float() {
-        const opcode_t *pos = GET_VISIT_CURSOR(SELF);
-        FLOATVAL        f   = PF_fetch_number(PARROT_IMAGEIO(SELF)->pf, &pos);
-        SET_VISIT_CURSOR(SELF, (const char *)pos);
-        BYTECODE_SHIFT_OK(SELF);
-        return f;
-    }
-
-
-/*
-
-=item C<VTABLE STRING* shift_string()>
-
-Removes and returns a string from the start of the image.
-
-=cut
-
-*/
-
-    VTABLE STRING *shift_string() {
-        if (PObj_flag_TEST(private1, SELF)) {
-            const INTVAL i = STATICSELF.shift_integer();
-
-            if (i >= 0) {
-                PackFile_ConstTable *table = PARROT_IMAGEIO(SELF)->pf_ct;
-
-                if (!table->constants[i].type)
-                    Parrot_ex_throw_from_c_args(interp, NULL,
-                            EXCEPTION_MALFORMED_PACKFILE,
-                            "Reference to constant not yet unpacked %d", i);
-                return table->constants[i].u.string;
-            }
-
-            /* XXX
-             * only got here because constant table doesn't contain the string
-             * fallback on inline strings
-             */
-        }
-
-        {
-            const opcode_t * pos     = GET_VISIT_CURSOR(SELF);
-            STRING         * const s = PF_fetch_string(INTERP,
-                                    PARROT_IMAGEIO(SELF)->pf, &pos);
-            SET_VISIT_CURSOR(SELF, (const char *)pos);
-            BYTECODE_SHIFT_OK(SELF);
-            return s;
-        }
-    }
-
-
-/*
-
-=item C<static PMC *shift_pmc()>
-
-Removes and returns a reference to a pmc from the start of the image.
-
-=cut
-
-*/
-
-    VTABLE PMC *shift_pmc() {
-        const UINTVAL  n            = SELF.shift_integer();
-        const INTVAL   id           = PackID_get_PMCID(n);
-        const int      packid_flags = PackID_get_FLAGS(n);
-        PMC           *pmc          = PMCNULL;
-
-        PARROT_ASSERT(PARROT_IMAGEIO(SELF)->what == VISIT_THAW_NORMAL);
-
-        switch (packid_flags) {
-            case enum_PackID_seen:
-                if (id) /* got a non-NULL PMC */
-                    pmc = id_list_get(INTERP, SELF, id);
-                break;
-            case enum_PackID_normal:
-                {
-                    PMC * const  todo = PARROT_IMAGEIO(SELF)->todo;
-                    const INTVAL type = VTABLE_shift_integer(INTERP, SELF);
-
-                    PARROT_ASSERT(id - 1
-                            == VTABLE_elements(INTERP, PARROT_IMAGEIO(SELF)->todo));
-
-                    if (type <= 0 || type > INTERP->n_vtable_max)
-                        Parrot_ex_throw_from_c_args(INTERP, NULL, 1,
-                                "Unknown PMC type to thaw %d", type);
-
-                    /* workaround to keep ParrotInterpreter PBC hack working */
-                    if (type == enum_class_ParrotInterpreter)
-                        PObj_flag_CLEAR(private1, SELF);
-
-                    pmc = Parrot_pmc_new_noinit(INTERP, type);
-
-                    VTABLE_set_pmc_keyed_int(INTERP, todo, id - 1, pmc);
-                }
-                break;
-            default:
-                Parrot_ex_throw_from_c_args(INTERP, NULL, 1,
-                        "Unknown PMC id args thaw %d", packid_flags);
-                break;
-        }
-
-        return pmc;
-    }
-
-    VTABLE void set_pmc(PMC *p)
-    {
-        PARROT_IMAGEIO(SELF)->what  = VISIT_FREEZE_NORMAL;
-
-        create_buffer(INTERP, p, SELF);
-        if (PObj_flag_TEST(private1, SELF)) {
-            PARROT_IMAGEIO(SELF)->pf = PARROT_IMAGEIO(SELF)->pf_ct->base.pf;
-        }
-        else {
-            const UINTVAL header_length =
-                GROW_TO_16_BYTE_BOUNDARY(PACKFILE_HEADER_BYTES);
-
-            PARROT_IMAGEIO(SELF)->pf = PackFile_new(INTERP, 0);
-            PObj_custom_destroy_SET(SELF);
-
-            ensure_buffer_size(INTERP, SELF, header_length);
-            mem_sys_memcopy(GET_VISIT_CURSOR(SELF),
-                PARROT_IMAGEIO(SELF)->pf->header, PACKFILE_HEADER_BYTES);
-            INC_VISIT_CURSOR(SELF, header_length);
-        }
-
-        PARROT_IMAGEIO(SELF)->seen = Parrot_pmc_new(INTERP, enum_class_Hash);
-        VTABLE_set_pointer(INTERP, PARROT_IMAGEIO(SELF)->seen,
-            parrot_new_intval_hash(INTERP));
-
-        STATICSELF.push_pmc(p);
-        Parrot_visit_loop_visit(INTERP, SELF);
-    }
-
-    VTABLE void set_string_native(STRING *image) {
-        PMC          *unused;
-        PARROT_IMAGEIO(SELF)->what   = VISIT_THAW_NORMAL;
-        PARROT_IMAGEIO(SELF)->buffer = (Buffer *)image;
-
-        PARROT_ASSERT(image->_bufstart == image->strstart);
-
-        SET_VISIT_CURSOR(SELF,
-            (const char *)Buffer_bufstart(PARROT_IMAGEIO(SELF)->buffer));
-        PARROT_IMAGEIO(SELF)->input_length = image->strlen;
-
-        if (PObj_flag_TEST(private1, SELF)) {
-            PARROT_IMAGEIO(SELF)->pf = PARROT_IMAGEIO(SELF)->pf_ct->base.pf;
-        }
-        else {
-            const UINTVAL header_length =
-                 GROW_TO_16_BYTE_BOUNDARY(PACKFILE_HEADER_BYTES);
-            int unpacked_length;
-
-            PARROT_IMAGEIO(SELF)->pf   = PackFile_new(INTERP, 0);
-            PObj_custom_destroy_SET(SELF);
-
-            PARROT_IMAGEIO(SELF)->pf->options |= PFOPT_PMC_FREEZE_ONLY;
-            unpacked_length = PackFile_unpack(INTERP, PARROT_IMAGEIO(SELF)->pf,
-                GET_VISIT_CURSOR(SELF), PARROT_IMAGEIO(SELF)->input_length);
-
-            if (unpacked_length)
-                INC_VISIT_CURSOR(SELF, header_length);
-            else
-                Parrot_ex_throw_from_c_args(INTERP, NULL,
-                        EXCEPTION_INVALID_STRING_REPRESENTATION,
-                        "PackFile header failed during unpack");
-        }
-
-        unused = STATICSELF.shift_pmc();
-        Parrot_visit_loop_visit(INTERP, SELF);
-
-        /* we're done reading the image */
-        PARROT_ASSERT(!INFO_HAS_DATA(SELF));
-        Parrot_visit_loop_thawfinish(INTERP, SELF);
-    }
-
-
-/*
-
-=back
-
-=cut
-
-*/
-
-}
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Added: branches/gc_massacre/src/pmc/imageiofreeze.pmc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gc_massacre/src/pmc/imageiofreeze.pmc	Wed Sep 22 10:45:52 2010	(r49243)
@@ -0,0 +1,526 @@
+/*
+Copyright (C) 2010, Parrot Foundation.
+$Id$
+
+=head1 NAME
+
+src/pmc/imageiofreeze.pmc - ImageIOFreeze PMC
+
+=head1 DESCRIPTION
+
+Freezes other PMCs.
+
+=head1 FUNCTIONS
+
+=over 4
+
+=cut
+
+*/
+
+#include "parrot/imageio.h"
+
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static void create_buffer(PARROT_INTERP,
+    ARGIN_NULLOK(PMC *pmc),
+    ARGMOD(PMC *info))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(3)
+        FUNC_MODIFIES(*info);
+
+PARROT_INLINE
+static void ensure_buffer_size(PARROT_INTERP, ARGIN(PMC *io), size_t len)
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+PARROT_INLINE
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+static opcode_t * GET_VISIT_CURSOR(ARGIN(const PMC *pmc))
+        __attribute__nonnull__(1);
+
+PARROT_INLINE
+static void INC_VISIT_CURSOR(ARGMOD(PMC *pmc), UINTVAL inc)
+        __attribute__nonnull__(1)
+        FUNC_MODIFIES(*pmc);
+
+PARROT_INLINE
+static void SET_VISIT_CURSOR(ARGMOD(PMC *pmc), ARGIN(const char *cursor))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(*pmc);
+
+#define ASSERT_ARGS_create_buffer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(info))
+#define ASSERT_ARGS_ensure_buffer_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(io))
+#define ASSERT_ARGS_GET_VISIT_CURSOR __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(pmc))
+#define ASSERT_ARGS_INC_VISIT_CURSOR __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(pmc))
+#define ASSERT_ARGS_SET_VISIT_CURSOR __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(pmc) \
+    , PARROT_ASSERT_ARG(cursor))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+/* HEADERIZER END: static */
+
+/*
+
+=item C<static opcode_t * GET_VISIT_CURSOR(const PMC *pmc)>
+
+Get the buffer cursor. Buffer relocations are handled.
+
+=cut
+
+*/
+
+PARROT_INLINE
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+static opcode_t *
+GET_VISIT_CURSOR(ARGIN(const PMC *pmc))
+{
+    ASSERT_ARGS(GET_VISIT_CURSOR)
+
+    char * const buf = (char *)Buffer_bufstart(PARROT_IMAGEIOFREEZE(pmc)->buffer);
+    const size_t pos = PARROT_IMAGEIOFREEZE(pmc)->pos;
+    return (opcode_t *)(buf + pos);
+}
+
+/*
+
+=item C<static void SET_VISIT_CURSOR(PMC *pmc, const char *cursor)>
+
+Set the buffer cursor. Buffer relocations are handled.
+
+=cut
+
+*/
+
+
+PARROT_INLINE
+static void
+SET_VISIT_CURSOR(ARGMOD(PMC *pmc), ARGIN(const char *cursor))
+{
+    ASSERT_ARGS(SET_VISIT_CURSOR)
+
+    const char * const bufstart  = (const char *)Buffer_bufstart(PARROT_IMAGEIOFREEZE(pmc)->buffer);
+    PARROT_IMAGEIOFREEZE(pmc)->pos = (cursor - bufstart);
+}
+
+/*
+
+=item C<static void INC_VISIT_CURSOR(PMC *pmc, UINTVAL inc)>
+
+Increment the buffer cursor. Buffer relocations are handled.
+
+=cut
+
+*/
+
+
+PARROT_INLINE
+static void
+INC_VISIT_CURSOR(ARGMOD(PMC *pmc), UINTVAL inc)
+{
+    ASSERT_ARGS(INC_VISIT_CURSOR)
+
+    PARROT_IMAGEIOFREEZE(pmc)->pos += inc;
+}
+
+
+/*
+
+=item C<static void create_buffer(PARROT_INTERP, PMC *pmc, PMC *info)>
+
+Allocate the image buffer.
+
+=cut
+
+*/
+
+static void
+create_buffer(PARROT_INTERP, ARGIN_NULLOK(PMC *pmc), ARGMOD(PMC *info))
+{
+    ASSERT_ARGS(create_buffer)
+
+    INTVAL  len;
+
+    if (!PMC_IS_NULL(pmc)) {
+        STRING * const array = CONST_STRING(interp, "array");
+        STRING * const hash  = CONST_STRING(interp, "hash");
+        INTVAL         items = 1;
+
+        if (VTABLE_does(interp, pmc, array) || VTABLE_does(interp, pmc, hash))
+            items += VTABLE_elements(interp, pmc);
+
+        len = items * FREEZE_BYTES_PER_ITEM;
+    }
+    else
+        len = FREEZE_BYTES_PER_ITEM;
+
+    PARROT_IMAGEIOFREEZE(info)->buffer =
+        Parrot_gc_new_bufferlike_header(interp, sizeof (Buffer));
+    Parrot_gc_allocate_buffer_storage_aligned(interp,
+        PARROT_IMAGEIOFREEZE(info)->buffer, len);
+    SET_VISIT_CURSOR(info,
+        (const char *)Buffer_bufstart(PARROT_IMAGEIOFREEZE(info)->buffer));
+}
+
+/*
+
+=item C<static void ensure_buffer_size(PARROT_INTERP, PMC *io, size_t len)>
+
+Checks the size of the buffer to see if it can accommodate C<len> more
+bytes. If not, expands the buffer.
+
+=cut
+
+*/
+
+PARROT_INLINE
+static void
+ensure_buffer_size(PARROT_INTERP, ARGIN(PMC *io), size_t len)
+{
+    ASSERT_ARGS(ensure_buffer_size)
+
+    Buffer * const buf  = PARROT_IMAGEIOFREEZE(io)->buffer;
+    const size_t used   = PARROT_IMAGEIOFREEZE(io)->pos;
+    const int need_free = Buffer_buflen(buf) - used - len;
+
+    /* grow by factor 1.5 or such */
+    if (need_free <= 16) {
+        size_t new_size = (size_t) (Buffer_buflen(buf) * 1.5);
+
+        if (new_size < Buffer_buflen(buf) - need_free + 512)
+            new_size = Buffer_buflen(buf) - need_free + 512;
+
+        Parrot_gc_reallocate_buffer_storage(interp, buf, new_size);
+        PARROT_ASSERT(Buffer_buflen(buf) - used - len >= 15);
+    }
+
+#ifndef DISABLE_GC_DEBUG
+    Parrot_gc_compact_memory_pool(interp);
+#endif
+}
+
+pmclass ImageIOFreeze auto_attrs {
+    ATTR Buffer              *buffer;      /* buffer to store the image */
+    ATTR size_t               pos;         /* current read/write buf position */
+    ATTR PMC                 *seen;        /* seen hash */
+    ATTR PMC                 *todo;        /* todo list */
+    ATTR UINTVAL              id;          /* freze ID of PMC */
+    ATTR struct PackFile     *pf;
+    ATTR PackFile_ConstTable *pf_ct;
+
+/*
+
+=back
+
+=head1 VTABLES
+
+=over 4
+
+=cut
+
+*/
+
+/*
+
+=item C<void init()>
+
+Initializes the PMC.
+
+=cut
+
+*/
+    VTABLE void init() {
+        PARROT_IMAGEIOFREEZE(SELF)->seen = Parrot_pmc_new(INTERP, enum_class_Hash);
+        VTABLE_set_pointer(INTERP, PARROT_IMAGEIOFREEZE(SELF)->seen,
+            parrot_new_intval_hash(INTERP));
+
+        PARROT_IMAGEIOFREEZE(SELF)->todo =
+            Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
+
+        PObj_flag_CLEAR(private1, SELF);
+
+        PObj_custom_mark_SET(SELF);
+    }
+
+
+/*
+
+=item C<void destroy()>
+
+Destroys the PMC.
+
+=cut
+
+*/
+    VTABLE void destroy() {
+        PackFile_destroy(INTERP, PARROT_IMAGEIOFREEZE(SELF)->pf);
+        PARROT_IMAGEIOFREEZE(SELF)->pf = NULL;
+    }
+
+
+/*
+
+=item C<void mark()>
+
+Marks the PMC as alive.
+
+=cut
+
+*/
+    VTABLE void mark() {
+        PObj * const buffer = (PObj *)(PARROT_IMAGEIOFREEZE(SELF)->buffer);
+        if (buffer)
+            Parrot_gc_mark_PObj_alive(INTERP, buffer);
+        Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIOFREEZE(SELF)->todo);
+        Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIOFREEZE(SELF)->seen);
+    }
+
+
+/*
+
+=item C<STRING *get_string()>
+
+Returns the content of the image as a string.
+
+=cut
+
+*/
+
+    VTABLE STRING *get_string() {
+        return Parrot_str_new_from_buffer(INTERP,
+                                          PARROT_IMAGEIOFREEZE(SELF)->buffer,
+                                          PARROT_IMAGEIOFREEZE(SELF)->pos);
+    }
+
+
+/*
+
+=item C<VTABLE PMC *get_iter()>
+
+Get the C<todo> list for this freeze/thaw for iterating over.
+
+=cut
+
+*/
+
+    VTABLE PMC *get_iter() {
+        return PARROT_IMAGEIOFREEZE(SELF)->todo;
+    }
+
+/*
+
+=item C<VTABLE INTVAL get_integer()>
+
+Returns the flags describing the visit action.
+
+=cut
+
+*/
+
+    VTABLE INTVAL get_integer() {
+        return VISIT_FREEZE_NORMAL;
+    }
+
+
+/*
+
+=item C<VTABLE void push_integer(INTVAL v)>
+
+Pushes the integer C<v> onto the end of the image.
+
+=cut
+
+*/
+
+    VTABLE void push_integer(INTVAL v) {
+        const size_t len = PF_size_integer() * sizeof (opcode_t);
+        ensure_buffer_size(INTERP, SELF, len);
+        SET_VISIT_CURSOR(SELF,
+            (const char *)PF_store_integer(GET_VISIT_CURSOR(SELF), v));
+    }
+
+
+/*
+
+=item C<VTABLE void push_float(FLOATVAL v)>
+
+Pushes the float C<v> onto the end of the image.
+
+=cut
+
+*/
+
+    VTABLE void push_float(FLOATVAL v) {
+        const size_t len = PF_size_number() * sizeof (opcode_t);
+        ensure_buffer_size(INTERP, SELF, len);
+        SET_VISIT_CURSOR(SELF,
+            (const char *)PF_store_number(GET_VISIT_CURSOR(SELF), &v));
+    }
+
+
+/*
+
+=item C<VTABLE void push_string(STRING *v)>
+
+Pushes the string C<*v> onto the end of the image.
+
+=cut
+
+*/
+
+    VTABLE void push_string(STRING *v) {
+        if (PObj_flag_TEST(private1, SELF)) {
+            /* store a reference to constant table entry of string */
+            PMC                 * const v_pmc = key_new_string(interp, v);
+            PackFile_ConstTable * const table = PARROT_IMAGEIOFREEZE(SELF)->pf_ct;
+            const int idx =
+                PackFile_ConstTable_rlookup(INTERP, table, v_pmc, PFC_STRING);
+
+            if (idx >= 0) {
+                STATICSELF.push_integer(idx);
+                return;
+            }
+
+            /* XXX handle cases where the PMC has changed after
+             * Parrot_freeze_strings was called eg: :immediate subs */
+            STATICSELF.push_integer(-1);
+
+            /* TODO
+             * should really be:
+             * PANIC(INTERP, "string not previously in constant table "
+             *               "when freezing to packfile"); */
+        }
+
+        {
+            const size_t len = PF_size_string(v) * sizeof (opcode_t);
+            ensure_buffer_size(INTERP, SELF, len);
+            SET_VISIT_CURSOR(SELF,
+                (const char *)PF_store_string(GET_VISIT_CURSOR(SELF), v));
+        }
+    }
+
+
+/*
+
+=item C<VTABLE void push_pmc(PMC *v)>
+
+Pushes a reference to pmc C<*v> onto the end of the image. If C<*v>
+hasn't been seen yet, it is also pushed onto the todo list.
+
+=cut
+
+*/
+
+    VTABLE void push_pmc(PMC *v) {
+        UINTVAL id;
+        int packid_type;
+
+        if (PMC_IS_NULL(v)) {
+            id   = 0;
+            packid_type = enum_PackID_seen;
+        }
+        else {
+            Hash * const hash = (Hash *)VTABLE_get_pointer(INTERP,
+                    PARROT_IMAGEIOFREEZE(SELF)->seen);
+            HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, v);
+
+            if (b) {
+                id = (UINTVAL)b->value;
+                packid_type = enum_PackID_seen;
+            }
+            else {
+                ++PARROT_IMAGEIOFREEZE(SELF)->id; /* next id to freeze */
+                id = PARROT_IMAGEIOFREEZE(SELF)->id;
+                packid_type = enum_PackID_normal;
+            }
+        }
+
+        SELF.push_integer(PackID_new(id, packid_type));
+
+        if (packid_type == enum_PackID_normal) {
+            Hash * const hash = (Hash *)VTABLE_get_pointer(INTERP,
+                    PARROT_IMAGEIOFREEZE(SELF)->seen);
+
+            PARROT_ASSERT(v);
+
+            /* workaround to keep ParrotInterpreter PBC hack working */
+            if (v->vtable->base_type == enum_class_ParrotInterpreter)
+                PObj_flag_CLEAR(private1, SELF);
+
+            SELF.push_integer(
+                    PObj_is_object_TEST(v)
+                    ? (INTVAL) enum_class_Object
+                    : v->vtable->base_type);
+
+            parrot_hash_put(INTERP, hash, v, (void *)id);
+            VTABLE_push_pmc(INTERP, PARROT_IMAGEIOFREEZE(SELF)->todo, v);
+        }
+    }
+
+
+/*
+
+=item C<void set_pointer(void *value)>
+
+Sets the constant table of this ImageIO PMC.
+
+=cut
+
+*/
+
+    VTABLE void set_pointer(void *value) {
+        PObj_flag_SET(private1, SELF);
+        PARROT_IMAGEIOFREEZE(SELF)->pf_ct = (PackFile_ConstTable *)value;
+    }
+
+
+    VTABLE void set_pmc(PMC *p)
+    {
+        create_buffer(INTERP, p, SELF);
+
+        if (PObj_flag_TEST(private1, SELF)) {
+            PARROT_IMAGEIOFREEZE(SELF)->pf = PARROT_IMAGEIOFREEZE(SELF)->pf_ct->base.pf;
+        }
+        else {
+            const UINTVAL header_length =
+                GROW_TO_16_BYTE_BOUNDARY(PACKFILE_HEADER_BYTES);
+
+            PARROT_IMAGEIOFREEZE(SELF)->pf = PackFile_new(INTERP, 0);
+            PObj_custom_destroy_SET(SELF);
+
+            ensure_buffer_size(INTERP, SELF, header_length);
+            mem_sys_memcopy(GET_VISIT_CURSOR(SELF),
+                PARROT_IMAGEIOFREEZE(SELF)->pf->header, PACKFILE_HEADER_BYTES);
+            INC_VISIT_CURSOR(SELF, header_length);
+        }
+
+        STATICSELF.push_pmc(p);
+        Parrot_visit_loop_visit(INTERP, SELF);
+    }
+}
+
+
+/*
+
+=back
+
+=cut
+
+*/
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Added: branches/gc_massacre/src/pmc/imageiothaw.pmc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/gc_massacre/src/pmc/imageiothaw.pmc	Wed Sep 22 10:45:52 2010	(r49243)
@@ -0,0 +1,355 @@
+/*
+Copyright (C) 2010, Parrot Foundation.
+$Id$
+
+=head1 NAME
+
+src/pmc/imageiothaw.pmc - ImageIOThaw PMC
+
+=head1 DESCRIPTION
+
+Thaws PMCs from packfile images.
+
+=head1 VTABLES
+
+=over 4
+
+=cut
+
+*/
+
+#include "parrot/imageio.h"
+
+#define BYTECODE_SHIFT_OK(interp, pmc) PARROT_ASSERT( \
+    PARROT_IMAGEIOTHAW(pmc)->curs <= (opcode_t *) \
+    (PARROT_IMAGEIOTHAW(pmc)->img->strstart + \
+    Parrot_str_byte_length((interp), PARROT_IMAGEIOTHAW(pmc)->img)))
+
+
+/* HEADERIZER HFILE: none */
+
+pmclass ImageIOThaw auto_attrs {
+    ATTR STRING              *img;
+    ATTR opcode_t            *curs;
+    ATTR PMC                 *todo;
+    ATTR PackFile            *pf;
+    ATTR PackFile_ConstTable *pf_ct;
+
+/*
+
+=item C<void init()>
+
+Initializes the PMC.
+
+=cut
+
+*/
+
+    VTABLE void init() {
+        PARROT_IMAGEIOTHAW(SELF)->todo =
+            Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
+
+        PObj_flag_CLEAR(private1, SELF);
+
+        PObj_custom_mark_SET(SELF);
+    }
+
+
+/*
+
+=item C<void destroy()>
+
+Destroys the PMC.
+
+=cut
+
+*/
+
+    VTABLE void destroy() {
+        PackFile_destroy(INTERP, PARROT_IMAGEIOTHAW(SELF)->pf);
+        PARROT_IMAGEIOTHAW(SELF)->pf = NULL;
+    }
+
+
+/*
+
+=item C<void mark()>
+
+Marks the PMC as alive.
+
+=cut
+
+*/
+
+    VTABLE void mark() {
+        Parrot_gc_mark_STRING_alive(INTERP, PARROT_IMAGEIOTHAW(SELF)->img);
+        Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIOTHAW(SELF)->todo);
+    }
+
+
+/*
+
+=item C<void set_string_native(STRING *image)>
+
+Thaws the PMC contained in C<image>.
+
+=cut
+
+*/
+
+    VTABLE void set_string_native(STRING *image) {
+        if (!PObj_external_TEST(image))
+            Parrot_str_pin(INTERP, image);
+
+        PARROT_IMAGEIOTHAW(SELF)->img  = image;
+        PARROT_IMAGEIOTHAW(SELF)->curs = (opcode_t *)image->strstart;
+
+        if (PObj_flag_TEST(private1, SELF)) {
+            PARROT_IMAGEIOTHAW(SELF)->pf = PARROT_IMAGEIOTHAW(SELF)->pf_ct->base.pf;
+        }
+        else {
+            const UINTVAL header_length =
+                 GROW_TO_16_BYTE_BOUNDARY(PACKFILE_HEADER_BYTES);
+            int unpacked_length;
+
+            PARROT_IMAGEIOTHAW(SELF)->pf   = PackFile_new(INTERP, 0);
+            PObj_custom_destroy_SET(SELF);
+
+            PARROT_IMAGEIOTHAW(SELF)->pf->options |= PFOPT_PMC_FREEZE_ONLY;
+            unpacked_length = PackFile_unpack(INTERP, PARROT_IMAGEIOTHAW(SELF)->pf,
+                                PARROT_IMAGEIOTHAW(SELF)->curs,
+                                Parrot_str_byte_length(interp, image));
+
+            if (unpacked_length)
+                PARROT_IMAGEIOTHAW(SELF)->curs += header_length / sizeof (opcode_t*);
+            else
+                Parrot_ex_throw_from_c_args(INTERP, NULL,
+                        EXCEPTION_INVALID_STRING_REPRESENTATION,
+                        "PackFile header failed during unpack");
+        }
+
+        STATICSELF.shift_pmc();
+        Parrot_visit_loop_visit(INTERP, SELF);
+
+        /* we're done reading the image */
+        PARROT_ASSERT(image->strstart + Parrot_str_byte_length(interp, image) ==
+                    (char *)PARROT_IMAGEIOTHAW(SELF)->curs);
+
+        Parrot_visit_loop_thawfinish(INTERP, SELF);
+
+        if (!PObj_external_TEST(image))
+            Parrot_str_unpin(INTERP, image);
+    }
+
+
+/*
+
+=item C<PMC *get_iter()>
+
+Gets the todo list for iterating over.
+
+=cut
+
+*/
+
+    VTABLE PMC *get_iter() {
+        return PARROT_IMAGEIOTHAW(SELF)->todo;
+    }
+
+/*
+
+=item C<PMC *get_pmc()>
+
+Get the thawed PMC.
+
+=cut
+
+*/
+
+    VTABLE PMC *get_pmc() {
+        return VTABLE_get_pmc_keyed_int(INTERP,
+            (PARROT_IMAGEIOTHAW(SELF))->todo, 0);
+    }
+
+
+/*
+
+=item C<INTVAL get_integer()>
+
+Get the visit action.
+
+=cut
+
+*/
+
+    VTABLE INTVAL get_integer() {
+        return VISIT_THAW_NORMAL;
+    }
+
+
+/*
+
+=item C<void set_pointer(void *value)>
+
+Set an exterior constant table to use for cross-referencing constants.
+
+=cut
+
+*/
+
+    VTABLE void set_pointer(void *value) {
+        PObj_flag_SET(private1, SELF);
+        PARROT_IMAGEIOTHAW(SELF)->pf_ct = (PackFile_ConstTable *)value;
+    }
+
+
+/*
+
+=item C<INTVAL shift_integer()>
+
+Retreive an integer as the next item from the image.
+
+=cut
+
+*/
+
+    VTABLE INTVAL shift_integer() {
+        /* inlining PF_fetch_integer speeds up PBC thawing measurably */
+        const PackFile      *pf        = PARROT_IMAGEIOTHAW(SELF)->pf;
+        const unsigned char *stream    = (const unsigned char *)PARROT_IMAGEIOTHAW(SELF)->curs;
+        const INTVAL         i         = pf->fetch_iv(stream);
+        PARROT_IMAGEIOTHAW(SELF)->curs = (opcode_t *)(stream + pf->header->wordsize);
+        BYTECODE_SHIFT_OK(INTERP, SELF);
+        return i;
+    }
+
+
+/*
+
+=item C<FLOATVAL shift_float()>
+
+Retreive a float as the next item from the image.
+
+=cut
+
+*/
+
+    VTABLE FLOATVAL shift_float() {
+        PackFile       *pf             = PARROT_IMAGEIOTHAW(SELF)->pf;
+        const opcode_t *curs           = PARROT_IMAGEIOTHAW(SELF)->curs;
+        FLOATVAL        f              = PF_fetch_number(pf, &curs);
+        PARROT_IMAGEIOTHAW(SELF)->curs = (opcode_t *)curs;
+        BYTECODE_SHIFT_OK(INTERP, SELF);
+        return f;
+    }
+
+
+/*
+
+=item C<STRING *shift_string()>
+
+Retreive a string as the next item from the image.
+
+=cut
+
+*/
+
+    VTABLE STRING *shift_string() {
+        if (PObj_flag_TEST(private1, SELF)) {
+            const INTVAL i = STATICSELF.shift_integer();
+            BYTECODE_SHIFT_OK(INTERP, SELF);
+
+            if (i >= 0) {
+                PackFile_ConstTable *table = PARROT_IMAGEIOTHAW(SELF)->pf_ct;
+
+                if (!table->constants[i].type)
+                    Parrot_ex_throw_from_c_args(interp, NULL,
+                            EXCEPTION_MALFORMED_PACKFILE,
+                            "Reference to constant not yet unpacked %d", i);
+                return table->constants[i].u.string;
+            }
+
+            /* XXX
+             * only got here because constant table doesn't contain the string
+             * fallback on inline strings
+             */
+        }
+
+        {
+            PackFile *pf                   = PARROT_IMAGEIOTHAW(SELF)->pf;
+            const opcode_t *curs           = PARROT_IMAGEIOTHAW(SELF)->curs;
+            STRING   *s                    = PF_fetch_string(INTERP, pf, &curs);
+            PARROT_IMAGEIOTHAW(SELF)->curs = (opcode_t *)curs;
+            BYTECODE_SHIFT_OK(INTERP, SELF);
+            return s;
+        }
+    }
+
+
+/*
+
+=item C<PMC *shift_pmc()>
+
+Retreive a PMC as the next item from the image.
+
+=cut
+
+*/
+
+    VTABLE PMC *shift_pmc() {
+        const UINTVAL  n            = SELF.shift_integer();
+        const INTVAL   id           = PackID_get_PMCID(n);
+        const int      packid_flags = PackID_get_FLAGS(n);
+        PMC           *pmc          = PMCNULL;
+        PMC           *todo         = PARROT_IMAGEIOTHAW(SELF)->todo;
+
+        switch (packid_flags) {
+            case enum_PackID_seen:
+                if (id) /* got a non-NULL PMC */
+                    pmc = VTABLE_get_pmc_keyed_int(INTERP, todo, id - 1);
+                break;
+            case enum_PackID_normal:
+                {
+                    const INTVAL type = SELF.shift_integer();
+
+                    PARROT_ASSERT(id - 1 == VTABLE_elements(INTERP, todo));
+
+                    if (type <= 0 || type > INTERP->n_vtable_max)
+                        Parrot_ex_throw_from_c_args(INTERP, NULL, 1,
+                                "Unknown PMC type to thaw %d", type);
+
+                    /* workaround to keep ParrotInterpreter PBC hack working */
+                    if (type == enum_class_ParrotInterpreter)
+                        PObj_flag_CLEAR(private1, SELF);
+
+                    pmc = Parrot_pmc_new_noinit(INTERP, type);
+
+                    VTABLE_set_pmc_keyed_int(INTERP, todo, id - 1, pmc);
+                }
+                break;
+            default:
+                Parrot_ex_throw_from_c_args(INTERP, NULL, 1,
+                        "Unknown PMC id args thaw %d", packid_flags);
+                break;
+        }
+
+        return pmc;
+    }
+
+}
+
+/*
+
+=back
+
+=cut
+
+*/
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
+

Modified: branches/gc_massacre/src/pmc/lexpad.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/lexpad.pmc	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/pmc/lexpad.pmc	Wed Sep 22 10:45:52 2010	(r49243)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2007-2009, Parrot Foundation.
+Copyright (C) 2007-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -97,10 +97,14 @@
     }
 
     VTABLE INTVAL exists_keyed_str(STRING *name) {
-        PMC *info;
+        PMC  *info;
+        Hash *hash;
         GET_ATTR_lexinfo(INTERP, SELF, info);
-        return parrot_hash_get_bucket(INTERP,
-                (Hash *)VTABLE_get_pointer(INTERP, info), name) != 0;
+        hash = (Hash *)VTABLE_get_pointer(INTERP, info);
+
+        return hash->entries
+            ? (parrot_hash_get_bucket(INTERP, hash, name) != 0)
+            : 0;
     }
 
     VTABLE INTVAL exists_keyed(PMC *name) {
@@ -109,23 +113,24 @@
     }
 
     VTABLE PMC *get_pmc_keyed_str(STRING *name) {
-        PMC              * info;
-        Hash             * hash;
-        PMC              * ctx;
-        HashBucket       * b;
-        INTVAL            regno;
+        PMC        *info;
+        Hash       *hash;
+        PMC        *ctx;
+        HashBucket *b;
 
         GET_ATTR_lexinfo(INTERP, SELF, info);
-        GET_ATTR_ctx(INTERP, SELF, ctx);
         hash = (Hash *)VTABLE_get_pointer(INTERP, info);
-        b    = parrot_hash_get_bucket(INTERP, hash, name);
 
-        if (!b)
-            return NULL;
+        if (!hash->entries)
+            return PMCNULL;
 
-        regno = (INTVAL) b->value;
+        b = parrot_hash_get_bucket(INTERP, hash, name);
+
+        if (!b)
+            return PMCNULL;
 
-        return CTX_REG_PMC(ctx, regno);
+        GET_ATTR_ctx(INTERP, SELF, ctx);
+        return CTX_REG_PMC(ctx, (INTVAL)b->value);
     }
 
     VTABLE PMC *get_pmc_keyed(PMC *name) {
@@ -138,10 +143,8 @@
         Hash             * hash;
         PMC              * ctx;
         HashBucket       * b;
-        INTVAL             regno;
 
         GET_ATTR_lexinfo(INTERP, SELF, info);
-        GET_ATTR_ctx(INTERP, SELF, ctx);
         hash = (Hash *)VTABLE_get_pointer(INTERP, info);
         b    = parrot_hash_get_bucket(INTERP, hash, name);
 
@@ -149,8 +152,8 @@
             Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LEX_NOT_FOUND,
                 "Lexical '%Ss' not found", name);
 
-        regno                   = (INTVAL) b->value;
-        CTX_REG_PMC(ctx, regno) = value;
+        GET_ATTR_ctx(INTERP, SELF, ctx);
+        CTX_REG_PMC(ctx, (INTVAL)b->value) = value;
     }
 
     VTABLE void set_pmc_keyed(PMC *name, PMC *value) {

Modified: branches/gc_massacre/src/pmc/nci.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/nci.pmc	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/pmc/nci.pmc	Wed Sep 22 10:45:52 2010	(r49243)
@@ -143,7 +143,7 @@
     nci_info->pcc_return_signature =
         Parrot_str_new(interp, sig_buf, 1);
 
-    nci_info->pcc_params_signature = j ?
+    nci_info->pcc_params_signature = j > 1 ?
         Parrot_str_new(interp, sig_buf + 1, j - 1) :
         CONST_STRING(interp, "");
 

Modified: branches/gc_massacre/src/pmc/sub.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/sub.pmc	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/pmc/sub.pmc	Wed Sep 22 10:45:52 2010	(r49243)
@@ -743,7 +743,7 @@
         INTVAL flags;
         int    i;
 
-        SUPER(info);
+        STATICSELF.init();
 
         PMC_get_sub(INTERP, SELF, sub);
 

Modified: branches/gc_massacre/src/pmc_freeze.c
==============================================================================
--- branches/gc_massacre/src/pmc_freeze.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/pmc_freeze.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -54,7 +54,7 @@
 Parrot_freeze(PARROT_INTERP, ARGIN(PMC *pmc))
 {
     ASSERT_ARGS(Parrot_freeze)
-    PMC * const image = Parrot_pmc_new(interp, enum_class_ImageIO);
+    PMC * const image = Parrot_pmc_new(interp, enum_class_ImageIOFreeze);
     VTABLE_set_pmc(interp, image, pmc);
     return VTABLE_get_string(interp, image);
 }
@@ -83,7 +83,7 @@
     STRING *image;
     DECL_CONST_CAST;
 
-    visitor  = Parrot_pmc_new(interp, enum_class_ImageIO);
+    visitor  = Parrot_pmc_new(interp, enum_class_ImageIOFreeze);
     VTABLE_set_pointer(interp, visitor,
         PARROT_const_cast(void *, (const void *)pf));
     VTABLE_set_pmc(interp, visitor, pmc);
@@ -199,7 +199,7 @@
     ASSERT_ARGS(Parrot_thaw)
 
     PMC        *result;
-    PMC * const info     = Parrot_pmc_new(interp, enum_class_ImageIO);
+    PMC * const info     = Parrot_pmc_new(interp, enum_class_ImageIOThaw);
     int         gc_block = 0;
 
     /*
@@ -251,7 +251,7 @@
     ASSERT_ARGS(Parrot_thaw_pbc)
     PackFile * const pf = ct->base.pf;
     STRING *image       = PF_fetch_buf(interp, pf, cursor);
-    PMC *info           = Parrot_pmc_new(interp, enum_class_ImageIO);
+    PMC *info           = Parrot_pmc_new(interp, enum_class_ImageIOThaw);
     VTABLE_set_pointer(interp, info, ct);
     VTABLE_set_string_native(interp, info, image);
     return VTABLE_get_pmc(interp, info);

Modified: branches/gc_massacre/src/runcore/main.c
==============================================================================
--- branches/gc_massacre/src/runcore/main.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/runcore/main.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -338,12 +338,17 @@
 parrot_hash_oplib(PARROT_INTERP, ARGIN(op_lib_t *lib))
 {
     ASSERT_ARGS(parrot_hash_oplib)
-    int i;
+
+    size_t i;
+
     for (i = 0; i < lib->op_count; i++) {
         op_info_t *op = &lib->op_info_table[i];
-        parrot_hash_put(interp, interp->op_hash, (void *)op->full_name, (void *)op);
+        parrot_hash_put(interp, interp->op_hash, (void *)op->full_name,
+                                                 (void *)op);
+
         if (!parrot_hash_exists(interp, interp->op_hash, (void *)op->name))
-            parrot_hash_put(interp, interp->op_hash, (void *)op->name, (void *)op);
+            parrot_hash_put(interp, interp->op_hash, (void *)op->name,
+                                                     (void *)op);
     }
 }
 
@@ -401,7 +406,7 @@
 
     /* ensure event checking table is big enough */
     if (interp->evc_func_table_size < cs->op_count) {
-        int i;
+        size_t i;
         op_lib_t *core_lib = get_core_op_lib_init(interp, interp->run_core)(interp, 1);
 
         interp->evc_func_table = interp->evc_func_table ?

Modified: branches/gc_massacre/src/runcore/trace.c
==============================================================================
--- branches/gc_massacre/src/runcore/trace.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/runcore/trace.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -239,7 +239,7 @@
             break;
           case KEY_string_FLAG|KEY_register_FLAG:
             {
-            const INTVAL keynum = VTABLE_get_integer(interp, key);
+            const UINTVAL keynum = (UINTVAL)VTABLE_get_integer(interp, key);
             if (keynum < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_STR)) {
                 const STRING * const s = REG_STR(interp, keynum);
                 STRING * const escaped = Parrot_str_escape_truncate(interp, s, 20);

Modified: branches/gc_massacre/src/string/api.c
==============================================================================
--- branches/gc_massacre/src/string/api.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/string/api.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -1012,7 +1012,7 @@
     ASSERT_STRING_SANITY(src);
 
     /* Allow regexes to return $' easily for "aaa" =~ /aaa/ */
-    if (offset == src_length || length < 1)
+    if (true_offset == src_length || length < 1)
         return CONST_STRING(interp, "");
 
     if (offset < 0)
@@ -2572,6 +2572,7 @@
             pending = 0;
             next = c;
             if (c == '\\') {
+                if (itersrc.bytepos >= srclen) break;
                 c = STRING_iter_get_and_advance(interp, src, &itersrc);
                 switch (c) {
                 /* Common one char sequences */
@@ -2585,6 +2586,7 @@
                 case 'e': next = '\x1B'; break;
                 /* Escape character */
                 case 'c':
+                    if (itersrc.bytepos >= srclen) break;
                     c = STRING_iter_get_and_advance(interp, src, &itersrc);
                     /* This assumes ascii-alike encoding */
                     if (c < 'A' || c > 'Z')
@@ -2593,6 +2595,7 @@
                     break;
                 case 'x':
                     digcount = 0;
+                    if (itersrc.bytepos >= srclen) break;
                     c = STRING_iter_get_and_advance(interp, src, &itersrc);
                     if (c == '{') {
                         /* \x{h..h} 1..8 hex digits */
@@ -2632,6 +2635,7 @@
                 case 'u':
                     /* \uhhhh 4 hex digits */
                     for (digcount = 0; digcount < 4; ++digcount) {
+                        if (itersrc.bytepos >= srclen) break;
                         c = STRING_iter_get_and_advance(interp, src, &itersrc);
                         if (!isxdigit(c))
                             throw_illegal_escape(interp);
@@ -2643,6 +2647,7 @@
                 case 'U':
                     /* \Uhhhhhhhh 8 hex digits */
                     for (digcount = 0; digcount < 8; ++digcount) {
+                        if (itersrc.bytepos >= srclen) break;
                         c = STRING_iter_get_and_advance(interp, src, &itersrc);
                         if (!isxdigit(c))
                             throw_illegal_escape(interp);
@@ -2656,6 +2661,7 @@
                     /* \ooo 1..3 oct digits */
                     digbuf[0] = c;
                     for (digcount = 1; digcount < 3; ++digcount) {
+                        if (itersrc.bytepos >= srclen) break;
                         c = STRING_iter_get_and_advance(interp, src, &itersrc);
                         if (c < '0' || c > '7')
                             break;
@@ -2663,7 +2669,7 @@
                     }
                     digbuf[digcount] = '\0';
                     next = strtol(digbuf, NULL, 8);
-                    if (digcount < 3)
+                    if (itersrc.bytepos < srclen && digcount < 3)
                         pending = 1;
                     break;
                 default:

Modified: branches/gc_massacre/src/string/encoding/ascii.c
==============================================================================
--- branches/gc_massacre/src/string/encoding/ascii.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/string/encoding/ascii.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -17,11 +17,10 @@
 */
 
 #include "parrot/parrot.h"
-#include "ascii.h"
 #include "shared.h"
 #include "tables.h"
 
-/* HEADERIZER HFILE: src/string/encoding/ascii.h */
+/* HEADERIZER HFILE: none */
 
 /* HEADERIZER BEGIN: static */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */

Deleted: branches/gc_massacre/src/string/encoding/ascii.h
==============================================================================
--- branches/gc_massacre/src/string/encoding/ascii.h	Wed Sep 22 10:45:52 2010	(r49242)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,30 +0,0 @@
-/* ascii.h
- *  Copyright (C) 2004-2010, Parrot Foundation.
- *  SVN Info
- *     $Id$
- *  Overview:
- *     This is the header for the 8-bit fixed-width encoding
- *  Data Structure and Algorithms:
- *  History:
- *  Notes:
- *  References:
- */
-
-#ifndef PARROT_ENCODING_ASCII_H_GUARD
-#define PARROT_ENCODING_ASCII_H_GUARD
-
-/* HEADERIZER BEGIN: src/string/encoding/ascii.c */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-
-
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-/* HEADERIZER END: src/string/encoding/ascii.c */
-
-#endif /* PARROT_ENCODING_ASCII_H_GUARD */
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Modified: branches/gc_massacre/src/string/encoding/binary.c
==============================================================================
--- branches/gc_massacre/src/string/encoding/binary.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/string/encoding/binary.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -17,10 +17,9 @@
 */
 
 #include "parrot/parrot.h"
-#include "binary.h"
 #include "shared.h"
 
-/* HEADERIZER HFILE: src/string/encoding/binary.h */
+/* HEADERIZER HFILE: none */
 
 /* HEADERIZER BEGIN: static */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */

Deleted: branches/gc_massacre/src/string/encoding/binary.h
==============================================================================
--- branches/gc_massacre/src/string/encoding/binary.h	Wed Sep 22 10:45:52 2010	(r49242)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,30 +0,0 @@
-/* binary.h
- *  Copyright (C) 2004-2007, Parrot Foundation.
- *  SVN Info
- *     $Id$
- *  Overview:
- *     This is the header for the binary charset functions
- *  Data Structure and Algorithms:
- *  History:
- *  Notes:
- *  References:
- */
-
-#ifndef PARROT_ENCODING_BINARY_H_GUARD
-#define PARROT_ENCODING_BINARY_H_GUARD
-
-/* HEADERIZER BEGIN: src/string/encoding/binary.c */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-
-
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-/* HEADERIZER END: src/string/encoding/binary.c */
-
-#endif /* PARROT_ENCODING_BINARY_H_GUARD */
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Modified: branches/gc_massacre/src/string/encoding/latin1.c
==============================================================================
--- branches/gc_massacre/src/string/encoding/latin1.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/string/encoding/latin1.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -17,11 +17,10 @@
 */
 
 #include "parrot/parrot.h"
-#include "latin1.h"
 #include "shared.h"
 #include "tables.h"
 
-/* HEADERIZER HFILE: src/string/encoding/latin1.h */
+/* HEADERIZER HFILE: none */
 
 /* HEADERIZER BEGIN: static */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */

Deleted: branches/gc_massacre/src/string/encoding/latin1.h
==============================================================================
--- branches/gc_massacre/src/string/encoding/latin1.h	Wed Sep 22 10:45:52 2010	(r49242)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,30 +0,0 @@
-/* iso_8859_1.h
- *  Copyright (C) 2004-2007, Parrot Foundation.
- *  SVN Info
- *     $Id$
- *  Overview:
- *     This is the header for the iso_8859-1 charset functions
- *  Data Structure and Algorithms:
- *  History:
- *  Notes:
- *  References:
- */
-
-#ifndef PARROT_ENCODING_LATIN1_H_GUARD
-#define PARROT_ENCODING_LATIN1_H_GUARD
-
-/* HEADERIZER BEGIN: src/string/encoding/latin1.c */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-
-
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-/* HEADERIZER END: src/string/encoding/latin1.c */
-
-#endif /* PARROT_ENCODING_LATIN1_H_GUARD */
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Modified: branches/gc_massacre/src/string/encoding/ucs2.c
==============================================================================
--- branches/gc_massacre/src/string/encoding/ucs2.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/string/encoding/ucs2.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -19,7 +19,6 @@
 */
 
 #include "parrot/parrot.h"
-#include "../unicode.h"
 #include "shared.h"
 
 #if !PARROT_HAS_ICU
@@ -32,7 +31,7 @@
 }
 #endif
 
-/* HEADERIZER HFILE: src/string/encoding/ucs2.h */
+/* HEADERIZER HFILE: none */
 
 /* HEADERIZER BEGIN: static */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
@@ -151,8 +150,6 @@
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
-#include "ucs2.h"
-
 #if PARROT_HAS_ICU
 #  include <unicode/ustring.h>
 #endif

Deleted: branches/gc_massacre/src/string/encoding/ucs2.h
==============================================================================
--- branches/gc_massacre/src/string/encoding/ucs2.h	Wed Sep 22 10:45:52 2010	(r49242)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,30 +0,0 @@
-/* ucs2.h
- *  Copyright (C) 2004, Parrot Foundation.
- *  SVN Info
- *     $Id$
- *  Overview:
- *     This is the header for the ucs2 fixed-width encoding.
- *  Data Structure and Algorithms:
- *  History:
- *  Notes:
- *  References:
- */
-
-#ifndef PARROT_ENCODING_UCS2_H_GUARD
-#define PARROT_ENCODING_UCS2_H_GUARD
-
-/* HEADERIZER BEGIN: src/string/encoding/ucs2.c */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-
-
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-/* HEADERIZER END: src/string/encoding/ucs2.c */
-
-#endif /* PARROT_ENCODING_UCS2_H_GUARD */
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Modified: branches/gc_massacre/src/string/encoding/ucs4.c
==============================================================================
--- branches/gc_massacre/src/string/encoding/ucs4.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/string/encoding/ucs4.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -19,7 +19,6 @@
 */
 
 #include "parrot/parrot.h"
-#include "../unicode.h"
 #include "shared.h"
 
 #if !PARROT_HAS_ICU
@@ -32,7 +31,7 @@
 }
 #endif
 
-/* HEADERIZER HFILE: src/string/encoding/ucs4.h */
+/* HEADERIZER HFILE: none */
 
 /* HEADERIZER BEGIN: static */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
@@ -151,8 +150,6 @@
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
-#include "ucs4.h"
-
 #if PARROT_HAS_ICU
 #  include <unicode/ustring.h>
 #endif

Deleted: branches/gc_massacre/src/string/encoding/ucs4.h
==============================================================================
--- branches/gc_massacre/src/string/encoding/ucs4.h	Wed Sep 22 10:45:52 2010	(r49242)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,23 +0,0 @@
-/*
-Copyright (C) 2010, Parrot Foundation.
-$Id$
-*/
-
-#ifndef PARROT_ENCODING_UCS4_H_GUARD
-#define PARROT_ENCODING_UCS4_H_GUARD
-
-/* HEADERIZER BEGIN: src/string/encoding/ucs4.c */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-
-
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-/* HEADERIZER END: src/string/encoding/ucs4.c */
-
-#endif /* PARROT_ENCODING_UCS4_H_GUARD */
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Modified: branches/gc_massacre/src/string/encoding/utf16.c
==============================================================================
--- branches/gc_massacre/src/string/encoding/utf16.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/string/encoding/utf16.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -19,10 +19,9 @@
 */
 
 #include "parrot/parrot.h"
-#include "../unicode.h"
 #include "shared.h"
 
-/* HEADERIZER HFILE: src/string/encoding/utf16.h */
+/* HEADERIZER HFILE: none */
 
 /* HEADERIZER BEGIN: static */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
@@ -133,8 +132,6 @@
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
-#include "utf16.h"
-
 #if PARROT_HAS_ICU
 #  include <unicode/utf16.h>
 #  include <unicode/ustring.h>

Deleted: branches/gc_massacre/src/string/encoding/utf16.h
==============================================================================
--- branches/gc_massacre/src/string/encoding/utf16.h	Wed Sep 22 10:45:52 2010	(r49242)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,30 +0,0 @@
-/* utf16.h
- *  Copyright (C) 2004-2007, Parrot Foundation.
- *  SVN Info
- *     $Id$
- *  Overview:
- *     This is the header for the utf16 variable-width encoding.
- *  Data Structure and Algorithms:
- *  History:
- *  Notes:
- *  References:
- */
-
-#ifndef PARROT_ENCODING_UTF16_H_GUARD
-#define PARROT_ENCODING_UTF16_H_GUARD
-
-/* HEADERIZER BEGIN: src/string/encoding/utf16.c */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-
-
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-/* HEADERIZER END: src/string/encoding/utf16.c */
-
-#endif /* PARROT_ENCODING_UTF16_H_GUARD */
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Modified: branches/gc_massacre/src/string/encoding/utf8.c
==============================================================================
--- branches/gc_massacre/src/string/encoding/utf8.c	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/src/string/encoding/utf8.c	Wed Sep 22 10:45:52 2010	(r49243)
@@ -20,10 +20,9 @@
 
 #include "parrot/parrot.h"
 #include "../unicode.h"
-#include "utf8.h"
 #include "shared.h"
 
-/* HEADERIZER HFILE: src/string/encoding/utf8.h */
+/* HEADERIZER HFILE: none */
 
 /* HEADERIZER BEGIN: static */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */

Deleted: branches/gc_massacre/src/string/encoding/utf8.h
==============================================================================
--- branches/gc_massacre/src/string/encoding/utf8.h	Wed Sep 22 10:45:52 2010	(r49242)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,30 +0,0 @@
-/* utf8.h
- *  Copyright (C) 2004-2007, Parrot Foundation.
- *  SVN Info
- *     $Id$
- *  Overview:
- *     This is the header for the utf8 variable-width encoding.
- *  Data Structure and Algorithms:
- *  History:
- *  Notes:
- *  References:
- */
-
-#ifndef PARROT_ENCODING_UTF8_H_GUARD
-#define PARROT_ENCODING_UTF8_H_GUARD
-
-/* HEADERIZER BEGIN: src/string/encoding/utf8.c */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-
-
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-/* HEADERIZER END: src/string/encoding/utf8.c */
-
-#endif /* PARROT_ENCODING_UTF8_H_GUARD */
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Modified: branches/gc_massacre/t/dynoplibs/trans-infnan.t
==============================================================================
--- branches/gc_massacre/t/dynoplibs/trans-infnan.t	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/t/dynoplibs/trans-infnan.t	Wed Sep 22 10:45:52 2010	(r49243)
@@ -187,38 +187,38 @@
     $N0 = 'Inf'
     #$N1 = coth $N0
     #is($N1, 1, 'coth: coth Inf')
-    todo(0, 'coth Inf', 'cot/coth/acot not implemented for real numbers')
+    todo(0, 'coth Inf', 'coth not implemented for real numbers')
     $N0 = '-Inf'
     #$N1 = coth $N0
     #is($N1, -1, '... coth -Inf')
-    todo(0, 'coth -Inf', 'cot/coth/acot not implemented for real numbers')
+    todo(0, 'coth -Inf', 'coth not implemented for real numbers')
     $N0 = 'NaN'
     #$N1 = coth $N0
     #is($N1, 'NaN', '... coth NaN')
-    todo(0, 'coth NaN', 'cot/coth/acot not implemented for real numbers')
+    todo(0, 'coth NaN', 'coth not implemented for real numbers')
 .end
 
 .sub test_acot
     $N0 = 'Inf'
     #$N1 = acot $N0
     #is($N1, 'NaN', 'acot: acot Inf')
-    todo(0, 'acot Inf', 'cot/coth/acot not implemented for real numbers')
+    todo(0, 'acot Inf', 'acot not implemented for real numbers')
     $N0 = '-Inf'
     #$N1 = acot $N0
     #is($N1, 'NaN', '... acot -Inf')
-    todo(0, 'acot -Inf', 'cot/coth/acot not implemented for real numbers')
+    todo(0, 'acot -Inf', 'acot not implemented for real numbers')
     $N0 = 'NaN'
     #$N1 = acot $N0
     #is($N1, 'NaN', '... acot NaN')
-    todo(0, 'acot NaN', 'cot/coth/acot not implemented for real numbers')
+    todo(0, 'acot NaN', 'acot not implemented for real numbers')
     $N0 = '-2'
     #$N1 = acot $N0
     #is($N1, 'NaN', '... acot -2')
-    todo(0, 'acot -2', 'cot/coth/acot not implemented for real numbers')
+    todo(0, 'acot -2', 'acot not implemented for real numbers')
     $N0 = '2'
     #$N1 = acot $N0
     #is($N1, 'NaN', '... acot 2')
-    todo(0, 'acot 2', 'cot/coth/acot not implemented for real numbers')
+    todo(0, 'acot 2', 'acot not implemented for real numbers')
 .end
 
 .sub test_sec

Modified: branches/gc_massacre/t/dynpmc/rational.t
==============================================================================
--- branches/gc_massacre/t/dynpmc/rational.t	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/t/dynpmc/rational.t	Wed Sep 22 10:45:52 2010	(r49243)
@@ -27,16 +27,6 @@
 
     unless $S0 goto no_gmp
     plan(56)
-    goto gmp_tests
-
-  no_gmp:
-    # seems like plan(0) is not supported currently
-    plan(1)
-    ok(1,'GMP not found, skipping Rational tests')
-    .return()
-
-    # The following tests only run if GMP is installed
- gmp_tests:
     loadlib $P1, 'rational'
     test_init()
     test_version()
@@ -77,6 +67,11 @@
     test_abs()
     test_cmp()
     test_equal_tt1517()
+    .return()
+
+ no_gmp:
+    skip_all('GMP not found, skipping Rational tests')
+    .return()
 .end
 
 .sub test_neg

Modified: branches/gc_massacre/t/library/osutils.t
==============================================================================
--- branches/gc_massacre/t/library/osutils.t	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/t/library/osutils.t	Wed Sep 22 10:45:52 2010	(r49243)
@@ -21,12 +21,13 @@
 
     load_bytecode 'osutils.pir'
 
-    plan(17)
+    plan(19)
     test_basename()
     test_dirname()
     test_catfile()
     test_splitpath()
     test_newer()
+    test_rindex()
 .end
 
 .sub 'test_basename'
@@ -80,6 +81,13 @@
     nok($I0, "newer('osutils.pir', ['osutils.pir', 'stat.pasm'])")
 .end
 
+.sub 'test_rindex'
+    $I0 = rindex('abc', '.')
+    is($I0, -1, "rindex('abc', '.')")
+    $I0 = rindex('abc.def.ghi', '.')
+    is($I0, 7, "rindex('abc.def.ghi', '.')")
+.end
+
 
 # Local Variables:
 #   mode: pir

Modified: branches/gc_massacre/t/pmc/exceptionhandler.t
==============================================================================
--- branches/gc_massacre/t/pmc/exceptionhandler.t	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/t/pmc/exceptionhandler.t	Wed Sep 22 10:45:52 2010	(r49243)
@@ -23,7 +23,7 @@
     .include 'test_more.pir'
 
     # If test exited with "bad plan" MyHandlerCan.can_handle wasn't invoked.
-    plan(18)
+    plan(19)
 
     test_bool()
     test_int()
@@ -105,7 +105,7 @@
 
     test_handle_types_except()
 
-    goto subclass_handler
+    goto init_int
 
   typed_handler_one:
     .get_results (e)
@@ -120,6 +120,21 @@
     eh = 0
     c()
 
+  init_int:
+    eh = new ['ExceptionHandler'], .CONTROL_BREAK
+    set_addr eh, init_int_eh
+    push_eh eh
+    $P0 = new ['Exception']
+    $P0['type'] = .CONTROL_BREAK
+    throw $P0
+    $I0 = 0
+    goto init_int_done
+  init_int_eh:
+    pop_eh
+    $I0 = 1
+  init_int_done:
+    ok($I0, "init_int handler correctly caught exception")
+
   subclass_handler:
     .local pmc myhandler, myhandlercan
     myhandler = subclass_exception_handler()

Modified: branches/gc_massacre/t/pmc/hash.t
==============================================================================
--- branches/gc_massacre/t/pmc/hash.t	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/t/pmc/hash.t	Wed Sep 22 10:45:52 2010	(r49243)
@@ -739,10 +739,6 @@
 .end
 
 .sub freeze_thaw_preserves_order
-    # is internal order important somehow?
-    todo("freeze/thaw preserves hash internal order")
-    .return ()
-
     .local pmc h, cloned
     .local string s1, s2
     .local int all_ok

Modified: branches/gc_massacre/t/pmc/imageio.t
==============================================================================
--- branches/gc_massacre/t/pmc/imageio.t	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/t/pmc/imageio.t	Wed Sep 22 10:45:52 2010	(r49243)
@@ -4,7 +4,7 @@
 
 =head1 NAME
 
-t/pmc/imageio.t - test ImageIO PMC
+t/pmc/imageio.t - test ImageIOFreeze and ImageIOThaw PMC
 
 =head1 SYNOPSIS
 
@@ -19,39 +19,41 @@
 .sub main :main
     .include 'test_more.pir'
 
-    plan(11)
+    plan(12)
 
-    .local pmc imageio
-    imageio = new ['ImageIO']
-    ok(1, 'instantiated ImageIO')
+    .local pmc frz, thw
+    frz = new ['ImageIOFreeze']
+    ok(1, 'instantiated ImageIOFreeze')
+
+    thw = new ['ImageIOThaw']
+    ok(1, 'instantiated ImageIOThaw')
 
     .local pmc test_pmc
     test_pmc = 'get_test_simple'()
-    setref imageio, test_pmc
-    $S0 = imageio
+    setref frz, test_pmc
+    $S0 = frz
     ok($S0, 'frozen PMC is true (simple)')
     $S1 = freeze test_pmc
     is($S0, $S1, 'freeze gives same image as ImageIO (simple)')
 
-    imageio = new ['ImageIO']
-    imageio = $S0
-    $P0 = deref imageio
+    thw = $S0
+    $P0 = deref thw
     ok($P0, 'thawed PMC is true (simple)')
     $P1 = thaw $S1
     is($P0, $P1, 'thaw gives same PMC as ImageIO (simple)')
     is($P0, test_pmc, 'round trip gives same PMC (simple)')
 
-    imageio = new ['ImageIO']
+    frz = new ['ImageIOFreeze']
     test_pmc = 'get_test_aggregate'()
-    setref imageio, test_pmc
-    $S0 = imageio
+    setref frz, test_pmc
+    $S0 = frz
     ok($S0, 'frozen PMC is true (aggregate)')
     $S1 = freeze test_pmc
     is($S0, $S1, 'freeze gives same image as ImageIO (aggregate)')
 
-    imageio = new ['ImageIO']
-    imageio = $S0
-    $P0 = deref imageio
+    thw = new ['ImageIOThaw']
+    thw = $S0
+    $P0 = deref thw
     ok($P0, 'thawed PMC is true (aggregate)')
     $P1 = thaw $S1
     is_deeply($P0, $P1, 'thaw gives same PMC as ImageIO (aggregate)')

Modified: branches/gc_massacre/t/pmc/io.t
==============================================================================
--- branches/gc_massacre/t/pmc/io.t	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/t/pmc/io.t	Wed Sep 22 10:45:52 2010	(r49243)
@@ -612,7 +612,7 @@
 
 ($FOO, $temp_file) = create_tempfile( UNLINK => 1 );
 
-print $FOO "T\xc3\xb6tsch\n";
+print $FOO "T\xc3\xb6tsch \xe2\x82\xac100\n";
 close $FOO;
 
 pir_output_is( sprintf(<<'CODE', $temp_file), <<"OUTPUT", "utf8 read enabled, read parts" );
@@ -623,6 +623,10 @@
     pio.'open'(temp_file, 'r')
     pio.'encoding'("utf8")
     $S0 = pio.'read'(2)
+    say $S0
+    $S1 = pio.'read'(7)
+    say $S1
+    $S0 .= $S1
     $S1 = pio.'read'(1024) # read the rest of the file (much shorter than 1K)
     $S0 .= $S1
     pio.'close'()
@@ -631,13 +635,13 @@
     $S2 = encodingname $I1
     say $S2
 
-    $I1 = find_encoding 'iso-8859-1'
-    trans_encoding $S1, $S0, $I1
-    print $S1
+    print $S0
 .end
 CODE
+T\xc3\xb6
+tsch \xe2\x82\xac
 utf8
-T\xf6tsch
+T\xc3\xb6tsch \xe2\x82\xac100
 OUTPUT
 
 pir_output_is( <<"CODE", <<"OUTPUT", "PIO.readall() - classmeth" );

Modified: branches/gc_massacre/t/pmc/stringbuilder.t
==============================================================================
--- branches/gc_massacre/t/pmc/stringbuilder.t	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/t/pmc/stringbuilder.t	Wed Sep 22 10:45:52 2010	(r49243)
@@ -23,6 +23,7 @@
     test_create()               # 3 tests
     test_init_pmc()
     test_push_string()
+    test_push_string_resize()
     test_push_pmc()             # 4 tests
     test_push_string_unicode()  # 1 test
     test_i_concatenate()        # 1 test
@@ -109,6 +110,29 @@
     is( $S0, $S1, "push a null string does nothing" )
 .end
 
+.sub 'test_push_string_resize'
+    # Try to cover the case of resizing a buffer while converting it to utf8
+    # Depends on internal details of StringBuffer, so it may need changes
+    # when that internals do.
+    .local pmc sb
+    sb = new ["StringBuilder"]
+    .local string s
+    .local int i, n
+    # Get the allocated capacity and almost fill it
+    n = sb
+    n -= 2
+    s = repeat iso-8859-1:"x", n
+    push sb, s
+    # push a string that needs reallocation and has incompatible encoding rep.
+    s = unicode:"yyyy"
+    push sb, s
+    # Check the expected string length. Not a rock solid check, but the
+    # purpose of this test is just code coverage, so is enough.
+    i = sb.'get_string_length'()
+    n = n + 4
+    is(i, n, 'test_push_string_resize')
+.end
+
 .sub 'test_push_pmc'
     .local pmc sb
     sb = new ["StringBuilder"]

Modified: branches/gc_massacre/tools/release/release.json
==============================================================================
--- branches/gc_massacre/tools/release/release.json	Wed Sep 22 09:55:55 2010	(r49242)
+++ branches/gc_massacre/tools/release/release.json	Wed Sep 22 10:45:52 2010	(r49243)
@@ -1,9 +1,9 @@
 {
-    "release.version"  : "2.7.0",
-    "release.name"     : "Australian King",
+    "release.version"  : "2.8.0",
+    "release.name"     : "Tui Parakeet",
     "release.day"      : "Tuesday",
-    "release.date"     : "17 August 2010",
-    "release.nextdate" : "21 September 2010",
+    "release.date"     : "21 September 2010",
+    "release.nextdate" : "19 October 2010",
 
     "web.root"         : "http://parrot.org/",
     "web.source"       : "download",
@@ -11,11 +11,11 @@
     "web.repository"   : "https://svn.parrot.org/parrot/trunk/",
 
     "bugday.day"       : "Saturday",
-    "bugday.date"      : "18 September 2010",
+    "bugday.date"      : "16 October 2010",
 
     "wiki.root"        : "https://trac.parrot.org/parrot/wiki/",
-    "wiki.bugday"      : "bug_day_2010_09_18",
+    "wiki.bugday"      : "bug_day_2010_10_16",
 
-    "ftp.path"         : "ftp://ftp.parrot.org/pub/parrot/releases/devel/2.7.0/",
+    "ftp.path"         : "ftp://ftp.parrot.org/pub/parrot/releases/devel/2.8.0/",
     "subversion.root"  : "http://subversion.apache.org/"
 }


More information about the parrot-commits mailing list