[svn:parrot] r48260 - in branches/dynop_mapping: . compilers/imcc compilers/opsc compilers/pct/src/PAST config/auto config/gen config/gen/makefiles config/gen/platform/generic config/init docs docs/book/pir docs/pdds docs/project docs/resources editor examples/languages/squaak examples/languages/squaak/doc examples/languages/squaak/src examples/languages/squaak/src/Squaak examples/languages/squaak/src/builtins examples/languages/squaak/src/parser ext/nqp-rx/src/stage0 include/parrot include/parrot/oplib lib/Parrot lib/Parrot/Configure/Options/Conf lib/Parrot/Docs lib/Parrot/Pmc2c lib/Parrot/Pmc2c/PMC lib/Parrot/Test/Util lib/Pod/Simple ports/debian ports/debian/patches ports/fedora/2.3.0 ports/fedora/2.5.0 ports/fedora/2.6.0 ports/suse/2.2.0 ports/suse/2.5.0 runtime/parrot/library src src/call src/dynoplibs src/dynpmc src/interp src/io src/nci src/ops src/pmc src/runcore src/string src/string/charset t/compilers/pct t/configure t/library t/op t/pmc t/postconfigure t/ src t/steps/auto t/steps/init t/tools t/tools/pmc2cutils tools/dev tools/util

plobsing at svn.parrot.org plobsing at svn.parrot.org
Tue Aug 3 02:53:19 UTC 2010


Author: plobsing
Date: Tue Aug  3 02:53:14 2010
New Revision: 48260
URL: https://trac.parrot.org/parrot/changeset/48260

Log:
sync with trunk

Added:
   branches/dynop_mapping/compilers/opsc/README.pod
      - copied unchanged from r48253, trunk/compilers/opsc/README.pod
   branches/dynop_mapping/examples/languages/squaak/src/Squaak/
      - copied from r48253, trunk/examples/languages/squaak/src/Squaak/
   branches/dynop_mapping/examples/languages/squaak/src/squaak.pir
      - copied unchanged from r48253, trunk/examples/languages/squaak/src/squaak.pir
   branches/dynop_mapping/ports/debian/patches/04_fix_opsc_man.patch
      - copied unchanged from r48253, trunk/ports/debian/patches/04_fix_opsc_man.patch
   branches/dynop_mapping/ports/fedora/2.6.0/
      - copied from r48253, trunk/ports/fedora/2.6.0/
   branches/dynop_mapping/ports/suse/2.5.0/
      - copied from r48253, trunk/ports/suse/2.5.0/
Replaced:
   branches/dynop_mapping/examples/languages/squaak/src/Squaak/Actions.pm
      - copied unchanged from r48253, trunk/examples/languages/squaak/src/Squaak/Actions.pm
   branches/dynop_mapping/examples/languages/squaak/src/Squaak/Compiler.pm
      - copied unchanged from r48253, trunk/examples/languages/squaak/src/Squaak/Compiler.pm
   branches/dynop_mapping/examples/languages/squaak/src/Squaak/Grammar.pm
      - copied unchanged from r48253, trunk/examples/languages/squaak/src/Squaak/Grammar.pm
   branches/dynop_mapping/examples/languages/squaak/src/Squaak/Runtime.pm
      - copied unchanged from r48253, trunk/examples/languages/squaak/src/Squaak/Runtime.pm
   branches/dynop_mapping/ports/fedora/2.6.0/parrot.desk.in.tar.gz
      - copied unchanged from r48253, trunk/ports/fedora/2.6.0/parrot.desk.in.tar.gz
   branches/dynop_mapping/ports/fedora/2.6.0/parrot.spec
      - copied unchanged from r48253, trunk/ports/fedora/2.6.0/parrot.spec
   branches/dynop_mapping/ports/suse/2.5.0/parrot.diff
      - copied unchanged from r48253, trunk/ports/suse/2.5.0/parrot.diff
   branches/dynop_mapping/ports/suse/2.5.0/parrot.spec
      - copied unchanged from r48253, trunk/ports/suse/2.5.0/parrot.spec
Deleted:
   branches/dynop_mapping/examples/languages/squaak/src/builtins/
   branches/dynop_mapping/examples/languages/squaak/src/parser/
   branches/dynop_mapping/ports/fedora/2.3.0/
   branches/dynop_mapping/ports/fedora/2.5.0/
   branches/dynop_mapping/ports/suse/2.2.0/
Modified:
   branches/dynop_mapping/   (props changed)
   branches/dynop_mapping/CREDITS
   branches/dynop_mapping/ChangeLog
   branches/dynop_mapping/DEPRECATED.pod
   branches/dynop_mapping/MANIFEST
   branches/dynop_mapping/MANIFEST.generated
   branches/dynop_mapping/NEWS
   branches/dynop_mapping/PBC_COMPAT
   branches/dynop_mapping/README
   branches/dynop_mapping/VERSION
   branches/dynop_mapping/compilers/imcc/pbc.c
   branches/dynop_mapping/compilers/pct/src/PAST/Compiler.pir
   branches/dynop_mapping/config/auto/icu.pm
   branches/dynop_mapping/config/gen/config_pm.pm
   branches/dynop_mapping/config/gen/core_pmcs.pm
   branches/dynop_mapping/config/gen/makefiles/editor.in
   branches/dynop_mapping/config/gen/makefiles/root.in
   branches/dynop_mapping/config/gen/platform/generic/env.c
   branches/dynop_mapping/config/init/defaults.pm
   branches/dynop_mapping/docs/book/pir/ch04_variables.pod
   branches/dynop_mapping/docs/parrothist.pod
   branches/dynop_mapping/docs/pdds/pdd27_multiple_dispatch.pod
   branches/dynop_mapping/docs/project/release_manager_guide.pod
   branches/dynop_mapping/docs/project/support_policy.pod
   branches/dynop_mapping/docs/resources/parrot.css
   branches/dynop_mapping/editor/README.pod
   branches/dynop_mapping/editor/filetype_parrot.vim
   branches/dynop_mapping/examples/languages/squaak/MAINTAINER
   branches/dynop_mapping/examples/languages/squaak/README
   branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_1.pod
   branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_2.pod
   branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_3.pod
   branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_4.pod
   branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_5.pod
   branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_6.pod
   branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_7.pod
   branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_8.pod
   branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_9.pod
   branches/dynop_mapping/examples/languages/squaak/setup.pir
   branches/dynop_mapping/examples/languages/squaak/squaak.pir
   branches/dynop_mapping/ext/nqp-rx/src/stage0/HLL-s0.pir
   branches/dynop_mapping/ext/nqp-rx/src/stage0/NQP-s0.pir
   branches/dynop_mapping/ext/nqp-rx/src/stage0/P6Regex-s0.pir
   branches/dynop_mapping/ext/nqp-rx/src/stage0/Regex-s0.pir
   branches/dynop_mapping/include/parrot/call.h
   branches/dynop_mapping/include/parrot/dynext.h
   branches/dynop_mapping/include/parrot/key.h
   branches/dynop_mapping/include/parrot/oplib/core_ops.h
   branches/dynop_mapping/include/parrot/runcore_api.h
   branches/dynop_mapping/include/parrot/runcore_trace.h   (props changed)
   branches/dynop_mapping/lib/Parrot/Configure/Options/Conf/File.pm
   branches/dynop_mapping/lib/Parrot/Docs/HTMLPage.pm
   branches/dynop_mapping/lib/Parrot/Install.pm
   branches/dynop_mapping/lib/Parrot/Manifest.pm
   branches/dynop_mapping/lib/Parrot/Pmc2c/PMC/Object.pm
   branches/dynop_mapping/lib/Parrot/Pmc2c/PMCEmitter.pm
   branches/dynop_mapping/lib/Parrot/Test/Util/Runloop.pm
   branches/dynop_mapping/lib/Pod/Simple/Search.pm
   branches/dynop_mapping/ports/debian/changelog
   branches/dynop_mapping/ports/debian/control
   branches/dynop_mapping/ports/debian/control.in
   branches/dynop_mapping/ports/debian/parrot-devel.install.in
   branches/dynop_mapping/ports/debian/patches/series
   branches/dynop_mapping/ports/debian/rules
   branches/dynop_mapping/runtime/parrot/library/P6object.pir
   branches/dynop_mapping/runtime/parrot/library/distutils.pir
   branches/dynop_mapping/src/call/args.c
   branches/dynop_mapping/src/call/pcc.c
   branches/dynop_mapping/src/dynext.c
   branches/dynop_mapping/src/dynoplibs/Rules.in
   branches/dynop_mapping/src/dynpmc/rational.pmc
   branches/dynop_mapping/src/embed.c
   branches/dynop_mapping/src/interp/inter_cb.c
   branches/dynop_mapping/src/interp/inter_create.c   (props changed)
   branches/dynop_mapping/src/interp/inter_misc.c
   branches/dynop_mapping/src/io/api.c
   branches/dynop_mapping/src/key.c
   branches/dynop_mapping/src/nci/extra_thunks.c
   branches/dynop_mapping/src/oo.c
   branches/dynop_mapping/src/ops/core.ops
   branches/dynop_mapping/src/ops/core_ops.c
   branches/dynop_mapping/src/ops/math.ops
   branches/dynop_mapping/src/packfile.c
   branches/dynop_mapping/src/pmc/capture.pmc
   branches/dynop_mapping/src/pmc/class.pmc
   branches/dynop_mapping/src/pmc/hash.pmc
   branches/dynop_mapping/src/pmc/key.pmc
   branches/dynop_mapping/src/pmc/object.pmc
   branches/dynop_mapping/src/pmc/oplib.pmc
   branches/dynop_mapping/src/pmc/stringhandle.pmc
   branches/dynop_mapping/src/pmc/sub.pmc
   branches/dynop_mapping/src/runcore/cores.c   (props changed)
   branches/dynop_mapping/src/runcore/main.c
   branches/dynop_mapping/src/runcore/profiling.c
   branches/dynop_mapping/src/runcore/trace.c   (props changed)
   branches/dynop_mapping/src/scheduler.c
   branches/dynop_mapping/src/string/api.c
   branches/dynop_mapping/src/string/charset/binary.c
   branches/dynop_mapping/src/thread.c
   branches/dynop_mapping/src/utils.c
   branches/dynop_mapping/src/vtable.tbl
   branches/dynop_mapping/t/compilers/pct/complete_workflow.t
   branches/dynop_mapping/t/configure/017-revision_from_cache.t
   branches/dynop_mapping/t/configure/018-revision_to_cache.t
   branches/dynop_mapping/t/configure/061-revision_from_cache.t
   branches/dynop_mapping/t/library/p6object.t
   branches/dynop_mapping/t/library/pcre.t
   branches/dynop_mapping/t/op/64bit.t
   branches/dynop_mapping/t/op/integer.t
   branches/dynop_mapping/t/op/string.t
   branches/dynop_mapping/t/pmc/capture.t
   branches/dynop_mapping/t/pmc/exceptionhandler.t
   branches/dynop_mapping/t/pmc/opcode.t
   branches/dynop_mapping/t/pmc/oplib.t
   branches/dynop_mapping/t/postconfigure/05-trace.t
   branches/dynop_mapping/t/src/embed.t   (props changed)
   branches/dynop_mapping/t/steps/auto/format-01.t
   branches/dynop_mapping/t/steps/auto/inline-01.t
   branches/dynop_mapping/t/steps/init/hints-01.t
   branches/dynop_mapping/t/tools/pbc_dump.t
   branches/dynop_mapping/t/tools/pmc2cutils/05-gen_c.t
   branches/dynop_mapping/tools/dev/mk_gitignore.pl   (props changed)
   branches/dynop_mapping/tools/dev/pprof2cg.pl   (props changed)
   branches/dynop_mapping/tools/util/release.json

Modified: branches/dynop_mapping/CREDITS
==============================================================================
--- branches/dynop_mapping/CREDITS	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/CREDITS	Tue Aug  3 02:53:14 2010	(r48260)
@@ -129,8 +129,7 @@
 E: ask at develooper.com
 
 N: Audrey Tang
-U: audreyt
-U: autrijus
+U: au
 E: audreyt at audreyt.org
 D: Pugs, a Perl6->Parrot implementation.
 
@@ -1046,7 +1045,8 @@
 U: coke
 A: wcoleda
 E: will at coleda.com
-D: Tcl language (partcl), APL, website, various languages/ upkeep, misc.
+D: Tcl HLL implementation (partcl), APL, website,
+D: Release Manager, PaFo board member, curmudgeon
 
 N: Zach Lipton
 

Modified: branches/dynop_mapping/ChangeLog
==============================================================================
--- branches/dynop_mapping/ChangeLog	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/ChangeLog	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1,5 +1,9 @@
 #1 $Id$
 
+2010.07.10     coke
+	* Released 2.6.0
+	See NEWS for more.
+
 2010.06.15     Gerd
 	* Released 2.5.0
 	See NEWS for more.

Modified: branches/dynop_mapping/DEPRECATED.pod
==============================================================================
--- branches/dynop_mapping/DEPRECATED.pod	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/DEPRECATED.pod	Tue Aug  3 02:53:14 2010	(r48260)
@@ -305,6 +305,27 @@
 
 L<https://trac.parrot.org/parrot/ticket/1624>
 
+=item :main Sub behaviour and selection. [eligible in 2.7]
+
+Currently, if no :main sub is found, the first .sub in a file is used as
+main. Also, arguments are passed to the main sub regardless of the .param
+declarations in that sub.
+
+After this change, if no sub is marked with :main, an exception will be
+raised. Multiple :main declarations will be still be allowed, and all but the
+first will be ignored.
+
+This change will also force all subs, including :main, to have their
+arguments checked - to allow an arbitrary number of arguments, have
+this be the only .param declaration in the sub.
+
+ .param pmc args :slurpy
+
+
+L<https://trac.parrot.org/parrot/ticket/1033>
+L<https://trac.parrot.org/parrot/ticket/1704>
+L<https://trac.parrot.org/parrot/ticket/1705>
+
 =back
 
 =head1 Functions
@@ -406,13 +427,22 @@
 
 L<https://trac.parrot.org/parrot/ticket/463>
 
-=item PAST::Val node generation [eligible in 1.5]
-
-The PAST::Compiler may generate the code for PAST::Val nodes
-(i.e., constants) at the beginning of the block (Parrot sub) instead
-of the location where they occur in the PAST tree.
+=item PAST::Val node generation [eligible in 1.5] 
 
-L<https://trac.parrot.org/parrot/ticket/868>
+The PAST::Compiler may generate the code for PAST::Val nodes 
+(i.e., constants) at the beginning of the block (Parrot sub) instead 
+of the location where they occur in the PAST tree. 
+
+L<https://trac.parrot.org/parrot/ticket/868> 
+
+=item Meta-model implementation used by PCT [eligible in 2.7]
+
+PCT is set to switch to a new meta-model implementation for its classes
+and objects. This will most likely only affect those who rely on the
+interface of what is returned from .HOW, or rely on PCT objects exhibiting
+various other peculiarities of the P6object implementation. (Even when that
+is the case, the HOW API will not be changing too drastically, so for most
+PCT users there should be little to no upheavel.)
 
 =back
 
@@ -437,7 +467,7 @@
 
 L<https://trac.parrot.org/parrot/ticket/1598>
 
-=item LWP, HTTP::Message & URI [experimental]
+=item LWP, HTTP::Message, URI & URI::Escape [experimental]
 
 L<http://trac.parrot.org/parrot/ticket/1637>
 

Modified: branches/dynop_mapping/MANIFEST
==============================================================================
--- branches/dynop_mapping/MANIFEST	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/MANIFEST	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1,7 +1,7 @@
 # ex: set ro:
 # $Id$
 #
-# generated by tools/dev/mk_manifest_and_skip.pl Tue Jun 29 22:56:50 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Sat Jul 31 17:37:19 2010 UT
 #
 # See below for documentation on the format of this file.
 #
@@ -63,6 +63,7 @@
 compilers/imcc/symreg.h                                     [imcc]
 compilers/imcc/unit.h                                       [imcc]
 compilers/opsc/Defines.mak                                  [opsc]
+compilers/opsc/README.pod                                   []doc
 compilers/opsc/Rules.mak                                    [opsc]
 compilers/opsc/TODO                                         [opsc]
 compilers/opsc/gen/Ops/Compiler/IGNOREME                    [opsc]
@@ -633,9 +634,11 @@
 examples/languages/squaak/examples/life.sq                  [examples]
 examples/languages/squaak/setup.pir                         [examples]
 examples/languages/squaak/squaak.pir                        [examples]
-examples/languages/squaak/src/builtins/say.pir              [examples]
-examples/languages/squaak/src/parser/actions.pm             [examples]
-examples/languages/squaak/src/parser/grammar.pg             [examples]
+examples/languages/squaak/src/Squaak/Actions.pm             [examples]
+examples/languages/squaak/src/Squaak/Compiler.pm            [examples]
+examples/languages/squaak/src/Squaak/Grammar.pm             [examples]
+examples/languages/squaak/src/Squaak/Runtime.pm             [examples]
+examples/languages/squaak/src/squaak.pir                    [examples]
 examples/languages/squaak/t/00-sanity.t                     [examples]
 examples/languages/squaak/t/01-math.t                       [examples]
 examples/library/acorn.life                                 [examples]
@@ -2138,7 +2141,7 @@
 tools/dev/pmcrenumber.pl                                    []
 tools/dev/pmctree.pl                                        []
 tools/dev/pprof2cg.nqp                                      []
-tools/dev/pprof2cg.pl                                       []
+tools/dev/pprof2cg.pl                                       [devel]
 tools/dev/reconfigure.pl                                    [devel]
 tools/dev/search-ops.pl                                     []
 tools/dev/svnclobber.pl                                     []

Modified: branches/dynop_mapping/MANIFEST.generated
==============================================================================
--- branches/dynop_mapping/MANIFEST.generated	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/MANIFEST.generated	Tue Aug  3 02:53:14 2010	(r48260)
@@ -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.5.0.dylib                   [main]lib
+blib/lib/libparrot.2.6.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.5.0                      [main]lib
+blib/lib/libparrot.so.2.6.0                      [main]lib
 compilers/data_json/data_json.pbc                [data_json]
 config/gen/call_list/opengl.in                   []
 docs/ops/bit.pod                                 [doc]

Modified: branches/dynop_mapping/NEWS
==============================================================================
--- branches/dynop_mapping/NEWS	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/NEWS	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1,5 +1,23 @@
 # $Id$
 
+New in 2.6.0
+- Core
+  + Plug some memory leaks
+  + As always, bug fixes and some optimizations
+- Runtime
+  + added (experimental) URI::Escape 
+- Testing
+  + Improved test coverage of core parrot
+- Documentation
+  + Updated the Squaak tutorial to use modern NQP-rx and PCT
+- Platforms
+  + The Fedora package 'parrot-devel' install the files for syntax-highlighting
+    and automatic indenting for the vim editor
+- NQP-rx 
+  + Updated version included from http://github.com/perl6/nqp-rx includes
+    new or improved: regex backtracking, named assertions, interactive mode,
+    and setting (a minimal but useful runtime library)
+
 New in 2.5.0
 - Core
   + Added ByteBuffer PMC to allow direct byte manipulation

Modified: branches/dynop_mapping/PBC_COMPAT
==============================================================================
--- branches/dynop_mapping/PBC_COMPAT	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/PBC_COMPAT	Tue Aug  3 02:53:14 2010	(r48260)
@@ -28,21 +28,8 @@
 
 # please insert tab separated entries at the top of the list
 
-6.21	2010.06.09	NotFound	add ByteBuffer PMC
-6.20	2010.05.29	plobsing	eliminate unused fixup type 'label'
-6.19	2010.05.27	plobsing	removed numerous core ops (TT #449)
-6.18	2010.05.25	cotto	removed ops.num
-6.17	2010.05.20	NotFound	store encoding of string constants
-6.16	2010.05.18	plobsing	move freeze/thaw adjacent to visit
-6.15	2010.05.06	bacek	add StringBuilder PMC
-6.14	2010.05.03	coke	remove popaction, pushmark, pushaction ops.
-6.13	2010.05.03	coke	move File/OS pmcs to src/dynpmc
-6.12	2010.05.02	plobsing	store constant PMC strings as top level constant strings    
-6.11	2010.04.29	tewk	remove ParrotRunningThread
-6.10	2010.04.29	NotFound	packfiledebug.pmc
-6.9	2010.04.27	bacek	remove deprecated in-place string ops (bitwise, charset, case change)
-6.8	2010.04.27	bacek	remove deprecated in-place substr ops
-6.7	2010.04.22	coke	remove RetContinuation PMC
+8.0	2010.07.20	coke	released 2.6.0
+7.0	2010.04.20	gerd	released 2.3.0 (version # added ex post facto, as all previous version #s were published)
 6.6	2010.04.17	bacek	add replace op
 6.5	2010.03.09	cotto	remove cpu_ret op
 6.4	2010.03.02	cotto	remove prederef__ and reserved

Modified: branches/dynop_mapping/README
==============================================================================
--- branches/dynop_mapping/README	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/README	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1,4 +1,4 @@
-This is Parrot, version 2.5.0
+This is Parrot, version 2.6.0
 ------------------------------
 
 Parrot is Copyright (C) 2001-2010, Parrot Foundation.

Modified: branches/dynop_mapping/VERSION
==============================================================================
--- branches/dynop_mapping/VERSION	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/VERSION	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1 +1 @@
-2.5.0
+2.6.0

Modified: branches/dynop_mapping/compilers/imcc/pbc.c
==============================================================================
--- branches/dynop_mapping/compilers/imcc/pbc.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/compilers/imcc/pbc.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -147,7 +147,7 @@
         __attribute__nonnull__(1);
 
 PARROT_WARN_UNUSED_RESULT
-static size_t get_codesize(PARROT_INTERP,
+static size_t get_code_size(PARROT_INTERP,
     ARGIN(const IMC_Unit *unit),
     ARGOUT(size_t *src_lines))
         __attribute__nonnull__(1)
@@ -257,7 +257,7 @@
     , PARROT_ASSERT_ARG(pc))
 #define ASSERT_ARGS_fixup_globals __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_get_codesize __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_get_code_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(unit) \
     , PARROT_ASSERT_ARG(src_lines))
@@ -630,7 +630,7 @@
 
 /*
 
-=item C<static size_t get_codesize(PARROT_INTERP, const IMC_Unit *unit, size_t
+=item C<static size_t get_code_size(PARROT_INTERP, const IMC_Unit *unit, size_t
 *src_lines)>
 
 Stores globals for later fixup, returning the code size in number of ops.
@@ -641,9 +641,9 @@
 
 PARROT_WARN_UNUSED_RESULT
 static size_t
-get_codesize(PARROT_INTERP, ARGIN(const IMC_Unit *unit), ARGOUT(size_t *src_lines))
+get_code_size(PARROT_INTERP, ARGIN(const IMC_Unit *unit), ARGOUT(size_t *src_lines))
 {
-    ASSERT_ARGS(get_codesize)
+    ASSERT_ARGS(get_code_size)
     Instruction *ins = unit->instructions;
     size_t       code_size;
 
@@ -669,7 +669,7 @@
         else if (ins->opname && *ins->opname) {
             (*src_lines)++;
             if (ins->opnum < 0)
-                IMCC_fatal(interp, 1, "get_codesize: "
+                IMCC_fatal(interp, 1, "get_code_size: "
                         "no opnum ins#%d %d\n",
                         ins->index, ins);
 
@@ -685,7 +685,7 @@
             code_size += ins->opsize;
         }
         else if (ins->opsize)
-            IMCC_fatal(interp, 1, "get_codesize: "
+            IMCC_fatal(interp, 1, "get_code_size: "
                     "non instruction with size found\n");
     }
 
@@ -1544,7 +1544,7 @@
         if (unit->vtable_name) {
             vtable_name = Parrot_str_new(interp, unit->vtable_name + 1,
                     strlen(unit->vtable_name) - 2);
-            UNIT_FREE_CHAR(unit->method_name);
+            UNIT_FREE_CHAR(unit->vtable_name);
         }
         else
             vtable_name = sub->name;
@@ -2312,42 +2312,42 @@
 
     /* first instruction, do initialisation ... */
     if (ins == unit->instructions) {
-        size_t       ins_size;
-        const size_t oldsize   = get_old_size(interp,
+        size_t       ins_size, seg_size;
+        const size_t old_size  = get_old_size(interp,
                                     &IMCC_INFO(interp)->ins_line);
-        const size_t code_size = get_codesize(interp, unit, &ins_size);
-        const size_t bytes     = (oldsize + code_size) * sizeof (opcode_t);
+        const size_t code_size = get_code_size(interp, unit, &ins_size);
+        const size_t bytes     = (old_size + code_size) * sizeof (opcode_t);
 
-        IMCC_debug(interp, DEBUG_PBC, "code_size(ops) %d  oldsize %d\n",
-                code_size, oldsize);
+        IMCC_debug(interp, DEBUG_PBC, "code_size(ops) %d  old_size %d\n",
+                code_size, old_size);
 
         constant_folding(interp, unit);
         store_sub_size(interp, code_size, ins_size);
 
         /* allocate code */
-        interp->code->base.data       = (opcode_t *)
+        interp->code->base.data = (opcode_t *)
             mem_sys_realloc(interp->code->base.data, bytes);
 
         /* reallocating this removes its mmaped-ness; needs encapsulation */
         interp->code->base.pf->is_mmap_ped = 0;
 
-        interp->code->base.size       = oldsize + code_size;
+        interp->code->base.size = old_size + code_size;
 
-        IMCC_INFO(interp)->pc  = (opcode_t *)interp->code->base.data + oldsize;
-        IMCC_INFO(interp)->npc = 0;
+        IMCC_INFO(interp)->pc   = (opcode_t *)interp->code->base.data + old_size;
+        IMCC_INFO(interp)->npc  = 0;
 
         /* FIXME length and multiple subs */
-        IMCC_INFO(interp)->debug_seg  = Parrot_new_debug_seg(interp,
-            interp->code,
-            (size_t)IMCC_INFO(interp)->ins_line + ins_size + 1);
+        seg_size = (size_t)IMCC_INFO(interp)->ins_line + ins_size + 1;
+        IMCC_INFO(interp)->debug_seg  =
+            Parrot_new_debug_seg(interp, interp->code, seg_size);
 
         Parrot_debug_add_mapping(interp, IMCC_INFO(interp)->debug_seg,
-            IMCC_INFO(interp)->ins_line, unit->file);
+            old_size, unit->file);
 
         /* if item is a PCC_SUB entry then store it constants */
         if (ins->symregs[0] && ins->symregs[0]->pcc_sub) {
-            add_const_pmc_sub(interp, ins->symregs[0], oldsize,
-                              oldsize + code_size);
+            add_const_pmc_sub(interp, ins->symregs[0], old_size,
+                              old_size + code_size);
         }
         else {
             /* need a dummy to hold register usage */
@@ -2355,7 +2355,7 @@
             r->type          = VT_PCC_SUB;
             r->pcc_sub       = mem_gc_allocate_zeroed_typed(interp, pcc_sub_t);
 
-            add_const_pmc_sub(interp, r, oldsize, oldsize + code_size);
+            add_const_pmc_sub(interp, r, old_size, old_size + code_size);
         }
     }
 

Copied: branches/dynop_mapping/compilers/opsc/README.pod (from r48253, trunk/compilers/opsc/README.pod)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/compilers/opsc/README.pod	Tue Aug  3 02:53:14 2010	(r48260, copy of r48253, trunk/compilers/opsc/README.pod)
@@ -0,0 +1,47 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+opsc - An opcode compiler for Parrot
+
+=head1 DESCRIPTION
+
+Ops-to-C is a compiler to generate opcode definition files in C from
+Parrot's opcode definition language.
+
+=head1 SYNOPSIS
+
+ opsc [-options] <file>
+
+=head1 OPTIONS
+
+=over 4
+
+=item -c, --core
+
+Generate C code for core ops (for use only in building the Parrot VM)
+
+=item -d, --dynamic
+
+Generate C code for dynamic ops in a single file.
+
+=item -q, --quiet
+
+Only report error messages, other messages are silent.
+
+=item -h, --help
+
+Print usage information.
+
+=item -n, --no-lines
+
+Do not print #line directives in generated C code.
+
+=item -g, --debug
+
+Perform all processing but do not write to any files.
+
+=back
+
+=cut

Modified: branches/dynop_mapping/compilers/pct/src/PAST/Compiler.pir
==============================================================================
--- branches/dynop_mapping/compilers/pct/src/PAST/Compiler.pir	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/compilers/pct/src/PAST/Compiler.pir	Tue Aug  3 02:53:14 2010	(r48260)
@@ -28,6 +28,7 @@
     +         PMC, int register, num register, or numeric constant
     ~         PMC, string register, or string constant
     :         argument (same as '*'), possibly with :named or :flat
+    0-9       use the nth input operand as the output result of this operation
 
 These flags are used to describe signatures and desired return
 types for various operations.  For example, if an opcode is

Modified: branches/dynop_mapping/config/auto/icu.pm
==============================================================================
--- branches/dynop_mapping/config/auto/icu.pm	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/config/auto/icu.pm	Tue Aug  3 02:53:14 2010	(r48260)
@@ -312,7 +312,8 @@
         else {
             # on MacOS X there's sometimes an errornous \c at the end of the
             # output line. Remove it.
-            $icushared =~ s/\s\\c$//;
+            # see TT #1722
+            $icushared =~ s/\s\\c\s/ /g;
         }
     }
 

Modified: branches/dynop_mapping/config/gen/config_pm.pm
==============================================================================
--- branches/dynop_mapping/config/gen/config_pm.pm	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/config/gen/config_pm.pm	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -65,6 +65,18 @@
     open( my $OUT, ">", $gen_pm )
         or die "Can't open $gen_pm: $!";
 
+    # escape spaces in current directory
+    my $cwd = cwd();
+    $cwd =~ s{ }{\\ }g;
+
+    # Build directory can have non ascii characters
+    # Maybe not the better fix, but allows keep working on the issue.
+    # See TT #1717
+    my $cwdcharset = q{};
+    if ($cwd =~ /[^[:ascii:]]/) {
+        $cwdcharset = 'binary:';
+    }
+
     my $pkg = __PACKAGE__;
     print {$OUT} <<"END";
 # ex: set ro:
@@ -117,7 +129,10 @@
                         die "type of '$k' is not supported : $type\n";
                     }
                     # String
-                    $v =~ s/(["\\])/\\$1/g;
+                    $v =~ s/\\/\\\\/g;
+                    $v =~ s/\\\\"/\\"/g;
+                    # escape unescaped double quotes
+                    $v =~ s/(?<!\\)"/\\"/g;
                     $v =~ s/\n/\\n/g;
                     my $charset = q{};
                     if ($v =~ /[^[:ascii:]]/) {
@@ -131,7 +146,7 @@
                 }
             }
         }
-        elsif (s/\@PWD\@/cwd/e) {
+        elsif (s/\"\@PWD\@\"/$cwdcharset\"$cwd\"/) {
             print {$OUT} $_;
         }
         else {

Modified: branches/dynop_mapping/config/gen/core_pmcs.pm
==============================================================================
--- branches/dynop_mapping/config/gen/core_pmcs.pm	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/config/gen/core_pmcs.pm	Tue Aug  3 02:53:14 2010	(r48260)
@@ -76,7 +76,7 @@
 END_H
     print {$OUT} coda();
 
-    close $OUT or die "Can't close file: $!";;
+    close $OUT or die "Can't close file: $!";
 
     move_if_diff( "$file.tmp", $file );
 

Modified: branches/dynop_mapping/config/gen/makefiles/editor.in
==============================================================================
--- branches/dynop_mapping/config/gen/makefiles/editor.in	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/config/gen/makefiles/editor.in	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2009, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
 # $Id$
 
 #IF(win32):VIM_DIR     = $(USERPROFILE)/vimfiles
@@ -13,6 +13,9 @@
 MKPATH = @mkpath@
 RM_F   = @rm_f@
 
+SKEL_FILE_DIR = `$(PERL) -e 'print "$(SKELETON)" || "$(VIM_DIR)"'`
+LINE          = "au BufNewFile         *.pir 0r $(SKEL_FILE_DIR)/skeleton.pir"
+
 default: all
 
 all: pir.vim imc.kate skeleton.pir
@@ -49,6 +52,7 @@
 	$(CP) pmc.vim "$(VIM_SYN_DIR)"
 	$(MKPATH) "$(VIM_FT_DIR)"
 	$(CP) filetype_parrot.vim "$(VIM_FT_DIR)/parrot.vim"
+	echo $(LINE) >> "$(VIM_FT_DIR)/parrot.vim"
 	$(MKPATH) "$(VIM_IN_DIR)"
 	$(CP) indent_pir.vim "$(VIM_IN_DIR)/pir.vim"
 

Modified: branches/dynop_mapping/config/gen/makefiles/root.in
==============================================================================
--- branches/dynop_mapping/config/gen/makefiles/root.in	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/config/gen/makefiles/root.in	Tue Aug  3 02:53:14 2010	(r48260)
@@ -987,18 +987,9 @@
 # Parrot Debugger
 #
 
-src/parrot_debugger$(O) : $(INC_DIR)/embed.h \
-	src/parrot_debugger.c \
-	$(INC_DIR)/runcore_api.h \
-	compilers/imcc/imc.h $(PARROT_H_HEADERS) compilers/imcc/parser.h \
-	compilers/imcc/cfg.h \
-	compilers/imcc/debug.h \
-	compilers/imcc/imcparser.h \
-	compilers/imcc/instructions.h \
-	compilers/imcc/sets.h \
-	compilers/imcc/symreg.h \
-	compilers/imcc/unit.h \
-	$(INC_DIR)/oplib/ops.h
+src/parrot_debugger$(O) : $(PARROT_H_HEADERS) src/parrot_debugger.c \
+	$(INC_DIR)/embed.h \
+	$(INC_DIR)/runcore_api.h
 
 $(PDB) : src/parrot_debugger$(O) src/parrot_config$(O) $(LIBPARROT)
 	$(LINK) @ld_out@$@ \
@@ -2472,6 +2463,12 @@
 src/extra_nci_thunks.c : src/nci/extra_thunks.nci $(NCI_THUNK_GEN)
 	$(NCI_THUNK_GEN) --dynext --no-warn-dups \
 		--output=src/extra_nci_thunks.c <src/nci/extra_thunks.nci
+#
+# remove the following two lines commited in r48180 which cause this to be re-generated
+# every time the all target is invoked - see TT #1719
+#
+#	$(NCI_THUNK_GEN) --core --loader-name=Parrot_nci_load_extra_thunks --no-warn-dups \
+#		--output=src/nci/extra_thunks.c <src/nci/extra_thunks.nci
 
 ## SUFFIX OVERRIDE
 src/extra_nci_thunks$(O) : $(PARROT_H_HEADERS) src/extra_nci_thunks.c \

Modified: branches/dynop_mapping/config/gen/platform/generic/env.c
==============================================================================
--- branches/dynop_mapping/config/gen/platform/generic/env.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/config/gen/platform/generic/env.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -74,13 +74,13 @@
 void
 Parrot_unsetenv(PARROT_INTERP, STRING *str_name)
 {
-    char * const name = Parrot_str_to_cstring(interp, str_name);
 #ifdef PARROT_HAS_UNSETENV
+    char * const name = Parrot_str_to_cstring(interp, str_name);
     unsetenv(name);
+    Parrot_str_free_cstring(name);
 #else
-    Parrot_setenv(name, "");
+    Parrot_setenv(interp, str_name, Parrot_str_new(interp, "", 0));
 #endif
-    Parrot_str_free_cstring(name);
 }
 
 /*

Modified: branches/dynop_mapping/config/init/defaults.pm
==============================================================================
--- branches/dynop_mapping/config/init/defaults.pm	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/config/init/defaults.pm	Tue Aug  3 02:53:14 2010	(r48260)
@@ -80,13 +80,17 @@
     my $ccdlflags = $Config{ccdlflags};
     $ccdlflags =~ s/\s*-Wl,-rpath,\S*//g if $conf->options->get('disable-rpath');
 
+    # escape spaces in build directory
+    my $build_dir =  abs_path($FindBin::Bin);
+    $build_dir    =~ s{ }{\\ }g;
+
     my $cc_option = $conf->options->get('cc');
     # We need a Glossary somewhere!
     $conf->data->set(
         debugging => $conf->options->get('debugging') ? 1 : 0,
         optimize  => '',
         verbose   => $conf->options->get('verbose'),
-        build_dir => abs_path($FindBin::Bin),
+        build_dir => $build_dir,
         configured_from_file =>
             $conf->options->get('configured_from_file') || '',
         configuration_steps => ( join q{ } => $conf->get_list_of_steps() ),

Modified: branches/dynop_mapping/docs/book/pir/ch04_variables.pod
==============================================================================
--- branches/dynop_mapping/docs/book/pir/ch04_variables.pod	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/docs/book/pir/ch04_variables.pod	Tue Aug  3 02:53:14 2010	(r48260)
@@ -182,7 +182,7 @@
 
   $P0 = or $P1, $P2
 
-=end PIR_FRAGMENT_INVALID[
+=end PIR_FRAGMENT_INVALID
 
 Both C<and> and C<or> are short-circuiting ops. If they can determine what
 value to return from the first argument, they'll never evaluate the second.

Modified: branches/dynop_mapping/docs/parrothist.pod
==============================================================================
--- branches/dynop_mapping/docs/parrothist.pod	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/docs/parrothist.pod	Tue Aug  3 02:53:14 2010	(r48260)
@@ -111,4 +111,6 @@
  Whiteknight 2.4.0          2010-May-18     "Sulfer Crest"
  Gerd        2.5.0          2010-Jun-15     "Cheops"
 
+ coke        2.6.0 *        2010-Jul-20     "Red-rumped"
+
 =cut

Modified: branches/dynop_mapping/docs/pdds/pdd27_multiple_dispatch.pod
==============================================================================
--- branches/dynop_mapping/docs/pdds/pdd27_multiple_dispatch.pod	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/docs/pdds/pdd27_multiple_dispatch.pod	Tue Aug  3 02:53:14 2010	(r48260)
@@ -207,11 +207,7 @@
 
 =item Parrot_mmd_invoke
 
-Make a multiple dispatch call. Similar in syntax to C<Parrot_PCCINVOKE>, but
-doesn't separate out the invocant before the signature since the call can have
-multiple invocants. A significant part of the code from C<Parrot_PCCINVOKE>
-can be factored out to helper routines used by both C<Parrot_PCCINVOKE> and
-C<Parrot_mmd_invoke>.
+Make a multiple dispatch call.
 
   void
   Parrot_mmd_invoke(PARROT_INTERP, NOTNULL(STRING *sub_name),

Modified: branches/dynop_mapping/docs/project/release_manager_guide.pod
==============================================================================
--- branches/dynop_mapping/docs/project/release_manager_guide.pod	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/docs/project/release_manager_guide.pod	Tue Aug  3 02:53:14 2010	(r48260)
@@ -150,7 +150,8 @@
 policy. (Those changes are all included within the major version number
 increase for the supported release.)
 
-Once you've updated PBC_COMPAT, run C<sh tools/dev/mk_native_pbc> to update the
+Once you've updated PBC_COMPAT, running C<sh tools/dev/mk_packfile_pbc> if
+necessary, then run C<sh tools/dev/mk_native_pbc> to update the
 pbc files used in the native pbc tests.  Note that you must have Parrot already
 built for this to work, and that this script will reconfigure and rebuild
 Parrot with various primitive size options.
@@ -261,6 +262,9 @@
 bad idea to add a "highlights" section to draw attention to major new
 features, just be sure to say the same thing in both text and HTML versions.
 
+Be sure to include the SHA1 sums of the tarballs in the release announcement;
+They're automatically generated by C<make release>.
+
 =item 10.
 
 Update the website. You will need an account with editor rights
@@ -409,10 +413,9 @@
 visible at
 L<http://www.google.com/calendar/render?cid=ldhctdamsgfg5a1cord52po9h8@group.calendar.google.com>.
 
- - Jul 20, 2010 - 2.6*  - coke
  - Aug 17, 2010 - 2.7   - mikehh
  - Sep 21, 2010 - 2.8   - gerd
- - Oct 19, 2010 - 2.9*  - ??
+ - Oct 19, 2010 - 2.9*  - gerd
  - Nov 16, 2010 - 2.10  - ??
  - Dec 21, 2010 - 2.11  - ??
  - Jan 18, 2010 - 3.0*  - ??

Modified: branches/dynop_mapping/docs/project/support_policy.pod
==============================================================================
--- branches/dynop_mapping/docs/project/support_policy.pod	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/docs/project/support_policy.pod	Tue Aug  3 02:53:14 2010	(r48260)
@@ -58,9 +58,12 @@
 features we will also regularly deprecate features and remove them. To
 ease the burden of these changes on the users, our policy is to notify
 users of these deprecations in at least one supported release before
-removal. Deprecation notices are listed in the file L<DEPRECATED.pod>,
-together with a version number to help us track when the feature is safe
-to remove.
+removal and to provide users with a reasonable upgrade path. Deprecation
+notices are listed in the file L<DEPRECATED.pod>, together with a version
+number to help us track when the feature is safe to remove.  The suggested
+upgrade paths for deprecated features can be found on the ParrotDeprecations
+wiki page. Note that deprecation removals that are committed without an
+appropriate upgrade path are subject to reversion.
 
 For example, if a feature exists in Parrot 2.0 (January 2010), and is
 not listed for deprecation in that release, the user can be confident
@@ -71,13 +74,45 @@
 next supported release. We sometimes delay removing deprecated features
 for various reasons, including dependencies by other parts of the core.
 
-The developer releases have more flexibility in feature removal, while
-still meeting the deprecation requirements for support releases. A
-feature that has a deprecation notification in the 2.0 release may be
-removed from any monthly developer release between 2.0 and the next
-supported release, though we're likely to stagger the removals. An
-experimental feature that was never included in a supported release may
-be removed before a supported release without a deprecation cycle.
+The developer releases have more flexibility in feature removal, while still
+meeting the deprecation requirements for support releases. A feature that has a
+deprecation notification in the 2.0 release may be removed from any monthly
+developer release between 2.0 and the next supported release, though we're
+likely to stagger the removals.
+
+=head2 Deprecation Notifications
+
+HLLs, libraries and other users of Parrot will inevitably find that we
+deprecate some core features which they depend on.  In order to minimize the
+pain caused by this deprecation and the subsequent "upgrade tax" (i.e. the time
+users must spend to keep their code working after an upgrade), we now forbid
+the removal of any deprecated feature until an appropriate upgrade path has
+been documented.  Any deprecated features that are removed without an
+appropriate notification are subject to reversion until such notifications have
+been added.  The single (rare) exception to this rule is any core feature which
+is broken or incomplete to the point that it is deemed unusable by any user.
+
+These notifications must be listed on the ParrotDeprecations wiki page, along
+with ticket numbers, a short summary of the deprecation and the expected impact
+on users.  A longer explanation of each deprecation must be put on a page
+dedicated to the deprecations for a specific supported release.  This page
+provides a short description of each change, its rationale and at least one
+example of how affected code can be modified to work after the deprecation
+takes effect.
+
+The purpose of these notifications is to make life easier for users of Parrot.
+If an existing feature is incomplete or broken to the degree that no external
+projects is likely to be able to make use of it, the removal of that feature
+does not require a documented upgrade path.  We expect such deprecations to be
+very rare.
+
+=head2 Experimental Features
+
+From time to time, we may add features to get feedback on their utility and
+design.  Marking them as "Experimental" in F<DEPRECATED.pod> indicates that we
+may modify or remove them without official deprecation notices.  Use them at
+your own risk--and please provide feedback through official channels if you use
+them successfully or otherwise.
 
 =head2 Supported Older Versions
 

Modified: branches/dynop_mapping/docs/resources/parrot.css
==============================================================================
--- branches/dynop_mapping/docs/resources/parrot.css	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/docs/resources/parrot.css	Tue Aug  3 02:53:14 2010	(r48260)
@@ -79,6 +79,7 @@
 div#footer {
 	background: #121A28;
 	text-align: center;
+    color: white;
         padding-top: 1px;
         padding-bottom: 10px;
 }

Modified: branches/dynop_mapping/editor/README.pod
==============================================================================
--- branches/dynop_mapping/editor/README.pod	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/editor/README.pod	Tue Aug  3 02:53:14 2010	(r48260)
@@ -14,14 +14,20 @@
 
 =head2 Vim
 
-Calling C<make vim-install> in the F<editor/> directory will
-install several files in F<~/.vim>. All these files have the F<.vim>
+By default calling C<make vim-install> in the F<editor/> directory will
+install several files in F<~/.vim>. You can use the variable C<VIM_DIR>
+on the command line by calling C<make> to choose a different target directory
+for the vim files.
+
+   make vim-install [VIM_DIR=/vim_files_target_directory]
+
+All these files have the F<.vim>
 extension. F<pir.vim> (generated from F<pir_vim.in>), F<pasm.vim>, and
 F<pmc.vim> are syntax files; F<indent_pir.vim> is an indent plugin;
 and F<filetype_parrot.vim> is a filetype script that tells vim to
 associate the extensions .pir, .pasm, and .pmc with the
 right syntax. The syntax files are installed to F<~/.vim/syntax/>;
-F<filetype_parrot.vim> is installed to F<~/.vim/ftdetect>;
+F<filetype_parrot.vim> is installed to F<~/.vim/parrot.vim>;
 F<indent_pir.vim> is copied to F<~/.vim/indent/pir.vim>.  If you want
 indenting, you should also place C<filetype indent on> somewhere in
 your F<~/.vimrc>.
@@ -35,7 +41,7 @@
 
 in F<editor/> to build it.
 
-TODO: How do we install Kate syntax files?
+Copy the file F<imcc.xml> to F<~/.kde/share/apps/katepart/syntax>.
 
 =head2 Emacs
 
@@ -77,7 +83,7 @@
               (function (lambda ()
                           (setq indent-tabs-mode nil))))
 
-to F<~/.emacs> as this seems to prevent the odd behavior that is noted when 
+to F<~/.emacs> as this seems to prevent the odd behavior that is noted when
 using tabs in the pasm mode.
 
 =back

Modified: branches/dynop_mapping/editor/filetype_parrot.vim
==============================================================================
--- branches/dynop_mapping/editor/filetype_parrot.vim	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/editor/filetype_parrot.vim	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1,4 +1,3 @@
 au BufNewFile,BufRead *.pmc set ft=pmc cindent
 au BufNewFile,BufRead *.pasm set ft=pasm ai sw=4
 au BufNewFile,BufRead *.pir set ft=pir ai sw=4
-au BufNewFile         *.pir 0r ~/.vim/skeleton.pir

Modified: branches/dynop_mapping/examples/languages/squaak/MAINTAINER
==============================================================================
--- branches/dynop_mapping/examples/languages/squaak/MAINTAINER	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/examples/languages/squaak/MAINTAINER	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1,4 +1,5 @@
 # $Id$
 
-N: Klaas-Jan Stol (kj,kjs)
-E: parrotcode at gmail dot com
+N: Tyler Curtis
+U: tcurtis
+E: tyler.l.curtis at gmail.com
\ No newline at end of file

Modified: branches/dynop_mapping/examples/languages/squaak/README
==============================================================================
--- branches/dynop_mapping/examples/languages/squaak/README	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/examples/languages/squaak/README	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1,51 +1,5 @@
-Squaak: A Simple Language
-
-Squaak is a case-study language described in the Parrot Compiler Tools
-tutorial at http://www.parrotblog.org/2008/03/targeting-parrot-vm.html.
-
-Note that Squaak is NOT an implementation Squeak; it has nothing to do
-with any SmallTalk implementation.
-
-Squaak demonstrates some common language constructs, but at the same
-time is currently lacking some other, seemingly simple features. For instance,
-Squaak does not have break or continue statements (or equivalents
-in your favorite syntax). Once PCT has built-in support for these, they
-will be added.
-
-Squaak has the following features:
-
-   * global and local variables
-   * basic types: integer, floating-point and strings
-   * aggregate types: arrays and hash tables
-   * operators: +, -, /, *, %, <, <=, >, >=, ==, !=, .., and, or, not
-   * subroutines and parameters
-   * assignments and various control statements, such as "if" and "while" and "return"
-   * library functions: print, read
-
-A number of common (more advanced) features are missing.
-Most notable are:
-
-   * classes and objects
-   * exceptional control statements such as break and continue
-   * advanced control statements such as switch
-   * closures (nested subroutines and accessing local variables in an outer scope)
-
-Squaak is designed to be a simple showcase language, to show the use of the
-Parrot Compiler Tools for implementing a language.
-
-In order to use Squaak:
-
- $ make
-
-Running Squaak in interactive mode:
-
- $ ../../parrot squaak.pbc
-
-Running Squaak with a file (for instance, the included Game of Life example):
-
- $ ../../parrot squaak.pbc examples/life.sq
-
-Bug reports and improvements can be sent to the maintainer or Parrot porters
-mailing list.
+Language 'Squaak' was created with tools/dev/mk_language_shell.pl, r47087.
 
+    $ parrot setup.pir
+    $ parrot setup.pir test
 

Modified: branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_1.pod
==============================================================================
--- branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_1.pod	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_1.pod	Tue Aug  3 02:53:14 2010	(r48260)
@@ -99,36 +99,29 @@
 
 =over 4
 
-=item B<P>arrot B<G>rammar B<E>ngine (PGE).
+=item B<N>ot B<Q>uite B<P>erl (6) (NQP-rx).
 
-The PGE is an advanced engine for regular expressions. Besides regexes as found
-in Perl 5, it can also be used to define language grammars, using Perl 6 syntax.
-(Check the references for the specification.)
+NQP is a lightweight language inspired by Perl 6 and can be used to write the
+methods that must be executed during the parsing phase, just as you can write
+actions in a Yacc/Bison input file. It also provides the regular expression engine we'll use to 
+write our grammar. In addition to the capabilities of Perl 5's regexes, the Perl 6 regexes that NQP
+ implements can be used to define language grammars. (Check the references for the specification.)
 
 =item B<P>arrot B<A>bstract B<S>yntax B<T>ree (PAST).
 
 The PAST nodes are a set of classes defining generic abstract syntax tree nodes
 that represent common language constructs.
 
-=item HLLCompiler class.
+=item HLL::Compiler class.
 
 This class is the compiler driver for any PCT-based compiler.
 
-=item B<N>ot B<Q>uite B<P>erl (6) (NQP).
-
-NQP is a lightweight language inspired by Perl 6 and can be used to write the
-methods that must be executed during the parsing phase, just as you can write
-actions in a Yacc/Bison input file.
-
 =back
 
 =head2 Getting Started
 
 For this tutorial, it is assumed you have successfully compiled parrot
-(and maybe even run the test suite). If you browse through the languages
-directory in the Parrot source tree, you'll find a number of language
-implementations. Most of them are not complete yet; some are maintained
-actively and others aren't. If, after reading this tutorial, you feel like
+(and maybe even run the test suite). If, after reading this tutorial, you feel like
 contributing to one of these languages, you can check out the mailing list or
 join IRC (see the references section for details).
 
@@ -137,13 +130,13 @@
 language implementation. In order to generate these files for our language,
 type (assuming you're in Parrot's root directory):
 
- $ perl tools/dev/mk_language_shell.pl Squaak languages/squaak
+ $ perl tools/dev/mk_language_shell.pl Squaak ~/src/squaak
 
 (Note: if you're on Windows, you should use backslashes.) This will generate the
-files in a directory F<languages/squaak>, and use the name Squaak as the language's
+files in a directory F<~/src/squaak>, and use the name Squaak as the language's
 name.
 
-After this, go to the directory F<languages/squaak> and type:
+After this, go to the directory F<~/src/squaak> and type:
 
  $ parrot setup.pir test
 
@@ -165,20 +158,22 @@
 
 Save it the as file F<test.sq> and type:
 
- $ ../../parrot squaak.pbc test.sq
+ $ ./installable_squaak test.sq
 
+"installable_squaak" is a "fake-cutable" an executable that bundles the Parrot interpreter and the
+compiled bytecode for a program to allow treating a Parrot program as a normal executable program.
 This will run Parrot, specifying squaak.pbc as the file to be run by Parrot,
 which takes a single argument: the file test.sq. If all went well, you should
 see the following output:
 
- $ ../../parrot squaak.pbc test.sq
+ $ ./installable_squaak test.sq
  Squaak!
 
 Instead of running a script file, you can also run the Squaak compiler as an
 interactive interpreter. Run the Squaak compiler without specifying a script
 file, and type the same statement as you wrote in the file:
 
- $ ../../parrot squaak.pbc
+ $ ./installable_squaak
  say "Squaak!";
 
 which will print:
@@ -191,7 +186,7 @@
 coming. Hopefully you now have a global idea of what the Parrot Compiler Tools
 are, and how they can be used to build a compiler targeting Parrot. If you want
 to check out some serious usage of the PCT, check out Rakudo (Perl 6 on Parrot)
-in languages/perl6 or Pynie (Python on Parrot) in languages/pynie.
+at http://rakudo.org/ or Pynie (Python on Parrot) at http://code.google.com/p/pynie/ .
 
 The next episodes will focus on the step-by-step implementation of our language,
 including the following topics:
@@ -200,7 +195,7 @@
 
 =item structure of PCT-based compilers
 
-=item using PGE rules to define the language grammar
+=item using NQP-rx rules to define the language grammar
 
 =item implementing operator precedence using an operator precedence table
 
@@ -223,8 +218,8 @@
 
 =head3 Advanced interactive mode.
 
-Launch your favorite editor and look at the file squaak.pir in the directory
-languages/squaak. This file contains the main function (entry point) of the
+Launch your favorite editor and look at the file Compiler.pm in the directory
+F<~/src/squaak/src/Squaak/>. This file contains the main function (entry point) of the
 compiler. The class HLLCcompiler defines methods to set a command-line banner
 and prompt for your compiler when it is running in interactive mode. For
 instance, when you run Python in interactive mode, you'll see:
@@ -242,19 +237,19 @@
 running in interactive mode (of course you can change this according to your
 personal taste):
 
- $ ../../parrot squaak.pbc
+ $ ./installable_squaak
  Squaak for Parrot VM.
  >
 
 Add code to the file squaak.pir to achieve this.
 
-Hint 1: Look in the onload subroutine.
+Hint 1: Look in the INIT block.
 
-Hint 2: Note that only double-quoted strings in PIR can interpret
+Hint 2: Note that only double-quoted strings in NQP can interpret
 escape-characters such as '\n'.
 
 Hint 3: The functions to do this are documented in
-compilers/pct/src/PCT/HLLCompiler.pir.
+F<compilers/pct/src/PCT/HLLCompiler.pir>.
 
 =head2 References
 
@@ -270,7 +265,7 @@
 
 =item * Operator Precedence Parsing with PCT: docs/pct/pct_optable_guide.pod
 
-=item * Perl 6/PGE rules syntax: Synopsis 5
+=item * Perl 6/NQP rules syntax: Synopsis 5 at http://perlcabal.org/syn/S05.html or http://svn.pugscode.org/pugs/docs/Perl6/Spec/S05-regex.pod
 
 =back
 

Modified: branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_2.pod
==============================================================================
--- branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_2.pod	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_2.pod	Tue Aug  3 02:53:14 2010	(r48260)
@@ -24,7 +24,7 @@
 compiler enters the interactive mode. Consider the first case, passing the file
 test.sq, just as we did before:
 
- $ ../../parrot squaak.pbc test.sq
+ $ ./installable_squeak test.sq
 
 When invoking our compiler like this, the file test.sq is compiled and the
 generated code (bytecode) is executed immediately by Parrot. How does this work,
@@ -50,7 +50,7 @@
 This is an example of using the target option set to "parse", which will print
 the parse tree of the input to stdout:
 
- $ ../../parrot squaak.pbc --target=parse test.sq
+ $ ./installable_squeak --target=parse test.sq
 
 In interactive mode, giving this input:
 
@@ -58,24 +58,32 @@
 
 will print this parse tree (without the line numbers):
 
-  1 "parse" => PMC 'Squaak::Grammar' => "say 42;\r\n" @ 0 {
-  2    <statement> => ResizablePMCArray (size:1) [
-  3        PMC 'Squaak::Grammar' => "say 42;\r\n" @ 0 {
-  4            <value> => ResizablePMCArray (size:1) [
-  5                PMC 'Squaak::Grammar' => "42" @ 4 {
-  6                    <integer> => PMC 'Squaak::Grammar' => "42" @ 4
-  7                }
-  8            ]
-  9        }
- 10    ]
- 11 }
+  1 "parse" => PMC 'Regex;Match' => "say 42;\n" @ 0 {
+  2    <statementlist> => PMC 'Regex;Match' => "say 42;\n" @ 0 {
+  3         <statement> => ResizablePMCArray (size:1) [
+  4             PMC 'Regex;Match' => "say 42" @ 0 {
+  5                 <statement_control> => PMC 'Regex;Match' => "say 42" @ 0 {
+  6                     <sym> => PMC 'Regex;Match' => "say" @ 0
+  7                     <EXPR> => ResizablePMCArray (size:1) [
+  8                         PMC 'Regex;Match' => "42" @ 4 {
+  9                             <integer> => PMC 'Regex;Match' => "42" @ 4 {
+ 10                                 <VALUE> => PMC 'Regex;Match' => "42" @ 4
+ 11                                 <decint> => \parse[0][0]
+ 12                             }
+ 13                         }
+ 14                     ]
+ 15                 }
+ 16             }
+ 17         ]
+ 18     }
+ 19 }
 
 When changing the value of the target option, the output changes into a
 different representation of the input. Why don't you try that right now?
 
 So, a HLLCompiler object has four compilation phases: parsing, construction of a
 Parrot Abstract Syntax Tree (PAST), construction of a Parrot Opcode Syntax Tree
-(POST), generation of Parrot Intermediate Representation (PIR). After
+(POST) and generation of Parrot Intermediate Representation (PIR). After
 compilation, the generated PIR is executed immediately.
 
 If your compiler needs additional stages, you can add them to your HLLCompiler
@@ -89,58 +97,55 @@
 Parse phase: match objects and PAST construction
 During the parsing phase, the input is analyzed using Perl 6's extended regular
 expressions, known as Rules (see Synopsis 5 for details). When a rule matches
-some input string, a so-called Match object is created. A Match object is a
-combined array and hashtable, implying it can be indexed by integers as well as
+some input string, a Match object is created. A Match object is a
+combined array and hashtable and can be indexed by integers as well as
 strings. As rules typically consist of other (sub) rules, it is easy to retrieve
 a certain part of the match. For instance, this rule:
 
  rule if_statement {
      'if' <expression> 'then' <statement> 'end'
-     {*}
  }
 
 has two other subrules: expression and statement. The match object for the rule
-if_statement represents the whole string from if to end. When you're interested
-only in the expression or statement part, you can retrieve that by indexing the
-match object by the name of the subrule (in this case, expression and statement,
-respectively).
+C<if_statement> represents the whole string from if to end.  You can retrieve a
+the Match for a subrule by indexing into the Match object using the name of
+that subrule.  For instance, to get the match for C<< <expression> >>, you
+would use C<< $/<expression> >>.  (In nqp, C<< $foo<bar> >> indexes into
+C<$foo> using the constant string C<bar> as a hash key.)
 
 During the parse phase, the PAST is constructed. There is a small set of PAST
-node types, for instance, C<PAST::Var> to represent variables (identifiers, such
-as C<print>), C<PAST::Val> to represent literal values (for instance, C<"hello">
-and C<42>), and so on. Later we shall discuss the various PAST nodes in more
-detail.
+node types. For instance, C<PAST::Var> to represent variables (identifiers, such
+as C<print>) and C<PAST::Val> to represent literal values (for instance, C<"hello">
+and C<42>). Later we'll go through the various PAST nodes in more detail.
 
 Now, you might wonder, at which point exactly is this PAST construction
-happening? This is where the special {*} symbol comes in, just below the string
-'if' in the if_statement rule shown above. These special markers indicate that a
-parse action should be invoked. Such a parse action is just a method that has
-the same name as the rule in which it is written (in this case: if_statement).
-So, during the parsing phase, several parse actions are executed, each of which
-builds a piece of the total PAST representing the input string. More on this
-will be explained later.
-
-The Parrot Abstract Syntax Tree is just a different representation of the same
-input string (your program being compiled). It is a convenient data structure to
-transform into something different (such as executable Parrot code) but also to
-do all sorts of analysis, such as compile-time type checking.
+happening? At the end of a successfully matching rule, the rule's parse action
+is performed. Such a parse action is just a method that has the same name as
+the rule which triggers it (in this case: C<if_statement>).  So, during the
+parsing phase, several parse actions are executed, each of which builds a piece
+of the total PAST representing the input string.
+
+A Parrot Abstract Syntax Tree is just a compiler-friendly tree-based
+representation of your program. It is convenient both for analysis and
+optimization, and for further transformation into a lower-level representation
+such as POST.
 
 =head2 PAST to POST
 
-After the parse phase during which the PAST is constructed, the HLLCompiler
-transforms this PAST into something called a Parrot Opcode Syntax Tree (POST).
-The POST representation is also a tree structure, but these nodes are on a lower
-abstraction level. For instance, on the PAST level there is a node type to
-represent a while statement (constructed as
-C<PAST::Op.new( :pasttype('while') )> ).
+After the PAST is constructed, the HLLCompiler transforms this PAST into a
+Parrot Opcode Syntax Tree (POST).  The POST representation is also a tree
+structure, but these nodes are on a lower abstraction level and correspond very
+closely to PIR ops.  For instance, the PAST node type which represents a while
+statement (constructed as C<PAST::Op.new( :pasttype('while') )> ) decomposes
+into several POST nodes.
 
-The template for a while statement typically consists of a number of labels and
+The template for a C<while> statement typically consists of a number of labels and
 jump instructions. On the POST level, the same while statement is represented by
-a set of nodes, each representing a one instruction or a label. Therefore, it is
-much easier to transform a POST into something executable than when this is done
-from the PAST level.
+a set of nodes, each representing a one instruction or a label. This makes it
+much easier to transforn POST into executable code.
+
 Usually, as a user of the PCT, you don't need to know details of POST nodes,
-which is why this will not be discussed in further detail. Use the target option
+which is why this will not be discussed in further detail. Use C<--target=post>
 to see what a POST looks like.
 
 =head2 POST to PIR
@@ -168,34 +173,35 @@
 
 =back
 
-where we noted that the first two are done during the parse stage. Now, as
-you're reading this tutorial, you're probably interested in using the PCT for
-implementing Your Favorite Language for Parrot. We already saw that a language
-grammar is expressed in Perl 6 Rules. What about the other transformations?
-Well, earlier in this episode we mentioned the term parse actions, and that
-these actions create PAST nodes. After you have written a parse action for each
-grammar rule, you're done!
+The first two transformations happen during the parse stage. Now, as you're
+reading this tutorial, you're probably interested in using the PCT to implement
+Your Favorite Language on top of Parrot. We already saw that a language grammar
+is expressed in Perl 6 Rules. What about the other transformations?  Well,
+earlier in this episode we mentioned parse actions and that these actions
+create PAST nodes. After you have written a parse action for each grammar rule,
+you're done!
 
 Say what?
 
 That's right. Once you have correctly constructed a PAST, your compiler can
 generate executable PIR, which means you just implemented your first language
-for Parrot. Of course, you still need to implement any language specific
-libraries, but that's besides the point.
+on top of Parrot. Of course, you'll still need to implement any language specific
+libraries, but that's beside the point.
 
-PCT-based compilers already know how to transform a PAST into a POST, and how to
-transform a POST into PIR. These transformation stages are already provided by
+PCT-based compilers already know how to transform PAST into POST and how to
+transform POST into PIR. These transformation stages are already provided by
 the PCT.
 
 =head2 What's next?
 
 In this episode we took a closer look at the internals of a PCT-based compiler.
-We discussed the four compilation stages, that transform an input string (a
-program, or script, depending on your definition) into a PAST, a POST and
-finally executable PIR.
+We discussed the four compilation stages which transform an input string (a
+program or script, depending on your definition) into PAST, POST and finally
+executable PIR.
+
 The next episodes is where the Fun Stuff is: we will be implementing Squaak for
 Parrot. Piece by piece, we will implement the parser and the parse actions.
-Finally, we shall demonstrate John Conway's "Game of Life" running on Parrot,
+Finally, we'll demonstrate John Conway's "Game of Life" running on Parrot,
 implemented in Squaak.
 
 =head2 Exercises
@@ -203,27 +209,22 @@
 Last episode's exercise was to add a command line banner and prompt for the
 interactive mode of our compiler. Given the hints that were provided, it was
 probably not too hard to find the solution, which is shown below. This
-subroutine onload can be found in the file Squaak.pir. The relevant lines are
+INIT block can be found in the file src/Squaak/Compiler.pm. The relevant lines are
 marked with a comment
 
-  .sub 'onload' :anon :load :init
-      load_bytecode 'PCT.pbc'
-
-      $P0 = get_hll_global ['PCT'], 'HLLCompiler'
-      $P1 = $P0.'new'()
-      $P1.'language'('Squaak')
-      $P1.'parsegrammar'('Squaak::Grammar')
-      $P1.'parseactions'('Squaak::Grammar::Actions')
-
-      $P1.'commandline_banner'("Squaak for Parrot VM\n") ## set banner
-      $P1.'commandline_prompt'('> ')                     ## set prompt
-
-  .end
+  INIT {
+      Squaak::Compiler.language('Squaak');
+      Squaak::Compiler.parsegrammar(Squaak::Grammar);
+      Squaak::Compiler.parseactions(Squaak::Actions);
+
+      Squaak::Compiler.commandline_banner("Squaak for Parrot VM.\n"); # set banner
+      Squaak::Compiler.commandline_prompt('> '); # set prompt
+  }
 
 Starting in the next episode, the exercises will be more interesting. For now,
 it would be useful to browse around through the source files of the compiler,
-and see if you understand the relation between the grammar rules in grammar.pg
-and the methods in actions.pm.
+and see if you understand the relation between the grammar rules in src/Squaak/Grammar.pm
+and the methods in src/Squaak/Actions.pm.
 It's also useful to experiment with the --target option described in this
 episode. If you don't know PIR, now is the time to do some preparation for that.
 There's sufficient information to be found on PIR, see the References section
@@ -236,10 +237,7 @@
 
 =item 1. PIR language specification: docs/pdds/draft/PDD19_pir.pod
 
-=item 2. PIR articles: docs/art/*.pod
-
 =back
 
-
 =cut
 

Modified: branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_3.pod
==============================================================================
--- branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_3.pod	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_3.pod	Tue Aug  3 02:53:14 2010	(r48260)
@@ -10,11 +10,10 @@
 language called I<Squaak>, using a Perl script provided with Parrot. We
 discussed the general structure of PCT-based compilers, and each of the default
 four transformation phases.
-This third episode is where the Fun begins. In this episode, we shall introduce
-the full specification of Squaak. In this and following episodes, we will
-implement this specification step by step, in small increments that are easy to
-digest. Once you get a feel for it, you'll notice implementing Squaak is almost
-trivial, and most important, a lot of fun! So, let's get started!
+This third episode is where the Fun begins. In this episode, we'll introduce
+the full specification of Squaak. In this and following episodes, we'll
+implement this specification step by step in small easy-to-digest increments.
+So let's get started!
 
 =head2 Squaak Grammar
 
@@ -26,7 +25,7 @@
     [step]      indicates an optional step
     'do'        indicates the keyword 'do'
 
-Below is Squaak's grammar. The start symbol is program.
+Below is Squaak's grammar. The start symbol is C<program>.
 
     program              ::= {stat-or-def}
 
@@ -123,66 +122,66 @@
 "real world" languages such as C, not to mention Perl 6. No worries though, we
 won't implement the whole thing at once, but in small steps. What's more, the
 exercises section contains enough exercises for you to learn to use the PCT
-yourself! The solutions to these exercises will be posted a few days later (but
-you really only need a couple of hours to figure them out).
+yourself! The solutions to these exercises are in later episodes if you don't
+want to take the time to solve them yourself.
 
 =head2 Semantics
 
-Most of the Squaak language is straightforward; the if-statement executes
+Most of the Squaak language is straightforward; the C<if-statement> executes
 exactly as you would expect. When we discuss a grammar rule (for its
-implementation), a semantic specification will be included. This is to prevent
-myself from writing a complete language manual, which could take some pages.
-
-=head2 Interactive Squaak
-
-Although the Squaak compiler can be used in interactive mode, there is one point
-of attention to be noted. When defining a local variable using the C<var>
-keyword, this variable will be lost in any consecutive commands. The variable
-will only be available to other statements within the same command (a command is
-a set of statements before you press enter). This has to do with the code
-generation by the PCT, and will be fixed at a later point. For now, just
-remember it doesn't work.
+implementation), a semantic specification will be included. This is to avoid
+writing a complete language manual since that's probably not what you're here
+for.
 
 =head2 Let's get started!
 
 In the rest of this episode we will implement the basic parts of the grammar,
 such as the basic data types and assignments. At the end of this episode,
-you'll be able to assign simple values to (global) variables. It ain't much, but
+you'll be able to assign simple values to (global) variables. It's not much but
 it's a very important first step. Once these basics are in place, you'll notice
-that adding a certain syntactic construct becomes a matter of minutes.
+that adding a certain syntactic construct can be done in a matter of minutes.
 
-First, open your editor and open the files F<src/parser/grammar.pg> and
-F<src/parser/actions.pm>. The former implements the parser using Perl 6 rules,
+First, open your editor and open the files F<src/Squaak/Grammar.pm> and
+F<src/Squaak/Actions.pm>. The former implements the parser using Perl 6 rules
 and the latter contains the parse actions, which are executed during the parsing
 stage.
 
-In the file grammar.pg, you'll see the top-level rule, named C<TOP>. It's
+In the file Grammar.pm you'll see the top-level rule, named C<TOP>. It's
 located at, ehm... the top. When the parser is invoked, it will start at this
-rule (a rule is nothing else than a method of the grammar class).
-When we generated this language (in the first episode), some default rules were
-defined. Now we're going to make some small changes, just enough to get us
-started. Firstly, change the statement rule to this:
+rule.  A rule is nothing else than a method of the Grammar class.  When we
+generated this language some default rules were defined. Now we're going to
+make some small changes, just enough to get us started. Replace the
+C<statement> rule with this rule:
 
     rule statement {
         <assignment>
-        {*}
     }
 
-and add these rules:
+Replace the statementlist rule with this:
+
+    rule statement_list {
+        <stat_or_def>*
+    }
+
+When you work on the action methods later, you'll also want to replace $<statement> in the action
+method with $<stat_or_def>
+
+Add these rules:
+
+    rule stat_or_def {
+        <statement>
+    }
 
     rule assignment {
-        <primary> '=' <expression>
-        {*}
+        <primary> '=' <EXPR>
     }
 
     rule primary {
         <identifier>
-        {*}
     }
 
     token identifier {
         <!keyword> <ident>
-        {*}
     }
 
     token keyword {
@@ -190,15 +189,33 @@
         |'not'|'or'   |'sub'  |'throw'|'try' |'var'|'while']>>
     }
 
-Now, change the rule "value" into this (renaming to "expression"):
+    token term:sym<primary> {
+        <primary>
+    }
+
+Rename the token C<< term:sym<integer> >> to C<< term:sym<integer_constant> >> and
+C<< term:sym<quote> >> to C<< term:sym<string_constant> >> (to better match our
+language specification).
+
+Add action methods for term:sym<integer_constant> and term:sym<string_constant>
+to F<src/Squaak/Actions.pm>:
 
-    rule expression {
-        | <string_constant> {*}        #= string_constant
-        | <integer_constant> {*}       #= integer_constant
+    method term:sym<integer_constant>($/) {
+        make PAST::Val.new(:value($<integer>.ast), :returns<Integer>);
+    }
+    method term:sym<string_constant>($/) {
+        my $past := $<quote>.ast;
+        $past.returns('String');
+        make $past;
     }
+    method term:sym<primary>($/) {
+        make $<primary>.ast;
+    }
+
+PAST::Val nodes are used the represent constant values.
 
-Rename the rule C<integer> as C<integer_constant>, and C<quote> as
-C<string_constant> (to better match our language specification).
+Finally, remove the rules C<proto token statement_control>,
+C<< rule statement_control:sym<say> >>, and C<< rule statement_control:sym<print> >>.
 
 Phew, that was a lot of information! Let's have a closer look at some things
 that may look unfamiliar. The first new thing is in the rule C<identifier>.
@@ -206,16 +223,21 @@
 doesn't skip whitespace between the different parts specified in the token,
 while a rule does. For now, it's enough to remember to use a token if you want
 to match a string that doesn't contain any whitespace (such as literal constants
-and identifiers), and use a rule if your string does (and should) contain
+and identifiers) and use a rule if your string does (and should) contain
 whitespace (such as a an if-statement). We shall use the word C<rule> in a
 general sense, which could refer to a token. For more information on rules and
-tokens (and there's a third type, called C<regex>), take a look at synopsis 5.
+tokens take a look at Synopsis 5 or look at Moritz's blog post on the subject
+in the references.
 
-In token C<identifier>, the first subrule is called an assertion. It asserts
-that an C<identifier> does not match the rule keyword. In other words, a keyword
-cannot be used as an identifier. The second subrule is called C<ident>, which is
-a built-in rule in the class C<PCT::Grammar>, of which this grammar is a
-subclass.
+In rule C<assignment>, the <EXPR> subrule is one that we haven't defined. The
+EXPR rule is inherited from HLL::Grammar, and it initiates the grammar's
+operator-precedence parser to parse an expression. For now, don't worry about
+it. All you need to know is that it will give us one of our terms.
+
+In token C<identifier> the first subrule is called an assertion. It asserts
+that an C<identifier> does not match the rule keyword. In other words a keyword
+cannot be used as an identifier. The second subrule is called C<ident> which is
+a built-in rule in the class C<PCT::Grammar>, the parent class of this grammar.
 
 In token C<keyword>, all keywords of Squaak are listed. At the end there's a
 C<<< >> >>> marker, which indicates a word boundary. Without this marker, an
@@ -225,18 +247,6 @@
 matched), the string "forloop" cannot be matched as an identifier. The required
 presence of the word boundary prevents this.
 
-The last rule is C<expression>. An expression is either a string-constant or an
-integer-constant. Either way, an action is executed. However, when the action is
-executed, it does not know what the parser matched; was it a string-constant, or
-an integer-constant? Of course, the match object can be checked, but consider
-the case where you have 10 alternatives, then doing 9 checks only to find out
-the last alternative was matched is somewhat inefficient (and adding new
-alternatives requires you to update this check). That's why you see the special
-comments starting with a "#=" character. Using this notation, you can specify a
-key, which will be passed as a second argument to the action method. As we will
-see, this allows us to write very simple and efficient action methods for rules
-such as expression. (Note there's a space between the C<#=> and the key's name).
-
 =head2 Testing the Parser
 
 It is useful to test the parser before writing any action methods. This can save
@@ -253,24 +263,21 @@
 
 Now we have implemented the initial version of the Squaak grammar, it's time to
 implement the parse actions we mentioned before. The actions are written in a
-file called F<src/parser/actions.pm>. If you look at the methods in this file,
-here and there you'll see that the match object ($/) , or rather, hash fields of
-it (like $<statement>) is evaluated in scalar context, by writing "$( ... )".
-As mentioned in Synopsis 5, evaluating a Match object in scalar context returns
-its result object. Normally the result object is the matched portion of the
-source text, but the special make function can be used to set the result object
-to some other value.
+file called F<src/Squaak/Actions.pm>. If you look at the methods in this file,
+here and there you'll see that the C<ast> method being called on the match object ($/) , or rather,
+hash fields of it (like $<statement>).
+The special make function can be used to set the ast to a value.
 This means that each node in the parse tree (a Match object) can also hold its
 PAST representation. Thus we use the make function to set the PAST
-representation of the current node in the parse tree, and later use the $( ... )
-operator to retrieve the PAST representation from it.
+representation of the current node in the parse tree, and later use the C<ast>
+method to retrieve the PAST representation from it.
 
 In recap, the match object ($/) and any subrules of it (for instance
 $<statement>) represent the parse tree; of course, $<statement>
 represents only the parse tree what the $<statement> rule matched. So, any
 action method has access to the parse tree that the equally named grammar rule
-matched, as the match object is always passed as an argument. Evaluating a parse
-tree in scalar context yields the PAST representation (obviously, this PAST
+matched, as the match object is always passed as an argument. Calling the C<ast> method 
+on a parse tree yields the PAST representation (obviously, this PAST
 object should be set using the make function).
 
 If you're following this tutorial, I highly advise you to get your feet wet, and
@@ -300,8 +307,7 @@
 =item 1.
 
 Rename the names of the action methods according to the name changes we made on
-the grammar rules. So, "integer" becomes "integer_constant", "value" becomes
-"expression", and so on.
+the grammar rules. So, "integer" becomes "integer_constant", and so on.
 
 =item 2.
 
@@ -326,6 +332,11 @@
 
 =item 5.
 
+Write the action method for stat_or_def. Simply retrieve the result object from statement and make
+that the result object.
+
+=item 6.
+
 Run your compiler on a script or in interactive mode. Use the target option to
 see what PIR is being generated on the input "x = 42".
 
@@ -338,8 +349,7 @@
 =item * Help! I get the error message "no result object".
 
 This means that the result object was not set properly (duh!).
-Make sure each action method is invoked (check each rule for a "{*}" marker),
-and that there is an action method for that rule, and that "make" is used to set
+Make sure there is an action method for that rule and that "make" is used to set
 the appropriate PAST node. Note that not all rules have action methods, for
 instance the C<keyword> rule (there's no point in that).
 
@@ -354,6 +364,8 @@
 
 =over 4
 
+=item * rules, regexes and tokens: http://perlgeek.de/blog-en/perl-5-to-6/07-rules.writeback#Named_Regexes_and_Grammars
+
 =item * pdd26: ast
 
 =item * synopsis 5: Rules
@@ -374,8 +386,7 @@
 =item 1
 
 Rename the names of the action methods according to the name changes we made
-on the grammar rules. So, "integer" becomes "integer_constant", "value" becomes
-"expression", and so on.
+on the grammar rules. So, "integer" becomes "integer_constant", and so on.
 
 I assume you don't need any help with this.
 
@@ -387,15 +398,11 @@
 special make function. Do the same for rule primary.
 
  method statement($/) {
-     make $( $<assignment> );
+     make $<assignment>.ast;
  }
 
-Note that at this point, the rule statement doesn't define different #= keys
-for each type of statement, so we don't declare a parameter C<$key>. This will
-be changed later.
-
  method primary($/) {
-     make $( $<identifier> );
+     make $<identifier>.ast;
  }
 
 =item 3
@@ -417,8 +424,8 @@
 find out how you do such a binding).
 
  method assignment($/) {
-     my $lhs := $( $<primary> );
-     my $rhs := $( $<expression> );
+     my $lhs := $<primary>.ast;
+     my $rhs := $<EXPR>.ast;
      $lhs.lvalue(1);
      make PAST::Op.new( $lhs, $rhs, :pasttype('bind'), :node($/) );
  }
@@ -427,6 +434,15 @@
 
 =item 5
 
+Write the action method for stat_or_def. Simply retrieve the result object from statement and make
+that the result object.
+
+ method stat_or_def($/) {
+     make $<statement>.ast;
+ }
+
+=item 6
+
 Run your compiler on a script or in interactive mode. Use the target option to
 see what PIR is being generated on the input "x = 42".
 

Modified: branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_4.pod
==============================================================================
--- branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_4.pod	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_4.pod	Tue Aug  3 02:53:14 2010	(r48260)
@@ -60,39 +60,37 @@
 The first statement we're going to implement now is the if-statement. An
 if-statement has typically three parts (but this of course depends on the
 programming language): a conditional expression, a "then" part and an "else"
-part. Implementing this in Perl 6 rules and PAST is almost trivial:
+part. Implementing this in Perl 6 rules and PAST is almost trivial, but first, let's add a little
+infrastructure to simplify adding new statement types. Replace the statement rule with the
+following:
+    proto rule statement { <...> }
+
+Delete the statement method from Action.pm, and rename the assignment rule in both Grammar.pm and
+Actions.pm to statement:sym<assignment>. The new statement rule is a "proto" rule. A proto rule is
+equivalent to a normal rule whose body contains each specialization of the rule separated by the |
+operator. The name of a particular specialization of a proto rule is placed between the angle
+brackets. Within the body of the rule, it can be matched literally with <sym>.
 
-    rule if_statement {
-        'if' <expression> 'then' <block>
+    rule statement:sym<if> {
+        <sym> <EXPR> 'then' $<then>=<block>
         ['else' $<else>=<block> ]?
         'end'
-        {*}
     }
 
     rule block {
         <statement>*
-        {*}
     }
 
-    rule statement {
-        | <assignment> {*}          #= assignment
-        | <if_statement> {*}        #= if_statement
-    }
-
-Note that the optional else block is stored in the match object's "else" field.
+Note that the optional else block is stored in the match object's "else" field, and the then block
+is stored in the match object's "then" field.
 If we hadn't written this $<else>= part, then <block> would have been an array,
 with block[0] the "then" part, and block[1] the optional else part. Assigning
 the optional else block to a different field, makes the action method slightly
 easier to read.
-Also note that the statement rule has been updated; a statement is now either
-an assignment or an if-statement. As a result, the action method statement now
-takes a key argument. The relevant action methods are shown below:
-
-    method statement($/, $key) {
-        # get the field stored in $key from the $/ object,
-        # and retrieve the result object from that field.
-        make $( $/{$key} );
-    }
+Note that the proto declaration for statement means that the result object for  $<statement> in any
+rule which calls statement as a subrule will be result object for whichever statement type matched.
+Because of this, we can delete the statement action method.
+ The relevant action methods are shown below:
 
     method block($/) {
         # create a new block, set its type to 'immediate',
@@ -105,19 +103,18 @@
         # for each statement, add the result
         # object to the block
         for $<statement> {
-            $past.push( $( $_ ) );
+            $past.push($_.ast);
         }
         make $past;
     }
 
-    method if_statement($/) {
-        my $cond := $( $<expression> );
-        my $then := $( $<block> );
-        my $past := PAST::Op.new( $cond, $then,
+    method statement:sym<if>($/) {
+        my $cond := $<EXPR>.ast;
+        my $past := PAST::Op.new( $cond, $<then>.ast,
                                   :pasttype('if'),
                                   :node($/) );
         if $<else> {
-            $past.push( $( $<else>[0] ) );
+            $past.push($<else>[0].ast);
         }
         make $past;
     }
@@ -133,13 +130,12 @@
 
 At this point it's wise to spend a few words on the make function, the parse
 actions and how the whole PAST is created by the individual parse actions.
-Have another look at the action method if_statement. In the first two lines,
+Have another look at the action method statement:sym<if>. In the first two lines,
 we request the result objects for the conditional expression and the "then"
 block. When were these result objects created? How can we be sure they're there?
-The answer lies in the order in which the parse actions are executed. The
-special "{*}" symbol that triggers a parse action invocation, is usually placed
-at the end of the rule. For this input string: "if 42 then x = 1 end" this
-implies the following order:
+The answer lies in the order in which the parse actions are executed. The parse action invocation
+usually occurs at the end of the rule. For this input string: "if 42 then x = 1 end" this implies
+the following order:
 
 =over 4
 
@@ -147,9 +143,9 @@
 
 =item  2. parse statement
 
-=item  3. parse if_statement
+=item  3. parse statement:sym<if>
 
-=item  4. parse expression
+=item  4. parse EXPR
 
 =item  5. parse integer
 
@@ -159,7 +155,7 @@
 
 =item  8. parse statement
 
-=item  9. parse assignment
+=item  9. parse statement:sym<assignment>
 
 =item 10. parse identifier
 
@@ -179,7 +175,7 @@
 
 =back
 
-As you can see, PAST nodes are created in the leafs of the parse tree first,
+As you can see, PAST nodes are created in the leaves of the parse tree first,
 so that later, action methods higher in the parse tree can retrieve them.
 
 =head2 Throwing Exceptions
@@ -188,12 +184,11 @@
 to discuss the parse action, as it shows the use of generating custom PIR
 instructions. First the grammar rule:
 
-    rule throw_statement {
-        'throw' <expression>
-        {*}
+    rule statement:sym<throw> {
+        <sym> <EXPR>
     }
 
-I assume you know how to update the "statement" rule by now. The throw statement
+The throw statement
 will compile down to Parrot's "throw" instruction, which takes one argument.
 In order to generate a custom Parrot instruction, the instruction can be
 specified in the C<:pirop> attribute when creating a C<PAST::Op> node. Any child
@@ -201,16 +196,15 @@
 object of the expression being thrown as a child of the C<PAST::Op> node
 representing the "throw" instruction.
 
-    method throw_statement($/) {
-        make PAST::Op.new( $( $<expression> ),
-                           :pirop('throw'),
+    method statement:sym<throw>($/) {
+        make PAST::Op.new( $<EXPR>.ast,
+                           :pirop('die'),
                            :node($/) );
     }
 
-
 =head2 What's Next?
 
-In this episode we implemented two more statement types of Squaak. You should
+In this episode we implemented two more Squaak statement types. You should
 get a general idea of how and when PAST nodes are created, and how they can be
 retrieved as sub (parse) trees. In the next episode we'll take a closer look at
 variable scope and subroutines.
@@ -266,31 +260,29 @@
 
 The while-statement is straightforward:
 
- method while_statement($/) {
-     my $cond := $( $<expression> );
-     my $body := $( $<block> );
+ method statement:sym<while>($/) {
+     my $cond := $<EXPR>.ast;
+     my $body := $<block>.ast;
      make PAST::Op.new( $cond, $body, :pasttype('while'), :node($/) );
  }
 
 The try-statement is a bit more complex. Here are the grammar rules and
 action methods.
 
- rule try_statement {
-     'try' $<try>=<block>
+ rule statement:sym<try> {
+     <sym> $<try>=<block>
      'catch' <exception>
      $<catch>=<block>
      'end'
-     {*}
  }
 
  rule exception {
      <identifier>
-     {*}
  }
 
- method try_statement($/) {
+ method statement:sym<try>($/) {
      ## get the try block
-     my $try := $( $<try> );
+     my $try := $<try>.ast;
 
      ## create a new PAST::Stmts node for
      ## the catch block; note that no
@@ -299,12 +291,12 @@
      ## exception object. For now this will
      ## do.
      my $catch := PAST::Stmts.new( :node($/) );
-     $catch.push( $( $<catch> ) );
+     $catch.push($<catch>.ast);
 
      ## get the exception identifier;
      ## set a declaration flag, the scope,
      ## and clear the viviself attribute.
-     my $exc := $( $<exception> );
+     my $exc := $<exception>.ast;
      $exc.isdecl(1);
      $exc.scope('lexical');
      $exc.viviself(0);
@@ -323,17 +315,10 @@
  }
 
  method exception($/) {
-     our $?BLOCK;
-     my $past := $( $<identifier> );
-     $?BLOCK.symbol( $past.name(), :scope('lexical') );
+     my $past := $<identifier>.ast;
      make $past;
  }
 
-Instead of putting "identifier" after the "catch" keyword, we made it a
-separate rule, with its own action method. This allows us to insert the
-identifier into the symbol table of the current block (the try-block),
-before the catch block is parsed.
-
 First the PAST node for the try block is retrieved. Then, the catch block is
 retrieved, and stored into a C<PAST::Stmts> node. This is needed, so that we
 can make sure that the instructions that retrieve the exception object come
@@ -378,41 +363,53 @@
 conditional expression, which represent the "then" block, and which represent
 the "else" block (if any).
 
+Note that this may not be the exact result produced when you try it. Sub ids, block numbers, and
+register numbers may differ, but it should be analogous.
+
   > if 1 then else end
 
+  .HLL "squaak"
+
   .namespace []
-  .sub "_block16"
-    new $P18, "Integer"
-    assign $P18, 1
-
-    ## this is the condition:
-    if $P18, if_17
-
-    ## this is invoking the else-block:
-    get_global $P21, "_block19"
-    newclosure $P21, $P21
-    $P20 = $P21()
-    set $P18, $P20
-    goto if_17_end
-
-    ## this is invoking the then-block:
-    if_17:
-    get_global $P24, "_block22"
-    newclosure $P24, $P24
-    $P23 = $P24()
-    set $P18, $P23
-    if_17_end:
-    .return ($P18)
+  .sub "_block11"  :anon :subid("10_1279319328.02043")
+  .annotate 'line', 0
+      .const 'Sub' $P20 = "12_1279319328.02043" 
+      capture_lex $P20
+      .const 'Sub' $P17 = "11_1279319328.02043" 
+      capture_lex $P17
+  .annotate 'line', 1
+      set $I15, 1
+      if $I15, if_14
+      .const 'Sub' $P20 = "12_1279319328.02043" 
+      capture_lex $P20
+      $P21 = $P20()
+      set $P13, $P21
+      goto if_14_end
+    if_14:
+      .const 'Sub' $P17 = "11_1279319328.02043" 
+      capture_lex $P17
+      $P18 = $P17()
+      set $P13, $P18
+    if_14_end:
+      .return ($P13)
   .end
 
+
+  .HLL "squaak"
+
   .namespace []
-  .sub "_block22" :outer("_block16")
-    .return ()
+  .sub "_block19"  :anon :subid("12_1279319328.02043") :outer("10_1279319328.02043")
+  .annotate 'line', 1
+      .return ()
   .end
 
+
+  .HLL "squaak"
+
   .namespace []
-  .sub "_block19" :outer("_block16")
-    .return ()
+  .sub "_block16"  :anon :subid("11_1279319328.02043") :outer("10_1279319328.02043")
+  .annotate 'line', 1
+      .return ()
   .end
 
 =back

Modified: branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_5.pod
==============================================================================
--- branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_5.pod	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_5.pod	Tue Aug  3 02:53:14 2010	(r48260)
@@ -30,9 +30,8 @@
 
 Squaak has a so-called do-block statement, that is defined below.
 
- rule do_block {
-     'do' <block> 'end'
-     {*}
+ rule statement:sym<do> {
+     <sym> <block> 'end'
  }
 
 Each do-block defines a new scope; local variables declared between the C<do>
@@ -94,9 +93,8 @@
 statement, so I assume you know how to extend the statement rule to allow for
 variable declarations.
 
- rule variable_declaration {
-     'var' <identifier> ['=' <expression>]?
-     {*}
+ rule statement:sym<var> {
+     <sym> <identifier> ['=' <EXPR>]?
  }
 
 A local variable is declared using the C<var> keyword, and has an optional
@@ -104,9 +102,9 @@
 defaults to the undefined value called "Undef". Let's see what the parse action
 looks like:
 
- method variable_declaration($/) {
+ method statement:sym<var>($/) {
      # get the PAST for the identifier
-     my $past := $( $<identifier> );
+     my $past := $<identifier>.ast;
 
      # this is a local (it's being defined)
      $past.scope('lexical');
@@ -115,10 +113,10 @@
      $past.isdecl(1);
 
      # check for the initialization expression
-     if $<expression> {
+     if $<EXPR> {
          # use the viviself clause to add a
          # an initialization expression
-         $past.viviself( $( $<expression>[0] );
+         $past.viviself($<EXPR>[0].ast);
      }
      else { # no initialization, default to "Undef"
          $past.viviself('Undef');
@@ -152,46 +150,27 @@
 symbols in the block's symbol table), we add a few extra parse actions. Let's
 take a look at them.
 
- rule TOP {
-     {*}                              #= open
-     <statement>*
-     [ $ || <.panic: syntax error> ]
-     {*}                              #= close
- }
+Add this token to the grammar:
 
-We now have two parse actions for TOP, which are differentiated by an
-additional key parameter. The first parse action is executed before any input
-is parsed, which is particularly suitable for any initialization actions you
-might need. The second action (which was already there) is executed after the
-whole input string is parsed. Now we can create a C<PAST::Block> node before
-any statements are parsed, so that when we need the current block, it's there
-(somewhere, later we'll see where exactly). Let's take a look at the parse
-action for TOP.
+ token begin_TOP {
+     <?>
+ }
 
- method TOP($/, $key) {
-     our $?BLOCK;
+It uses something we haven't seen before, <?>. The null pattern <?> always returns true without
+consuming any text. Tokens consisting of only <?> are frequently used to invoke additional action
+methods.
+
+Add this method to Actions.pm:
+
+ method begin_TOP ($/) {
+     our $?BLOCK := PAST::Block.new(:blocktype<declaration>, :node($/),
+                                    :hll<squaak>);
      our @?BLOCK;
-
-     if $key eq 'open' {
-         $?BLOCK := PAST::Block.new( :blocktype('declaration'),
-                                     :node($/) );
-
-         @?BLOCK.unshift($?BLOCK);
-     }
-     else { # key is 'close'
-         my $past := @?BLOCK.shift();
-
-         for $<statement> {
-             $past.push( $( $_ ) );
-         }
-
-         make $past;
-     }
+     @?BLOCK.unshift($?BLOCK);
  }
 
-Let's see what's happening here. When the parse action is invoked for the first
-time (when C<$key> equals "open"), a new C<PAST::Block> node is created and
-assigned to a strange-looking (if you don't know Perl, like me. Oh wait,
+We create a new C<PAST::Block> node and
+assign it to a strange-looking (if you don't know Perl, like me. Oh wait,
 this is Perl. Never mind..) variable called C<$?BLOCK>. This variable is
 declared as "our", which means that it is a package variable. This means that
 the variable is shared by all methods in the same package (or class), and,
@@ -203,98 +182,61 @@
 C<@?BLOCK>. This variable has a "@" sigil, meaning this is an array. The
 unshift method puts its argument on the front of the list. In a sense, you
 could think of the front of this list as the top of a stack. Later we'll see
-why this stack is necessary.
+why this stack is necessary. This C<@?BLOCK> variable is also declared with "our", meaning it's also
+package-scoped. Since it's an array variable, it is automatically initialized with an empty
+ResizablePMCArray.
+
+Now we need to modify our TOP rule to call begin_TOP.
+
+ rule TOP {
+     <.begin_TOP>
+     <statementlist>
+     [ $ || <.panic: "Syntax error"> ]
+ }
+
+"<.begin_TOP>" is just like <begin_TOP>, calling the subrule begin_TOP, with one difference: The
+<.subrule> form does not capture. Normally, when match a subrule <foo>, $<foo> on the match object
+is bound to the subrule's match result. With <.foo>, $<foo> is not bound.
 
-This C<@?BLOCK> variable is also declared with "our", meaning it's also
-package-scoped. However, as we call a method on this variable, it should have
-been already created; otherwise you'd invoke the method on an undefined
-("Undef") variable. So, this variable should have been created before the
-parsing starts. We can do this in the compiler's main program, squaak.pir.
-Before doing so, let's take a quick look at the "else" part of the parse action
+The parse action for begin_TOP is executed before any input
+is parsed, which is particularly suitable for any initialization actions you
+might need. The action for TOP is executed after the
+whole input string is parsed. Now we can create a C<PAST::Block> node before
+any statements are parsed, so that when we need the current block, it's there
+(somewhere, later we'll see where exactly). Let's take a look at the parse
+action for TOP.
+
+ method TOP($/, $key) {
+     our @?BLOCK;
+     my $past := @?BLOCK.shift();
+     $past.push($<statementlist>.ast);
+     make $past;
+ }
+
+Let's take a quick look at the updated parse action
 for TOP, which is executed after the whole input string is parsed. The
 C<PAST::Block> node is retrieved from C<@?BLOCK>, which makes sense, as it was
 created in the first part of the method and unshifted on C<@?BLOCK>. Now this
 node can be used as the final result object of TOP. So, now we've seen how to
 use the scope stack, let's have a look at its implementation.
 
-=head2 A List Class
-
-We'll implement the scope stack as a C<ResizablePMCArray> object. This is a
-built-in PMC type. However, this built-in PMC does not have any methods; in
-PIR it can only be used as an operand of the built-in shift and unshift
-instructions. In order to allow us to write this as method calls, we create a
-new subclass of ResizablePMCArray. The code below creates the new class and
-defines the methods we need.
-
- 1 .namespace []
-
- 2 .sub 'initlist' :anon :init :load
- 3   subclass $P0, 'ResizablePMCArray', 'List'
- 4   new $P1, 'List'
- 5   set_hll_global ['Squaak';'Grammar';'Actions'], '@?BLOCK', $P1
- 6 .end
-
- 7 .namespace ['List']
-
- 8 .sub 'unshift' :method
- 9   .param pmc obj
- 10   unshift self, obj
- 11 .end
-
- 12 .sub 'shift' :method
- 13   shift $P0, self
- 14   .return ($P0)
- 15 .end
-
-Well, here you have it: part of the small amount of PIR code you need to write
-for the Squaak compiler (there's some more for some built-in subroutines, more
-on that later). Let's discuss this code snippet in more detail (if you know
-PIR, you could skip this section).
-Line 1 resets the namespace to the root namespace in Parrot, so that the sub
-C<initlist> is stored in that namespace. The sub 'initlist' defined in lines
-2-6 has some flags: C<:anon> means that the sub is not stored by name in the
-namespace, implying it cannot be looked up by name. The :init flag means that
-the sub is executed before the main program (the "main" sub) is executed. The
-C<:load> flag makes sure that the sub is executed if this file was compiled and
-loaded by another file through the load_bytecode instruction. If you don't
-understand this, no worries. You can forget about it now. In any case, we know
-for sure there's a List class when we need it, because the class creation is
-done before running the actual compiler code.
-Line 3 creates a new subclass of ResizablePMCArray, called "List". This results
-in a new class object, which is left in register $P0, but it's not used after
-that.
-Line 4 creates a new List object, and stores it in register $P1. Line 5,
-stores this List object by name of C<@?BLOCK> (that name should ring a bell
-now...) in the namespace of the Actions class. The semicolons in between the
-several key strings indicate nested namespaces. So, lines 4 and 5 are important,
-because the create the @?BLOCK variable and store it in a place that can be
-accessed from the action methods in the Actions class.
-Lines 7-11 define the unshift method, which is a method in the "List" namespace.
-This means that it can be invoked as a method on a List object. As the sub is
-marked with the :method flag, the sub has an implicit first parameter called
-"self", which refers to the invocant object. The unshift method invokes
-Parrot's unshift instruction on self, passing the obj argument as the second
-operand. So, obj is unshifted onto self, which is the List object itself.
-Finally, lines 12-15 define the "shift" method, which does the opposite of
-"unshift", removing the first element and returning it to its caller.
-
 =head2 Storing Symbols
 
 Now, we set up the necessary infrastructure to store the current scope block,
 and we created a datastructure that acts as a scope stack, which we will need
-later. We'll now go back to the parse action for variable_declaration, because
+later. We'll now go back to the parse action for statement:sym<var>, because
 we didn't enter the declared variable into the current block's symbol table yet.
 We'll see how to do that now.
 First, we need to make the current block accessible from the method
-variable_declaration. We've already seen how to do that, using the "our"
+statement:sym<var>. We've already seen how to do that, using the "our"
 keyword. It doesn't really matter where in the action method we enter the
 symbol's name into the symbol table, but let's do it at the end, after the
 initialization stuff. Naturally, we're only going to enter the symbol if it's
 not there already; duplicate variable declarations (in the same scope) should
 result in an error message (using the panic method of the match object).
-The code to be added to the method variable_declaration looks then like this:
+The code to be added to the method statement:sym<var> looks then like this:
 
- method variable_declaration($/) {
+ method statement:sym<var>($/) {
      our $?BLOCK;
      # get the PAST node for identifier
      # set the scope and declaration flag
@@ -304,7 +246,7 @@
 
      if $?BLOCK.symbol( $name ) {
          # symbol is already present
-         $/.panic("Error: symbol " ~ $name ~ " was already defined.\n");
+         $/.CURSOR.panic("Error: symbol " ~ $name ~ " was already defined.\n");
      }
      else {
          $?BLOCK.symbol( $name, :scope('lexical') );
@@ -329,14 +271,15 @@
 =item *
 
 In this episode, we changed the action method for the C<TOP> rule; it is now
-invoked twice, once at the beginning of the parse, once at the end of the parse.
+invokes the new begin_TOP action at the beginning of the parse.
 The block rule, which defines a block to be a series of statements, represents
 a new scope. This rule is used in for instance if-statement
 (the then-part and else-part), while-statement (the loop body) and others.
-Update the parse action for block so it is invoked twice; once before parsing
-the statements, during which a new C<PAST::Block> is created and stored onto the
-scope stack, and once after parsing the statements, during which this PAST node
-is set as the result object. Make sure C<$?BLOCK> is always pointing to the
+Add a new begin_block rule consisting of <?>; in the action for it, create a new PAST::Block and
+store it onto the scope stack.
+Update the rule for block so that it calls begin_block before parsing
+the statements. Update the parse action for block after parsing the statements, during which this
+PAST node is set as the result object. Make sure C<$?BLOCK> is always pointing to the
 current block. In order to do this exercise correctly, you should understand
 well what the shift and unshift methods do, and why we didn't implement methods
 to push and pop, which are more appropriate words in the context of a (scope)
@@ -385,24 +328,35 @@
 I hope it's clear what I mean here... otherwise, have a look at the code,
 and try to figure out what's happening:
 
+    # In src/Squaak/Grammar.pm
+    token begin_block {
+        <?>
+    }
+
+    rule block {
+        <.begin_block>
+        <statement>*
+    }
+
+    # In src/Squaak/Actions.pm
+    method begin_block {
+        our $?BLOCK;
+        our @?BLOCK;
+        $?BLOCK := PAST::Block.new(:blocktype('immediate'),
+                                   :node($/));
+        @?BLOCK.unshift($?BLOCK);
+    }
+
     method block($/, $key) {
-      our $?BLOCK;
-      our @?BLOCK;
-      if $key eq 'open' {
-            $?BLOCK := PAST::Block.new(
-                        :blocktype('immediate'),
-                          :node($/) );
-           @?BLOCK.unshift($?BLOCK);
-        }
-        else {
-            my $past := @?BLOCK.shift();
-            $?BLOCK  := @?BLOCK[0];
-
-            for $<statement> {
-                $past.push( $( $_ ) );
-            }
-            make $past;
+        our $?BLOCK;
+        our @?BLOCK;
+        my $past := @?BLOCK.shift();
+        $?BLOCK  := @?BLOCK[0];
+
+        for $<statement> {
+            $past.push($_.ast);
         }
+        make $past;
     }
 
 =cut

Modified: branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_6.pod
==============================================================================
--- branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_6.pod	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_6.pod	Tue Aug  3 02:53:14 2010	(r48260)
@@ -77,14 +77,26 @@
      'sub' <identifier> <parameters>
      <statement>*
      'end'
-     {*}
  }
 
  rule parameters {
-     '(' [<identifier> [',' <identifier>]* ]? ')'
-     {*}
+     '(' [<identifier> ** ',']? ')'
  }
 
+And we need to add it to rule stat_or_def:
+
+ rule stat_or_def {
+     | <statement>
+     | <sub_definition>
+ }
+
+Appropriately modifying the action method is simple. It's analogous to the action method for
+expression.
+
+"**" is the repetition specifier; "<identifier> ** ','" matches <identifier> separated by commas.
+Since it's in a rule and there is space between the ** and its operands, whitespace is allowed
+between the commas and both the preceding and following identifiers.
+
 This is rather straightforward, and the action methods for these rules are
 quite simple, as you will see. First, however, let's have a look at the rule
 for sub definitions. Why is the sub body defined as <statement>* and not as a
@@ -112,7 +124,7 @@
 
      # now add all parameters to this block
      for $<identifier> {
-         my $param := $( $_ );
+         my $param := $_.ast;
          $param.scope('parameter');
          $past.push($param);
 
@@ -128,23 +140,23 @@
  }
 
  method sub_definition($/) {
-     our $?BLOCK;
-     our @?BLOCK;
-     my $past := $( $<parameters> );
-     my $name := $( $<identifier> );
-
-     # set the sub's name
-     $past.name( $name.name() );
-
-     # add all statements to the sub's body
-     for $<statement> {
-         $past.push( $( $_ ) );
-     }
-
-     # and remove the block from the scope stack and restore the current block
-     @?BLOCK.shift();
-     $?BLOCK := @?BLOCK[0];
-     make $past;
+      our $?BLOCK;
+      our @?BLOCK;
+      my $past := $<parameters>.ast;
+      my $name := $<identifier>.ast;
+
+      # set the sub's name
+      $past.name($name.name);
+
+      # add all statements to the sub's body
+      for $<statement> {
+          $past.push($_.ast);
+      }
+
+      # and remove the block from the scope stack and restore the current block
+      @?BLOCK.shift();
+      $?BLOCK := @?BLOCK[0];
+      make $past;
  }
 
 First, let's check out the parse action for parameters. First, a new
@@ -178,26 +190,29 @@
 subroutine invocation. In this section, we'll give a complete description.
 First we'll introduce the grammar rules.
 
- rule sub_call {
+ rule statement:sym<sub_call> {
      <primary> <arguments>
-     {*}
+ }
+
+ rule arguments {
+     '(' [<EXPR> ** ',']? ')'
  }
 
 Not only allows this to invoke subroutines by their name, you can also store
 the subroutines in an array or hash field, and invoke them from there. Let's
 take a look at the action method, which is really quite straightforward.
 
- method sub_call($/) {
-     my $invocant := $( $<primary> );
-     my $past     := $( $<arguments> );
+ method statement:sym<sub_call>($/) {
+     my $invocant := $<primary>.ast;
+     my $past     := $<arguments>.ast;
      $past.unshift($invocant);
      make $past;
  }
 
  method arguments($/) {
      my $past := PAST::Op.new( :pasttype('call'), :node($/) );
-     for $<expression> {
-         $past.push( $( $_ ) );
+     for $<EXPR> {
+         $past.push($_.ast);
      }
      make $past;
  }
@@ -260,20 +275,17 @@
 
 It's pretty easy to convert this to Perl 6 rules:
 
-    rule for_statement {
-        'for' <for_init> ',' <expression> <step>?
+    rule statement:sym<for> {
+        <sym> <for_init> ',' <EXPR> <step>?
         'do' <statement>* 'end'
-        {*}
     }
 
     rule step {
-        ',' <expression>
-        {*}
+        ',' <EXPR>
     }
 
     rule for_init {
-        'var' <identifier> '=' <expression>
-        {*}
+        'var' <identifier> '=' <EXPR>
     }
 
 Pretty easy huh? Let's take a look at the semantics. A for-loop is just
@@ -323,12 +335,12 @@
                                     :node($/) );
         @?BLOCK.unshift($?BLOCK);
 
-        my $iter := $( $<identifier> );
+        my $iter := $<identifier>.ast;
         ## set a flag that this identifier is being declared
         $iter.isdecl(1);
         $iter.scope('lexical');
         ## the identifier is initialized with this expression
-        $iter.viviself( $( $<expression> ) );
+        $iter.viviself( $<EXPR>.ast );
 
         ## enter the loop variable into the symbol table.
         $?BLOCK.symbol($iter.name(), :scope('lexical'));
@@ -339,16 +351,22 @@
 So, just as we created a new C<PAST::Block> for the subroutine in the action
 method for parameters, we create a new C<PAST::Block> for the for-statement in
 the action method that defines the loop variable. (Guess why we made for-init
-a subrule, and didn't put in "C<var> <ident&gt = <expression>" in the rule of
+a subrule, and didn't put in "C<var> <ident&gt = <EXPR>" in the rule of
 for-statement). This block is the place to live for the loop variable. The
 loop variable is declared, initialized using the viviself attribute, and
 entered into the new block's symbol table. Note that after creating the new
 C<PAST::Block> object, we put it onto the stack scope.
 
+The action method for step is simple:
+
+    method step($/) {
+        make $<EXPR>.ast;
+    }
+
 Now, the action method for the for statement is quite long, so I'll just
 embed my comments, which makes reading it easier.
 
-    method for_statement($/) {
+    method statement:sym<for>($/) {
         our $?BLOCK;
         our @?BLOCK;
 
@@ -356,7 +374,7 @@
 is the C<PAST::Var> object, representing the declaration and initialization
 of the loop variable.
 
-        my $init := $( $<for_init> );
+        my $init := $<for_init>.ast;
 
 Then, create a new node for the loop variable. Yes, another one (besides the
 one that is currently contained in the C<PAST::Block>). This one is used when
@@ -381,7 +399,7 @@
         my $body := @?BLOCK.shift();
         $?BLOCK  := @?BLOCK[0];
         for $<statement> {
-            $body.push($($_));
+            $body.push($_.ast);
         }
 
 If there was a step, we use that value; otherwise, we use assume a default
@@ -392,8 +410,9 @@
 
         my $step;
         if $<step> {
-            my $stepsize := $( $<step>[0] );
-            $step := PAST::Op.new( $iter, $stepsize, :pirop('add'), :node($/) );
+            my $stepsize := $<step>[0].ast;
+            $step := PAST::Op.new( $iter, $stepsize,
+                                   :pirop('add__OP+'), :node($/) );
         }
         else { ## default is increment by 1
             $step := PAST::Op.new( $iter, :pirop('inc'), :node($/) );
@@ -404,13 +423,13 @@
 
         $body.push($step);
 
-The loop condition uses the "<=" operator, and compares the loop variable
-with the maximum value that was specified.
+The loop condition uses the isle opcode, which checks that its first operand is less than or equal
+to its second, and compares the loop variable with the maximum value that was specified.
 
         ## while loop iterator <= end-expression
-        my $cond := PAST::Op.new( $iter,
-                                  $( $<expression> ),
-                                  :name('infix:<=') );
+        my $cond := PAST::Op.new( :pirop<isle__IPP>,
+                                  $iter,
+                                  $<EXPR>.ast );
 
 Now we have the PAST for the loop condition and the loop body, so now create
 a PAST to represent the (while) loop.

Modified: branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_7.pod
==============================================================================
--- branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_7.pod	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_7.pod	Tue Aug  3 02:53:14 2010	(r48260)
@@ -13,7 +13,7 @@
 =head2 Operators, precedence and parse trees
 
 We will first briefly introduce the problem with recursive-descent parsers
-(which parsers generated with the PCT are) when parsing expressions. Consider
+(which parsers generated with NQP are) when parsing expressions. Consider
 the following mini-grammar, which is a very basic calculator.
 
  rule TOP {
@@ -116,29 +116,39 @@
 and I don't remember the particular details. If you really want to know, check
 out the links at the end of the previous section. It's actually worth checking
 out. For now, I'll just assume you know what the problem is, so that I'll
-introduce the solution for PCT-based compilers immediately.
+introduce the solution for NQP-based compilers immediately.
 At some point when parsing your input, you might encounter an expression. At
 this point, we'd like the parser to switch from top-down to bottom-up parsing.
-The Parrot Grammar Engine supports this, and is used as follows:
+NQP-rx supports this, and is used as follows:
 
- rule expression is optable { ... }
+ <EXPR>
 
-Note that we used the word C<expression> here, but you can name it anything.
-This declares that, whenever you need an expression, the bottom-up parser is
-activated. Of course, this "optable" must be populated with some operators that
-we need to be able to parse. This can be done by declaring operators as follows:
+Of course, the optable must be populated with some operators that
+we need to be able to parse and it might be told what precedence and associativity they have. The
+easiest way to do this is by setting up precedence levels in an C<INIT> block:
 
- proto 'infix:*' is tighter('infix:+') { ... }
+    INIT {
+        Squaak::Grammar.O(':prec<t>, :assoc<left>', '%additive');
+        Squaak::Grammar.O(':prec<u>, :assoc<lefT>', '%multiplicative');
+    }
+
+In this C<INIT> block, we use the C<O> method of the compiler to set up two precedence levels: one
+for operators like addition (named C<%additive>), and one for operators like multiplication (named
+C<%multiplicative>). Each of themhas a ":prec" value and an ":assoc" value. ":prec" determines the
+precedence. Lexicographically greater values indicate higher precedence, so C<%additive> operators,
+with a precedence value of "t", have lower precedence than C<%multiplicative> operators with a
+precedence value of "u".":assoc" defines the associativity of the operators. If C<@> is a left
+associative operator, then 1 @ 2 @ 3 is equivalent to (1 @ 2) @ 3. However, if C<@> is right
+associative, then 1 @ 2 @ 3 is equivalent to 1 @ (2 @ 3). There are other options for the
+associativity, but we'll discuss them as we come to them.
+
+    token infix:sym<*> { <sym> <O('%multiplicative, :pirop<mul>')> }
 
 This defines the operator C<*> (the C<infix:> is a prefix that tells the
 operator parser that this operator is an infix operator; there are other types,
-such as prefix, postfix and others). The C<is tighter> clause tells that the
-C<*> operator has a higher precedence than the C<+> operator. As you could have
-guessed, there are other clauses to declare equivalent precedence (C<is equiv>)
-and lower precedence (C<is looser>).It is very important to spell all clauses,
-such as C<is equiv> correctly (for instance, not C<is equil>), otherwise you
-might get some cryptic error message when trying to run your compiler. See the
-references section for the optable guide, that has more details on this.
+such as prefix, postfix and others). As you can see, it uses the O rule to specify that it is part
+of the C<%multiplicative> group of operators. The ":pirop" value specifies that the operator should
+compile to the C<mul> PIR opcode.
 
 Of course, the expression parser does not just parse operators, it must also
 parse the operands. So, how do we declare the most basic entity that represents
@@ -146,19 +156,12 @@
 or even a function definition (but adding two function definition doesn't
 really make sense, does it?). The operands are parsed in a recursive-descent
 fashion, so somewhere the parser must switch back from bottom-up
-(expression parsing) to top-down. To declare this "switch-back" point, write:
-
- proto 'term:' is tighter('prefix:-') is parsed(&term) { ... }
+(expression parsing) to top-down. This "switch-back" point is the proto token C<term>. This is the
+reason why integer constants are parsed by the rule term:sym<integer_constant>, for example, in our
+grammar.
 
-The name C<term:> is a built-in name of the operator bottom-up parser; it is
-invoked every time a new operand is needed. The C<is parsed> clause tells the
-parser that C<term> (which accidentally looks like C<term:>, but you could also
-have named it anything else) parses the operands.
-
-Note: it is very important to add a C<is tighter> clause to the declaration of
-the C<term:> rule. Otherwise your expression parser will not work! My knowledge
-here is a bit limited, but I usually define it as C<is tighter> relative to the
-tightest operator defined.
+The C<term> proto token is
+invoked every time a new operand is needed
 
 =head2 Squaak Operators
 
@@ -179,25 +182,30 @@
  or
 
 (".." is the string concatenation operator). Besides defining an entry and exit
-point for the expression parser, you need to define some operator as a reference
-point, so that other operators' precedence can be defined relative to that
-reference point. My personal preference is to declare the operator with the
-lowest precedence as the reference point. This can be done like this:
-
- proto 'infix:or' is precedence('1') { ... }
-
-Now, other operators can be defined:
-
- proto 'infix:and'  is tighter('infix:or')   { ... }
- proto 'infix:<'    is tighter('infix:and')  { ... }
- proto 'infix:+'    is tighter('infix:<')    { ... }
- proto 'infix:*'    is tighter('infix:+')    { ... }
- proto 'prefix:not' is tighter('infix:*')    { ... }
- proto 'prefix:-'   is tighter('prefix:not') { ... }
+point for the expression parser, you need to define precedence levels for your operators. Find the
+C<INIT> block in Grammar.pm below the "## Operators" comment, and replace it with this:
+
+    INIT {
+        Squaak::Grammar.O(':prec<w>, :assoc<unary>', '%unary-negate');
+        Squaak::Grammar.O(':prec<v>, :assoc<unary>', '%unary-not');
+        Squaak::Grammar.O(':prec<u>, :assoc<left>',  '%multiplicative');
+        Squaak::Grammar.O(':prec<t>, :assoc<left>',  '%additive');
+        Squaak::Grammar.O(':prec<s>, :assoc<left>',  '%relational');
+        Squaak::Grammar.O(':prec<r>, :assoc<left>',  '%conjunction');
+        Squaak::Grammar.O(':prec<q>, :assoc<left>',  '%disjunction');
+    }
+
+Now, we need to define the actual operators:
+
+    token infix:sym<or> { <sym> <O('%disjunction, :pasttype<unless>')> }
+    token infix:sym<and> { <sym> <O('%conjunction, :pasttype<if>')> }
+    token infix:sym«<» { <sym> <O('%relational, :pirop<islt>')> }
+    token infix:sym<+> { <sym> <O('%additive, :pirop<add>')> }
+    token infix:sym<*> { <sym> <O('%multiplicative, :pirop<mul>')> }
+    token prefix:sym<not> { <sym> <O('%unary-not, :pirop<isfalse>')> }
+    token prefix:sym<-> { <sym> <O('%unary-negate, :pirop<neg>')> }
 
 Note that some operators are missing. See the exercises section for this.
-For more details on the use of the optable, check out
-F<docs/pct/pct_optable_guide.pod> in the Parrot repository.
 
 =head2 Short-circuiting logical operators
 
@@ -216,9 +224,9 @@
 (the C<then> block) is evaluated (remember, the third child -- the C<else>
 clause -- is optional). It would be great to be able to implement the and
 operator using a C<PAST::Op( :pasttype('if') )> node. Well, you can, using
-the C<is pasttype> clause! Here's how:
+the ":pasttype" option! Here's how:
 
- proto 'infix:and' is tighter('infix:or') is pasttype('if') { ... }
+    token infix:sym<and> { <sym> <O('%conjunction, :pasttype<if>')> }
 
 So what about the or operator? When evaluating an or-expression, the first
 operand is evaluated. If it evaluates to true, then there's no need to evaluate
@@ -232,12 +240,8 @@
 In the previous section, we introduced the C<pasttype> clause that you can
 specify. This means that for that operator (for instance, the C<and> operator
 we discussed), a C<PAST::Op( :pasttype('if') )> node is created. What happens
-if you don't specify a pasttype? In that case a default C<PAST::Op> node is
-created, and the default pasttype is C<call>. In other words, a C<PAST::Op>
-node is created that calls the declared operator. For instance, the C<infix:+>
-operator results in a call to the subroutine "infix:+". This means you'll need
-to implement subroutines for each operator. Now, that's a bit of a shame.
-Obviously, some languages have very exotic semantics for the C<+> operator,
+if you don't specify a pasttype? In that case, the corresponding action method is called. Obviously,
+some languages have very exotic semantics for the C<+> operator,
 but many languages just want to use Parrot's built-in C<add> instruction. How
 do we achieve that?
 
@@ -247,20 +251,13 @@
 operands as arguments, it will generate the specified instruction with the
 operator's operands as arguments. Neat huh? Let's look at an example:
 
- proto 'infix:+' is tighter('infix:<') is pirop('n_add') { ... }
-
-This specifies to use the C<n_add> instruction, which tells Parrot to create a
-new result object instead of changing one of the operands. Why not just the
-C<add> instruction (which takes two operands, updating the first), you might
-think. Well, if you leave out this C<is pirop> stuff, this will be generated:
-
- $P12 = "infix:+"($P10, $P11)
+    token infix:sym<+> { <sym> <O('%additive, :pirop<add>')> }
 
-You see, three registers are involved. As we mentioned before, PCT does not do
-any optimizations. Therefore, instead of the generated instruction above, it
-just emit the following:
+This specifies to use the C<add> instruction, which tells Parrot to create a
+new result object instead of changing one of the operands. PCT
+just emits the following for this:
 
- n_add $P12, $P10, $P11
+ add $P12, $P10, $P11
 
 which means that the PMCs in registers C<$P10> and C<$P11> are added, and
 assigned to a newly created PMC which is stored in register C<$P12>.
@@ -268,71 +265,25 @@
 =head2 To circumfix or not to circumfix
 
 Squaak supports parenthesized expressions. Parentheses can be used to change
-the order of evaluation in an expression, just as you're probably have seen
-this in other languages. Besides infix, prefix and postfix operators, you can
-define circumfix operators, which is specified with the left and right
-delimiter. This is an ideal way to implement parenthesized expressions:
-
- proto 'circumfix:( )' is looser('infix:+') is pirop('set') { ... }
-
-By default, a subroutine invocation will be generated for each operator,
-in this case a call to C<circumfix:( )>. However, we are merely interested in
-the expression that has been parenthesized. The subroutine would merely return
-the expression. Instead, we can use the pirop attribute to specify what PIR
-operation should be generated; in this case that is the C<set> operation, which
-sets one register to the contents of another. This solution works fine, except
-that C<set> instructions are a bit of a waste. What happens is, the contents of
-some register is just copied to another register, which is then used in further
-code generation. This C<set> instruction might as well be optimized away.
-Currently, there are no optimizations implemented in the PCT.
-
-There is an alternative solution for adding grammar rules for the parenthesized
-expressions, by adding it as an alternative of term. The grammar rule term then
-ends up as:
-
- rule term {
-     | <float_constant> {*}     #= float_constant
-     | <integer_constant> {*}   #= integer_constant
-     | <string_constant&gt {*}  #= string_constant
-     | <primary> {*}            #= primary
-     | '(' <expression> ')' {*} #= expression
- }
-
-Of course, although we save one generated instruction, the parser will be
-slightly more inefficient, for reasons that we discussed at the beginning of
-this episode. Of course, you are free to decide for yourself how to implement
-this; this section just explains both methods. At some point, optimizations
-will be implemented in the PCT. I suspect "useless" instructions (such as the
-C<set> instruction we just saw) will then be removed.
+the order of evaluation in an expression, just as you probably have seen in other languages. Besides
+infix, prefix and postfix operators, you can define circumfix operators, which is specified with the
+left and right delimiter. This is an ideal way to implement parenthesized expressions:
+
+    token circumfix:sym<( )> { '(' <.ws> <EXPR> ')' }
+
+    # with the action method:
+    method circumfix:sym<( )> { make $<EXPR>.ast; }
+
+This rule and action method were generated for us when we ran mk_language_shell.pl; you don't need
+to add them to the grammar and actions yourself. Circumfix operators are treated as terms by the
+operator-precedence parser, so it will parse as we want it to automatically.
 
 =head2 Expression parser's action method
 
 For all grammar rules we introduced, we also introduced an action method that
 is invoked after the grammar rule was done matching. What about the action
-method for the optable? Naturally, there must be some actions to be executed.
-Well, there is, but to be frank, I cannot explain it to you. Every time I
-needed the action method for an optable, I just copied it from an existing
-actions file. Of course, the action method's name should match the name of the
-optable (the rule that has the "is optable" clause). So, here goes:
-
- method expression($/, $key) {
-     if ($key eq 'end') {
-         make $($<expr>);
-     }
-     else {
-         my $past := PAST::Op.new( :name($<type>),
-                                   :pasttype($<top><pasttype>),
-                                   :pirop($<top><pirop>),
-                                   :lvalue($<top><lvalue>),
-                                   :node($/) );
-
-         for @($/) {
-             $past.push( $($_) );
-         }
-
-         make $past;
-     }
- }
+method for EXPR? Our Squaak::Actions class inherits that from HLL::Actions. We don't have to write
+one.
 
 =head2 What's Next?
 
@@ -360,21 +311,14 @@
 There may be no whitespace between the individual digits and the dot. Make sure
 you understand the difference between a "rule" and a "token".
 
-Hint: currently, the Parrot Grammar Engine (PGE), the component that "executes"
-the regular expressions (your grammar rules), matches alternative subrules in
-order. This means that this won't work:
-
- rule term {
-     | <integer_constant>
-     | <float_constant>
-     ...
- }
+Hint: a floating-point constant should produce a value of type 'Float'.
 
-because when giving the input C<42.0>, C<42> will be matched by
-<integer_constant>, and the dot and "0" will remain. Therefore, put the
-<float_constant> alternative in rule term before <integer_constant>.
-At some point, PGE will support I<longest-token matching>, so that this issue
-will disappear.
+Note: in Perl 6 regexes, when matching an alternation as in a proto rule, the alternative which
+matches the most of the string is supposed to match. However, NQP-rx does not yet implement this. As
+a work-around, NQP-rx specifies that the version of a proto regex with the longest name will match.
+Since the part of a floating-point constant before the decimal place is the same as an integer
+constant, unless the token for floating-point constants has a longer name than the token for
+integer-constants, the latter will match and a syntax error will result.
 
 =item *
 
@@ -399,12 +343,25 @@
 between the individual digits and the dot. Make sure you understand the
 difference between a C<rule> and a C<token>.
 
-    token float_constant {
+Hint: a floating-point constant should produce a value of type 'Float'.
+
+Note: in Perl 6 regexes, when matching an alternation as in a proto rule, the alternative which
+matches the most of the string is supposed to match. However, NQP-rx does not yet implement this. As
+a work-around, NQP-rx specifies that the version of a proto regex with the longest name will match.
+Since the part of a floating-point constant before the decimal place is the same as an integer
+constant, unless the token for floating-point constants has a longer name than the token for
+integer-constants, the latter will match and a syntax error will result.
+
+    token term:sym<float_constant_long> { # longer to work around lack of LTM
         [
         | \d+ '.' \d*
         | \d* '.' \d+
         ]
-        {*}
+    }
+
+    # with action method:
+    method term:sym<float_constant_long>($/) { # name worksaround lack of LTM
+        make PAST::Val.new(:value(+$/), :returns<Float>);
     }
 
 =item 2
@@ -412,43 +369,38 @@
 For sake of completeness (and easy copy-paste for you), here's the list of
 operator declarations as I wrote them for Squaak:
 
-    rule expression    is optable              { ... }
+    INIT {
+        Squaak::Grammar.O(':prec<w>, :assoc<unary>', '%unary-negate');
+        Squaak::Grammar.O(':prec<v>, :assoc<unary>', '%unary-not');
+        Squaak::Grammar.O(':prec<u>, :assoc<left>',  '%multiplicative');
+        Squaak::Grammar.O(':prec<t>, :assoc<left>',  '%additive');
+        Squaak::Grammar.O(':prec<s>, :assoc<left>',  '%relational');
+        Squaak::Grammar.O(':prec<r>, :assoc<left>',  '%conjunction');
+        Squaak::Grammar.O(':prec<q>, :assoc<left>',  '%disjunction');
+    }
+
+    token circumfix:sym<( )> { '(' <.ws> <EXPR> ')' }
 
-    proto 'infix:or'   is precedence('1')
-                       is pasttype('unless')   { ... }
-    proto 'infix:and'  is tighter('infix:or')
-                       is pasttype('if')       { ... }
-
-    proto 'infix:<'    is tighter('infix:and') { ... }
-    proto 'infix:<='   is equiv('infix:<')     { ... }
-    proto 'infix:>'    is equiv('infix:<')     { ... }
-    proto 'infix:>='   is equiv('infix:<')     { ... }
-    proto 'infix:=='   is equiv('infix:<')     { ... }
-    proto 'infix:!='   is equiv('infix:<')     { ... }
-
-    proto 'infix:+'    is tighter('infix:<')
-                       is pirop('n_add')       { ... }
-    proto 'infix:-'    is equiv('infix:+')
-                       is pirop('n_sub')       { ... }
-
-    proto 'infix:..'   is equiv('infix:+')
-                       is pirop('n_concat')    { ... }
-
-    proto 'infix:*'    is tighter('infix:+')
-                       is pirop('n_mul')       { ... }
-    proto 'infix:%'    is equiv('infix:*')
-                       is pirop('n_mod')       { ... }
-    proto 'infix:/'    is equiv('infix:*')
-                       is pirop('n_div')       { ... }
-
-    proto 'prefix:not' is tighter('infix:*')
-                       is pirop('not')       { ... }
-    proto 'prefix:-'   is tighter('prefix:not')
-                       is pirop('neg')       { ... }
+    token prefix:sym<-> { <sym> <O('%unary-negate, :pirop<neg>')> }
+    token prefix:sym<not> { <sym> <O('%unary-not, :pirop<isfalse>')> }
 
-    proto 'term:'      is tighter('prefix:-')
-                       is parsed(&term)        { ... }
+    token infix:sym<*>  { <sym> <O('%multiplicative, :pirop<mul>')> }
+    token infix:sym<%>  { <sym> <O('%multiplicative, :pirop<mod>')> }
+    token infix:sym</>  { <sym> <O('%multiplicative, :pirop<div>')> }
+
+    token infix:sym<+>  { <sym> <O('%additive, :pirop<add>')> }
+    token infix:sym<->  { <sym> <O('%additive, :pirop<sub>')> }
+    token infix:sym<..> { <sym> <O('%additive, :pirop<concat>')> }
+
+    token infix:sym«<» { <sym> <O('%relational, :pirop<isle iPP>')> }
+    token infix:sym«<=» { <sym> <O('%relational, :pirop<islt iPP>')> }
+    token infix:sym«>» { <sym> <O('%relational, :pirop<isgt iPP>')> }
+    token infix:sym«>=» { <sym> <O('%relational, :pirop<isge iPP>')> }
+    token infix:sym«==» { <sym> <O('%relational, :pirop<iseq iPP>')> }
+    token infix:sym«!=» { <sym> <O('%relational, :pirop<isne iPP>')> }
 
+    token infix:sym<and> { <sym> <O('%conjunction, :pasttype<if>')> }
+    token infix:sym<or> { <sym> <O('%disjunction, :pasttype<unless>')> }
 
 =back
 

Modified: branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_8.pod
==============================================================================
--- branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_8.pod	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_8.pod	Tue Aug  3 02:53:14 2010	(r48260)
@@ -37,9 +37,8 @@
 that can be assigned to variables, you can have array literals. Below is the
 grammar rule for this:
 
- rule array_constructor {
-     '[' [ <expression> [',' <expression>]*]? ']'
-     {*}
+ rule circumfix:sym<[ ]> {
+     '[' [<EXPR> ** ',']? ']'
  }
 
 Some examples are shown below:
@@ -60,16 +59,21 @@
 constructed through a hashtable constructor. The syntax for this is expressed
 below:
 
- rule hash_constructor {
-     '{' [<named_field> [',' <named_field>]* ]? '}'
-     {*}
+ rule circumfix:sym<{ }> {
+     '{' [<named_field> ** ',']? '}'
  }
 
  rule named_field {
-     <string_constant> '=>' <expression>
-     {*}
+     <string_constant> '=>' <EXPR>
  }
 
+ # We need to rename our existing string_constant term to a separate rule
+ # so that we can use it specifically.
+ token term:sym<string_constant> { <string_constant> }
+
+ # Don't forget to rename the action method.
+ token string_constant { <quote> }
+
 Some examples are shown below:
 
     foo = {}
@@ -91,23 +95,13 @@
 
  rule primary {
      <identifier> <postfix_expression>*
-     {*}
  }
 
- rule postfix_expression {
-     | <index> {*}   #= index
-     | <key> {*}     #= key
- }
+ proto rule postfix_expression { <...> }
 
- rule index {
-     '[' <expression> ']'
-     {*}
- }
+ rule postfix_expression:sym<index> { '[' <EXPR> ']' }
 
- rule key {
-     '{' <expression> '}'
-     {*}
- }
+ rule postfix_expression:sym<key> { '{' <EXPR> '}' }
 
 A primary object is now an identifier followed by any number of
 postfix-expressions. A postfix expression is either a hashtable key or an array
@@ -121,8 +115,8 @@
 is actually quite simple. First, let us see how to implement the action method
 index.
 
- method index($/) {
-     my $index := $( $<expression> );
+ method postfix_expression:sym<index>($/) {
+     my $index := $<EXPR>.ast;
      my $past  := PAST::Var.new( $index,
                                  :scope('keyed'),
                                  :viviself('Undef'),
@@ -132,7 +126,7 @@
      make $past;
  }
 
-First, we retrieve the PAST node for expression. Then, we create a keyed
+First, we retrieve the PAST node for EXPR. Then, we create a keyed
 variable access operation, by creating a PAST::Var node and setting its scope
 to C<keyed>. If a C<PAST::Var> node has keyed scope, then the first child is
 evaluated as the aggregate object, and the second child is evaluated as the
@@ -144,10 +138,10 @@
 This is shown below.
 
  method primary($/) {
-     my $past := $( $<identifier> );
+     my $past := $<identifier>.ast;
 
      for $<postfix_expression> {
-         my $expr := $( $_ );
+         my $expr := $_.ast;
          $expr.unshift( $past );
          $past := $expr;
      }
@@ -219,15 +213,19 @@
 hashtable is created. This happens to be exactly what we need! Implementing
 the array and hash constructors becomes trivial:
 
- .sub '!array'
-     .param pmc fields :slurpy
-     .return (fields)
- .end
+ # Inset this in src/Squaak/Runtime.pm
 
- .sub '!hash'
-     .param pmc fields :named :slurpy
-     .return (fields)
- .end
+ {
+     my sub array (*@args) { @args; }
+     my sub hash (*%args) { %args; }
+
+     Q:PIR {
+         $P0 = find_lex 'array'
+         set_global '!array', $P0
+         $P0 = find_lex 'hash'
+         set_global '!hash', $P1
+     }
+ }
 
 Array and hashtable constructors can then be compiled into subroutine calls to
 the respective Parrot subroutines, passing all fields as arguments. (Note that
@@ -236,8 +234,8 @@
 
 =head2 Basic data types and Aggregates as arguments
 
-All data types, both basic and aggregate data types are represented by Parrot
-Magic Cookies (PMCs). The PMC is one of the four built-in data types that Parrot
+All data types, both basic and aggregate data types are represented by Polymorphic
+Containers (PMCs). The PMC is one of the four built-in data types that Parrot
 can handle; the others are integer, floating-point and string. Currently, the
 PCT can only generate code to handle PMCs, not the other basic data types.
 Parrot has registers for each its four built-in data types. The integer,
@@ -290,7 +288,7 @@
 
 =item *
 
-Implement the action methods for array_constructor and hash_constructor. Use a
+Implement the action methods for circumfix:sym<[ ]> and circumfix:sym<{ }>. Use a
 C<PAST::Op> node and set the pasttype to 'call'. Use the "name" attribute to
 specify the names of the subs to be invoked (e.g., C<:name("!array")> ). Note
 that all hash fields must be passed as named arguments. Check out PDD26 for
@@ -315,27 +313,29 @@
 
 =item 1
 
-    method key($/) {
-    my $key := $( $<expression> );
+    method postfix_expression:sym<key>($/) {
+        my $key := $<expression>.ast;
 
-    make PAST::Var.new( $key, :scope('keyed'),
-                              :vivibase('Hash'),
-                              :viviself('Undef'),
-                              :node($/) );
+        make PAST::Var.new( $key, :scope('keyed'),
+                                  :vivibase('Hash'),
+                                  :viviself('Undef'),
+                                  :node($/) );
     }
 
 =item 2
 
+    method term:sym<string_constant>($/) { make $<string_constant>.ast; }
+
     method named_field($/) {
-        my $past := $( $<expression> );
-        my $name := $( $<string_constant> );
+        my $past := $<EXPR>.ast;
+        my $name := $<string_constant>.ast;
         ## the passed expression is in fact a named argument,
         ## use the named() accessor to set that name.
         $past.named($name);
         make $past;
     }
 
-    method array_constructor($/) {
+    method circumfix:sym<[ ]>($/) {
         ## use the parrot calling conventions to
         ## create an array,
         ## using the "anonymous" sub !array
@@ -343,13 +343,13 @@
         my $past := PAST::Op.new( :name('!array'),
                                   :pasttype('call'),
                                   :node($/) );
-        for $<expression> {
-            $past.push($($_));
+        for $<EXPR> {
+            $past.push($_.ast);
         }
         make $past;
     }
 
-    method hash_constructor($/) {
+    method circumfix:sym<{ }>($/) {
         ## use the parrot calling conventions to
         ## create a hash, using the "anonymous" sub
         ## !hash (which is not a valid Squaak name)
@@ -357,31 +357,25 @@
                                   :pasttype('call'),
                                   :node($/) );
         for $<named_field> {
-            $past.push($($_));
+            $past.push($_.ast);
         }
         make $past;
     }
 
 =item 3
 
-    rule postfix_expression {
-        | <key> {*}         #= key
-        | <member> {*}      #= member
-        | <index> {*}       #= index
-    }
 
-    rule member {
+    rule postfix_expression:sym<member> {
         '.' <identifier>
-        {*}
     }
 
-    method member($/) {
-        my $member := $( $<identifier> );
+    method postfix_expression:sym<member>($/) {
+        my $member := $<identifier>.ast;
         ## x.y is syntactic sugar for x{"y"},
         ## so stringify the identifier:
-        my $key    := PAST::Val.new( :returns('String'),
-                                     :value($member.name()),
-                                     :node($/) );
+        my $key := PAST::Val.new( :returns('String'),
+                                  :value($member.name),
+                                  :node($/) );
 
         ## the rest of this method is the same
         ## as method key() above.

Modified: branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_9.pod
==============================================================================
--- branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_9.pod	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/examples/languages/squaak/doc/tutorial_episode_9.pod	Tue Aug  3 02:53:14 2010	(r48260)
@@ -181,9 +181,9 @@
  ## start here.
  main()
 
-Note the use of a subroutine "print". Check out the file src/builtins/say.pir,
-and rename the sub "say" (which was generated by the language shell creation
-script) to "print".
+Note the use of a subroutine "print". Check out the file src/Squaak/Runtime.pm,
+delete the generated sub "print" and rename the sub "say" to "print" (which was generated by the
+language shell creation script).
 
 =head2 Exercises
 

Modified: branches/dynop_mapping/examples/languages/squaak/setup.pir
==============================================================================
--- branches/dynop_mapping/examples/languages/squaak/setup.pir	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/examples/languages/squaak/setup.pir	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1,5 +1,5 @@
-#! ../../../parrot
-# Copyright (C) 2009, Parrot Foundation.
+#!/usr/bin/env parrot
+# Copyright (C) 2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -10,11 +10,9 @@
 
 No Configure step, no Makefile generated.
 
-See F<runtime/library/distutils.pir>.
-
 =head1 USAGE
 
-    $ parrot setup.pir
+    $ parrot setup.pir build
     $ parrot setup.pir test
     $ sudo parrot setup.pir install
 
@@ -25,58 +23,86 @@
     $S0 = shift args
     load_bytecode 'distutils.pbc'
 
+    .local int reqsvn
+    $P0 = new 'FileHandle'
+    $P0.'open'('PARROT_REVISION', 'r')
+    $S0 = $P0.'readline'()
+    reqsvn = $S0
+    $P0.'close'()
+
+    .local pmc config
+    config = get_config()
+    $I0 = config['revision']
+    unless $I0 goto L1
+    unless reqsvn > $I0 goto L1
+    $S1 = "Parrot revision r"
+    $S0 = reqsvn
+    $S1 .= $S0
+    $S1 .= " required (currently r"
+    $S0 = $I0
+    $S1 .= $S0
+    $S1 .= ")\n"
+    print $S1
+    end
+  L1:
+
     $P0 = new 'Hash'
     $P0['name'] = 'Squaak'
-    $P0['abstract'] = 'Squaak is a case-study language'
-    $P0['description'] = 'Squaak is a case-study language'
-    $P0['license_type'] = 'Artistic License 2.0'
-    $P0['license_uri'] = 'http://www.perlfoundation.org/artistic_license_2_0'
-    $P0['copyright_holder'] = 'Parrot Foundation'
-    $P0['checkout_uri'] = 'https://svn.parrot.org/parrot/trunk/examples/languages/squaak'
-    $P0['browser_uri'] = 'http://trac.parrot.org/parrot/browser/trunk/examples/languages/squaak'
-    $P0['project_uri'] = 'http://trac.parrot.org/parrot/browser/trunk/examples/languages/squaak'
+    $P0['abstract'] = 'the Squaak compiler'
+    $P0['description'] = 'the Squaak for Parrot VM.'
 
     # build
-    $P1 = new 'Hash'
-    $P1['src/gen_grammar.pir'] = 'src/parser/grammar.pg'
-    $P0['pir_pge'] = $P1
-
-    $P2 = new 'Hash'
-    $P2['src/gen_actions.pir'] = 'src/parser/actions.pm'
-    $P0['pir_nqprx'] = $P2
-
-    $P3 = new 'Hash'
-    $P4 = split "\n", <<'SOURCES'
-squaak.pir
+#    $P1 = new 'Hash'
+#    $P1['squaak_ops'] = 'src/ops/squaak.ops'
+#    $P0['dynops'] = $P1
+
+#    $P2 = new 'Hash'
+#    $P3 = split ' ', 'src/pmc/squaak.pmc'
+#    $P2['squaak_group'] = $P3
+#    $P0['dynpmc'] = $P2
+
+    $P4 = new 'Hash'
+    $P4['src/gen_actions.pir'] = 'src/Squaak/Actions.pm'
+    $P4['src/gen_compiler.pir'] = 'src/Squaak/Compiler.pm'
+    $P4['src/gen_grammar.pir'] = 'src/Squaak/Grammar.pm'
+    $P4['src/gen_runtime.pir'] = 'src/Squaak/Runtime.pm'
+    $P0['pir_nqp-rx'] = $P4
+
+    $P5 = new 'Hash'
+    $P6 = split "\n", <<'SOURCES'
+src/squaak.pir
 src/gen_actions.pir
+src/gen_compiler.pir
 src/gen_grammar.pir
-src/builtins/say.pir
+src/gen_runtime.pir
 SOURCES
-    $S0 = pop $P4
-    $P3['squaak.pbc'] = $P4
-    $P0['pbc_pir'] = $P3
-
-    $P5 = new 'Hash'
-    $P5['parrot-squaak'] = 'squaak.pbc'
-    $P0['exe_pbc'] = $P5
-    $P0['installable_pbc'] = $P5
+    $S0 = pop $P6
+    $P5['squaak/squaak.pbc'] = $P6
+    $P5['squaak.pbc'] = 'squaak.pir'
+    $P0['pbc_pir'] = $P5
+
+    $P7 = new 'Hash'
+    $P7['parrot-squaak'] = 'squaak.pbc'
+    $P0['installable_pbc'] = $P7
 
     # test
     $S0 = get_parrot()
     $S0 .= ' squaak.pbc'
     $P0['prove_exec'] = $S0
 
+    # install
+    $P0['inst_lang'] = 'squaak/squaak.pbc'
+
     # dist
-    $P6 = glob('doc/*.pod examples/*.sq')
-    $P0['manifest_includes'] = $P6
-    $P5 = split ' ', 'MAINTAINER README'
-    $P0['doc_files'] = $P5
+    $P0['doc_files'] = 'README'
 
     .tailcall setup(args :flat, $P0 :flat :named)
 .end
 
+
 # Local Variables:
 #   mode: pir
 #   fill-column: 100
 # End:
 # vim: expandtab shiftwidth=4 ft=pir:
+

Modified: branches/dynop_mapping/examples/languages/squaak/squaak.pir
==============================================================================
--- branches/dynop_mapping/examples/languages/squaak/squaak.pir	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/examples/languages/squaak/squaak.pir	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1,4 +1,4 @@
-# Copyright (C) 2008, Parrot Foundation.
+# Copyright (C) 2010, Parrot Foundation.
 # $Id$
 
 =head1 TITLE
@@ -7,39 +7,12 @@
 
 =head2 Description
 
-This is the base file for the Squaak compiler.
-
-This file includes the parsing and grammar rules from
-the src/ directory, loads the relevant PGE libraries,
-and registers the compiler under the name 'Squaak'.
+This is the entry point for the Squaak compiler.
 
 =head2 Functions
 
 =over 4
 
-=item onload()
-
-Creates the Squaak compiler using a C<PCT::HLLCompiler>
-object.
-
-=cut
-
-.namespace [ 'Squaak';'Compiler' ]
-
-.sub 'onload' :anon :load :init
-    load_bytecode 'PCT.pbc'
-
-    $P0 = get_hll_global ['PCT'], 'HLLCompiler'
-    $P1 = $P0.'new'()
-    $P1.'language'('Squaak')
-    $P1.'parsegrammar'('Squaak::Grammar')
-    $P1.'parseactions'('Squaak::Grammar::Actions')
-
-    $P1.'commandline_banner'("Squaak for Parrot VM\n")
-    $P1.'commandline_prompt'('> ')
-
-.end
-
 =item main(args :slurpy)  :main
 
 Start compilation by passing any command line C<args>
@@ -50,36 +23,12 @@
 .sub 'main' :main
     .param pmc args
 
+    load_language 'squaak'
+
     $P0 = compreg 'Squaak'
     $P1 = $P0.'command_line'(args)
 .end
 
-
-.include 'src/builtins/say.pir'
-.include 'src/gen_grammar.pir'
-.include 'src/gen_actions.pir'
-
-
-.namespace []
-
-.sub 'initlist' :anon :load :init
-    $P0 = new 'ResizablePMCArray'
-    set_hll_global ['Squaak';'Grammar';'Actions'], '@?BLOCK', $P0
-.end
-
-.namespace []
-
-.sub '!array'
-    .param pmc fields :slurpy
-    .return (fields)
-.end
-
-.sub '!hash'
-    .param pmc fields :slurpy :named
-    .return (fields)
-.end
-
-
 =back
 
 =cut

Copied: branches/dynop_mapping/examples/languages/squaak/src/Squaak/Actions.pm (from r48253, trunk/examples/languages/squaak/src/Squaak/Actions.pm)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/examples/languages/squaak/src/Squaak/Actions.pm	Tue Aug  3 02:53:14 2010	(r48260, copy of r48253, trunk/examples/languages/squaak/src/Squaak/Actions.pm)
@@ -0,0 +1,404 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+class Squaak::Actions is HLL::Actions;
+
+method begin_TOP ($/) {
+    our $?BLOCK := PAST::Block.new(:blocktype<declaration>, :node($/),
+                                   :hll<squaak>);
+    our @?BLOCK;
+    @?BLOCK.unshift($?BLOCK);
+}
+
+method TOP($/) {
+    our @?BLOCK;
+    my $past := @?BLOCK.shift();
+    $past.push($<statementlist>.ast);
+    make $past;
+}
+
+method statementlist($/) {
+    my $past := PAST::Stmts.new( :node($/) );
+    for $<stat_or_def> { $past.push( $_.ast ); }
+    make $past;
+}
+
+method stat_or_def($/) {
+    if $<statement> {
+        make $<statement>.ast;
+    }
+    else { # Must be a def
+        make $<sub_definition>.ast;
+    }
+}
+
+method sub_definition($/) {
+     our $?BLOCK;
+     our @?BLOCK;
+     my $past := $<parameters>.ast;
+     my $name := $<identifier>.ast;
+
+     # set the sub's name
+     $past.name($name.name);
+
+     # add all statements to the sub's body
+     for $<statement> {
+         $past.push($_.ast);
+     }
+
+     # and remove the block from the scope stack and restore the current block
+     @?BLOCK.shift();
+     $?BLOCK := @?BLOCK[0];
+     make $past;
+}
+
+method parameters($/) {
+    our $?BLOCK;
+    our @?BLOCK;
+    my $past := PAST::Block.new( :blocktype('declaration'), :node($/) );
+
+    # now add all parameters to this block
+    for $<identifier> {
+        my $param := $_.ast;
+        $param.scope('parameter');
+        $past.push($param);
+
+        # register the parameter as a local symbol
+        $past.symbol($param.name(), :scope('lexical'));
+    }
+
+    # now put the block into place on the scope stack
+    $?BLOCK := $past;
+    @?BLOCK.unshift($past);
+
+    make $past;
+}
+
+
+method statement:sym<assignment>($/) {
+    my $lhs := $<primary>.ast;
+    my $rhs := $<EXPR>.ast;
+    $lhs.lvalue(1);
+    make PAST::Op.new($lhs, $rhs, :pasttype<bind>, :node($/));
+}
+
+method for_init($/) {
+    our $?BLOCK;
+    our @?BLOCK;
+
+    ## create a new scope here, so that we can
+    ## add the loop variable
+    ## to this block here, which is convenient.
+    $?BLOCK := PAST::Block.new( :blocktype('immediate'),
+                                :node($/) );
+    @?BLOCK.unshift($?BLOCK);
+
+    my $iter := $<identifier>.ast;
+    ## set a flag that this identifier is being declared
+    $iter.isdecl(1);
+    $iter.scope('lexical');
+    ## the identifier is initialized with this expression
+    $iter.viviself( $<EXPR>.ast );
+
+    ## enter the loop variable into the symbol table.
+    $?BLOCK.symbol($iter.name(), :scope('lexical'));
+
+    make $iter;
+}
+
+method step($/) {
+    make $<EXPR>.ast;
+}
+
+method statement:sym<for>($/) {
+    our $?BLOCK;
+    our @?BLOCK;
+
+    my $init := $<for_init>.ast;
+    ## cache the name of the loop variable
+    my $itername := $init.name();
+    my $iter := PAST::Var.new( :name($itername),
+                               :scope('lexical'),
+                               :node($/) );
+    ## the body of the loop consists of the statements written by the user and
+    ## the increment instruction of the loop iterator.
+
+    my $body := @?BLOCK.shift();
+    $?BLOCK  := @?BLOCK[0];
+    for $<statement> {
+        $body.push($_.ast);
+    }
+
+    my $step;
+    if $<step> {
+        my $stepsize := $<step>[0].ast;
+        $step := PAST::Op.new( $iter, $stepsize,
+                               :pirop('add__0P+'), :node($/) );
+    }
+    else { ## default is increment by 1
+        $step := PAST::Op.new( $iter, :pirop('inc'), :node($/) );
+    }
+    $body.push($step);
+
+    ## while loop iterator <= end-expression
+    my $cond := PAST::Op.new( :pirop<isle__IPP>,
+                              $iter,
+                              $<EXPR>.ast );
+    my $loop := PAST::Op.new( $cond, $body, :pasttype('while'), :node($/) );
+
+    make PAST::Stmts.new( $init, $loop, :node($/) );
+}
+
+method statement:sym<if>($/) {
+    my $cond := $<EXPR>.ast;
+    my $past := PAST::Op.new( $cond, $<then>.ast,
+                              :pasttype('if'),
+                              :node($/) );
+    if $<else> {
+        $past.push($<else>[0].ast);
+    }
+    make $past;
+}
+
+method statement:sym<sub_call>($/) {
+    my $invocant := $<primary>.ast;
+    my $past     := $<arguments>.ast;
+    $past.unshift($invocant);
+    make $past;
+}
+
+method arguments($/) {
+    my $past := PAST::Op.new( :pasttype('call'), :node($/) );
+    for $<EXPR> {
+        $past.push($_.ast);
+    }
+    make $past;
+}
+
+method statement:sym<throw>($/) {
+    make PAST::Op.new( $<EXPR>.ast,
+                       :pirop('die'),
+                       :node($/) );
+}
+
+method statement:sym<try>($/) {
+    ## get the try block
+    my $try := $<try>.ast;
+
+    ## create a new PAST::Stmts node for
+    ## the catch block; note that no
+    ## PAST::Block is created, as this
+    ## currently has problems with the
+    ## exception object. For now this will
+    ## do.
+    my $catch := PAST::Stmts.new( :node($/) );
+    $catch.push($<catch>.ast);
+
+    ## get the exception identifier;
+    ## set a declaration flag, the scope,
+    ## and clear the viviself attribute.
+    my $exc := $<exception>.ast;
+    $exc.isdecl(1);
+    $exc.scope('lexical');
+    $exc.viviself(0);
+    ## generate instruction to retrieve the exception object (and the
+    ## exception message, that is passed automatically in PIR, this is stored
+    ## into $S0 (but not used).
+    my $pir := "    .get_results (\%r, \$S0)\n"
+             ~ "    store_lex '" ~ $exc.name()
+             ~ "', \%r";
+
+    $catch.unshift( PAST::Op.new( :inline($pir), :node($/) ) );
+
+    ## do the declaration of the exception object as a lexical here:
+    $catch.unshift( $exc );
+    make PAST::Op.new( $try, $catch, :pasttype('try'), :node($/) );
+}
+
+method exception($/) {
+    my $past := $<identifier>.ast;
+    make $past;
+}
+
+method statement:sym<var>($/) {
+    our $?BLOCK;
+    # get the PAST for the identifier
+    my $past := $<identifier>.ast;
+
+    # this is a local (it's being defined)
+    $past.scope('lexical');
+
+    # set a declaration flag
+    $past.isdecl(1);
+
+    # check for the initialization expression
+    if $<EXPR> {
+        # use the viviself clause to add a
+        # an initialization expression
+        $past.viviself($<EXPR>[0].ast);
+    }
+    else { # no initialization, default to "Undef"
+        $past.viviself('Undef');
+    }
+
+    my $name := $past.name();
+
+    if $?BLOCK.symbol( $name ) {
+        # symbol is already present
+        $/.CURSOR.panic("Error: symbol " ~ $name ~ " was already defined.\n");
+    }
+    else {
+        $?BLOCK.symbol( $name, :scope('lexical') );
+    }
+    make $past;
+}
+
+method statement:sym<while>($/) {
+    my $cond := $<EXPR>.ast;
+    my $body := $<block>.ast;
+    make PAST::Op.new( $cond, $body, :pasttype('while'), :node($/) );
+}
+
+method begin_block($/) {
+    our $?BLOCK;
+    our @?BLOCK;
+    $?BLOCK := PAST::Block.new(:blocktype('immediate'),
+                                   :node($/));
+    @?BLOCK.unshift($?BLOCK);
+}
+
+method block($/) {
+    our $?BLOCK;
+    our @?BLOCK;
+    my $past := @?BLOCK.shift();
+    $?BLOCK  := @?BLOCK[0];
+
+    for $<statement> {
+        $past.push($_.ast);
+    }
+    make $past;
+}
+
+method primary($/) {
+    my $past := $<identifier>.ast;
+
+    for $<postfix_expression> {
+        my $expr := $_.ast;
+        $expr.unshift( $past );
+        $past := $expr;
+    }
+
+    make $past;
+}
+
+method postfix_expression:sym<index>($/) {
+    my $index := $<EXPR>.ast;
+    my $past  := PAST::Var.new( $index,
+                                :scope('keyed'),
+                                :viviself('Undef'),
+                                :vivibase('ResizablePMCArray'),
+                                :node($/) );
+
+    make $past;
+}
+
+method postfix_expression:sym<key>($/) {
+    my $key := $<EXPR>.ast;
+
+    make PAST::Var.new( $key, :scope('keyed'),
+                              :vivibase('Hash'),
+                              :viviself('Undef'),
+                              :node($/) );
+}
+
+method postfix_expression:sym<member>($/) {
+    my $member := $<identifier>.ast;
+    ## x.y is syntactic sugar for x{"y"},
+    ## so stringify the identifier:
+    my $key := PAST::Val.new( :returns('String'),
+                              :value($member.name),
+                              :node($/) );
+
+    ## the rest of this method is the same
+    ## as method key() above.
+    make PAST::Var.new( $key, :scope('keyed'),
+                        :vivibase('Hash'),
+                        :viviself('Undef'),
+                        :node($/) );
+}
+
+method identifier($/) {
+     our @?BLOCK;
+     my $name  := ~$<ident>;
+     my $scope := 'package'; # default value
+     # go through all scopes and check if the symbol
+     # is registered as a local. If so, set scope to
+     # local.
+     for @?BLOCK {
+         if $_.symbol($name) {
+             $scope := 'lexical';
+         }
+     }
+
+     make PAST::Var.new( :name($name),
+                         :scope($scope),
+                         :viviself('Undef'),
+                         :node($/) );
+}
+
+method term:sym<integer_constant>($/) {
+    make PAST::Val.new(:value($<integer>.ast), :returns<Integer>);
+}
+method term:sym<string_constant>($/) { make $<string_constant>.ast; }
+method string_constant($/) {
+    my $past := $<quote>.ast;
+    $past.returns('String');
+    make $past;
+}
+method term:sym<float_constant_long>($/) { # name worksaround lack of LTM
+    make PAST::Val.new(:value(+$/), :returns<Float>);
+}
+method term:sym<primary>($/) {
+    make $<primary>.ast;
+}
+
+method quote:sym<'>($/) { make $<quote_EXPR>.ast; }
+method quote:sym<">($/) { make $<quote_EXPR>.ast; }
+
+method circumfix:sym<( )>($/) { make $<EXPR>.ast; }
+
+method named_field($/) {
+    my $past := $<EXPR>.ast;
+    my $name := $<string_constant>.ast;
+    ## the passed expression is in fact a named argument,
+    ## use the named() accessor to set that name.
+    $past.named($name);
+    make $past;
+}
+
+method circumfix:sym<[ ]>($/) {
+    ## use the parrot calling conventions to
+    ## create an array,
+    ## using the "anonymous" sub !array
+    ## (which is not a valid Squaak name)
+    my $past := PAST::Op.new( :name('!array'),
+                              :pasttype('call'),
+                              :node($/) );
+    for $<EXPR> {
+        $past.push($_.ast);
+    }
+    make $past;
+}
+
+method circumfix:sym<{ }>($/) {
+    ## use the parrot calling conventions to
+    ## create a hash, using the "anonymous" sub
+    ## !hash (which is not a valid Squaak name)
+    my $past := PAST::Op.new( :name('!hash'),
+                              :pasttype('call'),
+                              :node($/) );
+    for $<named_field> {
+        $past.push($_.ast);
+    }
+    make $past;
+}

Copied: branches/dynop_mapping/examples/languages/squaak/src/Squaak/Compiler.pm (from r48253, trunk/examples/languages/squaak/src/Squaak/Compiler.pm)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/examples/languages/squaak/src/Squaak/Compiler.pm	Tue Aug  3 02:53:14 2010	(r48260, copy of r48253, trunk/examples/languages/squaak/src/Squaak/Compiler.pm)
@@ -0,0 +1,12 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+class Squaak::Compiler is HLL::Compiler;
+
+INIT {
+    Squaak::Compiler.language('Squaak');
+    Squaak::Compiler.parsegrammar(Squaak::Grammar);
+    Squaak::Compiler.parseactions(Squaak::Actions);
+    Squaak::Compiler.commandline_banner("Squaak for Parrot VM.\n");
+    Squaak::Compiler.commandline_prompt('> ');
+}

Copied: branches/dynop_mapping/examples/languages/squaak/src/Squaak/Grammar.pm (from r48253, trunk/examples/languages/squaak/src/Squaak/Grammar.pm)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/examples/languages/squaak/src/Squaak/Grammar.pm	Tue Aug  3 02:53:14 2010	(r48260, copy of r48253, trunk/examples/languages/squaak/src/Squaak/Grammar.pm)
@@ -0,0 +1,205 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+=begin overview
+
+This is the grammar for Squaak in Perl 6 rules.
+
+=end overview
+
+grammar Squaak::Grammar is HLL::Grammar;
+
+token begin_TOP {
+    <?>
+}
+
+token TOP {
+    <.begin_TOP>
+    <statementlist>
+    [ $ || <.panic: "Syntax error"> ]
+}
+
+## Lexer items
+
+# This <ws> rule treats # as "comment to eol".
+token ws {
+    <!ww>
+    [ '#' \N* \n? | \s+ ]*
+}
+
+## Statements
+
+rule statementlist {
+    <stat_or_def>*
+}
+
+rule stat_or_def {
+    | <statement>
+    | <sub_definition>
+}
+
+rule sub_definition {
+    'sub' <identifier> <parameters>
+    <statement>*
+    'end'
+}
+
+rule parameters {
+   '(' [<identifier> ** ',']? ')'
+}
+
+proto rule statement { <...> }
+
+rule statement:sym<assignment> {
+    <primary> '=' <EXPR>
+}
+
+rule statement:sym<do> {
+    <sym> <block> 'end'
+}
+
+rule statement:sym<for> {
+    <sym> <for_init> ',' <EXPR> <step>?
+    'do' <statement>* 'end'
+}
+
+rule step {
+    ',' <EXPR>
+}
+
+rule for_init {
+    'var' <identifier> '=' <EXPR>
+}
+
+rule statement:sym<if> {
+    <sym> <EXPR> 'then' $<then>=<block>
+    ['else' $<else>=<block> ]?
+    'end'
+}
+
+rule statement:sym<sub_call> {
+    <primary> <arguments>
+}
+
+rule arguments {
+    '(' [<EXPR> ** ',']? ')'
+}
+
+rule statement:sym<throw> {
+    <sym> <EXPR>
+}
+
+rule statement:sym<try> {
+    <sym> $<try>=<block>
+    'catch' <exception>
+    $<catch>=<block>
+    'end'
+}
+
+rule exception {
+    <identifier>
+}
+
+rule statement:sym<var> {
+    <sym> <identifier> ['=' <EXPR>]?
+}
+
+rule statement:sym<while> {
+    <sym> <EXPR> 'do' <block> 'end'
+}
+
+token begin_block {
+    <?>
+}
+
+rule block {
+    <.begin_block>
+    <statement>*
+}
+
+## Terms
+
+rule primary {
+    <identifier> <postfix_expression>*
+}
+
+proto rule postfix_expression { <...> }
+
+rule postfix_expression:sym<index> { '[' <EXPR> ']' }
+
+rule postfix_expression:sym<key> { '{' <EXPR> '}' }
+
+rule postfix_expression:sym<member> { '.' <identifier> }
+
+token identifier {
+    <!keyword> <ident>
+}
+
+token keyword {
+    ['and'|'catch'|'do'   |'else' |'end' |'for' |'if'
+    |'not'|'or'   |'sub'  |'throw'|'try' |'var'|'while']>>
+}
+
+token term:sym<integer_constant> { <integer> }
+token term:sym<string_constant> { <string_constant> }
+token string_constant { <quote> }
+token term:sym<float_constant_long> { # longer to work-around lack of LTM
+    [
+    | \d+ '.' \d*
+    | \d* '.' \d+
+    ]
+}
+token term:sym<primary> {
+    <primary>
+}
+
+proto token quote { <...> }
+token quote:sym<'> { <?[']> <quote_EXPR: ':q'> }
+token quote:sym<"> { <?["]> <quote_EXPR: ':qq'> }
+
+## Operators
+
+INIT {
+    Squaak::Grammar.O(':prec<w>, :assoc<unary>', '%unary-negate');
+    Squaak::Grammar.O(':prec<v>, :assoc<unary>', '%unary-not');
+    Squaak::Grammar.O(':prec<u>, :assoc<left>',  '%multiplicative');
+    Squaak::Grammar.O(':prec<t>, :assoc<left>',  '%additive');
+    Squaak::Grammar.O(':prec<s>, :assoc<left>',  '%relational');
+    Squaak::Grammar.O(':prec<r>, :assoc<left>',  '%conjunction');
+    Squaak::Grammar.O(':prec<q>, :assoc<left>',  '%disjunction');
+}
+
+token circumfix:sym<( )> { '(' <.ws> <EXPR> ')' }
+
+rule circumfix:sym<[ ]> {
+    '[' [<EXPR> ** ',']? ']'
+}
+
+rule circumfix:sym<{ }> {
+    '{' [<named_field> ** ',']? '}'
+}
+
+rule named_field {
+    <string_constant> '=>' <EXPR>
+}
+
+token prefix:sym<-> { <sym> <O('%unary-negate, :pirop<neg>')> }
+token prefix:sym<not> { <sym> <O('%unary-not, :pirop<isfalse>')> }
+
+token infix:sym<*>  { <sym> <O('%multiplicative, :pirop<mul>')> }
+token infix:sym<%>  { <sym> <O('%multiplicative, :pirop<mod>')> }
+token infix:sym</>  { <sym> <O('%multiplicative, :pirop<div>')> }
+
+token infix:sym<+>  { <sym> <O('%additive, :pirop<add>')> }
+token infix:sym<->  { <sym> <O('%additive, :pirop<sub>')> }
+token infix:sym<..> { <sym> <O('%additive, :pirop<concat>')> }
+
+token infix:sym«<» { <sym> <O('%relational, :pirop<islt iPP>')> }
+token infix:sym«<=» { <sym> <O('%relational, :pirop<isle iPP>')> }
+token infix:sym«>» { <sym> <O('%relational, :pirop<isgt iPP>')> }
+token infix:sym«>=» { <sym> <O('%relational, :pirop<isge iPP>')> }
+token infix:sym«==» { <sym> <O('%relational, :pirop<iseq iPP>')> }
+token infix:sym«!=» { <sym> <O('%relational, :pirop<isne iPP>')> }
+
+token infix:sym<and> { <sym> <O('%conjunction, :pasttype<if>')> }
+token infix:sym<or> { <sym> <O('%disjunction, :pasttype<unless>')> }

Copied: branches/dynop_mapping/examples/languages/squaak/src/Squaak/Runtime.pm (from r48253, trunk/examples/languages/squaak/src/Squaak/Runtime.pm)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/examples/languages/squaak/src/Squaak/Runtime.pm	Tue Aug  3 02:53:14 2010	(r48260, copy of r48253, trunk/examples/languages/squaak/src/Squaak/Runtime.pm)
@@ -0,0 +1,22 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+# language-specific runtime functions go here
+
+{
+    my sub array (*@args) { @args; }
+    my sub hash (*%args) { %args; }
+
+    Q:PIR {
+        $P0 = find_lex 'array'
+        set_global '!array', $P0
+        $P0 = find_lex 'hash'
+        set_global '!hash', $P0
+    }
+}
+
+sub print(*@args) {
+    pir::say(pir::join('', @args));
+    pir::return();
+}

Copied: branches/dynop_mapping/examples/languages/squaak/src/squaak.pir (from r48253, trunk/examples/languages/squaak/src/squaak.pir)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/examples/languages/squaak/src/squaak.pir	Tue Aug  3 02:53:14 2010	(r48260, copy of r48253, trunk/examples/languages/squaak/src/squaak.pir)
@@ -0,0 +1,56 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 TITLE
+
+squaak.pir - A Squaak compiler.
+
+=head2 Description
+
+This is the base file for the Squaak compiler.
+
+This file includes the parsing and grammar rules from
+the src/ directory, loads the relevant PGE libraries,
+and registers the compiler under the name 'Squaak'.
+
+=head2 Functions
+
+=over 4
+
+=item onload()
+
+Creates the Squaak compiler using a C<PCT::HLLCompiler>
+object.
+
+=cut
+
+.HLL 'squaak'
+#.loadlib 'squaak_group'
+
+.namespace []
+
+.sub '' :anon :load
+    load_bytecode 'HLL.pbc'
+
+    .local pmc hllns, parrotns, imports
+    hllns = get_hll_namespace
+    parrotns = get_root_namespace ['parrot']
+    imports = split ' ', 'PAST PCT HLL Regex Hash'
+    parrotns.'export_to'(hllns, imports)
+.end
+
+.include 'src/gen_grammar.pir'
+.include 'src/gen_actions.pir'
+.include 'src/gen_compiler.pir'
+.include 'src/gen_runtime.pir'
+
+=back
+
+=cut
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
+

Modified: branches/dynop_mapping/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/dynop_mapping/ext/nqp-rx/src/stage0/HLL-s0.pir	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/ext/nqp-rx/src/stage0/HLL-s0.pir	Tue Aug  3 02:53:14 2010	(r48260)
@@ -902,7 +902,7 @@
 ### .include 'gen/hllgrammar-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1277356884.2847")
+.sub "_block11"  :anon :subid("10_1280467467.13603")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Grammar"], "_block13" 
     capture_lex $P14
@@ -916,103 +916,103 @@
 .annotate 'line', 5
     get_hll_global $P14, ["HLL";"Grammar"], "_block13" 
     capture_lex $P14
-    $P348 = $P14()
+    $P332 = $P14()
 .annotate 'line', 1
-    .return ($P348)
-    .const 'Sub' $P350 = "106_1277356884.2847" 
-    .return ($P350)
+    .return ($P332)
+    .const 'Sub' $P334 = "106_1280467467.13603" 
+    .return ($P334)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post107") :outer("10_1277356884.2847")
+.sub "" :load :init :subid("post107") :outer("10_1280467467.13603")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1277356884.2847" 
+    .const 'Sub' $P12 = "10_1280467467.13603" 
     .local pmc block
     set block, $P12
-    $P353 = get_root_global ["parrot"], "P6metaclass"
-    $P353."new_class"("HLL::Grammar", "Regex::Cursor" :named("parent"))
+    $P337 = get_root_global ["parrot"], "P6metaclass"
+    $P337."new_class"("HLL::Grammar", "Regex::Cursor" :named("parent"))
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block13"  :subid("11_1277356884.2847") :outer("10_1277356884.2847")
+.sub "_block13"  :subid("11_1280467467.13603") :outer("10_1280467467.13603")
 .annotate 'line', 5
-    .const 'Sub' $P334 = "103_1277356884.2847" 
-    capture_lex $P334
-    .const 'Sub' $P327 = "101_1277356884.2847" 
-    capture_lex $P327
-    .const 'Sub' $P314 = "98_1277356884.2847" 
-    capture_lex $P314
-    .const 'Sub' $P282 = "93_1277356884.2847" 
-    capture_lex $P282
-    .const 'Sub' $P276 = "91_1277356884.2847" 
-    capture_lex $P276
-    .const 'Sub' $P271 = "89_1277356884.2847" 
-    capture_lex $P271
-    .const 'Sub' $P265 = "87_1277356884.2847" 
-    capture_lex $P265
-    .const 'Sub' $P259 = "85_1277356884.2847" 
-    capture_lex $P259
-    .const 'Sub' $P254 = "83_1277356884.2847" 
-    capture_lex $P254
-    .const 'Sub' $P249 = "81_1277356884.2847" 
-    capture_lex $P249
-    .const 'Sub' $P244 = "79_1277356884.2847" 
-    capture_lex $P244
-    .const 'Sub' $P239 = "77_1277356884.2847" 
-    capture_lex $P239
-    .const 'Sub' $P234 = "75_1277356884.2847" 
-    capture_lex $P234
-    .const 'Sub' $P229 = "73_1277356884.2847" 
-    capture_lex $P229
-    .const 'Sub' $P224 = "71_1277356884.2847" 
-    capture_lex $P224
-    .const 'Sub' $P219 = "69_1277356884.2847" 
-    capture_lex $P219
-    .const 'Sub' $P208 = "65_1277356884.2847" 
-    capture_lex $P208
-    .const 'Sub' $P195 = "63_1277356884.2847" 
+    .const 'Sub' $P319 = "103_1280467467.13603" 
+    capture_lex $P319
+    .const 'Sub' $P313 = "101_1280467467.13603" 
+    capture_lex $P313
+    .const 'Sub' $P300 = "98_1280467467.13603" 
+    capture_lex $P300
+    .const 'Sub' $P268 = "93_1280467467.13603" 
+    capture_lex $P268
+    .const 'Sub' $P262 = "91_1280467467.13603" 
+    capture_lex $P262
+    .const 'Sub' $P257 = "89_1280467467.13603" 
+    capture_lex $P257
+    .const 'Sub' $P251 = "87_1280467467.13603" 
+    capture_lex $P251
+    .const 'Sub' $P245 = "85_1280467467.13603" 
+    capture_lex $P245
+    .const 'Sub' $P240 = "83_1280467467.13603" 
+    capture_lex $P240
+    .const 'Sub' $P235 = "81_1280467467.13603" 
+    capture_lex $P235
+    .const 'Sub' $P230 = "79_1280467467.13603" 
+    capture_lex $P230
+    .const 'Sub' $P225 = "77_1280467467.13603" 
+    capture_lex $P225
+    .const 'Sub' $P220 = "75_1280467467.13603" 
+    capture_lex $P220
+    .const 'Sub' $P215 = "73_1280467467.13603" 
+    capture_lex $P215
+    .const 'Sub' $P210 = "71_1280467467.13603" 
+    capture_lex $P210
+    .const 'Sub' $P205 = "69_1280467467.13603" 
+    capture_lex $P205
+    .const 'Sub' $P195 = "65_1280467467.13603" 
     capture_lex $P195
-    .const 'Sub' $P183 = "61_1277356884.2847" 
-    capture_lex $P183
-    .const 'Sub' $P176 = "59_1277356884.2847" 
-    capture_lex $P176
-    .const 'Sub' $P167 = "57_1277356884.2847" 
-    capture_lex $P167
-    .const 'Sub' $P160 = "55_1277356884.2847" 
-    capture_lex $P160
-    .const 'Sub' $P151 = "53_1277356884.2847" 
+    .const 'Sub' $P182 = "63_1280467467.13603" 
+    capture_lex $P182
+    .const 'Sub' $P170 = "61_1280467467.13603" 
+    capture_lex $P170
+    .const 'Sub' $P164 = "59_1280467467.13603" 
+    capture_lex $P164
+    .const 'Sub' $P157 = "57_1280467467.13603" 
+    capture_lex $P157
+    .const 'Sub' $P151 = "55_1280467467.13603" 
     capture_lex $P151
-    .const 'Sub' $P144 = "51_1277356884.2847" 
+    .const 'Sub' $P144 = "53_1280467467.13603" 
     capture_lex $P144
-    .const 'Sub' $P135 = "49_1277356884.2847" 
-    capture_lex $P135
-    .const 'Sub' $P128 = "47_1277356884.2847" 
-    capture_lex $P128
-    .const 'Sub' $P121 = "45_1277356884.2847" 
-    capture_lex $P121
-    .const 'Sub' $P111 = "43_1277356884.2847" 
-    capture_lex $P111
-    .const 'Sub' $P103 = "41_1277356884.2847" 
-    capture_lex $P103
-    .const 'Sub' $P93 = "40_1277356884.2847" 
-    capture_lex $P93
-    .const 'Sub' $P87 = "38_1277356884.2847" 
-    capture_lex $P87
-    .const 'Sub' $P82 = "36_1277356884.2847" 
-    capture_lex $P82
-    .const 'Sub' $P74 = "34_1277356884.2847" 
-    capture_lex $P74
-    .const 'Sub' $P68 = "32_1277356884.2847" 
-    capture_lex $P68
-    .const 'Sub' $P62 = "30_1277356884.2847" 
-    capture_lex $P62
-    .const 'Sub' $P56 = "28_1277356884.2847" 
-    capture_lex $P56
-    .const 'Sub' $P23 = "14_1277356884.2847" 
-    capture_lex $P23
-    .const 'Sub' $P15 = "12_1277356884.2847" 
+    .const 'Sub' $P138 = "51_1280467467.13603" 
+    capture_lex $P138
+    .const 'Sub' $P131 = "49_1280467467.13603" 
+    capture_lex $P131
+    .const 'Sub' $P125 = "47_1280467467.13603" 
+    capture_lex $P125
+    .const 'Sub' $P119 = "45_1280467467.13603" 
+    capture_lex $P119
+    .const 'Sub' $P110 = "43_1280467467.13603" 
+    capture_lex $P110
+    .const 'Sub' $P102 = "41_1280467467.13603" 
+    capture_lex $P102
+    .const 'Sub' $P92 = "40_1280467467.13603" 
+    capture_lex $P92
+    .const 'Sub' $P86 = "38_1280467467.13603" 
+    capture_lex $P86
+    .const 'Sub' $P81 = "36_1280467467.13603" 
+    capture_lex $P81
+    .const 'Sub' $P73 = "34_1280467467.13603" 
+    capture_lex $P73
+    .const 'Sub' $P67 = "32_1280467467.13603" 
+    capture_lex $P67
+    .const 'Sub' $P61 = "30_1280467467.13603" 
+    capture_lex $P61
+    .const 'Sub' $P55 = "28_1280467467.13603" 
+    capture_lex $P55
+    .const 'Sub' $P22 = "14_1280467467.13603" 
+    capture_lex $P22
+    .const 'Sub' $P15 = "12_1280467467.13603" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -1021,17 +1021,17 @@
     $P0."ctxsave"()
   ctxsave_done:
 .annotate 'line', 33
-    .const 'Sub' $P334 = "103_1277356884.2847" 
-    capture_lex $P334
+    .const 'Sub' $P319 = "103_1280467467.13603" 
+    capture_lex $P319
 .annotate 'line', 5
-    .return ($P334)
-    .const 'Sub' $P345 = "105_1277356884.2847" 
-    .return ($P345)
+    .return ($P319)
+    .const 'Sub' $P329 = "105_1280467467.13603" 
+    .return ($P329)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "ws"  :subid("12_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "ws"  :subid("12_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 5
     .local string rx16_tgt
     .local int rx16_pos
@@ -1039,8 +1039,7 @@
     .local int rx16_eos
     .local int rx16_rep
     .local pmc rx16_cur
-    (rx16_cur, rx16_pos, rx16_tgt) = self."!cursor_start"()
-    rx16_cur."!cursor_debug"("START ", "ws")
+    (rx16_cur, rx16_pos, rx16_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx16_cur
     .local pmc match
     .lex "$/", match
@@ -1051,6 +1050,8 @@
     sub rx16_off, rx16_pos, 1
     substr rx16_tgt, rx16_tgt, rx16_off
   rx16_start:
+    eq $I10, 1, rx16_restart
+    rx16_cur."!cursor_debug"("START ", "ws")
     $I10 = self.'from'()
     ne $I10, -1, rxscan19_done
     goto rxscan19_scan
@@ -1068,8 +1069,8 @@
     $P10 = rx16_cur."ww"()
     if $P10, rx16_fail
   # rx rxquantr20 ** 0..*
-    set_addr $I22, rxquantr20_done
-    rx16_cur."!mark_push"(0, rx16_pos, $I22)
+    set_addr $I10, rxquantr20_done
+    rx16_cur."!mark_push"(0, rx16_pos, $I10)
   rxquantr20_loop:
   alt21_0:
     set_addr $I10, alt21_1
@@ -1094,14 +1095,18 @@
     find_cclass $I11, 4096, rx16_tgt, $I10, rx16_eos
     add rx16_pos, rx16_off, $I11
   alt21_end:
-    (rx16_rep) = rx16_cur."!mark_commit"($I22)
-    rx16_cur."!mark_push"(rx16_rep, rx16_pos, $I22)
+    set_addr $I10, rxquantr20_done
+    (rx16_rep) = rx16_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr20_done
+    rx16_cur."!mark_push"(rx16_rep, rx16_pos, $I10)
     goto rxquantr20_loop
   rxquantr20_done:
   # rx pass
     rx16_cur."!cursor_pass"(rx16_pos, "ws")
     rx16_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx16_pos)
     .return (rx16_cur)
+  rx16_restart:
+    rx16_cur."!cursor_debug"("NEXT ", "ws")
   rx16_fail:
     (rx16_rep, rx16_pos, $I10, $P10) = rx16_cur."!mark_fail"(0)
     lt rx16_pos, -1, rx16_done
@@ -1116,7 +1121,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws"  :subid("13_1277356884.2847") :method
+.sub "!PREFIX__ws"  :subid("13_1280467467.13603") :method
 .annotate 'line', 5
     new $P18, "ResizablePMCArray"
     push $P18, ""
@@ -1125,1123 +1130,1292 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "termish"  :subid("14_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "termish"  :subid("14_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 5
-    .local string rx24_tgt
-    .local int rx24_pos
-    .local int rx24_off
-    .local int rx24_eos
-    .local int rx24_rep
-    .local pmc rx24_cur
-    (rx24_cur, rx24_pos, rx24_tgt) = self."!cursor_start"()
-    rx24_cur."!cursor_debug"("START ", "termish")
-    rx24_cur."!cursor_caparray"("postfixish", "prefixish")
-    .lex unicode:"$\x{a2}", rx24_cur
+    .local string rx23_tgt
+    .local int rx23_pos
+    .local int rx23_off
+    .local int rx23_eos
+    .local int rx23_rep
+    .local pmc rx23_cur
+    (rx23_cur, rx23_pos, rx23_tgt, $I10) = self."!cursor_start"()
+    rx23_cur."!cursor_caparray"("prefixish", "postfixish")
+    .lex unicode:"$\x{a2}", rx23_cur
     .local pmc match
     .lex "$/", match
-    length rx24_eos, rx24_tgt
-    gt rx24_pos, rx24_eos, rx24_done
-    set rx24_off, 0
-    lt rx24_pos, 2, rx24_start
-    sub rx24_off, rx24_pos, 1
-    substr rx24_tgt, rx24_tgt, rx24_off
-  rx24_start:
+    length rx23_eos, rx23_tgt
+    gt rx23_pos, rx23_eos, rx23_done
+    set rx23_off, 0
+    lt rx23_pos, 2, rx23_start
+    sub rx23_off, rx23_pos, 1
+    substr rx23_tgt, rx23_tgt, rx23_off
+  rx23_start:
+    eq $I10, 1, rx23_restart
+    rx23_cur."!cursor_debug"("START ", "termish")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan27_done
-    goto rxscan27_scan
-  rxscan27_loop:
-    ($P10) = rx24_cur."from"()
+    ne $I10, -1, rxscan26_done
+    goto rxscan26_scan
+  rxscan26_loop:
+    ($P10) = rx23_cur."from"()
     inc $P10
-    set rx24_pos, $P10
-    ge rx24_pos, rx24_eos, rxscan27_done
-  rxscan27_scan:
-    set_addr $I10, rxscan27_loop
-    rx24_cur."!mark_push"(0, rx24_pos, $I10)
-  rxscan27_done:
+    set rx23_pos, $P10
+    ge rx23_pos, rx23_eos, rxscan26_done
+  rxscan26_scan:
+    set_addr $I10, rxscan26_loop
+    rx23_cur."!mark_push"(0, rx23_pos, $I10)
+  rxscan26_done:
 .annotate 'line', 8
-  # rx rxquantr28 ** 0..*
-    set_addr $I29, rxquantr28_done
-    rx24_cur."!mark_push"(0, rx24_pos, $I29)
-  rxquantr28_loop:
+  # rx rxquantr27 ** 0..*
+    set_addr $I10, rxquantr27_done
+    rx23_cur."!mark_push"(0, rx23_pos, $I10)
+  rxquantr27_loop:
   # rx subrule "prefixish" subtype=capture negate=
-    rx24_cur."!cursor_pos"(rx24_pos)
-    $P10 = rx24_cur."prefixish"()
-    unless $P10, rx24_fail
-    rx24_cur."!mark_push"(0, -1, 0, $P10)
+    rx23_cur."!cursor_pos"(rx23_pos)
+    $P10 = rx23_cur."prefixish"()
+    unless $P10, rx23_fail
+    goto rxsubrule28_pass
+  rxsubrule28_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx23_fail
+  rxsubrule28_pass:
+    set_addr $I10, rxsubrule28_back
+    rx23_cur."!mark_push"(0, rx23_pos, $I10, $P10)
     $P10."!cursor_names"("prefixish")
-    rx24_pos = $P10."pos"()
-    (rx24_rep) = rx24_cur."!mark_commit"($I29)
-    rx24_cur."!mark_push"(rx24_rep, rx24_pos, $I29)
-    goto rxquantr28_loop
-  rxquantr28_done:
+    rx23_pos = $P10."pos"()
+    set_addr $I10, rxquantr27_done
+    (rx23_rep) = rx23_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr27_done
+    rx23_cur."!mark_push"(rx23_rep, rx23_pos, $I10)
+    goto rxquantr27_loop
+  rxquantr27_done:
 .annotate 'line', 9
   # rx subrule "term" subtype=capture negate=
-    rx24_cur."!cursor_pos"(rx24_pos)
-    $P10 = rx24_cur."term"()
-    unless $P10, rx24_fail
-    rx24_cur."!mark_push"(0, -1, 0, $P10)
+    rx23_cur."!cursor_pos"(rx23_pos)
+    $P10 = rx23_cur."term"()
+    unless $P10, rx23_fail
+    rx23_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("term")
-    rx24_pos = $P10."pos"()
+    rx23_pos = $P10."pos"()
 .annotate 'line', 10
-  # rx rxquantr30 ** 0..*
-    set_addr $I31, rxquantr30_done
-    rx24_cur."!mark_push"(0, rx24_pos, $I31)
-  rxquantr30_loop:
+  # rx rxquantr29 ** 0..*
+    set_addr $I10, rxquantr29_done
+    rx23_cur."!mark_push"(0, rx23_pos, $I10)
+  rxquantr29_loop:
   # rx subrule "postfixish" subtype=capture negate=
-    rx24_cur."!cursor_pos"(rx24_pos)
-    $P10 = rx24_cur."postfixish"()
-    unless $P10, rx24_fail
-    rx24_cur."!mark_push"(0, -1, 0, $P10)
+    rx23_cur."!cursor_pos"(rx23_pos)
+    $P10 = rx23_cur."postfixish"()
+    unless $P10, rx23_fail
+    goto rxsubrule30_pass
+  rxsubrule30_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx23_fail
+  rxsubrule30_pass:
+    set_addr $I10, rxsubrule30_back
+    rx23_cur."!mark_push"(0, rx23_pos, $I10, $P10)
     $P10."!cursor_names"("postfixish")
-    rx24_pos = $P10."pos"()
-    (rx24_rep) = rx24_cur."!mark_commit"($I31)
-    rx24_cur."!mark_push"(rx24_rep, rx24_pos, $I31)
-    goto rxquantr30_loop
-  rxquantr30_done:
+    rx23_pos = $P10."pos"()
+    set_addr $I10, rxquantr29_done
+    (rx23_rep) = rx23_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr29_done
+    rx23_cur."!mark_push"(rx23_rep, rx23_pos, $I10)
+    goto rxquantr29_loop
+  rxquantr29_done:
 .annotate 'line', 7
   # rx pass
-    rx24_cur."!cursor_pass"(rx24_pos, "termish")
-    rx24_cur."!cursor_debug"("PASS  ", "termish", " at pos=", rx24_pos)
-    .return (rx24_cur)
-  rx24_fail:
+    rx23_cur."!cursor_pass"(rx23_pos, "termish")
+    rx23_cur."!cursor_debug"("PASS  ", "termish", " at pos=", rx23_pos)
+    .return (rx23_cur)
+  rx23_restart:
 .annotate 'line', 5
-    (rx24_rep, rx24_pos, $I10, $P10) = rx24_cur."!mark_fail"(0)
-    lt rx24_pos, -1, rx24_done
-    eq rx24_pos, -1, rx24_fail
+    rx23_cur."!cursor_debug"("NEXT ", "termish")
+  rx23_fail:
+    (rx23_rep, rx23_pos, $I10, $P10) = rx23_cur."!mark_fail"(0)
+    lt rx23_pos, -1, rx23_done
+    eq rx23_pos, -1, rx23_fail
     jump $I10
-  rx24_done:
-    rx24_cur."!cursor_fail"()
-    rx24_cur."!cursor_debug"("FAIL  ", "termish")
-    .return (rx24_cur)
+  rx23_done:
+    rx23_cur."!cursor_fail"()
+    rx23_cur."!cursor_debug"("FAIL  ", "termish")
+    .return (rx23_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish"  :subid("15_1277356884.2847") :method
+.sub "!PREFIX__termish"  :subid("15_1280467467.13603") :method
 .annotate 'line', 5
-    new $P26, "ResizablePMCArray"
-    push $P26, ""
-    .return ($P26)
+    new $P25, "ResizablePMCArray"
+    push $P25, ""
+    .return ($P25)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term"  :subid("16_1277356884.2847") :method
+.sub "term"  :subid("16_1280467467.13603") :method
 .annotate 'line', 13
-    $P33 = self."!protoregex"("term")
-    .return ($P33)
+    $P32 = self."!protoregex"("term")
+    .return ($P32)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term"  :subid("17_1277356884.2847") :method
+.sub "!PREFIX__term"  :subid("17_1280467467.13603") :method
 .annotate 'line', 13
-    $P35 = self."!PREFIX__!protoregex"("term")
-    .return ($P35)
+    $P34 = self."!PREFIX__!protoregex"("term")
+    .return ($P34)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infix"  :subid("18_1277356884.2847") :method
+.sub "infix"  :subid("18_1280467467.13603") :method
 .annotate 'line', 14
-    $P37 = self."!protoregex"("infix")
-    .return ($P37)
+    $P36 = self."!protoregex"("infix")
+    .return ($P36)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix"  :subid("19_1277356884.2847") :method
+.sub "!PREFIX__infix"  :subid("19_1280467467.13603") :method
 .annotate 'line', 14
-    $P39 = self."!PREFIX__!protoregex"("infix")
-    .return ($P39)
+    $P38 = self."!PREFIX__!protoregex"("infix")
+    .return ($P38)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefix"  :subid("20_1277356884.2847") :method
+.sub "prefix"  :subid("20_1280467467.13603") :method
 .annotate 'line', 15
-    $P41 = self."!protoregex"("prefix")
-    .return ($P41)
+    $P40 = self."!protoregex"("prefix")
+    .return ($P40)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix"  :subid("21_1277356884.2847") :method
+.sub "!PREFIX__prefix"  :subid("21_1280467467.13603") :method
 .annotate 'line', 15
-    $P43 = self."!PREFIX__!protoregex"("prefix")
-    .return ($P43)
+    $P42 = self."!PREFIX__!protoregex"("prefix")
+    .return ($P42)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfix"  :subid("22_1277356884.2847") :method
+.sub "postfix"  :subid("22_1280467467.13603") :method
 .annotate 'line', 16
-    $P45 = self."!protoregex"("postfix")
-    .return ($P45)
+    $P44 = self."!protoregex"("postfix")
+    .return ($P44)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix"  :subid("23_1277356884.2847") :method
+.sub "!PREFIX__postfix"  :subid("23_1280467467.13603") :method
 .annotate 'line', 16
-    $P47 = self."!PREFIX__!protoregex"("postfix")
-    .return ($P47)
+    $P46 = self."!PREFIX__!protoregex"("postfix")
+    .return ($P46)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "circumfix"  :subid("24_1277356884.2847") :method
+.sub "circumfix"  :subid("24_1280467467.13603") :method
 .annotate 'line', 17
-    $P49 = self."!protoregex"("circumfix")
-    .return ($P49)
+    $P48 = self."!protoregex"("circumfix")
+    .return ($P48)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix"  :subid("25_1277356884.2847") :method
+.sub "!PREFIX__circumfix"  :subid("25_1280467467.13603") :method
 .annotate 'line', 17
-    $P51 = self."!PREFIX__!protoregex"("circumfix")
-    .return ($P51)
+    $P50 = self."!PREFIX__!protoregex"("circumfix")
+    .return ($P50)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postcircumfix"  :subid("26_1277356884.2847") :method
+.sub "postcircumfix"  :subid("26_1280467467.13603") :method
 .annotate 'line', 18
-    $P53 = self."!protoregex"("postcircumfix")
-    .return ($P53)
+    $P52 = self."!protoregex"("postcircumfix")
+    .return ($P52)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix"  :subid("27_1277356884.2847") :method
+.sub "!PREFIX__postcircumfix"  :subid("27_1280467467.13603") :method
 .annotate 'line', 18
-    $P55 = self."!PREFIX__!protoregex"("postcircumfix")
-    .return ($P55)
+    $P54 = self."!PREFIX__!protoregex"("postcircumfix")
+    .return ($P54)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>"  :subid("28_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "term:sym<circumfix>"  :subid("28_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 5
-    .local string rx57_tgt
-    .local int rx57_pos
-    .local int rx57_off
-    .local int rx57_eos
-    .local int rx57_rep
-    .local pmc rx57_cur
-    (rx57_cur, rx57_pos, rx57_tgt) = self."!cursor_start"()
-    rx57_cur."!cursor_debug"("START ", "term:sym<circumfix>")
-    .lex unicode:"$\x{a2}", rx57_cur
+    .local string rx56_tgt
+    .local int rx56_pos
+    .local int rx56_off
+    .local int rx56_eos
+    .local int rx56_rep
+    .local pmc rx56_cur
+    (rx56_cur, rx56_pos, rx56_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx56_cur
     .local pmc match
     .lex "$/", match
-    length rx57_eos, rx57_tgt
-    gt rx57_pos, rx57_eos, rx57_done
-    set rx57_off, 0
-    lt rx57_pos, 2, rx57_start
-    sub rx57_off, rx57_pos, 1
-    substr rx57_tgt, rx57_tgt, rx57_off
-  rx57_start:
+    length rx56_eos, rx56_tgt
+    gt rx56_pos, rx56_eos, rx56_done
+    set rx56_off, 0
+    lt rx56_pos, 2, rx56_start
+    sub rx56_off, rx56_pos, 1
+    substr rx56_tgt, rx56_tgt, rx56_off
+  rx56_start:
+    eq $I10, 1, rx56_restart
+    rx56_cur."!cursor_debug"("START ", "term:sym<circumfix>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan61_done
-    goto rxscan61_scan
-  rxscan61_loop:
-    ($P10) = rx57_cur."from"()
+    ne $I10, -1, rxscan60_done
+    goto rxscan60_scan
+  rxscan60_loop:
+    ($P10) = rx56_cur."from"()
     inc $P10
-    set rx57_pos, $P10
-    ge rx57_pos, rx57_eos, rxscan61_done
-  rxscan61_scan:
-    set_addr $I10, rxscan61_loop
-    rx57_cur."!mark_push"(0, rx57_pos, $I10)
-  rxscan61_done:
+    set rx56_pos, $P10
+    ge rx56_pos, rx56_eos, rxscan60_done
+  rxscan60_scan:
+    set_addr $I10, rxscan60_loop
+    rx56_cur."!mark_push"(0, rx56_pos, $I10)
+  rxscan60_done:
 .annotate 'line', 20
   # rx subrule "circumfix" subtype=capture negate=
-    rx57_cur."!cursor_pos"(rx57_pos)
-    $P10 = rx57_cur."circumfix"()
-    unless $P10, rx57_fail
-    rx57_cur."!mark_push"(0, -1, 0, $P10)
+    rx56_cur."!cursor_pos"(rx56_pos)
+    $P10 = rx56_cur."circumfix"()
+    unless $P10, rx56_fail
+    rx56_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("circumfix")
-    rx57_pos = $P10."pos"()
+    rx56_pos = $P10."pos"()
   # rx pass
-    rx57_cur."!cursor_pass"(rx57_pos, "term:sym<circumfix>")
-    rx57_cur."!cursor_debug"("PASS  ", "term:sym<circumfix>", " at pos=", rx57_pos)
-    .return (rx57_cur)
-  rx57_fail:
+    rx56_cur."!cursor_pass"(rx56_pos, "term:sym<circumfix>")
+    rx56_cur."!cursor_debug"("PASS  ", "term:sym<circumfix>", " at pos=", rx56_pos)
+    .return (rx56_cur)
+  rx56_restart:
 .annotate 'line', 5
-    (rx57_rep, rx57_pos, $I10, $P10) = rx57_cur."!mark_fail"(0)
-    lt rx57_pos, -1, rx57_done
-    eq rx57_pos, -1, rx57_fail
+    rx56_cur."!cursor_debug"("NEXT ", "term:sym<circumfix>")
+  rx56_fail:
+    (rx56_rep, rx56_pos, $I10, $P10) = rx56_cur."!mark_fail"(0)
+    lt rx56_pos, -1, rx56_done
+    eq rx56_pos, -1, rx56_fail
     jump $I10
-  rx57_done:
-    rx57_cur."!cursor_fail"()
-    rx57_cur."!cursor_debug"("FAIL  ", "term:sym<circumfix>")
-    .return (rx57_cur)
+  rx56_done:
+    rx56_cur."!cursor_fail"()
+    rx56_cur."!cursor_debug"("FAIL  ", "term:sym<circumfix>")
+    .return (rx56_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1277356884.2847") :method
+.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1280467467.13603") :method
 .annotate 'line', 5
-    $P59 = self."!PREFIX__!subrule"("circumfix", "")
-    new $P60, "ResizablePMCArray"
-    push $P60, $P59
-    .return ($P60)
+    $P58 = self."!PREFIX__!subrule"("circumfix", "")
+    new $P59, "ResizablePMCArray"
+    push $P59, $P58
+    .return ($P59)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infixish"  :subid("30_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "infixish"  :subid("30_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 5
-    .local string rx63_tgt
-    .local int rx63_pos
-    .local int rx63_off
-    .local int rx63_eos
-    .local int rx63_rep
-    .local pmc rx63_cur
-    (rx63_cur, rx63_pos, rx63_tgt) = self."!cursor_start"()
-    rx63_cur."!cursor_debug"("START ", "infixish")
-    .lex unicode:"$\x{a2}", rx63_cur
+    .local string rx62_tgt
+    .local int rx62_pos
+    .local int rx62_off
+    .local int rx62_eos
+    .local int rx62_rep
+    .local pmc rx62_cur
+    (rx62_cur, rx62_pos, rx62_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx62_cur
     .local pmc match
     .lex "$/", match
-    length rx63_eos, rx63_tgt
-    gt rx63_pos, rx63_eos, rx63_done
-    set rx63_off, 0
-    lt rx63_pos, 2, rx63_start
-    sub rx63_off, rx63_pos, 1
-    substr rx63_tgt, rx63_tgt, rx63_off
-  rx63_start:
+    length rx62_eos, rx62_tgt
+    gt rx62_pos, rx62_eos, rx62_done
+    set rx62_off, 0
+    lt rx62_pos, 2, rx62_start
+    sub rx62_off, rx62_pos, 1
+    substr rx62_tgt, rx62_tgt, rx62_off
+  rx62_start:
+    eq $I10, 1, rx62_restart
+    rx62_cur."!cursor_debug"("START ", "infixish")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan67_done
-    goto rxscan67_scan
-  rxscan67_loop:
-    ($P10) = rx63_cur."from"()
+    ne $I10, -1, rxscan66_done
+    goto rxscan66_scan
+  rxscan66_loop:
+    ($P10) = rx62_cur."from"()
     inc $P10
-    set rx63_pos, $P10
-    ge rx63_pos, rx63_eos, rxscan67_done
-  rxscan67_scan:
-    set_addr $I10, rxscan67_loop
-    rx63_cur."!mark_push"(0, rx63_pos, $I10)
-  rxscan67_done:
+    set rx62_pos, $P10
+    ge rx62_pos, rx62_eos, rxscan66_done
+  rxscan66_scan:
+    set_addr $I10, rxscan66_loop
+    rx62_cur."!mark_push"(0, rx62_pos, $I10)
+  rxscan66_done:
 .annotate 'line', 22
   # rx subrule "infix" subtype=capture negate=
-    rx63_cur."!cursor_pos"(rx63_pos)
-    $P10 = rx63_cur."infix"()
-    unless $P10, rx63_fail
-    rx63_cur."!mark_push"(0, -1, 0, $P10)
+    rx62_cur."!cursor_pos"(rx62_pos)
+    $P10 = rx62_cur."infix"()
+    unless $P10, rx62_fail
+    rx62_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("OPER=infix")
-    rx63_pos = $P10."pos"()
+    rx62_pos = $P10."pos"()
   # rx pass
-    rx63_cur."!cursor_pass"(rx63_pos, "infixish")
-    rx63_cur."!cursor_debug"("PASS  ", "infixish", " at pos=", rx63_pos)
-    .return (rx63_cur)
-  rx63_fail:
+    rx62_cur."!cursor_pass"(rx62_pos, "infixish")
+    rx62_cur."!cursor_debug"("PASS  ", "infixish", " at pos=", rx62_pos)
+    .return (rx62_cur)
+  rx62_restart:
 .annotate 'line', 5
-    (rx63_rep, rx63_pos, $I10, $P10) = rx63_cur."!mark_fail"(0)
-    lt rx63_pos, -1, rx63_done
-    eq rx63_pos, -1, rx63_fail
+    rx62_cur."!cursor_debug"("NEXT ", "infixish")
+  rx62_fail:
+    (rx62_rep, rx62_pos, $I10, $P10) = rx62_cur."!mark_fail"(0)
+    lt rx62_pos, -1, rx62_done
+    eq rx62_pos, -1, rx62_fail
     jump $I10
-  rx63_done:
-    rx63_cur."!cursor_fail"()
-    rx63_cur."!cursor_debug"("FAIL  ", "infixish")
-    .return (rx63_cur)
+  rx62_done:
+    rx62_cur."!cursor_fail"()
+    rx62_cur."!cursor_debug"("FAIL  ", "infixish")
+    .return (rx62_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("31_1277356884.2847") :method
+.sub "!PREFIX__infixish"  :subid("31_1280467467.13603") :method
 .annotate 'line', 5
-    $P65 = self."!PREFIX__!subrule"("infix", "")
-    new $P66, "ResizablePMCArray"
-    push $P66, $P65
-    .return ($P66)
+    $P64 = self."!PREFIX__!subrule"("infix", "")
+    new $P65, "ResizablePMCArray"
+    push $P65, $P64
+    .return ($P65)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefixish"  :subid("32_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "prefixish"  :subid("32_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 5
-    .local string rx69_tgt
-    .local int rx69_pos
-    .local int rx69_off
-    .local int rx69_eos
-    .local int rx69_rep
-    .local pmc rx69_cur
-    (rx69_cur, rx69_pos, rx69_tgt) = self."!cursor_start"()
-    rx69_cur."!cursor_debug"("START ", "prefixish")
-    .lex unicode:"$\x{a2}", rx69_cur
+    .local string rx68_tgt
+    .local int rx68_pos
+    .local int rx68_off
+    .local int rx68_eos
+    .local int rx68_rep
+    .local pmc rx68_cur
+    (rx68_cur, rx68_pos, rx68_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx68_cur
     .local pmc match
     .lex "$/", match
-    length rx69_eos, rx69_tgt
-    gt rx69_pos, rx69_eos, rx69_done
-    set rx69_off, 0
-    lt rx69_pos, 2, rx69_start
-    sub rx69_off, rx69_pos, 1
-    substr rx69_tgt, rx69_tgt, rx69_off
-  rx69_start:
+    length rx68_eos, rx68_tgt
+    gt rx68_pos, rx68_eos, rx68_done
+    set rx68_off, 0
+    lt rx68_pos, 2, rx68_start
+    sub rx68_off, rx68_pos, 1
+    substr rx68_tgt, rx68_tgt, rx68_off
+  rx68_start:
+    eq $I10, 1, rx68_restart
+    rx68_cur."!cursor_debug"("START ", "prefixish")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan73_done
-    goto rxscan73_scan
-  rxscan73_loop:
-    ($P10) = rx69_cur."from"()
+    ne $I10, -1, rxscan72_done
+    goto rxscan72_scan
+  rxscan72_loop:
+    ($P10) = rx68_cur."from"()
     inc $P10
-    set rx69_pos, $P10
-    ge rx69_pos, rx69_eos, rxscan73_done
-  rxscan73_scan:
-    set_addr $I10, rxscan73_loop
-    rx69_cur."!mark_push"(0, rx69_pos, $I10)
-  rxscan73_done:
+    set rx68_pos, $P10
+    ge rx68_pos, rx68_eos, rxscan72_done
+  rxscan72_scan:
+    set_addr $I10, rxscan72_loop
+    rx68_cur."!mark_push"(0, rx68_pos, $I10)
+  rxscan72_done:
 .annotate 'line', 23
   # rx subrule "prefix" subtype=capture negate=
-    rx69_cur."!cursor_pos"(rx69_pos)
-    $P10 = rx69_cur."prefix"()
-    unless $P10, rx69_fail
-    rx69_cur."!mark_push"(0, -1, 0, $P10)
+    rx68_cur."!cursor_pos"(rx68_pos)
+    $P10 = rx68_cur."prefix"()
+    unless $P10, rx68_fail
+    rx68_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("OPER=prefix")
-    rx69_pos = $P10."pos"()
+    rx68_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx69_cur."!cursor_pos"(rx69_pos)
-    $P10 = rx69_cur."ws"()
-    unless $P10, rx69_fail
-    rx69_pos = $P10."pos"()
+    rx68_cur."!cursor_pos"(rx68_pos)
+    $P10 = rx68_cur."ws"()
+    unless $P10, rx68_fail
+    rx68_pos = $P10."pos"()
   # rx pass
-    rx69_cur."!cursor_pass"(rx69_pos, "prefixish")
-    rx69_cur."!cursor_debug"("PASS  ", "prefixish", " at pos=", rx69_pos)
-    .return (rx69_cur)
-  rx69_fail:
+    rx68_cur."!cursor_pass"(rx68_pos, "prefixish")
+    rx68_cur."!cursor_debug"("PASS  ", "prefixish", " at pos=", rx68_pos)
+    .return (rx68_cur)
+  rx68_restart:
 .annotate 'line', 5
-    (rx69_rep, rx69_pos, $I10, $P10) = rx69_cur."!mark_fail"(0)
-    lt rx69_pos, -1, rx69_done
-    eq rx69_pos, -1, rx69_fail
+    rx68_cur."!cursor_debug"("NEXT ", "prefixish")
+  rx68_fail:
+    (rx68_rep, rx68_pos, $I10, $P10) = rx68_cur."!mark_fail"(0)
+    lt rx68_pos, -1, rx68_done
+    eq rx68_pos, -1, rx68_fail
     jump $I10
-  rx69_done:
-    rx69_cur."!cursor_fail"()
-    rx69_cur."!cursor_debug"("FAIL  ", "prefixish")
-    .return (rx69_cur)
+  rx68_done:
+    rx68_cur."!cursor_fail"()
+    rx68_cur."!cursor_debug"("FAIL  ", "prefixish")
+    .return (rx68_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish"  :subid("33_1277356884.2847") :method
+.sub "!PREFIX__prefixish"  :subid("33_1280467467.13603") :method
 .annotate 'line', 5
-    $P71 = self."!PREFIX__!subrule"("prefix", "")
-    new $P72, "ResizablePMCArray"
-    push $P72, $P71
-    .return ($P72)
+    $P70 = self."!PREFIX__!subrule"("prefix", "")
+    new $P71, "ResizablePMCArray"
+    push $P71, $P70
+    .return ($P71)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfixish"  :subid("34_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "postfixish"  :subid("34_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 5
-    .local string rx75_tgt
-    .local int rx75_pos
-    .local int rx75_off
-    .local int rx75_eos
-    .local int rx75_rep
-    .local pmc rx75_cur
-    (rx75_cur, rx75_pos, rx75_tgt) = self."!cursor_start"()
-    rx75_cur."!cursor_debug"("START ", "postfixish")
-    .lex unicode:"$\x{a2}", rx75_cur
+    .local string rx74_tgt
+    .local int rx74_pos
+    .local int rx74_off
+    .local int rx74_eos
+    .local int rx74_rep
+    .local pmc rx74_cur
+    (rx74_cur, rx74_pos, rx74_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx74_cur
     .local pmc match
     .lex "$/", match
-    length rx75_eos, rx75_tgt
-    gt rx75_pos, rx75_eos, rx75_done
-    set rx75_off, 0
-    lt rx75_pos, 2, rx75_start
-    sub rx75_off, rx75_pos, 1
-    substr rx75_tgt, rx75_tgt, rx75_off
-  rx75_start:
+    length rx74_eos, rx74_tgt
+    gt rx74_pos, rx74_eos, rx74_done
+    set rx74_off, 0
+    lt rx74_pos, 2, rx74_start
+    sub rx74_off, rx74_pos, 1
+    substr rx74_tgt, rx74_tgt, rx74_off
+  rx74_start:
+    eq $I10, 1, rx74_restart
+    rx74_cur."!cursor_debug"("START ", "postfixish")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan80_done
-    goto rxscan80_scan
-  rxscan80_loop:
-    ($P10) = rx75_cur."from"()
+    ne $I10, -1, rxscan79_done
+    goto rxscan79_scan
+  rxscan79_loop:
+    ($P10) = rx74_cur."from"()
     inc $P10
-    set rx75_pos, $P10
-    ge rx75_pos, rx75_eos, rxscan80_done
-  rxscan80_scan:
-    set_addr $I10, rxscan80_loop
-    rx75_cur."!mark_push"(0, rx75_pos, $I10)
-  rxscan80_done:
-  alt81_0:
+    set rx74_pos, $P10
+    ge rx74_pos, rx74_eos, rxscan79_done
+  rxscan79_scan:
+    set_addr $I10, rxscan79_loop
+    rx74_cur."!mark_push"(0, rx74_pos, $I10)
+  rxscan79_done:
+  alt80_0:
 .annotate 'line', 24
-    set_addr $I10, alt81_1
-    rx75_cur."!mark_push"(0, rx75_pos, $I10)
+    set_addr $I10, alt80_1
+    rx74_cur."!mark_push"(0, rx74_pos, $I10)
 .annotate 'line', 25
   # rx subrule "postfix" subtype=capture negate=
-    rx75_cur."!cursor_pos"(rx75_pos)
-    $P10 = rx75_cur."postfix"()
-    unless $P10, rx75_fail
-    rx75_cur."!mark_push"(0, -1, 0, $P10)
+    rx74_cur."!cursor_pos"(rx74_pos)
+    $P10 = rx74_cur."postfix"()
+    unless $P10, rx74_fail
+    rx74_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("OPER=postfix")
-    rx75_pos = $P10."pos"()
-    goto alt81_end
-  alt81_1:
+    rx74_pos = $P10."pos"()
+    goto alt80_end
+  alt80_1:
 .annotate 'line', 26
   # rx subrule "postcircumfix" subtype=capture negate=
-    rx75_cur."!cursor_pos"(rx75_pos)
-    $P10 = rx75_cur."postcircumfix"()
-    unless $P10, rx75_fail
-    rx75_cur."!mark_push"(0, -1, 0, $P10)
+    rx74_cur."!cursor_pos"(rx74_pos)
+    $P10 = rx74_cur."postcircumfix"()
+    unless $P10, rx74_fail
+    rx74_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("OPER=postcircumfix")
-    rx75_pos = $P10."pos"()
-  alt81_end:
+    rx74_pos = $P10."pos"()
+  alt80_end:
 .annotate 'line', 24
   # rx pass
-    rx75_cur."!cursor_pass"(rx75_pos, "postfixish")
-    rx75_cur."!cursor_debug"("PASS  ", "postfixish", " at pos=", rx75_pos)
-    .return (rx75_cur)
-  rx75_fail:
+    rx74_cur."!cursor_pass"(rx74_pos, "postfixish")
+    rx74_cur."!cursor_debug"("PASS  ", "postfixish", " at pos=", rx74_pos)
+    .return (rx74_cur)
+  rx74_restart:
 .annotate 'line', 5
-    (rx75_rep, rx75_pos, $I10, $P10) = rx75_cur."!mark_fail"(0)
-    lt rx75_pos, -1, rx75_done
-    eq rx75_pos, -1, rx75_fail
+    rx74_cur."!cursor_debug"("NEXT ", "postfixish")
+  rx74_fail:
+    (rx74_rep, rx74_pos, $I10, $P10) = rx74_cur."!mark_fail"(0)
+    lt rx74_pos, -1, rx74_done
+    eq rx74_pos, -1, rx74_fail
     jump $I10
-  rx75_done:
-    rx75_cur."!cursor_fail"()
-    rx75_cur."!cursor_debug"("FAIL  ", "postfixish")
-    .return (rx75_cur)
+  rx74_done:
+    rx74_cur."!cursor_fail"()
+    rx74_cur."!cursor_debug"("FAIL  ", "postfixish")
+    .return (rx74_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish"  :subid("35_1277356884.2847") :method
+.sub "!PREFIX__postfixish"  :subid("35_1280467467.13603") :method
 .annotate 'line', 5
-    $P77 = self."!PREFIX__!subrule"("postcircumfix", "")
-    $P78 = self."!PREFIX__!subrule"("postfix", "")
-    new $P79, "ResizablePMCArray"
-    push $P79, $P77
-    push $P79, $P78
-    .return ($P79)
+    $P76 = self."!PREFIX__!subrule"("postcircumfix", "")
+    $P77 = self."!PREFIX__!subrule"("postfix", "")
+    new $P78, "ResizablePMCArray"
+    push $P78, $P76
+    push $P78, $P77
+    .return ($P78)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm"  :subid("36_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "nullterm"  :subid("36_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 5
-    .local string rx83_tgt
-    .local int rx83_pos
-    .local int rx83_off
-    .local int rx83_eos
-    .local int rx83_rep
-    .local pmc rx83_cur
-    (rx83_cur, rx83_pos, rx83_tgt) = self."!cursor_start"()
-    rx83_cur."!cursor_debug"("START ", "nullterm")
-    .lex unicode:"$\x{a2}", rx83_cur
+    .local string rx82_tgt
+    .local int rx82_pos
+    .local int rx82_off
+    .local int rx82_eos
+    .local int rx82_rep
+    .local pmc rx82_cur
+    (rx82_cur, rx82_pos, rx82_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx82_cur
     .local pmc match
     .lex "$/", match
-    length rx83_eos, rx83_tgt
-    gt rx83_pos, rx83_eos, rx83_done
-    set rx83_off, 0
-    lt rx83_pos, 2, rx83_start
-    sub rx83_off, rx83_pos, 1
-    substr rx83_tgt, rx83_tgt, rx83_off
-  rx83_start:
+    length rx82_eos, rx82_tgt
+    gt rx82_pos, rx82_eos, rx82_done
+    set rx82_off, 0
+    lt rx82_pos, 2, rx82_start
+    sub rx82_off, rx82_pos, 1
+    substr rx82_tgt, rx82_tgt, rx82_off
+  rx82_start:
+    eq $I10, 1, rx82_restart
+    rx82_cur."!cursor_debug"("START ", "nullterm")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan86_done
-    goto rxscan86_scan
-  rxscan86_loop:
-    ($P10) = rx83_cur."from"()
+    ne $I10, -1, rxscan85_done
+    goto rxscan85_scan
+  rxscan85_loop:
+    ($P10) = rx82_cur."from"()
     inc $P10
-    set rx83_pos, $P10
-    ge rx83_pos, rx83_eos, rxscan86_done
-  rxscan86_scan:
-    set_addr $I10, rxscan86_loop
-    rx83_cur."!mark_push"(0, rx83_pos, $I10)
-  rxscan86_done:
+    set rx82_pos, $P10
+    ge rx82_pos, rx82_eos, rxscan85_done
+  rxscan85_scan:
+    set_addr $I10, rxscan85_loop
+    rx82_cur."!mark_push"(0, rx82_pos, $I10)
+  rxscan85_done:
 .annotate 'line', 29
   # rx pass
-    rx83_cur."!cursor_pass"(rx83_pos, "nullterm")
-    rx83_cur."!cursor_debug"("PASS  ", "nullterm", " at pos=", rx83_pos)
-    .return (rx83_cur)
-  rx83_fail:
+    rx82_cur."!cursor_pass"(rx82_pos, "nullterm")
+    rx82_cur."!cursor_debug"("PASS  ", "nullterm", " at pos=", rx82_pos)
+    .return (rx82_cur)
+  rx82_restart:
 .annotate 'line', 5
-    (rx83_rep, rx83_pos, $I10, $P10) = rx83_cur."!mark_fail"(0)
-    lt rx83_pos, -1, rx83_done
-    eq rx83_pos, -1, rx83_fail
+    rx82_cur."!cursor_debug"("NEXT ", "nullterm")
+  rx82_fail:
+    (rx82_rep, rx82_pos, $I10, $P10) = rx82_cur."!mark_fail"(0)
+    lt rx82_pos, -1, rx82_done
+    eq rx82_pos, -1, rx82_fail
     jump $I10
-  rx83_done:
-    rx83_cur."!cursor_fail"()
-    rx83_cur."!cursor_debug"("FAIL  ", "nullterm")
-    .return (rx83_cur)
+  rx82_done:
+    rx82_cur."!cursor_fail"()
+    rx82_cur."!cursor_debug"("FAIL  ", "nullterm")
+    .return (rx82_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm"  :subid("37_1277356884.2847") :method
+.sub "!PREFIX__nullterm"  :subid("37_1280467467.13603") :method
 .annotate 'line', 5
-    new $P85, "ResizablePMCArray"
-    push $P85, ""
-    .return ($P85)
+    new $P84, "ResizablePMCArray"
+    push $P84, ""
+    .return ($P84)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm_alt"  :subid("38_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "nullterm_alt"  :subid("38_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 5
-    .local string rx88_tgt
-    .local int rx88_pos
-    .local int rx88_off
-    .local int rx88_eos
-    .local int rx88_rep
-    .local pmc rx88_cur
-    (rx88_cur, rx88_pos, rx88_tgt) = self."!cursor_start"()
-    rx88_cur."!cursor_debug"("START ", "nullterm_alt")
-    .lex unicode:"$\x{a2}", rx88_cur
+    .local string rx87_tgt
+    .local int rx87_pos
+    .local int rx87_off
+    .local int rx87_eos
+    .local int rx87_rep
+    .local pmc rx87_cur
+    (rx87_cur, rx87_pos, rx87_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx87_cur
     .local pmc match
     .lex "$/", match
-    length rx88_eos, rx88_tgt
-    gt rx88_pos, rx88_eos, rx88_done
-    set rx88_off, 0
-    lt rx88_pos, 2, rx88_start
-    sub rx88_off, rx88_pos, 1
-    substr rx88_tgt, rx88_tgt, rx88_off
-  rx88_start:
+    length rx87_eos, rx87_tgt
+    gt rx87_pos, rx87_eos, rx87_done
+    set rx87_off, 0
+    lt rx87_pos, 2, rx87_start
+    sub rx87_off, rx87_pos, 1
+    substr rx87_tgt, rx87_tgt, rx87_off
+  rx87_start:
+    eq $I10, 1, rx87_restart
+    rx87_cur."!cursor_debug"("START ", "nullterm_alt")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan92_done
-    goto rxscan92_scan
-  rxscan92_loop:
-    ($P10) = rx88_cur."from"()
+    ne $I10, -1, rxscan91_done
+    goto rxscan91_scan
+  rxscan91_loop:
+    ($P10) = rx87_cur."from"()
     inc $P10
-    set rx88_pos, $P10
-    ge rx88_pos, rx88_eos, rxscan92_done
-  rxscan92_scan:
-    set_addr $I10, rxscan92_loop
-    rx88_cur."!mark_push"(0, rx88_pos, $I10)
-  rxscan92_done:
+    set rx87_pos, $P10
+    ge rx87_pos, rx87_eos, rxscan91_done
+  rxscan91_scan:
+    set_addr $I10, rxscan91_loop
+    rx87_cur."!mark_push"(0, rx87_pos, $I10)
+  rxscan91_done:
 .annotate 'line', 30
   # rx subrule "nullterm" subtype=capture negate=
-    rx88_cur."!cursor_pos"(rx88_pos)
-    $P10 = rx88_cur."nullterm"()
-    unless $P10, rx88_fail
-    rx88_cur."!mark_push"(0, -1, 0, $P10)
+    rx87_cur."!cursor_pos"(rx87_pos)
+    $P10 = rx87_cur."nullterm"()
+    unless $P10, rx87_fail
+    rx87_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("term")
-    rx88_pos = $P10."pos"()
+    rx87_pos = $P10."pos"()
   # rx pass
-    rx88_cur."!cursor_pass"(rx88_pos, "nullterm_alt")
-    rx88_cur."!cursor_debug"("PASS  ", "nullterm_alt", " at pos=", rx88_pos)
-    .return (rx88_cur)
-  rx88_fail:
+    rx87_cur."!cursor_pass"(rx87_pos, "nullterm_alt")
+    rx87_cur."!cursor_debug"("PASS  ", "nullterm_alt", " at pos=", rx87_pos)
+    .return (rx87_cur)
+  rx87_restart:
 .annotate 'line', 5
-    (rx88_rep, rx88_pos, $I10, $P10) = rx88_cur."!mark_fail"(0)
-    lt rx88_pos, -1, rx88_done
-    eq rx88_pos, -1, rx88_fail
+    rx87_cur."!cursor_debug"("NEXT ", "nullterm_alt")
+  rx87_fail:
+    (rx87_rep, rx87_pos, $I10, $P10) = rx87_cur."!mark_fail"(0)
+    lt rx87_pos, -1, rx87_done
+    eq rx87_pos, -1, rx87_fail
     jump $I10
-  rx88_done:
-    rx88_cur."!cursor_fail"()
-    rx88_cur."!cursor_debug"("FAIL  ", "nullterm_alt")
-    .return (rx88_cur)
+  rx87_done:
+    rx87_cur."!cursor_fail"()
+    rx87_cur."!cursor_debug"("FAIL  ", "nullterm_alt")
+    .return (rx87_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt"  :subid("39_1277356884.2847") :method
+.sub "!PREFIX__nullterm_alt"  :subid("39_1280467467.13603") :method
 .annotate 'line', 5
-    $P90 = self."!PREFIX__!subrule"("nullterm", "")
-    new $P91, "ResizablePMCArray"
-    push $P91, $P90
-    .return ($P91)
+    $P89 = self."!PREFIX__!subrule"("nullterm", "")
+    new $P90, "ResizablePMCArray"
+    push $P90, $P89
+    .return ($P90)
 .end
 
 
 .namespace ["HLL";"Grammar"]
 .include "except_types.pasm"
-.sub "nulltermish"  :subid("40_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "nulltermish"  :subid("40_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    new $P95, 'ExceptionHandler'
-    set_addr $P95, control_94
-    $P95."handle_types"(.CONTROL_RETURN)
-    push_eh $P95
-    .lex "self", self
-    find_lex $P98, "self"
-    $P99 = $P98."termish"()
-    unless $P99, unless_97
-    set $P96, $P99
-    goto unless_97_end
-  unless_97:
-    find_lex $P100, "self"
-    $P101 = $P100."nullterm_alt"()
-    set $P96, $P101
-  unless_97_end:
-    .return ($P96)
-  control_94:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P102, exception, "payload"
-    .return ($P102)
+    new $P94, 'ExceptionHandler'
+    set_addr $P94, control_93
+    $P94."handle_types"(.CONTROL_RETURN)
+    push_eh $P94
+    .lex "self", self
+    find_lex $P97, "self"
+    $P98 = $P97."termish"()
+    unless $P98, unless_96
+    set $P95, $P98
+    goto unless_96_end
+  unless_96:
+    find_lex $P99, "self"
+    $P100 = $P99."nullterm_alt"()
+    set $P95, $P100
+  unless_96_end:
+    .return ($P95)
+  control_93:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P101, exception, "payload"
+    .return ($P101)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_delimited"  :subid("41_1277356884.2847") :method :outer("11_1277356884.2847")
-.annotate 'line', 33
-    .local string rx104_tgt
-    .local int rx104_pos
-    .local int rx104_off
-    .local int rx104_eos
-    .local int rx104_rep
-    .local pmc rx104_cur
-    (rx104_cur, rx104_pos, rx104_tgt) = self."!cursor_start"()
-    rx104_cur."!cursor_debug"("START ", "quote_delimited")
-    rx104_cur."!cursor_caparray"("quote_atom")
-    .lex unicode:"$\x{a2}", rx104_cur
+.sub "quote_delimited"  :subid("41_1280467467.13603") :method :outer("11_1280467467.13603")
+.annotate 'line', 33
+    .local string rx103_tgt
+    .local int rx103_pos
+    .local int rx103_off
+    .local int rx103_eos
+    .local int rx103_rep
+    .local pmc rx103_cur
+    (rx103_cur, rx103_pos, rx103_tgt, $I10) = self."!cursor_start"()
+    rx103_cur."!cursor_caparray"("quote_atom")
+    .lex unicode:"$\x{a2}", rx103_cur
     .local pmc match
     .lex "$/", match
-    length rx104_eos, rx104_tgt
-    gt rx104_pos, rx104_eos, rx104_done
-    set rx104_off, 0
-    lt rx104_pos, 2, rx104_start
-    sub rx104_off, rx104_pos, 1
-    substr rx104_tgt, rx104_tgt, rx104_off
-  rx104_start:
+    length rx103_eos, rx103_tgt
+    gt rx103_pos, rx103_eos, rx103_done
+    set rx103_off, 0
+    lt rx103_pos, 2, rx103_start
+    sub rx103_off, rx103_pos, 1
+    substr rx103_tgt, rx103_tgt, rx103_off
+  rx103_start:
+    eq $I10, 1, rx103_restart
+    rx103_cur."!cursor_debug"("START ", "quote_delimited")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan108_done
-    goto rxscan108_scan
-  rxscan108_loop:
-    ($P10) = rx104_cur."from"()
+    ne $I10, -1, rxscan107_done
+    goto rxscan107_scan
+  rxscan107_loop:
+    ($P10) = rx103_cur."from"()
     inc $P10
-    set rx104_pos, $P10
-    ge rx104_pos, rx104_eos, rxscan108_done
-  rxscan108_scan:
-    set_addr $I10, rxscan108_loop
-    rx104_cur."!mark_push"(0, rx104_pos, $I10)
-  rxscan108_done:
+    set rx103_pos, $P10
+    ge rx103_pos, rx103_eos, rxscan107_done
+  rxscan107_scan:
+    set_addr $I10, rxscan107_loop
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+  rxscan107_done:
 .annotate 'line', 37
   # rx subrule "starter" subtype=capture negate=
-    rx104_cur."!cursor_pos"(rx104_pos)
-    $P10 = rx104_cur."starter"()
-    unless $P10, rx104_fail
-    rx104_cur."!mark_push"(0, -1, 0, $P10)
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."starter"()
+    unless $P10, rx103_fail
+    rx103_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("starter")
-    rx104_pos = $P10."pos"()
-  # rx rxquantr109 ** 0..*
-    set_addr $I110, rxquantr109_done
-    rx104_cur."!mark_push"(0, rx104_pos, $I110)
-  rxquantr109_loop:
+    rx103_pos = $P10."pos"()
+  # rx rxquantr108 ** 0..*
+    set_addr $I10, rxquantr108_done
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+  rxquantr108_loop:
   # rx subrule "quote_atom" subtype=capture negate=
-    rx104_cur."!cursor_pos"(rx104_pos)
-    $P10 = rx104_cur."quote_atom"()
-    unless $P10, rx104_fail
-    rx104_cur."!mark_push"(0, -1, 0, $P10)
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."quote_atom"()
+    unless $P10, rx103_fail
+    goto rxsubrule109_pass
+  rxsubrule109_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx103_fail
+  rxsubrule109_pass:
+    set_addr $I10, rxsubrule109_back
+    rx103_cur."!mark_push"(0, rx103_pos, $I10, $P10)
     $P10."!cursor_names"("quote_atom")
-    rx104_pos = $P10."pos"()
-    (rx104_rep) = rx104_cur."!mark_commit"($I110)
-    rx104_cur."!mark_push"(rx104_rep, rx104_pos, $I110)
-    goto rxquantr109_loop
-  rxquantr109_done:
+    rx103_pos = $P10."pos"()
+    set_addr $I10, rxquantr108_done
+    (rx103_rep) = rx103_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr108_done
+    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I10)
+    goto rxquantr108_loop
+  rxquantr108_done:
   # rx subrule "stopper" subtype=capture negate=
-    rx104_cur."!cursor_pos"(rx104_pos)
-    $P10 = rx104_cur."stopper"()
-    unless $P10, rx104_fail
-    rx104_cur."!mark_push"(0, -1, 0, $P10)
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."stopper"()
+    unless $P10, rx103_fail
+    rx103_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("stopper")
-    rx104_pos = $P10."pos"()
+    rx103_pos = $P10."pos"()
 .annotate 'line', 36
   # rx pass
-    rx104_cur."!cursor_pass"(rx104_pos, "quote_delimited")
-    rx104_cur."!cursor_debug"("PASS  ", "quote_delimited", " at pos=", rx104_pos)
-    .return (rx104_cur)
-  rx104_fail:
-.annotate 'line', 33
-    (rx104_rep, rx104_pos, $I10, $P10) = rx104_cur."!mark_fail"(0)
-    lt rx104_pos, -1, rx104_done
-    eq rx104_pos, -1, rx104_fail
+    rx103_cur."!cursor_pass"(rx103_pos, "quote_delimited")
+    rx103_cur."!cursor_debug"("PASS  ", "quote_delimited", " at pos=", rx103_pos)
+    .return (rx103_cur)
+  rx103_restart:
+.annotate 'line', 33
+    rx103_cur."!cursor_debug"("NEXT ", "quote_delimited")
+  rx103_fail:
+    (rx103_rep, rx103_pos, $I10, $P10) = rx103_cur."!mark_fail"(0)
+    lt rx103_pos, -1, rx103_done
+    eq rx103_pos, -1, rx103_fail
     jump $I10
-  rx104_done:
-    rx104_cur."!cursor_fail"()
-    rx104_cur."!cursor_debug"("FAIL  ", "quote_delimited")
-    .return (rx104_cur)
+  rx103_done:
+    rx103_cur."!cursor_fail"()
+    rx103_cur."!cursor_debug"("FAIL  ", "quote_delimited")
+    .return (rx103_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited"  :subid("42_1277356884.2847") :method
+.sub "!PREFIX__quote_delimited"  :subid("42_1280467467.13603") :method
 .annotate 'line', 33
-    $P106 = self."!PREFIX__!subrule"("starter", "")
-    new $P107, "ResizablePMCArray"
-    push $P107, $P106
-    .return ($P107)
+    $P105 = self."!PREFIX__!subrule"("starter", "")
+    new $P106, "ResizablePMCArray"
+    push $P106, $P105
+    .return ($P106)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_atom"  :subid("43_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "quote_atom"  :subid("43_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx112_tgt
-    .local int rx112_pos
-    .local int rx112_off
-    .local int rx112_eos
-    .local int rx112_rep
-    .local pmc rx112_cur
-    (rx112_cur, rx112_pos, rx112_tgt) = self."!cursor_start"()
-    rx112_cur."!cursor_debug"("START ", "quote_atom")
-    .lex unicode:"$\x{a2}", rx112_cur
+    .local string rx111_tgt
+    .local int rx111_pos
+    .local int rx111_off
+    .local int rx111_eos
+    .local int rx111_rep
+    .local pmc rx111_cur
+    (rx111_cur, rx111_pos, rx111_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx111_cur
     .local pmc match
     .lex "$/", match
-    length rx112_eos, rx112_tgt
-    gt rx112_pos, rx112_eos, rx112_done
-    set rx112_off, 0
-    lt rx112_pos, 2, rx112_start
-    sub rx112_off, rx112_pos, 1
-    substr rx112_tgt, rx112_tgt, rx112_off
-  rx112_start:
+    length rx111_eos, rx111_tgt
+    gt rx111_pos, rx111_eos, rx111_done
+    set rx111_off, 0
+    lt rx111_pos, 2, rx111_start
+    sub rx111_off, rx111_pos, 1
+    substr rx111_tgt, rx111_tgt, rx111_off
+  rx111_start:
+    eq $I10, 1, rx111_restart
+    rx111_cur."!cursor_debug"("START ", "quote_atom")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan115_done
-    goto rxscan115_scan
-  rxscan115_loop:
-    ($P10) = rx112_cur."from"()
+    ne $I10, -1, rxscan114_done
+    goto rxscan114_scan
+  rxscan114_loop:
+    ($P10) = rx111_cur."from"()
     inc $P10
-    set rx112_pos, $P10
-    ge rx112_pos, rx112_eos, rxscan115_done
-  rxscan115_scan:
-    set_addr $I10, rxscan115_loop
-    rx112_cur."!mark_push"(0, rx112_pos, $I10)
-  rxscan115_done:
+    set rx111_pos, $P10
+    ge rx111_pos, rx111_eos, rxscan114_done
+  rxscan114_scan:
+    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
-    rx112_cur."!cursor_pos"(rx112_pos)
-    $P10 = rx112_cur."stopper"()
-    if $P10, rx112_fail
-  alt116_0:
+    rx111_cur."!cursor_pos"(rx111_pos)
+    $P10 = rx111_cur."stopper"()
+    if $P10, rx111_fail
+  alt115_0:
 .annotate 'line', 42
-    set_addr $I10, alt116_1
-    rx112_cur."!mark_push"(0, rx112_pos, $I10)
+    set_addr $I10, alt115_1
+    rx111_cur."!mark_push"(0, rx111_pos, $I10)
 .annotate 'line', 43
   # rx subrule "quote_escape" subtype=capture negate=
-    rx112_cur."!cursor_pos"(rx112_pos)
-    $P10 = rx112_cur."quote_escape"()
-    unless $P10, rx112_fail
-    rx112_cur."!mark_push"(0, -1, 0, $P10)
+    rx111_cur."!cursor_pos"(rx111_pos)
+    $P10 = rx111_cur."quote_escape"()
+    unless $P10, rx111_fail
+    rx111_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_escape")
-    rx112_pos = $P10."pos"()
-    goto alt116_end
-  alt116_1:
+    rx111_pos = $P10."pos"()
+    goto alt115_end
+  alt115_1:
 .annotate 'line', 44
-  # rx rxquantr117 ** 1..*
-    set_addr $I120, rxquantr117_done
-    rx112_cur."!mark_push"(0, -1, $I120)
-  rxquantr117_loop:
+  # rx rxquantr116 ** 1..*
+    set_addr $I10, rxquantr116_done
+    rx111_cur."!mark_push"(0, -1, $I10)
+  rxquantr116_loop:
   # rx subrule "stopper" subtype=zerowidth negate=1
-    rx112_cur."!cursor_pos"(rx112_pos)
-    $P10 = rx112_cur."stopper"()
-    if $P10, rx112_fail
+    rx111_cur."!cursor_pos"(rx111_pos)
+    $P10 = rx111_cur."stopper"()
+    if $P10, rx111_fail
   # rx subrule "quote_escape" subtype=zerowidth negate=1
-    rx112_cur."!cursor_pos"(rx112_pos)
-    $P10 = rx112_cur."quote_escape"()
-    if $P10, rx112_fail
+    rx111_cur."!cursor_pos"(rx111_pos)
+    $P10 = rx111_cur."quote_escape"()
+    if $P10, rx111_fail
   # rx charclass .
-    ge rx112_pos, rx112_eos, rx112_fail
-    inc rx112_pos
-    (rx112_rep) = rx112_cur."!mark_commit"($I120)
-    rx112_cur."!mark_push"(rx112_rep, rx112_pos, $I120)
-    goto rxquantr117_loop
-  rxquantr117_done:
-  alt116_end:
+    ge rx111_pos, rx111_eos, rx111_fail
+    inc rx111_pos
+    set_addr $I10, rxquantr116_done
+    (rx111_rep) = rx111_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr116_done
+    rx111_cur."!mark_push"(rx111_rep, rx111_pos, $I10)
+    goto rxquantr116_loop
+  rxquantr116_done:
+  alt115_end:
 .annotate 'line', 40
   # rx pass
-    rx112_cur."!cursor_pass"(rx112_pos, "quote_atom")
-    rx112_cur."!cursor_debug"("PASS  ", "quote_atom", " at pos=", rx112_pos)
-    .return (rx112_cur)
-  rx112_fail:
-.annotate 'line', 33
-    (rx112_rep, rx112_pos, $I10, $P10) = rx112_cur."!mark_fail"(0)
-    lt rx112_pos, -1, rx112_done
-    eq rx112_pos, -1, rx112_fail
+    rx111_cur."!cursor_pass"(rx111_pos, "quote_atom")
+    rx111_cur."!cursor_debug"("PASS  ", "quote_atom", " at pos=", rx111_pos)
+    .return (rx111_cur)
+  rx111_restart:
+.annotate 'line', 33
+    rx111_cur."!cursor_debug"("NEXT ", "quote_atom")
+  rx111_fail:
+    (rx111_rep, rx111_pos, $I10, $P10) = rx111_cur."!mark_fail"(0)
+    lt rx111_pos, -1, rx111_done
+    eq rx111_pos, -1, rx111_fail
     jump $I10
-  rx112_done:
-    rx112_cur."!cursor_fail"()
-    rx112_cur."!cursor_debug"("FAIL  ", "quote_atom")
-    .return (rx112_cur)
+  rx111_done:
+    rx111_cur."!cursor_fail"()
+    rx111_cur."!cursor_debug"("FAIL  ", "quote_atom")
+    .return (rx111_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom"  :subid("44_1277356884.2847") :method
+.sub "!PREFIX__quote_atom"  :subid("44_1280467467.13603") :method
 .annotate 'line', 33
-    new $P114, "ResizablePMCArray"
-    push $P114, ""
-    .return ($P114)
+    new $P113, "ResizablePMCArray"
+    push $P113, ""
+    .return ($P113)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decint"  :subid("45_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "decint"  :subid("45_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx122_tgt
-    .local int rx122_pos
-    .local int rx122_off
-    .local int rx122_eos
-    .local int rx122_rep
-    .local pmc rx122_cur
-    (rx122_cur, rx122_pos, rx122_tgt) = self."!cursor_start"()
-    rx122_cur."!cursor_debug"("START ", "decint")
-    .lex unicode:"$\x{a2}", rx122_cur
+    .local string rx120_tgt
+    .local int rx120_pos
+    .local int rx120_off
+    .local int rx120_eos
+    .local int rx120_rep
+    .local pmc rx120_cur
+    (rx120_cur, rx120_pos, rx120_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx120_cur
     .local pmc match
     .lex "$/", match
-    length rx122_eos, rx122_tgt
-    gt rx122_pos, rx122_eos, rx122_done
-    set rx122_off, 0
-    lt rx122_pos, 2, rx122_start
-    sub rx122_off, rx122_pos, 1
-    substr rx122_tgt, rx122_tgt, rx122_off
-  rx122_start:
+    length rx120_eos, rx120_tgt
+    gt rx120_pos, rx120_eos, rx120_done
+    set rx120_off, 0
+    lt rx120_pos, 2, rx120_start
+    sub rx120_off, rx120_pos, 1
+    substr rx120_tgt, rx120_tgt, rx120_off
+  rx120_start:
+    eq $I10, 1, rx120_restart
+    rx120_cur."!cursor_debug"("START ", "decint")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan125_done
-    goto rxscan125_scan
-  rxscan125_loop:
-    ($P10) = rx122_cur."from"()
+    ne $I10, -1, rxscan123_done
+    goto rxscan123_scan
+  rxscan123_loop:
+    ($P10) = rx120_cur."from"()
     inc $P10
-    set rx122_pos, $P10
-    ge rx122_pos, rx122_eos, rxscan125_done
-  rxscan125_scan:
-    set_addr $I10, rxscan125_loop
-    rx122_cur."!mark_push"(0, rx122_pos, $I10)
-  rxscan125_done:
+    set rx120_pos, $P10
+    ge rx120_pos, rx120_eos, rxscan123_done
+  rxscan123_scan:
+    set_addr $I10, rxscan123_loop
+    rx120_cur."!mark_push"(0, rx120_pos, $I10)
+  rxscan123_done:
 .annotate 'line', 48
-  # rx rxquantr126 ** 1..*
-    set_addr $I127, rxquantr126_done
-    rx122_cur."!mark_push"(0, -1, $I127)
-  rxquantr126_loop:
+  # rx rxquantr124 ** 1..*
+    set_addr $I10, rxquantr124_done
+    rx120_cur."!mark_push"(0, -1, $I10)
+  rxquantr124_loop:
   # rx charclass_q d r 1..-1
-    sub $I10, rx122_pos, rx122_off
-    find_not_cclass $I11, 8, rx122_tgt, $I10, rx122_eos
+    sub $I10, rx120_pos, rx120_off
+    find_not_cclass $I11, 8, rx120_tgt, $I10, rx120_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx122_fail
-    add rx122_pos, rx122_off, $I11
-    (rx122_rep) = rx122_cur."!mark_commit"($I127)
-    rx122_cur."!mark_push"(rx122_rep, rx122_pos, $I127)
+    lt $I11, $I12, rx120_fail
+    add rx120_pos, rx120_off, $I11
+    set_addr $I10, rxquantr124_done
+    (rx120_rep) = rx120_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr124_done
+    rx120_cur."!mark_push"(rx120_rep, rx120_pos, $I10)
   # rx literal  "_"
-    add $I11, rx122_pos, 1
-    gt $I11, rx122_eos, rx122_fail
-    sub $I11, rx122_pos, rx122_off
-    substr $S10, rx122_tgt, $I11, 1
-    ne $S10, "_", rx122_fail
-    add rx122_pos, 1
-    goto rxquantr126_loop
-  rxquantr126_done:
+    add $I11, rx120_pos, 1
+    gt $I11, rx120_eos, rx120_fail
+    sub $I11, rx120_pos, rx120_off
+    substr $S10, rx120_tgt, $I11, 1
+    ne $S10, "_", rx120_fail
+    add rx120_pos, 1
+    goto rxquantr124_loop
+  rxquantr124_done:
   # rx pass
-    rx122_cur."!cursor_pass"(rx122_pos, "decint")
-    rx122_cur."!cursor_debug"("PASS  ", "decint", " at pos=", rx122_pos)
-    .return (rx122_cur)
-  rx122_fail:
-.annotate 'line', 33
-    (rx122_rep, rx122_pos, $I10, $P10) = rx122_cur."!mark_fail"(0)
-    lt rx122_pos, -1, rx122_done
-    eq rx122_pos, -1, rx122_fail
+    rx120_cur."!cursor_pass"(rx120_pos, "decint")
+    rx120_cur."!cursor_debug"("PASS  ", "decint", " at pos=", rx120_pos)
+    .return (rx120_cur)
+  rx120_restart:
+.annotate 'line', 33
+    rx120_cur."!cursor_debug"("NEXT ", "decint")
+  rx120_fail:
+    (rx120_rep, rx120_pos, $I10, $P10) = rx120_cur."!mark_fail"(0)
+    lt rx120_pos, -1, rx120_done
+    eq rx120_pos, -1, rx120_fail
     jump $I10
-  rx122_done:
-    rx122_cur."!cursor_fail"()
-    rx122_cur."!cursor_debug"("FAIL  ", "decint")
-    .return (rx122_cur)
+  rx120_done:
+    rx120_cur."!cursor_fail"()
+    rx120_cur."!cursor_debug"("FAIL  ", "decint")
+    .return (rx120_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint"  :subid("46_1277356884.2847") :method
+.sub "!PREFIX__decint"  :subid("46_1280467467.13603") :method
 .annotate 'line', 33
-    new $P124, "ResizablePMCArray"
-    push $P124, ""
-    .return ($P124)
+    new $P122, "ResizablePMCArray"
+    push $P122, ""
+    .return ($P122)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decints"  :subid("47_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "decints"  :subid("47_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx129_tgt
-    .local int rx129_pos
-    .local int rx129_off
-    .local int rx129_eos
-    .local int rx129_rep
-    .local pmc rx129_cur
-    (rx129_cur, rx129_pos, rx129_tgt) = self."!cursor_start"()
-    rx129_cur."!cursor_debug"("START ", "decints")
-    rx129_cur."!cursor_caparray"("decint")
-    .lex unicode:"$\x{a2}", rx129_cur
+    .local string rx126_tgt
+    .local int rx126_pos
+    .local int rx126_off
+    .local int rx126_eos
+    .local int rx126_rep
+    .local pmc rx126_cur
+    (rx126_cur, rx126_pos, rx126_tgt, $I10) = self."!cursor_start"()
+    rx126_cur."!cursor_caparray"("decint")
+    .lex unicode:"$\x{a2}", rx126_cur
     .local pmc match
     .lex "$/", match
-    length rx129_eos, rx129_tgt
-    gt rx129_pos, rx129_eos, rx129_done
-    set rx129_off, 0
-    lt rx129_pos, 2, rx129_start
-    sub rx129_off, rx129_pos, 1
-    substr rx129_tgt, rx129_tgt, rx129_off
-  rx129_start:
+    length rx126_eos, rx126_tgt
+    gt rx126_pos, rx126_eos, rx126_done
+    set rx126_off, 0
+    lt rx126_pos, 2, rx126_start
+    sub rx126_off, rx126_pos, 1
+    substr rx126_tgt, rx126_tgt, rx126_off
+  rx126_start:
+    eq $I10, 1, rx126_restart
+    rx126_cur."!cursor_debug"("START ", "decints")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan132_done
-    goto rxscan132_scan
-  rxscan132_loop:
-    ($P10) = rx129_cur."from"()
+    ne $I10, -1, rxscan129_done
+    goto rxscan129_scan
+  rxscan129_loop:
+    ($P10) = rx126_cur."from"()
     inc $P10
-    set rx129_pos, $P10
-    ge rx129_pos, rx129_eos, rxscan132_done
-  rxscan132_scan:
-    set_addr $I10, rxscan132_loop
-    rx129_cur."!mark_push"(0, rx129_pos, $I10)
-  rxscan132_done:
+    set rx126_pos, $P10
+    ge rx126_pos, rx126_eos, rxscan129_done
+  rxscan129_scan:
+    set_addr $I10, rxscan129_loop
+    rx126_cur."!mark_push"(0, rx126_pos, $I10)
+  rxscan129_done:
 .annotate 'line', 49
-  # rx rxquantr133 ** 1..*
-    set_addr $I134, rxquantr133_done
-    rx129_cur."!mark_push"(0, -1, $I134)
-  rxquantr133_loop:
+  # rx rxquantr130 ** 1..*
+    set_addr $I10, rxquantr130_done
+    rx126_cur."!mark_push"(0, -1, $I10)
+  rxquantr130_loop:
   # rx subrule "ws" subtype=method negate=
-    rx129_cur."!cursor_pos"(rx129_pos)
-    $P10 = rx129_cur."ws"()
-    unless $P10, rx129_fail
-    rx129_pos = $P10."pos"()
+    rx126_cur."!cursor_pos"(rx126_pos)
+    $P10 = rx126_cur."ws"()
+    unless $P10, rx126_fail
+    rx126_pos = $P10."pos"()
   # rx subrule "decint" subtype=capture negate=
-    rx129_cur."!cursor_pos"(rx129_pos)
-    $P10 = rx129_cur."decint"()
-    unless $P10, rx129_fail
-    rx129_cur."!mark_push"(0, -1, 0, $P10)
+    rx126_cur."!cursor_pos"(rx126_pos)
+    $P10 = rx126_cur."decint"()
+    unless $P10, rx126_fail
+    rx126_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("decint")
-    rx129_pos = $P10."pos"()
+    rx126_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx129_cur."!cursor_pos"(rx129_pos)
-    $P10 = rx129_cur."ws"()
-    unless $P10, rx129_fail
-    rx129_pos = $P10."pos"()
-    (rx129_rep) = rx129_cur."!mark_commit"($I134)
-    rx129_cur."!mark_push"(rx129_rep, rx129_pos, $I134)
+    rx126_cur."!cursor_pos"(rx126_pos)
+    $P10 = rx126_cur."ws"()
+    unless $P10, rx126_fail
+    rx126_pos = $P10."pos"()
+    set_addr $I10, rxquantr130_done
+    (rx126_rep) = rx126_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr130_done
+    rx126_cur."!mark_push"(rx126_rep, rx126_pos, $I10)
   # rx literal  ","
-    add $I11, rx129_pos, 1
-    gt $I11, rx129_eos, rx129_fail
-    sub $I11, rx129_pos, rx129_off
-    substr $S10, rx129_tgt, $I11, 1
-    ne $S10, ",", rx129_fail
-    add rx129_pos, 1
-    goto rxquantr133_loop
-  rxquantr133_done:
+    add $I11, rx126_pos, 1
+    gt $I11, rx126_eos, rx126_fail
+    sub $I11, rx126_pos, rx126_off
+    substr $S10, rx126_tgt, $I11, 1
+    ne $S10, ",", rx126_fail
+    add rx126_pos, 1
+    goto rxquantr130_loop
+  rxquantr130_done:
   # rx pass
-    rx129_cur."!cursor_pass"(rx129_pos, "decints")
-    rx129_cur."!cursor_debug"("PASS  ", "decints", " at pos=", rx129_pos)
-    .return (rx129_cur)
-  rx129_fail:
-.annotate 'line', 33
-    (rx129_rep, rx129_pos, $I10, $P10) = rx129_cur."!mark_fail"(0)
-    lt rx129_pos, -1, rx129_done
-    eq rx129_pos, -1, rx129_fail
+    rx126_cur."!cursor_pass"(rx126_pos, "decints")
+    rx126_cur."!cursor_debug"("PASS  ", "decints", " at pos=", rx126_pos)
+    .return (rx126_cur)
+  rx126_restart:
+.annotate 'line', 33
+    rx126_cur."!cursor_debug"("NEXT ", "decints")
+  rx126_fail:
+    (rx126_rep, rx126_pos, $I10, $P10) = rx126_cur."!mark_fail"(0)
+    lt rx126_pos, -1, rx126_done
+    eq rx126_pos, -1, rx126_fail
     jump $I10
-  rx129_done:
-    rx129_cur."!cursor_fail"()
-    rx129_cur."!cursor_debug"("FAIL  ", "decints")
-    .return (rx129_cur)
+  rx126_done:
+    rx126_cur."!cursor_fail"()
+    rx126_cur."!cursor_debug"("FAIL  ", "decints")
+    .return (rx126_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decints"  :subid("48_1277356884.2847") :method
+.sub "!PREFIX__decints"  :subid("48_1280467467.13603") :method
 .annotate 'line', 33
-    new $P131, "ResizablePMCArray"
-    push $P131, ""
-    .return ($P131)
+    new $P128, "ResizablePMCArray"
+    push $P128, ""
+    .return ($P128)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexint"  :subid("49_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "hexint"  :subid("49_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx136_tgt
-    .local int rx136_pos
-    .local int rx136_off
-    .local int rx136_eos
-    .local int rx136_rep
-    .local pmc rx136_cur
-    (rx136_cur, rx136_pos, rx136_tgt) = self."!cursor_start"()
-    rx136_cur."!cursor_debug"("START ", "hexint")
-    .lex unicode:"$\x{a2}", rx136_cur
+    .local string rx132_tgt
+    .local int rx132_pos
+    .local int rx132_off
+    .local int rx132_eos
+    .local int rx132_rep
+    .local pmc rx132_cur
+    (rx132_cur, rx132_pos, rx132_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx132_cur
     .local pmc match
     .lex "$/", match
-    length rx136_eos, rx136_tgt
-    gt rx136_pos, rx136_eos, rx136_done
-    set rx136_off, 0
-    lt rx136_pos, 2, rx136_start
-    sub rx136_off, rx136_pos, 1
-    substr rx136_tgt, rx136_tgt, rx136_off
-  rx136_start:
+    length rx132_eos, rx132_tgt
+    gt rx132_pos, rx132_eos, rx132_done
+    set rx132_off, 0
+    lt rx132_pos, 2, rx132_start
+    sub rx132_off, rx132_pos, 1
+    substr rx132_tgt, rx132_tgt, rx132_off
+  rx132_start:
+    eq $I10, 1, rx132_restart
+    rx132_cur."!cursor_debug"("START ", "hexint")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan139_done
-    goto rxscan139_scan
-  rxscan139_loop:
-    ($P10) = rx136_cur."from"()
+    ne $I10, -1, rxscan135_done
+    goto rxscan135_scan
+  rxscan135_loop:
+    ($P10) = rx132_cur."from"()
     inc $P10
-    set rx136_pos, $P10
-    ge rx136_pos, rx136_eos, rxscan139_done
-  rxscan139_scan:
-    set_addr $I10, rxscan139_loop
-    rx136_cur."!mark_push"(0, rx136_pos, $I10)
-  rxscan139_done:
+    set rx132_pos, $P10
+    ge rx132_pos, rx132_eos, rxscan135_done
+  rxscan135_scan:
+    set_addr $I10, rxscan135_loop
+    rx132_cur."!mark_push"(0, rx132_pos, $I10)
+  rxscan135_done:
 .annotate 'line', 51
-  # rx rxquantr140 ** 1..*
-    set_addr $I143, rxquantr140_done
-    rx136_cur."!mark_push"(0, -1, $I143)
-  rxquantr140_loop:
-  # rx rxquantr141 ** 1..*
-    set_addr $I142, rxquantr141_done
-    rx136_cur."!mark_push"(0, -1, $I142)
-  rxquantr141_loop:
+  # rx rxquantr136 ** 1..*
+    set_addr $I10, rxquantr136_done
+    rx132_cur."!mark_push"(0, -1, $I10)
+  rxquantr136_loop:
+  # rx rxquantr137 ** 1..*
+    set_addr $I10, rxquantr137_done
+    rx132_cur."!mark_push"(0, -1, $I10)
+  rxquantr137_loop:
   # rx enumcharlist negate=0 
-    ge rx136_pos, rx136_eos, rx136_fail
-    sub $I10, rx136_pos, rx136_off
-    substr $S10, rx136_tgt, $I10, 1
+    ge rx132_pos, rx132_eos, rx132_fail
+    sub $I10, rx132_pos, rx132_off
+    substr $S10, rx132_tgt, $I10, 1
     index $I11, "0123456789abcdefABCDEF", $S10
-    lt $I11, 0, rx136_fail
-    inc rx136_pos
-    (rx136_rep) = rx136_cur."!mark_commit"($I142)
-    rx136_cur."!mark_push"(rx136_rep, rx136_pos, $I142)
-    goto rxquantr141_loop
-  rxquantr141_done:
-    (rx136_rep) = rx136_cur."!mark_commit"($I143)
-    rx136_cur."!mark_push"(rx136_rep, rx136_pos, $I143)
+    lt $I11, 0, rx132_fail
+    inc rx132_pos
+    set_addr $I10, rxquantr137_done
+    (rx132_rep) = rx132_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr137_done
+    rx132_cur."!mark_push"(rx132_rep, rx132_pos, $I10)
+    goto rxquantr137_loop
+  rxquantr137_done:
+    set_addr $I10, rxquantr136_done
+    (rx132_rep) = rx132_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr136_done
+    rx132_cur."!mark_push"(rx132_rep, rx132_pos, $I10)
   # rx literal  "_"
-    add $I11, rx136_pos, 1
-    gt $I11, rx136_eos, rx136_fail
-    sub $I11, rx136_pos, rx136_off
-    substr $S10, rx136_tgt, $I11, 1
-    ne $S10, "_", rx136_fail
-    add rx136_pos, 1
-    goto rxquantr140_loop
-  rxquantr140_done:
+    add $I11, rx132_pos, 1
+    gt $I11, rx132_eos, rx132_fail
+    sub $I11, rx132_pos, rx132_off
+    substr $S10, rx132_tgt, $I11, 1
+    ne $S10, "_", rx132_fail
+    add rx132_pos, 1
+    goto rxquantr136_loop
+  rxquantr136_done:
+  # rx pass
+    rx132_cur."!cursor_pass"(rx132_pos, "hexint")
+    rx132_cur."!cursor_debug"("PASS  ", "hexint", " at pos=", rx132_pos)
+    .return (rx132_cur)
+  rx132_restart:
+.annotate 'line', 33
+    rx132_cur."!cursor_debug"("NEXT ", "hexint")
+  rx132_fail:
+    (rx132_rep, rx132_pos, $I10, $P10) = rx132_cur."!mark_fail"(0)
+    lt rx132_pos, -1, rx132_done
+    eq rx132_pos, -1, rx132_fail
+    jump $I10
+  rx132_done:
+    rx132_cur."!cursor_fail"()
+    rx132_cur."!cursor_debug"("FAIL  ", "hexint")
+    .return (rx132_cur)
+    .return ()
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "!PREFIX__hexint"  :subid("50_1280467467.13603") :method
+.annotate 'line', 33
+    new $P134, "ResizablePMCArray"
+    push $P134, ""
+    .return ($P134)
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "hexints"  :subid("51_1280467467.13603") :method :outer("11_1280467467.13603")
+.annotate 'line', 33
+    .local string rx139_tgt
+    .local int rx139_pos
+    .local int rx139_off
+    .local int rx139_eos
+    .local int rx139_rep
+    .local pmc rx139_cur
+    (rx139_cur, rx139_pos, rx139_tgt, $I10) = self."!cursor_start"()
+    rx139_cur."!cursor_caparray"("hexint")
+    .lex unicode:"$\x{a2}", rx139_cur
+    .local pmc match
+    .lex "$/", match
+    length rx139_eos, rx139_tgt
+    gt rx139_pos, rx139_eos, rx139_done
+    set rx139_off, 0
+    lt rx139_pos, 2, rx139_start
+    sub rx139_off, rx139_pos, 1
+    substr rx139_tgt, rx139_tgt, rx139_off
+  rx139_start:
+    eq $I10, 1, rx139_restart
+    rx139_cur."!cursor_debug"("START ", "hexints")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan142_done
+    goto rxscan142_scan
+  rxscan142_loop:
+    ($P10) = rx139_cur."from"()
+    inc $P10
+    set rx139_pos, $P10
+    ge rx139_pos, rx139_eos, rxscan142_done
+  rxscan142_scan:
+    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)
+  rxquantr143_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx139_cur."!cursor_pos"(rx139_pos)
+    $P10 = rx139_cur."ws"()
+    unless $P10, rx139_fail
+    rx139_pos = $P10."pos"()
+  # rx subrule "hexint" subtype=capture negate=
+    rx139_cur."!cursor_pos"(rx139_pos)
+    $P10 = rx139_cur."hexint"()
+    unless $P10, rx139_fail
+    rx139_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("hexint")
+    rx139_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx139_cur."!cursor_pos"(rx139_pos)
+    $P10 = rx139_cur."ws"()
+    unless $P10, rx139_fail
+    rx139_pos = $P10."pos"()
+    set_addr $I10, rxquantr143_done
+    (rx139_rep) = rx139_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr143_done
+    rx139_cur."!mark_push"(rx139_rep, rx139_pos, $I10)
+  # rx literal  ","
+    add $I11, rx139_pos, 1
+    gt $I11, rx139_eos, rx139_fail
+    sub $I11, rx139_pos, rx139_off
+    substr $S10, rx139_tgt, $I11, 1
+    ne $S10, ",", rx139_fail
+    add rx139_pos, 1
+    goto rxquantr143_loop
+  rxquantr143_done:
   # rx pass
-    rx136_cur."!cursor_pass"(rx136_pos, "hexint")
-    rx136_cur."!cursor_debug"("PASS  ", "hexint", " at pos=", rx136_pos)
-    .return (rx136_cur)
-  rx136_fail:
-.annotate 'line', 33
-    (rx136_rep, rx136_pos, $I10, $P10) = rx136_cur."!mark_fail"(0)
-    lt rx136_pos, -1, rx136_done
-    eq rx136_pos, -1, rx136_fail
+    rx139_cur."!cursor_pass"(rx139_pos, "hexints")
+    rx139_cur."!cursor_debug"("PASS  ", "hexints", " at pos=", rx139_pos)
+    .return (rx139_cur)
+  rx139_restart:
+.annotate 'line', 33
+    rx139_cur."!cursor_debug"("NEXT ", "hexints")
+  rx139_fail:
+    (rx139_rep, rx139_pos, $I10, $P10) = rx139_cur."!mark_fail"(0)
+    lt rx139_pos, -1, rx139_done
+    eq rx139_pos, -1, rx139_fail
     jump $I10
-  rx136_done:
-    rx136_cur."!cursor_fail"()
-    rx136_cur."!cursor_debug"("FAIL  ", "hexint")
-    .return (rx136_cur)
+  rx139_done:
+    rx139_cur."!cursor_fail"()
+    rx139_cur."!cursor_debug"("FAIL  ", "hexints")
+    .return (rx139_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint"  :subid("50_1277356884.2847") :method
+.sub "!PREFIX__hexints"  :subid("52_1280467467.13603") :method
 .annotate 'line', 33
-    new $P138, "ResizablePMCArray"
-    push $P138, ""
-    .return ($P138)
+    new $P141, "ResizablePMCArray"
+    push $P141, ""
+    .return ($P141)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexints"  :subid("51_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "octint"  :subid("53_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
     .local string rx145_tgt
     .local int rx145_pos
@@ -2249,9 +2423,7 @@
     .local int rx145_eos
     .local int rx145_rep
     .local pmc rx145_cur
-    (rx145_cur, rx145_pos, rx145_tgt) = self."!cursor_start"()
-    rx145_cur."!cursor_debug"("START ", "hexints")
-    rx145_cur."!cursor_caparray"("hexint")
+    (rx145_cur, rx145_pos, rx145_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx145_cur
     .local pmc match
     .lex "$/", match
@@ -2262,6 +2434,8 @@
     sub rx145_off, rx145_pos, 1
     substr rx145_tgt, rx145_tgt, rx145_off
   rx145_start:
+    eq $I10, 1, rx145_restart
+    rx145_cur."!cursor_debug"("START ", "octint")
     $I10 = self.'from'()
     ne $I10, -1, rxscan148_done
     goto rxscan148_scan
@@ -2274,59 +2448,63 @@
     set_addr $I10, rxscan148_loop
     rx145_cur."!mark_push"(0, rx145_pos, $I10)
   rxscan148_done:
-.annotate 'line', 52
+.annotate 'line', 54
   # rx rxquantr149 ** 1..*
-    set_addr $I150, rxquantr149_done
-    rx145_cur."!mark_push"(0, -1, $I150)
+    set_addr $I10, rxquantr149_done
+    rx145_cur."!mark_push"(0, -1, $I10)
   rxquantr149_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx145_cur."!cursor_pos"(rx145_pos)
-    $P10 = rx145_cur."ws"()
-    unless $P10, rx145_fail
-    rx145_pos = $P10."pos"()
-  # rx subrule "hexint" subtype=capture negate=
-    rx145_cur."!cursor_pos"(rx145_pos)
-    $P10 = rx145_cur."hexint"()
-    unless $P10, rx145_fail
-    rx145_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("hexint")
-    rx145_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx145_cur."!cursor_pos"(rx145_pos)
-    $P10 = rx145_cur."ws"()
-    unless $P10, rx145_fail
-    rx145_pos = $P10."pos"()
-    (rx145_rep) = rx145_cur."!mark_commit"($I150)
-    rx145_cur."!mark_push"(rx145_rep, rx145_pos, $I150)
-  # rx literal  ","
+  # rx rxquantr150 ** 1..*
+    set_addr $I10, rxquantr150_done
+    rx145_cur."!mark_push"(0, -1, $I10)
+  rxquantr150_loop:
+  # rx enumcharlist negate=0 
+    ge rx145_pos, rx145_eos, rx145_fail
+    sub $I10, rx145_pos, rx145_off
+    substr $S10, rx145_tgt, $I10, 1
+    index $I11, "01234567", $S10
+    lt $I11, 0, rx145_fail
+    inc rx145_pos
+    set_addr $I10, rxquantr150_done
+    (rx145_rep) = rx145_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr150_done
+    rx145_cur."!mark_push"(rx145_rep, rx145_pos, $I10)
+    goto rxquantr150_loop
+  rxquantr150_done:
+    set_addr $I10, rxquantr149_done
+    (rx145_rep) = rx145_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr149_done
+    rx145_cur."!mark_push"(rx145_rep, rx145_pos, $I10)
+  # rx literal  "_"
     add $I11, rx145_pos, 1
     gt $I11, rx145_eos, rx145_fail
     sub $I11, rx145_pos, rx145_off
     substr $S10, rx145_tgt, $I11, 1
-    ne $S10, ",", rx145_fail
+    ne $S10, "_", rx145_fail
     add rx145_pos, 1
     goto rxquantr149_loop
   rxquantr149_done:
   # rx pass
-    rx145_cur."!cursor_pass"(rx145_pos, "hexints")
-    rx145_cur."!cursor_debug"("PASS  ", "hexints", " at pos=", rx145_pos)
+    rx145_cur."!cursor_pass"(rx145_pos, "octint")
+    rx145_cur."!cursor_debug"("PASS  ", "octint", " at pos=", rx145_pos)
     .return (rx145_cur)
-  rx145_fail:
+  rx145_restart:
 .annotate 'line', 33
+    rx145_cur."!cursor_debug"("NEXT ", "octint")
+  rx145_fail:
     (rx145_rep, rx145_pos, $I10, $P10) = rx145_cur."!mark_fail"(0)
     lt rx145_pos, -1, rx145_done
     eq rx145_pos, -1, rx145_fail
     jump $I10
   rx145_done:
     rx145_cur."!cursor_fail"()
-    rx145_cur."!cursor_debug"("FAIL  ", "hexints")
+    rx145_cur."!cursor_debug"("FAIL  ", "octint")
     .return (rx145_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints"  :subid("52_1277356884.2847") :method
+.sub "!PREFIX__octint"  :subid("54_1280467467.13603") :method
 .annotate 'line', 33
     new $P147, "ResizablePMCArray"
     push $P147, ""
@@ -2335,7 +2513,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octint"  :subid("53_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "octints"  :subid("55_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
     .local string rx152_tgt
     .local int rx152_pos
@@ -2343,8 +2521,8 @@
     .local int rx152_eos
     .local int rx152_rep
     .local pmc rx152_cur
-    (rx152_cur, rx152_pos, rx152_tgt) = self."!cursor_start"()
-    rx152_cur."!cursor_debug"("START ", "octint")
+    (rx152_cur, rx152_pos, rx152_tgt, $I10) = self."!cursor_start"()
+    rx152_cur."!cursor_caparray"("octint")
     .lex unicode:"$\x{a2}", rx152_cur
     .local pmc match
     .lex "$/", match
@@ -2355,6 +2533,8 @@
     sub rx152_off, rx152_pos, 1
     substr rx152_tgt, rx152_tgt, rx152_off
   rx152_start:
+    eq $I10, 1, rx152_restart
+    rx152_cur."!cursor_debug"("START ", "octints")
     $I10 = self.'from'()
     ne $I10, -1, rxscan155_done
     goto rxscan155_scan
@@ -2367,57 +2547,63 @@
     set_addr $I10, rxscan155_loop
     rx152_cur."!mark_push"(0, rx152_pos, $I10)
   rxscan155_done:
-.annotate 'line', 54
+.annotate 'line', 55
   # rx rxquantr156 ** 1..*
-    set_addr $I159, rxquantr156_done
-    rx152_cur."!mark_push"(0, -1, $I159)
+    set_addr $I10, rxquantr156_done
+    rx152_cur."!mark_push"(0, -1, $I10)
   rxquantr156_loop:
-  # rx rxquantr157 ** 1..*
-    set_addr $I158, rxquantr157_done
-    rx152_cur."!mark_push"(0, -1, $I158)
-  rxquantr157_loop:
-  # rx enumcharlist negate=0 
-    ge rx152_pos, rx152_eos, rx152_fail
-    sub $I10, rx152_pos, rx152_off
-    substr $S10, rx152_tgt, $I10, 1
-    index $I11, "01234567", $S10
-    lt $I11, 0, rx152_fail
-    inc rx152_pos
-    (rx152_rep) = rx152_cur."!mark_commit"($I158)
-    rx152_cur."!mark_push"(rx152_rep, rx152_pos, $I158)
-    goto rxquantr157_loop
-  rxquantr157_done:
-    (rx152_rep) = rx152_cur."!mark_commit"($I159)
-    rx152_cur."!mark_push"(rx152_rep, rx152_pos, $I159)
-  # rx literal  "_"
+  # rx subrule "ws" subtype=method negate=
+    rx152_cur."!cursor_pos"(rx152_pos)
+    $P10 = rx152_cur."ws"()
+    unless $P10, rx152_fail
+    rx152_pos = $P10."pos"()
+  # rx subrule "octint" subtype=capture negate=
+    rx152_cur."!cursor_pos"(rx152_pos)
+    $P10 = rx152_cur."octint"()
+    unless $P10, rx152_fail
+    rx152_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("octint")
+    rx152_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx152_cur."!cursor_pos"(rx152_pos)
+    $P10 = rx152_cur."ws"()
+    unless $P10, rx152_fail
+    rx152_pos = $P10."pos"()
+    set_addr $I10, rxquantr156_done
+    (rx152_rep) = rx152_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr156_done
+    rx152_cur."!mark_push"(rx152_rep, rx152_pos, $I10)
+  # rx literal  ","
     add $I11, rx152_pos, 1
     gt $I11, rx152_eos, rx152_fail
     sub $I11, rx152_pos, rx152_off
     substr $S10, rx152_tgt, $I11, 1
-    ne $S10, "_", rx152_fail
+    ne $S10, ",", rx152_fail
     add rx152_pos, 1
     goto rxquantr156_loop
   rxquantr156_done:
   # rx pass
-    rx152_cur."!cursor_pass"(rx152_pos, "octint")
-    rx152_cur."!cursor_debug"("PASS  ", "octint", " at pos=", rx152_pos)
+    rx152_cur."!cursor_pass"(rx152_pos, "octints")
+    rx152_cur."!cursor_debug"("PASS  ", "octints", " at pos=", rx152_pos)
     .return (rx152_cur)
-  rx152_fail:
+  rx152_restart:
 .annotate 'line', 33
+    rx152_cur."!cursor_debug"("NEXT ", "octints")
+  rx152_fail:
     (rx152_rep, rx152_pos, $I10, $P10) = rx152_cur."!mark_fail"(0)
     lt rx152_pos, -1, rx152_done
     eq rx152_pos, -1, rx152_fail
     jump $I10
   rx152_done:
     rx152_cur."!cursor_fail"()
-    rx152_cur."!cursor_debug"("FAIL  ", "octint")
+    rx152_cur."!cursor_debug"("FAIL  ", "octints")
     .return (rx152_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint"  :subid("54_1277356884.2847") :method
+.sub "!PREFIX__octints"  :subid("56_1280467467.13603") :method
 .annotate 'line', 33
     new $P154, "ResizablePMCArray"
     push $P154, ""
@@ -2426,2477 +2612,2477 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octints"  :subid("55_1277356884.2847") :method :outer("11_1277356884.2847")
-.annotate 'line', 33
-    .local string rx161_tgt
-    .local int rx161_pos
-    .local int rx161_off
-    .local int rx161_eos
-    .local int rx161_rep
-    .local pmc rx161_cur
-    (rx161_cur, rx161_pos, rx161_tgt) = self."!cursor_start"()
-    rx161_cur."!cursor_debug"("START ", "octints")
-    rx161_cur."!cursor_caparray"("octint")
-    .lex unicode:"$\x{a2}", rx161_cur
-    .local pmc match
-    .lex "$/", match
-    length rx161_eos, rx161_tgt
-    gt rx161_pos, rx161_eos, rx161_done
-    set rx161_off, 0
-    lt rx161_pos, 2, rx161_start
-    sub rx161_off, rx161_pos, 1
-    substr rx161_tgt, rx161_tgt, rx161_off
-  rx161_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan164_done
-    goto rxscan164_scan
-  rxscan164_loop:
-    ($P10) = rx161_cur."from"()
-    inc $P10
-    set rx161_pos, $P10
-    ge rx161_pos, rx161_eos, rxscan164_done
-  rxscan164_scan:
-    set_addr $I10, rxscan164_loop
-    rx161_cur."!mark_push"(0, rx161_pos, $I10)
-  rxscan164_done:
-.annotate 'line', 55
-  # rx rxquantr165 ** 1..*
-    set_addr $I166, rxquantr165_done
-    rx161_cur."!mark_push"(0, -1, $I166)
-  rxquantr165_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx161_cur."!cursor_pos"(rx161_pos)
-    $P10 = rx161_cur."ws"()
-    unless $P10, rx161_fail
-    rx161_pos = $P10."pos"()
-  # rx subrule "octint" subtype=capture negate=
-    rx161_cur."!cursor_pos"(rx161_pos)
-    $P10 = rx161_cur."octint"()
-    unless $P10, rx161_fail
-    rx161_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("octint")
-    rx161_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx161_cur."!cursor_pos"(rx161_pos)
-    $P10 = rx161_cur."ws"()
-    unless $P10, rx161_fail
-    rx161_pos = $P10."pos"()
-    (rx161_rep) = rx161_cur."!mark_commit"($I166)
-    rx161_cur."!mark_push"(rx161_rep, rx161_pos, $I166)
-  # rx literal  ","
-    add $I11, rx161_pos, 1
-    gt $I11, rx161_eos, rx161_fail
-    sub $I11, rx161_pos, rx161_off
-    substr $S10, rx161_tgt, $I11, 1
-    ne $S10, ",", rx161_fail
-    add rx161_pos, 1
-    goto rxquantr165_loop
-  rxquantr165_done:
-  # rx pass
-    rx161_cur."!cursor_pass"(rx161_pos, "octints")
-    rx161_cur."!cursor_debug"("PASS  ", "octints", " at pos=", rx161_pos)
-    .return (rx161_cur)
-  rx161_fail:
-.annotate 'line', 33
-    (rx161_rep, rx161_pos, $I10, $P10) = rx161_cur."!mark_fail"(0)
-    lt rx161_pos, -1, rx161_done
-    eq rx161_pos, -1, rx161_fail
-    jump $I10
-  rx161_done:
-    rx161_cur."!cursor_fail"()
-    rx161_cur."!cursor_debug"("FAIL  ", "octints")
-    .return (rx161_cur)
-    .return ()
-.end
-
-
-.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints"  :subid("56_1277356884.2847") :method
-.annotate 'line', 33
-    new $P163, "ResizablePMCArray"
-    push $P163, ""
-    .return ($P163)
-.end
-
-
-.namespace ["HLL";"Grammar"]
-.sub "binint"  :subid("57_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "binint"  :subid("57_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx168_tgt
-    .local int rx168_pos
-    .local int rx168_off
-    .local int rx168_eos
-    .local int rx168_rep
-    .local pmc rx168_cur
-    (rx168_cur, rx168_pos, rx168_tgt) = self."!cursor_start"()
-    rx168_cur."!cursor_debug"("START ", "binint")
-    .lex unicode:"$\x{a2}", rx168_cur
+    .local string rx158_tgt
+    .local int rx158_pos
+    .local int rx158_off
+    .local int rx158_eos
+    .local int rx158_rep
+    .local pmc rx158_cur
+    (rx158_cur, rx158_pos, rx158_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx158_cur
     .local pmc match
     .lex "$/", match
-    length rx168_eos, rx168_tgt
-    gt rx168_pos, rx168_eos, rx168_done
-    set rx168_off, 0
-    lt rx168_pos, 2, rx168_start
-    sub rx168_off, rx168_pos, 1
-    substr rx168_tgt, rx168_tgt, rx168_off
-  rx168_start:
+    length rx158_eos, rx158_tgt
+    gt rx158_pos, rx158_eos, rx158_done
+    set rx158_off, 0
+    lt rx158_pos, 2, rx158_start
+    sub rx158_off, rx158_pos, 1
+    substr rx158_tgt, rx158_tgt, rx158_off
+  rx158_start:
+    eq $I10, 1, rx158_restart
+    rx158_cur."!cursor_debug"("START ", "binint")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan171_done
-    goto rxscan171_scan
-  rxscan171_loop:
-    ($P10) = rx168_cur."from"()
+    ne $I10, -1, rxscan161_done
+    goto rxscan161_scan
+  rxscan161_loop:
+    ($P10) = rx158_cur."from"()
     inc $P10
-    set rx168_pos, $P10
-    ge rx168_pos, rx168_eos, rxscan171_done
-  rxscan171_scan:
-    set_addr $I10, rxscan171_loop
-    rx168_cur."!mark_push"(0, rx168_pos, $I10)
-  rxscan171_done:
+    set rx158_pos, $P10
+    ge rx158_pos, rx158_eos, rxscan161_done
+  rxscan161_scan:
+    set_addr $I10, rxscan161_loop
+    rx158_cur."!mark_push"(0, rx158_pos, $I10)
+  rxscan161_done:
 .annotate 'line', 57
-  # rx rxquantr172 ** 1..*
-    set_addr $I175, rxquantr172_done
-    rx168_cur."!mark_push"(0, -1, $I175)
-  rxquantr172_loop:
-  # rx rxquantr173 ** 1..*
-    set_addr $I174, rxquantr173_done
-    rx168_cur."!mark_push"(0, -1, $I174)
-  rxquantr173_loop:
+  # rx rxquantr162 ** 1..*
+    set_addr $I10, rxquantr162_done
+    rx158_cur."!mark_push"(0, -1, $I10)
+  rxquantr162_loop:
+  # rx rxquantr163 ** 1..*
+    set_addr $I10, rxquantr163_done
+    rx158_cur."!mark_push"(0, -1, $I10)
+  rxquantr163_loop:
   # rx enumcharlist negate=0 
-    ge rx168_pos, rx168_eos, rx168_fail
-    sub $I10, rx168_pos, rx168_off
-    substr $S10, rx168_tgt, $I10, 1
+    ge rx158_pos, rx158_eos, rx158_fail
+    sub $I10, rx158_pos, rx158_off
+    substr $S10, rx158_tgt, $I10, 1
     index $I11, "01", $S10
-    lt $I11, 0, rx168_fail
-    inc rx168_pos
-    (rx168_rep) = rx168_cur."!mark_commit"($I174)
-    rx168_cur."!mark_push"(rx168_rep, rx168_pos, $I174)
-    goto rxquantr173_loop
-  rxquantr173_done:
-    (rx168_rep) = rx168_cur."!mark_commit"($I175)
-    rx168_cur."!mark_push"(rx168_rep, rx168_pos, $I175)
+    lt $I11, 0, rx158_fail
+    inc rx158_pos
+    set_addr $I10, rxquantr163_done
+    (rx158_rep) = rx158_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr163_done
+    rx158_cur."!mark_push"(rx158_rep, rx158_pos, $I10)
+    goto rxquantr163_loop
+  rxquantr163_done:
+    set_addr $I10, rxquantr162_done
+    (rx158_rep) = rx158_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr162_done
+    rx158_cur."!mark_push"(rx158_rep, rx158_pos, $I10)
   # rx literal  "_"
-    add $I11, rx168_pos, 1
-    gt $I11, rx168_eos, rx168_fail
-    sub $I11, rx168_pos, rx168_off
-    substr $S10, rx168_tgt, $I11, 1
-    ne $S10, "_", rx168_fail
-    add rx168_pos, 1
-    goto rxquantr172_loop
-  rxquantr172_done:
+    add $I11, rx158_pos, 1
+    gt $I11, rx158_eos, rx158_fail
+    sub $I11, rx158_pos, rx158_off
+    substr $S10, rx158_tgt, $I11, 1
+    ne $S10, "_", rx158_fail
+    add rx158_pos, 1
+    goto rxquantr162_loop
+  rxquantr162_done:
   # rx pass
-    rx168_cur."!cursor_pass"(rx168_pos, "binint")
-    rx168_cur."!cursor_debug"("PASS  ", "binint", " at pos=", rx168_pos)
-    .return (rx168_cur)
-  rx168_fail:
-.annotate 'line', 33
-    (rx168_rep, rx168_pos, $I10, $P10) = rx168_cur."!mark_fail"(0)
-    lt rx168_pos, -1, rx168_done
-    eq rx168_pos, -1, rx168_fail
+    rx158_cur."!cursor_pass"(rx158_pos, "binint")
+    rx158_cur."!cursor_debug"("PASS  ", "binint", " at pos=", rx158_pos)
+    .return (rx158_cur)
+  rx158_restart:
+.annotate 'line', 33
+    rx158_cur."!cursor_debug"("NEXT ", "binint")
+  rx158_fail:
+    (rx158_rep, rx158_pos, $I10, $P10) = rx158_cur."!mark_fail"(0)
+    lt rx158_pos, -1, rx158_done
+    eq rx158_pos, -1, rx158_fail
     jump $I10
-  rx168_done:
-    rx168_cur."!cursor_fail"()
-    rx168_cur."!cursor_debug"("FAIL  ", "binint")
-    .return (rx168_cur)
+  rx158_done:
+    rx158_cur."!cursor_fail"()
+    rx158_cur."!cursor_debug"("FAIL  ", "binint")
+    .return (rx158_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint"  :subid("58_1277356884.2847") :method
+.sub "!PREFIX__binint"  :subid("58_1280467467.13603") :method
 .annotate 'line', 33
-    new $P170, "ResizablePMCArray"
-    push $P170, ""
-    .return ($P170)
+    new $P160, "ResizablePMCArray"
+    push $P160, ""
+    .return ($P160)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binints"  :subid("59_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "binints"  :subid("59_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx177_tgt
-    .local int rx177_pos
-    .local int rx177_off
-    .local int rx177_eos
-    .local int rx177_rep
-    .local pmc rx177_cur
-    (rx177_cur, rx177_pos, rx177_tgt) = self."!cursor_start"()
-    rx177_cur."!cursor_debug"("START ", "binints")
-    rx177_cur."!cursor_caparray"("binint")
-    .lex unicode:"$\x{a2}", rx177_cur
+    .local string rx165_tgt
+    .local int rx165_pos
+    .local int rx165_off
+    .local int rx165_eos
+    .local int rx165_rep
+    .local pmc rx165_cur
+    (rx165_cur, rx165_pos, rx165_tgt, $I10) = self."!cursor_start"()
+    rx165_cur."!cursor_caparray"("binint")
+    .lex unicode:"$\x{a2}", rx165_cur
     .local pmc match
     .lex "$/", match
-    length rx177_eos, rx177_tgt
-    gt rx177_pos, rx177_eos, rx177_done
-    set rx177_off, 0
-    lt rx177_pos, 2, rx177_start
-    sub rx177_off, rx177_pos, 1
-    substr rx177_tgt, rx177_tgt, rx177_off
-  rx177_start:
+    length rx165_eos, rx165_tgt
+    gt rx165_pos, rx165_eos, rx165_done
+    set rx165_off, 0
+    lt rx165_pos, 2, rx165_start
+    sub rx165_off, rx165_pos, 1
+    substr rx165_tgt, rx165_tgt, rx165_off
+  rx165_start:
+    eq $I10, 1, rx165_restart
+    rx165_cur."!cursor_debug"("START ", "binints")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan180_done
-    goto rxscan180_scan
-  rxscan180_loop:
-    ($P10) = rx177_cur."from"()
+    ne $I10, -1, rxscan168_done
+    goto rxscan168_scan
+  rxscan168_loop:
+    ($P10) = rx165_cur."from"()
     inc $P10
-    set rx177_pos, $P10
-    ge rx177_pos, rx177_eos, rxscan180_done
-  rxscan180_scan:
-    set_addr $I10, rxscan180_loop
-    rx177_cur."!mark_push"(0, rx177_pos, $I10)
-  rxscan180_done:
+    set rx165_pos, $P10
+    ge rx165_pos, rx165_eos, rxscan168_done
+  rxscan168_scan:
+    set_addr $I10, rxscan168_loop
+    rx165_cur."!mark_push"(0, rx165_pos, $I10)
+  rxscan168_done:
 .annotate 'line', 58
-  # rx rxquantr181 ** 1..*
-    set_addr $I182, rxquantr181_done
-    rx177_cur."!mark_push"(0, -1, $I182)
-  rxquantr181_loop:
+  # rx rxquantr169 ** 1..*
+    set_addr $I10, rxquantr169_done
+    rx165_cur."!mark_push"(0, -1, $I10)
+  rxquantr169_loop:
   # rx subrule "ws" subtype=method negate=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."ws"()
-    unless $P10, rx177_fail
-    rx177_pos = $P10."pos"()
+    rx165_cur."!cursor_pos"(rx165_pos)
+    $P10 = rx165_cur."ws"()
+    unless $P10, rx165_fail
+    rx165_pos = $P10."pos"()
   # rx subrule "binint" subtype=capture negate=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."binint"()
-    unless $P10, rx177_fail
-    rx177_cur."!mark_push"(0, -1, 0, $P10)
+    rx165_cur."!cursor_pos"(rx165_pos)
+    $P10 = rx165_cur."binint"()
+    unless $P10, rx165_fail
+    rx165_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("binint")
-    rx177_pos = $P10."pos"()
+    rx165_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."ws"()
-    unless $P10, rx177_fail
-    rx177_pos = $P10."pos"()
-    (rx177_rep) = rx177_cur."!mark_commit"($I182)
-    rx177_cur."!mark_push"(rx177_rep, rx177_pos, $I182)
+    rx165_cur."!cursor_pos"(rx165_pos)
+    $P10 = rx165_cur."ws"()
+    unless $P10, rx165_fail
+    rx165_pos = $P10."pos"()
+    set_addr $I10, rxquantr169_done
+    (rx165_rep) = rx165_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr169_done
+    rx165_cur."!mark_push"(rx165_rep, rx165_pos, $I10)
   # rx literal  ","
-    add $I11, rx177_pos, 1
-    gt $I11, rx177_eos, rx177_fail
-    sub $I11, rx177_pos, rx177_off
-    substr $S10, rx177_tgt, $I11, 1
-    ne $S10, ",", rx177_fail
-    add rx177_pos, 1
-    goto rxquantr181_loop
-  rxquantr181_done:
+    add $I11, rx165_pos, 1
+    gt $I11, rx165_eos, rx165_fail
+    sub $I11, rx165_pos, rx165_off
+    substr $S10, rx165_tgt, $I11, 1
+    ne $S10, ",", rx165_fail
+    add rx165_pos, 1
+    goto rxquantr169_loop
+  rxquantr169_done:
   # rx pass
-    rx177_cur."!cursor_pass"(rx177_pos, "binints")
-    rx177_cur."!cursor_debug"("PASS  ", "binints", " at pos=", rx177_pos)
-    .return (rx177_cur)
-  rx177_fail:
-.annotate 'line', 33
-    (rx177_rep, rx177_pos, $I10, $P10) = rx177_cur."!mark_fail"(0)
-    lt rx177_pos, -1, rx177_done
-    eq rx177_pos, -1, rx177_fail
+    rx165_cur."!cursor_pass"(rx165_pos, "binints")
+    rx165_cur."!cursor_debug"("PASS  ", "binints", " at pos=", rx165_pos)
+    .return (rx165_cur)
+  rx165_restart:
+.annotate 'line', 33
+    rx165_cur."!cursor_debug"("NEXT ", "binints")
+  rx165_fail:
+    (rx165_rep, rx165_pos, $I10, $P10) = rx165_cur."!mark_fail"(0)
+    lt rx165_pos, -1, rx165_done
+    eq rx165_pos, -1, rx165_fail
     jump $I10
-  rx177_done:
-    rx177_cur."!cursor_fail"()
-    rx177_cur."!cursor_debug"("FAIL  ", "binints")
-    .return (rx177_cur)
+  rx165_done:
+    rx165_cur."!cursor_fail"()
+    rx165_cur."!cursor_debug"("FAIL  ", "binints")
+    .return (rx165_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints"  :subid("60_1277356884.2847") :method
+.sub "!PREFIX__binints"  :subid("60_1280467467.13603") :method
 .annotate 'line', 33
-    new $P179, "ResizablePMCArray"
-    push $P179, ""
-    .return ($P179)
+    new $P167, "ResizablePMCArray"
+    push $P167, ""
+    .return ($P167)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "integer"  :subid("61_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "integer"  :subid("61_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx184_tgt
-    .local int rx184_pos
-    .local int rx184_off
-    .local int rx184_eos
-    .local int rx184_rep
-    .local pmc rx184_cur
-    (rx184_cur, rx184_pos, rx184_tgt) = self."!cursor_start"()
-    rx184_cur."!cursor_debug"("START ", "integer")
-    .lex unicode:"$\x{a2}", rx184_cur
+    .local string rx171_tgt
+    .local int rx171_pos
+    .local int rx171_off
+    .local int rx171_eos
+    .local int rx171_rep
+    .local pmc rx171_cur
+    (rx171_cur, rx171_pos, rx171_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx171_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:
+    length rx171_eos, rx171_tgt
+    gt rx171_pos, rx171_eos, rx171_done
+    set rx171_off, 0
+    lt rx171_pos, 2, rx171_start
+    sub rx171_off, rx171_pos, 1
+    substr rx171_tgt, rx171_tgt, rx171_off
+  rx171_start:
+    eq $I10, 1, rx171_restart
+    rx171_cur."!cursor_debug"("START ", "integer")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan192_done
-    goto rxscan192_scan
-  rxscan192_loop:
-    ($P10) = rx184_cur."from"()
+    ne $I10, -1, rxscan179_done
+    goto rxscan179_scan
+  rxscan179_loop:
+    ($P10) = rx171_cur."from"()
     inc $P10
-    set rx184_pos, $P10
-    ge rx184_pos, rx184_eos, rxscan192_done
-  rxscan192_scan:
-    set_addr $I10, rxscan192_loop
-    rx184_cur."!mark_push"(0, rx184_pos, $I10)
-  rxscan192_done:
-  alt193_0:
+    set rx171_pos, $P10
+    ge rx171_pos, rx171_eos, rxscan179_done
+  rxscan179_scan:
+    set_addr $I10, rxscan179_loop
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
+  rxscan179_done:
+  alt180_0:
 .annotate 'line', 61
-    set_addr $I10, alt193_1
-    rx184_cur."!mark_push"(0, rx184_pos, $I10)
+    set_addr $I10, alt180_1
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
 .annotate 'line', 62
   # rx literal  "0"
-    add $I11, rx184_pos, 1
-    gt $I11, rx184_eos, rx184_fail
-    sub $I11, rx184_pos, rx184_off
-    substr $S10, rx184_tgt, $I11, 1
-    ne $S10, "0", rx184_fail
-    add rx184_pos, 1
-  alt194_0:
-    set_addr $I10, alt194_1
-    rx184_cur."!mark_push"(0, rx184_pos, $I10)
+    add $I11, rx171_pos, 1
+    gt $I11, rx171_eos, rx171_fail
+    sub $I11, rx171_pos, rx171_off
+    substr $S10, rx171_tgt, $I11, 1
+    ne $S10, "0", rx171_fail
+    add rx171_pos, 1
+  alt181_0:
+    set_addr $I10, alt181_1
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
   # rx literal  "b"
-    add $I11, rx184_pos, 1
-    gt $I11, rx184_eos, rx184_fail
-    sub $I11, rx184_pos, rx184_off
-    substr $S10, rx184_tgt, $I11, 1
-    ne $S10, "b", rx184_fail
-    add rx184_pos, 1
+    add $I11, rx171_pos, 1
+    gt $I11, rx171_eos, rx171_fail
+    sub $I11, rx171_pos, rx171_off
+    substr $S10, rx171_tgt, $I11, 1
+    ne $S10, "b", rx171_fail
+    add rx171_pos, 1
   # rx subrule "binint" subtype=capture negate=
-    rx184_cur."!cursor_pos"(rx184_pos)
-    $P10 = rx184_cur."binint"()
-    unless $P10, rx184_fail
-    rx184_cur."!mark_push"(0, -1, 0, $P10)
+    rx171_cur."!cursor_pos"(rx171_pos)
+    $P10 = rx171_cur."binint"()
+    unless $P10, rx171_fail
+    rx171_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("VALUE=binint")
-    rx184_pos = $P10."pos"()
-    goto alt194_end
-  alt194_1:
-    set_addr $I10, alt194_2
-    rx184_cur."!mark_push"(0, rx184_pos, $I10)
+    rx171_pos = $P10."pos"()
+    goto alt181_end
+  alt181_1:
+    set_addr $I10, alt181_2
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
 .annotate 'line', 63
   # rx literal  "o"
-    add $I11, rx184_pos, 1
-    gt $I11, rx184_eos, rx184_fail
-    sub $I11, rx184_pos, rx184_off
-    substr $S10, rx184_tgt, $I11, 1
-    ne $S10, "o", rx184_fail
-    add rx184_pos, 1
+    add $I11, rx171_pos, 1
+    gt $I11, rx171_eos, rx171_fail
+    sub $I11, rx171_pos, rx171_off
+    substr $S10, rx171_tgt, $I11, 1
+    ne $S10, "o", rx171_fail
+    add rx171_pos, 1
   # rx subrule "octint" subtype=capture negate=
-    rx184_cur."!cursor_pos"(rx184_pos)
-    $P10 = rx184_cur."octint"()
-    unless $P10, rx184_fail
-    rx184_cur."!mark_push"(0, -1, 0, $P10)
+    rx171_cur."!cursor_pos"(rx171_pos)
+    $P10 = rx171_cur."octint"()
+    unless $P10, rx171_fail
+    rx171_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("VALUE=octint")
-    rx184_pos = $P10."pos"()
-    goto alt194_end
-  alt194_2:
-    set_addr $I10, alt194_3
-    rx184_cur."!mark_push"(0, rx184_pos, $I10)
+    rx171_pos = $P10."pos"()
+    goto alt181_end
+  alt181_2:
+    set_addr $I10, alt181_3
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
 .annotate 'line', 64
   # rx literal  "x"
-    add $I11, rx184_pos, 1
-    gt $I11, rx184_eos, rx184_fail
-    sub $I11, rx184_pos, rx184_off
-    substr $S10, rx184_tgt, $I11, 1
-    ne $S10, "x", rx184_fail
-    add rx184_pos, 1
+    add $I11, rx171_pos, 1
+    gt $I11, rx171_eos, rx171_fail
+    sub $I11, rx171_pos, rx171_off
+    substr $S10, rx171_tgt, $I11, 1
+    ne $S10, "x", rx171_fail
+    add rx171_pos, 1
   # rx subrule "hexint" subtype=capture negate=
-    rx184_cur."!cursor_pos"(rx184_pos)
-    $P10 = rx184_cur."hexint"()
-    unless $P10, rx184_fail
-    rx184_cur."!mark_push"(0, -1, 0, $P10)
+    rx171_cur."!cursor_pos"(rx171_pos)
+    $P10 = rx171_cur."hexint"()
+    unless $P10, rx171_fail
+    rx171_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("VALUE=hexint")
-    rx184_pos = $P10."pos"()
-    goto alt194_end
-  alt194_3:
+    rx171_pos = $P10."pos"()
+    goto alt181_end
+  alt181_3:
 .annotate 'line', 65
   # rx literal  "d"
-    add $I11, rx184_pos, 1
-    gt $I11, rx184_eos, rx184_fail
-    sub $I11, rx184_pos, rx184_off
-    substr $S10, rx184_tgt, $I11, 1
-    ne $S10, "d", rx184_fail
-    add rx184_pos, 1
+    add $I11, rx171_pos, 1
+    gt $I11, rx171_eos, rx171_fail
+    sub $I11, rx171_pos, rx171_off
+    substr $S10, rx171_tgt, $I11, 1
+    ne $S10, "d", rx171_fail
+    add rx171_pos, 1
   # rx subrule "decint" subtype=capture negate=
-    rx184_cur."!cursor_pos"(rx184_pos)
-    $P10 = rx184_cur."decint"()
-    unless $P10, rx184_fail
-    rx184_cur."!mark_push"(0, -1, 0, $P10)
+    rx171_cur."!cursor_pos"(rx171_pos)
+    $P10 = rx171_cur."decint"()
+    unless $P10, rx171_fail
+    rx171_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("VALUE=decint")
-    rx184_pos = $P10."pos"()
-  alt194_end:
+    rx171_pos = $P10."pos"()
+  alt181_end:
 .annotate 'line', 62
-    goto alt193_end
-  alt193_1:
+    goto alt180_end
+  alt180_1:
 .annotate 'line', 67
   # rx subrule "decint" subtype=capture negate=
-    rx184_cur."!cursor_pos"(rx184_pos)
-    $P10 = rx184_cur."decint"()
-    unless $P10, rx184_fail
-    rx184_cur."!mark_push"(0, -1, 0, $P10)
+    rx171_cur."!cursor_pos"(rx171_pos)
+    $P10 = rx171_cur."decint"()
+    unless $P10, rx171_fail
+    rx171_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("VALUE=decint")
-    rx184_pos = $P10."pos"()
-  alt193_end:
+    rx171_pos = $P10."pos"()
+  alt180_end:
 .annotate 'line', 60
   # rx pass
-    rx184_cur."!cursor_pass"(rx184_pos, "integer")
-    rx184_cur."!cursor_debug"("PASS  ", "integer", " at pos=", rx184_pos)
-    .return (rx184_cur)
-  rx184_fail:
-.annotate 'line', 33
-    (rx184_rep, rx184_pos, $I10, $P10) = rx184_cur."!mark_fail"(0)
-    lt rx184_pos, -1, rx184_done
-    eq rx184_pos, -1, rx184_fail
+    rx171_cur."!cursor_pass"(rx171_pos, "integer")
+    rx171_cur."!cursor_debug"("PASS  ", "integer", " at pos=", rx171_pos)
+    .return (rx171_cur)
+  rx171_restart:
+.annotate 'line', 33
+    rx171_cur."!cursor_debug"("NEXT ", "integer")
+  rx171_fail:
+    (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0)
+    lt rx171_pos, -1, rx171_done
+    eq rx171_pos, -1, rx171_fail
     jump $I10
-  rx184_done:
-    rx184_cur."!cursor_fail"()
-    rx184_cur."!cursor_debug"("FAIL  ", "integer")
-    .return (rx184_cur)
+  rx171_done:
+    rx171_cur."!cursor_fail"()
+    rx171_cur."!cursor_debug"("FAIL  ", "integer")
+    .return (rx171_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer"  :subid("62_1277356884.2847") :method
+.sub "!PREFIX__integer"  :subid("62_1280467467.13603") :method
 .annotate 'line', 33
-    $P186 = self."!PREFIX__!subrule"("decint", "")
-    $P187 = self."!PREFIX__!subrule"("decint", "0d")
-    $P188 = self."!PREFIX__!subrule"("hexint", "0x")
-    $P189 = self."!PREFIX__!subrule"("octint", "0o")
-    $P190 = self."!PREFIX__!subrule"("binint", "0b")
-    new $P191, "ResizablePMCArray"
-    push $P191, $P186
-    push $P191, $P187
-    push $P191, $P188
-    push $P191, $P189
-    push $P191, $P190
-    .return ($P191)
+    $P173 = self."!PREFIX__!subrule"("decint", "")
+    $P174 = self."!PREFIX__!subrule"("decint", "0d")
+    $P175 = self."!PREFIX__!subrule"("hexint", "0x")
+    $P176 = self."!PREFIX__!subrule"("octint", "0o")
+    $P177 = self."!PREFIX__!subrule"("binint", "0b")
+    new $P178, "ResizablePMCArray"
+    push $P178, $P173
+    push $P178, $P174
+    push $P178, $P175
+    push $P178, $P176
+    push $P178, $P177
+    .return ($P178)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "dec_number"  :subid("63_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "dec_number"  :subid("63_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx196_tgt
-    .local int rx196_pos
-    .local int rx196_off
-    .local int rx196_eos
-    .local int rx196_rep
-    .local pmc rx196_cur
-    (rx196_cur, rx196_pos, rx196_tgt) = self."!cursor_start"()
-    rx196_cur."!cursor_debug"("START ", "dec_number")
-    rx196_cur."!cursor_caparray"("escale")
-    .lex unicode:"$\x{a2}", rx196_cur
+    .local string rx183_tgt
+    .local int rx183_pos
+    .local int rx183_off
+    .local int rx183_eos
+    .local int rx183_rep
+    .local pmc rx183_cur
+    (rx183_cur, rx183_pos, rx183_tgt, $I10) = self."!cursor_start"()
+    rx183_cur."!cursor_caparray"("escale")
+    .lex unicode:"$\x{a2}", rx183_cur
     .local pmc match
     .lex "$/", match
-    length rx196_eos, rx196_tgt
-    gt rx196_pos, rx196_eos, rx196_done
-    set rx196_off, 0
-    lt rx196_pos, 2, rx196_start
-    sub rx196_off, rx196_pos, 1
-    substr rx196_tgt, rx196_tgt, rx196_off
-  rx196_start:
+    length rx183_eos, rx183_tgt
+    gt rx183_pos, rx183_eos, rx183_done
+    set rx183_off, 0
+    lt rx183_pos, 2, rx183_start
+    sub rx183_off, rx183_pos, 1
+    substr rx183_tgt, rx183_tgt, rx183_off
+  rx183_start:
+    eq $I10, 1, rx183_restart
+    rx183_cur."!cursor_debug"("START ", "dec_number")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan199_done
-    goto rxscan199_scan
-  rxscan199_loop:
-    ($P10) = rx196_cur."from"()
+    ne $I10, -1, rxscan186_done
+    goto rxscan186_scan
+  rxscan186_loop:
+    ($P10) = rx183_cur."from"()
     inc $P10
-    set rx196_pos, $P10
-    ge rx196_pos, rx196_eos, rxscan199_done
-  rxscan199_scan:
-    set_addr $I10, rxscan199_loop
-    rx196_cur."!mark_push"(0, rx196_pos, $I10)
-  rxscan199_done:
-  alt200_0:
+    set rx183_pos, $P10
+    ge rx183_pos, rx183_eos, rxscan186_done
+  rxscan186_scan:
+    set_addr $I10, rxscan186_loop
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
+  rxscan186_done:
+  alt187_0:
 .annotate 'line', 71
-    set_addr $I10, alt200_1
-    rx196_cur."!mark_push"(0, rx196_pos, $I10)
+    set_addr $I10, alt187_1
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
 .annotate 'line', 72
   # rx subcapture "coeff"
-    set_addr $I10, rxcap_201_fail
-    rx196_cur."!mark_push"(0, rx196_pos, $I10)
+    set_addr $I10, rxcap_188_fail
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
   # rx literal  "."
-    add $I11, rx196_pos, 1
-    gt $I11, rx196_eos, rx196_fail
-    sub $I11, rx196_pos, rx196_off
-    substr $S10, rx196_tgt, $I11, 1
-    ne $S10, ".", rx196_fail
-    add rx196_pos, 1
+    add $I11, rx183_pos, 1
+    gt $I11, rx183_eos, rx183_fail
+    sub $I11, rx183_pos, rx183_off
+    substr $S10, rx183_tgt, $I11, 1
+    ne $S10, ".", rx183_fail
+    add rx183_pos, 1
   # rx charclass_q d r 1..-1
-    sub $I10, rx196_pos, rx196_off
-    find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
+    sub $I10, rx183_pos, rx183_off
+    find_not_cclass $I11, 8, rx183_tgt, $I10, rx183_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx196_fail
-    add rx196_pos, rx196_off, $I11
-    set_addr $I10, rxcap_201_fail
-    ($I12, $I11) = rx196_cur."!mark_peek"($I10)
-    rx196_cur."!cursor_pos"($I11)
-    ($P10) = rx196_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx196_pos, "")
-    rx196_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx183_fail
+    add rx183_pos, rx183_off, $I11
+    set_addr $I10, rxcap_188_fail
+    ($I12, $I11) = rx183_cur."!mark_peek"($I10)
+    rx183_cur."!cursor_pos"($I11)
+    ($P10) = rx183_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx183_pos, "")
+    rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("coeff")
-    goto rxcap_201_done
-  rxcap_201_fail:
-    goto rx196_fail
-  rxcap_201_done:
-  # rx rxquantr202 ** 0..1
-    set_addr $I203, rxquantr202_done
-    rx196_cur."!mark_push"(0, rx196_pos, $I203)
-  rxquantr202_loop:
+    goto rxcap_188_done
+  rxcap_188_fail:
+    goto rx183_fail
+  rxcap_188_done:
+  # rx rxquantr189 ** 0..1
+    set_addr $I10, rxquantr189_done
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
+  rxquantr189_loop:
   # rx subrule "escale" subtype=capture negate=
-    rx196_cur."!cursor_pos"(rx196_pos)
-    $P10 = rx196_cur."escale"()
-    unless $P10, rx196_fail
-    rx196_cur."!mark_push"(0, -1, 0, $P10)
+    rx183_cur."!cursor_pos"(rx183_pos)
+    $P10 = rx183_cur."escale"()
+    unless $P10, rx183_fail
+    goto rxsubrule190_pass
+  rxsubrule190_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx183_fail
+  rxsubrule190_pass:
+    set_addr $I10, rxsubrule190_back
+    rx183_cur."!mark_push"(0, rx183_pos, $I10, $P10)
     $P10."!cursor_names"("escale")
-    rx196_pos = $P10."pos"()
-    (rx196_rep) = rx196_cur."!mark_commit"($I203)
-  rxquantr202_done:
-    goto alt200_end
-  alt200_1:
-    set_addr $I10, alt200_2
-    rx196_cur."!mark_push"(0, rx196_pos, $I10)
+    rx183_pos = $P10."pos"()
+    set_addr $I10, rxquantr189_done
+    (rx183_rep) = rx183_cur."!mark_commit"($I10)
+  rxquantr189_done:
+    goto alt187_end
+  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_204_fail
-    rx196_cur."!mark_push"(0, rx196_pos, $I10)
+    set_addr $I10, rxcap_191_fail
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
   # rx charclass_q d r 1..-1
-    sub $I10, rx196_pos, rx196_off
-    find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
+    sub $I10, rx183_pos, rx183_off
+    find_not_cclass $I11, 8, rx183_tgt, $I10, rx183_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx196_fail
-    add rx196_pos, rx196_off, $I11
+    lt $I11, $I12, rx183_fail
+    add rx183_pos, rx183_off, $I11
   # rx literal  "."
-    add $I11, rx196_pos, 1
-    gt $I11, rx196_eos, rx196_fail
-    sub $I11, rx196_pos, rx196_off
-    substr $S10, rx196_tgt, $I11, 1
-    ne $S10, ".", rx196_fail
-    add rx196_pos, 1
+    add $I11, rx183_pos, 1
+    gt $I11, rx183_eos, rx183_fail
+    sub $I11, rx183_pos, rx183_off
+    substr $S10, rx183_tgt, $I11, 1
+    ne $S10, ".", rx183_fail
+    add rx183_pos, 1
   # rx charclass_q d r 1..-1
-    sub $I10, rx196_pos, rx196_off
-    find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
+    sub $I10, rx183_pos, rx183_off
+    find_not_cclass $I11, 8, rx183_tgt, $I10, rx183_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx196_fail
-    add rx196_pos, rx196_off, $I11
-    set_addr $I10, rxcap_204_fail
-    ($I12, $I11) = rx196_cur."!mark_peek"($I10)
-    rx196_cur."!cursor_pos"($I11)
-    ($P10) = rx196_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx196_pos, "")
-    rx196_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx183_fail
+    add rx183_pos, rx183_off, $I11
+    set_addr $I10, rxcap_191_fail
+    ($I12, $I11) = rx183_cur."!mark_peek"($I10)
+    rx183_cur."!cursor_pos"($I11)
+    ($P10) = rx183_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx183_pos, "")
+    rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("coeff")
-    goto rxcap_204_done
-  rxcap_204_fail:
-    goto rx196_fail
-  rxcap_204_done:
-  # rx rxquantr205 ** 0..1
-    set_addr $I206, rxquantr205_done
-    rx196_cur."!mark_push"(0, rx196_pos, $I206)
-  rxquantr205_loop:
+    goto rxcap_191_done
+  rxcap_191_fail:
+    goto rx183_fail
+  rxcap_191_done:
+  # rx rxquantr192 ** 0..1
+    set_addr $I10, rxquantr192_done
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
+  rxquantr192_loop:
   # rx subrule "escale" subtype=capture negate=
-    rx196_cur."!cursor_pos"(rx196_pos)
-    $P10 = rx196_cur."escale"()
-    unless $P10, rx196_fail
-    rx196_cur."!mark_push"(0, -1, 0, $P10)
+    rx183_cur."!cursor_pos"(rx183_pos)
+    $P10 = rx183_cur."escale"()
+    unless $P10, rx183_fail
+    goto rxsubrule193_pass
+  rxsubrule193_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx183_fail
+  rxsubrule193_pass:
+    set_addr $I10, rxsubrule193_back
+    rx183_cur."!mark_push"(0, rx183_pos, $I10, $P10)
     $P10."!cursor_names"("escale")
-    rx196_pos = $P10."pos"()
-    (rx196_rep) = rx196_cur."!mark_commit"($I206)
-  rxquantr205_done:
-    goto alt200_end
-  alt200_2:
+    rx183_pos = $P10."pos"()
+    set_addr $I10, rxquantr192_done
+    (rx183_rep) = rx183_cur."!mark_commit"($I10)
+  rxquantr192_done:
+    goto alt187_end
+  alt187_2:
 .annotate 'line', 74
   # rx subcapture "coeff"
-    set_addr $I10, rxcap_207_fail
-    rx196_cur."!mark_push"(0, rx196_pos, $I10)
+    set_addr $I10, rxcap_194_fail
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
   # rx charclass_q d r 1..-1
-    sub $I10, rx196_pos, rx196_off
-    find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
+    sub $I10, rx183_pos, rx183_off
+    find_not_cclass $I11, 8, rx183_tgt, $I10, rx183_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx196_fail
-    add rx196_pos, rx196_off, $I11
-    set_addr $I10, rxcap_207_fail
-    ($I12, $I11) = rx196_cur."!mark_peek"($I10)
-    rx196_cur."!cursor_pos"($I11)
-    ($P10) = rx196_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx196_pos, "")
-    rx196_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx183_fail
+    add rx183_pos, rx183_off, $I11
+    set_addr $I10, rxcap_194_fail
+    ($I12, $I11) = rx183_cur."!mark_peek"($I10)
+    rx183_cur."!cursor_pos"($I11)
+    ($P10) = rx183_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx183_pos, "")
+    rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("coeff")
-    goto rxcap_207_done
-  rxcap_207_fail:
-    goto rx196_fail
-  rxcap_207_done:
+    goto rxcap_194_done
+  rxcap_194_fail:
+    goto rx183_fail
+  rxcap_194_done:
   # rx subrule "escale" subtype=capture negate=
-    rx196_cur."!cursor_pos"(rx196_pos)
-    $P10 = rx196_cur."escale"()
-    unless $P10, rx196_fail
-    rx196_cur."!mark_push"(0, -1, 0, $P10)
+    rx183_cur."!cursor_pos"(rx183_pos)
+    $P10 = rx183_cur."escale"()
+    unless $P10, rx183_fail
+    rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("escale")
-    rx196_pos = $P10."pos"()
-  alt200_end:
+    rx183_pos = $P10."pos"()
+  alt187_end:
 .annotate 'line', 71
   # rx pass
-    rx196_cur."!cursor_pass"(rx196_pos, "dec_number")
-    rx196_cur."!cursor_debug"("PASS  ", "dec_number", " at pos=", rx196_pos)
-    .return (rx196_cur)
-  rx196_fail:
-.annotate 'line', 33
-    (rx196_rep, rx196_pos, $I10, $P10) = rx196_cur."!mark_fail"(0)
-    lt rx196_pos, -1, rx196_done
-    eq rx196_pos, -1, rx196_fail
+    rx183_cur."!cursor_pass"(rx183_pos, "dec_number")
+    rx183_cur."!cursor_debug"("PASS  ", "dec_number", " at pos=", rx183_pos)
+    .return (rx183_cur)
+  rx183_restart:
+.annotate 'line', 33
+    rx183_cur."!cursor_debug"("NEXT ", "dec_number")
+  rx183_fail:
+    (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
+    lt rx183_pos, -1, rx183_done
+    eq rx183_pos, -1, rx183_fail
     jump $I10
-  rx196_done:
-    rx196_cur."!cursor_fail"()
-    rx196_cur."!cursor_debug"("FAIL  ", "dec_number")
-    .return (rx196_cur)
+  rx183_done:
+    rx183_cur."!cursor_fail"()
+    rx183_cur."!cursor_debug"("FAIL  ", "dec_number")
+    .return (rx183_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number"  :subid("64_1277356884.2847") :method
+.sub "!PREFIX__dec_number"  :subid("64_1280467467.13603") :method
 .annotate 'line', 33
-    new $P198, "ResizablePMCArray"
-    push $P198, ""
-    push $P198, ""
-    push $P198, "."
-    .return ($P198)
+    new $P185, "ResizablePMCArray"
+    push $P185, ""
+    push $P185, ""
+    push $P185, "."
+    .return ($P185)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "escale"  :subid("65_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "escale"  :subid("65_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx209_tgt
-    .local int rx209_pos
-    .local int rx209_off
-    .local int rx209_eos
-    .local int rx209_rep
-    .local pmc rx209_cur
-    (rx209_cur, rx209_pos, rx209_tgt) = self."!cursor_start"()
-    rx209_cur."!cursor_debug"("START ", "escale")
-    .lex unicode:"$\x{a2}", rx209_cur
+    .local string rx196_tgt
+    .local int rx196_pos
+    .local int rx196_off
+    .local int rx196_eos
+    .local int rx196_rep
+    .local pmc rx196_cur
+    (rx196_cur, rx196_pos, rx196_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx196_cur
     .local pmc match
     .lex "$/", match
-    length rx209_eos, rx209_tgt
-    gt rx209_pos, rx209_eos, rx209_done
-    set rx209_off, 0
-    lt rx209_pos, 2, rx209_start
-    sub rx209_off, rx209_pos, 1
-    substr rx209_tgt, rx209_tgt, rx209_off
-  rx209_start:
+    length rx196_eos, rx196_tgt
+    gt rx196_pos, rx196_eos, rx196_done
+    set rx196_off, 0
+    lt rx196_pos, 2, rx196_start
+    sub rx196_off, rx196_pos, 1
+    substr rx196_tgt, rx196_tgt, rx196_off
+  rx196_start:
+    eq $I10, 1, rx196_restart
+    rx196_cur."!cursor_debug"("START ", "escale")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan212_done
-    goto rxscan212_scan
-  rxscan212_loop:
-    ($P10) = rx209_cur."from"()
+    ne $I10, -1, rxscan199_done
+    goto rxscan199_scan
+  rxscan199_loop:
+    ($P10) = rx196_cur."from"()
     inc $P10
-    set rx209_pos, $P10
-    ge rx209_pos, rx209_eos, rxscan212_done
-  rxscan212_scan:
-    set_addr $I10, rxscan212_loop
-    rx209_cur."!mark_push"(0, rx209_pos, $I10)
-  rxscan212_done:
+    set rx196_pos, $P10
+    ge rx196_pos, rx196_eos, rxscan199_done
+  rxscan199_scan:
+    set_addr $I10, rxscan199_loop
+    rx196_cur."!mark_push"(0, rx196_pos, $I10)
+  rxscan199_done:
 .annotate 'line', 77
   # rx enumcharlist negate=0 
-    ge rx209_pos, rx209_eos, rx209_fail
-    sub $I10, rx209_pos, rx209_off
-    substr $S10, rx209_tgt, $I10, 1
+    ge rx196_pos, rx196_eos, rx196_fail
+    sub $I10, rx196_pos, rx196_off
+    substr $S10, rx196_tgt, $I10, 1
     index $I11, "Ee", $S10
-    lt $I11, 0, rx209_fail
-    inc rx209_pos
-  # rx rxquantr213 ** 0..1
-    set_addr $I214, rxquantr213_done
-    rx209_cur."!mark_push"(0, rx209_pos, $I214)
-  rxquantr213_loop:
+    lt $I11, 0, rx196_fail
+    inc rx196_pos
+  # rx rxquantr200 ** 0..1
+    set_addr $I10, rxquantr200_done
+    rx196_cur."!mark_push"(0, rx196_pos, $I10)
+  rxquantr200_loop:
   # rx enumcharlist negate=0 
-    ge rx209_pos, rx209_eos, rx209_fail
-    sub $I10, rx209_pos, rx209_off
-    substr $S10, rx209_tgt, $I10, 1
+    ge rx196_pos, rx196_eos, rx196_fail
+    sub $I10, rx196_pos, rx196_off
+    substr $S10, rx196_tgt, $I10, 1
     index $I11, "+-", $S10
-    lt $I11, 0, rx209_fail
-    inc rx209_pos
-    (rx209_rep) = rx209_cur."!mark_commit"($I214)
-  rxquantr213_done:
+    lt $I11, 0, rx196_fail
+    inc rx196_pos
+    set_addr $I10, rxquantr200_done
+    (rx196_rep) = rx196_cur."!mark_commit"($I10)
+  rxquantr200_done:
   # rx charclass_q d r 1..-1
-    sub $I10, rx209_pos, rx209_off
-    find_not_cclass $I11, 8, rx209_tgt, $I10, rx209_eos
+    sub $I10, rx196_pos, rx196_off
+    find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx209_fail
-    add rx209_pos, rx209_off, $I11
+    lt $I11, $I12, rx196_fail
+    add rx196_pos, rx196_off, $I11
   # rx pass
-    rx209_cur."!cursor_pass"(rx209_pos, "escale")
-    rx209_cur."!cursor_debug"("PASS  ", "escale", " at pos=", rx209_pos)
-    .return (rx209_cur)
-  rx209_fail:
-.annotate 'line', 33
-    (rx209_rep, rx209_pos, $I10, $P10) = rx209_cur."!mark_fail"(0)
-    lt rx209_pos, -1, rx209_done
-    eq rx209_pos, -1, rx209_fail
+    rx196_cur."!cursor_pass"(rx196_pos, "escale")
+    rx196_cur."!cursor_debug"("PASS  ", "escale", " at pos=", rx196_pos)
+    .return (rx196_cur)
+  rx196_restart:
+.annotate 'line', 33
+    rx196_cur."!cursor_debug"("NEXT ", "escale")
+  rx196_fail:
+    (rx196_rep, rx196_pos, $I10, $P10) = rx196_cur."!mark_fail"(0)
+    lt rx196_pos, -1, rx196_done
+    eq rx196_pos, -1, rx196_fail
     jump $I10
-  rx209_done:
-    rx209_cur."!cursor_fail"()
-    rx209_cur."!cursor_debug"("FAIL  ", "escale")
-    .return (rx209_cur)
+  rx196_done:
+    rx196_cur."!cursor_fail"()
+    rx196_cur."!cursor_debug"("FAIL  ", "escale")
+    .return (rx196_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale"  :subid("66_1277356884.2847") :method
+.sub "!PREFIX__escale"  :subid("66_1280467467.13603") :method
 .annotate 'line', 33
-    new $P211, "ResizablePMCArray"
-    push $P211, "e"
-    push $P211, "E"
-    .return ($P211)
+    new $P198, "ResizablePMCArray"
+    push $P198, "e"
+    push $P198, "E"
+    .return ($P198)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape"  :subid("67_1277356884.2847") :method
+.sub "quote_escape"  :subid("67_1280467467.13603") :method
 .annotate 'line', 79
-    $P216 = self."!protoregex"("quote_escape")
-    .return ($P216)
+    $P202 = self."!protoregex"("quote_escape")
+    .return ($P202)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape"  :subid("68_1277356884.2847") :method
+.sub "!PREFIX__quote_escape"  :subid("68_1280467467.13603") :method
 .annotate 'line', 79
-    $P218 = self."!PREFIX__!protoregex"("quote_escape")
-    .return ($P218)
+    $P204 = self."!PREFIX__!protoregex"("quote_escape")
+    .return ($P204)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>"  :subid("69_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "quote_escape:sym<backslash>"  :subid("69_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx220_tgt
-    .local int rx220_pos
-    .local int rx220_off
-    .local int rx220_eos
-    .local int rx220_rep
-    .local pmc rx220_cur
-    (rx220_cur, rx220_pos, rx220_tgt) = self."!cursor_start"()
-    rx220_cur."!cursor_debug"("START ", "quote_escape:sym<backslash>")
-    .lex unicode:"$\x{a2}", rx220_cur
+    .local string rx206_tgt
+    .local int rx206_pos
+    .local int rx206_off
+    .local int rx206_eos
+    .local int rx206_rep
+    .local pmc rx206_cur
+    (rx206_cur, rx206_pos, rx206_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx206_cur
     .local pmc match
     .lex "$/", match
-    length rx220_eos, rx220_tgt
-    gt rx220_pos, rx220_eos, rx220_done
-    set rx220_off, 0
-    lt rx220_pos, 2, rx220_start
-    sub rx220_off, rx220_pos, 1
-    substr rx220_tgt, rx220_tgt, rx220_off
-  rx220_start:
+    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
+    rx206_cur."!cursor_debug"("START ", "quote_escape:sym<backslash>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan223_done
-    goto rxscan223_scan
-  rxscan223_loop:
-    ($P10) = rx220_cur."from"()
+    ne $I10, -1, rxscan209_done
+    goto rxscan209_scan
+  rxscan209_loop:
+    ($P10) = rx206_cur."from"()
     inc $P10
-    set rx220_pos, $P10
-    ge rx220_pos, rx220_eos, rxscan223_done
-  rxscan223_scan:
-    set_addr $I10, rxscan223_loop
-    rx220_cur."!mark_push"(0, rx220_pos, $I10)
-  rxscan223_done:
+    set rx206_pos, $P10
+    ge rx206_pos, rx206_eos, rxscan209_done
+  rxscan209_scan:
+    set_addr $I10, rxscan209_loop
+    rx206_cur."!mark_push"(0, rx206_pos, $I10)
+  rxscan209_done:
 .annotate 'line', 80
   # rx literal  "\\\\"
-    add $I11, rx220_pos, 2
-    gt $I11, rx220_eos, rx220_fail
-    sub $I11, rx220_pos, rx220_off
-    substr $S10, rx220_tgt, $I11, 2
-    ne $S10, "\\\\", rx220_fail
-    add rx220_pos, 2
+    add $I11, rx206_pos, 2
+    gt $I11, rx206_eos, rx206_fail
+    sub $I11, rx206_pos, rx206_off
+    substr $S10, rx206_tgt, $I11, 2
+    ne $S10, "\\\\", rx206_fail
+    add rx206_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx220_cur."!cursor_pos"(rx220_pos)
-    $P10 = rx220_cur."quotemod_check"("q")
-    unless $P10, rx220_fail
+    rx206_cur."!cursor_pos"(rx206_pos)
+    $P10 = rx206_cur."quotemod_check"("q")
+    unless $P10, rx206_fail
   # rx pass
-    rx220_cur."!cursor_pass"(rx220_pos, "quote_escape:sym<backslash>")
-    rx220_cur."!cursor_debug"("PASS  ", "quote_escape:sym<backslash>", " at pos=", rx220_pos)
-    .return (rx220_cur)
-  rx220_fail:
-.annotate 'line', 33
-    (rx220_rep, rx220_pos, $I10, $P10) = rx220_cur."!mark_fail"(0)
-    lt rx220_pos, -1, rx220_done
-    eq rx220_pos, -1, rx220_fail
+    rx206_cur."!cursor_pass"(rx206_pos, "quote_escape:sym<backslash>")
+    rx206_cur."!cursor_debug"("PASS  ", "quote_escape:sym<backslash>", " at pos=", rx206_pos)
+    .return (rx206_cur)
+  rx206_restart:
+.annotate 'line', 33
+    rx206_cur."!cursor_debug"("NEXT ", "quote_escape:sym<backslash>")
+  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
-  rx220_done:
-    rx220_cur."!cursor_fail"()
-    rx220_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<backslash>")
-    .return (rx220_cur)
+  rx206_done:
+    rx206_cur."!cursor_fail"()
+    rx206_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<backslash>")
+    .return (rx206_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1277356884.2847") :method
+.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1280467467.13603") :method
 .annotate 'line', 33
-    new $P222, "ResizablePMCArray"
-    push $P222, "\\\\"
-    .return ($P222)
+    new $P208, "ResizablePMCArray"
+    push $P208, "\\\\"
+    .return ($P208)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>"  :subid("71_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "quote_escape:sym<stopper>"  :subid("71_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx225_tgt
-    .local int rx225_pos
-    .local int rx225_off
-    .local int rx225_eos
-    .local int rx225_rep
-    .local pmc rx225_cur
-    (rx225_cur, rx225_pos, rx225_tgt) = self."!cursor_start"()
-    rx225_cur."!cursor_debug"("START ", "quote_escape:sym<stopper>")
-    .lex unicode:"$\x{a2}", rx225_cur
+    .local string rx211_tgt
+    .local int rx211_pos
+    .local int rx211_off
+    .local int rx211_eos
+    .local int rx211_rep
+    .local pmc rx211_cur
+    (rx211_cur, rx211_pos, rx211_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx211_cur
     .local pmc match
     .lex "$/", match
-    length rx225_eos, rx225_tgt
-    gt rx225_pos, rx225_eos, rx225_done
-    set rx225_off, 0
-    lt rx225_pos, 2, rx225_start
-    sub rx225_off, rx225_pos, 1
-    substr rx225_tgt, rx225_tgt, rx225_off
-  rx225_start:
+    length rx211_eos, rx211_tgt
+    gt rx211_pos, rx211_eos, rx211_done
+    set rx211_off, 0
+    lt rx211_pos, 2, rx211_start
+    sub rx211_off, rx211_pos, 1
+    substr rx211_tgt, rx211_tgt, rx211_off
+  rx211_start:
+    eq $I10, 1, rx211_restart
+    rx211_cur."!cursor_debug"("START ", "quote_escape:sym<stopper>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan228_done
-    goto rxscan228_scan
-  rxscan228_loop:
-    ($P10) = rx225_cur."from"()
+    ne $I10, -1, rxscan214_done
+    goto rxscan214_scan
+  rxscan214_loop:
+    ($P10) = rx211_cur."from"()
     inc $P10
-    set rx225_pos, $P10
-    ge rx225_pos, rx225_eos, rxscan228_done
-  rxscan228_scan:
-    set_addr $I10, rxscan228_loop
-    rx225_cur."!mark_push"(0, rx225_pos, $I10)
-  rxscan228_done:
+    set rx211_pos, $P10
+    ge rx211_pos, rx211_eos, rxscan214_done
+  rxscan214_scan:
+    set_addr $I10, rxscan214_loop
+    rx211_cur."!mark_push"(0, rx211_pos, $I10)
+  rxscan214_done:
 .annotate 'line', 81
   # rx literal  "\\"
-    add $I11, rx225_pos, 1
-    gt $I11, rx225_eos, rx225_fail
-    sub $I11, rx225_pos, rx225_off
-    substr $S10, rx225_tgt, $I11, 1
-    ne $S10, "\\", rx225_fail
-    add rx225_pos, 1
+    add $I11, rx211_pos, 1
+    gt $I11, rx211_eos, rx211_fail
+    sub $I11, rx211_pos, rx211_off
+    substr $S10, rx211_tgt, $I11, 1
+    ne $S10, "\\", rx211_fail
+    add rx211_pos, 1
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx225_cur."!cursor_pos"(rx225_pos)
-    $P10 = rx225_cur."quotemod_check"("q")
-    unless $P10, rx225_fail
+    rx211_cur."!cursor_pos"(rx211_pos)
+    $P10 = rx211_cur."quotemod_check"("q")
+    unless $P10, rx211_fail
   # rx subrule "stopper" subtype=capture negate=
-    rx225_cur."!cursor_pos"(rx225_pos)
-    $P10 = rx225_cur."stopper"()
-    unless $P10, rx225_fail
-    rx225_cur."!mark_push"(0, -1, 0, $P10)
+    rx211_cur."!cursor_pos"(rx211_pos)
+    $P10 = rx211_cur."stopper"()
+    unless $P10, rx211_fail
+    rx211_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("stopper")
-    rx225_pos = $P10."pos"()
+    rx211_pos = $P10."pos"()
   # rx pass
-    rx225_cur."!cursor_pass"(rx225_pos, "quote_escape:sym<stopper>")
-    rx225_cur."!cursor_debug"("PASS  ", "quote_escape:sym<stopper>", " at pos=", rx225_pos)
-    .return (rx225_cur)
-  rx225_fail:
-.annotate 'line', 33
-    (rx225_rep, rx225_pos, $I10, $P10) = rx225_cur."!mark_fail"(0)
-    lt rx225_pos, -1, rx225_done
-    eq rx225_pos, -1, rx225_fail
+    rx211_cur."!cursor_pass"(rx211_pos, "quote_escape:sym<stopper>")
+    rx211_cur."!cursor_debug"("PASS  ", "quote_escape:sym<stopper>", " at pos=", rx211_pos)
+    .return (rx211_cur)
+  rx211_restart:
+.annotate 'line', 33
+    rx211_cur."!cursor_debug"("NEXT ", "quote_escape:sym<stopper>")
+  rx211_fail:
+    (rx211_rep, rx211_pos, $I10, $P10) = rx211_cur."!mark_fail"(0)
+    lt rx211_pos, -1, rx211_done
+    eq rx211_pos, -1, rx211_fail
     jump $I10
-  rx225_done:
-    rx225_cur."!cursor_fail"()
-    rx225_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<stopper>")
-    .return (rx225_cur)
+  rx211_done:
+    rx211_cur."!cursor_fail"()
+    rx211_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<stopper>")
+    .return (rx211_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1277356884.2847") :method
+.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1280467467.13603") :method
 .annotate 'line', 33
-    new $P227, "ResizablePMCArray"
-    push $P227, "\\"
-    .return ($P227)
+    new $P213, "ResizablePMCArray"
+    push $P213, "\\"
+    .return ($P213)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>"  :subid("73_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "quote_escape:sym<bs>"  :subid("73_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx230_tgt
-    .local int rx230_pos
-    .local int rx230_off
-    .local int rx230_eos
-    .local int rx230_rep
-    .local pmc rx230_cur
-    (rx230_cur, rx230_pos, rx230_tgt) = self."!cursor_start"()
-    rx230_cur."!cursor_debug"("START ", "quote_escape:sym<bs>")
-    .lex unicode:"$\x{a2}", rx230_cur
+    .local string rx216_tgt
+    .local int rx216_pos
+    .local int rx216_off
+    .local int rx216_eos
+    .local int rx216_rep
+    .local pmc rx216_cur
+    (rx216_cur, rx216_pos, rx216_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx216_cur
     .local pmc match
     .lex "$/", match
-    length rx230_eos, rx230_tgt
-    gt rx230_pos, rx230_eos, rx230_done
-    set rx230_off, 0
-    lt rx230_pos, 2, rx230_start
-    sub rx230_off, rx230_pos, 1
-    substr rx230_tgt, rx230_tgt, rx230_off
-  rx230_start:
+    length rx216_eos, rx216_tgt
+    gt rx216_pos, rx216_eos, rx216_done
+    set rx216_off, 0
+    lt rx216_pos, 2, rx216_start
+    sub rx216_off, rx216_pos, 1
+    substr rx216_tgt, rx216_tgt, rx216_off
+  rx216_start:
+    eq $I10, 1, rx216_restart
+    rx216_cur."!cursor_debug"("START ", "quote_escape:sym<bs>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan233_done
-    goto rxscan233_scan
-  rxscan233_loop:
-    ($P10) = rx230_cur."from"()
+    ne $I10, -1, rxscan219_done
+    goto rxscan219_scan
+  rxscan219_loop:
+    ($P10) = rx216_cur."from"()
     inc $P10
-    set rx230_pos, $P10
-    ge rx230_pos, rx230_eos, rxscan233_done
-  rxscan233_scan:
-    set_addr $I10, rxscan233_loop
-    rx230_cur."!mark_push"(0, rx230_pos, $I10)
-  rxscan233_done:
+    set rx216_pos, $P10
+    ge rx216_pos, rx216_eos, rxscan219_done
+  rxscan219_scan:
+    set_addr $I10, rxscan219_loop
+    rx216_cur."!mark_push"(0, rx216_pos, $I10)
+  rxscan219_done:
 .annotate 'line', 83
   # rx literal  "\\b"
-    add $I11, rx230_pos, 2
-    gt $I11, rx230_eos, rx230_fail
-    sub $I11, rx230_pos, rx230_off
-    substr $S10, rx230_tgt, $I11, 2
-    ne $S10, "\\b", rx230_fail
-    add rx230_pos, 2
+    add $I11, rx216_pos, 2
+    gt $I11, rx216_eos, rx216_fail
+    sub $I11, rx216_pos, rx216_off
+    substr $S10, rx216_tgt, $I11, 2
+    ne $S10, "\\b", rx216_fail
+    add rx216_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx230_cur."!cursor_pos"(rx230_pos)
-    $P10 = rx230_cur."quotemod_check"("b")
-    unless $P10, rx230_fail
+    rx216_cur."!cursor_pos"(rx216_pos)
+    $P10 = rx216_cur."quotemod_check"("b")
+    unless $P10, rx216_fail
   # rx pass
-    rx230_cur."!cursor_pass"(rx230_pos, "quote_escape:sym<bs>")
-    rx230_cur."!cursor_debug"("PASS  ", "quote_escape:sym<bs>", " at pos=", rx230_pos)
-    .return (rx230_cur)
-  rx230_fail:
-.annotate 'line', 33
-    (rx230_rep, rx230_pos, $I10, $P10) = rx230_cur."!mark_fail"(0)
-    lt rx230_pos, -1, rx230_done
-    eq rx230_pos, -1, rx230_fail
+    rx216_cur."!cursor_pass"(rx216_pos, "quote_escape:sym<bs>")
+    rx216_cur."!cursor_debug"("PASS  ", "quote_escape:sym<bs>", " at pos=", rx216_pos)
+    .return (rx216_cur)
+  rx216_restart:
+.annotate 'line', 33
+    rx216_cur."!cursor_debug"("NEXT ", "quote_escape:sym<bs>")
+  rx216_fail:
+    (rx216_rep, rx216_pos, $I10, $P10) = rx216_cur."!mark_fail"(0)
+    lt rx216_pos, -1, rx216_done
+    eq rx216_pos, -1, rx216_fail
     jump $I10
-  rx230_done:
-    rx230_cur."!cursor_fail"()
-    rx230_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<bs>")
-    .return (rx230_cur)
+  rx216_done:
+    rx216_cur."!cursor_fail"()
+    rx216_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<bs>")
+    .return (rx216_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1277356884.2847") :method
+.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1280467467.13603") :method
 .annotate 'line', 33
-    new $P232, "ResizablePMCArray"
-    push $P232, "\\b"
-    .return ($P232)
+    new $P218, "ResizablePMCArray"
+    push $P218, "\\b"
+    .return ($P218)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>"  :subid("75_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "quote_escape:sym<nl>"  :subid("75_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx235_tgt
-    .local int rx235_pos
-    .local int rx235_off
-    .local int rx235_eos
-    .local int rx235_rep
-    .local pmc rx235_cur
-    (rx235_cur, rx235_pos, rx235_tgt) = self."!cursor_start"()
-    rx235_cur."!cursor_debug"("START ", "quote_escape:sym<nl>")
-    .lex unicode:"$\x{a2}", rx235_cur
+    .local string rx221_tgt
+    .local int rx221_pos
+    .local int rx221_off
+    .local int rx221_eos
+    .local int rx221_rep
+    .local pmc rx221_cur
+    (rx221_cur, rx221_pos, rx221_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx221_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:
+    length rx221_eos, rx221_tgt
+    gt rx221_pos, rx221_eos, rx221_done
+    set rx221_off, 0
+    lt rx221_pos, 2, rx221_start
+    sub rx221_off, rx221_pos, 1
+    substr rx221_tgt, rx221_tgt, rx221_off
+  rx221_start:
+    eq $I10, 1, rx221_restart
+    rx221_cur."!cursor_debug"("START ", "quote_escape:sym<nl>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan238_done
-    goto rxscan238_scan
-  rxscan238_loop:
-    ($P10) = rx235_cur."from"()
+    ne $I10, -1, rxscan224_done
+    goto rxscan224_scan
+  rxscan224_loop:
+    ($P10) = rx221_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:
+    set rx221_pos, $P10
+    ge rx221_pos, rx221_eos, rxscan224_done
+  rxscan224_scan:
+    set_addr $I10, rxscan224_loop
+    rx221_cur."!mark_push"(0, rx221_pos, $I10)
+  rxscan224_done:
 .annotate 'line', 84
   # rx literal  "\\n"
-    add $I11, rx235_pos, 2
-    gt $I11, rx235_eos, rx235_fail
-    sub $I11, rx235_pos, rx235_off
-    substr $S10, rx235_tgt, $I11, 2
-    ne $S10, "\\n", rx235_fail
-    add rx235_pos, 2
+    add $I11, rx221_pos, 2
+    gt $I11, rx221_eos, rx221_fail
+    sub $I11, rx221_pos, rx221_off
+    substr $S10, rx221_tgt, $I11, 2
+    ne $S10, "\\n", rx221_fail
+    add rx221_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx235_cur."!cursor_pos"(rx235_pos)
-    $P10 = rx235_cur."quotemod_check"("b")
-    unless $P10, rx235_fail
+    rx221_cur."!cursor_pos"(rx221_pos)
+    $P10 = rx221_cur."quotemod_check"("b")
+    unless $P10, rx221_fail
   # rx pass
-    rx235_cur."!cursor_pass"(rx235_pos, "quote_escape:sym<nl>")
-    rx235_cur."!cursor_debug"("PASS  ", "quote_escape:sym<nl>", " at pos=", rx235_pos)
-    .return (rx235_cur)
-  rx235_fail:
-.annotate 'line', 33
-    (rx235_rep, rx235_pos, $I10, $P10) = rx235_cur."!mark_fail"(0)
-    lt rx235_pos, -1, rx235_done
-    eq rx235_pos, -1, rx235_fail
+    rx221_cur."!cursor_pass"(rx221_pos, "quote_escape:sym<nl>")
+    rx221_cur."!cursor_debug"("PASS  ", "quote_escape:sym<nl>", " at pos=", rx221_pos)
+    .return (rx221_cur)
+  rx221_restart:
+.annotate 'line', 33
+    rx221_cur."!cursor_debug"("NEXT ", "quote_escape:sym<nl>")
+  rx221_fail:
+    (rx221_rep, rx221_pos, $I10, $P10) = rx221_cur."!mark_fail"(0)
+    lt rx221_pos, -1, rx221_done
+    eq rx221_pos, -1, rx221_fail
     jump $I10
-  rx235_done:
-    rx235_cur."!cursor_fail"()
-    rx235_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<nl>")
-    .return (rx235_cur)
+  rx221_done:
+    rx221_cur."!cursor_fail"()
+    rx221_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<nl>")
+    .return (rx221_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1277356884.2847") :method
+.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1280467467.13603") :method
 .annotate 'line', 33
-    new $P237, "ResizablePMCArray"
-    push $P237, "\\n"
-    .return ($P237)
+    new $P223, "ResizablePMCArray"
+    push $P223, "\\n"
+    .return ($P223)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>"  :subid("77_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "quote_escape:sym<cr>"  :subid("77_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx240_tgt
-    .local int rx240_pos
-    .local int rx240_off
-    .local int rx240_eos
-    .local int rx240_rep
-    .local pmc rx240_cur
-    (rx240_cur, rx240_pos, rx240_tgt) = self."!cursor_start"()
-    rx240_cur."!cursor_debug"("START ", "quote_escape:sym<cr>")
-    .lex unicode:"$\x{a2}", rx240_cur
+    .local string rx226_tgt
+    .local int rx226_pos
+    .local int rx226_off
+    .local int rx226_eos
+    .local int rx226_rep
+    .local pmc rx226_cur
+    (rx226_cur, rx226_pos, rx226_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx226_cur
     .local pmc match
     .lex "$/", match
-    length rx240_eos, rx240_tgt
-    gt rx240_pos, rx240_eos, rx240_done
-    set rx240_off, 0
-    lt rx240_pos, 2, rx240_start
-    sub rx240_off, rx240_pos, 1
-    substr rx240_tgt, rx240_tgt, rx240_off
-  rx240_start:
+    length rx226_eos, rx226_tgt
+    gt rx226_pos, rx226_eos, rx226_done
+    set rx226_off, 0
+    lt rx226_pos, 2, rx226_start
+    sub rx226_off, rx226_pos, 1
+    substr rx226_tgt, rx226_tgt, rx226_off
+  rx226_start:
+    eq $I10, 1, rx226_restart
+    rx226_cur."!cursor_debug"("START ", "quote_escape:sym<cr>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan243_done
-    goto rxscan243_scan
-  rxscan243_loop:
-    ($P10) = rx240_cur."from"()
+    ne $I10, -1, rxscan229_done
+    goto rxscan229_scan
+  rxscan229_loop:
+    ($P10) = rx226_cur."from"()
     inc $P10
-    set rx240_pos, $P10
-    ge rx240_pos, rx240_eos, rxscan243_done
-  rxscan243_scan:
-    set_addr $I10, rxscan243_loop
-    rx240_cur."!mark_push"(0, rx240_pos, $I10)
-  rxscan243_done:
+    set rx226_pos, $P10
+    ge rx226_pos, rx226_eos, rxscan229_done
+  rxscan229_scan:
+    set_addr $I10, rxscan229_loop
+    rx226_cur."!mark_push"(0, rx226_pos, $I10)
+  rxscan229_done:
 .annotate 'line', 85
   # rx literal  "\\r"
-    add $I11, rx240_pos, 2
-    gt $I11, rx240_eos, rx240_fail
-    sub $I11, rx240_pos, rx240_off
-    substr $S10, rx240_tgt, $I11, 2
-    ne $S10, "\\r", rx240_fail
-    add rx240_pos, 2
+    add $I11, rx226_pos, 2
+    gt $I11, rx226_eos, rx226_fail
+    sub $I11, rx226_pos, rx226_off
+    substr $S10, rx226_tgt, $I11, 2
+    ne $S10, "\\r", rx226_fail
+    add rx226_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx240_cur."!cursor_pos"(rx240_pos)
-    $P10 = rx240_cur."quotemod_check"("b")
-    unless $P10, rx240_fail
+    rx226_cur."!cursor_pos"(rx226_pos)
+    $P10 = rx226_cur."quotemod_check"("b")
+    unless $P10, rx226_fail
   # rx pass
-    rx240_cur."!cursor_pass"(rx240_pos, "quote_escape:sym<cr>")
-    rx240_cur."!cursor_debug"("PASS  ", "quote_escape:sym<cr>", " at pos=", rx240_pos)
-    .return (rx240_cur)
-  rx240_fail:
-.annotate 'line', 33
-    (rx240_rep, rx240_pos, $I10, $P10) = rx240_cur."!mark_fail"(0)
-    lt rx240_pos, -1, rx240_done
-    eq rx240_pos, -1, rx240_fail
+    rx226_cur."!cursor_pass"(rx226_pos, "quote_escape:sym<cr>")
+    rx226_cur."!cursor_debug"("PASS  ", "quote_escape:sym<cr>", " at pos=", rx226_pos)
+    .return (rx226_cur)
+  rx226_restart:
+.annotate 'line', 33
+    rx226_cur."!cursor_debug"("NEXT ", "quote_escape:sym<cr>")
+  rx226_fail:
+    (rx226_rep, rx226_pos, $I10, $P10) = rx226_cur."!mark_fail"(0)
+    lt rx226_pos, -1, rx226_done
+    eq rx226_pos, -1, rx226_fail
     jump $I10
-  rx240_done:
-    rx240_cur."!cursor_fail"()
-    rx240_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<cr>")
-    .return (rx240_cur)
+  rx226_done:
+    rx226_cur."!cursor_fail"()
+    rx226_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<cr>")
+    .return (rx226_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1277356884.2847") :method
+.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1280467467.13603") :method
 .annotate 'line', 33
-    new $P242, "ResizablePMCArray"
-    push $P242, "\\r"
-    .return ($P242)
+    new $P228, "ResizablePMCArray"
+    push $P228, "\\r"
+    .return ($P228)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>"  :subid("79_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "quote_escape:sym<tab>"  :subid("79_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx245_tgt
-    .local int rx245_pos
-    .local int rx245_off
-    .local int rx245_eos
-    .local int rx245_rep
-    .local pmc rx245_cur
-    (rx245_cur, rx245_pos, rx245_tgt) = self."!cursor_start"()
-    rx245_cur."!cursor_debug"("START ", "quote_escape:sym<tab>")
-    .lex unicode:"$\x{a2}", rx245_cur
+    .local string rx231_tgt
+    .local int rx231_pos
+    .local int rx231_off
+    .local int rx231_eos
+    .local int rx231_rep
+    .local pmc rx231_cur
+    (rx231_cur, rx231_pos, rx231_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx231_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:
+    length rx231_eos, rx231_tgt
+    gt rx231_pos, rx231_eos, rx231_done
+    set rx231_off, 0
+    lt rx231_pos, 2, rx231_start
+    sub rx231_off, rx231_pos, 1
+    substr rx231_tgt, rx231_tgt, rx231_off
+  rx231_start:
+    eq $I10, 1, rx231_restart
+    rx231_cur."!cursor_debug"("START ", "quote_escape:sym<tab>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan248_done
-    goto rxscan248_scan
-  rxscan248_loop:
-    ($P10) = rx245_cur."from"()
+    ne $I10, -1, rxscan234_done
+    goto rxscan234_scan
+  rxscan234_loop:
+    ($P10) = rx231_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:
+    set rx231_pos, $P10
+    ge rx231_pos, rx231_eos, rxscan234_done
+  rxscan234_scan:
+    set_addr $I10, rxscan234_loop
+    rx231_cur."!mark_push"(0, rx231_pos, $I10)
+  rxscan234_done:
 .annotate 'line', 86
   # rx literal  "\\t"
-    add $I11, rx245_pos, 2
-    gt $I11, rx245_eos, rx245_fail
-    sub $I11, rx245_pos, rx245_off
-    substr $S10, rx245_tgt, $I11, 2
-    ne $S10, "\\t", rx245_fail
-    add rx245_pos, 2
+    add $I11, rx231_pos, 2
+    gt $I11, rx231_eos, rx231_fail
+    sub $I11, rx231_pos, rx231_off
+    substr $S10, rx231_tgt, $I11, 2
+    ne $S10, "\\t", rx231_fail
+    add rx231_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx245_cur."!cursor_pos"(rx245_pos)
-    $P10 = rx245_cur."quotemod_check"("b")
-    unless $P10, rx245_fail
+    rx231_cur."!cursor_pos"(rx231_pos)
+    $P10 = rx231_cur."quotemod_check"("b")
+    unless $P10, rx231_fail
   # rx pass
-    rx245_cur."!cursor_pass"(rx245_pos, "quote_escape:sym<tab>")
-    rx245_cur."!cursor_debug"("PASS  ", "quote_escape:sym<tab>", " at pos=", rx245_pos)
-    .return (rx245_cur)
-  rx245_fail:
-.annotate 'line', 33
-    (rx245_rep, rx245_pos, $I10, $P10) = rx245_cur."!mark_fail"(0)
-    lt rx245_pos, -1, rx245_done
-    eq rx245_pos, -1, rx245_fail
+    rx231_cur."!cursor_pass"(rx231_pos, "quote_escape:sym<tab>")
+    rx231_cur."!cursor_debug"("PASS  ", "quote_escape:sym<tab>", " at pos=", rx231_pos)
+    .return (rx231_cur)
+  rx231_restart:
+.annotate 'line', 33
+    rx231_cur."!cursor_debug"("NEXT ", "quote_escape:sym<tab>")
+  rx231_fail:
+    (rx231_rep, rx231_pos, $I10, $P10) = rx231_cur."!mark_fail"(0)
+    lt rx231_pos, -1, rx231_done
+    eq rx231_pos, -1, rx231_fail
     jump $I10
-  rx245_done:
-    rx245_cur."!cursor_fail"()
-    rx245_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<tab>")
-    .return (rx245_cur)
+  rx231_done:
+    rx231_cur."!cursor_fail"()
+    rx231_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<tab>")
+    .return (rx231_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1277356884.2847") :method
+.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1280467467.13603") :method
 .annotate 'line', 33
-    new $P247, "ResizablePMCArray"
-    push $P247, "\\t"
-    .return ($P247)
+    new $P233, "ResizablePMCArray"
+    push $P233, "\\t"
+    .return ($P233)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<ff>"  :subid("81_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "quote_escape:sym<ff>"  :subid("81_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx250_tgt
-    .local int rx250_pos
-    .local int rx250_off
-    .local int rx250_eos
-    .local int rx250_rep
-    .local pmc rx250_cur
-    (rx250_cur, rx250_pos, rx250_tgt) = self."!cursor_start"()
-    rx250_cur."!cursor_debug"("START ", "quote_escape:sym<ff>")
-    .lex unicode:"$\x{a2}", rx250_cur
+    .local string rx236_tgt
+    .local int rx236_pos
+    .local int rx236_off
+    .local int rx236_eos
+    .local int rx236_rep
+    .local pmc rx236_cur
+    (rx236_cur, rx236_pos, rx236_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx236_cur
     .local pmc match
     .lex "$/", match
-    length rx250_eos, rx250_tgt
-    gt rx250_pos, rx250_eos, rx250_done
-    set rx250_off, 0
-    lt rx250_pos, 2, rx250_start
-    sub rx250_off, rx250_pos, 1
-    substr rx250_tgt, rx250_tgt, rx250_off
-  rx250_start:
+    length rx236_eos, rx236_tgt
+    gt rx236_pos, rx236_eos, rx236_done
+    set rx236_off, 0
+    lt rx236_pos, 2, rx236_start
+    sub rx236_off, rx236_pos, 1
+    substr rx236_tgt, rx236_tgt, rx236_off
+  rx236_start:
+    eq $I10, 1, rx236_restart
+    rx236_cur."!cursor_debug"("START ", "quote_escape:sym<ff>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan253_done
-    goto rxscan253_scan
-  rxscan253_loop:
-    ($P10) = rx250_cur."from"()
+    ne $I10, -1, rxscan239_done
+    goto rxscan239_scan
+  rxscan239_loop:
+    ($P10) = rx236_cur."from"()
     inc $P10
-    set rx250_pos, $P10
-    ge rx250_pos, rx250_eos, rxscan253_done
-  rxscan253_scan:
-    set_addr $I10, rxscan253_loop
-    rx250_cur."!mark_push"(0, rx250_pos, $I10)
-  rxscan253_done:
+    set rx236_pos, $P10
+    ge rx236_pos, rx236_eos, rxscan239_done
+  rxscan239_scan:
+    set_addr $I10, rxscan239_loop
+    rx236_cur."!mark_push"(0, rx236_pos, $I10)
+  rxscan239_done:
 .annotate 'line', 87
   # rx literal  "\\f"
-    add $I11, rx250_pos, 2
-    gt $I11, rx250_eos, rx250_fail
-    sub $I11, rx250_pos, rx250_off
-    substr $S10, rx250_tgt, $I11, 2
-    ne $S10, "\\f", rx250_fail
-    add rx250_pos, 2
+    add $I11, rx236_pos, 2
+    gt $I11, rx236_eos, rx236_fail
+    sub $I11, rx236_pos, rx236_off
+    substr $S10, rx236_tgt, $I11, 2
+    ne $S10, "\\f", rx236_fail
+    add rx236_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx250_cur."!cursor_pos"(rx250_pos)
-    $P10 = rx250_cur."quotemod_check"("b")
-    unless $P10, rx250_fail
+    rx236_cur."!cursor_pos"(rx236_pos)
+    $P10 = rx236_cur."quotemod_check"("b")
+    unless $P10, rx236_fail
   # rx pass
-    rx250_cur."!cursor_pass"(rx250_pos, "quote_escape:sym<ff>")
-    rx250_cur."!cursor_debug"("PASS  ", "quote_escape:sym<ff>", " at pos=", rx250_pos)
-    .return (rx250_cur)
-  rx250_fail:
-.annotate 'line', 33
-    (rx250_rep, rx250_pos, $I10, $P10) = rx250_cur."!mark_fail"(0)
-    lt rx250_pos, -1, rx250_done
-    eq rx250_pos, -1, rx250_fail
+    rx236_cur."!cursor_pass"(rx236_pos, "quote_escape:sym<ff>")
+    rx236_cur."!cursor_debug"("PASS  ", "quote_escape:sym<ff>", " at pos=", rx236_pos)
+    .return (rx236_cur)
+  rx236_restart:
+.annotate 'line', 33
+    rx236_cur."!cursor_debug"("NEXT ", "quote_escape:sym<ff>")
+  rx236_fail:
+    (rx236_rep, rx236_pos, $I10, $P10) = rx236_cur."!mark_fail"(0)
+    lt rx236_pos, -1, rx236_done
+    eq rx236_pos, -1, rx236_fail
     jump $I10
-  rx250_done:
-    rx250_cur."!cursor_fail"()
-    rx250_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<ff>")
-    .return (rx250_cur)
+  rx236_done:
+    rx236_cur."!cursor_fail"()
+    rx236_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<ff>")
+    .return (rx236_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1277356884.2847") :method
+.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1280467467.13603") :method
 .annotate 'line', 33
-    new $P252, "ResizablePMCArray"
-    push $P252, "\\f"
-    .return ($P252)
+    new $P238, "ResizablePMCArray"
+    push $P238, "\\f"
+    .return ($P238)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<esc>"  :subid("83_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "quote_escape:sym<esc>"  :subid("83_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx255_tgt
-    .local int rx255_pos
-    .local int rx255_off
-    .local int rx255_eos
-    .local int rx255_rep
-    .local pmc rx255_cur
-    (rx255_cur, rx255_pos, rx255_tgt) = self."!cursor_start"()
-    rx255_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
-    .lex unicode:"$\x{a2}", rx255_cur
+    .local string rx241_tgt
+    .local int rx241_pos
+    .local int rx241_off
+    .local int rx241_eos
+    .local int rx241_rep
+    .local pmc rx241_cur
+    (rx241_cur, rx241_pos, rx241_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx241_cur
     .local pmc match
     .lex "$/", match
-    length rx255_eos, rx255_tgt
-    gt rx255_pos, rx255_eos, rx255_done
-    set rx255_off, 0
-    lt rx255_pos, 2, rx255_start
-    sub rx255_off, rx255_pos, 1
-    substr rx255_tgt, rx255_tgt, rx255_off
-  rx255_start:
+    length rx241_eos, rx241_tgt
+    gt rx241_pos, rx241_eos, rx241_done
+    set rx241_off, 0
+    lt rx241_pos, 2, rx241_start
+    sub rx241_off, rx241_pos, 1
+    substr rx241_tgt, rx241_tgt, rx241_off
+  rx241_start:
+    eq $I10, 1, rx241_restart
+    rx241_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan258_done
-    goto rxscan258_scan
-  rxscan258_loop:
-    ($P10) = rx255_cur."from"()
+    ne $I10, -1, rxscan244_done
+    goto rxscan244_scan
+  rxscan244_loop:
+    ($P10) = rx241_cur."from"()
     inc $P10
-    set rx255_pos, $P10
-    ge rx255_pos, rx255_eos, rxscan258_done
-  rxscan258_scan:
-    set_addr $I10, rxscan258_loop
-    rx255_cur."!mark_push"(0, rx255_pos, $I10)
-  rxscan258_done:
+    set rx241_pos, $P10
+    ge rx241_pos, rx241_eos, rxscan244_done
+  rxscan244_scan:
+    set_addr $I10, rxscan244_loop
+    rx241_cur."!mark_push"(0, rx241_pos, $I10)
+  rxscan244_done:
 .annotate 'line', 88
   # rx literal  "\\e"
-    add $I11, rx255_pos, 2
-    gt $I11, rx255_eos, rx255_fail
-    sub $I11, rx255_pos, rx255_off
-    substr $S10, rx255_tgt, $I11, 2
-    ne $S10, "\\e", rx255_fail
-    add rx255_pos, 2
+    add $I11, rx241_pos, 2
+    gt $I11, rx241_eos, rx241_fail
+    sub $I11, rx241_pos, rx241_off
+    substr $S10, rx241_tgt, $I11, 2
+    ne $S10, "\\e", rx241_fail
+    add rx241_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx255_cur."!cursor_pos"(rx255_pos)
-    $P10 = rx255_cur."quotemod_check"("b")
-    unless $P10, rx255_fail
+    rx241_cur."!cursor_pos"(rx241_pos)
+    $P10 = rx241_cur."quotemod_check"("b")
+    unless $P10, rx241_fail
   # rx pass
-    rx255_cur."!cursor_pass"(rx255_pos, "quote_escape:sym<esc>")
-    rx255_cur."!cursor_debug"("PASS  ", "quote_escape:sym<esc>", " at pos=", rx255_pos)
-    .return (rx255_cur)
-  rx255_fail:
-.annotate 'line', 33
-    (rx255_rep, rx255_pos, $I10, $P10) = rx255_cur."!mark_fail"(0)
-    lt rx255_pos, -1, rx255_done
-    eq rx255_pos, -1, rx255_fail
+    rx241_cur."!cursor_pass"(rx241_pos, "quote_escape:sym<esc>")
+    rx241_cur."!cursor_debug"("PASS  ", "quote_escape:sym<esc>", " at pos=", rx241_pos)
+    .return (rx241_cur)
+  rx241_restart:
+.annotate 'line', 33
+    rx241_cur."!cursor_debug"("NEXT ", "quote_escape:sym<esc>")
+  rx241_fail:
+    (rx241_rep, rx241_pos, $I10, $P10) = rx241_cur."!mark_fail"(0)
+    lt rx241_pos, -1, rx241_done
+    eq rx241_pos, -1, rx241_fail
     jump $I10
-  rx255_done:
-    rx255_cur."!cursor_fail"()
-    rx255_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<esc>")
-    .return (rx255_cur)
+  rx241_done:
+    rx241_cur."!cursor_fail"()
+    rx241_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<esc>")
+    .return (rx241_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1277356884.2847") :method
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1280467467.13603") :method
 .annotate 'line', 33
-    new $P257, "ResizablePMCArray"
-    push $P257, "\\e"
-    .return ($P257)
+    new $P243, "ResizablePMCArray"
+    push $P243, "\\e"
+    .return ($P243)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>"  :subid("85_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "quote_escape:sym<hex>"  :subid("85_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx260_tgt
-    .local int rx260_pos
-    .local int rx260_off
-    .local int rx260_eos
-    .local int rx260_rep
-    .local pmc rx260_cur
-    (rx260_cur, rx260_pos, rx260_tgt) = self."!cursor_start"()
-    rx260_cur."!cursor_debug"("START ", "quote_escape:sym<hex>")
-    .lex unicode:"$\x{a2}", rx260_cur
+    .local string rx246_tgt
+    .local int rx246_pos
+    .local int rx246_off
+    .local int rx246_eos
+    .local int rx246_rep
+    .local pmc rx246_cur
+    (rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx246_cur
     .local pmc match
     .lex "$/", match
-    length rx260_eos, rx260_tgt
-    gt rx260_pos, rx260_eos, rx260_done
-    set rx260_off, 0
-    lt rx260_pos, 2, rx260_start
-    sub rx260_off, rx260_pos, 1
-    substr rx260_tgt, rx260_tgt, rx260_off
-  rx260_start:
+    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
+    rx246_cur."!cursor_debug"("START ", "quote_escape:sym<hex>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan263_done
-    goto rxscan263_scan
-  rxscan263_loop:
-    ($P10) = rx260_cur."from"()
+    ne $I10, -1, rxscan249_done
+    goto rxscan249_scan
+  rxscan249_loop:
+    ($P10) = rx246_cur."from"()
     inc $P10
-    set rx260_pos, $P10
-    ge rx260_pos, rx260_eos, rxscan263_done
-  rxscan263_scan:
-    set_addr $I10, rxscan263_loop
-    rx260_cur."!mark_push"(0, rx260_pos, $I10)
-  rxscan263_done:
+    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:
 .annotate 'line', 90
   # rx literal  unicode:"\\x"
-    add $I11, rx260_pos, 2
-    gt $I11, rx260_eos, rx260_fail
-    sub $I11, rx260_pos, rx260_off
-    substr $S10, rx260_tgt, $I11, 2
-    ne $S10, unicode:"\\x", rx260_fail
-    add rx260_pos, 2
+    add $I11, rx246_pos, 2
+    gt $I11, rx246_eos, rx246_fail
+    sub $I11, rx246_pos, rx246_off
+    substr $S10, rx246_tgt, $I11, 2
+    ne $S10, unicode:"\\x", rx246_fail
+    add rx246_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx260_cur."!cursor_pos"(rx260_pos)
-    $P10 = rx260_cur."quotemod_check"("b")
-    unless $P10, rx260_fail
-  alt264_0:
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."quotemod_check"("b")
+    unless $P10, rx246_fail
+  alt250_0:
 .annotate 'line', 91
-    set_addr $I10, alt264_1
-    rx260_cur."!mark_push"(0, rx260_pos, $I10)
+    set_addr $I10, alt250_1
+    rx246_cur."!mark_push"(0, rx246_pos, $I10)
   # rx subrule "hexint" subtype=capture negate=
-    rx260_cur."!cursor_pos"(rx260_pos)
-    $P10 = rx260_cur."hexint"()
-    unless $P10, rx260_fail
-    rx260_cur."!mark_push"(0, -1, 0, $P10)
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."hexint"()
+    unless $P10, rx246_fail
+    rx246_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("hexint")
-    rx260_pos = $P10."pos"()
-    goto alt264_end
-  alt264_1:
+    rx246_pos = $P10."pos"()
+    goto alt250_end
+  alt250_1:
   # rx literal  "["
-    add $I11, rx260_pos, 1
-    gt $I11, rx260_eos, rx260_fail
-    sub $I11, rx260_pos, rx260_off
-    substr $S10, rx260_tgt, $I11, 1
-    ne $S10, "[", rx260_fail
-    add rx260_pos, 1
+    add $I11, rx246_pos, 1
+    gt $I11, rx246_eos, rx246_fail
+    sub $I11, rx246_pos, rx246_off
+    substr $S10, rx246_tgt, $I11, 1
+    ne $S10, "[", rx246_fail
+    add rx246_pos, 1
   # rx subrule "hexints" subtype=capture negate=
-    rx260_cur."!cursor_pos"(rx260_pos)
-    $P10 = rx260_cur."hexints"()
-    unless $P10, rx260_fail
-    rx260_cur."!mark_push"(0, -1, 0, $P10)
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."hexints"()
+    unless $P10, rx246_fail
+    rx246_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("hexints")
-    rx260_pos = $P10."pos"()
+    rx246_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx260_pos, 1
-    gt $I11, rx260_eos, rx260_fail
-    sub $I11, rx260_pos, rx260_off
-    substr $S10, rx260_tgt, $I11, 1
-    ne $S10, "]", rx260_fail
-    add rx260_pos, 1
-  alt264_end:
+    add $I11, rx246_pos, 1
+    gt $I11, rx246_eos, rx246_fail
+    sub $I11, rx246_pos, rx246_off
+    substr $S10, rx246_tgt, $I11, 1
+    ne $S10, "]", rx246_fail
+    add rx246_pos, 1
+  alt250_end:
 .annotate 'line', 89
   # rx pass
-    rx260_cur."!cursor_pass"(rx260_pos, "quote_escape:sym<hex>")
-    rx260_cur."!cursor_debug"("PASS  ", "quote_escape:sym<hex>", " at pos=", rx260_pos)
-    .return (rx260_cur)
-  rx260_fail:
-.annotate 'line', 33
-    (rx260_rep, rx260_pos, $I10, $P10) = rx260_cur."!mark_fail"(0)
-    lt rx260_pos, -1, rx260_done
-    eq rx260_pos, -1, rx260_fail
+    rx246_cur."!cursor_pass"(rx246_pos, "quote_escape:sym<hex>")
+    rx246_cur."!cursor_debug"("PASS  ", "quote_escape:sym<hex>", " at pos=", rx246_pos)
+    .return (rx246_cur)
+  rx246_restart:
+.annotate 'line', 33
+    rx246_cur."!cursor_debug"("NEXT ", "quote_escape:sym<hex>")
+  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
-  rx260_done:
-    rx260_cur."!cursor_fail"()
-    rx260_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<hex>")
-    .return (rx260_cur)
+  rx246_done:
+    rx246_cur."!cursor_fail"()
+    rx246_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<hex>")
+    .return (rx246_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1277356884.2847") :method
+.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1280467467.13603") :method
 .annotate 'line', 33
-    new $P262, "ResizablePMCArray"
-    push $P262, unicode:"\\x"
-    .return ($P262)
+    new $P248, "ResizablePMCArray"
+    push $P248, unicode:"\\x"
+    .return ($P248)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>"  :subid("87_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "quote_escape:sym<oct>"  :subid("87_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx266_tgt
-    .local int rx266_pos
-    .local int rx266_off
-    .local int rx266_eos
-    .local int rx266_rep
-    .local pmc rx266_cur
-    (rx266_cur, rx266_pos, rx266_tgt) = self."!cursor_start"()
-    rx266_cur."!cursor_debug"("START ", "quote_escape:sym<oct>")
-    .lex unicode:"$\x{a2}", rx266_cur
+    .local string rx252_tgt
+    .local int rx252_pos
+    .local int rx252_off
+    .local int rx252_eos
+    .local int rx252_rep
+    .local pmc rx252_cur
+    (rx252_cur, rx252_pos, rx252_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx252_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:
+    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
+    rx252_cur."!cursor_debug"("START ", "quote_escape:sym<oct>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan269_done
-    goto rxscan269_scan
-  rxscan269_loop:
-    ($P10) = rx266_cur."from"()
+    ne $I10, -1, rxscan255_done
+    goto rxscan255_scan
+  rxscan255_loop:
+    ($P10) = rx252_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:
+    set rx252_pos, $P10
+    ge rx252_pos, rx252_eos, rxscan255_done
+  rxscan255_scan:
+    set_addr $I10, rxscan255_loop
+    rx252_cur."!mark_push"(0, rx252_pos, $I10)
+  rxscan255_done:
 .annotate 'line', 94
   # rx literal  "\\o"
-    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, "\\o", rx266_fail
-    add rx266_pos, 2
+    add $I11, rx252_pos, 2
+    gt $I11, rx252_eos, rx252_fail
+    sub $I11, rx252_pos, rx252_off
+    substr $S10, rx252_tgt, $I11, 2
+    ne $S10, "\\o", rx252_fail
+    add rx252_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx266_cur."!cursor_pos"(rx266_pos)
-    $P10 = rx266_cur."quotemod_check"("b")
-    unless $P10, rx266_fail
-  alt270_0:
+    rx252_cur."!cursor_pos"(rx252_pos)
+    $P10 = rx252_cur."quotemod_check"("b")
+    unless $P10, rx252_fail
+  alt256_0:
 .annotate 'line', 95
-    set_addr $I10, alt270_1
-    rx266_cur."!mark_push"(0, rx266_pos, $I10)
+    set_addr $I10, alt256_1
+    rx252_cur."!mark_push"(0, rx252_pos, $I10)
   # rx subrule "octint" subtype=capture negate=
-    rx266_cur."!cursor_pos"(rx266_pos)
-    $P10 = rx266_cur."octint"()
-    unless $P10, rx266_fail
-    rx266_cur."!mark_push"(0, -1, 0, $P10)
+    rx252_cur."!cursor_pos"(rx252_pos)
+    $P10 = rx252_cur."octint"()
+    unless $P10, rx252_fail
+    rx252_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("octint")
-    rx266_pos = $P10."pos"()
-    goto alt270_end
-  alt270_1:
+    rx252_pos = $P10."pos"()
+    goto alt256_end
+  alt256_1:
   # rx literal  "["
-    add $I11, rx266_pos, 1
-    gt $I11, rx266_eos, rx266_fail
-    sub $I11, rx266_pos, rx266_off
-    substr $S10, rx266_tgt, $I11, 1
-    ne $S10, "[", rx266_fail
-    add rx266_pos, 1
+    add $I11, rx252_pos, 1
+    gt $I11, rx252_eos, rx252_fail
+    sub $I11, rx252_pos, rx252_off
+    substr $S10, rx252_tgt, $I11, 1
+    ne $S10, "[", rx252_fail
+    add rx252_pos, 1
   # rx subrule "octints" subtype=capture negate=
-    rx266_cur."!cursor_pos"(rx266_pos)
-    $P10 = rx266_cur."octints"()
-    unless $P10, rx266_fail
-    rx266_cur."!mark_push"(0, -1, 0, $P10)
+    rx252_cur."!cursor_pos"(rx252_pos)
+    $P10 = rx252_cur."octints"()
+    unless $P10, rx252_fail
+    rx252_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("octints")
-    rx266_pos = $P10."pos"()
+    rx252_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx266_pos, 1
-    gt $I11, rx266_eos, rx266_fail
-    sub $I11, rx266_pos, rx266_off
-    substr $S10, rx266_tgt, $I11, 1
-    ne $S10, "]", rx266_fail
-    add rx266_pos, 1
-  alt270_end:
+    add $I11, rx252_pos, 1
+    gt $I11, rx252_eos, rx252_fail
+    sub $I11, rx252_pos, rx252_off
+    substr $S10, rx252_tgt, $I11, 1
+    ne $S10, "]", rx252_fail
+    add rx252_pos, 1
+  alt256_end:
 .annotate 'line', 93
   # rx pass
-    rx266_cur."!cursor_pass"(rx266_pos, "quote_escape:sym<oct>")
-    rx266_cur."!cursor_debug"("PASS  ", "quote_escape:sym<oct>", " at pos=", rx266_pos)
-    .return (rx266_cur)
-  rx266_fail:
-.annotate 'line', 33
-    (rx266_rep, rx266_pos, $I10, $P10) = rx266_cur."!mark_fail"(0)
-    lt rx266_pos, -1, rx266_done
-    eq rx266_pos, -1, rx266_fail
+    rx252_cur."!cursor_pass"(rx252_pos, "quote_escape:sym<oct>")
+    rx252_cur."!cursor_debug"("PASS  ", "quote_escape:sym<oct>", " at pos=", rx252_pos)
+    .return (rx252_cur)
+  rx252_restart:
+.annotate 'line', 33
+    rx252_cur."!cursor_debug"("NEXT ", "quote_escape:sym<oct>")
+  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
-  rx266_done:
-    rx266_cur."!cursor_fail"()
-    rx266_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<oct>")
-    .return (rx266_cur)
+  rx252_done:
+    rx252_cur."!cursor_fail"()
+    rx252_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<oct>")
+    .return (rx252_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1277356884.2847") :method
+.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1280467467.13603") :method
 .annotate 'line', 33
-    new $P268, "ResizablePMCArray"
-    push $P268, "\\o"
-    .return ($P268)
+    new $P254, "ResizablePMCArray"
+    push $P254, "\\o"
+    .return ($P254)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>"  :subid("89_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "quote_escape:sym<chr>"  :subid("89_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx272_tgt
-    .local int rx272_pos
-    .local int rx272_off
-    .local int rx272_eos
-    .local int rx272_rep
-    .local pmc rx272_cur
-    (rx272_cur, rx272_pos, rx272_tgt) = self."!cursor_start"()
-    rx272_cur."!cursor_debug"("START ", "quote_escape:sym<chr>")
-    .lex unicode:"$\x{a2}", rx272_cur
+    .local string rx258_tgt
+    .local int rx258_pos
+    .local int rx258_off
+    .local int rx258_eos
+    .local int rx258_rep
+    .local pmc rx258_cur
+    (rx258_cur, rx258_pos, rx258_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx258_cur
     .local pmc match
     .lex "$/", match
-    length rx272_eos, rx272_tgt
-    gt rx272_pos, rx272_eos, rx272_done
-    set rx272_off, 0
-    lt rx272_pos, 2, rx272_start
-    sub rx272_off, rx272_pos, 1
-    substr rx272_tgt, rx272_tgt, rx272_off
-  rx272_start:
+    length rx258_eos, rx258_tgt
+    gt rx258_pos, rx258_eos, rx258_done
+    set rx258_off, 0
+    lt rx258_pos, 2, rx258_start
+    sub rx258_off, rx258_pos, 1
+    substr rx258_tgt, rx258_tgt, rx258_off
+  rx258_start:
+    eq $I10, 1, rx258_restart
+    rx258_cur."!cursor_debug"("START ", "quote_escape:sym<chr>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan275_done
-    goto rxscan275_scan
-  rxscan275_loop:
-    ($P10) = rx272_cur."from"()
+    ne $I10, -1, rxscan261_done
+    goto rxscan261_scan
+  rxscan261_loop:
+    ($P10) = rx258_cur."from"()
     inc $P10
-    set rx272_pos, $P10
-    ge rx272_pos, rx272_eos, rxscan275_done
-  rxscan275_scan:
-    set_addr $I10, rxscan275_loop
-    rx272_cur."!mark_push"(0, rx272_pos, $I10)
-  rxscan275_done:
+    set rx258_pos, $P10
+    ge rx258_pos, rx258_eos, rxscan261_done
+  rxscan261_scan:
+    set_addr $I10, rxscan261_loop
+    rx258_cur."!mark_push"(0, rx258_pos, $I10)
+  rxscan261_done:
 .annotate 'line', 97
   # rx literal  "\\c"
-    add $I11, rx272_pos, 2
-    gt $I11, rx272_eos, rx272_fail
-    sub $I11, rx272_pos, rx272_off
-    substr $S10, rx272_tgt, $I11, 2
-    ne $S10, "\\c", rx272_fail
-    add rx272_pos, 2
+    add $I11, rx258_pos, 2
+    gt $I11, rx258_eos, rx258_fail
+    sub $I11, rx258_pos, rx258_off
+    substr $S10, rx258_tgt, $I11, 2
+    ne $S10, "\\c", rx258_fail
+    add rx258_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx272_cur."!cursor_pos"(rx272_pos)
-    $P10 = rx272_cur."quotemod_check"("b")
-    unless $P10, rx272_fail
+    rx258_cur."!cursor_pos"(rx258_pos)
+    $P10 = rx258_cur."quotemod_check"("b")
+    unless $P10, rx258_fail
   # rx subrule "charspec" subtype=capture negate=
-    rx272_cur."!cursor_pos"(rx272_pos)
-    $P10 = rx272_cur."charspec"()
-    unless $P10, rx272_fail
-    rx272_cur."!mark_push"(0, -1, 0, $P10)
+    rx258_cur."!cursor_pos"(rx258_pos)
+    $P10 = rx258_cur."charspec"()
+    unless $P10, rx258_fail
+    rx258_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("charspec")
-    rx272_pos = $P10."pos"()
+    rx258_pos = $P10."pos"()
   # rx pass
-    rx272_cur."!cursor_pass"(rx272_pos, "quote_escape:sym<chr>")
-    rx272_cur."!cursor_debug"("PASS  ", "quote_escape:sym<chr>", " at pos=", rx272_pos)
-    .return (rx272_cur)
-  rx272_fail:
-.annotate 'line', 33
-    (rx272_rep, rx272_pos, $I10, $P10) = rx272_cur."!mark_fail"(0)
-    lt rx272_pos, -1, rx272_done
-    eq rx272_pos, -1, rx272_fail
+    rx258_cur."!cursor_pass"(rx258_pos, "quote_escape:sym<chr>")
+    rx258_cur."!cursor_debug"("PASS  ", "quote_escape:sym<chr>", " at pos=", rx258_pos)
+    .return (rx258_cur)
+  rx258_restart:
+.annotate 'line', 33
+    rx258_cur."!cursor_debug"("NEXT ", "quote_escape:sym<chr>")
+  rx258_fail:
+    (rx258_rep, rx258_pos, $I10, $P10) = rx258_cur."!mark_fail"(0)
+    lt rx258_pos, -1, rx258_done
+    eq rx258_pos, -1, rx258_fail
     jump $I10
-  rx272_done:
-    rx272_cur."!cursor_fail"()
-    rx272_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<chr>")
-    .return (rx272_cur)
+  rx258_done:
+    rx258_cur."!cursor_fail"()
+    rx258_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<chr>")
+    .return (rx258_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1277356884.2847") :method
+.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1280467467.13603") :method
 .annotate 'line', 33
-    new $P274, "ResizablePMCArray"
-    push $P274, "\\c"
-    .return ($P274)
+    new $P260, "ResizablePMCArray"
+    push $P260, "\\c"
+    .return ($P260)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<0>"  :subid("91_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "quote_escape:sym<0>"  :subid("91_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx277_tgt
-    .local int rx277_pos
-    .local int rx277_off
-    .local int rx277_eos
-    .local int rx277_rep
-    .local pmc rx277_cur
-    (rx277_cur, rx277_pos, rx277_tgt) = self."!cursor_start"()
-    rx277_cur."!cursor_debug"("START ", "quote_escape:sym<0>")
-    .lex unicode:"$\x{a2}", rx277_cur
+    .local string rx263_tgt
+    .local int rx263_pos
+    .local int rx263_off
+    .local int rx263_eos
+    .local int rx263_rep
+    .local pmc rx263_cur
+    (rx263_cur, rx263_pos, rx263_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx263_cur
     .local pmc match
     .lex "$/", match
-    length rx277_eos, rx277_tgt
-    gt rx277_pos, rx277_eos, rx277_done
-    set rx277_off, 0
-    lt rx277_pos, 2, rx277_start
-    sub rx277_off, rx277_pos, 1
-    substr rx277_tgt, rx277_tgt, rx277_off
-  rx277_start:
+    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
+    rx263_cur."!cursor_debug"("START ", "quote_escape:sym<0>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan280_done
-    goto rxscan280_scan
-  rxscan280_loop:
-    ($P10) = rx277_cur."from"()
+    ne $I10, -1, rxscan266_done
+    goto rxscan266_scan
+  rxscan266_loop:
+    ($P10) = rx263_cur."from"()
     inc $P10
-    set rx277_pos, $P10
-    ge rx277_pos, rx277_eos, rxscan280_done
-  rxscan280_scan:
-    set_addr $I10, rxscan280_loop
-    rx277_cur."!mark_push"(0, rx277_pos, $I10)
-  rxscan280_done:
+    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', 98
   # rx literal  "\\"
-    add $I11, rx277_pos, 1
-    gt $I11, rx277_eos, rx277_fail
-    sub $I11, rx277_pos, rx277_off
-    substr $S10, rx277_tgt, $I11, 1
-    ne $S10, "\\", rx277_fail
-    add rx277_pos, 1
+    add $I11, rx263_pos, 1
+    gt $I11, rx263_eos, rx263_fail
+    sub $I11, rx263_pos, rx263_off
+    substr $S10, rx263_tgt, $I11, 1
+    ne $S10, "\\", rx263_fail
+    add rx263_pos, 1
   # rx subcapture "sym"
-    set_addr $I10, rxcap_281_fail
-    rx277_cur."!mark_push"(0, rx277_pos, $I10)
+    set_addr $I10, rxcap_267_fail
+    rx263_cur."!mark_push"(0, rx263_pos, $I10)
   # rx literal  "0"
-    add $I11, rx277_pos, 1
-    gt $I11, rx277_eos, rx277_fail
-    sub $I11, rx277_pos, rx277_off
-    substr $S10, rx277_tgt, $I11, 1
-    ne $S10, "0", rx277_fail
-    add rx277_pos, 1
-    set_addr $I10, rxcap_281_fail
-    ($I12, $I11) = rx277_cur."!mark_peek"($I10)
-    rx277_cur."!cursor_pos"($I11)
-    ($P10) = rx277_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx277_pos, "")
-    rx277_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx263_pos, 1
+    gt $I11, rx263_eos, rx263_fail
+    sub $I11, rx263_pos, rx263_off
+    substr $S10, rx263_tgt, $I11, 1
+    ne $S10, "0", rx263_fail
+    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_281_done
-  rxcap_281_fail:
-    goto rx277_fail
-  rxcap_281_done:
+    goto rxcap_267_done
+  rxcap_267_fail:
+    goto rx263_fail
+  rxcap_267_done:
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx277_cur."!cursor_pos"(rx277_pos)
-    $P10 = rx277_cur."quotemod_check"("b")
-    unless $P10, rx277_fail
+    rx263_cur."!cursor_pos"(rx263_pos)
+    $P10 = rx263_cur."quotemod_check"("b")
+    unless $P10, rx263_fail
   # rx pass
-    rx277_cur."!cursor_pass"(rx277_pos, "quote_escape:sym<0>")
-    rx277_cur."!cursor_debug"("PASS  ", "quote_escape:sym<0>", " at pos=", rx277_pos)
-    .return (rx277_cur)
-  rx277_fail:
-.annotate 'line', 33
-    (rx277_rep, rx277_pos, $I10, $P10) = rx277_cur."!mark_fail"(0)
-    lt rx277_pos, -1, rx277_done
-    eq rx277_pos, -1, rx277_fail
+    rx263_cur."!cursor_pass"(rx263_pos, "quote_escape:sym<0>")
+    rx263_cur."!cursor_debug"("PASS  ", "quote_escape:sym<0>", " at pos=", rx263_pos)
+    .return (rx263_cur)
+  rx263_restart:
+.annotate 'line', 33
+    rx263_cur."!cursor_debug"("NEXT ", "quote_escape:sym<0>")
+  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
-  rx277_done:
-    rx277_cur."!cursor_fail"()
-    rx277_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<0>")
-    .return (rx277_cur)
+  rx263_done:
+    rx263_cur."!cursor_fail"()
+    rx263_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<0>")
+    .return (rx263_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1277356884.2847") :method
+.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1280467467.13603") :method
 .annotate 'line', 33
-    new $P279, "ResizablePMCArray"
-    push $P279, "\\0"
-    .return ($P279)
+    new $P265, "ResizablePMCArray"
+    push $P265, "\\0"
+    .return ($P265)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<misc>"  :subid("93_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "quote_escape:sym<misc>"  :subid("93_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .const 'Sub' $P302 = "97_1277356884.2847" 
-    capture_lex $P302
-    .const 'Sub' $P295 = "96_1277356884.2847" 
-    capture_lex $P295
-    .const 'Sub' $P290 = "95_1277356884.2847" 
-    capture_lex $P290
-    .local string rx283_tgt
-    .local int rx283_pos
-    .local int rx283_off
-    .local int rx283_eos
-    .local int rx283_rep
-    .local pmc rx283_cur
-    (rx283_cur, rx283_pos, rx283_tgt) = self."!cursor_start"()
-    rx283_cur."!cursor_debug"("START ", "quote_escape:sym<misc>")
-    .lex unicode:"$\x{a2}", rx283_cur
+    .const 'Sub' $P288 = "97_1280467467.13603" 
+    capture_lex $P288
+    .const 'Sub' $P281 = "96_1280467467.13603" 
+    capture_lex $P281
+    .const 'Sub' $P276 = "95_1280467467.13603" 
+    capture_lex $P276
+    .local string rx269_tgt
+    .local int rx269_pos
+    .local int rx269_off
+    .local int rx269_eos
+    .local int rx269_rep
+    .local pmc rx269_cur
+    (rx269_cur, rx269_pos, rx269_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx269_cur
     .local pmc match
     .lex "$/", match
-    length rx283_eos, rx283_tgt
-    gt rx283_pos, rx283_eos, rx283_done
-    set rx283_off, 0
-    lt rx283_pos, 2, rx283_start
-    sub rx283_off, rx283_pos, 1
-    substr rx283_tgt, rx283_tgt, rx283_off
-  rx283_start:
+    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
+    rx269_cur."!cursor_debug"("START ", "quote_escape:sym<misc>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan286_done
-    goto rxscan286_scan
-  rxscan286_loop:
-    ($P10) = rx283_cur."from"()
+    ne $I10, -1, rxscan272_done
+    goto rxscan272_scan
+  rxscan272_loop:
+    ($P10) = rx269_cur."from"()
     inc $P10
-    set rx283_pos, $P10
-    ge rx283_pos, rx283_eos, rxscan286_done
-  rxscan286_scan:
-    set_addr $I10, rxscan286_loop
-    rx283_cur."!mark_push"(0, rx283_pos, $I10)
-  rxscan286_done:
+    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', 100
-    rx283_cur."!cursor_pos"(rx283_pos)
-    find_lex $P287, unicode:"$\x{a2}"
-    $P288 = $P287."MATCH"()
-    store_lex "$/", $P288
-    .const 'Sub' $P290 = "95_1277356884.2847" 
-    capture_lex $P290
-    $P291 = $P290()
+    rx269_cur."!cursor_pos"(rx269_pos)
+    find_lex $P273, unicode:"$\x{a2}"
+    $P274 = $P273."MATCH"()
+    store_lex "$/", $P274
+    .const 'Sub' $P276 = "95_1280467467.13603" 
+    capture_lex $P276
+    $P277 = $P276()
   # rx literal  "\\"
-    add $I11, rx283_pos, 1
-    gt $I11, rx283_eos, rx283_fail
-    sub $I11, rx283_pos, rx283_off
-    substr $S10, rx283_tgt, $I11, 1
-    ne $S10, "\\", rx283_fail
-    add rx283_pos, 1
-  alt292_0:
+    add $I11, rx269_pos, 1
+    gt $I11, rx269_eos, rx269_fail
+    sub $I11, rx269_pos, rx269_off
+    substr $S10, rx269_tgt, $I11, 1
+    ne $S10, "\\", rx269_fail
+    add rx269_pos, 1
+  alt278_0:
 .annotate 'line', 101
-    set_addr $I10, alt292_1
-    rx283_cur."!mark_push"(0, rx283_pos, $I10)
+    set_addr $I10, alt278_1
+    rx269_cur."!mark_push"(0, rx269_pos, $I10)
 .annotate 'line', 102
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx283_cur."!cursor_pos"(rx283_pos)
-    $P10 = rx283_cur."quotemod_check"("b")
-    unless $P10, rx283_fail
-  alt293_0:
+    rx269_cur."!cursor_pos"(rx269_pos)
+    $P10 = rx269_cur."quotemod_check"("b")
+    unless $P10, rx269_fail
+  alt279_0:
 .annotate 'line', 103
-    set_addr $I10, alt293_1
-    rx283_cur."!mark_push"(0, rx283_pos, $I10)
+    set_addr $I10, alt279_1
+    rx269_cur."!mark_push"(0, rx269_pos, $I10)
 .annotate 'line', 104
-  # rx subrule $P295 subtype=capture negate=
-    rx283_cur."!cursor_pos"(rx283_pos)
-    .const 'Sub' $P295 = "96_1277356884.2847" 
-    capture_lex $P295
-    $P10 = rx283_cur.$P295()
-    unless $P10, rx283_fail
-    rx283_cur."!mark_push"(0, -1, 0, $P10)
+  # rx subrule $P281 subtype=capture negate=
+    rx269_cur."!cursor_pos"(rx269_pos)
+    .const 'Sub' $P281 = "96_1280467467.13603" 
+    capture_lex $P281
+    $P10 = rx269_cur.$P281()
+    unless $P10, rx269_fail
+    rx269_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("textqq")
-    rx283_pos = $P10."pos"()
-    goto alt293_end
-  alt293_1:
+    rx269_pos = $P10."pos"()
+    goto alt279_end
+  alt279_1:
 .annotate 'line', 105
   # rx subcapture "x"
-    set_addr $I10, rxcap_298_fail
-    rx283_cur."!mark_push"(0, rx283_pos, $I10)
+    set_addr $I10, rxcap_284_fail
+    rx269_cur."!mark_push"(0, rx269_pos, $I10)
   # rx charclass w
-    ge rx283_pos, rx283_eos, rx283_fail
-    sub $I10, rx283_pos, rx283_off
-    is_cclass $I11, 8192, rx283_tgt, $I10
-    unless $I11, rx283_fail
-    inc rx283_pos
-    set_addr $I10, rxcap_298_fail
-    ($I12, $I11) = rx283_cur."!mark_peek"($I10)
-    rx283_cur."!cursor_pos"($I11)
-    ($P10) = rx283_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx283_pos, "")
-    rx283_cur."!mark_push"(0, -1, 0, $P10)
+    ge rx269_pos, rx269_eos, rx269_fail
+    sub $I10, rx269_pos, rx269_off
+    is_cclass $I11, 8192, rx269_tgt, $I10
+    unless $I11, rx269_fail
+    inc rx269_pos
+    set_addr $I10, rxcap_284_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"("x")
-    goto rxcap_298_done
-  rxcap_298_fail:
-    goto rx283_fail
-  rxcap_298_done:
-    rx283_cur."!cursor_pos"(rx283_pos)
-    find_lex $P299, unicode:"$\x{a2}"
-    $P300 = $P299."MATCH"()
-    store_lex "$/", $P300
-    .const 'Sub' $P302 = "97_1277356884.2847" 
-    capture_lex $P302
-    $P312 = $P302()
-  alt293_end:
+    goto rxcap_284_done
+  rxcap_284_fail:
+    goto rx269_fail
+  rxcap_284_done:
+    rx269_cur."!cursor_pos"(rx269_pos)
+    find_lex $P285, unicode:"$\x{a2}"
+    $P286 = $P285."MATCH"()
+    store_lex "$/", $P286
+    .const 'Sub' $P288 = "97_1280467467.13603" 
+    capture_lex $P288
+    $P298 = $P288()
+  alt279_end:
 .annotate 'line', 102
-    goto alt292_end
-  alt292_1:
+    goto alt278_end
+  alt278_1:
 .annotate 'line', 107
   # rx subcapture "textq"
-    set_addr $I10, rxcap_313_fail
-    rx283_cur."!mark_push"(0, rx283_pos, $I10)
+    set_addr $I10, rxcap_299_fail
+    rx269_cur."!mark_push"(0, rx269_pos, $I10)
   # rx charclass .
-    ge rx283_pos, rx283_eos, rx283_fail
-    inc rx283_pos
-    set_addr $I10, rxcap_313_fail
-    ($I12, $I11) = rx283_cur."!mark_peek"($I10)
-    rx283_cur."!cursor_pos"($I11)
-    ($P10) = rx283_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx283_pos, "")
-    rx283_cur."!mark_push"(0, -1, 0, $P10)
+    ge rx269_pos, rx269_eos, rx269_fail
+    inc rx269_pos
+    set_addr $I10, rxcap_299_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"("textq")
-    goto rxcap_313_done
-  rxcap_313_fail:
-    goto rx283_fail
-  rxcap_313_done:
-  alt292_end:
+    goto rxcap_299_done
+  rxcap_299_fail:
+    goto rx269_fail
+  rxcap_299_done:
+  alt278_end:
 .annotate 'line', 99
   # rx pass
-    rx283_cur."!cursor_pass"(rx283_pos, "quote_escape:sym<misc>")
-    rx283_cur."!cursor_debug"("PASS  ", "quote_escape:sym<misc>", " at pos=", rx283_pos)
-    .return (rx283_cur)
-  rx283_fail:
-.annotate 'line', 33
-    (rx283_rep, rx283_pos, $I10, $P10) = rx283_cur."!mark_fail"(0)
-    lt rx283_pos, -1, rx283_done
-    eq rx283_pos, -1, rx283_fail
+    rx269_cur."!cursor_pass"(rx269_pos, "quote_escape:sym<misc>")
+    rx269_cur."!cursor_debug"("PASS  ", "quote_escape:sym<misc>", " at pos=", rx269_pos)
+    .return (rx269_cur)
+  rx269_restart:
+.annotate 'line', 33
+    rx269_cur."!cursor_debug"("NEXT ", "quote_escape:sym<misc>")
+  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
-  rx283_done:
-    rx283_cur."!cursor_fail"()
-    rx283_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<misc>")
-    .return (rx283_cur)
+  rx269_done:
+    rx269_cur."!cursor_fail"()
+    rx269_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<misc>")
+    .return (rx269_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1277356884.2847") :method
+.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1280467467.13603") :method
 .annotate 'line', 33
-    new $P285, "ResizablePMCArray"
-    push $P285, ""
-    .return ($P285)
+    new $P271, "ResizablePMCArray"
+    push $P271, ""
+    .return ($P271)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block289"  :anon :subid("95_1277356884.2847") :outer("93_1277356884.2847")
+.sub "_block275"  :anon :subid("95_1280467467.13603") :outer("93_1280467467.13603")
 .annotate 'line', 100
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block294"  :anon :subid("96_1277356884.2847") :method :outer("93_1277356884.2847")
+.sub "_block280"  :anon :subid("96_1280467467.13603") :method :outer("93_1280467467.13603")
 .annotate 'line', 104
-    .local string rx296_tgt
-    .local int rx296_pos
-    .local int rx296_off
-    .local int rx296_eos
-    .local int rx296_rep
-    .local pmc rx296_cur
-    (rx296_cur, rx296_pos, rx296_tgt) = self."!cursor_start"()
-    rx296_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx296_cur
+    .local string rx282_tgt
+    .local int rx282_pos
+    .local int rx282_off
+    .local int rx282_eos
+    .local int rx282_rep
+    .local pmc rx282_cur
+    (rx282_cur, rx282_pos, rx282_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx282_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:
+    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
+    rx282_cur."!cursor_debug"("START ", "")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan297_done
-    goto rxscan297_scan
-  rxscan297_loop:
-    ($P10) = rx296_cur."from"()
+    ne $I10, -1, rxscan283_done
+    goto rxscan283_scan
+  rxscan283_loop:
+    ($P10) = rx282_cur."from"()
     inc $P10
-    set rx296_pos, $P10
-    ge rx296_pos, rx296_eos, rxscan297_done
-  rxscan297_scan:
-    set_addr $I10, rxscan297_loop
-    rx296_cur."!mark_push"(0, rx296_pos, $I10)
-  rxscan297_done:
+    set rx282_pos, $P10
+    ge rx282_pos, rx282_eos, rxscan283_done
+  rxscan283_scan:
+    set_addr $I10, rxscan283_loop
+    rx282_cur."!mark_push"(0, rx282_pos, $I10)
+  rxscan283_done:
   # rx charclass W
-    ge rx296_pos, rx296_eos, rx296_fail
-    sub $I10, rx296_pos, rx296_off
-    is_cclass $I11, 8192, rx296_tgt, $I10
-    if $I11, rx296_fail
-    inc rx296_pos
+    ge rx282_pos, rx282_eos, rx282_fail
+    sub $I10, rx282_pos, rx282_off
+    is_cclass $I11, 8192, rx282_tgt, $I10
+    if $I11, rx282_fail
+    inc rx282_pos
   # rx pass
-    rx296_cur."!cursor_pass"(rx296_pos, "")
-    rx296_cur."!cursor_debug"("PASS  ", "", " at pos=", rx296_pos)
-    .return (rx296_cur)
-  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
+    rx282_cur."!cursor_pass"(rx282_pos, "")
+    rx282_cur."!cursor_debug"("PASS  ", "", " at pos=", rx282_pos)
+    .return (rx282_cur)
+  rx282_restart:
+    rx282_cur."!cursor_debug"("NEXT ", "")
+  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
-  rx296_done:
-    rx296_cur."!cursor_fail"()
-    rx296_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx296_cur)
+  rx282_done:
+    rx282_cur."!cursor_fail"()
+    rx282_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx282_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block301"  :anon :subid("97_1277356884.2847") :outer("93_1277356884.2847")
+.sub "_block287"  :anon :subid("97_1280467467.13603") :outer("93_1280467467.13603")
 .annotate 'line', 105
-    find_lex $P303, "$/"
-    $P304 = $P303."CURSOR"()
-    new $P305, "String"
-    assign $P305, "Unrecognized backslash sequence: '\\"
-    find_lex $P306, "$/"
-    unless_null $P306, vivify_108
-    $P306 = root_new ['parrot';'Hash']
+    find_lex $P289, "$/"
+    $P290 = $P289."CURSOR"()
+    new $P291, "String"
+    assign $P291, "Unrecognized backslash sequence: '\\"
+    find_lex $P292, "$/"
+    unless_null $P292, vivify_108
+    $P292 = root_new ['parrot';'Hash']
   vivify_108:
-    set $P307, $P306["x"]
-    unless_null $P307, vivify_109
-    new $P307, "Undef"
+    set $P293, $P292["x"]
+    unless_null $P293, vivify_109
+    new $P293, "Undef"
   vivify_109:
-    $S308 = $P307."Str"()
-    concat $P309, $P305, $S308
-    concat $P310, $P309, "'"
-    $P311 = $P304."panic"($P310)
-    .return ($P311)
+    $S294 = $P293."Str"()
+    concat $P295, $P291, $S294
+    concat $P296, $P295, "'"
+    $P297 = $P290."panic"($P296)
+    .return ($P297)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charname"  :subid("98_1277356884.2847") :method :outer("11_1277356884.2847")
-.annotate 'line', 33
-    .const 'Sub' $P324 = "100_1277356884.2847" 
-    capture_lex $P324
-    .local string rx315_tgt
-    .local int rx315_pos
-    .local int rx315_off
-    .local int rx315_eos
-    .local int rx315_rep
-    .local pmc rx315_cur
-    (rx315_cur, rx315_pos, rx315_tgt) = self."!cursor_start"()
-    rx315_cur."!cursor_debug"("START ", "charname")
-    .lex unicode:"$\x{a2}", rx315_cur
+.sub "charname"  :subid("98_1280467467.13603") :method :outer("11_1280467467.13603")
+.annotate 'line', 33
+    .const 'Sub' $P310 = "100_1280467467.13603" 
+    capture_lex $P310
+    .local string rx301_tgt
+    .local int rx301_pos
+    .local int rx301_off
+    .local int rx301_eos
+    .local int rx301_rep
+    .local pmc rx301_cur
+    (rx301_cur, rx301_pos, rx301_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx301_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:
+    length rx301_eos, rx301_tgt
+    gt rx301_pos, rx301_eos, rx301_done
+    set rx301_off, 0
+    lt rx301_pos, 2, rx301_start
+    sub rx301_off, rx301_pos, 1
+    substr rx301_tgt, rx301_tgt, rx301_off
+  rx301_start:
+    eq $I10, 1, rx301_restart
+    rx301_cur."!cursor_debug"("START ", "charname")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan319_done
-    goto rxscan319_scan
-  rxscan319_loop:
-    ($P10) = rx315_cur."from"()
+    ne $I10, -1, rxscan305_done
+    goto rxscan305_scan
+  rxscan305_loop:
+    ($P10) = rx301_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:
-  alt320_0:
+    set rx301_pos, $P10
+    ge rx301_pos, rx301_eos, rxscan305_done
+  rxscan305_scan:
+    set_addr $I10, rxscan305_loop
+    rx301_cur."!mark_push"(0, rx301_pos, $I10)
+  rxscan305_done:
+  alt306_0:
 .annotate 'line', 111
-    set_addr $I10, alt320_1
-    rx315_cur."!mark_push"(0, rx315_pos, $I10)
+    set_addr $I10, alt306_1
+    rx301_cur."!mark_push"(0, rx301_pos, $I10)
 .annotate 'line', 112
   # rx subrule "integer" subtype=capture negate=
-    rx315_cur."!cursor_pos"(rx315_pos)
-    $P10 = rx315_cur."integer"()
-    unless $P10, rx315_fail
-    rx315_cur."!mark_push"(0, -1, 0, $P10)
+    rx301_cur."!cursor_pos"(rx301_pos)
+    $P10 = rx301_cur."integer"()
+    unless $P10, rx301_fail
+    rx301_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("integer")
-    rx315_pos = $P10."pos"()
-    goto alt320_end
-  alt320_1:
+    rx301_pos = $P10."pos"()
+    goto alt306_end
+  alt306_1:
 .annotate 'line', 113
   # rx enumcharlist negate=0 
-    ge rx315_pos, rx315_eos, rx315_fail
-    sub $I10, rx315_pos, rx315_off
-    substr $S10, rx315_tgt, $I10, 1
+    ge rx301_pos, rx301_eos, rx301_fail
+    sub $I10, rx301_pos, rx301_off
+    substr $S10, rx301_tgt, $I10, 1
     index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", $S10
-    lt $I11, 0, rx315_fail
-    inc rx315_pos
-  # rx rxquantf321 ** 0..*
-    set_addr $I10, rxquantf321_loop
-    rx315_cur."!mark_push"(0, rx315_pos, $I10)
-    goto rxquantf321_done
-  rxquantf321_loop:
+    lt $I11, 0, rx301_fail
+    inc rx301_pos
+  # rx rxquantf307 ** 0..*
+    set_addr $I10, rxquantf307_loop
+    rx301_cur."!mark_push"(0, rx301_pos, $I10)
+    goto rxquantf307_done
+  rxquantf307_loop:
   # rx enumcharlist negate=1 
-    ge rx315_pos, rx315_eos, rx315_fail
-    sub $I10, rx315_pos, rx315_off
-    substr $S10, rx315_tgt, $I10, 1
+    ge rx301_pos, rx301_eos, rx301_fail
+    sub $I10, rx301_pos, rx301_off
+    substr $S10, rx301_tgt, $I10, 1
     index $I11, "],#", $S10
-    ge $I11, 0, rx315_fail
-    inc rx315_pos
-    set_addr $I10, rxquantf321_loop
-    rx315_cur."!mark_push"($I322, rx315_pos, $I10)
-  rxquantf321_done:
+    ge $I11, 0, rx301_fail
+    inc rx301_pos
+    set_addr $I10, rxquantf307_loop
+    rx301_cur."!mark_push"(rx301_rep, rx301_pos, $I10)
+  rxquantf307_done:
   # rx enumcharlist negate=0 
-    ge rx315_pos, rx315_eos, rx315_fail
-    sub $I10, rx315_pos, rx315_off
-    substr $S10, rx315_tgt, $I10, 1
+    ge rx301_pos, rx301_eos, rx301_fail
+    sub $I10, rx301_pos, rx301_off
+    substr $S10, rx301_tgt, $I10, 1
     index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)", $S10
-    lt $I11, 0, rx315_fail
-    inc rx315_pos
+    lt $I11, 0, rx301_fail
+    inc rx301_pos
 .annotate 'line', 114
   # rx subrule "before" subtype=zerowidth negate=
-    rx315_cur."!cursor_pos"(rx315_pos)
-    .const 'Sub' $P324 = "100_1277356884.2847" 
-    capture_lex $P324
-    $P10 = rx315_cur."before"($P324)
-    unless $P10, rx315_fail
-  alt320_end:
+    rx301_cur."!cursor_pos"(rx301_pos)
+    .const 'Sub' $P310 = "100_1280467467.13603" 
+    capture_lex $P310
+    $P10 = rx301_cur."before"($P310)
+    unless $P10, rx301_fail
+  alt306_end:
 .annotate 'line', 111
   # rx pass
-    rx315_cur."!cursor_pass"(rx315_pos, "charname")
-    rx315_cur."!cursor_debug"("PASS  ", "charname", " at pos=", rx315_pos)
-    .return (rx315_cur)
-  rx315_fail:
-.annotate 'line', 33
-    (rx315_rep, rx315_pos, $I10, $P10) = rx315_cur."!mark_fail"(0)
-    lt rx315_pos, -1, rx315_done
-    eq rx315_pos, -1, rx315_fail
+    rx301_cur."!cursor_pass"(rx301_pos, "charname")
+    rx301_cur."!cursor_debug"("PASS  ", "charname", " at pos=", rx301_pos)
+    .return (rx301_cur)
+  rx301_restart:
+.annotate 'line', 33
+    rx301_cur."!cursor_debug"("NEXT ", "charname")
+  rx301_fail:
+    (rx301_rep, rx301_pos, $I10, $P10) = rx301_cur."!mark_fail"(0)
+    lt rx301_pos, -1, rx301_done
+    eq rx301_pos, -1, rx301_fail
     jump $I10
-  rx315_done:
-    rx315_cur."!cursor_fail"()
-    rx315_cur."!cursor_debug"("FAIL  ", "charname")
-    .return (rx315_cur)
+  rx301_done:
+    rx301_cur."!cursor_fail"()
+    rx301_cur."!cursor_debug"("FAIL  ", "charname")
+    .return (rx301_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname"  :subid("99_1277356884.2847") :method
-.annotate 'line', 33
-    $P317 = self."!PREFIX__!subrule"("integer", "")
-    new $P318, "ResizablePMCArray"
-    push $P318, "Z"
-    push $P318, "Y"
-    push $P318, "X"
-    push $P318, "W"
-    push $P318, "V"
-    push $P318, "U"
-    push $P318, "T"
-    push $P318, "S"
-    push $P318, "R"
-    push $P318, "Q"
-    push $P318, "P"
-    push $P318, "O"
-    push $P318, "N"
-    push $P318, "M"
-    push $P318, "L"
-    push $P318, "K"
-    push $P318, "J"
-    push $P318, "I"
-    push $P318, "H"
-    push $P318, "G"
-    push $P318, "F"
-    push $P318, "E"
-    push $P318, "D"
-    push $P318, "C"
-    push $P318, "B"
-    push $P318, "A"
-    push $P318, "z"
-    push $P318, "y"
-    push $P318, "x"
-    push $P318, "w"
-    push $P318, "v"
-    push $P318, "u"
-    push $P318, "t"
-    push $P318, "s"
-    push $P318, "r"
-    push $P318, "q"
-    push $P318, "p"
-    push $P318, "o"
-    push $P318, "n"
-    push $P318, "m"
-    push $P318, "l"
-    push $P318, "k"
-    push $P318, "j"
-    push $P318, "i"
-    push $P318, "h"
-    push $P318, "g"
-    push $P318, "f"
-    push $P318, "e"
-    push $P318, "d"
-    push $P318, "c"
-    push $P318, "b"
-    push $P318, "a"
-    push $P318, $P317
-    .return ($P318)
+.sub "!PREFIX__charname"  :subid("99_1280467467.13603") :method
+.annotate 'line', 33
+    $P303 = self."!PREFIX__!subrule"("integer", "")
+    new $P304, "ResizablePMCArray"
+    push $P304, "Z"
+    push $P304, "Y"
+    push $P304, "X"
+    push $P304, "W"
+    push $P304, "V"
+    push $P304, "U"
+    push $P304, "T"
+    push $P304, "S"
+    push $P304, "R"
+    push $P304, "Q"
+    push $P304, "P"
+    push $P304, "O"
+    push $P304, "N"
+    push $P304, "M"
+    push $P304, "L"
+    push $P304, "K"
+    push $P304, "J"
+    push $P304, "I"
+    push $P304, "H"
+    push $P304, "G"
+    push $P304, "F"
+    push $P304, "E"
+    push $P304, "D"
+    push $P304, "C"
+    push $P304, "B"
+    push $P304, "A"
+    push $P304, "z"
+    push $P304, "y"
+    push $P304, "x"
+    push $P304, "w"
+    push $P304, "v"
+    push $P304, "u"
+    push $P304, "t"
+    push $P304, "s"
+    push $P304, "r"
+    push $P304, "q"
+    push $P304, "p"
+    push $P304, "o"
+    push $P304, "n"
+    push $P304, "m"
+    push $P304, "l"
+    push $P304, "k"
+    push $P304, "j"
+    push $P304, "i"
+    push $P304, "h"
+    push $P304, "g"
+    push $P304, "f"
+    push $P304, "e"
+    push $P304, "d"
+    push $P304, "c"
+    push $P304, "b"
+    push $P304, "a"
+    push $P304, $P303
+    .return ($P304)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block323"  :anon :subid("100_1277356884.2847") :method :outer("98_1277356884.2847")
+.sub "_block309"  :anon :subid("100_1280467467.13603") :method :outer("98_1280467467.13603")
 .annotate 'line', 114
-    .local string rx325_tgt
-    .local int rx325_pos
-    .local int rx325_off
-    .local int rx325_eos
-    .local int rx325_rep
-    .local pmc rx325_cur
-    (rx325_cur, rx325_pos, rx325_tgt) = self."!cursor_start"()
-    rx325_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx325_cur
+    .local string rx311_tgt
+    .local int rx311_pos
+    .local int rx311_off
+    .local int rx311_eos
+    .local int rx311_rep
+    .local pmc rx311_cur
+    (rx311_cur, rx311_pos, rx311_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx311_cur
     .local pmc match
     .lex "$/", match
-    length rx325_eos, rx325_tgt
-    gt rx325_pos, rx325_eos, rx325_done
-    set rx325_off, 0
-    lt rx325_pos, 2, rx325_start
-    sub rx325_off, rx325_pos, 1
-    substr rx325_tgt, rx325_tgt, rx325_off
-  rx325_start:
+    length rx311_eos, rx311_tgt
+    gt rx311_pos, rx311_eos, rx311_done
+    set rx311_off, 0
+    lt rx311_pos, 2, rx311_start
+    sub rx311_off, rx311_pos, 1
+    substr rx311_tgt, rx311_tgt, rx311_off
+  rx311_start:
+    eq $I10, 1, rx311_restart
+    rx311_cur."!cursor_debug"("START ", "")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan326_done
-    goto rxscan326_scan
-  rxscan326_loop:
-    ($P10) = rx325_cur."from"()
+    ne $I10, -1, rxscan312_done
+    goto rxscan312_scan
+  rxscan312_loop:
+    ($P10) = rx311_cur."from"()
     inc $P10
-    set rx325_pos, $P10
-    ge rx325_pos, rx325_eos, rxscan326_done
-  rxscan326_scan:
-    set_addr $I10, rxscan326_loop
-    rx325_cur."!mark_push"(0, rx325_pos, $I10)
-  rxscan326_done:
+    set rx311_pos, $P10
+    ge rx311_pos, rx311_eos, rxscan312_done
+  rxscan312_scan:
+    set_addr $I10, rxscan312_loop
+    rx311_cur."!mark_push"(0, rx311_pos, $I10)
+  rxscan312_done:
   # rx charclass_q s r 0..-1
-    sub $I10, rx325_pos, rx325_off
-    find_not_cclass $I11, 32, rx325_tgt, $I10, rx325_eos
-    add rx325_pos, rx325_off, $I11
+    sub $I10, rx311_pos, rx311_off
+    find_not_cclass $I11, 32, rx311_tgt, $I10, rx311_eos
+    add rx311_pos, rx311_off, $I11
   # rx enumcharlist negate=0 
-    ge rx325_pos, rx325_eos, rx325_fail
-    sub $I10, rx325_pos, rx325_off
-    substr $S10, rx325_tgt, $I10, 1
+    ge rx311_pos, rx311_eos, rx311_fail
+    sub $I10, rx311_pos, rx311_off
+    substr $S10, rx311_tgt, $I10, 1
     index $I11, "],#", $S10
-    lt $I11, 0, rx325_fail
-    inc rx325_pos
+    lt $I11, 0, rx311_fail
+    inc rx311_pos
   # rx pass
-    rx325_cur."!cursor_pass"(rx325_pos, "")
-    rx325_cur."!cursor_debug"("PASS  ", "", " at pos=", rx325_pos)
-    .return (rx325_cur)
-  rx325_fail:
-    (rx325_rep, rx325_pos, $I10, $P10) = rx325_cur."!mark_fail"(0)
-    lt rx325_pos, -1, rx325_done
-    eq rx325_pos, -1, rx325_fail
+    rx311_cur."!cursor_pass"(rx311_pos, "")
+    rx311_cur."!cursor_debug"("PASS  ", "", " at pos=", rx311_pos)
+    .return (rx311_cur)
+  rx311_restart:
+    rx311_cur."!cursor_debug"("NEXT ", "")
+  rx311_fail:
+    (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0)
+    lt rx311_pos, -1, rx311_done
+    eq rx311_pos, -1, rx311_fail
     jump $I10
-  rx325_done:
-    rx325_cur."!cursor_fail"()
-    rx325_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx325_cur)
+  rx311_done:
+    rx311_cur."!cursor_fail"()
+    rx311_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx311_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charnames"  :subid("101_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "charnames"  :subid("101_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx328_tgt
-    .local int rx328_pos
-    .local int rx328_off
-    .local int rx328_eos
-    .local int rx328_rep
-    .local pmc rx328_cur
-    (rx328_cur, rx328_pos, rx328_tgt) = self."!cursor_start"()
-    rx328_cur."!cursor_debug"("START ", "charnames")
-    rx328_cur."!cursor_caparray"("charname")
-    .lex unicode:"$\x{a2}", rx328_cur
+    .local string rx314_tgt
+    .local int rx314_pos
+    .local int rx314_off
+    .local int rx314_eos
+    .local int rx314_rep
+    .local pmc rx314_cur
+    (rx314_cur, rx314_pos, rx314_tgt, $I10) = self."!cursor_start"()
+    rx314_cur."!cursor_caparray"("charname")
+    .lex unicode:"$\x{a2}", rx314_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:
+    length rx314_eos, rx314_tgt
+    gt rx314_pos, rx314_eos, rx314_done
+    set rx314_off, 0
+    lt rx314_pos, 2, rx314_start
+    sub rx314_off, rx314_pos, 1
+    substr rx314_tgt, rx314_tgt, rx314_off
+  rx314_start:
+    eq $I10, 1, rx314_restart
+    rx314_cur."!cursor_debug"("START ", "charnames")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan331_done
-    goto rxscan331_scan
-  rxscan331_loop:
-    ($P10) = rx328_cur."from"()
+    ne $I10, -1, rxscan317_done
+    goto rxscan317_scan
+  rxscan317_loop:
+    ($P10) = rx314_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:
+    set rx314_pos, $P10
+    ge rx314_pos, rx314_eos, rxscan317_done
+  rxscan317_scan:
+    set_addr $I10, rxscan317_loop
+    rx314_cur."!mark_push"(0, rx314_pos, $I10)
+  rxscan317_done:
 .annotate 'line', 116
-  # rx rxquantr332 ** 1..*
-    set_addr $I333, rxquantr332_done
-    rx328_cur."!mark_push"(0, -1, $I333)
-  rxquantr332_loop:
+  # rx rxquantr318 ** 1..*
+    set_addr $I10, rxquantr318_done
+    rx314_cur."!mark_push"(0, -1, $I10)
+  rxquantr318_loop:
   # rx subrule "ws" subtype=method negate=
-    rx328_cur."!cursor_pos"(rx328_pos)
-    $P10 = rx328_cur."ws"()
-    unless $P10, rx328_fail
-    rx328_pos = $P10."pos"()
+    rx314_cur."!cursor_pos"(rx314_pos)
+    $P10 = rx314_cur."ws"()
+    unless $P10, rx314_fail
+    rx314_pos = $P10."pos"()
   # rx subrule "charname" subtype=capture negate=
-    rx328_cur."!cursor_pos"(rx328_pos)
-    $P10 = rx328_cur."charname"()
-    unless $P10, rx328_fail
-    rx328_cur."!mark_push"(0, -1, 0, $P10)
+    rx314_cur."!cursor_pos"(rx314_pos)
+    $P10 = rx314_cur."charname"()
+    unless $P10, rx314_fail
+    rx314_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("charname")
-    rx328_pos = $P10."pos"()
+    rx314_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx328_cur."!cursor_pos"(rx328_pos)
-    $P10 = rx328_cur."ws"()
-    unless $P10, rx328_fail
-    rx328_pos = $P10."pos"()
-    (rx328_rep) = rx328_cur."!mark_commit"($I333)
-    rx328_cur."!mark_push"(rx328_rep, rx328_pos, $I333)
+    rx314_cur."!cursor_pos"(rx314_pos)
+    $P10 = rx314_cur."ws"()
+    unless $P10, rx314_fail
+    rx314_pos = $P10."pos"()
+    set_addr $I10, rxquantr318_done
+    (rx314_rep) = rx314_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr318_done
+    rx314_cur."!mark_push"(rx314_rep, rx314_pos, $I10)
   # rx literal  ","
-    add $I11, rx328_pos, 1
-    gt $I11, rx328_eos, rx328_fail
-    sub $I11, rx328_pos, rx328_off
-    substr $S10, rx328_tgt, $I11, 1
-    ne $S10, ",", rx328_fail
-    add rx328_pos, 1
-    goto rxquantr332_loop
-  rxquantr332_done:
+    add $I11, rx314_pos, 1
+    gt $I11, rx314_eos, rx314_fail
+    sub $I11, rx314_pos, rx314_off
+    substr $S10, rx314_tgt, $I11, 1
+    ne $S10, ",", rx314_fail
+    add rx314_pos, 1
+    goto rxquantr318_loop
+  rxquantr318_done:
   # rx pass
-    rx328_cur."!cursor_pass"(rx328_pos, "charnames")
-    rx328_cur."!cursor_debug"("PASS  ", "charnames", " at pos=", rx328_pos)
-    .return (rx328_cur)
-  rx328_fail:
-.annotate 'line', 33
-    (rx328_rep, rx328_pos, $I10, $P10) = rx328_cur."!mark_fail"(0)
-    lt rx328_pos, -1, rx328_done
-    eq rx328_pos, -1, rx328_fail
+    rx314_cur."!cursor_pass"(rx314_pos, "charnames")
+    rx314_cur."!cursor_debug"("PASS  ", "charnames", " at pos=", rx314_pos)
+    .return (rx314_cur)
+  rx314_restart:
+.annotate 'line', 33
+    rx314_cur."!cursor_debug"("NEXT ", "charnames")
+  rx314_fail:
+    (rx314_rep, rx314_pos, $I10, $P10) = rx314_cur."!mark_fail"(0)
+    lt rx314_pos, -1, rx314_done
+    eq rx314_pos, -1, rx314_fail
     jump $I10
-  rx328_done:
-    rx328_cur."!cursor_fail"()
-    rx328_cur."!cursor_debug"("FAIL  ", "charnames")
-    .return (rx328_cur)
+  rx314_done:
+    rx314_cur."!cursor_fail"()
+    rx314_cur."!cursor_debug"("FAIL  ", "charnames")
+    .return (rx314_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames"  :subid("102_1277356884.2847") :method
+.sub "!PREFIX__charnames"  :subid("102_1280467467.13603") :method
 .annotate 'line', 33
-    new $P330, "ResizablePMCArray"
-    push $P330, ""
-    .return ($P330)
+    new $P316, "ResizablePMCArray"
+    push $P316, ""
+    .return ($P316)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charspec"  :subid("103_1277356884.2847") :method :outer("11_1277356884.2847")
+.sub "charspec"  :subid("103_1280467467.13603") :method :outer("11_1280467467.13603")
 .annotate 'line', 33
-    .local string rx335_tgt
-    .local int rx335_pos
-    .local int rx335_off
-    .local int rx335_eos
-    .local int rx335_rep
-    .local pmc rx335_cur
-    (rx335_cur, rx335_pos, rx335_tgt) = self."!cursor_start"()
-    rx335_cur."!cursor_debug"("START ", "charspec")
-    .lex unicode:"$\x{a2}", rx335_cur
+    .local string rx320_tgt
+    .local int rx320_pos
+    .local int rx320_off
+    .local int rx320_eos
+    .local int rx320_rep
+    .local pmc rx320_cur
+    (rx320_cur, rx320_pos, rx320_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx320_cur
     .local pmc match
     .lex "$/", match
-    length rx335_eos, rx335_tgt
-    gt rx335_pos, rx335_eos, rx335_done
-    set rx335_off, 0
-    lt rx335_pos, 2, rx335_start
-    sub rx335_off, rx335_pos, 1
-    substr rx335_tgt, rx335_tgt, rx335_off
-  rx335_start:
+    length rx320_eos, rx320_tgt
+    gt rx320_pos, rx320_eos, rx320_done
+    set rx320_off, 0
+    lt rx320_pos, 2, rx320_start
+    sub rx320_off, rx320_pos, 1
+    substr rx320_tgt, rx320_tgt, rx320_off
+  rx320_start:
+    eq $I10, 1, rx320_restart
+    rx320_cur."!cursor_debug"("START ", "charspec")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan340_done
-    goto rxscan340_scan
-  rxscan340_loop:
-    ($P10) = rx335_cur."from"()
+    ne $I10, -1, rxscan325_done
+    goto rxscan325_scan
+  rxscan325_loop:
+    ($P10) = rx320_cur."from"()
     inc $P10
-    set rx335_pos, $P10
-    ge rx335_pos, rx335_eos, rxscan340_done
-  rxscan340_scan:
-    set_addr $I10, rxscan340_loop
-    rx335_cur."!mark_push"(0, rx335_pos, $I10)
-  rxscan340_done:
-  alt341_0:
+    set rx320_pos, $P10
+    ge rx320_pos, rx320_eos, rxscan325_done
+  rxscan325_scan:
+    set_addr $I10, rxscan325_loop
+    rx320_cur."!mark_push"(0, rx320_pos, $I10)
+  rxscan325_done:
+  alt326_0:
 .annotate 'line', 118
-    set_addr $I10, alt341_1
-    rx335_cur."!mark_push"(0, rx335_pos, $I10)
+    set_addr $I10, alt326_1
+    rx320_cur."!mark_push"(0, rx320_pos, $I10)
 .annotate 'line', 119
   # rx literal  "["
-    add $I11, rx335_pos, 1
-    gt $I11, rx335_eos, rx335_fail
-    sub $I11, rx335_pos, rx335_off
-    substr $S10, rx335_tgt, $I11, 1
-    ne $S10, "[", rx335_fail
-    add rx335_pos, 1
+    add $I11, rx320_pos, 1
+    gt $I11, rx320_eos, rx320_fail
+    sub $I11, rx320_pos, rx320_off
+    substr $S10, rx320_tgt, $I11, 1
+    ne $S10, "[", rx320_fail
+    add rx320_pos, 1
   # rx subrule "charnames" subtype=capture negate=
-    rx335_cur."!cursor_pos"(rx335_pos)
-    $P10 = rx335_cur."charnames"()
-    unless $P10, rx335_fail
-    rx335_cur."!mark_push"(0, -1, 0, $P10)
+    rx320_cur."!cursor_pos"(rx320_pos)
+    $P10 = rx320_cur."charnames"()
+    unless $P10, rx320_fail
+    rx320_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("charnames")
-    rx335_pos = $P10."pos"()
+    rx320_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx335_pos, 1
-    gt $I11, rx335_eos, rx335_fail
-    sub $I11, rx335_pos, rx335_off
-    substr $S10, rx335_tgt, $I11, 1
-    ne $S10, "]", rx335_fail
-    add rx335_pos, 1
-    goto alt341_end
-  alt341_1:
-    set_addr $I10, alt341_2
-    rx335_cur."!mark_push"(0, rx335_pos, $I10)
+    add $I11, rx320_pos, 1
+    gt $I11, rx320_eos, rx320_fail
+    sub $I11, rx320_pos, rx320_off
+    substr $S10, rx320_tgt, $I11, 1
+    ne $S10, "]", rx320_fail
+    add rx320_pos, 1
+    goto alt326_end
+  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, rx335_pos, rx335_off
-    find_not_cclass $I11, 8, rx335_tgt, $I10, rx335_eos
+    sub $I10, rx320_pos, rx320_off
+    find_not_cclass $I11, 8, rx320_tgt, $I10, rx320_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx335_fail
-    add rx335_pos, rx335_off, $I11
-  # rx rxquantr342 ** 0..*
-    set_addr $I343, rxquantr342_done
-    rx335_cur."!mark_push"(0, rx335_pos, $I343)
-  rxquantr342_loop:
+    lt $I11, $I12, rx320_fail
+    add rx320_pos, rx320_off, $I11
+  # rx rxquantr327 ** 0..*
+    set_addr $I10, rxquantr327_done
+    rx320_cur."!mark_push"(0, rx320_pos, $I10)
+  rxquantr327_loop:
   # rx literal  "_"
-    add $I11, rx335_pos, 1
-    gt $I11, rx335_eos, rx335_fail
-    sub $I11, rx335_pos, rx335_off
-    substr $S10, rx335_tgt, $I11, 1
-    ne $S10, "_", rx335_fail
-    add rx335_pos, 1
+    add $I11, rx320_pos, 1
+    gt $I11, rx320_eos, rx320_fail
+    sub $I11, rx320_pos, rx320_off
+    substr $S10, rx320_tgt, $I11, 1
+    ne $S10, "_", rx320_fail
+    add rx320_pos, 1
   # rx charclass_q d r 1..-1
-    sub $I10, rx335_pos, rx335_off
-    find_not_cclass $I11, 8, rx335_tgt, $I10, rx335_eos
+    sub $I10, rx320_pos, rx320_off
+    find_not_cclass $I11, 8, rx320_tgt, $I10, rx320_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx335_fail
-    add rx335_pos, rx335_off, $I11
-    (rx335_rep) = rx335_cur."!mark_commit"($I343)
-    rx335_cur."!mark_push"(rx335_rep, rx335_pos, $I343)
-    goto rxquantr342_loop
-  rxquantr342_done:
-    goto alt341_end
-  alt341_2:
-    set_addr $I10, alt341_3
-    rx335_cur."!mark_push"(0, rx335_pos, $I10)
+    lt $I11, $I12, rx320_fail
+    add rx320_pos, rx320_off, $I11
+    set_addr $I10, rxquantr327_done
+    (rx320_rep) = rx320_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr327_done
+    rx320_cur."!mark_push"(rx320_rep, rx320_pos, $I10)
+    goto rxquantr327_loop
+  rxquantr327_done:
+    goto alt326_end
+  alt326_2:
+    set_addr $I10, alt326_3
+    rx320_cur."!mark_push"(0, rx320_pos, $I10)
 .annotate 'line', 121
   # rx enumcharlist negate=0 
-    ge rx335_pos, rx335_eos, rx335_fail
-    sub $I10, rx335_pos, rx335_off
-    substr $S10, rx335_tgt, $I10, 1
+    ge rx320_pos, rx320_eos, rx320_fail
+    sub $I10, rx320_pos, rx320_off
+    substr $S10, rx320_tgt, $I10, 1
     index $I11, "?@ABCDEFGHIJKLMNOPQRSTUVWXYZ", $S10
-    lt $I11, 0, rx335_fail
-    inc rx335_pos
-    goto alt341_end
-  alt341_3:
+    lt $I11, 0, rx320_fail
+    inc rx320_pos
+    goto alt326_end
+  alt326_3:
 .annotate 'line', 122
   # rx subrule "panic" subtype=method negate=
-    rx335_cur."!cursor_pos"(rx335_pos)
-    $P10 = rx335_cur."panic"("Unrecognized \\c character")
-    unless $P10, rx335_fail
-    rx335_pos = $P10."pos"()
-  alt341_end:
+    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
-    rx335_cur."!cursor_pass"(rx335_pos, "charspec")
-    rx335_cur."!cursor_debug"("PASS  ", "charspec", " at pos=", rx335_pos)
-    .return (rx335_cur)
-  rx335_fail:
-.annotate 'line', 33
-    (rx335_rep, rx335_pos, $I10, $P10) = rx335_cur."!mark_fail"(0)
-    lt rx335_pos, -1, rx335_done
-    eq rx335_pos, -1, rx335_fail
+    rx320_cur."!cursor_pass"(rx320_pos, "charspec")
+    rx320_cur."!cursor_debug"("PASS  ", "charspec", " at pos=", rx320_pos)
+    .return (rx320_cur)
+  rx320_restart:
+.annotate 'line', 33
+    rx320_cur."!cursor_debug"("NEXT ", "charspec")
+  rx320_fail:
+    (rx320_rep, rx320_pos, $I10, $P10) = rx320_cur."!mark_fail"(0)
+    lt rx320_pos, -1, rx320_done
+    eq rx320_pos, -1, rx320_fail
     jump $I10
-  rx335_done:
-    rx335_cur."!cursor_fail"()
-    rx335_cur."!cursor_debug"("FAIL  ", "charspec")
-    .return (rx335_cur)
+  rx320_done:
+    rx320_cur."!cursor_fail"()
+    rx320_cur."!cursor_debug"("FAIL  ", "charspec")
+    .return (rx320_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec"  :subid("104_1277356884.2847") :method
-.annotate 'line', 33
-    $P337 = self."!PREFIX__!subrule"("panic", "")
-    $P338 = self."!PREFIX__!subrule"("charnames", "[")
-    new $P339, "ResizablePMCArray"
-    push $P339, $P337
-    push $P339, "Z"
-    push $P339, "Y"
-    push $P339, "X"
-    push $P339, "W"
-    push $P339, "V"
-    push $P339, "U"
-    push $P339, "T"
-    push $P339, "S"
-    push $P339, "R"
-    push $P339, "Q"
-    push $P339, "P"
-    push $P339, "O"
-    push $P339, "N"
-    push $P339, "M"
-    push $P339, "L"
-    push $P339, "K"
-    push $P339, "J"
-    push $P339, "I"
-    push $P339, "H"
-    push $P339, "G"
-    push $P339, "F"
-    push $P339, "E"
-    push $P339, "D"
-    push $P339, "C"
-    push $P339, "B"
-    push $P339, "A"
-    push $P339, "@"
-    push $P339, "?"
-    push $P339, ""
-    push $P339, $P338
-    .return ($P339)
+.sub "!PREFIX__charspec"  :subid("104_1280467467.13603") :method
+.annotate 'line', 33
+    $P322 = self."!PREFIX__!subrule"("panic", "")
+    $P323 = self."!PREFIX__!subrule"("charnames", "[")
+    new $P324, "ResizablePMCArray"
+    push $P324, $P322
+    push $P324, "Z"
+    push $P324, "Y"
+    push $P324, "X"
+    push $P324, "W"
+    push $P324, "V"
+    push $P324, "U"
+    push $P324, "T"
+    push $P324, "S"
+    push $P324, "R"
+    push $P324, "Q"
+    push $P324, "P"
+    push $P324, "O"
+    push $P324, "N"
+    push $P324, "M"
+    push $P324, "L"
+    push $P324, "K"
+    push $P324, "J"
+    push $P324, "I"
+    push $P324, "H"
+    push $P324, "G"
+    push $P324, "F"
+    push $P324, "E"
+    push $P324, "D"
+    push $P324, "C"
+    push $P324, "B"
+    push $P324, "A"
+    push $P324, "@"
+    push $P324, "?"
+    push $P324, ""
+    push $P324, $P323
+    .return ($P324)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block344" :load :anon :subid("105_1277356884.2847")
+.sub "_block328" :load :anon :subid("105_1280467467.13603")
 .annotate 'line', 5
-    .const 'Sub' $P346 = "11_1277356884.2847" 
-    $P347 = $P346()
-    .return ($P347)
+    .const 'Sub' $P330 = "11_1280467467.13603" 
+    $P331 = $P330()
+    .return ($P331)
 .end
 
 
 .namespace []
-.sub "_block349" :load :anon :subid("106_1277356884.2847")
+.sub "_block333" :load :anon :subid("106_1280467467.13603")
 .annotate 'line', 1
-    .const 'Sub' $P351 = "10_1277356884.2847" 
-    $P352 = $P351()
-    .return ($P352)
+    .const 'Sub' $P335 = "10_1280467467.13603" 
+    $P336 = $P335()
+    .return ($P336)
 .end
 
 ### .include 'gen/hllgrammar-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1277356885.58319")
+.sub "_block11"  :anon :subid("10_1280467468.44761")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Actions"], "_block13" 
     capture_lex $P14
@@ -4913,15 +5099,15 @@
     $P627 = $P14()
 .annotate 'line', 1
     .return ($P627)
-    .const 'Sub' $P629 = "55_1277356885.58319" 
+    .const 'Sub' $P629 = "55_1280467468.44761" 
     .return ($P629)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post56") :outer("10_1277356885.58319")
+.sub "" :load :init :subid("post56") :outer("10_1280467468.44761")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1277356885.58319" 
+    .const 'Sub' $P12 = "10_1280467468.44761" 
     .local pmc block
     set block, $P12
     $P632 = get_root_global ["parrot"], "P6metaclass"
@@ -4930,75 +5116,75 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block13"  :subid("11_1277356885.58319") :outer("10_1277356885.58319")
+.sub "_block13"  :subid("11_1280467468.44761") :outer("10_1280467468.44761")
 .annotate 'line', 3
-    .const 'Sub' $P605 = "53_1277356885.58319" 
+    .const 'Sub' $P605 = "53_1280467468.44761" 
     capture_lex $P605
-    .const 'Sub' $P580 = "51_1277356885.58319" 
+    .const 'Sub' $P580 = "51_1280467468.44761" 
     capture_lex $P580
-    .const 'Sub' $P550 = "50_1277356885.58319" 
+    .const 'Sub' $P550 = "50_1280467468.44761" 
     capture_lex $P550
-    .const 'Sub' $P531 = "49_1277356885.58319" 
+    .const 'Sub' $P531 = "49_1280467468.44761" 
     capture_lex $P531
-    .const 'Sub' $P524 = "48_1277356885.58319" 
+    .const 'Sub' $P524 = "48_1280467468.44761" 
     capture_lex $P524
-    .const 'Sub' $P514 = "47_1277356885.58319" 
+    .const 'Sub' $P514 = "47_1280467468.44761" 
     capture_lex $P514
-    .const 'Sub' $P497 = "46_1277356885.58319" 
+    .const 'Sub' $P497 = "46_1280467468.44761" 
     capture_lex $P497
-    .const 'Sub' $P480 = "45_1277356885.58319" 
+    .const 'Sub' $P480 = "45_1280467468.44761" 
     capture_lex $P480
-    .const 'Sub' $P473 = "44_1277356885.58319" 
+    .const 'Sub' $P473 = "44_1280467468.44761" 
     capture_lex $P473
-    .const 'Sub' $P466 = "43_1277356885.58319" 
+    .const 'Sub' $P466 = "43_1280467468.44761" 
     capture_lex $P466
-    .const 'Sub' $P459 = "42_1277356885.58319" 
+    .const 'Sub' $P459 = "42_1280467468.44761" 
     capture_lex $P459
-    .const 'Sub' $P452 = "41_1277356885.58319" 
+    .const 'Sub' $P452 = "41_1280467468.44761" 
     capture_lex $P452
-    .const 'Sub' $P445 = "40_1277356885.58319" 
+    .const 'Sub' $P445 = "40_1280467468.44761" 
     capture_lex $P445
-    .const 'Sub' $P438 = "39_1277356885.58319" 
+    .const 'Sub' $P438 = "39_1280467468.44761" 
     capture_lex $P438
-    .const 'Sub' $P428 = "38_1277356885.58319" 
+    .const 'Sub' $P428 = "38_1280467468.44761" 
     capture_lex $P428
-    .const 'Sub' $P421 = "37_1277356885.58319" 
+    .const 'Sub' $P421 = "37_1280467468.44761" 
     capture_lex $P421
-    .const 'Sub' $P405 = "36_1277356885.58319" 
+    .const 'Sub' $P405 = "36_1280467468.44761" 
     capture_lex $P405
-    .const 'Sub' $P330 = "34_1277356885.58319" 
+    .const 'Sub' $P330 = "34_1280467468.44761" 
     capture_lex $P330
-    .const 'Sub' $P267 = "31_1277356885.58319" 
+    .const 'Sub' $P267 = "31_1280467468.44761" 
     capture_lex $P267
-    .const 'Sub' $P258 = "30_1277356885.58319" 
+    .const 'Sub' $P258 = "30_1280467468.44761" 
     capture_lex $P258
-    .const 'Sub' $P249 = "29_1277356885.58319" 
+    .const 'Sub' $P249 = "29_1280467468.44761" 
     capture_lex $P249
-    .const 'Sub' $P240 = "28_1277356885.58319" 
+    .const 'Sub' $P240 = "28_1280467468.44761" 
     capture_lex $P240
-    .const 'Sub' $P231 = "27_1277356885.58319" 
+    .const 'Sub' $P231 = "27_1280467468.44761" 
     capture_lex $P231
-    .const 'Sub' $P222 = "26_1277356885.58319" 
+    .const 'Sub' $P222 = "26_1280467468.44761" 
     capture_lex $P222
-    .const 'Sub' $P212 = "25_1277356885.58319" 
+    .const 'Sub' $P212 = "25_1280467468.44761" 
     capture_lex $P212
-    .const 'Sub' $P202 = "24_1277356885.58319" 
+    .const 'Sub' $P202 = "24_1280467468.44761" 
     capture_lex $P202
-    .const 'Sub' $P194 = "23_1277356885.58319" 
+    .const 'Sub' $P194 = "23_1280467468.44761" 
     capture_lex $P194
-    .const 'Sub' $P184 = "22_1277356885.58319" 
+    .const 'Sub' $P184 = "22_1280467468.44761" 
     capture_lex $P184
-    .const 'Sub' $P174 = "21_1277356885.58319" 
+    .const 'Sub' $P174 = "21_1280467468.44761" 
     capture_lex $P174
-    .const 'Sub' $P73 = "18_1277356885.58319" 
+    .const 'Sub' $P73 = "18_1280467468.44761" 
     capture_lex $P73
-    .const 'Sub' $P35 = "15_1277356885.58319" 
+    .const 'Sub' $P35 = "15_1280467468.44761" 
     capture_lex $P35
-    .const 'Sub' $P28 = "14_1277356885.58319" 
+    .const 'Sub' $P28 = "14_1280467468.44761" 
     capture_lex $P28
-    .const 'Sub' $P22 = "13_1277356885.58319" 
+    .const 'Sub' $P22 = "13_1280467468.44761" 
     capture_lex $P22
-    .const 'Sub' $P15 = "12_1277356885.58319" 
+    .const 'Sub' $P15 = "12_1280467468.44761" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -5007,18 +5193,18 @@
     $P0."ctxsave"()
   ctxsave_done:
 .annotate 'line', 225
-    .const 'Sub' $P605 = "53_1277356885.58319" 
+    .const 'Sub' $P605 = "53_1280467468.44761" 
     newclosure $P622, $P605
 .annotate 'line', 3
     .return ($P622)
-    .const 'Sub' $P624 = "54_1277356885.58319" 
+    .const 'Sub' $P624 = "54_1280467468.44761" 
     .return ($P624)
 .end
 
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "string_to_int"  :subid("12_1277356885.58319") :outer("11_1277356885.58319")
+.sub "string_to_int"  :subid("12_1280467468.44761") :outer("11_1280467468.44761")
     .param pmc param_18
     .param pmc param_19
 .annotate 'line', 3
@@ -5072,7 +5258,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "ints_to_string"  :subid("13_1277356885.58319") :outer("11_1277356885.58319")
+.sub "ints_to_string"  :subid("13_1280467468.44761") :outer("11_1280467468.44761")
     .param pmc param_25
 .annotate 'line', 37
     new $P24, 'ExceptionHandler'
@@ -5114,7 +5300,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "CTXSAVE"  :subid("14_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "CTXSAVE"  :subid("14_1280467468.44761") :method :outer("11_1280467468.44761")
 .annotate 'line', 62
     new $P30, 'ExceptionHandler'
     set_addr $P30, control_29
@@ -5144,10 +5330,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "SET_BLOCK_OUTER_CTX"  :subid("15_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "SET_BLOCK_OUTER_CTX"  :subid("15_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_38
 .annotate 'line', 76
-    .const 'Sub' $P48 = "16_1277356885.58319" 
+    .const 'Sub' $P48 = "16_1280467468.44761" 
     capture_lex $P48
     new $P37, 'ExceptionHandler'
     set_addr $P37, control_36
@@ -5182,7 +5368,7 @@
     set $P43, $I46
     goto if_44_end
   if_44:
-    .const 'Sub' $P48 = "16_1277356885.58319" 
+    .const 'Sub' $P48 = "16_1280467468.44761" 
     capture_lex $P48
     $P71 = $P48()
     set $P43, $P71
@@ -5199,9 +5385,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "_block47"  :anon :subid("16_1277356885.58319") :outer("15_1277356885.58319")
+.sub "_block47"  :anon :subid("16_1280467468.44761") :outer("15_1280467468.44761")
 .annotate 'line', 78
-    .const 'Sub' $P62 = "17_1277356885.58319" 
+    .const 'Sub' $P62 = "17_1280467468.44761" 
     capture_lex $P62
 .annotate 'line', 79
     $P49 = root_new ['parrot';'ResizablePMCArray']
@@ -5231,7 +5417,7 @@
     unless $P56, loop68_done
     shift $P60, $P56
   loop68_redo:
-    .const 'Sub' $P62 = "17_1277356885.58319" 
+    .const 'Sub' $P62 = "17_1280467468.44761" 
     capture_lex $P62
     $P62($P60)
   loop68_next:
@@ -5251,7 +5437,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block61"  :anon :subid("17_1277356885.58319") :outer("16_1277356885.58319")
+.sub "_block61"  :anon :subid("17_1280467468.44761") :outer("16_1280467468.44761")
     .param pmc param_63
 .annotate 'line', 82
     .lex "$_", param_63
@@ -5267,14 +5453,14 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "EXPR"  :subid("18_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "EXPR"  :subid("18_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_76
     .param pmc param_77 :optional
     .param int has_param_77 :opt_flag
 .annotate 'line', 89
-    .const 'Sub' $P156 = "20_1277356885.58319" 
+    .const 'Sub' $P156 = "20_1280467468.44761" 
     capture_lex $P156
-    .const 'Sub' $P123 = "19_1277356885.58319" 
+    .const 'Sub' $P123 = "19_1280467468.44761" 
     capture_lex $P123
     new $P75, 'ExceptionHandler'
     set_addr $P75, control_74
@@ -5409,7 +5595,7 @@
     find_lex $P120, "$past"
     $P121 = $P120."name"()
     if $P121, unless_119_end
-    .const 'Sub' $P123 = "19_1277356885.58319" 
+    .const 'Sub' $P123 = "19_1280467468.44761" 
     capture_lex $P123
     $P123()
   unless_119_end:
@@ -5433,7 +5619,7 @@
     unless $P150, loop167_done
     shift $P154, $P150
   loop167_redo:
-    .const 'Sub' $P156 = "20_1277356885.58319" 
+    .const 'Sub' $P156 = "20_1280467468.44761" 
     capture_lex $P156
     $P156($P154)
   loop167_next:
@@ -5478,7 +5664,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block122"  :anon :subid("19_1277356885.58319") :outer("18_1277356885.58319")
+.sub "_block122"  :anon :subid("19_1280467468.44761") :outer("18_1280467468.44761")
 .annotate 'line', 98
     new $P124, "Undef"
     .lex "$name", $P124
@@ -5528,7 +5714,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block155"  :anon :subid("20_1277356885.58319") :outer("18_1277356885.58319")
+.sub "_block155"  :anon :subid("20_1280467468.44761") :outer("18_1280467468.44761")
     .param pmc param_157
 .annotate 'line', 109
     .lex "$_", param_157
@@ -5552,7 +5738,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<circumfix>"  :subid("21_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "term:sym<circumfix>"  :subid("21_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_177
 .annotate 'line', 114
     new $P176, 'ExceptionHandler'
@@ -5583,7 +5769,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "termish"  :subid("22_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "termish"  :subid("22_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_187
 .annotate 'line', 116
     new $P186, 'ExceptionHandler'
@@ -5614,7 +5800,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "nullterm"  :subid("23_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "nullterm"  :subid("23_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_197
 .annotate 'line', 117
     new $P196, 'ExceptionHandler'
@@ -5637,7 +5823,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "nullterm_alt"  :subid("24_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "nullterm_alt"  :subid("24_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_205
 .annotate 'line', 118
     new $P204, 'ExceptionHandler'
@@ -5668,7 +5854,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "integer"  :subid("25_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "integer"  :subid("25_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_215
 .annotate 'line', 120
     new $P214, 'ExceptionHandler'
@@ -5699,7 +5885,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "dec_number"  :subid("26_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "dec_number"  :subid("26_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_225
 .annotate 'line', 122
     new $P224, 'ExceptionHandler'
@@ -5723,7 +5909,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "decint"  :subid("27_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "decint"  :subid("27_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_234
 .annotate 'line', 124
     new $P233, 'ExceptionHandler'
@@ -5747,7 +5933,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "hexint"  :subid("28_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "hexint"  :subid("28_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_243
 .annotate 'line', 125
     new $P242, 'ExceptionHandler'
@@ -5771,7 +5957,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "octint"  :subid("29_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "octint"  :subid("29_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_252
 .annotate 'line', 126
     new $P251, 'ExceptionHandler'
@@ -5795,7 +5981,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "binint"  :subid("30_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "binint"  :subid("30_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_261
 .annotate 'line', 127
     new $P260, 'ExceptionHandler'
@@ -5819,10 +6005,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_EXPR"  :subid("31_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "quote_EXPR"  :subid("31_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_270
 .annotate 'line', 129
-    .const 'Sub' $P286 = "32_1277356885.58319" 
+    .const 'Sub' $P286 = "32_1280467468.44761" 
     capture_lex $P286
     new $P269, 'ExceptionHandler'
     set_addr $P269, control_268
@@ -5854,7 +6040,7 @@
     $P282 = $P280."ACCEPTS"($P281)
     if $P282, if_279
 .annotate 'line', 135
-    .const 'Sub' $P286 = "32_1277356885.58319" 
+    .const 'Sub' $P286 = "32_1280467468.44761" 
     capture_lex $P286
     $P286()
     goto if_279_end
@@ -5894,9 +6080,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "_block285"  :anon :subid("32_1277356885.58319") :outer("31_1277356885.58319")
+.sub "_block285"  :anon :subid("32_1280467468.44761") :outer("31_1280467468.44761")
 .annotate 'line', 135
-    .const 'Sub' $P305 = "33_1277356885.58319" 
+    .const 'Sub' $P305 = "33_1280467468.44761" 
     capture_lex $P305
 .annotate 'line', 136
     $P287 = root_new ['parrot';'ResizablePMCArray']
@@ -5947,7 +6133,7 @@
     unless $P300, loop310_done
     shift $P303, $P300
   loop310_redo:
-    .const 'Sub' $P305 = "33_1277356885.58319" 
+    .const 'Sub' $P305 = "33_1280467468.44761" 
     capture_lex $P305
     $P305($P303)
   loop310_next:
@@ -5970,7 +6156,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block304"  :anon :subid("33_1277356885.58319") :outer("32_1277356885.58319")
+.sub "_block304"  :anon :subid("33_1280467468.44761") :outer("32_1280467468.44761")
     .param pmc param_306
 .annotate 'line', 139
     .lex "$_", param_306
@@ -5983,10 +6169,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_delimited"  :subid("34_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "quote_delimited"  :subid("34_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_333
 .annotate 'line', 152
-    .const 'Sub' $P345 = "35_1277356885.58319" 
+    .const 'Sub' $P345 = "35_1280467468.44761" 
     capture_lex $P345
     new $P332, 'ExceptionHandler'
     set_addr $P332, control_331
@@ -6029,7 +6215,7 @@
     unless $P339, loop377_done
     shift $P343, $P339
   loop377_redo:
-    .const 'Sub' $P345 = "35_1277356885.58319" 
+    .const 'Sub' $P345 = "35_1280467468.44761" 
     capture_lex $P345
     $P345($P343)
   loop377_next:
@@ -6107,7 +6293,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block344"  :anon :subid("35_1277356885.58319") :outer("34_1277356885.58319")
+.sub "_block344"  :anon :subid("35_1280467468.44761") :outer("34_1280467468.44761")
     .param pmc param_347
 .annotate 'line', 156
     new $P346, "Undef"
@@ -6177,7 +6363,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_atom"  :subid("36_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "quote_atom"  :subid("36_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_408
 .annotate 'line', 177
     new $P407, 'ExceptionHandler'
@@ -6227,7 +6413,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<backslash>"  :subid("37_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "quote_escape:sym<backslash>"  :subid("37_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_424
 .annotate 'line', 181
     new $P423, 'ExceptionHandler'
@@ -6249,7 +6435,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<stopper>"  :subid("38_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "quote_escape:sym<stopper>"  :subid("38_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_431
 .annotate 'line', 182
     new $P430, 'ExceptionHandler'
@@ -6280,7 +6466,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<bs>"  :subid("39_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "quote_escape:sym<bs>"  :subid("39_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_441
 .annotate 'line', 184
     new $P440, 'ExceptionHandler'
@@ -6302,7 +6488,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<nl>"  :subid("40_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "quote_escape:sym<nl>"  :subid("40_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_448
 .annotate 'line', 185
     new $P447, 'ExceptionHandler'
@@ -6324,7 +6510,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<cr>"  :subid("41_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "quote_escape:sym<cr>"  :subid("41_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_455
 .annotate 'line', 186
     new $P454, 'ExceptionHandler'
@@ -6346,7 +6532,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<tab>"  :subid("42_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "quote_escape:sym<tab>"  :subid("42_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_462
 .annotate 'line', 187
     new $P461, 'ExceptionHandler'
@@ -6368,7 +6554,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<ff>"  :subid("43_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "quote_escape:sym<ff>"  :subid("43_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_469
 .annotate 'line', 188
     new $P468, 'ExceptionHandler'
@@ -6390,7 +6576,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<esc>"  :subid("44_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "quote_escape:sym<esc>"  :subid("44_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_476
 .annotate 'line', 189
     new $P475, 'ExceptionHandler'
@@ -6412,7 +6598,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<hex>"  :subid("45_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "quote_escape:sym<hex>"  :subid("45_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_483
 .annotate 'line', 191
     new $P482, 'ExceptionHandler'
@@ -6471,7 +6657,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<oct>"  :subid("46_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "quote_escape:sym<oct>"  :subid("46_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_500
 .annotate 'line', 195
     new $P499, 'ExceptionHandler'
@@ -6530,7 +6716,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<chr>"  :subid("47_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "quote_escape:sym<chr>"  :subid("47_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_517
 .annotate 'line', 199
     new $P516, 'ExceptionHandler'
@@ -6563,7 +6749,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<0>"  :subid("48_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "quote_escape:sym<0>"  :subid("48_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_527
 .annotate 'line', 203
     new $P526, 'ExceptionHandler'
@@ -6587,7 +6773,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<misc>"  :subid("49_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "quote_escape:sym<misc>"  :subid("49_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_534
 .annotate 'line', 207
     new $P533, 'ExceptionHandler'
@@ -6646,7 +6832,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charname"  :subid("50_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "charname"  :subid("50_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_553
 .annotate 'line', 211
     new $P552, 'ExceptionHandler'
@@ -6720,10 +6906,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charnames"  :subid("51_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "charnames"  :subid("51_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_583
 .annotate 'line', 219
-    .const 'Sub' $P592 = "52_1277356885.58319" 
+    .const 'Sub' $P592 = "52_1280467468.44761" 
     capture_lex $P592
     new $P582, 'ExceptionHandler'
     set_addr $P582, control_581
@@ -6757,7 +6943,7 @@
     unless $P586, loop598_done
     shift $P590, $P586
   loop598_redo:
-    .const 'Sub' $P592 = "52_1277356885.58319" 
+    .const 'Sub' $P592 = "52_1280467468.44761" 
     capture_lex $P592
     $P592($P590)
   loop598_next:
@@ -6786,7 +6972,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block591"  :anon :subid("52_1277356885.58319") :outer("51_1277356885.58319")
+.sub "_block591"  :anon :subid("52_1280467468.44761") :outer("51_1280467468.44761")
     .param pmc param_593
 .annotate 'line', 221
     .lex "$_", param_593
@@ -6801,7 +6987,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charspec"  :subid("53_1277356885.58319") :method :outer("11_1277356885.58319")
+.sub "charspec"  :subid("53_1280467468.44761") :method :outer("11_1280467468.44761")
     .param pmc param_608
 .annotate 'line', 225
     new $P607, 'ExceptionHandler'
@@ -6851,18 +7037,18 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block623" :load :anon :subid("54_1277356885.58319")
+.sub "_block623" :load :anon :subid("54_1280467468.44761")
 .annotate 'line', 3
-    .const 'Sub' $P625 = "11_1277356885.58319" 
+    .const 'Sub' $P625 = "11_1280467468.44761" 
     $P626 = $P625()
     .return ($P626)
 .end
 
 
 .namespace []
-.sub "_block628" :load :anon :subid("55_1277356885.58319")
+.sub "_block628" :load :anon :subid("55_1280467468.44761")
 .annotate 'line', 1
-    .const 'Sub' $P630 = "10_1277356885.58319" 
+    .const 'Sub' $P630 = "10_1280467468.44761" 
     $P631 = $P630()
     .return ($P631)
 .end
@@ -6870,7 +7056,7 @@
 ### .include 'gen/hllcompiler.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1277356886.38597")
+.sub "_block11"  :anon :subid("10_1280467469.30058")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     capture_lex $P14
@@ -6884,82 +7070,82 @@
 .annotate 'line', 6
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     capture_lex $P14
-    $P492 = $P14()
+    $P497 = $P14()
 .annotate 'line', 1
-    .return ($P492)
-    .const 'Sub' $P494 = "35_1277356886.38597" 
-    .return ($P494)
+    .return ($P497)
+    .const 'Sub' $P499 = "36_1280467469.30058" 
+    .return ($P499)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post36") :outer("10_1277356886.38597")
+.sub "" :load :init :subid("post37") :outer("10_1280467469.30058")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1277356886.38597" 
+    .const 'Sub' $P12 = "10_1280467469.30058" 
     .local pmc block
     set block, $P12
 .annotate 'line', 2
     load_bytecode "PCT/HLLCompiler.pbc"
 .annotate 'line', 1
-    $P497 = get_root_global ["parrot"], "P6metaclass"
-    new $P498, "ResizablePMCArray"
-    push $P498, "$!language"
-    $P497."new_class"("HLL::Compiler", "PCT::HLLCompiler" :named("parent"), $P498 :named("attr"))
+    $P502 = get_root_global ["parrot"], "P6metaclass"
+    new $P503, "ResizablePMCArray"
+    push $P503, "$!language"
+    $P502."new_class"("HLL::Compiler", "PCT::HLLCompiler" :named("parent"), $P503 :named("attr"))
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block13"  :subid("11_1277356886.38597") :outer("10_1277356886.38597")
+.sub "_block13"  :subid("11_1280467469.30058") :outer("10_1280467469.30058")
 .annotate 'line', 6
-    .const 'Sub' $P484 = "34_1277356886.38597" 
-    capture_lex $P484
-    .const 'Sub' $P442 = "32_1277356886.38597" 
-    capture_lex $P442
-    .const 'Sub' $P298 = "26_1277356886.38597" 
+    .const 'Sub' $P489 = "35_1280467469.30058" 
+    capture_lex $P489
+    .const 'Sub' $P447 = "33_1280467469.30058" 
+    capture_lex $P447
+    .const 'Sub' $P298 = "26_1280467469.30058" 
     capture_lex $P298
-    .const 'Sub' $P283 = "25_1277356886.38597" 
+    .const 'Sub' $P283 = "25_1280467469.30058" 
     capture_lex $P283
-    .const 'Sub' $P188 = "20_1277356886.38597" 
+    .const 'Sub' $P188 = "20_1280467469.30058" 
     capture_lex $P188
-    .const 'Sub' $P153 = "18_1277356886.38597" 
+    .const 'Sub' $P153 = "18_1280467469.30058" 
     capture_lex $P153
-    .const 'Sub' $P138 = "17_1277356886.38597" 
+    .const 'Sub' $P138 = "17_1280467469.30058" 
     capture_lex $P138
-    .const 'Sub' $P122 = "16_1277356886.38597" 
+    .const 'Sub' $P122 = "16_1280467469.30058" 
     capture_lex $P122
-    .const 'Sub' $P33 = "13_1277356886.38597" 
+    .const 'Sub' $P33 = "13_1280467469.30058" 
     capture_lex $P33
-    .const 'Sub' $P15 = "12_1277356886.38597" 
+    .const 'Sub' $P15 = "12_1280467469.30058" 
     capture_lex $P15
 .annotate 'line', 14
-    .const 'Sub' $P15 = "12_1277356886.38597" 
+    .const 'Sub' $P15 = "12_1280467469.30058" 
     newclosure $P31, $P15
     .lex "value_type", $P31
 .annotate 'line', 10
     find_lex $P32, "value_type"
-.annotate 'line', 163
-    .const 'Sub' $P484 = "34_1277356886.38597" 
-    newclosure $P490, $P484
+.annotate 'line', 165
+    .const 'Sub' $P489 = "35_1280467469.30058" 
+    newclosure $P495, $P489
 .annotate 'line', 6
-    .return ($P490)
+    .return ($P495)
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post37") :outer("11_1277356886.38597")
+.sub "" :load :init :subid("post38") :outer("11_1280467469.30058")
 .annotate 'line', 6
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     .local pmc block
     set block, $P14
 .annotate 'line', 11
-    get_hll_global $P491, ["HLL"], "Compiler"
-    $P491."language"("parrot")
+    get_hll_global $P496, ["HLL"], "Compiler"
+    $P496."language"("parrot")
 .end
 
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "value_type"  :subid("12_1277356886.38597") :outer("11_1277356886.38597")
+.sub "value_type"  :subid("12_1280467469.30058") :outer("11_1280467469.30058")
     .param pmc param_18
 .annotate 'line', 14
     new $P17, 'ExceptionHandler'
@@ -7004,15 +7190,15 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "get_exports"  :subid("13_1277356886.38597") :method :outer("11_1277356886.38597")
+.sub "get_exports"  :subid("13_1280467469.30058") :method :outer("11_1280467469.30058")
     .param pmc param_36
     .param pmc param_39 :slurpy
     .param pmc param_37 :optional :named("tagset")
     .param int has_param_37 :opt_flag
 .annotate 'line', 20
-    .const 'Sub' $P105 = "15_1277356886.38597" 
+    .const 'Sub' $P105 = "15_1280467469.30058" 
     capture_lex $P105
-    .const 'Sub' $P84 = "14_1277356886.38597" 
+    .const 'Sub' $P84 = "14_1280467469.30058" 
     capture_lex $P84
     new $P35, 'ExceptionHandler'
     set_addr $P35, control_34
@@ -7020,10 +7206,10 @@
     push_eh $P35
     .lex "self", self
     .lex "$module", param_36
-    if has_param_37, optparam_38
+    if has_param_37, optparam_39
     new $P38, "Undef"
     set param_37, $P38
-  optparam_38:
+  optparam_39:
     .lex "$tagset", param_37
     .lex "@symbols", param_39
 .annotate 'line', 27
@@ -7069,17 +7255,17 @@
     find_lex $P60, "$tagset"
     set $S61, $P60
     find_lex $P62, "$module"
-    unless_null $P62, vivify_39
+    unless_null $P62, vivify_40
     $P62 = root_new ['parrot';'Hash']
-  vivify_39:
+  vivify_40:
     set $P63, $P62["EXPORT"]
-    unless_null $P63, vivify_40
+    unless_null $P63, vivify_41
     $P63 = root_new ['parrot';'Hash']
-  vivify_40:
+  vivify_41:
     set $P64, $P63[$S61]
-    unless_null $P64, vivify_41
+    unless_null $P64, vivify_42
     new $P64, "Undef"
-  vivify_41:
+  vivify_42:
     store_lex "%source", $P64
 .annotate 'line', 29
     find_lex $P66, "%source"
@@ -7108,7 +7294,7 @@
 .annotate 'line', 39
     find_lex $P101, "%source"
     defined $I102, $P101
-    unless $I102, for_undef_42
+    unless $I102, for_undef_43
     iter $P100, $P101
     new $P118, 'ExceptionHandler'
     set_addr $P118, loop117_handler
@@ -7118,7 +7304,7 @@
     unless $P100, loop117_done
     shift $P103, $P100
   loop117_redo:
-    .const 'Sub' $P105 = "15_1277356886.38597" 
+    .const 'Sub' $P105 = "15_1280467469.30058" 
     capture_lex $P105
     $P105($P103)
   loop117_next:
@@ -7131,14 +7317,14 @@
     eq $P119, .CONTROL_LOOP_REDO, loop117_redo
   loop117_done:
     pop_eh 
-  for_undef_42:
+  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_45
+    unless $I81, for_undef_46
     iter $P79, $P80
     new $P98, 'ExceptionHandler'
     set_addr $P98, loop97_handler
@@ -7148,7 +7334,7 @@
     unless $P79, loop97_done
     shift $P82, $P79
   loop97_redo:
-    .const 'Sub' $P84 = "14_1277356886.38597" 
+    .const 'Sub' $P84 = "14_1280467469.30058" 
     capture_lex $P84
     $P84($P82)
   loop97_next:
@@ -7161,7 +7347,7 @@
     eq $P99, .CONTROL_LOOP_REDO, loop97_redo
   loop97_done:
     pop_eh 
-  for_undef_45:
+  for_undef_46:
   if_77_end:
 .annotate 'line', 32
     find_lex $P120, "%exports"
@@ -7176,7 +7362,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block104"  :anon :subid("15_1277356886.38597") :outer("13_1277356886.38597")
+.sub "_block104"  :anon :subid("15_1280467469.30058") :outer("13_1280467469.30058")
     .param pmc param_107
 .annotate 'line', 40
     new $P106, "Undef"
@@ -7192,15 +7378,15 @@
     find_lex $P113, "$value"
     $P114 = "value_type"($P113)
     find_lex $P115, "%exports"
-    unless_null $P115, vivify_43
+    unless_null $P115, vivify_44
     $P115 = root_new ['parrot';'Hash']
     store_lex "%exports", $P115
-  vivify_43:
+  vivify_44:
     set $P116, $P115[$P114]
-    unless_null $P116, vivify_44
+    unless_null $P116, vivify_45
     $P116 = root_new ['parrot';'Hash']
     set $P115[$P114], $P116
-  vivify_44:
+  vivify_45:
     set $P116[$P112], $P110
 .annotate 'line', 39
     .return ($P110)
@@ -7208,7 +7394,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block83"  :anon :subid("14_1277356886.38597") :outer("13_1277356886.38597")
+.sub "_block83"  :anon :subid("14_1280467469.30058") :outer("13_1280467469.30058")
     .param pmc param_86
 .annotate 'line', 34
     new $P85, "Undef"
@@ -7217,13 +7403,13 @@
     find_lex $P87, "$_"
     set $S88, $P87
     find_lex $P89, "%source"
-    unless_null $P89, vivify_46
+    unless_null $P89, vivify_47
     $P89 = root_new ['parrot';'Hash']
-  vivify_46:
+  vivify_47:
     set $P90, $P89[$S88]
-    unless_null $P90, vivify_47
+    unless_null $P90, vivify_48
     new $P90, "Undef"
-  vivify_47:
+  vivify_48:
     store_lex "$value", $P90
 .annotate 'line', 35
     find_lex $P91, "$value"
@@ -7231,15 +7417,15 @@
     find_lex $P93, "$value"
     $P94 = "value_type"($P93)
     find_lex $P95, "%exports"
-    unless_null $P95, vivify_48
+    unless_null $P95, vivify_49
     $P95 = root_new ['parrot';'Hash']
     store_lex "%exports", $P95
-  vivify_48:
+  vivify_49:
     set $P96, $P95[$P94]
-    unless_null $P96, vivify_49
+    unless_null $P96, vivify_50
     $P96 = root_new ['parrot';'Hash']
     set $P95[$P94], $P96
-  vivify_49:
+  vivify_50:
     set $P96[$P92], $P91
 .annotate 'line', 33
     .return ($P91)
@@ -7248,7 +7434,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "get_module"  :subid("16_1277356886.38597") :method :outer("11_1277356886.38597")
+.sub "get_module"  :subid("16_1280467469.30058") :method :outer("11_1280467469.30058")
     .param pmc param_125
 .annotate 'line', 47
     new $P124, 'ExceptionHandler'
@@ -7268,9 +7454,9 @@
     find_lex $P130, "@name"
     find_lex $P131, "self"
     getattribute $P132, $P131, "$!language"
-    unless_null $P132, vivify_50
+    unless_null $P132, vivify_51
     new $P132, "Undef"
-  vivify_50:
+  vivify_51:
     set $S133, $P132
     downcase $S134, $S133
     $P130."unshift"($S134)
@@ -7289,7 +7475,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "language"  :subid("17_1277356886.38597") :method :outer("11_1277356886.38597")
+.sub "language"  :subid("17_1280467469.30058") :method :outer("11_1280467469.30058")
     .param pmc param_141 :optional
     .param int has_param_141 :opt_flag
 .annotate 'line', 53
@@ -7298,10 +7484,10 @@
     $P140."handle_types"(.CONTROL_RETURN)
     push_eh $P140
     .lex "self", self
-    if has_param_141, optparam_51
+    if has_param_141, optparam_52
     new $P142, "Undef"
     set param_141, $P142
-  optparam_51:
+  optparam_52:
     .lex "$name", param_141
 .annotate 'line', 54
     find_lex $P144, "$name"
@@ -7319,9 +7505,9 @@
 .annotate 'line', 54
     find_lex $P150, "self"
     getattribute $P151, $P150, "$!language"
-    unless_null $P151, vivify_52
+    unless_null $P151, vivify_53
     new $P151, "Undef"
-  vivify_52:
+  vivify_53:
 .annotate 'line', 53
     .return ($P151)
   control_139:
@@ -7334,10 +7520,10 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "load_module"  :subid("18_1277356886.38597") :method :outer("11_1277356886.38597")
+.sub "load_module"  :subid("18_1280467469.30058") :method :outer("11_1280467469.30058")
     .param pmc param_156
 .annotate 'line', 61
-    .const 'Sub' $P166 = "19_1277356886.38597" 
+    .const 'Sub' $P166 = "19_1280467469.30058" 
     capture_lex $P166
     new $P155, 'ExceptionHandler'
     set_addr $P155, control_154
@@ -7364,7 +7550,7 @@
     assign $P164, 0
     store_lex "$loaded", $P164
 .annotate 'line', 64
-    .const 'Sub' $P166 = "19_1277356886.38597" 
+    .const 'Sub' $P166 = "19_1280467469.30058" 
     capture_lex $P166
     $P166()
 .annotate 'line', 65
@@ -7394,7 +7580,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block165"  :anon :subid("19_1277356886.38597") :outer("18_1277356886.38597")
+.sub "_block165"  :anon :subid("19_1280467469.30058") :outer("18_1280467469.30058")
 .annotate 'line', 64
     new $P173, 'ExceptionHandler'
     set_addr $P173, control_172
@@ -7428,11 +7614,11 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "import"  :subid("20_1277356886.38597") :method :outer("11_1277356886.38597")
+.sub "import"  :subid("20_1280467469.30058") :method :outer("11_1280467469.30058")
     .param pmc param_191
     .param pmc param_192
 .annotate 'line', 69
-    .const 'Sub' $P198 = "21_1277356886.38597" 
+    .const 'Sub' $P198 = "21_1280467469.30058" 
     capture_lex $P198
     new $P190, 'ExceptionHandler'
     set_addr $P190, control_189
@@ -7444,7 +7630,7 @@
 .annotate 'line', 70
     find_lex $P194, "%exports"
     defined $I195, $P194
-    unless $I195, for_undef_53
+    unless $I195, for_undef_54
     iter $P193, $P194
     new $P280, 'ExceptionHandler'
     set_addr $P280, loop279_handler
@@ -7454,7 +7640,7 @@
     unless $P193, loop279_done
     shift $P196, $P193
   loop279_redo:
-    .const 'Sub' $P198 = "21_1277356886.38597" 
+    .const 'Sub' $P198 = "21_1280467469.30058" 
     capture_lex $P198
     $P198($P196)
   loop279_next:
@@ -7467,7 +7653,7 @@
     eq $P281, .CONTROL_LOOP_REDO, loop279_redo
   loop279_done:
     pop_eh 
-  for_undef_53:
+  for_undef_54:
 .annotate 'line', 69
     .return ($P193)
   control_189:
@@ -7480,14 +7666,14 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block197"  :anon :subid("21_1277356886.38597") :outer("20_1277356886.38597")
+.sub "_block197"  :anon :subid("21_1280467469.30058") :outer("20_1280467469.30058")
     .param pmc param_201
 .annotate 'line', 70
-    .const 'Sub' $P268 = "24_1277356886.38597" 
+    .const 'Sub' $P268 = "24_1280467469.30058" 
     capture_lex $P268
-    .const 'Sub' $P248 = "23_1277356886.38597" 
+    .const 'Sub' $P248 = "23_1280467469.30058" 
     capture_lex $P248
-    .const 'Sub' $P219 = "22_1277356886.38597" 
+    .const 'Sub' $P219 = "22_1280467469.30058" 
     capture_lex $P219
 .annotate 'line', 71
     new $P199, "Undef"
@@ -7525,7 +7711,7 @@
 .annotate 'line', 80
     find_lex $P264, "%items"
     defined $I265, $P264
-    unless $I265, for_undef_54
+    unless $I265, for_undef_55
     iter $P263, $P264
     new $P277, 'ExceptionHandler'
     set_addr $P277, loop276_handler
@@ -7535,7 +7721,7 @@
     unless $P263, loop276_done
     shift $P266, $P263
   loop276_redo:
-    .const 'Sub' $P268 = "24_1277356886.38597" 
+    .const 'Sub' $P268 = "24_1280467469.30058" 
     capture_lex $P268
     $P268($P266)
   loop276_next:
@@ -7548,7 +7734,7 @@
     eq $P278, .CONTROL_LOOP_REDO, loop276_redo
   loop276_done:
     pop_eh 
-  for_undef_54:
+  for_undef_55:
 .annotate 'line', 79
     set $P235, $P263
 .annotate 'line', 76
@@ -7557,7 +7743,7 @@
 .annotate 'line', 77
     find_lex $P244, "%items"
     defined $I245, $P244
-    unless $I245, for_undef_56
+    unless $I245, for_undef_57
     iter $P243, $P244
     new $P261, 'ExceptionHandler'
     set_addr $P261, loop260_handler
@@ -7567,7 +7753,7 @@
     unless $P243, loop260_done
     shift $P246, $P243
   loop260_redo:
-    .const 'Sub' $P248 = "23_1277356886.38597" 
+    .const 'Sub' $P248 = "23_1280467469.30058" 
     capture_lex $P248
     $P248($P246)
   loop260_next:
@@ -7580,7 +7766,7 @@
     eq $P262, .CONTROL_LOOP_REDO, loop260_redo
   loop260_done:
     pop_eh 
-  for_undef_56:
+  for_undef_57:
 .annotate 'line', 76
     set $P235, $P243
   if_236_end:
@@ -7591,7 +7777,7 @@
 .annotate 'line', 74
     find_lex $P215, "%items"
     defined $I216, $P215
-    unless $I216, for_undef_57
+    unless $I216, for_undef_58
     iter $P214, $P215
     new $P233, 'ExceptionHandler'
     set_addr $P233, loop232_handler
@@ -7601,7 +7787,7 @@
     unless $P214, loop232_done
     shift $P217, $P214
   loop232_redo:
-    .const 'Sub' $P219 = "22_1277356886.38597" 
+    .const 'Sub' $P219 = "22_1280467469.30058" 
     capture_lex $P219
     $P219($P217)
   loop232_next:
@@ -7614,7 +7800,7 @@
     eq $P234, .CONTROL_LOOP_REDO, loop232_redo
   loop232_done:
     pop_eh 
-  for_undef_57:
+  for_undef_58:
 .annotate 'line', 73
     set $P206, $P214
   if_207_end:
@@ -7624,7 +7810,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block267"  :anon :subid("24_1277356886.38597") :outer("21_1277356886.38597")
+.sub "_block267"  :anon :subid("24_1280467469.30058") :outer("21_1280467469.30058")
     .param pmc param_269
 .annotate 'line', 80
     .lex "$_", param_269
@@ -7634,17 +7820,17 @@
     $P273 = $P272."key"()
     set $S274, $P273
     find_lex $P275, "$target"
-    unless_null $P275, vivify_55
+    unless_null $P275, vivify_56
     $P275 = root_new ['parrot';'Hash']
     store_lex "$target", $P275
-  vivify_55:
+  vivify_56:
     set $P275[$S274], $P271
     .return ($P271)
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block247"  :anon :subid("23_1277356886.38597") :outer("21_1277356886.38597")
+.sub "_block247"  :anon :subid("23_1280467469.30058") :outer("21_1280467469.30058")
     .param pmc param_249
 .annotate 'line', 77
     .lex "$_", param_249
@@ -7664,7 +7850,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block218"  :anon :subid("22_1277356886.38597") :outer("21_1277356886.38597")
+.sub "_block218"  :anon :subid("22_1280467469.30058") :outer("21_1280467469.30058")
     .param pmc param_220
 .annotate 'line', 74
     .lex "$_", param_220
@@ -7686,7 +7872,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "autoprint"  :subid("25_1277356886.38597") :method :outer("11_1277356886.38597")
+.sub "autoprint"  :subid("25_1280467469.30058") :method :outer("11_1280467469.30058")
     .param pmc param_286
 .annotate 'line', 85
     new $P285, 'ExceptionHandler'
@@ -7700,12 +7886,12 @@
     $P290 = $P289."stdhandle"(1)
     $N291 = $P290."tell"()
     find_dynamic_lex $P292, "$*AUTOPRINTPOS"
-    unless_null $P292, vivify_58
-    get_hll_global $P292, "$AUTOPRINTPOS"
     unless_null $P292, vivify_59
+    get_hll_global $P292, "$AUTOPRINTPOS"
+    unless_null $P292, vivify_60
     die "Contextual $*AUTOPRINTPOS not found"
+  vivify_60:
   vivify_59:
-  vivify_58:
     set $N293, $P292
     isgt $I294, $N291, $N293
     unless $I294, unless_288
@@ -7730,11 +7916,11 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "interactive"  :subid("26_1277356886.38597") :method :outer("11_1277356886.38597")
+.sub "interactive"  :subid("26_1280467469.30058") :method :outer("11_1280467469.30058")
     .param pmc param_301 :slurpy :named
 .annotate 'line', 90
-    .const 'Sub' $P331 = "27_1277356886.38597" 
-    capture_lex $P331
+    .const 'Sub' $P333 = "27_1280467469.30058" 
+    capture_lex $P333
     new $P300, 'ExceptionHandler'
     set_addr $P300, control_299
     $P300."handle_types"(.CONTROL_RETURN)
@@ -7750,134 +7936,127 @@
 .annotate 'line', 96
     new $P304, "Undef"
     .lex "$encoding", $P304
+.annotate 'line', 101
+    new $P305, "Undef"
+    .lex "$save_ctx", $P305
 .annotate 'line', 91
-    find_lex $P305, "%adverbs"
-    unless_null $P305, vivify_60
-    $P305 = root_new ['parrot';'Hash']
-  vivify_60:
-    set $P306, $P305["target"]
+    find_lex $P306, "%adverbs"
     unless_null $P306, vivify_61
-    new $P306, "Undef"
+    $P306 = root_new ['parrot';'Hash']
   vivify_61:
-    set $S307, $P306
-    downcase $S308, $S307
-    new $P309, 'String'
-    set $P309, $S308
-    store_lex "$target", $P309
+    set $P307, $P306["target"]
+    unless_null $P307, vivify_62
+    new $P307, "Undef"
+  vivify_62:
+    set $S308, $P307
+    downcase $S309, $S308
+    new $P310, 'String'
+    set $P310, $S309
+    store_lex "$target", $P310
 .annotate 'line', 93
-    getinterp $P310
-    $P311 = $P310."stdhandle"(2)
-    find_lex $P312, "self"
-    $S313 = $P312."commandline_banner"()
-    print $P311, $S313
+    getinterp $P311
+    $P312 = $P311."stdhandle"(2)
+    find_lex $P313, "self"
+    $S314 = $P313."commandline_banner"()
+    print $P312, $S314
 .annotate 'line', 95
-    getinterp $P314
-    $P315 = $P314."stdhandle"(0)
-    store_lex "$stdin", $P315
+    getinterp $P315
+    $P316 = $P315."stdhandle"(0)
+    store_lex "$stdin", $P316
 .annotate 'line', 96
-    find_lex $P316, "%adverbs"
-    unless_null $P316, vivify_62
-    $P316 = root_new ['parrot';'Hash']
-  vivify_62:
-    set $P317, $P316["encoding"]
+    find_lex $P317, "%adverbs"
     unless_null $P317, vivify_63
-    new $P317, "Undef"
+    $P317 = root_new ['parrot';'Hash']
   vivify_63:
-    set $S318, $P317
-    new $P319, 'String'
-    set $P319, $S318
-    store_lex "$encoding", $P319
+    set $P318, $P317["encoding"]
+    unless_null $P318, vivify_64
+    new $P318, "Undef"
+  vivify_64:
+    set $S319, $P318
+    new $P320, 'String'
+    set $P320, $S319
+    store_lex "$encoding", $P320
 .annotate 'line', 97
-    find_lex $P323, "$encoding"
-    if $P323, if_322
-    set $P321, $P323
-    goto if_322_end
-  if_322:
     find_lex $P324, "$encoding"
-    set $S325, $P324
-    isne $I326, $S325, "fixed_8"
-    new $P321, 'Integer'
-    set $P321, $I326
-  if_322_end:
-    unless $P321, if_320_end
+    if $P324, if_323
+    set $P322, $P324
+    goto if_323_end
+  if_323:
+    find_lex $P325, "$encoding"
+    set $S326, $P325
+    isne $I327, $S326, "fixed_8"
+    new $P322, 'Integer'
+    set $P322, $I327
+  if_323_end:
+    unless $P322, if_321_end
 .annotate 'line', 98
-    find_lex $P327, "$stdin"
-    find_lex $P328, "$encoding"
-    $P327."encoding"($P328)
-  if_320_end:
-.annotate 'line', 101
-    new $P439, 'ExceptionHandler'
-    set_addr $P439, loop438_handler
-    $P439."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P439
-  loop438_test:
-    new $P329, "Integer"
-    assign $P329, 1
-    unless $P329, loop438_done
-  loop438_redo:
-    .const 'Sub' $P331 = "27_1277356886.38597" 
-    capture_lex $P331
-    $P331()
-  loop438_next:
-    goto loop438_test
-  loop438_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P440, exception, 'type'
-    eq $P440, .CONTROL_LOOP_NEXT, loop438_next
-    eq $P440, .CONTROL_LOOP_REDO, loop438_redo
-  loop438_done:
+    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)
+    push_eh $P444
+  loop443_test:
+    new $P331, "Integer"
+    assign $P331, 1
+    unless $P331, loop443_done
+  loop443_redo:
+    .const 'Sub' $P333 = "27_1280467469.30058" 
+    capture_lex $P333
+    $P333()
+  loop443_next:
+    goto loop443_test
+  loop443_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P445, exception, 'type'
+    eq $P445, .CONTROL_LOOP_NEXT, loop443_next
+    eq $P445, .CONTROL_LOOP_REDO, loop443_redo
+  loop443_done:
     pop_eh 
 .annotate 'line', 90
-    .return ($P329)
+    .return ($P331)
   control_299:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P441, exception, "payload"
-    .return ($P441)
+    getattribute $P446, exception, "payload"
+    .return ($P446)
 .end
 
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block330"  :anon :subid("27_1277356886.38597") :outer("26_1277356886.38597")
-.annotate 'line', 101
-    .const 'Sub' $P367 = "28_1277356886.38597" 
-    capture_lex $P367
-.annotate 'line', 104
-    new $P332, "Undef"
-    .lex "$prompt", $P332
+.sub "_block332"  :anon :subid("27_1280467469.30058") :outer("26_1280467469.30058")
+.annotate 'line', 102
+    .const 'Sub' $P365 = "28_1280467469.30058" 
+    capture_lex $P365
 .annotate 'line', 105
-    new $P333, "Undef"
-    .lex "$code", $P333
-.annotate 'line', 110
     new $P334, "Undef"
-    .lex "$*AUTOPRINTPOS", $P334
-.annotate 'line', 111
-    get_global $P335, "$interactive_ctx"
-    unless_null $P335, vivify_64
+    .lex "$prompt", $P334
+.annotate 'line', 106
     new $P335, "Undef"
-    set_global "$interactive_ctx", $P335
-  vivify_64:
+    .lex "$code", $P335
+.annotate 'line', 111
+    new $P336, "Undef"
+    .lex "$*AUTOPRINTPOS", $P336
 .annotate 'line', 112
-    get_global $P336, "%interactive_pad"
-    unless_null $P336, vivify_65
-    $P336 = root_new ['parrot';'Hash']
-    set_global "%interactive_pad", $P336
-  vivify_65:
-.annotate 'line', 113
     new $P337, "Undef"
     .lex "$*CTXSAVE", $P337
-.annotate 'line', 114
+.annotate 'line', 113
     new $P338, "Undef"
     .lex "$*MAIN_CTX", $P338
-.annotate 'line', 102
+.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', 104
+.annotate 'line', 105
     find_lex $P343, "self"
     $P344 = $P343."commandline_prompt"()
     set $P342, $P344
@@ -7888,409 +8067,439 @@
     set $P342, $P347
   default_345:
     store_lex "$prompt", $P342
-.annotate 'line', 105
+.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', 107
+.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', 110
+.annotate 'line', 111
     getinterp $P356
     $P357 = $P356."stdhandle"(1)
     $P358 = $P357."tell"()
     store_lex "$*AUTOPRINTPOS", $P358
-    get_global $P359, "$interactive_ctx"
-    get_global $P360, "%interactive_pad"
-.annotate 'line', 113
-    find_lex $P361, "self"
-    store_lex "$*CTXSAVE", $P361
-    find_lex $P362, "$*MAIN_CTX"
-    unless_null $P362, vivify_66
-    get_hll_global $P362, "$MAIN_CTX"
-    unless_null $P362, vivify_67
+.annotate 'line', 112
+    find_lex $P359, "self"
+    store_lex "$*CTXSAVE", $P359
+    find_lex $P360, "$*MAIN_CTX"
+    unless_null $P360, vivify_65
+    get_hll_global $P360, "$MAIN_CTX"
+    unless_null $P360, vivify_66
     die "Contextual $*MAIN_CTX not found"
-  vivify_67:
   vivify_66:
-.annotate 'line', 116
-    find_lex $P365, "$code"
-    if $P365, if_364
-    set $P363, $P365
-    goto if_364_end
-  if_364:
-    .const 'Sub' $P367 = "28_1277356886.38597" 
-    capture_lex $P367
-    $P437 = $P367()
-    set $P363, $P437
-  if_364_end:
-.annotate 'line', 101
-    .return ($P363)
+  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_1280467469.30058" 
+    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 "_block366"  :anon :subid("28_1277356886.38597") :outer("27_1277356886.38597")
+.sub "_block364"  :anon :subid("28_1280467469.30058") :outer("27_1280467469.30058")
+.annotate 'line', 115
+    .const 'Sub' $P398 = "31_1280467469.30058" 
+    capture_lex $P398
+    .const 'Sub' $P371 = "29_1280467469.30058" 
+    capture_lex $P371
+.annotate 'line', 117
+    new $P366, "Undef"
+    .lex "$output", $P366
 .annotate 'line', 116
-    .const 'Sub' $P405 = "31_1277356886.38597" 
-    capture_lex $P405
-    .const 'Sub' $P373 = "29_1277356886.38597" 
-    capture_lex $P373
+    find_lex $P367, "$code"
+    concat $P368, $P367, "\n"
+    store_lex "$code", $P368
+    find_lex $P369, "$output"
 .annotate 'line', 118
-    new $P368, "Undef"
-    .lex "$output", $P368
-.annotate 'line', 117
-    find_lex $P369, "$code"
-    concat $P370, $P369, "\n"
-    store_lex "$code", $P370
-    find_lex $P371, "$output"
-.annotate 'line', 119
-    .const 'Sub' $P373 = "29_1277356886.38597" 
-    capture_lex $P373
-    $P373()
-.annotate 'line', 126
-    find_dynamic_lex $P397, "$*MAIN_CTX"
-    unless_null $P397, vivify_68
-    get_hll_global $P397, "$MAIN_CTX"
-    unless_null $P397, vivify_69
+    .const 'Sub' $P371 = "29_1280467469.30058" 
+    capture_lex $P371
+    $P371()
+.annotate 'line', 125
+    find_dynamic_lex $P395, "$*MAIN_CTX"
+    unless_null $P395, vivify_67
+    get_hll_global $P395, "$MAIN_CTX"
+    unless_null $P395, vivify_68
     die "Contextual $*MAIN_CTX not found"
-  vivify_69:
   vivify_68:
-    defined $I398, $P397
-    unless $I398, if_396_end
-.annotate 'line', 127
-    find_dynamic_lex $P400, "$*MAIN_CTX"
-    unless_null $P400, vivify_70
-    get_hll_global $P400, "$MAIN_CTX"
-    unless_null $P400, vivify_71
-    die "Contextual $*MAIN_CTX not found"
-  vivify_71:
-  vivify_70:
-    $P401 = $P400."lexpad_full"()
-    defined $I402, $P401
-    unless $I402, for_undef_72
-    iter $P399, $P401
-    new $P413, 'ExceptionHandler'
-    set_addr $P413, loop412_handler
-    $P413."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P413
-  loop412_test:
-    unless $P399, loop412_done
-    shift $P403, $P399
-  loop412_redo:
-    .const 'Sub' $P405 = "31_1277356886.38597" 
-    capture_lex $P405
-    $P405($P403)
-  loop412_next:
-    goto loop412_test
-  loop412_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P414, exception, 'type'
-    eq $P414, .CONTROL_LOOP_NEXT, loop412_next
-    eq $P414, .CONTROL_LOOP_REDO, loop412_redo
-  loop412_done:
-    pop_eh 
-  for_undef_72:
-  if_396_end:
-.annotate 'line', 131
-    find_lex $P416, "$output"
-    isnull $I417, $P416
-    unless $I417, if_415_end
-    set $I418, .CONTROL_LOOP_NEXT
-    die 0, $I418
-  if_415_end:
+  vivify_67:
+    defined $I396, $P395
+    unless $I396, if_394_end
+    .const 'Sub' $P398 = "31_1280467469.30058" 
+    capture_lex $P398
+    $P398()
+  if_394_end:
 .annotate 'line', 133
-    find_lex $P421, "$target"
-    isfalse $I422, $P421
-    if $I422, if_420
+    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 $P428, "$target"
-    set $S429, $P428
-    iseq $I430, $S429, "pir"
-    if $I430, if_427
+    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 $P432, "self"
-    find_lex $P433, "$output"
-    find_lex $P434, "$target"
-    find_lex $P435, "%adverbs"
-    $P436 = $P432."dumper"($P433, $P434, $P435 :flat)
+    find_lex $P436, "$output"
+    say $P436
+  if_432_end:
 .annotate 'line', 137
-    set $P426, $P436
+    set $P424, $P431
 .annotate 'line', 135
-    goto if_427_end
-  if_427:
+    goto if_425_end
+  if_425:
 .annotate 'line', 136
-    find_lex $P431, "$output"
-    say $P431
-  if_427_end:
+    find_lex $P428, "self"
+    find_lex $P429, "$output"
+    $P430 = $P428."autoprint"($P429)
 .annotate 'line', 135
-    set $P419, $P426
-.annotate 'line', 133
-    goto if_420_end
-  if_420:
-.annotate 'line', 134
-    find_lex $P423, "self"
-    find_lex $P424, "$output"
-    $P425 = $P423."autoprint"($P424)
-.annotate 'line', 133
-    set $P419, $P425
-  if_420_end:
-.annotate 'line', 116
-    .return ($P419)
+    set $P424, $P430
+  if_425_end:
+.annotate 'line', 115
+    .return ($P424)
 .end
 
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block372"  :anon :subid("29_1277356886.38597") :outer("28_1277356886.38597")
-.annotate 'line', 119
-    .const 'Sub' $P385 = "30_1277356886.38597" 
-    capture_lex $P385
-    new $P381, 'ExceptionHandler'
-    set_addr $P381, control_380
-    $P381."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 $P381
-.annotate 'line', 120
-    find_lex $P374, "self"
-    find_lex $P375, "$code"
-    get_global $P376, "$interactive_ctx"
-    find_lex $P377, "%adverbs"
-    $P378 = $P374."eval"($P375, $P377 :flat, $P376 :named("outer_ctx"))
-    store_lex "$output", $P378
+.sub "_block370"  :anon :subid("29_1280467469.30058") :outer("28_1280467469.30058")
+.annotate 'line', 118
+    .const 'Sub' $P383 = "30_1280467469.30058" 
+    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_379
-  control_380:
-.annotate 'line', 121
+    goto skip_handler_377
+  control_378:
+.annotate 'line', 120
     .local pmc exception 
     .get_results (exception) 
-    .const 'Sub' $P385 = "30_1277356886.38597" 
-    newclosure $P393, $P385
-    $P393(exception)
-    new $P394, 'Integer'
-    set $P394, 1
-    set exception["handled"], $P394
-    set $I395, exception["handled"]
-    ne $I395, 1, nothandled_383
-  handled_382:
+    .const 'Sub' $P383 = "30_1280467469.30058" 
+    newclosure $P391, $P383
+    $P391(exception)
+    new $P392, 'Integer'
+    set $P392, 1
+    set exception["handled"], $P392
+    set $I393, exception["handled"]
+    ne $I393, 1, nothandled_381
+  handled_380:
     .return (exception)
-  nothandled_383:
+  nothandled_381:
     rethrow exception
-  skip_handler_379:
-.annotate 'line', 119
+  skip_handler_377:
+.annotate 'line', 118
     .return ()
 .end
 
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block384"  :anon :subid("30_1277356886.38597") :outer("29_1277356886.38597")
-    .param pmc param_386
+.sub "_block382"  :anon :subid("30_1280467469.30058") :outer("29_1280467469.30058")
+    .param pmc param_384
+.annotate 'line', 120
+    .lex "$_", param_384
+    find_lex $P385, "$_"
+    .lex "$!", $P385
 .annotate 'line', 121
-    .lex "$_", param_386
-    find_lex $P387, "$_"
-    .lex "$!", $P387
+    find_lex $P386, "$!"
+    set $S387, $P386
+    new $P388, 'String'
+    set $P388, $S387
+    concat $P389, $P388, "\n"
+    print $P389
 .annotate 'line', 122
-    find_lex $P388, "$!"
-    set $S389, $P388
-    new $P390, 'String'
-    set $P390, $S389
-    concat $P391, $P390, "\n"
-    print $P391
-.annotate 'line', 123
-    set $I392, .CONTROL_LOOP_NEXT
-    die 0, $I392
-.annotate 'line', 121
+    set $I390, .CONTROL_LOOP_NEXT
+    die 0, $I390
+.annotate 'line', 120
     .return ()
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block404"  :anon :subid("31_1277356886.38597") :outer("28_1277356886.38597")
-    .param pmc param_406
+.include "except_types.pasm"
+.sub "_block397"  :anon :subid("31_1280467469.30058") :outer("28_1280467469.30058")
+.annotate 'line', 125
+    .const 'Sub' $P409 = "32_1280467469.30058" 
+    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
-    .lex "$_", param_406
+    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_lex $P407, "$_"
-    $P408 = $P407."value"()
-    find_lex $P409, "$_"
-    $P410 = $P409."key"()
-    get_global $P411, "%interactive_pad"
-    unless_null $P411, vivify_73
-    $P411 = root_new ['parrot';'Hash']
-    set_global "%interactive_pad", $P411
-  vivify_73:
-    set $P411[$P410], $P408
-.annotate 'line', 127
-    .return ($P408)
+    find_dynamic_lex $P404, "$*MAIN_CTX"
+    unless_null $P404, vivify_71
+    get_hll_global $P404, "$MAIN_CTX"
+    unless_null $P404, vivify_72
+    die "Contextual $*MAIN_CTX not found"
+  vivify_72:
+  vivify_71:
+    $P405 = $P404."lexpad_full"()
+    defined $I406, $P405
+    unless $I406, for_undef_73
+    iter $P403, $P405
+    new $P417, 'ExceptionHandler'
+    set_addr $P417, loop416_handler
+    $P417."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P417
+  loop416_test:
+    unless $P403, loop416_done
+    shift $P407, $P403
+  loop416_redo:
+    .const 'Sub' $P409 = "32_1280467469.30058" 
+    capture_lex $P409
+    $P409($P407)
+  loop416_next:
+    goto loop416_test
+  loop416_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P418, exception, 'type'
+    eq $P418, .CONTROL_LOOP_NEXT, loop416_next
+    eq $P418, .CONTROL_LOOP_REDO, loop416_redo
+  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_1280467469.30058") :outer("31_1280467469.30058")
+    .param pmc param_410
+.annotate 'line', 128
+    .lex "$_", param_410
+.annotate 'line', 129
+    find_lex $P411, "$_"
+    $P412 = $P411."value"()
+    find_lex $P413, "$_"
+    $P414 = $P413."key"()
+    get_global $P415, "%interactive_pad"
+    unless_null $P415, vivify_74
+    $P415 = root_new ['parrot';'Hash']
+    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("32_1277356886.38597") :method :outer("11_1277356886.38597")
-    .param pmc param_445
-    .param pmc param_446 :slurpy
-    .param pmc param_447 :slurpy :named
-.annotate 'line', 144
-    .const 'Sub' $P466 = "33_1277356886.38597" 
-    capture_lex $P466
-    new $P444, 'ExceptionHandler'
-    set_addr $P444, control_443
-    $P444."handle_types"(.CONTROL_RETURN)
-    push_eh $P444
-    .lex "self", self
-    .lex "$code", param_445
-    .lex "@args", param_446
-    .lex "%adverbs", param_447
-.annotate 'line', 145
-    new $P448, "Undef"
-    .lex "$output", $P448
-.annotate 'line', 144
-    find_lex $P449, "$output"
+.sub "eval"  :subid("33_1280467469.30058") :method :outer("11_1280467469.30058")
+    .param pmc param_450
+    .param pmc param_451 :slurpy
+    .param pmc param_452 :slurpy :named
+.annotate 'line', 146
+    .const 'Sub' $P471 = "34_1280467469.30058" 
+    capture_lex $P471
+    new $P449, 'ExceptionHandler'
+    set_addr $P449, control_448
+    $P449."handle_types"(.CONTROL_RETURN)
+    push_eh $P449
+    .lex "self", self
+    .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 $P450, "self"
-    find_lex $P451, "$code"
-    find_lex $P452, "%adverbs"
-    $P453 = $P450."compile"($P451, $P452 :flat)
-    store_lex "$output", $P453
+    find_lex $P454, "$output"
 .annotate 'line', 148
-    find_lex $P457, "$output"
-    isa $I458, $P457, "String"
-    new $P459, 'Integer'
-    set $P459, $I458
-    isfalse $I460, $P459
-    if $I460, if_456
-    new $P455, 'Integer'
-    set $P455, $I460
-    goto if_456_end
-  if_456:
-.annotate 'line', 149
-    find_lex $P461, "%adverbs"
-    unless_null $P461, vivify_74
-    $P461 = root_new ['parrot';'Hash']
-  vivify_74:
-    set $P462, $P461["target"]
-    unless_null $P462, vivify_75
-    new $P462, "Undef"
+    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'
+    set $P464, $I463
+    isfalse $I465, $P464
+    if $I465, if_461
+    new $P460, 'Integer'
+    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']
   vivify_75:
-    set $S463, $P462
-    iseq $I464, $S463, ""
-    new $P455, 'Integer'
-    set $P455, $I464
-  if_456_end:
-    unless $P455, if_454_end
-    .const 'Sub' $P466 = "33_1277356886.38597" 
-    capture_lex $P466
-    $P466()
-  if_454_end:
-.annotate 'line', 148
-    find_lex $P482, "$output"
-.annotate 'line', 144
-    .return ($P482)
-  control_443:
+    set $P467, $P466["target"]
+    unless_null $P467, vivify_76
+    new $P467, "Undef"
+  vivify_76:
+    set $S468, $P467
+    iseq $I469, $S468, ""
+    new $P460, 'Integer'
+    set $P460, $I469
+  if_461_end:
+    unless $P460, if_459_end
+    .const 'Sub' $P471 = "34_1280467469.30058" 
+    capture_lex $P471
+    $P471()
+  if_459_end:
+.annotate 'line', 150
+    find_lex $P487, "$output"
+.annotate 'line', 146
+    .return ($P487)
+  control_448:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P483, exception, "payload"
-    .return ($P483)
+    getattribute $P488, exception, "payload"
+    .return ($P488)
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block465"  :anon :subid("33_1277356886.38597") :outer("32_1277356886.38597")
-.annotate 'line', 150
-    new $P467, "Undef"
-    .lex "$outer_ctx", $P467
-    find_lex $P468, "%adverbs"
-    unless_null $P468, vivify_76
-    $P468 = root_new ['parrot';'Hash']
-  vivify_76:
-    set $P469, $P468["outer_ctx"]
-    unless_null $P469, vivify_77
-    new $P469, "Undef"
-  vivify_77:
-    store_lex "$outer_ctx", $P469
-.annotate 'line', 151
-    find_lex $P471, "$outer_ctx"
-    defined $I472, $P471
-    unless $I472, if_470_end
+.sub "_block470"  :anon :subid("34_1280467469.30058") :outer("33_1280467469.30058")
 .annotate 'line', 152
-    find_lex $P473, "$output"
-    unless_null $P473, vivify_78
-    $P473 = root_new ['parrot';'ResizablePMCArray']
-  vivify_78:
-    set $P474, $P473[0]
-    unless_null $P474, vivify_79
+    new $P472, "Undef"
+    .lex "$outer_ctx", $P472
+    find_lex $P473, "%adverbs"
+    unless_null $P473, vivify_77
+    $P473 = root_new ['parrot';'Hash']
+  vivify_77:
+    set $P474, $P473["outer_ctx"]
+    unless_null $P474, vivify_78
     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']
   vivify_79:
-    find_lex $P475, "$outer_ctx"
-    $P474."set_outer_ctx"($P475)
-  if_470_end:
-.annotate 'line', 155
-    find_lex $P476, "%adverbs"
-    unless_null $P476, vivify_80
-    $P476 = root_new ['parrot';'Hash']
+    set $P479, $P478[0]
+    unless_null $P479, vivify_80
+    new $P479, "Undef"
   vivify_80:
-    set $P477, $P476["trace"]
-    unless_null $P477, vivify_81
-    new $P477, "Undef"
-  vivify_81:
-    set $I478, $P477
-    trace $I478
-.annotate 'line', 156
-    find_lex $P479, "$output"
-    find_lex $P480, "@args"
-    $P481 = $P479($P480 :flat)
-    store_lex "$output", $P481
+    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']
+  vivify_81:
+    set $P482, $P481["trace"]
+    unless_null $P482, vivify_82
+    new $P482, "Undef"
+  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', 149
+.annotate 'line', 151
     .return ()
 .end
 
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "ctxsave"  :subid("34_1277356886.38597") :method :outer("11_1277356886.38597")
-.annotate 'line', 163
-    new $P486, 'ExceptionHandler'
-    set_addr $P486, control_485
-    $P486."handle_types"(.CONTROL_RETURN)
-    push_eh $P486
-    .lex "self", self
+.sub "ctxsave"  :subid("35_1280467469.30058") :method :outer("11_1280467469.30058")
 .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
-                $P487 = $P0['context';1]
+                $P492 = $P0['context';1]
             
-    store_dynamic_lex "$*MAIN_CTX", $P487
-.annotate 'line', 169
-    new $P488, "Integer"
-    assign $P488, 0
-    store_dynamic_lex "$*CTXSAVE", $P488
-.annotate 'line', 163
-    .return ($P488)
-  control_485:
+    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 
     .get_results (exception) 
-    getattribute $P489, exception, "payload"
-    .return ($P489)
+    getattribute $P494, exception, "payload"
+    .return ($P494)
 .end
 
 
 .namespace []
-.sub "_block493" :load :anon :subid("35_1277356886.38597")
+.sub "_block498" :load :anon :subid("36_1280467469.30058")
 .annotate 'line', 1
-    .const 'Sub' $P495 = "10_1277356886.38597" 
-    $P496 = $P495()
-    .return ($P496)
+    .const 'Sub' $P500 = "10_1280467469.30058" 
+    $P501 = $P500()
+    .return ($P501)
 .end
 
 

Modified: branches/dynop_mapping/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/dynop_mapping/ext/nqp-rx/src/stage0/NQP-s0.pir	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/ext/nqp-rx/src/stage0/NQP-s0.pir	Tue Aug  3 02:53:14 2010	(r48260)
@@ -15,7 +15,7 @@
 ### .include 'gen/nqp-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1277356913.9538")
+.sub "_block11"  :anon :subid("10_1280467477.44751")
 .annotate 'line', 0
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
@@ -29,333 +29,341 @@
 .annotate 'line', 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
-    $P1426 = $P14()
+    $P1423 = $P14()
 .annotate 'line', 1
-    .return ($P1426)
-    .const 'Sub' $P1428 = "363_1277356913.9538" 
-    .return ($P1428)
+    .return ($P1423)
+    .const 'Sub' $P1425 = "371_1280467477.44751" 
+    .return ($P1425)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post364") :outer("10_1277356913.9538")
+.sub "" :load :init :subid("post372") :outer("10_1280467477.44751")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1277356913.9538" 
+    .const 'Sub' $P12 = "10_1280467477.44751" 
     .local pmc block
     set block, $P12
-    $P1431 = get_root_global ["parrot"], "P6metaclass"
-    $P1431."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
+    $P1428 = get_root_global ["parrot"], "P6metaclass"
+    $P1428."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block13"  :subid("11_1277356913.9538") :outer("10_1277356913.9538")
+.sub "_block13"  :subid("11_1280467477.44751") :outer("10_1280467477.44751")
 .annotate 'line', 4
-    get_hll_global $P1342, ["NQP";"Regex"], "_block1341" 
-    capture_lex $P1342
-    .const 'Sub' $P1328 = "340_1277356913.9538" 
-    capture_lex $P1328
-    .const 'Sub' $P1322 = "338_1277356913.9538" 
-    capture_lex $P1322
-    .const 'Sub' $P1316 = "336_1277356913.9538" 
-    capture_lex $P1316
-    .const 'Sub' $P1310 = "334_1277356913.9538" 
-    capture_lex $P1310
-    .const 'Sub' $P1304 = "332_1277356913.9538" 
-    capture_lex $P1304
-    .const 'Sub' $P1298 = "330_1277356913.9538" 
-    capture_lex $P1298
-    .const 'Sub' $P1291 = "328_1277356913.9538" 
-    capture_lex $P1291
-    .const 'Sub' $P1284 = "326_1277356913.9538" 
-    capture_lex $P1284
-    .const 'Sub' $P1277 = "324_1277356913.9538" 
-    capture_lex $P1277
-    .const 'Sub' $P1270 = "322_1277356913.9538" 
-    capture_lex $P1270
-    .const 'Sub' $P1264 = "320_1277356913.9538" 
-    capture_lex $P1264
-    .const 'Sub' $P1257 = "318_1277356913.9538" 
-    capture_lex $P1257
-    .const 'Sub' $P1250 = "316_1277356913.9538" 
-    capture_lex $P1250
-    .const 'Sub' $P1243 = "314_1277356913.9538" 
-    capture_lex $P1243
-    .const 'Sub' $P1236 = "312_1277356913.9538" 
-    capture_lex $P1236
-    .const 'Sub' $P1229 = "310_1277356913.9538" 
-    capture_lex $P1229
-    .const 'Sub' $P1222 = "308_1277356913.9538" 
-    capture_lex $P1222
-    .const 'Sub' $P1215 = "306_1277356913.9538" 
-    capture_lex $P1215
-    .const 'Sub' $P1208 = "304_1277356913.9538" 
-    capture_lex $P1208
-    .const 'Sub' $P1201 = "302_1277356913.9538" 
-    capture_lex $P1201
-    .const 'Sub' $P1194 = "300_1277356913.9538" 
-    capture_lex $P1194
-    .const 'Sub' $P1187 = "298_1277356913.9538" 
-    capture_lex $P1187
-    .const 'Sub' $P1180 = "296_1277356913.9538" 
-    capture_lex $P1180
-    .const 'Sub' $P1173 = "294_1277356913.9538" 
-    capture_lex $P1173
-    .const 'Sub' $P1166 = "292_1277356913.9538" 
-    capture_lex $P1166
-    .const 'Sub' $P1159 = "290_1277356913.9538" 
-    capture_lex $P1159
-    .const 'Sub' $P1152 = "288_1277356913.9538" 
-    capture_lex $P1152
-    .const 'Sub' $P1145 = "286_1277356913.9538" 
-    capture_lex $P1145
-    .const 'Sub' $P1138 = "284_1277356913.9538" 
-    capture_lex $P1138
-    .const 'Sub' $P1131 = "282_1277356913.9538" 
-    capture_lex $P1131
-    .const 'Sub' $P1124 = "280_1277356913.9538" 
-    capture_lex $P1124
-    .const 'Sub' $P1117 = "278_1277356913.9538" 
-    capture_lex $P1117
-    .const 'Sub' $P1110 = "276_1277356913.9538" 
-    capture_lex $P1110
-    .const 'Sub' $P1103 = "274_1277356913.9538" 
-    capture_lex $P1103
-    .const 'Sub' $P1096 = "272_1277356913.9538" 
-    capture_lex $P1096
-    .const 'Sub' $P1089 = "270_1277356913.9538" 
-    capture_lex $P1089
-    .const 'Sub' $P1082 = "268_1277356913.9538" 
-    capture_lex $P1082
-    .const 'Sub' $P1076 = "266_1277356913.9538" 
-    capture_lex $P1076
-    .const 'Sub' $P1069 = "264_1277356913.9538" 
-    capture_lex $P1069
-    .const 'Sub' $P1062 = "262_1277356913.9538" 
-    capture_lex $P1062
-    .const 'Sub' $P1055 = "260_1277356913.9538" 
-    capture_lex $P1055
-    .const 'Sub' $P1048 = "258_1277356913.9538" 
-    capture_lex $P1048
-    .const 'Sub' $P1041 = "256_1277356913.9538" 
-    capture_lex $P1041
-    .const 'Sub' $P1034 = "254_1277356913.9538" 
-    capture_lex $P1034
-    .const 'Sub' $P1027 = "252_1277356913.9538" 
-    capture_lex $P1027
-    .const 'Sub' $P1021 = "250_1277356913.9538" 
-    capture_lex $P1021
-    .const 'Sub' $P1015 = "248_1277356913.9538" 
-    capture_lex $P1015
-    .const 'Sub' $P1010 = "246_1277356913.9538" 
-    capture_lex $P1010
-    .const 'Sub' $P1004 = "244_1277356913.9538" 
+    get_hll_global $P1340, ["NQP";"Regex"], "_block1339" 
+    capture_lex $P1340
+    .const 'Sub' $P1326 = "348_1280467477.44751" 
+    capture_lex $P1326
+    .const 'Sub' $P1320 = "346_1280467477.44751" 
+    capture_lex $P1320
+    .const 'Sub' $P1314 = "344_1280467477.44751" 
+    capture_lex $P1314
+    .const 'Sub' $P1308 = "342_1280467477.44751" 
+    capture_lex $P1308
+    .const 'Sub' $P1302 = "340_1280467477.44751" 
+    capture_lex $P1302
+    .const 'Sub' $P1296 = "338_1280467477.44751" 
+    capture_lex $P1296
+    .const 'Sub' $P1289 = "336_1280467477.44751" 
+    capture_lex $P1289
+    .const 'Sub' $P1282 = "334_1280467477.44751" 
+    capture_lex $P1282
+    .const 'Sub' $P1275 = "332_1280467477.44751" 
+    capture_lex $P1275
+    .const 'Sub' $P1268 = "330_1280467477.44751" 
+    capture_lex $P1268
+    .const 'Sub' $P1262 = "328_1280467477.44751" 
+    capture_lex $P1262
+    .const 'Sub' $P1255 = "326_1280467477.44751" 
+    capture_lex $P1255
+    .const 'Sub' $P1248 = "324_1280467477.44751" 
+    capture_lex $P1248
+    .const 'Sub' $P1241 = "322_1280467477.44751" 
+    capture_lex $P1241
+    .const 'Sub' $P1234 = "320_1280467477.44751" 
+    capture_lex $P1234
+    .const 'Sub' $P1227 = "318_1280467477.44751" 
+    capture_lex $P1227
+    .const 'Sub' $P1220 = "316_1280467477.44751" 
+    capture_lex $P1220
+    .const 'Sub' $P1213 = "314_1280467477.44751" 
+    capture_lex $P1213
+    .const 'Sub' $P1206 = "312_1280467477.44751" 
+    capture_lex $P1206
+    .const 'Sub' $P1199 = "310_1280467477.44751" 
+    capture_lex $P1199
+    .const 'Sub' $P1192 = "308_1280467477.44751" 
+    capture_lex $P1192
+    .const 'Sub' $P1185 = "306_1280467477.44751" 
+    capture_lex $P1185
+    .const 'Sub' $P1178 = "304_1280467477.44751" 
+    capture_lex $P1178
+    .const 'Sub' $P1171 = "302_1280467477.44751" 
+    capture_lex $P1171
+    .const 'Sub' $P1164 = "300_1280467477.44751" 
+    capture_lex $P1164
+    .const 'Sub' $P1157 = "298_1280467477.44751" 
+    capture_lex $P1157
+    .const 'Sub' $P1150 = "296_1280467477.44751" 
+    capture_lex $P1150
+    .const 'Sub' $P1143 = "294_1280467477.44751" 
+    capture_lex $P1143
+    .const 'Sub' $P1136 = "292_1280467477.44751" 
+    capture_lex $P1136
+    .const 'Sub' $P1129 = "290_1280467477.44751" 
+    capture_lex $P1129
+    .const 'Sub' $P1122 = "288_1280467477.44751" 
+    capture_lex $P1122
+    .const 'Sub' $P1115 = "286_1280467477.44751" 
+    capture_lex $P1115
+    .const 'Sub' $P1108 = "284_1280467477.44751" 
+    capture_lex $P1108
+    .const 'Sub' $P1101 = "282_1280467477.44751" 
+    capture_lex $P1101
+    .const 'Sub' $P1094 = "280_1280467477.44751" 
+    capture_lex $P1094
+    .const 'Sub' $P1087 = "278_1280467477.44751" 
+    capture_lex $P1087
+    .const 'Sub' $P1080 = "276_1280467477.44751" 
+    capture_lex $P1080
+    .const 'Sub' $P1073 = "274_1280467477.44751" 
+    capture_lex $P1073
+    .const 'Sub' $P1066 = "272_1280467477.44751" 
+    capture_lex $P1066
+    .const 'Sub' $P1059 = "270_1280467477.44751" 
+    capture_lex $P1059
+    .const 'Sub' $P1053 = "268_1280467477.44751" 
+    capture_lex $P1053
+    .const 'Sub' $P1046 = "266_1280467477.44751" 
+    capture_lex $P1046
+    .const 'Sub' $P1039 = "264_1280467477.44751" 
+    capture_lex $P1039
+    .const 'Sub' $P1032 = "262_1280467477.44751" 
+    capture_lex $P1032
+    .const 'Sub' $P1025 = "260_1280467477.44751" 
+    capture_lex $P1025
+    .const 'Sub' $P1018 = "258_1280467477.44751" 
+    capture_lex $P1018
+    .const 'Sub' $P1011 = "256_1280467477.44751" 
+    capture_lex $P1011
+    .const 'Sub' $P1004 = "254_1280467477.44751" 
     capture_lex $P1004
-    .const 'Sub' $P998 = "242_1277356913.9538" 
+    .const 'Sub' $P998 = "252_1280467477.44751" 
     capture_lex $P998
-    .const 'Sub' $P993 = "240_1277356913.9538" 
-    capture_lex $P993
-    .const 'Sub' $P988 = "238_1277356913.9538" 
-    capture_lex $P988
-    .const 'Sub' $P980 = "236_1277356913.9538" 
-    capture_lex $P980
-    .const 'Sub' $P972 = "234_1277356913.9538" 
-    capture_lex $P972
-    .const 'Sub' $P967 = "232_1277356913.9538" 
-    capture_lex $P967
-    .const 'Sub' $P962 = "230_1277356913.9538" 
-    capture_lex $P962
-    .const 'Sub' $P957 = "228_1277356913.9538" 
+    .const 'Sub' $P992 = "250_1280467477.44751" 
+    capture_lex $P992
+    .const 'Sub' $P987 = "248_1280467477.44751" 
+    capture_lex $P987
+    .const 'Sub' $P981 = "246_1280467477.44751" 
+    capture_lex $P981
+    .const 'Sub' $P975 = "244_1280467477.44751" 
+    capture_lex $P975
+    .const 'Sub' $P970 = "242_1280467477.44751" 
+    capture_lex $P970
+    .const 'Sub' $P965 = "240_1280467477.44751" 
+    capture_lex $P965
+    .const 'Sub' $P957 = "238_1280467477.44751" 
     capture_lex $P957
-    .const 'Sub' $P949 = "226_1277356913.9538" 
-    capture_lex $P949
-    .const 'Sub' $P941 = "224_1277356913.9538" 
-    capture_lex $P941
-    .const 'Sub' $P936 = "222_1277356913.9538" 
-    capture_lex $P936
-    .const 'Sub' $P931 = "220_1277356913.9538" 
-    capture_lex $P931
-    .const 'Sub' $P926 = "218_1277356913.9538" 
-    capture_lex $P926
-    .const 'Sub' $P920 = "216_1277356913.9538" 
-    capture_lex $P920
-    .const 'Sub' $P914 = "214_1277356913.9538" 
-    capture_lex $P914
-    .const 'Sub' $P908 = "212_1277356913.9538" 
-    capture_lex $P908
-    .const 'Sub' $P902 = "210_1277356913.9538" 
+    .const 'Sub' $P948 = "236_1280467477.44751" 
+    capture_lex $P948
+    .const 'Sub' $P943 = "234_1280467477.44751" 
+    capture_lex $P943
+    .const 'Sub' $P938 = "232_1280467477.44751" 
+    capture_lex $P938
+    .const 'Sub' $P933 = "230_1280467477.44751" 
+    capture_lex $P933
+    .const 'Sub' $P925 = "228_1280467477.44751" 
+    capture_lex $P925
+    .const 'Sub' $P917 = "226_1280467477.44751" 
+    capture_lex $P917
+    .const 'Sub' $P912 = "224_1280467477.44751" 
+    capture_lex $P912
+    .const 'Sub' $P907 = "222_1280467477.44751" 
+    capture_lex $P907
+    .const 'Sub' $P902 = "220_1280467477.44751" 
     capture_lex $P902
-    .const 'Sub' $P896 = "208_1277356913.9538" 
+    .const 'Sub' $P896 = "218_1280467477.44751" 
     capture_lex $P896
-    .const 'Sub' $P891 = "206_1277356913.9538" 
-    capture_lex $P891
-    .const 'Sub' $P886 = "204_1277356913.9538" 
-    capture_lex $P886
-    .const 'Sub' $P873 = "200_1277356913.9538" 
-    capture_lex $P873
-    .const 'Sub' $P865 = "198_1277356913.9538" 
-    capture_lex $P865
-    .const 'Sub' $P859 = "196_1277356913.9538" 
-    capture_lex $P859
-    .const 'Sub' $P852 = "194_1277356913.9538" 
-    capture_lex $P852
-    .const 'Sub' $P846 = "192_1277356913.9538" 
-    capture_lex $P846
-    .const 'Sub' $P838 = "190_1277356913.9538" 
-    capture_lex $P838
-    .const 'Sub' $P830 = "188_1277356913.9538" 
-    capture_lex $P830
-    .const 'Sub' $P824 = "186_1277356913.9538" 
-    capture_lex $P824
-    .const 'Sub' $P818 = "184_1277356913.9538" 
-    capture_lex $P818
-    .const 'Sub' $P803 = "180_1277356913.9538" 
-    capture_lex $P803
-    .const 'Sub' $P765 = "178_1277356913.9538" 
-    capture_lex $P765
-    .const 'Sub' $P756 = "176_1277356913.9538" 
-    capture_lex $P756
-    .const 'Sub' $P750 = "174_1277356913.9538" 
-    capture_lex $P750
-    .const 'Sub' $P740 = "172_1277356913.9538" 
-    capture_lex $P740
-    .const 'Sub' $P726 = "170_1277356913.9538" 
-    capture_lex $P726
-    .const 'Sub' $P717 = "168_1277356913.9538" 
-    capture_lex $P717
-    .const 'Sub' $P709 = "166_1277356913.9538" 
-    capture_lex $P709
-    .const 'Sub' $P699 = "164_1277356913.9538" 
+    .const 'Sub' $P890 = "216_1280467477.44751" 
+    capture_lex $P890
+    .const 'Sub' $P884 = "214_1280467477.44751" 
+    capture_lex $P884
+    .const 'Sub' $P878 = "212_1280467477.44751" 
+    capture_lex $P878
+    .const 'Sub' $P872 = "210_1280467477.44751" 
+    capture_lex $P872
+    .const 'Sub' $P867 = "208_1280467477.44751" 
+    capture_lex $P867
+    .const 'Sub' $P862 = "206_1280467477.44751" 
+    capture_lex $P862
+    .const 'Sub' $P850 = "202_1280467477.44751" 
+    capture_lex $P850
+    .const 'Sub' $P842 = "200_1280467477.44751" 
+    capture_lex $P842
+    .const 'Sub' $P836 = "198_1280467477.44751" 
+    capture_lex $P836
+    .const 'Sub' $P829 = "196_1280467477.44751" 
+    capture_lex $P829
+    .const 'Sub' $P823 = "194_1280467477.44751" 
+    capture_lex $P823
+    .const 'Sub' $P815 = "192_1280467477.44751" 
+    capture_lex $P815
+    .const 'Sub' $P807 = "190_1280467477.44751" 
+    capture_lex $P807
+    .const 'Sub' $P801 = "188_1280467477.44751" 
+    capture_lex $P801
+    .const 'Sub' $P795 = "186_1280467477.44751" 
+    capture_lex $P795
+    .const 'Sub' $P781 = "182_1280467477.44751" 
+    capture_lex $P781
+    .const 'Sub' $P744 = "180_1280467477.44751" 
+    capture_lex $P744
+    .const 'Sub' $P735 = "178_1280467477.44751" 
+    capture_lex $P735
+    .const 'Sub' $P729 = "176_1280467477.44751" 
+    capture_lex $P729
+    .const 'Sub' $P719 = "174_1280467477.44751" 
+    capture_lex $P719
+    .const 'Sub' $P706 = "172_1280467477.44751" 
+    capture_lex $P706
+    .const 'Sub' $P699 = "170_1280467477.44751" 
     capture_lex $P699
-    .const 'Sub' $P675 = "160_1277356913.9538" 
-    capture_lex $P675
-    .const 'Sub' $P650 = "158_1277356913.9538" 
-    capture_lex $P650
-    .const 'Sub' $P643 = "156_1277356913.9538" 
-    capture_lex $P643
-    .const 'Sub' $P636 = "154_1277356913.9538" 
-    capture_lex $P636
-    .const 'Sub' $P626 = "150_1277356913.9538" 
-    capture_lex $P626
-    .const 'Sub' $P618 = "148_1277356913.9538" 
-    capture_lex $P618
-    .const 'Sub' $P612 = "146_1277356913.9538" 
-    capture_lex $P612
-    .const 'Sub' $P599 = "144_1277356913.9538" 
-    capture_lex $P599
-    .const 'Sub' $P592 = "142_1277356913.9538" 
-    capture_lex $P592
-    .const 'Sub' $P585 = "140_1277356913.9538" 
-    capture_lex $P585
-    .const 'Sub' $P578 = "138_1277356913.9538" 
-    capture_lex $P578
-    .const 'Sub' $P550 = "134_1277356913.9538" 
-    capture_lex $P550
-    .const 'Sub' $P541 = "132_1277356913.9538" 
-    capture_lex $P541
-    .const 'Sub' $P534 = "130_1277356913.9538" 
-    capture_lex $P534
-    .const 'Sub' $P525 = "126_1277356913.9538" 
-    capture_lex $P525
-    .const 'Sub' $P520 = "124_1277356913.9538" 
-    capture_lex $P520
-    .const 'Sub' $P508 = "122_1277356913.9538" 
-    capture_lex $P508
-    .const 'Sub' $P496 = "120_1277356913.9538" 
-    capture_lex $P496
-    .const 'Sub' $P488 = "118_1277356913.9538" 
-    capture_lex $P488
-    .const 'Sub' $P483 = "116_1277356913.9538" 
-    capture_lex $P483
-    .const 'Sub' $P477 = "114_1277356913.9538" 
-    capture_lex $P477
-    .const 'Sub' $P471 = "112_1277356913.9538" 
-    capture_lex $P471
-    .const 'Sub' $P461 = "109_1277356913.9538" 
-    capture_lex $P461
-    .const 'Sub' $P455 = "107_1277356913.9538" 
-    capture_lex $P455
-    .const 'Sub' $P449 = "105_1277356913.9538" 
-    capture_lex $P449
-    .const 'Sub' $P443 = "103_1277356913.9538" 
-    capture_lex $P443
-    .const 'Sub' $P437 = "101_1277356913.9538" 
-    capture_lex $P437
-    .const 'Sub' $P431 = "99_1277356913.9538" 
-    capture_lex $P431
-    .const 'Sub' $P425 = "97_1277356913.9538" 
-    capture_lex $P425
-    .const 'Sub' $P416 = "95_1277356913.9538" 
-    capture_lex $P416
-    .const 'Sub' $P407 = "93_1277356913.9538" 
-    capture_lex $P407
-    .const 'Sub' $P394 = "89_1277356913.9538" 
-    capture_lex $P394
-    .const 'Sub' $P385 = "87_1277356913.9538" 
-    capture_lex $P385
-    .const 'Sub' $P375 = "83_1277356913.9538" 
-    capture_lex $P375
-    .const 'Sub' $P368 = "81_1277356913.9538" 
-    capture_lex $P368
-    .const 'Sub' $P361 = "79_1277356913.9538" 
-    capture_lex $P361
-    .const 'Sub' $P349 = "75_1277356913.9538" 
-    capture_lex $P349
-    .const 'Sub' $P341 = "73_1277356913.9538" 
-    capture_lex $P341
-    .const 'Sub' $P333 = "71_1277356913.9538" 
-    capture_lex $P333
-    .const 'Sub' $P313 = "69_1277356913.9538" 
-    capture_lex $P313
-    .const 'Sub' $P304 = "67_1277356913.9538" 
-    capture_lex $P304
-    .const 'Sub' $P286 = "64_1277356913.9538" 
-    capture_lex $P286
-    .const 'Sub' $P266 = "62_1277356913.9538" 
-    capture_lex $P266
-    .const 'Sub' $P257 = "58_1277356913.9538" 
-    capture_lex $P257
-    .const 'Sub' $P252 = "56_1277356913.9538" 
-    capture_lex $P252
-    .const 'Sub' $P243 = "52_1277356913.9538" 
-    capture_lex $P243
-    .const 'Sub' $P238 = "50_1277356913.9538" 
-    capture_lex $P238
-    .const 'Sub' $P233 = "48_1277356913.9538" 
-    capture_lex $P233
-    .const 'Sub' $P225 = "46_1277356913.9538" 
-    capture_lex $P225
-    .const 'Sub' $P218 = "44_1277356913.9538" 
-    capture_lex $P218
-    .const 'Sub' $P212 = "42_1277356913.9538" 
+    .const 'Sub' $P691 = "168_1280467477.44751" 
+    capture_lex $P691
+    .const 'Sub' $P681 = "166_1280467477.44751" 
+    capture_lex $P681
+    .const 'Sub' $P657 = "162_1280467477.44751" 
+    capture_lex $P657
+    .const 'Sub' $P634 = "160_1280467477.44751" 
+    capture_lex $P634
+    .const 'Sub' $P627 = "158_1280467477.44751" 
+    capture_lex $P627
+    .const 'Sub' $P620 = "156_1280467477.44751" 
+    capture_lex $P620
+    .const 'Sub' $P610 = "152_1280467477.44751" 
+    capture_lex $P610
+    .const 'Sub' $P602 = "150_1280467477.44751" 
+    capture_lex $P602
+    .const 'Sub' $P596 = "148_1280467477.44751" 
+    capture_lex $P596
+    .const 'Sub' $P583 = "146_1280467477.44751" 
+    capture_lex $P583
+    .const 'Sub' $P576 = "144_1280467477.44751" 
+    capture_lex $P576
+    .const 'Sub' $P569 = "142_1280467477.44751" 
+    capture_lex $P569
+    .const 'Sub' $P562 = "140_1280467477.44751" 
+    capture_lex $P562
+    .const 'Sub' $P535 = "136_1280467477.44751" 
+    capture_lex $P535
+    .const 'Sub' $P526 = "134_1280467477.44751" 
+    capture_lex $P526
+    .const 'Sub' $P519 = "132_1280467477.44751" 
+    capture_lex $P519
+    .const 'Sub' $P510 = "128_1280467477.44751" 
+    capture_lex $P510
+    .const 'Sub' $P505 = "126_1280467477.44751" 
+    capture_lex $P505
+    .const 'Sub' $P493 = "124_1280467477.44751" 
+    capture_lex $P493
+    .const 'Sub' $P481 = "122_1280467477.44751" 
+    capture_lex $P481
+    .const 'Sub' $P474 = "120_1280467477.44751" 
+    capture_lex $P474
+    .const 'Sub' $P469 = "118_1280467477.44751" 
+    capture_lex $P469
+    .const 'Sub' $P463 = "116_1280467477.44751" 
+    capture_lex $P463
+    .const 'Sub' $P457 = "114_1280467477.44751" 
+    capture_lex $P457
+    .const 'Sub' $P447 = "111_1280467477.44751" 
+    capture_lex $P447
+    .const 'Sub' $P441 = "109_1280467477.44751" 
+    capture_lex $P441
+    .const 'Sub' $P435 = "107_1280467477.44751" 
+    capture_lex $P435
+    .const 'Sub' $P429 = "105_1280467477.44751" 
+    capture_lex $P429
+    .const 'Sub' $P423 = "103_1280467477.44751" 
+    capture_lex $P423
+    .const 'Sub' $P417 = "101_1280467477.44751" 
+    capture_lex $P417
+    .const 'Sub' $P411 = "99_1280467477.44751" 
+    capture_lex $P411
+    .const 'Sub' $P402 = "97_1280467477.44751" 
+    capture_lex $P402
+    .const 'Sub' $P393 = "95_1280467477.44751" 
+    capture_lex $P393
+    .const 'Sub' $P384 = "93_1280467477.44751" 
+    capture_lex $P384
+    .const 'Sub' $P371 = "89_1280467477.44751" 
+    capture_lex $P371
+    .const 'Sub' $P362 = "87_1280467477.44751" 
+    capture_lex $P362
+    .const 'Sub' $P352 = "83_1280467477.44751" 
+    capture_lex $P352
+    .const 'Sub' $P345 = "81_1280467477.44751" 
+    capture_lex $P345
+    .const 'Sub' $P338 = "79_1280467477.44751" 
+    capture_lex $P338
+    .const 'Sub' $P326 = "75_1280467477.44751" 
+    capture_lex $P326
+    .const 'Sub' $P318 = "73_1280467477.44751" 
+    capture_lex $P318
+    .const 'Sub' $P310 = "71_1280467477.44751" 
+    capture_lex $P310
+    .const 'Sub' $P290 = "69_1280467477.44751" 
+    capture_lex $P290
+    .const 'Sub' $P281 = "67_1280467477.44751" 
+    capture_lex $P281
+    .const 'Sub' $P263 = "64_1280467477.44751" 
+    capture_lex $P263
+    .const 'Sub' $P245 = "62_1280467477.44751" 
+    capture_lex $P245
+    .const 'Sub' $P236 = "58_1280467477.44751" 
+    capture_lex $P236
+    .const 'Sub' $P231 = "56_1280467477.44751" 
+    capture_lex $P231
+    .const 'Sub' $P222 = "52_1280467477.44751" 
+    capture_lex $P222
+    .const 'Sub' $P217 = "50_1280467477.44751" 
+    capture_lex $P217
+    .const 'Sub' $P212 = "48_1280467477.44751" 
     capture_lex $P212
-    .const 'Sub' $P204 = "40_1277356913.9538" 
-    capture_lex $P204
-    .const 'Sub' $P198 = "38_1277356913.9538" 
-    capture_lex $P198
-    .const 'Sub' $P192 = "36_1277356913.9538" 
-    capture_lex $P192
-    .const 'Sub' $P176 = "33_1277356913.9538" 
+    .const 'Sub' $P203 = "46_1280467477.44751" 
+    capture_lex $P203
+    .const 'Sub' $P196 = "44_1280467477.44751" 
+    capture_lex $P196
+    .const 'Sub' $P190 = "42_1280467477.44751" 
+    capture_lex $P190
+    .const 'Sub' $P182 = "40_1280467477.44751" 
+    capture_lex $P182
+    .const 'Sub' $P176 = "38_1280467477.44751" 
     capture_lex $P176
-    .const 'Sub' $P161 = "31_1277356913.9538" 
-    capture_lex $P161
-    .const 'Sub' $P154 = "29_1277356913.9538" 
-    capture_lex $P154
-    .const 'Sub' $P104 = "26_1277356913.9538" 
-    capture_lex $P104
-    .const 'Sub' $P86 = "23_1277356913.9538" 
-    capture_lex $P86
-    .const 'Sub' $P72 = "21_1277356913.9538" 
-    capture_lex $P72
-    .const 'Sub' $P58 = "19_1277356913.9538" 
-    capture_lex $P58
-    .const 'Sub' $P50 = "17_1277356913.9538" 
-    capture_lex $P50
-    .const 'Sub' $P43 = "15_1277356913.9538" 
-    capture_lex $P43
-    .const 'Sub' $P35 = "13_1277356913.9538" 
+    .const 'Sub' $P170 = "36_1280467477.44751" 
+    capture_lex $P170
+    .const 'Sub' $P155 = "33_1280467477.44751" 
+    capture_lex $P155
+    .const 'Sub' $P141 = "31_1280467477.44751" 
+    capture_lex $P141
+    .const 'Sub' $P134 = "29_1280467477.44751" 
+    capture_lex $P134
+    .const 'Sub' $P95 = "26_1280467477.44751" 
+    capture_lex $P95
+    .const 'Sub' $P80 = "23_1280467477.44751" 
+    capture_lex $P80
+    .const 'Sub' $P69 = "21_1280467477.44751" 
+    capture_lex $P69
+    .const 'Sub' $P57 = "19_1280467477.44751" 
+    capture_lex $P57
+    .const 'Sub' $P49 = "17_1280467477.44751" 
+    capture_lex $P49
+    .const 'Sub' $P42 = "15_1280467477.44751" 
+    capture_lex $P42
+    .const 'Sub' $P35 = "13_1280467477.44751" 
     capture_lex $P35
-    .const 'Sub' $P15 = "12_1277356913.9538" 
+    .const 'Sub' $P15 = "12_1280467477.44751" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -363,77 +371,77 @@
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
-.annotate 'line', 563
-    get_hll_global $P1342, ["NQP";"Regex"], "_block1341" 
-    capture_lex $P1342
-    $P1405 = $P1342()
+.annotate 'line', 567
+    get_hll_global $P1340, ["NQP";"Regex"], "_block1339" 
+    capture_lex $P1340
+    $P1402 = $P1340()
 .annotate 'line', 4
-    .return ($P1405)
-    .const 'Sub' $P1407 = "362_1277356913.9538" 
-    .return ($P1407)
+    .return ($P1402)
+    .const 'Sub' $P1404 = "370_1280467477.44751" 
+    .return ($P1404)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post365") :outer("11_1277356913.9538")
+.sub "" :load :init :subid("post373") :outer("11_1280467477.44751")
 .annotate 'line', 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     .local pmc block
     set block, $P14
-.annotate 'line', 447
-    get_hll_global $P1410, ["NQP"], "Grammar"
-    $P1410."O"(":prec<y=>, :assoc<unary>", "%methodop")
 .annotate 'line', 448
-    get_hll_global $P1411, ["NQP"], "Grammar"
-    $P1411."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
+    get_hll_global $P1407, ["NQP"], "Grammar"
+    $P1407."O"(":prec<y=>, :assoc<unary>", "%methodop")
 .annotate 'line', 449
-    get_hll_global $P1412, ["NQP"], "Grammar"
-    $P1412."O"(":prec<w=>, :assoc<left>", "%exponentiation")
+    get_hll_global $P1408, ["NQP"], "Grammar"
+    $P1408."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
 .annotate 'line', 450
-    get_hll_global $P1413, ["NQP"], "Grammar"
-    $P1413."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
+    get_hll_global $P1409, ["NQP"], "Grammar"
+    $P1409."O"(":prec<w=>, :assoc<left>", "%exponentiation")
 .annotate 'line', 451
-    get_hll_global $P1414, ["NQP"], "Grammar"
-    $P1414."O"(":prec<u=>, :assoc<left>", "%multiplicative")
+    get_hll_global $P1410, ["NQP"], "Grammar"
+    $P1410."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
 .annotate 'line', 452
-    get_hll_global $P1415, ["NQP"], "Grammar"
-    $P1415."O"(":prec<t=>, :assoc<left>", "%additive")
+    get_hll_global $P1411, ["NQP"], "Grammar"
+    $P1411."O"(":prec<u=>, :assoc<left>", "%multiplicative")
 .annotate 'line', 453
-    get_hll_global $P1416, ["NQP"], "Grammar"
-    $P1416."O"(":prec<r=>, :assoc<left>", "%concatenation")
+    get_hll_global $P1412, ["NQP"], "Grammar"
+    $P1412."O"(":prec<t=>, :assoc<left>", "%additive")
 .annotate 'line', 454
-    get_hll_global $P1417, ["NQP"], "Grammar"
-    $P1417."O"(":prec<m=>, :assoc<left>", "%relational")
+    get_hll_global $P1413, ["NQP"], "Grammar"
+    $P1413."O"(":prec<r=>, :assoc<left>", "%concatenation")
 .annotate 'line', 455
-    get_hll_global $P1418, ["NQP"], "Grammar"
-    $P1418."O"(":prec<l=>, :assoc<left>", "%tight_and")
+    get_hll_global $P1414, ["NQP"], "Grammar"
+    $P1414."O"(":prec<m=>, :assoc<left>", "%relational")
 .annotate 'line', 456
-    get_hll_global $P1419, ["NQP"], "Grammar"
-    $P1419."O"(":prec<k=>, :assoc<left>", "%tight_or")
+    get_hll_global $P1415, ["NQP"], "Grammar"
+    $P1415."O"(":prec<l=>, :assoc<left>", "%tight_and")
 .annotate 'line', 457
-    get_hll_global $P1420, ["NQP"], "Grammar"
-    $P1420."O"(":prec<j=>, :assoc<right>", "%conditional")
+    get_hll_global $P1416, ["NQP"], "Grammar"
+    $P1416."O"(":prec<k=>, :assoc<left>", "%tight_or")
 .annotate 'line', 458
-    get_hll_global $P1421, ["NQP"], "Grammar"
-    $P1421."O"(":prec<i=>, :assoc<right>", "%assignment")
+    get_hll_global $P1417, ["NQP"], "Grammar"
+    $P1417."O"(":prec<j=>, :assoc<right>", "%conditional")
 .annotate 'line', 459
-    get_hll_global $P1422, ["NQP"], "Grammar"
-    $P1422."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
+    get_hll_global $P1418, ["NQP"], "Grammar"
+    $P1418."O"(":prec<i=>, :assoc<right>", "%assignment")
 .annotate 'line', 460
-    get_hll_global $P1423, ["NQP"], "Grammar"
-    $P1423."O"(":prec<f=>, :assoc<list>", "%list_infix")
+    get_hll_global $P1419, ["NQP"], "Grammar"
+    $P1419."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
 .annotate 'line', 461
-    get_hll_global $P1424, ["NQP"], "Grammar"
-    $P1424."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
-.annotate 'line', 446
-    $P1425 = get_root_global ["parrot"], "P6metaclass"
-    $P1425."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
+    get_hll_global $P1420, ["NQP"], "Grammar"
+    $P1420."O"(":prec<f=>, :assoc<list>", "%list_infix")
+.annotate 'line', 462
+    get_hll_global $P1421, ["NQP"], "Grammar"
+    $P1421."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
+.annotate 'line', 447
+    $P1422 = get_root_global ["parrot"], "P6metaclass"
+    $P1422."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Grammar"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("12_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "TOP"  :subid("12_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
@@ -451,55 +459,55 @@
     .lex "$*MULTINESS", $P20
 .annotate 'line', 4
     find_lex $P21, "%*LANG"
-    unless_null $P21, vivify_366
+    unless_null $P21, vivify_374
     get_hll_global $P21, "%LANG"
-    unless_null $P21, vivify_367
+    unless_null $P21, vivify_375
     die "Contextual %*LANG not found"
-  vivify_367:
-  vivify_366:
+  vivify_375:
+  vivify_374:
 .annotate 'line', 6
     get_hll_global $P22, ["NQP"], "Regex"
     find_lex $P23, "%*LANG"
-    unless_null $P23, vivify_368
+    unless_null $P23, vivify_376
     get_hll_global $P23, "%LANG"
-    unless_null $P23, vivify_369
+    unless_null $P23, vivify_377
     die "Contextual %*LANG not found"
-  vivify_369:
+  vivify_377:
     store_lex "%*LANG", $P23
-  vivify_368:
+  vivify_376:
     set $P23["Regex"], $P22
 .annotate 'line', 7
     get_hll_global $P24, ["NQP"], "RegexActions"
     find_lex $P25, "%*LANG"
-    unless_null $P25, vivify_370
+    unless_null $P25, vivify_378
     get_hll_global $P25, "%LANG"
-    unless_null $P25, vivify_371
+    unless_null $P25, vivify_379
     die "Contextual %*LANG not found"
-  vivify_371:
+  vivify_379:
     store_lex "%*LANG", $P25
-  vivify_370:
+  vivify_378:
     set $P25["Regex-actions"], $P24
 .annotate 'line', 8
     get_hll_global $P26, ["NQP"], "Grammar"
     find_lex $P27, "%*LANG"
-    unless_null $P27, vivify_372
+    unless_null $P27, vivify_380
     get_hll_global $P27, "%LANG"
-    unless_null $P27, vivify_373
+    unless_null $P27, vivify_381
     die "Contextual %*LANG not found"
-  vivify_373:
+  vivify_381:
     store_lex "%*LANG", $P27
-  vivify_372:
+  vivify_380:
     set $P27["MAIN"], $P26
 .annotate 'line', 9
     get_hll_global $P28, ["NQP"], "Actions"
     find_lex $P29, "%*LANG"
-    unless_null $P29, vivify_374
+    unless_null $P29, vivify_382
     get_hll_global $P29, "%LANG"
-    unless_null $P29, vivify_375
+    unless_null $P29, vivify_383
     die "Contextual %*LANG not found"
-  vivify_375:
+  vivify_383:
     store_lex "%*LANG", $P29
-  vivify_374:
+  vivify_382:
     set $P29["MAIN-actions"], $P28
 .annotate 'line', 10
     new $P30, "String"
@@ -523,7 +531,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "identifier"  :subid("13_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "identifier"  :subid("13_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
     .local string rx36_tgt
     .local int rx36_pos
@@ -531,8 +539,7 @@
     .local int rx36_eos
     .local int rx36_rep
     .local pmc rx36_cur
-    (rx36_cur, rx36_pos, rx36_tgt) = self."!cursor_start"()
-    rx36_cur."!cursor_debug"("START ", "identifier")
+    (rx36_cur, rx36_pos, rx36_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx36_cur
     .local pmc match
     .lex "$/", match
@@ -543,6 +550,8 @@
     sub rx36_off, rx36_pos, 1
     substr rx36_tgt, rx36_tgt, rx36_off
   rx36_start:
+    eq $I10, 1, rx36_restart
+    rx36_cur."!cursor_debug"("START ", "identifier")
     $I10 = self.'from'()
     ne $I10, -1, rxscan40_done
     goto rxscan40_scan
@@ -562,8 +571,8 @@
     unless $P10, rx36_fail
     rx36_pos = $P10."pos"()
   # rx rxquantr41 ** 0..*
-    set_addr $I42, rxquantr41_done
-    rx36_cur."!mark_push"(0, rx36_pos, $I42)
+    set_addr $I10, rxquantr41_done
+    rx36_cur."!mark_push"(0, rx36_pos, $I10)
   rxquantr41_loop:
   # rx enumcharlist negate=0 
     ge rx36_pos, rx36_eos, rx36_fail
@@ -577,16 +586,20 @@
     $P10 = rx36_cur."ident"()
     unless $P10, rx36_fail
     rx36_pos = $P10."pos"()
-    (rx36_rep) = rx36_cur."!mark_commit"($I42)
-    rx36_cur."!mark_push"(rx36_rep, rx36_pos, $I42)
+    set_addr $I10, rxquantr41_done
+    (rx36_rep) = rx36_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr41_done
+    rx36_cur."!mark_push"(rx36_rep, rx36_pos, $I10)
     goto rxquantr41_loop
   rxquantr41_done:
   # rx pass
     rx36_cur."!cursor_pass"(rx36_pos, "identifier")
     rx36_cur."!cursor_debug"("PASS  ", "identifier", " at pos=", rx36_pos)
     .return (rx36_cur)
-  rx36_fail:
+  rx36_restart:
 .annotate 'line', 4
+    rx36_cur."!cursor_debug"("NEXT ", "identifier")
+  rx36_fail:
     (rx36_rep, rx36_pos, $I10, $P10) = rx36_cur."!mark_fail"(0)
     lt rx36_pos, -1, rx36_done
     eq rx36_pos, -1, rx36_fail
@@ -600,7 +613,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("14_1277356913.9538") :method
+.sub "!PREFIX__identifier"  :subid("14_1280467477.44751") :method
 .annotate 'line', 4
     $P38 = self."!PREFIX__!subrule"("ident", "")
     new $P39, "ResizablePMCArray"
@@ -610,9928 +623,10814 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "name"  :subid("15_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "name"  :subid("15_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx44_tgt
-    .local int rx44_pos
-    .local int rx44_off
-    .local int rx44_eos
-    .local int rx44_rep
-    .local pmc rx44_cur
-    (rx44_cur, rx44_pos, rx44_tgt) = self."!cursor_start"()
-    rx44_cur."!cursor_debug"("START ", "name")
-    rx44_cur."!cursor_caparray"("identifier")
-    .lex unicode:"$\x{a2}", rx44_cur
-    .local pmc match
-    .lex "$/", match
-    length rx44_eos, rx44_tgt
-    gt rx44_pos, rx44_eos, rx44_done
-    set rx44_off, 0
-    lt rx44_pos, 2, rx44_start
-    sub rx44_off, rx44_pos, 1
-    substr rx44_tgt, rx44_tgt, rx44_off
-  rx44_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan47_done
-    goto rxscan47_scan
-  rxscan47_loop:
-    ($P10) = rx44_cur."from"()
-    inc $P10
-    set rx44_pos, $P10
-    ge rx44_pos, rx44_eos, rxscan47_done
-  rxscan47_scan:
-    set_addr $I10, rxscan47_loop
-    rx44_cur."!mark_push"(0, rx44_pos, $I10)
-  rxscan47_done:
+    .local string rx43_tgt
+    .local int rx43_pos
+    .local int rx43_off
+    .local int rx43_eos
+    .local int rx43_rep
+    .local pmc rx43_cur
+    (rx43_cur, rx43_pos, rx43_tgt, $I10) = self."!cursor_start"()
+    rx43_cur."!cursor_caparray"("identifier")
+    .lex unicode:"$\x{a2}", rx43_cur
+    .local pmc match
+    .lex "$/", match
+    length rx43_eos, rx43_tgt
+    gt rx43_pos, rx43_eos, rx43_done
+    set rx43_off, 0
+    lt rx43_pos, 2, rx43_start
+    sub rx43_off, rx43_pos, 1
+    substr rx43_tgt, rx43_tgt, rx43_off
+  rx43_start:
+    eq $I10, 1, rx43_restart
+    rx43_cur."!cursor_debug"("START ", "name")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan46_done
+    goto rxscan46_scan
+  rxscan46_loop:
+    ($P10) = rx43_cur."from"()
+    inc $P10
+    set rx43_pos, $P10
+    ge rx43_pos, rx43_eos, rxscan46_done
+  rxscan46_scan:
+    set_addr $I10, rxscan46_loop
+    rx43_cur."!mark_push"(0, rx43_pos, $I10)
+  rxscan46_done:
 .annotate 'line', 19
-  # rx rxquantr48 ** 1..*
-    set_addr $I49, rxquantr48_done
-    rx44_cur."!mark_push"(0, -1, $I49)
-  rxquantr48_loop:
+  # rx rxquantr47 ** 1..*
+    set_addr $I10, rxquantr47_done
+    rx43_cur."!mark_push"(0, -1, $I10)
+  rxquantr47_loop:
   # rx subrule "identifier" subtype=capture negate=
-    rx44_cur."!cursor_pos"(rx44_pos)
-    $P10 = rx44_cur."identifier"()
-    unless $P10, rx44_fail
-    rx44_cur."!mark_push"(0, -1, 0, $P10)
+    rx43_cur."!cursor_pos"(rx43_pos)
+    $P10 = rx43_cur."identifier"()
+    unless $P10, rx43_fail
+    goto rxsubrule48_pass
+  rxsubrule48_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx43_fail
+  rxsubrule48_pass:
+    set_addr $I10, rxsubrule48_back
+    rx43_cur."!mark_push"(0, rx43_pos, $I10, $P10)
     $P10."!cursor_names"("identifier")
-    rx44_pos = $P10."pos"()
-    (rx44_rep) = rx44_cur."!mark_commit"($I49)
-    rx44_cur."!mark_push"(rx44_rep, rx44_pos, $I49)
+    rx43_pos = $P10."pos"()
+    set_addr $I10, rxquantr47_done
+    (rx43_rep) = rx43_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr47_done
+    rx43_cur."!mark_push"(rx43_rep, rx43_pos, $I10)
   # rx literal  "::"
-    add $I11, rx44_pos, 2
-    gt $I11, rx44_eos, rx44_fail
-    sub $I11, rx44_pos, rx44_off
-    substr $S10, rx44_tgt, $I11, 2
-    ne $S10, "::", rx44_fail
-    add rx44_pos, 2
-    goto rxquantr48_loop
-  rxquantr48_done:
-  # rx pass
-    rx44_cur."!cursor_pass"(rx44_pos, "name")
-    rx44_cur."!cursor_debug"("PASS  ", "name", " at pos=", rx44_pos)
-    .return (rx44_cur)
-  rx44_fail:
-.annotate 'line', 4
-    (rx44_rep, rx44_pos, $I10, $P10) = rx44_cur."!mark_fail"(0)
-    lt rx44_pos, -1, rx44_done
-    eq rx44_pos, -1, rx44_fail
-    jump $I10
-  rx44_done:
-    rx44_cur."!cursor_fail"()
-    rx44_cur."!cursor_debug"("FAIL  ", "name")
-    .return (rx44_cur)
+    add $I11, rx43_pos, 2
+    gt $I11, rx43_eos, rx43_fail
+    sub $I11, rx43_pos, rx43_off
+    substr $S10, rx43_tgt, $I11, 2
+    ne $S10, "::", rx43_fail
+    add rx43_pos, 2
+    goto rxquantr47_loop
+  rxquantr47_done:
+  # rx pass
+    rx43_cur."!cursor_pass"(rx43_pos, "name")
+    rx43_cur."!cursor_debug"("PASS  ", "name", " at pos=", rx43_pos)
+    .return (rx43_cur)
+  rx43_restart:
+.annotate 'line', 4
+    rx43_cur."!cursor_debug"("NEXT ", "name")
+  rx43_fail:
+    (rx43_rep, rx43_pos, $I10, $P10) = rx43_cur."!mark_fail"(0)
+    lt rx43_pos, -1, rx43_done
+    eq rx43_pos, -1, rx43_fail
+    jump $I10
+  rx43_done:
+    rx43_cur."!cursor_fail"()
+    rx43_cur."!cursor_debug"("FAIL  ", "name")
+    .return (rx43_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name"  :subid("16_1277356913.9538") :method
-.annotate 'line', 4
-    new $P46, "ResizablePMCArray"
-    push $P46, ""
-    .return ($P46)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "deflongname"  :subid("17_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 4
-    .local string rx51_tgt
-    .local int rx51_pos
-    .local int rx51_off
-    .local int rx51_eos
-    .local int rx51_rep
-    .local pmc rx51_cur
-    (rx51_cur, rx51_pos, rx51_tgt) = self."!cursor_start"()
-    rx51_cur."!cursor_debug"("START ", "deflongname")
-    rx51_cur."!cursor_caparray"("colonpair")
-    .lex unicode:"$\x{a2}", rx51_cur
-    .local pmc match
-    .lex "$/", match
-    length rx51_eos, rx51_tgt
-    gt rx51_pos, rx51_eos, rx51_done
-    set rx51_off, 0
-    lt rx51_pos, 2, rx51_start
-    sub rx51_off, rx51_pos, 1
-    substr rx51_tgt, rx51_tgt, rx51_off
-  rx51_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan55_done
-    goto rxscan55_scan
-  rxscan55_loop:
-    ($P10) = rx51_cur."from"()
-    inc $P10
-    set rx51_pos, $P10
-    ge rx51_pos, rx51_eos, rxscan55_done
-  rxscan55_scan:
-    set_addr $I10, rxscan55_loop
-    rx51_cur."!mark_push"(0, rx51_pos, $I10)
-  rxscan55_done:
+.sub "!PREFIX__name"  :subid("16_1280467477.44751") :method
+.annotate 'line', 4
+    new $P45, "ResizablePMCArray"
+    push $P45, ""
+    .return ($P45)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "deflongname"  :subid("17_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+    .local string rx50_tgt
+    .local int rx50_pos
+    .local int rx50_off
+    .local int rx50_eos
+    .local int rx50_rep
+    .local pmc rx50_cur
+    (rx50_cur, rx50_pos, rx50_tgt, $I10) = self."!cursor_start"()
+    rx50_cur."!cursor_caparray"("colonpair")
+    .lex unicode:"$\x{a2}", rx50_cur
+    .local pmc match
+    .lex "$/", match
+    length rx50_eos, rx50_tgt
+    gt rx50_pos, rx50_eos, rx50_done
+    set rx50_off, 0
+    lt rx50_pos, 2, rx50_start
+    sub rx50_off, rx50_pos, 1
+    substr rx50_tgt, rx50_tgt, rx50_off
+  rx50_start:
+    eq $I10, 1, rx50_restart
+    rx50_cur."!cursor_debug"("START ", "deflongname")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan54_done
+    goto rxscan54_scan
+  rxscan54_loop:
+    ($P10) = rx50_cur."from"()
+    inc $P10
+    set rx50_pos, $P10
+    ge rx50_pos, rx50_eos, rxscan54_done
+  rxscan54_scan:
+    set_addr $I10, rxscan54_loop
+    rx50_cur."!mark_push"(0, rx50_pos, $I10)
+  rxscan54_done:
 .annotate 'line', 22
   # rx subrule "identifier" subtype=capture negate=
-    rx51_cur."!cursor_pos"(rx51_pos)
-    $P10 = rx51_cur."identifier"()
-    unless $P10, rx51_fail
-    rx51_cur."!mark_push"(0, -1, 0, $P10)
+    rx50_cur."!cursor_pos"(rx50_pos)
+    $P10 = rx50_cur."identifier"()
+    unless $P10, rx50_fail
+    rx50_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx51_pos = $P10."pos"()
-  # rx rxquantr56 ** 0..1
-    set_addr $I57, rxquantr56_done
-    rx51_cur."!mark_push"(0, rx51_pos, $I57)
-  rxquantr56_loop:
+    rx50_pos = $P10."pos"()
+  # rx rxquantr55 ** 0..1
+    set_addr $I10, rxquantr55_done
+    rx50_cur."!mark_push"(0, rx50_pos, $I10)
+  rxquantr55_loop:
   # rx subrule "colonpair" subtype=capture negate=
-    rx51_cur."!cursor_pos"(rx51_pos)
-    $P10 = rx51_cur."colonpair"()
-    unless $P10, rx51_fail
-    rx51_cur."!mark_push"(0, -1, 0, $P10)
+    rx50_cur."!cursor_pos"(rx50_pos)
+    $P10 = rx50_cur."colonpair"()
+    unless $P10, rx50_fail
+    goto rxsubrule56_pass
+  rxsubrule56_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx50_fail
+  rxsubrule56_pass:
+    set_addr $I10, rxsubrule56_back
+    rx50_cur."!mark_push"(0, rx50_pos, $I10, $P10)
     $P10."!cursor_names"("colonpair")
-    rx51_pos = $P10."pos"()
-    (rx51_rep) = rx51_cur."!mark_commit"($I57)
-  rxquantr56_done:
+    rx50_pos = $P10."pos"()
+    set_addr $I10, rxquantr55_done
+    (rx50_rep) = rx50_cur."!mark_commit"($I10)
+  rxquantr55_done:
 .annotate 'line', 21
   # rx pass
-    rx51_cur."!cursor_pass"(rx51_pos, "deflongname")
-    rx51_cur."!cursor_debug"("PASS  ", "deflongname", " at pos=", rx51_pos)
-    .return (rx51_cur)
-  rx51_fail:
+    rx50_cur."!cursor_pass"(rx50_pos, "deflongname")
+    rx50_cur."!cursor_debug"("PASS  ", "deflongname", " at pos=", rx50_pos)
+    .return (rx50_cur)
+  rx50_restart:
 .annotate 'line', 4
-    (rx51_rep, rx51_pos, $I10, $P10) = rx51_cur."!mark_fail"(0)
-    lt rx51_pos, -1, rx51_done
-    eq rx51_pos, -1, rx51_fail
+    rx50_cur."!cursor_debug"("NEXT ", "deflongname")
+  rx50_fail:
+    (rx50_rep, rx50_pos, $I10, $P10) = rx50_cur."!mark_fail"(0)
+    lt rx50_pos, -1, rx50_done
+    eq rx50_pos, -1, rx50_fail
     jump $I10
-  rx51_done:
-    rx51_cur."!cursor_fail"()
-    rx51_cur."!cursor_debug"("FAIL  ", "deflongname")
-    .return (rx51_cur)
+  rx50_done:
+    rx50_cur."!cursor_fail"()
+    rx50_cur."!cursor_debug"("FAIL  ", "deflongname")
+    .return (rx50_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname"  :subid("18_1277356913.9538") :method
+.sub "!PREFIX__deflongname"  :subid("18_1280467477.44751") :method
 .annotate 'line', 4
-    $P53 = self."!PREFIX__!subrule"("identifier", "")
-    new $P54, "ResizablePMCArray"
-    push $P54, $P53
-    .return ($P54)
+    $P52 = self."!PREFIX__!subrule"("identifier", "")
+    new $P53, "ResizablePMCArray"
+    push $P53, $P52
+    .return ($P53)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ENDSTMT"  :subid("19_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "ENDSTMT"  :subid("19_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx59_tgt
-    .local int rx59_pos
-    .local int rx59_off
-    .local int rx59_eos
-    .local int rx59_rep
-    .local pmc rx59_cur
-    (rx59_cur, rx59_pos, rx59_tgt) = self."!cursor_start"()
-    rx59_cur."!cursor_debug"("START ", "ENDSTMT")
-    .lex unicode:"$\x{a2}", rx59_cur
+    .local string rx58_tgt
+    .local int rx58_pos
+    .local int rx58_off
+    .local int rx58_eos
+    .local int rx58_rep
+    .local pmc rx58_cur
+    (rx58_cur, rx58_pos, rx58_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx58_cur
     .local pmc match
     .lex "$/", match
-    length rx59_eos, rx59_tgt
-    gt rx59_pos, rx59_eos, rx59_done
-    set rx59_off, 0
-    lt rx59_pos, 2, rx59_start
-    sub rx59_off, rx59_pos, 1
-    substr rx59_tgt, rx59_tgt, rx59_off
-  rx59_start:
+    length rx58_eos, rx58_tgt
+    gt rx58_pos, rx58_eos, rx58_done
+    set rx58_off, 0
+    lt rx58_pos, 2, rx58_start
+    sub rx58_off, rx58_pos, 1
+    substr rx58_tgt, rx58_tgt, rx58_off
+  rx58_start:
+    eq $I10, 1, rx58_restart
+    rx58_cur."!cursor_debug"("START ", "ENDSTMT")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan62_done
-    goto rxscan62_scan
-  rxscan62_loop:
-    ($P10) = rx59_cur."from"()
+    ne $I10, -1, rxscan61_done
+    goto rxscan61_scan
+  rxscan61_loop:
+    ($P10) = rx58_cur."from"()
     inc $P10
-    set rx59_pos, $P10
-    ge rx59_pos, rx59_eos, rxscan62_done
-  rxscan62_scan:
-    set_addr $I10, rxscan62_loop
-    rx59_cur."!mark_push"(0, rx59_pos, $I10)
-  rxscan62_done:
+    set rx58_pos, $P10
+    ge rx58_pos, rx58_eos, rxscan61_done
+  rxscan61_scan:
+    set_addr $I10, rxscan61_loop
+    rx58_cur."!mark_push"(0, rx58_pos, $I10)
+  rxscan61_done:
 .annotate 'line', 29
-  # rx rxquantr63 ** 0..1
-    set_addr $I71, rxquantr63_done
-    rx59_cur."!mark_push"(0, rx59_pos, $I71)
-  rxquantr63_loop:
-  alt64_0:
+  # 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, alt64_1
-    rx59_cur."!mark_push"(0, rx59_pos, $I10)
+    set_addr $I10, alt63_1
+    rx58_cur."!mark_push"(0, rx58_pos, $I10)
 .annotate 'line', 27
-  # rx rxquantr65 ** 0..*
-    set_addr $I66, rxquantr65_done
-    rx59_cur."!mark_push"(0, rx59_pos, $I66)
-  rxquantr65_loop:
+  # rx rxquantr64 ** 0..*
+    set_addr $I10, rxquantr64_done
+    rx58_cur."!mark_push"(0, rx58_pos, $I10)
+  rxquantr64_loop:
   # rx enumcharlist negate=0 
-    ge rx59_pos, rx59_eos, rx59_fail
-    sub $I10, rx59_pos, rx59_off
-    substr $S10, rx59_tgt, $I10, 1
+    ge rx58_pos, rx58_eos, rx58_fail
+    sub $I10, rx58_pos, rx58_off
+    substr $S10, rx58_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, rx59_fail
-    inc rx59_pos
-    (rx59_rep) = rx59_cur."!mark_commit"($I66)
-    rx59_cur."!mark_push"(rx59_rep, rx59_pos, $I66)
-    goto rxquantr65_loop
-  rxquantr65_done:
+    lt $I11, 0, rx58_fail
+    inc rx58_pos
+    set_addr $I10, rxquantr64_done
+    (rx58_rep) = rx58_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr64_done
+    rx58_cur."!mark_push"(rx58_rep, rx58_pos, $I10)
+    goto rxquantr64_loop
+  rxquantr64_done:
   # rxanchor eol
-    sub $I10, rx59_pos, rx59_off
-    is_cclass $I11, 4096, rx59_tgt, $I10
-    if $I11, rxanchor67_done
-    ne rx59_pos, rx59_eos, rx59_fail
-    eq rx59_pos, 0, rxanchor67_done
+    sub $I10, rx58_pos, rx58_off
+    is_cclass $I11, 4096, rx58_tgt, $I10
+    if $I11, rxanchor65_done
+    ne rx58_pos, rx58_eos, rx58_fail
+    eq rx58_pos, 0, rxanchor65_done
     dec $I10
-    is_cclass $I11, 4096, rx59_tgt, $I10
-    if $I11, rx59_fail
-  rxanchor67_done:
-  # rx subrule "ws" subtype=method negate=
-    rx59_cur."!cursor_pos"(rx59_pos)
-    $P10 = rx59_cur."ws"()
-    unless $P10, rx59_fail
-    rx59_pos = $P10."pos"()
+    is_cclass $I11, 4096, rx58_tgt, $I10
+    if $I11, rx58_fail
+  rxanchor65_done:
+  # rx subrule "ws" subtype=method negate=
+    rx58_cur."!cursor_pos"(rx58_pos)
+    $P10 = rx58_cur."ws"()
+    unless $P10, rx58_fail
+    rx58_pos = $P10."pos"()
   # rx subrule "MARKER" subtype=zerowidth negate=
-    rx59_cur."!cursor_pos"(rx59_pos)
-    $P10 = rx59_cur."MARKER"("endstmt")
-    unless $P10, rx59_fail
-    goto alt64_end
-  alt64_1:
+    rx58_cur."!cursor_pos"(rx58_pos)
+    $P10 = rx58_cur."MARKER"("endstmt")
+    unless $P10, rx58_fail
+    goto alt63_end
+  alt63_1:
 .annotate 'line', 28
-  # rx rxquantr68 ** 0..1
-    set_addr $I69, rxquantr68_done
-    rx59_cur."!mark_push"(0, rx59_pos, $I69)
-  rxquantr68_loop:
+  # rx rxquantr66 ** 0..1
+    set_addr $I10, rxquantr66_done
+    rx58_cur."!mark_push"(0, rx58_pos, $I10)
+  rxquantr66_loop:
   # rx subrule "unv" subtype=method negate=
-    rx59_cur."!cursor_pos"(rx59_pos)
-    $P10 = rx59_cur."unv"()
-    unless $P10, rx59_fail
-    rx59_pos = $P10."pos"()
-    (rx59_rep) = rx59_cur."!mark_commit"($I69)
-  rxquantr68_done:
+    rx58_cur."!cursor_pos"(rx58_pos)
+    $P10 = rx58_cur."unv"()
+    unless $P10, rx58_fail
+    goto rxsubrule67_pass
+  rxsubrule67_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx58_fail
+  rxsubrule67_pass:
+    set_addr $I10, rxsubrule67_back
+    rx58_cur."!mark_push"(0, rx58_pos, $I10, $P10)
+    rx58_pos = $P10."pos"()
+    set_addr $I10, rxquantr66_done
+    (rx58_rep) = rx58_cur."!mark_commit"($I10)
+  rxquantr66_done:
   # rxanchor eol
-    sub $I10, rx59_pos, rx59_off
-    is_cclass $I11, 4096, rx59_tgt, $I10
-    if $I11, rxanchor70_done
-    ne rx59_pos, rx59_eos, rx59_fail
-    eq rx59_pos, 0, rxanchor70_done
+    sub $I10, rx58_pos, rx58_off
+    is_cclass $I11, 4096, rx58_tgt, $I10
+    if $I11, rxanchor68_done
+    ne rx58_pos, rx58_eos, rx58_fail
+    eq rx58_pos, 0, rxanchor68_done
     dec $I10
-    is_cclass $I11, 4096, rx59_tgt, $I10
-    if $I11, rx59_fail
-  rxanchor70_done:
-  # rx subrule "ws" subtype=method negate=
-    rx59_cur."!cursor_pos"(rx59_pos)
-    $P10 = rx59_cur."ws"()
-    unless $P10, rx59_fail
-    rx59_pos = $P10."pos"()
+    is_cclass $I11, 4096, rx58_tgt, $I10
+    if $I11, rx58_fail
+  rxanchor68_done:
+  # rx subrule "ws" subtype=method negate=
+    rx58_cur."!cursor_pos"(rx58_pos)
+    $P10 = rx58_cur."ws"()
+    unless $P10, rx58_fail
+    rx58_pos = $P10."pos"()
   # rx subrule "MARKER" subtype=zerowidth negate=
-    rx59_cur."!cursor_pos"(rx59_pos)
-    $P10 = rx59_cur."MARKER"("endstmt")
-    unless $P10, rx59_fail
-  alt64_end:
+    rx58_cur."!cursor_pos"(rx58_pos)
+    $P10 = rx58_cur."MARKER"("endstmt")
+    unless $P10, rx58_fail
+  alt63_end:
 .annotate 'line', 29
-    (rx59_rep) = rx59_cur."!mark_commit"($I71)
-  rxquantr63_done:
+    set_addr $I10, rxquantr62_done
+    (rx58_rep) = rx58_cur."!mark_commit"($I10)
+  rxquantr62_done:
 .annotate 'line', 25
   # rx pass
-    rx59_cur."!cursor_pass"(rx59_pos, "ENDSTMT")
-    rx59_cur."!cursor_debug"("PASS  ", "ENDSTMT", " at pos=", rx59_pos)
-    .return (rx59_cur)
-  rx59_fail:
+    rx58_cur."!cursor_pass"(rx58_pos, "ENDSTMT")
+    rx58_cur."!cursor_debug"("PASS  ", "ENDSTMT", " at pos=", rx58_pos)
+    .return (rx58_cur)
+  rx58_restart:
 .annotate 'line', 4
-    (rx59_rep, rx59_pos, $I10, $P10) = rx59_cur."!mark_fail"(0)
-    lt rx59_pos, -1, rx59_done
-    eq rx59_pos, -1, rx59_fail
+    rx58_cur."!cursor_debug"("NEXT ", "ENDSTMT")
+  rx58_fail:
+    (rx58_rep, rx58_pos, $I10, $P10) = rx58_cur."!mark_fail"(0)
+    lt rx58_pos, -1, rx58_done
+    eq rx58_pos, -1, rx58_fail
     jump $I10
-  rx59_done:
-    rx59_cur."!cursor_fail"()
-    rx59_cur."!cursor_debug"("FAIL  ", "ENDSTMT")
-    .return (rx59_cur)
+  rx58_done:
+    rx58_cur."!cursor_fail"()
+    rx58_cur."!cursor_debug"("FAIL  ", "ENDSTMT")
+    .return (rx58_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT"  :subid("20_1277356913.9538") :method
+.sub "!PREFIX__ENDSTMT"  :subid("20_1280467477.44751") :method
 .annotate 'line', 4
-    new $P61, "ResizablePMCArray"
-    push $P61, ""
-    .return ($P61)
+    new $P60, "ResizablePMCArray"
+    push $P60, ""
+    .return ($P60)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ws"  :subid("21_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "ws"  :subid("21_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx73_tgt
-    .local int rx73_pos
-    .local int rx73_off
-    .local int rx73_eos
-    .local int rx73_rep
-    .local pmc rx73_cur
-    (rx73_cur, rx73_pos, rx73_tgt) = self."!cursor_start"()
-    rx73_cur."!cursor_debug"("START ", "ws")
-    .lex unicode:"$\x{a2}", rx73_cur
-    .local pmc match
-    .lex "$/", match
-    length rx73_eos, rx73_tgt
-    gt rx73_pos, rx73_eos, rx73_done
-    set rx73_off, 0
-    lt rx73_pos, 2, rx73_start
-    sub rx73_off, rx73_pos, 1
-    substr rx73_tgt, rx73_tgt, rx73_off
-  rx73_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan76_done
-    goto rxscan76_scan
-  rxscan76_loop:
-    ($P10) = rx73_cur."from"()
-    inc $P10
-    set rx73_pos, $P10
-    ge rx73_pos, rx73_eos, rxscan76_done
-  rxscan76_scan:
-    set_addr $I10, rxscan76_loop
-    rx73_cur."!mark_push"(0, rx73_pos, $I10)
-  rxscan76_done:
-  alt77_0:
+    .local string rx70_tgt
+    .local int rx70_pos
+    .local int rx70_off
+    .local int rx70_eos
+    .local int rx70_rep
+    .local pmc rx70_cur
+    (rx70_cur, rx70_pos, rx70_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx70_cur
+    .local pmc match
+    .lex "$/", match
+    length rx70_eos, rx70_tgt
+    gt rx70_pos, rx70_eos, rx70_done
+    set rx70_off, 0
+    lt rx70_pos, 2, rx70_start
+    sub rx70_off, rx70_pos, 1
+    substr rx70_tgt, rx70_tgt, rx70_off
+  rx70_start:
+    eq $I10, 1, rx70_restart
+    rx70_cur."!cursor_debug"("START ", "ws")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan73_done
+    goto rxscan73_scan
+  rxscan73_loop:
+    ($P10) = rx70_cur."from"()
+    inc $P10
+    set rx70_pos, $P10
+    ge rx70_pos, rx70_eos, rxscan73_done
+  rxscan73_scan:
+    set_addr $I10, rxscan73_loop
+    rx70_cur."!mark_push"(0, rx70_pos, $I10)
+  rxscan73_done:
+  alt74_0:
 .annotate 'line', 32
-    set_addr $I10, alt77_1
-    rx73_cur."!mark_push"(0, rx73_pos, $I10)
+    set_addr $I10, alt74_1
+    rx70_cur."!mark_push"(0, rx70_pos, $I10)
 .annotate 'line', 33
   # rx subrule "MARKED" subtype=zerowidth negate=
-    rx73_cur."!cursor_pos"(rx73_pos)
-    $P10 = rx73_cur."MARKED"("ws")
-    unless $P10, rx73_fail
-    goto alt77_end
-  alt77_1:
+    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
-    rx73_cur."!cursor_pos"(rx73_pos)
-    $P10 = rx73_cur."ww"()
-    if $P10, rx73_fail
+    rx70_cur."!cursor_pos"(rx70_pos)
+    $P10 = rx70_cur."ww"()
+    if $P10, rx70_fail
 .annotate 'line', 39
-  # rx rxquantr78 ** 0..*
-    set_addr $I85, rxquantr78_done
-    rx73_cur."!mark_push"(0, rx73_pos, $I85)
-  rxquantr78_loop:
-  alt79_0:
+  # 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, alt79_1
-    rx73_cur."!mark_push"(0, rx73_pos, $I10)
-  # rx rxquantr80 ** 1..*
-    set_addr $I81, rxquantr80_done
-    rx73_cur."!mark_push"(0, -1, $I81)
-  rxquantr80_loop:
+    set_addr $I10, alt76_1
+    rx70_cur."!mark_push"(0, rx70_pos, $I10)
+  # rx rxquantr77 ** 1..*
+    set_addr $I10, rxquantr77_done
+    rx70_cur."!mark_push"(0, -1, $I10)
+  rxquantr77_loop:
   # rx enumcharlist negate=0 
-    ge rx73_pos, rx73_eos, rx73_fail
-    sub $I10, rx73_pos, rx73_off
-    substr $S10, rx73_tgt, $I10, 1
+    ge rx70_pos, rx70_eos, rx70_fail
+    sub $I10, rx70_pos, rx70_off
+    substr $S10, rx70_tgt, $I10, 1
     index $I11, unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", $S10
-    lt $I11, 0, rx73_fail
-    inc rx73_pos
-    (rx73_rep) = rx73_cur."!mark_commit"($I81)
-    rx73_cur."!mark_push"(rx73_rep, rx73_pos, $I81)
-    goto rxquantr80_loop
-  rxquantr80_done:
-    goto alt79_end
-  alt79_1:
-    set_addr $I10, alt79_2
-    rx73_cur."!mark_push"(0, rx73_pos, $I10)
+    lt $I11, 0, rx70_fail
+    inc rx70_pos
+    set_addr $I10, rxquantr77_done
+    (rx70_rep) = rx70_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr77_done
+    rx70_cur."!mark_push"(rx70_rep, rx70_pos, $I10)
+    goto rxquantr77_loop
+  rxquantr77_done:
+    goto alt76_end
+  alt76_1:
+    set_addr $I10, alt76_2
+    rx70_cur."!mark_push"(0, rx70_pos, $I10)
 .annotate 'line', 36
   # rx literal  "#"
-    add $I11, rx73_pos, 1
-    gt $I11, rx73_eos, rx73_fail
-    sub $I11, rx73_pos, rx73_off
-    substr $S10, rx73_tgt, $I11, 1
-    ne $S10, "#", rx73_fail
-    add rx73_pos, 1
+    add $I11, rx70_pos, 1
+    gt $I11, rx70_eos, rx70_fail
+    sub $I11, rx70_pos, rx70_off
+    substr $S10, rx70_tgt, $I11, 1
+    ne $S10, "#", rx70_fail
+    add rx70_pos, 1
   # rx charclass_q N r 0..-1
-    sub $I10, rx73_pos, rx73_off
-    find_cclass $I11, 4096, rx73_tgt, $I10, rx73_eos
-    add rx73_pos, rx73_off, $I11
-    goto alt79_end
-  alt79_2:
-    set_addr $I10, alt79_3
-    rx73_cur."!mark_push"(0, rx73_pos, $I10)
+    sub $I10, rx70_pos, rx70_off
+    find_cclass $I11, 4096, rx70_tgt, $I10, rx70_eos
+    add rx70_pos, rx70_off, $I11
+    goto alt76_end
+  alt76_2:
+    set_addr $I10, alt76_3
+    rx70_cur."!mark_push"(0, rx70_pos, $I10)
 .annotate 'line', 37
   # rxanchor bol
-    eq rx73_pos, 0, rxanchor82_done
-    ge rx73_pos, rx73_eos, rx73_fail
-    sub $I10, rx73_pos, rx73_off
+    eq rx70_pos, 0, rxanchor78_done
+    ge rx70_pos, rx70_eos, rx70_fail
+    sub $I10, rx70_pos, rx70_off
     dec $I10
-    is_cclass $I11, 4096, rx73_tgt, $I10
-    unless $I11, rx73_fail
-  rxanchor82_done:
+    is_cclass $I11, 4096, rx70_tgt, $I10
+    unless $I11, rx70_fail
+  rxanchor78_done:
   # rx subrule "pod_comment" subtype=method negate=
-    rx73_cur."!cursor_pos"(rx73_pos)
-    $P10 = rx73_cur."pod_comment"()
-    unless $P10, rx73_fail
-    rx73_pos = $P10."pos"()
-    goto alt79_end
-  alt79_3:
+    rx70_cur."!cursor_pos"(rx70_pos)
+    $P10 = rx70_cur."pod_comment"()
+    unless $P10, rx70_fail
+    rx70_pos = $P10."pos"()
+    goto alt76_end
+  alt76_3:
 .annotate 'line', 38
-  # rx rxquantr83 ** 1..*
-    set_addr $I84, rxquantr83_done
-    rx73_cur."!mark_push"(0, -1, $I84)
-  rxquantr83_loop:
+  # rx rxquantr79 ** 1..*
+    set_addr $I10, rxquantr79_done
+    rx70_cur."!mark_push"(0, -1, $I10)
+  rxquantr79_loop:
   # rx enumcharlist negate=0 
-    ge rx73_pos, rx73_eos, rx73_fail
-    sub $I10, rx73_pos, rx73_off
-    substr $S10, rx73_tgt, $I10, 1
+    ge rx70_pos, rx70_eos, rx70_fail
+    sub $I10, rx70_pos, rx70_off
+    substr $S10, rx70_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, rx73_fail
-    inc rx73_pos
-    (rx73_rep) = rx73_cur."!mark_commit"($I84)
-    rx73_cur."!mark_push"(rx73_rep, rx73_pos, $I84)
-    goto rxquantr83_loop
-  rxquantr83_done:
-  alt79_end:
+    lt $I11, 0, rx70_fail
+    inc rx70_pos
+    set_addr $I10, rxquantr79_done
+    (rx70_rep) = rx70_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr79_done
+    rx70_cur."!mark_push"(rx70_rep, rx70_pos, $I10)
+    goto rxquantr79_loop
+  rxquantr79_done:
+  alt76_end:
 .annotate 'line', 39
-    (rx73_rep) = rx73_cur."!mark_commit"($I85)
-    rx73_cur."!mark_push"(rx73_rep, rx73_pos, $I85)
-    goto rxquantr78_loop
-  rxquantr78_done:
+    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=
-    rx73_cur."!cursor_pos"(rx73_pos)
-    $P10 = rx73_cur."MARKER"("ws")
-    unless $P10, rx73_fail
-  alt77_end:
+    rx70_cur."!cursor_pos"(rx70_pos)
+    $P10 = rx70_cur."MARKER"("ws")
+    unless $P10, rx70_fail
+  alt74_end:
 .annotate 'line', 32
   # rx pass
-    rx73_cur."!cursor_pass"(rx73_pos, "ws")
-    rx73_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx73_pos)
-    .return (rx73_cur)
-  rx73_fail:
+    rx70_cur."!cursor_pass"(rx70_pos, "ws")
+    rx70_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx70_pos)
+    .return (rx70_cur)
+  rx70_restart:
 .annotate 'line', 4
-    (rx73_rep, rx73_pos, $I10, $P10) = rx73_cur."!mark_fail"(0)
-    lt rx73_pos, -1, rx73_done
-    eq rx73_pos, -1, rx73_fail
+    rx70_cur."!cursor_debug"("NEXT ", "ws")
+  rx70_fail:
+    (rx70_rep, rx70_pos, $I10, $P10) = rx70_cur."!mark_fail"(0)
+    lt rx70_pos, -1, rx70_done
+    eq rx70_pos, -1, rx70_fail
     jump $I10
-  rx73_done:
-    rx73_cur."!cursor_fail"()
-    rx73_cur."!cursor_debug"("FAIL  ", "ws")
-    .return (rx73_cur)
+  rx70_done:
+    rx70_cur."!cursor_fail"()
+    rx70_cur."!cursor_debug"("FAIL  ", "ws")
+    .return (rx70_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws"  :subid("22_1277356913.9538") :method
+.sub "!PREFIX__ws"  :subid("22_1280467477.44751") :method
 .annotate 'line', 4
-    new $P75, "ResizablePMCArray"
-    push $P75, ""
-    push $P75, ""
-    .return ($P75)
+    new $P72, "ResizablePMCArray"
+    push $P72, ""
+    push $P72, ""
+    .return ($P72)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "unv"  :subid("23_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "unv"  :subid("23_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .const 'Sub' $P94 = "25_1277356913.9538" 
-    capture_lex $P94
-    .local string rx87_tgt
-    .local int rx87_pos
-    .local int rx87_off
-    .local int rx87_eos
-    .local int rx87_rep
-    .local pmc rx87_cur
-    (rx87_cur, rx87_pos, rx87_tgt) = self."!cursor_start"()
-    rx87_cur."!cursor_debug"("START ", "unv")
-    .lex unicode:"$\x{a2}", rx87_cur
+    .const 'Sub' $P88 = "25_1280467477.44751" 
+    capture_lex $P88
+    .local string rx81_tgt
+    .local int rx81_pos
+    .local int rx81_off
+    .local int rx81_eos
+    .local int rx81_rep
+    .local pmc rx81_cur
+    (rx81_cur, rx81_pos, rx81_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx81_cur
     .local pmc match
     .lex "$/", match
-    length rx87_eos, rx87_tgt
-    gt rx87_pos, rx87_eos, rx87_done
-    set rx87_off, 0
-    lt rx87_pos, 2, rx87_start
-    sub rx87_off, rx87_pos, 1
-    substr rx87_tgt, rx87_tgt, rx87_off
-  rx87_start:
+    length rx81_eos, rx81_tgt
+    gt rx81_pos, rx81_eos, rx81_done
+    set rx81_off, 0
+    lt rx81_pos, 2, rx81_start
+    sub rx81_off, rx81_pos, 1
+    substr rx81_tgt, rx81_tgt, rx81_off
+  rx81_start:
+    eq $I10, 1, rx81_restart
+    rx81_cur."!cursor_debug"("START ", "unv")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan90_done
-    goto rxscan90_scan
-  rxscan90_loop:
-    ($P10) = rx87_cur."from"()
+    ne $I10, -1, rxscan84_done
+    goto rxscan84_scan
+  rxscan84_loop:
+    ($P10) = rx81_cur."from"()
     inc $P10
-    set rx87_pos, $P10
-    ge rx87_pos, rx87_eos, rxscan90_done
-  rxscan90_scan:
-    set_addr $I10, rxscan90_loop
-    rx87_cur."!mark_push"(0, rx87_pos, $I10)
-  rxscan90_done:
-  alt91_0:
+    set rx81_pos, $P10
+    ge rx81_pos, rx81_eos, rxscan84_done
+  rxscan84_scan:
+    set_addr $I10, rxscan84_loop
+    rx81_cur."!mark_push"(0, rx81_pos, $I10)
+  rxscan84_done:
+  alt85_0:
 .annotate 'line', 45
-    set_addr $I10, alt91_1
-    rx87_cur."!mark_push"(0, rx87_pos, $I10)
+    set_addr $I10, alt85_1
+    rx81_cur."!mark_push"(0, rx81_pos, $I10)
 .annotate 'line', 46
   # rxanchor bol
-    eq rx87_pos, 0, rxanchor92_done
-    ge rx87_pos, rx87_eos, rx87_fail
-    sub $I10, rx87_pos, rx87_off
+    eq rx81_pos, 0, rxanchor86_done
+    ge rx81_pos, rx81_eos, rx81_fail
+    sub $I10, rx81_pos, rx81_off
     dec $I10
-    is_cclass $I11, 4096, rx87_tgt, $I10
-    unless $I11, rx87_fail
-  rxanchor92_done:
+    is_cclass $I11, 4096, rx81_tgt, $I10
+    unless $I11, rx81_fail
+  rxanchor86_done:
   # rx subrule "before" subtype=zerowidth negate=
-    rx87_cur."!cursor_pos"(rx87_pos)
-    .const 'Sub' $P94 = "25_1277356913.9538" 
-    capture_lex $P94
-    $P10 = rx87_cur."before"($P94)
-    unless $P10, rx87_fail
+    rx81_cur."!cursor_pos"(rx81_pos)
+    .const 'Sub' $P88 = "25_1280467477.44751" 
+    capture_lex $P88
+    $P10 = rx81_cur."before"($P88)
+    unless $P10, rx81_fail
   # rx subrule "pod_comment" subtype=method negate=
-    rx87_cur."!cursor_pos"(rx87_pos)
-    $P10 = rx87_cur."pod_comment"()
-    unless $P10, rx87_fail
-    rx87_pos = $P10."pos"()
-    goto alt91_end
-  alt91_1:
-    set_addr $I10, alt91_2
-    rx87_cur."!mark_push"(0, rx87_pos, $I10)
+    rx81_cur."!cursor_pos"(rx81_pos)
+    $P10 = rx81_cur."pod_comment"()
+    unless $P10, rx81_fail
+    rx81_pos = $P10."pos"()
+    goto alt85_end
+  alt85_1:
+    set_addr $I10, alt85_2
+    rx81_cur."!mark_push"(0, rx81_pos, $I10)
 .annotate 'line', 47
-  # rx rxquantr100 ** 0..*
-    set_addr $I101, rxquantr100_done
-    rx87_cur."!mark_push"(0, rx87_pos, $I101)
-  rxquantr100_loop:
+  # rx rxquantr93 ** 0..*
+    set_addr $I10, rxquantr93_done
+    rx81_cur."!mark_push"(0, rx81_pos, $I10)
+  rxquantr93_loop:
   # rx enumcharlist negate=0 
-    ge rx87_pos, rx87_eos, rx87_fail
-    sub $I10, rx87_pos, rx87_off
-    substr $S10, rx87_tgt, $I10, 1
+    ge rx81_pos, rx81_eos, rx81_fail
+    sub $I10, rx81_pos, rx81_off
+    substr $S10, rx81_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, rx87_fail
-    inc rx87_pos
-    (rx87_rep) = rx87_cur."!mark_commit"($I101)
-    rx87_cur."!mark_push"(rx87_rep, rx87_pos, $I101)
-    goto rxquantr100_loop
-  rxquantr100_done:
+    lt $I11, 0, rx81_fail
+    inc rx81_pos
+    set_addr $I10, rxquantr93_done
+    (rx81_rep) = rx81_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr93_done
+    rx81_cur."!mark_push"(rx81_rep, rx81_pos, $I10)
+    goto rxquantr93_loop
+  rxquantr93_done:
   # rx literal  "#"
-    add $I11, rx87_pos, 1
-    gt $I11, rx87_eos, rx87_fail
-    sub $I11, rx87_pos, rx87_off
-    substr $S10, rx87_tgt, $I11, 1
-    ne $S10, "#", rx87_fail
-    add rx87_pos, 1
+    add $I11, rx81_pos, 1
+    gt $I11, rx81_eos, rx81_fail
+    sub $I11, rx81_pos, rx81_off
+    substr $S10, rx81_tgt, $I11, 1
+    ne $S10, "#", rx81_fail
+    add rx81_pos, 1
   # rx charclass_q N r 0..-1
-    sub $I10, rx87_pos, rx87_off
-    find_cclass $I11, 4096, rx87_tgt, $I10, rx87_eos
-    add rx87_pos, rx87_off, $I11
-    goto alt91_end
-  alt91_2:
+    sub $I10, rx81_pos, rx81_off
+    find_cclass $I11, 4096, rx81_tgt, $I10, rx81_eos
+    add rx81_pos, rx81_off, $I11
+    goto alt85_end
+  alt85_2:
 .annotate 'line', 48
-  # rx rxquantr102 ** 1..*
-    set_addr $I103, rxquantr102_done
-    rx87_cur."!mark_push"(0, -1, $I103)
-  rxquantr102_loop:
+  # rx rxquantr94 ** 1..*
+    set_addr $I10, rxquantr94_done
+    rx81_cur."!mark_push"(0, -1, $I10)
+  rxquantr94_loop:
   # rx enumcharlist negate=0 
-    ge rx87_pos, rx87_eos, rx87_fail
-    sub $I10, rx87_pos, rx87_off
-    substr $S10, rx87_tgt, $I10, 1
+    ge rx81_pos, rx81_eos, rx81_fail
+    sub $I10, rx81_pos, rx81_off
+    substr $S10, rx81_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, rx87_fail
-    inc rx87_pos
-    (rx87_rep) = rx87_cur."!mark_commit"($I103)
-    rx87_cur."!mark_push"(rx87_rep, rx87_pos, $I103)
-    goto rxquantr102_loop
-  rxquantr102_done:
-  alt91_end:
+    lt $I11, 0, rx81_fail
+    inc rx81_pos
+    set_addr $I10, rxquantr94_done
+    (rx81_rep) = rx81_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr94_done
+    rx81_cur."!mark_push"(rx81_rep, rx81_pos, $I10)
+    goto rxquantr94_loop
+  rxquantr94_done:
+  alt85_end:
 .annotate 'line', 43
   # rx pass
-    rx87_cur."!cursor_pass"(rx87_pos, "unv")
-    rx87_cur."!cursor_debug"("PASS  ", "unv", " at pos=", rx87_pos)
-    .return (rx87_cur)
-  rx87_fail:
+    rx81_cur."!cursor_pass"(rx81_pos, "unv")
+    rx81_cur."!cursor_debug"("PASS  ", "unv", " at pos=", rx81_pos)
+    .return (rx81_cur)
+  rx81_restart:
 .annotate 'line', 4
-    (rx87_rep, rx87_pos, $I10, $P10) = rx87_cur."!mark_fail"(0)
-    lt rx87_pos, -1, rx87_done
-    eq rx87_pos, -1, rx87_fail
+    rx81_cur."!cursor_debug"("NEXT ", "unv")
+  rx81_fail:
+    (rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0)
+    lt rx81_pos, -1, rx81_done
+    eq rx81_pos, -1, rx81_fail
     jump $I10
-  rx87_done:
-    rx87_cur."!cursor_fail"()
-    rx87_cur."!cursor_debug"("FAIL  ", "unv")
-    .return (rx87_cur)
+  rx81_done:
+    rx81_cur."!cursor_fail"()
+    rx81_cur."!cursor_debug"("FAIL  ", "unv")
+    .return (rx81_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv"  :subid("24_1277356913.9538") :method
+.sub "!PREFIX__unv"  :subid("24_1280467477.44751") :method
 .annotate 'line', 4
-    new $P89, "ResizablePMCArray"
-    push $P89, ""
-    push $P89, ""
-    push $P89, ""
-    .return ($P89)
+    new $P83, "ResizablePMCArray"
+    push $P83, ""
+    push $P83, ""
+    push $P83, ""
+    .return ($P83)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block93"  :anon :subid("25_1277356913.9538") :method :outer("23_1277356913.9538")
+.sub "_block87"  :anon :subid("25_1280467477.44751") :method :outer("23_1280467477.44751")
 .annotate 'line', 46
-    .local string rx95_tgt
-    .local int rx95_pos
-    .local int rx95_off
-    .local int rx95_eos
-    .local int rx95_rep
-    .local pmc rx95_cur
-    (rx95_cur, rx95_pos, rx95_tgt) = self."!cursor_start"()
-    rx95_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx95_cur
-    .local pmc match
-    .lex "$/", match
-    length rx95_eos, rx95_tgt
-    gt rx95_pos, rx95_eos, rx95_done
-    set rx95_off, 0
-    lt rx95_pos, 2, rx95_start
-    sub rx95_off, rx95_pos, 1
-    substr rx95_tgt, rx95_tgt, rx95_off
-  rx95_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan96_done
-    goto rxscan96_scan
-  rxscan96_loop:
-    ($P10) = rx95_cur."from"()
-    inc $P10
-    set rx95_pos, $P10
-    ge rx95_pos, rx95_eos, rxscan96_done
-  rxscan96_scan:
-    set_addr $I10, rxscan96_loop
-    rx95_cur."!mark_push"(0, rx95_pos, $I10)
-  rxscan96_done:
-  # rx rxquantr97 ** 0..*
-    set_addr $I98, rxquantr97_done
-    rx95_cur."!mark_push"(0, rx95_pos, $I98)
-  rxquantr97_loop:
+    .local string rx89_tgt
+    .local int rx89_pos
+    .local int rx89_off
+    .local int rx89_eos
+    .local int rx89_rep
+    .local pmc rx89_cur
+    (rx89_cur, rx89_pos, rx89_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx89_cur
+    .local pmc match
+    .lex "$/", match
+    length rx89_eos, rx89_tgt
+    gt rx89_pos, rx89_eos, rx89_done
+    set rx89_off, 0
+    lt rx89_pos, 2, rx89_start
+    sub rx89_off, rx89_pos, 1
+    substr rx89_tgt, rx89_tgt, rx89_off
+  rx89_start:
+    eq $I10, 1, rx89_restart
+    rx89_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan90_done
+    goto rxscan90_scan
+  rxscan90_loop:
+    ($P10) = rx89_cur."from"()
+    inc $P10
+    set rx89_pos, $P10
+    ge rx89_pos, rx89_eos, rxscan90_done
+  rxscan90_scan:
+    set_addr $I10, rxscan90_loop
+    rx89_cur."!mark_push"(0, rx89_pos, $I10)
+  rxscan90_done:
+  # rx rxquantr91 ** 0..*
+    set_addr $I10, rxquantr91_done
+    rx89_cur."!mark_push"(0, rx89_pos, $I10)
+  rxquantr91_loop:
   # rx enumcharlist negate=0 
-    ge rx95_pos, rx95_eos, rx95_fail
-    sub $I10, rx95_pos, rx95_off
-    substr $S10, rx95_tgt, $I10, 1
+    ge rx89_pos, rx89_eos, rx89_fail
+    sub $I10, rx89_pos, rx89_off
+    substr $S10, rx89_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, rx95_fail
-    inc rx95_pos
-    (rx95_rep) = rx95_cur."!mark_commit"($I98)
-    rx95_cur."!mark_push"(rx95_rep, rx95_pos, $I98)
-    goto rxquantr97_loop
-  rxquantr97_done:
+    lt $I11, 0, rx89_fail
+    inc rx89_pos
+    set_addr $I10, rxquantr91_done
+    (rx89_rep) = rx89_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr91_done
+    rx89_cur."!mark_push"(rx89_rep, rx89_pos, $I10)
+    goto rxquantr91_loop
+  rxquantr91_done:
   # rx literal  "="
-    add $I11, rx95_pos, 1
-    gt $I11, rx95_eos, rx95_fail
-    sub $I11, rx95_pos, rx95_off
-    substr $S10, rx95_tgt, $I11, 1
-    ne $S10, "=", rx95_fail
-    add rx95_pos, 1
-  alt99_0:
-    set_addr $I10, alt99_1
-    rx95_cur."!mark_push"(0, rx95_pos, $I10)
+    add $I11, rx89_pos, 1
+    gt $I11, rx89_eos, rx89_fail
+    sub $I11, rx89_pos, rx89_off
+    substr $S10, rx89_tgt, $I11, 1
+    ne $S10, "=", rx89_fail
+    add rx89_pos, 1
+  alt92_0:
+    set_addr $I10, alt92_1
+    rx89_cur."!mark_push"(0, rx89_pos, $I10)
   # rx charclass w
-    ge rx95_pos, rx95_eos, rx95_fail
-    sub $I10, rx95_pos, rx95_off
-    is_cclass $I11, 8192, rx95_tgt, $I10
-    unless $I11, rx95_fail
-    inc rx95_pos
-    goto alt99_end
-  alt99_1:
+    ge rx89_pos, rx89_eos, rx89_fail
+    sub $I10, rx89_pos, rx89_off
+    is_cclass $I11, 8192, rx89_tgt, $I10
+    unless $I11, rx89_fail
+    inc rx89_pos
+    goto alt92_end
+  alt92_1:
   # rx literal  "\\"
-    add $I11, rx95_pos, 1
-    gt $I11, rx95_eos, rx95_fail
-    sub $I11, rx95_pos, rx95_off
-    substr $S10, rx95_tgt, $I11, 1
-    ne $S10, "\\", rx95_fail
-    add rx95_pos, 1
-  alt99_end:
-  # rx pass
-    rx95_cur."!cursor_pass"(rx95_pos, "")
-    rx95_cur."!cursor_debug"("PASS  ", "", " at pos=", rx95_pos)
-    .return (rx95_cur)
-  rx95_fail:
-    (rx95_rep, rx95_pos, $I10, $P10) = rx95_cur."!mark_fail"(0)
-    lt rx95_pos, -1, rx95_done
-    eq rx95_pos, -1, rx95_fail
-    jump $I10
-  rx95_done:
-    rx95_cur."!cursor_fail"()
-    rx95_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx95_cur)
+    add $I11, rx89_pos, 1
+    gt $I11, rx89_eos, rx89_fail
+    sub $I11, rx89_pos, rx89_off
+    substr $S10, rx89_tgt, $I11, 1
+    ne $S10, "\\", rx89_fail
+    add rx89_pos, 1
+  alt92_end:
+  # rx pass
+    rx89_cur."!cursor_pass"(rx89_pos, "")
+    rx89_cur."!cursor_debug"("PASS  ", "", " at pos=", rx89_pos)
+    .return (rx89_cur)
+  rx89_restart:
+    rx89_cur."!cursor_debug"("NEXT ", "")
+  rx89_fail:
+    (rx89_rep, rx89_pos, $I10, $P10) = rx89_cur."!mark_fail"(0)
+    lt rx89_pos, -1, rx89_done
+    eq rx89_pos, -1, rx89_fail
+    jump $I10
+  rx89_done:
+    rx89_cur."!cursor_fail"()
+    rx89_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx89_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pod_comment"  :subid("26_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 4
-    .const 'Sub' $P145 = "28_1277356913.9538" 
-    capture_lex $P145
-    .local string rx105_tgt
-    .local int rx105_pos
-    .local int rx105_off
-    .local int rx105_eos
-    .local int rx105_rep
-    .local pmc rx105_cur
-    (rx105_cur, rx105_pos, rx105_tgt) = self."!cursor_start"()
-    rx105_cur."!cursor_debug"("START ", "pod_comment")
-    .lex unicode:"$\x{a2}", rx105_cur
-    .local pmc match
-    .lex "$/", match
-    length rx105_eos, rx105_tgt
-    gt rx105_pos, rx105_eos, rx105_done
-    set rx105_off, 0
-    lt rx105_pos, 2, rx105_start
-    sub rx105_off, rx105_pos, 1
-    substr rx105_tgt, rx105_tgt, rx105_off
-  rx105_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan108_done
-    goto rxscan108_scan
-  rxscan108_loop:
-    ($P10) = rx105_cur."from"()
-    inc $P10
-    set rx105_pos, $P10
-    ge rx105_pos, rx105_eos, rxscan108_done
-  rxscan108_scan:
-    set_addr $I10, rxscan108_loop
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
-  rxscan108_done:
+.sub "pod_comment"  :subid("26_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+    .const 'Sub' $P127 = "28_1280467477.44751" 
+    capture_lex $P127
+    .local string rx96_tgt
+    .local int rx96_pos
+    .local int rx96_off
+    .local int rx96_eos
+    .local int rx96_rep
+    .local pmc rx96_cur
+    (rx96_cur, rx96_pos, rx96_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx96_cur
+    .local pmc match
+    .lex "$/", match
+    length rx96_eos, rx96_tgt
+    gt rx96_pos, rx96_eos, rx96_done
+    set rx96_off, 0
+    lt rx96_pos, 2, rx96_start
+    sub rx96_off, rx96_pos, 1
+    substr rx96_tgt, rx96_tgt, rx96_off
+  rx96_start:
+    eq $I10, 1, rx96_restart
+    rx96_cur."!cursor_debug"("START ", "pod_comment")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan99_done
+    goto rxscan99_scan
+  rxscan99_loop:
+    ($P10) = rx96_cur."from"()
+    inc $P10
+    set rx96_pos, $P10
+    ge rx96_pos, rx96_eos, rxscan99_done
+  rxscan99_scan:
+    set_addr $I10, rxscan99_loop
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+  rxscan99_done:
 .annotate 'line', 53
   # rxanchor bol
-    eq rx105_pos, 0, rxanchor109_done
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
+    eq rx96_pos, 0, rxanchor100_done
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
     dec $I10
-    is_cclass $I11, 4096, rx105_tgt, $I10
-    unless $I11, rx105_fail
-  rxanchor109_done:
-  # rx rxquantr110 ** 0..*
-    set_addr $I111, rxquantr110_done
-    rx105_cur."!mark_push"(0, rx105_pos, $I111)
-  rxquantr110_loop:
+    is_cclass $I11, 4096, rx96_tgt, $I10
+    unless $I11, rx96_fail
+  rxanchor100_done:
+  # rx rxquantr101 ** 0..*
+    set_addr $I10, rxquantr101_done
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+  rxquantr101_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_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, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I111)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I111)
-    goto rxquantr110_loop
-  rxquantr110_done:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr101_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr101_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr101_loop
+  rxquantr101_done:
   # rx literal  "="
-    add $I11, rx105_pos, 1
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 1
-    ne $S10, "=", rx105_fail
-    add rx105_pos, 1
-  alt112_0:
+    add $I11, rx96_pos, 1
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 1
+    ne $S10, "=", rx96_fail
+    add rx96_pos, 1
+  alt102_0:
 .annotate 'line', 54
-    set_addr $I10, alt112_1
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    set_addr $I10, alt102_1
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
 .annotate 'line', 55
   # rx literal  "begin"
-    add $I11, rx105_pos, 5
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 5
-    ne $S10, "begin", rx105_fail
-    add rx105_pos, 5
-  # rx rxquantr113 ** 1..*
-    set_addr $I114, rxquantr113_done
-    rx105_cur."!mark_push"(0, -1, $I114)
-  rxquantr113_loop:
+    add $I11, rx96_pos, 5
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 5
+    ne $S10, "begin", rx96_fail
+    add rx96_pos, 5
+  # rx rxquantr103 ** 1..*
+    set_addr $I10, rxquantr103_done
+    rx96_cur."!mark_push"(0, -1, $I10)
+  rxquantr103_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_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, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I114)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I114)
-    goto rxquantr113_loop
-  rxquantr113_done:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr103_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr103_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr103_loop
+  rxquantr103_done:
   # rx literal  "END"
-    add $I11, rx105_pos, 3
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 3
-    ne $S10, "END", rx105_fail
-    add rx105_pos, 3
+    add $I11, rx96_pos, 3
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 3
+    ne $S10, "END", rx96_fail
+    add rx96_pos, 3
   # rxanchor rwb
-    le rx105_pos, 0, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    if $I11, rx105_fail
+    le rx96_pos, 0, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    if $I11, rx96_fail
     dec $I10
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    unless $I11, rx105_fail
-  alt115_0:
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    unless $I11, rx96_fail
+  alt104_0:
 .annotate 'line', 56
-    set_addr $I10, alt115_1
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
-  # rx rxquantf116 ** 0..*
-    set_addr $I10, rxquantf116_loop
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
-    goto rxquantf116_done
-  rxquantf116_loop:
+    set_addr $I10, alt104_1
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+  # rx rxquantf105 ** 0..*
+    set_addr $I10, rxquantf105_loop
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+    goto rxquantf105_done
+  rxquantf105_loop:
   # rx charclass .
-    ge rx105_pos, rx105_eos, rx105_fail
-    inc rx105_pos
-    set_addr $I10, rxquantf116_loop
-    rx105_cur."!mark_push"($I117, rx105_pos, $I10)
-  rxquantf116_done:
+    ge rx96_pos, rx96_eos, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantf105_loop
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+  rxquantf105_done:
   # rx charclass nl
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 4096, rx105_tgt, $I10
-    unless $I11, rx105_fail
-    substr $S10, rx105_tgt, $I10, 2
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 4096, rx96_tgt, $I10
+    unless $I11, rx96_fail
+    substr $S10, rx96_tgt, $I10, 2
     iseq $I11, $S10, "\r\n"
-    add rx105_pos, $I11
-    inc rx105_pos
-  # rx rxquantr118 ** 0..*
-    set_addr $I119, rxquantr118_done
-    rx105_cur."!mark_push"(0, rx105_pos, $I119)
-  rxquantr118_loop:
+    add rx96_pos, $I11
+    inc rx96_pos
+  # rx rxquantr107 ** 0..*
+    set_addr $I10, rxquantr107_done
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+  rxquantr107_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_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, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I119)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I119)
-    goto rxquantr118_loop
-  rxquantr118_done:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr107_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr107_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr107_loop
+  rxquantr107_done:
   # rx literal  "=end"
-    add $I11, rx105_pos, 4
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 4
-    ne $S10, "=end", rx105_fail
-    add rx105_pos, 4
-  # rx rxquantr120 ** 1..*
-    set_addr $I121, rxquantr120_done
-    rx105_cur."!mark_push"(0, -1, $I121)
-  rxquantr120_loop:
+    add $I11, rx96_pos, 4
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 4
+    ne $S10, "=end", rx96_fail
+    add rx96_pos, 4
+  # rx rxquantr108 ** 1..*
+    set_addr $I10, rxquantr108_done
+    rx96_cur."!mark_push"(0, -1, $I10)
+  rxquantr108_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_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, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I121)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I121)
-    goto rxquantr120_loop
-  rxquantr120_done:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr108_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr108_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr108_loop
+  rxquantr108_done:
   # rx literal  "END"
-    add $I11, rx105_pos, 3
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 3
-    ne $S10, "END", rx105_fail
-    add rx105_pos, 3
+    add $I11, rx96_pos, 3
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 3
+    ne $S10, "END", rx96_fail
+    add rx96_pos, 3
   # rxanchor rwb
-    le rx105_pos, 0, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    if $I11, rx105_fail
+    le rx96_pos, 0, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    if $I11, rx96_fail
     dec $I10
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    unless $I11, rx105_fail
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    unless $I11, rx96_fail
   # rx charclass_q N r 0..-1
-    sub $I10, rx105_pos, rx105_off
-    find_cclass $I11, 4096, rx105_tgt, $I10, rx105_eos
-    add rx105_pos, rx105_off, $I11
-    goto alt115_end
-  alt115_1:
+    sub $I10, rx96_pos, rx96_off
+    find_cclass $I11, 4096, rx96_tgt, $I10, rx96_eos
+    add rx96_pos, rx96_off, $I11
+    goto alt104_end
+  alt104_1:
   # rx charclass_q . r 0..-1
-    sub $I10, rx105_pos, rx105_off
-    find_not_cclass $I11, 65535, rx105_tgt, $I10, rx105_eos
-    add rx105_pos, rx105_off, $I11
-  alt115_end:
+    sub $I10, rx96_pos, rx96_off
+    find_not_cclass $I11, 65535, rx96_tgt, $I10, rx96_eos
+    add rx96_pos, rx96_off, $I11
+  alt104_end:
 .annotate 'line', 55
-    goto alt112_end
-  alt112_1:
-    set_addr $I10, alt112_2
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    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, rx105_pos, 5
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 5
-    ne $S10, "begin", rx105_fail
-    add rx105_pos, 5
-  # rx rxquantr122 ** 1..*
-    set_addr $I123, rxquantr122_done
-    rx105_cur."!mark_push"(0, -1, $I123)
-  rxquantr122_loop:
+    add $I11, rx96_pos, 5
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 5
+    ne $S10, "begin", rx96_fail
+    add rx96_pos, 5
+  # rx rxquantr109 ** 1..*
+    set_addr $I10, rxquantr109_done
+    rx96_cur."!mark_push"(0, -1, $I10)
+  rxquantr109_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_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, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I123)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I123)
-    goto rxquantr122_loop
-  rxquantr122_done:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr109_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr109_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr109_loop
+  rxquantr109_done:
   # rx subrule "identifier" subtype=capture negate=
-    rx105_cur."!cursor_pos"(rx105_pos)
-    $P10 = rx105_cur."identifier"()
-    unless $P10, rx105_fail
-    rx105_cur."!mark_push"(0, -1, 0, $P10)
+    rx96_cur."!cursor_pos"(rx96_pos)
+    $P10 = rx96_cur."identifier"()
+    unless $P10, rx96_fail
+    rx96_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx105_pos = $P10."pos"()
-  alt124_0:
+    rx96_pos = $P10."pos"()
+  alt110_0:
 .annotate 'line', 58
-    set_addr $I10, alt124_1
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    set_addr $I10, alt110_1
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
 .annotate 'line', 59
-  # rx rxquantf125 ** 0..*
-    set_addr $I10, rxquantf125_loop
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
-    goto rxquantf125_done
-  rxquantf125_loop:
+  # rx rxquantf111 ** 0..*
+    set_addr $I10, rxquantf111_loop
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+    goto rxquantf111_done
+  rxquantf111_loop:
   # rx charclass .
-    ge rx105_pos, rx105_eos, rx105_fail
-    inc rx105_pos
-    set_addr $I10, rxquantf125_loop
-    rx105_cur."!mark_push"($I126, rx105_pos, $I10)
-  rxquantf125_done:
+    ge rx96_pos, rx96_eos, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantf111_loop
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+  rxquantf111_done:
   # rx charclass nl
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 4096, rx105_tgt, $I10
-    unless $I11, rx105_fail
-    substr $S10, rx105_tgt, $I10, 2
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 4096, rx96_tgt, $I10
+    unless $I11, rx96_fail
+    substr $S10, rx96_tgt, $I10, 2
     iseq $I11, $S10, "\r\n"
-    add rx105_pos, $I11
-    inc rx105_pos
-  # rx rxquantr127 ** 0..*
-    set_addr $I128, rxquantr127_done
-    rx105_cur."!mark_push"(0, rx105_pos, $I128)
-  rxquantr127_loop:
+    add rx96_pos, $I11
+    inc rx96_pos
+  # rx rxquantr113 ** 0..*
+    set_addr $I10, rxquantr113_done
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+  rxquantr113_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_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, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I128)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I128)
-    goto rxquantr127_loop
-  rxquantr127_done:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr113_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr113_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr113_loop
+  rxquantr113_done:
   # rx literal  "=end"
-    add $I11, rx105_pos, 4
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 4
-    ne $S10, "=end", rx105_fail
-    add rx105_pos, 4
-  # rx rxquantr129 ** 1..*
-    set_addr $I130, rxquantr129_done
-    rx105_cur."!mark_push"(0, -1, $I130)
-  rxquantr129_loop:
+    add $I11, rx96_pos, 4
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 4
+    ne $S10, "=end", rx96_fail
+    add rx96_pos, 4
+  # rx rxquantr114 ** 1..*
+    set_addr $I10, rxquantr114_done
+    rx96_cur."!mark_push"(0, -1, $I10)
+  rxquantr114_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_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, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I130)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I130)
-    goto rxquantr129_loop
-  rxquantr129_done:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr114_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr114_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr114_loop
+  rxquantr114_done:
   # rx subrule "!BACKREF" subtype=method negate=
-    rx105_cur."!cursor_pos"(rx105_pos)
-    $P10 = rx105_cur."!BACKREF"("identifier")
-    unless $P10, rx105_fail
-    rx105_pos = $P10."pos"()
+    rx96_cur."!cursor_pos"(rx96_pos)
+    $P10 = rx96_cur."!BACKREF"("identifier")
+    unless $P10, rx96_fail
+    rx96_pos = $P10."pos"()
   # rxanchor rwb
-    le rx105_pos, 0, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    if $I11, rx105_fail
+    le rx96_pos, 0, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    if $I11, rx96_fail
     dec $I10
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    unless $I11, rx105_fail
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    unless $I11, rx96_fail
   # rx charclass_q N r 0..-1
-    sub $I10, rx105_pos, rx105_off
-    find_cclass $I11, 4096, rx105_tgt, $I10, rx105_eos
-    add rx105_pos, rx105_off, $I11
-    goto alt124_end
-  alt124_1:
+    sub $I10, rx96_pos, rx96_off
+    find_cclass $I11, 4096, rx96_tgt, $I10, rx96_eos
+    add rx96_pos, rx96_off, $I11
+    goto alt110_end
+  alt110_1:
 .annotate 'line', 60
   # rx subrule "panic" subtype=method negate=
-    rx105_cur."!cursor_pos"(rx105_pos)
-    $P10 = rx105_cur."panic"("=begin without matching =end")
-    unless $P10, rx105_fail
-    rx105_pos = $P10."pos"()
-  alt124_end:
+    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 alt112_end
-  alt112_2:
-    set_addr $I10, alt112_3
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    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, rx105_pos, 5
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 5
-    ne $S10, "begin", rx105_fail
-    add rx105_pos, 5
+    add $I11, rx96_pos, 5
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 5
+    ne $S10, "begin", rx96_fail
+    add rx96_pos, 5
   # rxanchor rwb
-    le rx105_pos, 0, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    if $I11, rx105_fail
+    le rx96_pos, 0, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    if $I11, rx96_fail
     dec $I10
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    unless $I11, rx105_fail
-  # rx rxquantr132 ** 0..*
-    set_addr $I133, rxquantr132_done
-    rx105_cur."!mark_push"(0, rx105_pos, $I133)
-  rxquantr132_loop:
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    unless $I11, rx96_fail
+  # rx rxquantr116 ** 0..*
+    set_addr $I10, rxquantr116_done
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+  rxquantr116_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_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, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I133)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I133)
-    goto rxquantr132_loop
-  rxquantr132_done:
-  alt134_0:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr116_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr116_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr116_loop
+  rxquantr116_done:
+  alt117_0:
 .annotate 'line', 63
-    set_addr $I10, alt134_1
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    set_addr $I10, alt117_1
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
   # rxanchor eol
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 4096, rx105_tgt, $I10
-    if $I11, rxanchor135_done
-    ne rx105_pos, rx105_eos, rx105_fail
-    eq rx105_pos, 0, rxanchor135_done
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 4096, rx96_tgt, $I10
+    if $I11, rxanchor118_done
+    ne rx96_pos, rx96_eos, rx96_fail
+    eq rx96_pos, 0, rxanchor118_done
     dec $I10
-    is_cclass $I11, 4096, rx105_tgt, $I10
-    if $I11, rx105_fail
-  rxanchor135_done:
-    goto alt134_end
-  alt134_1:
-    set_addr $I10, alt134_2
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    is_cclass $I11, 4096, rx96_tgt, $I10
+    if $I11, rx96_fail
+  rxanchor118_done:
+    goto alt117_end
+  alt117_1:
+    set_addr $I10, alt117_2
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
   # rx literal  "#"
-    add $I11, rx105_pos, 1
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 1
-    ne $S10, "#", rx105_fail
-    add rx105_pos, 1
-    goto alt134_end
-  alt134_2:
+    add $I11, rx96_pos, 1
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 1
+    ne $S10, "#", rx96_fail
+    add rx96_pos, 1
+    goto alt117_end
+  alt117_2:
   # rx subrule "panic" subtype=method negate=
-    rx105_cur."!cursor_pos"(rx105_pos)
-    $P10 = rx105_cur."panic"("Unrecognized token after =begin")
-    unless $P10, rx105_fail
-    rx105_pos = $P10."pos"()
-  alt134_end:
-  alt136_0:
+    rx96_cur."!cursor_pos"(rx96_pos)
+    $P10 = rx96_cur."panic"("Unrecognized token after =begin")
+    unless $P10, rx96_fail
+    rx96_pos = $P10."pos"()
+  alt117_end:
+  alt119_0:
 .annotate 'line', 64
-    set_addr $I10, alt136_1
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    set_addr $I10, alt119_1
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
 .annotate 'line', 65
-  # rx rxquantf137 ** 0..*
-    set_addr $I10, rxquantf137_loop
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
-    goto rxquantf137_done
-  rxquantf137_loop:
+  # rx rxquantf120 ** 0..*
+    set_addr $I10, rxquantf120_loop
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+    goto rxquantf120_done
+  rxquantf120_loop:
   # rx charclass .
-    ge rx105_pos, rx105_eos, rx105_fail
-    inc rx105_pos
-    set_addr $I10, rxquantf137_loop
-    rx105_cur."!mark_push"($I138, rx105_pos, $I10)
-  rxquantf137_done:
+    ge rx96_pos, rx96_eos, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantf120_loop
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+  rxquantf120_done:
   # rx charclass nl
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 4096, rx105_tgt, $I10
-    unless $I11, rx105_fail
-    substr $S10, rx105_tgt, $I10, 2
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 4096, rx96_tgt, $I10
+    unless $I11, rx96_fail
+    substr $S10, rx96_tgt, $I10, 2
     iseq $I11, $S10, "\r\n"
-    add rx105_pos, $I11
-    inc rx105_pos
-  # rx rxquantr139 ** 0..*
-    set_addr $I140, rxquantr139_done
-    rx105_cur."!mark_push"(0, rx105_pos, $I140)
-  rxquantr139_loop:
+    add rx96_pos, $I11
+    inc rx96_pos
+  # rx rxquantr122 ** 0..*
+    set_addr $I10, rxquantr122_done
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+  rxquantr122_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_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, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I140)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I140)
-    goto rxquantr139_loop
-  rxquantr139_done:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr122_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr122_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr122_loop
+  rxquantr122_done:
   # rx literal  "=end"
-    add $I11, rx105_pos, 4
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 4
-    ne $S10, "=end", rx105_fail
-    add rx105_pos, 4
+    add $I11, rx96_pos, 4
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 4
+    ne $S10, "=end", rx96_fail
+    add rx96_pos, 4
   # rxanchor rwb
-    le rx105_pos, 0, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    if $I11, rx105_fail
+    le rx96_pos, 0, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    if $I11, rx96_fail
     dec $I10
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    unless $I11, rx105_fail
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    unless $I11, rx96_fail
   # rx charclass_q N r 0..-1
-    sub $I10, rx105_pos, rx105_off
-    find_cclass $I11, 4096, rx105_tgt, $I10, rx105_eos
-    add rx105_pos, rx105_off, $I11
-    goto alt136_end
-  alt136_1:
+    sub $I10, rx96_pos, rx96_off
+    find_cclass $I11, 4096, rx96_tgt, $I10, rx96_eos
+    add rx96_pos, rx96_off, $I11
+    goto alt119_end
+  alt119_1:
 .annotate 'line', 66
   # rx subrule "panic" subtype=method negate=
-    rx105_cur."!cursor_pos"(rx105_pos)
-    $P10 = rx105_cur."panic"("=begin without matching =end")
-    unless $P10, rx105_fail
-    rx105_pos = $P10."pos"()
-  alt136_end:
+    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 alt112_end
-  alt112_3:
-    set_addr $I10, alt112_4
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    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=
-    rx105_cur."!cursor_pos"(rx105_pos)
-    $P10 = rx105_cur."identifier"()
-    unless $P10, rx105_fail
-    rx105_cur."!mark_push"(0, -1, 0, $P10)
+    rx96_cur."!cursor_pos"(rx96_pos)
+    $P10 = rx96_cur."identifier"()
+    unless $P10, rx96_fail
+    rx96_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx105_pos = $P10."pos"()
+    rx96_pos = $P10."pos"()
 .annotate 'line', 69
-  # rx rxquantf141 ** 0..*
-    set_addr $I10, rxquantf141_loop
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
-    goto rxquantf141_done
-  rxquantf141_loop:
+  # rx rxquantf123 ** 0..*
+    set_addr $I10, rxquantf123_loop
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+    goto rxquantf123_done
+  rxquantf123_loop:
   # rx charclass .
-    ge rx105_pos, rx105_eos, rx105_fail
-    inc rx105_pos
-    set_addr $I10, rxquantf141_loop
-    rx105_cur."!mark_push"($I142, rx105_pos, $I10)
-  rxquantf141_done:
+    ge rx96_pos, rx96_eos, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantf123_loop
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+  rxquantf123_done:
   # rxanchor bol
-    eq rx105_pos, 0, rxanchor143_done
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
+    eq rx96_pos, 0, rxanchor125_done
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
     dec $I10
-    is_cclass $I11, 4096, rx105_tgt, $I10
-    unless $I11, rx105_fail
-  rxanchor143_done:
+    is_cclass $I11, 4096, rx96_tgt, $I10
+    unless $I11, rx96_fail
+  rxanchor125_done:
   # rx subrule "before" subtype=zerowidth negate=
-    rx105_cur."!cursor_pos"(rx105_pos)
-    .const 'Sub' $P145 = "28_1277356913.9538" 
-    capture_lex $P145
-    $P10 = rx105_cur."before"($P145)
-    unless $P10, rx105_fail
+    rx96_cur."!cursor_pos"(rx96_pos)
+    .const 'Sub' $P127 = "28_1280467477.44751" 
+    capture_lex $P127
+    $P10 = rx96_cur."before"($P127)
+    unless $P10, rx96_fail
 .annotate 'line', 68
-    goto alt112_end
-  alt112_4:
-  alt153_0:
+    goto alt102_end
+  alt102_4:
+  alt133_0:
 .annotate 'line', 75
-    set_addr $I10, alt153_1
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    set_addr $I10, alt133_1
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
   # rx charclass s
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 32, rx105_tgt, $I10
-    unless $I11, rx105_fail
-    inc rx105_pos
-    goto alt153_end
-  alt153_1:
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 32, rx96_tgt, $I10
+    unless $I11, rx96_fail
+    inc rx96_pos
+    goto alt133_end
+  alt133_1:
   # rx subrule "panic" subtype=method negate=
-    rx105_cur."!cursor_pos"(rx105_pos)
-    $P10 = rx105_cur."panic"("Illegal pod directive")
-    unless $P10, rx105_fail
-    rx105_pos = $P10."pos"()
-  alt153_end:
+    rx96_cur."!cursor_pos"(rx96_pos)
+    $P10 = rx96_cur."panic"("Illegal pod directive")
+    unless $P10, rx96_fail
+    rx96_pos = $P10."pos"()
+  alt133_end:
 .annotate 'line', 76
   # rx charclass_q N r 0..-1
-    sub $I10, rx105_pos, rx105_off
-    find_cclass $I11, 4096, rx105_tgt, $I10, rx105_eos
-    add rx105_pos, rx105_off, $I11
-  alt112_end:
+    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
-    rx105_cur."!cursor_pass"(rx105_pos, "pod_comment")
-    rx105_cur."!cursor_debug"("PASS  ", "pod_comment", " at pos=", rx105_pos)
-    .return (rx105_cur)
-  rx105_fail:
+    rx96_cur."!cursor_pass"(rx96_pos, "pod_comment")
+    rx96_cur."!cursor_debug"("PASS  ", "pod_comment", " at pos=", rx96_pos)
+    .return (rx96_cur)
+  rx96_restart:
 .annotate 'line', 4
-    (rx105_rep, rx105_pos, $I10, $P10) = rx105_cur."!mark_fail"(0)
-    lt rx105_pos, -1, rx105_done
-    eq rx105_pos, -1, rx105_fail
+    rx96_cur."!cursor_debug"("NEXT ", "pod_comment")
+  rx96_fail:
+    (rx96_rep, rx96_pos, $I10, $P10) = rx96_cur."!mark_fail"(0)
+    lt rx96_pos, -1, rx96_done
+    eq rx96_pos, -1, rx96_fail
     jump $I10
-  rx105_done:
-    rx105_cur."!cursor_fail"()
-    rx105_cur."!cursor_debug"("FAIL  ", "pod_comment")
-    .return (rx105_cur)
+  rx96_done:
+    rx96_cur."!cursor_fail"()
+    rx96_cur."!cursor_debug"("FAIL  ", "pod_comment")
+    .return (rx96_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment"  :subid("27_1277356913.9538") :method
+.sub "!PREFIX__pod_comment"  :subid("27_1280467477.44751") :method
 .annotate 'line', 4
-    new $P107, "ResizablePMCArray"
-    push $P107, ""
-    .return ($P107)
+    new $P98, "ResizablePMCArray"
+    push $P98, ""
+    .return ($P98)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block144"  :anon :subid("28_1277356913.9538") :method :outer("26_1277356913.9538")
+.sub "_block126"  :anon :subid("28_1280467477.44751") :method :outer("26_1280467477.44751")
 .annotate 'line', 69
-    .local string rx146_tgt
-    .local int rx146_pos
-    .local int rx146_off
-    .local int rx146_eos
-    .local int rx146_rep
-    .local pmc rx146_cur
-    (rx146_cur, rx146_pos, rx146_tgt) = self."!cursor_start"()
-    rx146_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx146_cur
-    .local pmc match
-    .lex "$/", match
-    length rx146_eos, rx146_tgt
-    gt rx146_pos, rx146_eos, rx146_done
-    set rx146_off, 0
-    lt rx146_pos, 2, rx146_start
-    sub rx146_off, rx146_pos, 1
-    substr rx146_tgt, rx146_tgt, rx146_off
-  rx146_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan147_done
-    goto rxscan147_scan
-  rxscan147_loop:
-    ($P10) = rx146_cur."from"()
-    inc $P10
-    set rx146_pos, $P10
-    ge rx146_pos, rx146_eos, rxscan147_done
-  rxscan147_scan:
-    set_addr $I10, rxscan147_loop
-    rx146_cur."!mark_push"(0, rx146_pos, $I10)
-  rxscan147_done:
-  # rx rxquantr148 ** 0..*
-    set_addr $I149, rxquantr148_done
-    rx146_cur."!mark_push"(0, rx146_pos, $I149)
-  rxquantr148_loop:
+    .local string rx128_tgt
+    .local int rx128_pos
+    .local int rx128_off
+    .local int rx128_eos
+    .local int rx128_rep
+    .local pmc rx128_cur
+    (rx128_cur, rx128_pos, rx128_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx128_cur
+    .local pmc match
+    .lex "$/", match
+    length rx128_eos, rx128_tgt
+    gt rx128_pos, rx128_eos, rx128_done
+    set rx128_off, 0
+    lt rx128_pos, 2, rx128_start
+    sub rx128_off, rx128_pos, 1
+    substr rx128_tgt, rx128_tgt, rx128_off
+  rx128_start:
+    eq $I10, 1, rx128_restart
+    rx128_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan129_done
+    goto rxscan129_scan
+  rxscan129_loop:
+    ($P10) = rx128_cur."from"()
+    inc $P10
+    set rx128_pos, $P10
+    ge rx128_pos, rx128_eos, rxscan129_done
+  rxscan129_scan:
+    set_addr $I10, rxscan129_loop
+    rx128_cur."!mark_push"(0, rx128_pos, $I10)
+  rxscan129_done:
+  # rx rxquantr130 ** 0..*
+    set_addr $I10, rxquantr130_done
+    rx128_cur."!mark_push"(0, rx128_pos, $I10)
+  rxquantr130_loop:
   # rx enumcharlist negate=0 
-    ge rx146_pos, rx146_eos, rx146_fail
-    sub $I10, rx146_pos, rx146_off
-    substr $S10, rx146_tgt, $I10, 1
+    ge rx128_pos, rx128_eos, rx128_fail
+    sub $I10, rx128_pos, rx128_off
+    substr $S10, rx128_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, rx146_fail
-    inc rx146_pos
-    (rx146_rep) = rx146_cur."!mark_commit"($I149)
-    rx146_cur."!mark_push"(rx146_rep, rx146_pos, $I149)
-    goto rxquantr148_loop
-  rxquantr148_done:
-  alt150_0:
-    set_addr $I10, alt150_1
-    rx146_cur."!mark_push"(0, rx146_pos, $I10)
+    lt $I11, 0, rx128_fail
+    inc rx128_pos
+    set_addr $I10, rxquantr130_done
+    (rx128_rep) = rx128_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr130_done
+    rx128_cur."!mark_push"(rx128_rep, rx128_pos, $I10)
+    goto rxquantr130_loop
+  rxquantr130_done:
+  alt131_0:
+    set_addr $I10, alt131_1
+    rx128_cur."!mark_push"(0, rx128_pos, $I10)
 .annotate 'line', 70
   # rx literal  "="
-    add $I11, rx146_pos, 1
-    gt $I11, rx146_eos, rx146_fail
-    sub $I11, rx146_pos, rx146_off
-    substr $S10, rx146_tgt, $I11, 1
-    ne $S10, "=", rx146_fail
-    add rx146_pos, 1
+    add $I11, rx128_pos, 1
+    gt $I11, rx128_eos, rx128_fail
+    sub $I11, rx128_pos, rx128_off
+    substr $S10, rx128_tgt, $I11, 1
+    ne $S10, "=", rx128_fail
+    add rx128_pos, 1
 .annotate 'line', 72
-  # rx rxquantr151 ** 0..1
-    set_addr $I152, rxquantr151_done
-    rx146_cur."!mark_push"(0, rx146_pos, $I152)
-  rxquantr151_loop:
+  # 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, rx146_pos, 3
-    gt $I11, rx146_eos, rx146_fail
-    sub $I11, rx146_pos, rx146_off
-    substr $S10, rx146_tgt, $I11, 3
-    ne $S10, "cut", rx146_fail
-    add rx146_pos, 3
+    add $I11, rx128_pos, 3
+    gt $I11, rx128_eos, rx128_fail
+    sub $I11, rx128_pos, rx128_off
+    substr $S10, rx128_tgt, $I11, 3
+    ne $S10, "cut", rx128_fail
+    add rx128_pos, 3
   # rxanchor rwb
-    le rx146_pos, 0, rx146_fail
-    sub $I10, rx146_pos, rx146_off
-    is_cclass $I11, 8192, rx146_tgt, $I10
-    if $I11, rx146_fail
+    le rx128_pos, 0, rx128_fail
+    sub $I10, rx128_pos, rx128_off
+    is_cclass $I11, 8192, rx128_tgt, $I10
+    if $I11, rx128_fail
     dec $I10
-    is_cclass $I11, 8192, rx146_tgt, $I10
-    unless $I11, rx146_fail
+    is_cclass $I11, 8192, rx128_tgt, $I10
+    unless $I11, rx128_fail
 .annotate 'line', 72
   # rx subrule "panic" subtype=method negate=
-    rx146_cur."!cursor_pos"(rx146_pos)
-    $P10 = rx146_cur."panic"("Obsolete pod format, please use =begin/=end instead")
-    unless $P10, rx146_fail
-    rx146_pos = $P10."pos"()
-    (rx146_rep) = rx146_cur."!mark_commit"($I152)
-  rxquantr151_done:
+    rx128_cur."!cursor_pos"(rx128_pos)
+    $P10 = rx128_cur."panic"("Obsolete pod format, please use =begin/=end instead")
+    unless $P10, rx128_fail
+    rx128_pos = $P10."pos"()
+    set_addr $I10, rxquantr132_done
+    (rx128_rep) = rx128_cur."!mark_commit"($I10)
+  rxquantr132_done:
 .annotate 'line', 69
-    goto alt150_end
-  alt150_1:
+    goto alt131_end
+  alt131_1:
 .annotate 'line', 73
   # rx charclass nl
-    ge rx146_pos, rx146_eos, rx146_fail
-    sub $I10, rx146_pos, rx146_off
-    is_cclass $I11, 4096, rx146_tgt, $I10
-    unless $I11, rx146_fail
-    substr $S10, rx146_tgt, $I10, 2
+    ge rx128_pos, rx128_eos, rx128_fail
+    sub $I10, rx128_pos, rx128_off
+    is_cclass $I11, 4096, rx128_tgt, $I10
+    unless $I11, rx128_fail
+    substr $S10, rx128_tgt, $I10, 2
     iseq $I11, $S10, "\r\n"
-    add rx146_pos, $I11
-    inc rx146_pos
-  alt150_end:
+    add rx128_pos, $I11
+    inc rx128_pos
+  alt131_end:
 .annotate 'line', 69
   # rx pass
-    rx146_cur."!cursor_pass"(rx146_pos, "")
-    rx146_cur."!cursor_debug"("PASS  ", "", " at pos=", rx146_pos)
-    .return (rx146_cur)
-  rx146_fail:
-    (rx146_rep, rx146_pos, $I10, $P10) = rx146_cur."!mark_fail"(0)
-    lt rx146_pos, -1, rx146_done
-    eq rx146_pos, -1, rx146_fail
-    jump $I10
-  rx146_done:
-    rx146_cur."!cursor_fail"()
-    rx146_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx146_cur)
+    rx128_cur."!cursor_pass"(rx128_pos, "")
+    rx128_cur."!cursor_debug"("PASS  ", "", " at pos=", rx128_pos)
+    .return (rx128_cur)
+  rx128_restart:
+    rx128_cur."!cursor_debug"("NEXT ", "")
+  rx128_fail:
+    (rx128_rep, rx128_pos, $I10, $P10) = rx128_cur."!mark_fail"(0)
+    lt rx128_pos, -1, rx128_done
+    eq rx128_pos, -1, rx128_fail
+    jump $I10
+  rx128_done:
+    rx128_cur."!cursor_fail"()
+    rx128_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx128_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "comp_unit"  :subid("29_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 4
-    .local string rx155_tgt
-    .local int rx155_pos
-    .local int rx155_off
-    .local int rx155_eos
-    .local int rx155_rep
-    .local pmc rx155_cur
-    (rx155_cur, rx155_pos, rx155_tgt) = self."!cursor_start"()
-    rx155_cur."!cursor_debug"("START ", "comp_unit")
-    .lex unicode:"$\x{a2}", rx155_cur
-    .local pmc match
-    .lex "$/", match
-    length rx155_eos, rx155_tgt
-    gt rx155_pos, rx155_eos, rx155_done
-    set rx155_off, 0
-    lt rx155_pos, 2, rx155_start
-    sub rx155_off, rx155_pos, 1
-    substr rx155_tgt, rx155_tgt, rx155_off
-  rx155_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan159_done
-    goto rxscan159_scan
-  rxscan159_loop:
-    ($P10) = rx155_cur."from"()
-    inc $P10
-    set rx155_pos, $P10
-    ge rx155_pos, rx155_eos, rxscan159_done
-  rxscan159_scan:
-    set_addr $I10, rxscan159_loop
-    rx155_cur."!mark_push"(0, rx155_pos, $I10)
-  rxscan159_done:
+.sub "comp_unit"  :subid("29_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+    .local string rx135_tgt
+    .local int rx135_pos
+    .local int rx135_off
+    .local int rx135_eos
+    .local int rx135_rep
+    .local pmc rx135_cur
+    (rx135_cur, rx135_pos, rx135_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx135_cur
+    .local pmc match
+    .lex "$/", match
+    length rx135_eos, rx135_tgt
+    gt rx135_pos, rx135_eos, rx135_done
+    set rx135_off, 0
+    lt rx135_pos, 2, rx135_start
+    sub rx135_off, rx135_pos, 1
+    substr rx135_tgt, rx135_tgt, rx135_off
+  rx135_start:
+    eq $I10, 1, rx135_restart
+    rx135_cur."!cursor_debug"("START ", "comp_unit")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan139_done
+    goto rxscan139_scan
+  rxscan139_loop:
+    ($P10) = rx135_cur."from"()
+    inc $P10
+    set rx135_pos, $P10
+    ge rx135_pos, rx135_eos, rxscan139_done
+  rxscan139_scan:
+    set_addr $I10, rxscan139_loop
+    rx135_cur."!mark_push"(0, rx135_pos, $I10)
+  rxscan139_done:
 .annotate 'line', 84
   # rx subrule "newpad" subtype=method negate=
-    rx155_cur."!cursor_pos"(rx155_pos)
-    $P10 = rx155_cur."newpad"()
-    unless $P10, rx155_fail
-    rx155_pos = $P10."pos"()
+    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=
-    rx155_cur."!cursor_pos"(rx155_pos)
-    $P10 = rx155_cur."outerctx"()
-    unless $P10, rx155_fail
-    rx155_pos = $P10."pos"()
+    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=
-    rx155_cur."!cursor_pos"(rx155_pos)
-    $P10 = rx155_cur."statementlist"()
-    unless $P10, rx155_fail
-    rx155_cur."!mark_push"(0, -1, 0, $P10)
+    rx135_cur."!cursor_pos"(rx135_pos)
+    $P10 = rx135_cur."statementlist"()
+    unless $P10, rx135_fail
+    rx135_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statementlist")
-    rx155_pos = $P10."pos"()
-  alt160_0:
+    rx135_pos = $P10."pos"()
+  alt140_0:
 .annotate 'line', 87
-    set_addr $I10, alt160_1
-    rx155_cur."!mark_push"(0, rx155_pos, $I10)
+    set_addr $I10, alt140_1
+    rx135_cur."!mark_push"(0, rx135_pos, $I10)
   # rxanchor eos
-    ne rx155_pos, rx155_eos, rx155_fail
-    goto alt160_end
-  alt160_1:
+    ne rx135_pos, rx135_eos, rx135_fail
+    goto alt140_end
+  alt140_1:
   # rx subrule "panic" subtype=method negate=
-    rx155_cur."!cursor_pos"(rx155_pos)
-    $P10 = rx155_cur."panic"("Confused")
-    unless $P10, rx155_fail
-    rx155_pos = $P10."pos"()
-  alt160_end:
+    rx135_cur."!cursor_pos"(rx135_pos)
+    $P10 = rx135_cur."panic"("Confused")
+    unless $P10, rx135_fail
+    rx135_pos = $P10."pos"()
+  alt140_end:
 .annotate 'line', 83
   # rx pass
-    rx155_cur."!cursor_pass"(rx155_pos, "comp_unit")
-    rx155_cur."!cursor_debug"("PASS  ", "comp_unit", " at pos=", rx155_pos)
-    .return (rx155_cur)
-  rx155_fail:
+    rx135_cur."!cursor_pass"(rx135_pos, "comp_unit")
+    rx135_cur."!cursor_debug"("PASS  ", "comp_unit", " at pos=", rx135_pos)
+    .return (rx135_cur)
+  rx135_restart:
 .annotate 'line', 4
-    (rx155_rep, rx155_pos, $I10, $P10) = rx155_cur."!mark_fail"(0)
-    lt rx155_pos, -1, rx155_done
-    eq rx155_pos, -1, rx155_fail
+    rx135_cur."!cursor_debug"("NEXT ", "comp_unit")
+  rx135_fail:
+    (rx135_rep, rx135_pos, $I10, $P10) = rx135_cur."!mark_fail"(0)
+    lt rx135_pos, -1, rx135_done
+    eq rx135_pos, -1, rx135_fail
     jump $I10
-  rx155_done:
-    rx155_cur."!cursor_fail"()
-    rx155_cur."!cursor_debug"("FAIL  ", "comp_unit")
-    .return (rx155_cur)
+  rx135_done:
+    rx135_cur."!cursor_fail"()
+    rx135_cur."!cursor_debug"("FAIL  ", "comp_unit")
+    .return (rx135_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit"  :subid("30_1277356913.9538") :method
+.sub "!PREFIX__comp_unit"  :subid("30_1280467477.44751") :method
 .annotate 'line', 4
-    $P157 = self."!PREFIX__!subrule"("newpad", "")
-    new $P158, "ResizablePMCArray"
-    push $P158, $P157
-    .return ($P158)
+    $P137 = self."!PREFIX__!subrule"("newpad", "")
+    new $P138, "ResizablePMCArray"
+    push $P138, $P137
+    .return ($P138)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statementlist"  :subid("31_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "statementlist"  :subid("31_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx162_tgt
-    .local int rx162_pos
-    .local int rx162_off
-    .local int rx162_eos
-    .local int rx162_rep
-    .local pmc rx162_cur
-    (rx162_cur, rx162_pos, rx162_tgt) = self."!cursor_start"()
-    rx162_cur."!cursor_debug"("START ", "statementlist")
-    rx162_cur."!cursor_caparray"("statement")
-    .lex unicode:"$\x{a2}", rx162_cur
+    .local string rx142_tgt
+    .local int rx142_pos
+    .local int rx142_off
+    .local int rx142_eos
+    .local int rx142_rep
+    .local pmc rx142_cur
+    (rx142_cur, rx142_pos, rx142_tgt, $I10) = self."!cursor_start"()
+    rx142_cur."!cursor_caparray"("statement")
+    .lex unicode:"$\x{a2}", rx142_cur
     .local pmc match
     .lex "$/", match
-    length rx162_eos, rx162_tgt
-    gt rx162_pos, rx162_eos, rx162_done
-    set rx162_off, 0
-    lt rx162_pos, 2, rx162_start
-    sub rx162_off, rx162_pos, 1
-    substr rx162_tgt, rx162_tgt, rx162_off
-  rx162_start:
+    length rx142_eos, rx142_tgt
+    gt rx142_pos, rx142_eos, rx142_done
+    set rx142_off, 0
+    lt rx142_pos, 2, rx142_start
+    sub rx142_off, rx142_pos, 1
+    substr rx142_tgt, rx142_tgt, rx142_off
+  rx142_start:
+    eq $I10, 1, rx142_restart
+    rx142_cur."!cursor_debug"("START ", "statementlist")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan167_done
-    goto rxscan167_scan
-  rxscan167_loop:
-    ($P10) = rx162_cur."from"()
+    ne $I10, -1, rxscan147_done
+    goto rxscan147_scan
+  rxscan147_loop:
+    ($P10) = rx142_cur."from"()
     inc $P10
-    set rx162_pos, $P10
-    ge rx162_pos, rx162_eos, rxscan167_done
-  rxscan167_scan:
-    set_addr $I10, rxscan167_loop
-    rx162_cur."!mark_push"(0, rx162_pos, $I10)
-  rxscan167_done:
-  alt168_0:
+    set rx142_pos, $P10
+    ge rx142_pos, rx142_eos, rxscan147_done
+  rxscan147_scan:
+    set_addr $I10, rxscan147_loop
+    rx142_cur."!mark_push"(0, rx142_pos, $I10)
+  rxscan147_done:
+  alt148_0:
 .annotate 'line', 90
-    set_addr $I10, alt168_1
-    rx162_cur."!mark_push"(0, rx162_pos, $I10)
+    set_addr $I10, alt148_1
+    rx142_cur."!mark_push"(0, rx142_pos, $I10)
 .annotate 'line', 91
   # rx subrule "ws" subtype=method negate=
-    rx162_cur."!cursor_pos"(rx162_pos)
-    $P10 = rx162_cur."ws"()
-    unless $P10, rx162_fail
-    rx162_pos = $P10."pos"()
+    rx142_cur."!cursor_pos"(rx142_pos)
+    $P10 = rx142_cur."ws"()
+    unless $P10, rx142_fail
+    rx142_pos = $P10."pos"()
   # rxanchor eos
-    ne rx162_pos, rx162_eos, rx162_fail
+    ne rx142_pos, rx142_eos, rx142_fail
   # rx subrule "ws" subtype=method negate=
-    rx162_cur."!cursor_pos"(rx162_pos)
-    $P10 = rx162_cur."ws"()
-    unless $P10, rx162_fail
-    rx162_pos = $P10."pos"()
-    goto alt168_end
-  alt168_1:
+    rx142_cur."!cursor_pos"(rx142_pos)
+    $P10 = rx142_cur."ws"()
+    unless $P10, rx142_fail
+    rx142_pos = $P10."pos"()
+    goto alt148_end
+  alt148_1:
 .annotate 'line', 92
   # rx subrule "ws" subtype=method negate=
-    rx162_cur."!cursor_pos"(rx162_pos)
-    $P10 = rx162_cur."ws"()
-    unless $P10, rx162_fail
-    rx162_pos = $P10."pos"()
-  # rx rxquantr172 ** 0..*
-    set_addr $I174, rxquantr172_done
-    rx162_cur."!mark_push"(0, rx162_pos, $I174)
-  rxquantr172_loop:
+    rx142_cur."!cursor_pos"(rx142_pos)
+    $P10 = rx142_cur."ws"()
+    unless $P10, rx142_fail
+    rx142_pos = $P10."pos"()
+  # rx rxquantr152 ** 0..*
+    set_addr $I10, rxquantr152_done
+    rx142_cur."!mark_push"(0, rx142_pos, $I10)
+  rxquantr152_loop:
   # rx subrule "statement" subtype=capture negate=
-    rx162_cur."!cursor_pos"(rx162_pos)
-    $P10 = rx162_cur."statement"()
-    unless $P10, rx162_fail
-    rx162_cur."!mark_push"(0, -1, 0, $P10)
+    rx142_cur."!cursor_pos"(rx142_pos)
+    $P10 = rx142_cur."statement"()
+    unless $P10, rx142_fail
+    rx142_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement")
-    rx162_pos = $P10."pos"()
+    rx142_pos = $P10."pos"()
   # rx subrule "eat_terminator" subtype=method negate=
-    rx162_cur."!cursor_pos"(rx162_pos)
-    $P10 = rx162_cur."eat_terminator"()
-    unless $P10, rx162_fail
-    rx162_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx162_cur."!cursor_pos"(rx162_pos)
-    $P10 = rx162_cur."ws"()
-    unless $P10, rx162_fail
-    rx162_pos = $P10."pos"()
-    (rx162_rep) = rx162_cur."!mark_commit"($I174)
-    rx162_cur."!mark_push"(rx162_rep, rx162_pos, $I174)
-    goto rxquantr172_loop
-  rxquantr172_done:
-  # rx subrule "ws" subtype=method negate=
-    rx162_cur."!cursor_pos"(rx162_pos)
-    $P10 = rx162_cur."ws"()
-    unless $P10, rx162_fail
-    rx162_pos = $P10."pos"()
-  alt168_end:
+    rx142_cur."!cursor_pos"(rx142_pos)
+    $P10 = rx142_cur."eat_terminator"()
+    unless $P10, rx142_fail
+    rx142_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx142_cur."!cursor_pos"(rx142_pos)
+    $P10 = rx142_cur."ws"()
+    unless $P10, rx142_fail
+    rx142_pos = $P10."pos"()
+    set_addr $I10, rxquantr152_done
+    (rx142_rep) = rx142_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr152_done
+    rx142_cur."!mark_push"(rx142_rep, rx142_pos, $I10)
+    goto rxquantr152_loop
+  rxquantr152_done:
+  # rx subrule "ws" subtype=method negate=
+    rx142_cur."!cursor_pos"(rx142_pos)
+    $P10 = rx142_cur."ws"()
+    unless $P10, rx142_fail
+    rx142_pos = $P10."pos"()
+  alt148_end:
 .annotate 'line', 90
   # rx pass
-    rx162_cur."!cursor_pass"(rx162_pos, "statementlist")
-    rx162_cur."!cursor_debug"("PASS  ", "statementlist", " at pos=", rx162_pos)
-    .return (rx162_cur)
-  rx162_fail:
+    rx142_cur."!cursor_pass"(rx142_pos, "statementlist")
+    rx142_cur."!cursor_debug"("PASS  ", "statementlist", " at pos=", rx142_pos)
+    .return (rx142_cur)
+  rx142_restart:
 .annotate 'line', 4
-    (rx162_rep, rx162_pos, $I10, $P10) = rx162_cur."!mark_fail"(0)
-    lt rx162_pos, -1, rx162_done
-    eq rx162_pos, -1, rx162_fail
+    rx142_cur."!cursor_debug"("NEXT ", "statementlist")
+  rx142_fail:
+    (rx142_rep, rx142_pos, $I10, $P10) = rx142_cur."!mark_fail"(0)
+    lt rx142_pos, -1, rx142_done
+    eq rx142_pos, -1, rx142_fail
     jump $I10
-  rx162_done:
-    rx162_cur."!cursor_fail"()
-    rx162_cur."!cursor_debug"("FAIL  ", "statementlist")
-    .return (rx162_cur)
+  rx142_done:
+    rx142_cur."!cursor_fail"()
+    rx142_cur."!cursor_debug"("FAIL  ", "statementlist")
+    .return (rx142_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist"  :subid("32_1277356913.9538") :method
+.sub "!PREFIX__statementlist"  :subid("32_1280467477.44751") :method
 .annotate 'line', 4
-    $P164 = self."!PREFIX__!subrule"("ws", "")
-    $P165 = self."!PREFIX__!subrule"("ws", "")
-    new $P166, "ResizablePMCArray"
-    push $P166, $P164
-    push $P166, $P165
-    .return ($P166)
+    $P144 = self."!PREFIX__!subrule"("ws", "")
+    $P145 = self."!PREFIX__!subrule"("ws", "")
+    new $P146, "ResizablePMCArray"
+    push $P146, $P144
+    push $P146, $P145
+    .return ($P146)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement"  :subid("33_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "statement"  :subid("33_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .const 'Sub' $P182 = "35_1277356913.9538" 
-    capture_lex $P182
-    .local string rx177_tgt
-    .local int rx177_pos
-    .local int rx177_off
-    .local int rx177_eos
-    .local int rx177_rep
-    .local pmc rx177_cur
-    (rx177_cur, rx177_pos, rx177_tgt) = self."!cursor_start"()
-    rx177_cur."!cursor_debug"("START ", "statement")
-    rx177_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
-    .lex unicode:"$\x{a2}", rx177_cur
-    .local pmc match
-    .lex "$/", match
-    length rx177_eos, rx177_tgt
-    gt rx177_pos, rx177_eos, rx177_done
-    set rx177_off, 0
-    lt rx177_pos, 2, rx177_start
-    sub rx177_off, rx177_pos, 1
-    substr rx177_tgt, rx177_tgt, rx177_off
-  rx177_start:
+    .const 'Sub' $P161 = "35_1280467477.44751" 
+    capture_lex $P161
+    .local string rx156_tgt
+    .local int rx156_pos
+    .local int rx156_off
+    .local int rx156_eos
+    .local int rx156_rep
+    .local pmc rx156_cur
+    (rx156_cur, rx156_pos, rx156_tgt, $I10) = self."!cursor_start"()
+    rx156_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
+    .lex unicode:"$\x{a2}", rx156_cur
+    .local pmc match
+    .lex "$/", match
+    length rx156_eos, rx156_tgt
+    gt rx156_pos, rx156_eos, rx156_done
+    set rx156_off, 0
+    lt rx156_pos, 2, rx156_start
+    sub rx156_off, rx156_pos, 1
+    substr rx156_tgt, rx156_tgt, rx156_off
+  rx156_start:
+    eq $I10, 1, rx156_restart
+    rx156_cur."!cursor_debug"("START ", "statement")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan180_done
-    goto rxscan180_scan
-  rxscan180_loop:
-    ($P10) = rx177_cur."from"()
+    ne $I10, -1, rxscan159_done
+    goto rxscan159_scan
+  rxscan159_loop:
+    ($P10) = rx156_cur."from"()
     inc $P10
-    set rx177_pos, $P10
-    ge rx177_pos, rx177_eos, rxscan180_done
-  rxscan180_scan:
-    set_addr $I10, rxscan180_loop
-    rx177_cur."!mark_push"(0, rx177_pos, $I10)
-  rxscan180_done:
+    set rx156_pos, $P10
+    ge rx156_pos, rx156_eos, rxscan159_done
+  rxscan159_scan:
+    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
-    rx177_cur."!cursor_pos"(rx177_pos)
-    .const 'Sub' $P182 = "35_1277356913.9538" 
-    capture_lex $P182
-    $P10 = rx177_cur."before"($P182)
-    if $P10, rx177_fail
-  alt186_0:
+    rx156_cur."!cursor_pos"(rx156_pos)
+    .const 'Sub' $P161 = "35_1280467477.44751" 
+    capture_lex $P161
+    $P10 = rx156_cur."before"($P161)
+    if $P10, rx156_fail
+  alt165_0:
 .annotate 'line', 97
-    set_addr $I10, alt186_1
-    rx177_cur."!mark_push"(0, rx177_pos, $I10)
+    set_addr $I10, alt165_1
+    rx156_cur."!mark_push"(0, rx156_pos, $I10)
 .annotate 'line', 98
   # rx subrule "statement_control" subtype=capture negate=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."statement_control"()
-    unless $P10, rx177_fail
-    rx177_cur."!mark_push"(0, -1, 0, $P10)
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."statement_control"()
+    unless $P10, rx156_fail
+    rx156_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement_control")
-    rx177_pos = $P10."pos"()
-    goto alt186_end
-  alt186_1:
+    rx156_pos = $P10."pos"()
+    goto alt165_end
+  alt165_1:
 .annotate 'line', 99
   # rx subrule "EXPR" subtype=capture negate=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."EXPR"()
-    unless $P10, rx177_fail
-    rx177_cur."!mark_push"(0, -1, 0, $P10)
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."EXPR"()
+    unless $P10, rx156_fail
+    rx156_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx177_pos = $P10."pos"()
+    rx156_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."ws"()
-    unless $P10, rx177_fail
-    rx177_pos = $P10."pos"()
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."ws"()
+    unless $P10, rx156_fail
+    rx156_pos = $P10."pos"()
 .annotate 'line', 104
-  # rx rxquantr187 ** 0..1
-    set_addr $I191, rxquantr187_done
-    rx177_cur."!mark_push"(0, rx177_pos, $I191)
-  rxquantr187_loop:
-  alt188_0:
+  # 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, alt188_1
-    rx177_cur."!mark_push"(0, rx177_pos, $I10)
+    set_addr $I10, alt167_1
+    rx156_cur."!mark_push"(0, rx156_pos, $I10)
 .annotate 'line', 101
   # rx subrule "MARKED" subtype=zerowidth negate=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."MARKED"("endstmt")
-    unless $P10, rx177_fail
-    goto alt188_end
-  alt188_1:
-    set_addr $I10, alt188_2
-    rx177_cur."!mark_push"(0, rx177_pos, $I10)
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."MARKED"("endstmt")
+    unless $P10, rx156_fail
+    goto alt167_end
+  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=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."statement_mod_cond"()
-    unless $P10, rx177_fail
-    rx177_cur."!mark_push"(0, -1, 0, $P10)
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."statement_mod_cond"()
+    unless $P10, rx156_fail
+    rx156_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement_mod_cond")
-    rx177_pos = $P10."pos"()
-  # rx rxquantr189 ** 0..1
-    set_addr $I190, rxquantr189_done
-    rx177_cur."!mark_push"(0, rx177_pos, $I190)
-  rxquantr189_loop:
+    rx156_pos = $P10."pos"()
+  # rx rxquantr168 ** 0..1
+    set_addr $I10, rxquantr168_done
+    rx156_cur."!mark_push"(0, rx156_pos, $I10)
+  rxquantr168_loop:
   # rx subrule "statement_mod_loop" subtype=capture negate=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."statement_mod_loop"()
-    unless $P10, rx177_fail
-    rx177_cur."!mark_push"(0, -1, 0, $P10)
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."statement_mod_loop"()
+    unless $P10, rx156_fail
+    goto rxsubrule169_pass
+  rxsubrule169_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx156_fail
+  rxsubrule169_pass:
+    set_addr $I10, rxsubrule169_back
+    rx156_cur."!mark_push"(0, rx156_pos, $I10, $P10)
     $P10."!cursor_names"("statement_mod_loop")
-    rx177_pos = $P10."pos"()
-    (rx177_rep) = rx177_cur."!mark_commit"($I190)
-  rxquantr189_done:
-    goto alt188_end
-  alt188_2:
+    rx156_pos = $P10."pos"()
+    set_addr $I10, rxquantr168_done
+    (rx156_rep) = rx156_cur."!mark_commit"($I10)
+  rxquantr168_done:
+    goto alt167_end
+  alt167_2:
 .annotate 'line', 103
   # rx subrule "statement_mod_loop" subtype=capture negate=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."statement_mod_loop"()
-    unless $P10, rx177_fail
-    rx177_cur."!mark_push"(0, -1, 0, $P10)
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."statement_mod_loop"()
+    unless $P10, rx156_fail
+    rx156_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement_mod_loop")
-    rx177_pos = $P10."pos"()
-  alt188_end:
+    rx156_pos = $P10."pos"()
+  alt167_end:
 .annotate 'line', 104
-    (rx177_rep) = rx177_cur."!mark_commit"($I191)
-  rxquantr187_done:
-  alt186_end:
+    set_addr $I10, rxquantr166_done
+    (rx156_rep) = rx156_cur."!mark_commit"($I10)
+  rxquantr166_done:
+  alt165_end:
 .annotate 'line', 95
   # rx pass
-    rx177_cur."!cursor_pass"(rx177_pos, "statement")
-    rx177_cur."!cursor_debug"("PASS  ", "statement", " at pos=", rx177_pos)
-    .return (rx177_cur)
-  rx177_fail:
+    rx156_cur."!cursor_pass"(rx156_pos, "statement")
+    rx156_cur."!cursor_debug"("PASS  ", "statement", " at pos=", rx156_pos)
+    .return (rx156_cur)
+  rx156_restart:
 .annotate 'line', 4
-    (rx177_rep, rx177_pos, $I10, $P10) = rx177_cur."!mark_fail"(0)
-    lt rx177_pos, -1, rx177_done
-    eq rx177_pos, -1, rx177_fail
+    rx156_cur."!cursor_debug"("NEXT ", "statement")
+  rx156_fail:
+    (rx156_rep, rx156_pos, $I10, $P10) = rx156_cur."!mark_fail"(0)
+    lt rx156_pos, -1, rx156_done
+    eq rx156_pos, -1, rx156_fail
     jump $I10
-  rx177_done:
-    rx177_cur."!cursor_fail"()
-    rx177_cur."!cursor_debug"("FAIL  ", "statement")
-    .return (rx177_cur)
+  rx156_done:
+    rx156_cur."!cursor_fail"()
+    rx156_cur."!cursor_debug"("FAIL  ", "statement")
+    .return (rx156_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement"  :subid("34_1277356913.9538") :method
+.sub "!PREFIX__statement"  :subid("34_1280467477.44751") :method
 .annotate 'line', 4
-    new $P179, "ResizablePMCArray"
-    push $P179, ""
-    .return ($P179)
+    new $P158, "ResizablePMCArray"
+    push $P158, ""
+    .return ($P158)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block181"  :anon :subid("35_1277356913.9538") :method :outer("33_1277356913.9538")
+.sub "_block160"  :anon :subid("35_1280467477.44751") :method :outer("33_1280467477.44751")
 .annotate 'line', 96
-    .local string rx183_tgt
-    .local int rx183_pos
-    .local int rx183_off
-    .local int rx183_eos
-    .local int rx183_rep
-    .local pmc rx183_cur
-    (rx183_cur, rx183_pos, rx183_tgt) = self."!cursor_start"()
-    rx183_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx183_cur
+    .local string rx162_tgt
+    .local int rx162_pos
+    .local int rx162_off
+    .local int rx162_eos
+    .local int rx162_rep
+    .local pmc rx162_cur
+    (rx162_cur, rx162_pos, rx162_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx162_cur
     .local pmc match
     .lex "$/", match
-    length rx183_eos, rx183_tgt
-    gt rx183_pos, rx183_eos, rx183_done
-    set rx183_off, 0
-    lt rx183_pos, 2, rx183_start
-    sub rx183_off, rx183_pos, 1
-    substr rx183_tgt, rx183_tgt, rx183_off
-  rx183_start:
+    length rx162_eos, rx162_tgt
+    gt rx162_pos, rx162_eos, rx162_done
+    set rx162_off, 0
+    lt rx162_pos, 2, rx162_start
+    sub rx162_off, rx162_pos, 1
+    substr rx162_tgt, rx162_tgt, rx162_off
+  rx162_start:
+    eq $I10, 1, rx162_restart
+    rx162_cur."!cursor_debug"("START ", "")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan184_done
-    goto rxscan184_scan
-  rxscan184_loop:
-    ($P10) = rx183_cur."from"()
+    ne $I10, -1, rxscan163_done
+    goto rxscan163_scan
+  rxscan163_loop:
+    ($P10) = rx162_cur."from"()
     inc $P10
-    set rx183_pos, $P10
-    ge rx183_pos, rx183_eos, rxscan184_done
-  rxscan184_scan:
-    set_addr $I10, rxscan184_loop
-    rx183_cur."!mark_push"(0, rx183_pos, $I10)
-  rxscan184_done:
-  alt185_0:
-    set_addr $I10, alt185_1
-    rx183_cur."!mark_push"(0, rx183_pos, $I10)
+    set rx162_pos, $P10
+    ge rx162_pos, rx162_eos, rxscan163_done
+  rxscan163_scan:
+    set_addr $I10, rxscan163_loop
+    rx162_cur."!mark_push"(0, rx162_pos, $I10)
+  rxscan163_done:
+  alt164_0:
+    set_addr $I10, alt164_1
+    rx162_cur."!mark_push"(0, rx162_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx183_pos, rx183_eos, rx183_fail
-    sub $I10, rx183_pos, rx183_off
-    substr $S10, rx183_tgt, $I10, 1
+    ge rx162_pos, rx162_eos, rx162_fail
+    sub $I10, rx162_pos, rx162_off
+    substr $S10, rx162_tgt, $I10, 1
     index $I11, "])}", $S10
-    lt $I11, 0, rx183_fail
-    inc rx183_pos
-    goto alt185_end
-  alt185_1:
+    lt $I11, 0, rx162_fail
+    inc rx162_pos
+    goto alt164_end
+  alt164_1:
   # rxanchor eos
-    ne rx183_pos, rx183_eos, rx183_fail
-  alt185_end:
+    ne rx162_pos, rx162_eos, rx162_fail
+  alt164_end:
   # rx pass
-    rx183_cur."!cursor_pass"(rx183_pos, "")
-    rx183_cur."!cursor_debug"("PASS  ", "", " at pos=", rx183_pos)
-    .return (rx183_cur)
-  rx183_fail:
-    (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
-    lt rx183_pos, -1, rx183_done
-    eq rx183_pos, -1, rx183_fail
+    rx162_cur."!cursor_pass"(rx162_pos, "")
+    rx162_cur."!cursor_debug"("PASS  ", "", " at pos=", rx162_pos)
+    .return (rx162_cur)
+  rx162_restart:
+    rx162_cur."!cursor_debug"("NEXT ", "")
+  rx162_fail:
+    (rx162_rep, rx162_pos, $I10, $P10) = rx162_cur."!mark_fail"(0)
+    lt rx162_pos, -1, rx162_done
+    eq rx162_pos, -1, rx162_fail
     jump $I10
-  rx183_done:
-    rx183_cur."!cursor_fail"()
-    rx183_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx183_cur)
+  rx162_done:
+    rx162_cur."!cursor_fail"()
+    rx162_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx162_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "eat_terminator"  :subid("36_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "eat_terminator"  :subid("36_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx193_tgt
-    .local int rx193_pos
-    .local int rx193_off
-    .local int rx193_eos
-    .local int rx193_rep
-    .local pmc rx193_cur
-    (rx193_cur, rx193_pos, rx193_tgt) = self."!cursor_start"()
-    rx193_cur."!cursor_debug"("START ", "eat_terminator")
-    .lex unicode:"$\x{a2}", rx193_cur
-    .local pmc match
-    .lex "$/", match
-    length rx193_eos, rx193_tgt
-    gt rx193_pos, rx193_eos, rx193_done
-    set rx193_off, 0
-    lt rx193_pos, 2, rx193_start
-    sub rx193_off, rx193_pos, 1
-    substr rx193_tgt, rx193_tgt, rx193_off
-  rx193_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan196_done
-    goto rxscan196_scan
-  rxscan196_loop:
-    ($P10) = rx193_cur."from"()
-    inc $P10
-    set rx193_pos, $P10
-    ge rx193_pos, rx193_eos, rxscan196_done
-  rxscan196_scan:
-    set_addr $I10, rxscan196_loop
-    rx193_cur."!mark_push"(0, rx193_pos, $I10)
-  rxscan196_done:
-  alt197_0:
+    .local string rx171_tgt
+    .local int rx171_pos
+    .local int rx171_off
+    .local int rx171_eos
+    .local int rx171_rep
+    .local pmc rx171_cur
+    (rx171_cur, rx171_pos, rx171_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx171_cur
+    .local pmc match
+    .lex "$/", match
+    length rx171_eos, rx171_tgt
+    gt rx171_pos, rx171_eos, rx171_done
+    set rx171_off, 0
+    lt rx171_pos, 2, rx171_start
+    sub rx171_off, rx171_pos, 1
+    substr rx171_tgt, rx171_tgt, rx171_off
+  rx171_start:
+    eq $I10, 1, rx171_restart
+    rx171_cur."!cursor_debug"("START ", "eat_terminator")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan174_done
+    goto rxscan174_scan
+  rxscan174_loop:
+    ($P10) = rx171_cur."from"()
+    inc $P10
+    set rx171_pos, $P10
+    ge rx171_pos, rx171_eos, rxscan174_done
+  rxscan174_scan:
+    set_addr $I10, rxscan174_loop
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
+  rxscan174_done:
+  alt175_0:
 .annotate 'line', 108
-    set_addr $I10, alt197_1
-    rx193_cur."!mark_push"(0, rx193_pos, $I10)
+    set_addr $I10, alt175_1
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
 .annotate 'line', 109
   # rx literal  ";"
-    add $I11, rx193_pos, 1
-    gt $I11, rx193_eos, rx193_fail
-    sub $I11, rx193_pos, rx193_off
-    substr $S10, rx193_tgt, $I11, 1
-    ne $S10, ";", rx193_fail
-    add rx193_pos, 1
-    goto alt197_end
-  alt197_1:
-    set_addr $I10, alt197_2
-    rx193_cur."!mark_push"(0, rx193_pos, $I10)
+    add $I11, rx171_pos, 1
+    gt $I11, rx171_eos, rx171_fail
+    sub $I11, rx171_pos, rx171_off
+    substr $S10, rx171_tgt, $I11, 1
+    ne $S10, ";", rx171_fail
+    add rx171_pos, 1
+    goto alt175_end
+  alt175_1:
+    set_addr $I10, alt175_2
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
 .annotate 'line', 110
   # rx subrule "MARKED" subtype=zerowidth negate=
-    rx193_cur."!cursor_pos"(rx193_pos)
-    $P10 = rx193_cur."MARKED"("endstmt")
-    unless $P10, rx193_fail
-    goto alt197_end
-  alt197_2:
-    set_addr $I10, alt197_3
-    rx193_cur."!mark_push"(0, rx193_pos, $I10)
+    rx171_cur."!cursor_pos"(rx171_pos)
+    $P10 = rx171_cur."MARKED"("endstmt")
+    unless $P10, rx171_fail
+    goto alt175_end
+  alt175_2:
+    set_addr $I10, alt175_3
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
 .annotate 'line', 111
   # rx subrule "terminator" subtype=zerowidth negate=
-    rx193_cur."!cursor_pos"(rx193_pos)
-    $P10 = rx193_cur."terminator"()
-    unless $P10, rx193_fail
-    goto alt197_end
-  alt197_3:
+    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 rx193_pos, rx193_eos, rx193_fail
-  alt197_end:
+    ne rx171_pos, rx171_eos, rx171_fail
+  alt175_end:
 .annotate 'line', 108
   # rx pass
-    rx193_cur."!cursor_pass"(rx193_pos, "eat_terminator")
-    rx193_cur."!cursor_debug"("PASS  ", "eat_terminator", " at pos=", rx193_pos)
-    .return (rx193_cur)
-  rx193_fail:
+    rx171_cur."!cursor_pass"(rx171_pos, "eat_terminator")
+    rx171_cur."!cursor_debug"("PASS  ", "eat_terminator", " at pos=", rx171_pos)
+    .return (rx171_cur)
+  rx171_restart:
 .annotate 'line', 4
-    (rx193_rep, rx193_pos, $I10, $P10) = rx193_cur."!mark_fail"(0)
-    lt rx193_pos, -1, rx193_done
-    eq rx193_pos, -1, rx193_fail
+    rx171_cur."!cursor_debug"("NEXT ", "eat_terminator")
+  rx171_fail:
+    (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0)
+    lt rx171_pos, -1, rx171_done
+    eq rx171_pos, -1, rx171_fail
     jump $I10
-  rx193_done:
-    rx193_cur."!cursor_fail"()
-    rx193_cur."!cursor_debug"("FAIL  ", "eat_terminator")
-    .return (rx193_cur)
+  rx171_done:
+    rx171_cur."!cursor_fail"()
+    rx171_cur."!cursor_debug"("FAIL  ", "eat_terminator")
+    .return (rx171_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator"  :subid("37_1277356913.9538") :method
+.sub "!PREFIX__eat_terminator"  :subid("37_1280467477.44751") :method
 .annotate 'line', 4
-    new $P195, "ResizablePMCArray"
-    push $P195, ""
-    push $P195, ""
-    push $P195, ""
-    push $P195, ";"
-    .return ($P195)
+    new $P173, "ResizablePMCArray"
+    push $P173, ""
+    push $P173, ""
+    push $P173, ""
+    push $P173, ";"
+    .return ($P173)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "xblock"  :subid("38_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "xblock"  :subid("38_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx199_tgt
-    .local int rx199_pos
-    .local int rx199_off
-    .local int rx199_eos
-    .local int rx199_rep
-    .local pmc rx199_cur
-    (rx199_cur, rx199_pos, rx199_tgt) = self."!cursor_start"()
-    rx199_cur."!cursor_debug"("START ", "xblock")
-    .lex unicode:"$\x{a2}", rx199_cur
+    .local string rx177_tgt
+    .local int rx177_pos
+    .local int rx177_off
+    .local int rx177_eos
+    .local int rx177_rep
+    .local pmc rx177_cur
+    (rx177_cur, rx177_pos, rx177_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx177_cur
     .local pmc match
     .lex "$/", match
-    length rx199_eos, rx199_tgt
-    gt rx199_pos, rx199_eos, rx199_done
-    set rx199_off, 0
-    lt rx199_pos, 2, rx199_start
-    sub rx199_off, rx199_pos, 1
-    substr rx199_tgt, rx199_tgt, rx199_off
-  rx199_start:
+    length rx177_eos, rx177_tgt
+    gt rx177_pos, rx177_eos, rx177_done
+    set rx177_off, 0
+    lt rx177_pos, 2, rx177_start
+    sub rx177_off, rx177_pos, 1
+    substr rx177_tgt, rx177_tgt, rx177_off
+  rx177_start:
+    eq $I10, 1, rx177_restart
+    rx177_cur."!cursor_debug"("START ", "xblock")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan203_done
-    goto rxscan203_scan
-  rxscan203_loop:
-    ($P10) = rx199_cur."from"()
+    ne $I10, -1, rxscan181_done
+    goto rxscan181_scan
+  rxscan181_loop:
+    ($P10) = rx177_cur."from"()
     inc $P10
-    set rx199_pos, $P10
-    ge rx199_pos, rx199_eos, rxscan203_done
-  rxscan203_scan:
-    set_addr $I10, rxscan203_loop
-    rx199_cur."!mark_push"(0, rx199_pos, $I10)
-  rxscan203_done:
+    set rx177_pos, $P10
+    ge rx177_pos, rx177_eos, rxscan181_done
+  rxscan181_scan:
+    set_addr $I10, rxscan181_loop
+    rx177_cur."!mark_push"(0, rx177_pos, $I10)
+  rxscan181_done:
 .annotate 'line', 116
   # rx subrule "EXPR" subtype=capture negate=
-    rx199_cur."!cursor_pos"(rx199_pos)
-    $P10 = rx199_cur."EXPR"()
-    unless $P10, rx199_fail
-    rx199_cur."!mark_push"(0, -1, 0, $P10)
+    rx177_cur."!cursor_pos"(rx177_pos)
+    $P10 = rx177_cur."EXPR"()
+    unless $P10, rx177_fail
+    rx177_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx199_pos = $P10."pos"()
+    rx177_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx199_cur."!cursor_pos"(rx199_pos)
-    $P10 = rx199_cur."ws"()
-    unless $P10, rx199_fail
-    rx199_pos = $P10."pos"()
+    rx177_cur."!cursor_pos"(rx177_pos)
+    $P10 = rx177_cur."ws"()
+    unless $P10, rx177_fail
+    rx177_pos = $P10."pos"()
   # rx subrule "pblock" subtype=capture negate=
-    rx199_cur."!cursor_pos"(rx199_pos)
-    $P10 = rx199_cur."pblock"()
-    unless $P10, rx199_fail
-    rx199_cur."!mark_push"(0, -1, 0, $P10)
+    rx177_cur."!cursor_pos"(rx177_pos)
+    $P10 = rx177_cur."pblock"()
+    unless $P10, rx177_fail
+    rx177_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pblock")
-    rx199_pos = $P10."pos"()
+    rx177_pos = $P10."pos"()
 .annotate 'line', 115
   # rx pass
-    rx199_cur."!cursor_pass"(rx199_pos, "xblock")
-    rx199_cur."!cursor_debug"("PASS  ", "xblock", " at pos=", rx199_pos)
-    .return (rx199_cur)
-  rx199_fail:
+    rx177_cur."!cursor_pass"(rx177_pos, "xblock")
+    rx177_cur."!cursor_debug"("PASS  ", "xblock", " at pos=", rx177_pos)
+    .return (rx177_cur)
+  rx177_restart:
 .annotate 'line', 4
-    (rx199_rep, rx199_pos, $I10, $P10) = rx199_cur."!mark_fail"(0)
-    lt rx199_pos, -1, rx199_done
-    eq rx199_pos, -1, rx199_fail
+    rx177_cur."!cursor_debug"("NEXT ", "xblock")
+  rx177_fail:
+    (rx177_rep, rx177_pos, $I10, $P10) = rx177_cur."!mark_fail"(0)
+    lt rx177_pos, -1, rx177_done
+    eq rx177_pos, -1, rx177_fail
     jump $I10
-  rx199_done:
-    rx199_cur."!cursor_fail"()
-    rx199_cur."!cursor_debug"("FAIL  ", "xblock")
-    .return (rx199_cur)
+  rx177_done:
+    rx177_cur."!cursor_fail"()
+    rx177_cur."!cursor_debug"("FAIL  ", "xblock")
+    .return (rx177_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__xblock"  :subid("39_1277356913.9538") :method
+.sub "!PREFIX__xblock"  :subid("39_1280467477.44751") :method
 .annotate 'line', 4
-    $P201 = self."!PREFIX__!subrule"("EXPR", "")
-    new $P202, "ResizablePMCArray"
-    push $P202, $P201
-    .return ($P202)
+    $P179 = self."!PREFIX__!subrule"("EXPR", "")
+    new $P180, "ResizablePMCArray"
+    push $P180, $P179
+    .return ($P180)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pblock"  :subid("40_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "pblock"  :subid("40_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx205_tgt
-    .local int rx205_pos
-    .local int rx205_off
-    .local int rx205_eos
-    .local int rx205_rep
-    .local pmc rx205_cur
-    (rx205_cur, rx205_pos, rx205_tgt) = self."!cursor_start"()
-    rx205_cur."!cursor_debug"("START ", "pblock")
-    .lex unicode:"$\x{a2}", rx205_cur
+    .local string rx183_tgt
+    .local int rx183_pos
+    .local int rx183_off
+    .local int rx183_eos
+    .local int rx183_rep
+    .local pmc rx183_cur
+    (rx183_cur, rx183_pos, rx183_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx183_cur
     .local pmc match
     .lex "$/", match
-    length rx205_eos, rx205_tgt
-    gt rx205_pos, rx205_eos, rx205_done
-    set rx205_off, 0
-    lt rx205_pos, 2, rx205_start
-    sub rx205_off, rx205_pos, 1
-    substr rx205_tgt, rx205_tgt, rx205_off
-  rx205_start:
+    length rx183_eos, rx183_tgt
+    gt rx183_pos, rx183_eos, rx183_done
+    set rx183_off, 0
+    lt rx183_pos, 2, rx183_start
+    sub rx183_off, rx183_pos, 1
+    substr rx183_tgt, rx183_tgt, rx183_off
+  rx183_start:
+    eq $I10, 1, rx183_restart
+    rx183_cur."!cursor_debug"("START ", "pblock")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan210_done
-    goto rxscan210_scan
-  rxscan210_loop:
-    ($P10) = rx205_cur."from"()
+    ne $I10, -1, rxscan188_done
+    goto rxscan188_scan
+  rxscan188_loop:
+    ($P10) = rx183_cur."from"()
     inc $P10
-    set rx205_pos, $P10
-    ge rx205_pos, rx205_eos, rxscan210_done
-  rxscan210_scan:
-    set_addr $I10, rxscan210_loop
-    rx205_cur."!mark_push"(0, rx205_pos, $I10)
-  rxscan210_done:
-  alt211_0:
+    set rx183_pos, $P10
+    ge rx183_pos, rx183_eos, rxscan188_done
+  rxscan188_scan:
+    set_addr $I10, rxscan188_loop
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
+  rxscan188_done:
+  alt189_0:
 .annotate 'line', 119
-    set_addr $I10, alt211_1
-    rx205_cur."!mark_push"(0, rx205_pos, $I10)
+    set_addr $I10, alt189_1
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
 .annotate 'line', 120
   # rx subrule "lambda" subtype=method negate=
-    rx205_cur."!cursor_pos"(rx205_pos)
-    $P10 = rx205_cur."lambda"()
-    unless $P10, rx205_fail
-    rx205_pos = $P10."pos"()
+    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=
-    rx205_cur."!cursor_pos"(rx205_pos)
-    $P10 = rx205_cur."newpad"()
-    unless $P10, rx205_fail
-    rx205_pos = $P10."pos"()
+    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=
-    rx205_cur."!cursor_pos"(rx205_pos)
-    $P10 = rx205_cur."signature"()
-    unless $P10, rx205_fail
-    rx205_cur."!mark_push"(0, -1, 0, $P10)
+    rx183_cur."!cursor_pos"(rx183_pos)
+    $P10 = rx183_cur."signature"()
+    unless $P10, rx183_fail
+    rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx205_pos = $P10."pos"()
+    rx183_pos = $P10."pos"()
 .annotate 'line', 123
   # rx subrule "blockoid" subtype=capture negate=
-    rx205_cur."!cursor_pos"(rx205_pos)
-    $P10 = rx205_cur."blockoid"()
-    unless $P10, rx205_fail
-    rx205_cur."!mark_push"(0, -1, 0, $P10)
+    rx183_cur."!cursor_pos"(rx183_pos)
+    $P10 = rx183_cur."blockoid"()
+    unless $P10, rx183_fail
+    rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx205_pos = $P10."pos"()
+    rx183_pos = $P10."pos"()
 .annotate 'line', 120
-    goto alt211_end
-  alt211_1:
-    set_addr $I10, alt211_2
-    rx205_cur."!mark_push"(0, rx205_pos, $I10)
+    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 rx205_pos, rx205_eos, rx205_fail
-    sub $I10, rx205_pos, rx205_off
-    substr $S10, rx205_tgt, $I10, 1
+    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, rx205_fail
+    lt $I11, 0, rx183_fail
 .annotate 'line', 125
   # rx subrule "newpad" subtype=method negate=
-    rx205_cur."!cursor_pos"(rx205_pos)
-    $P10 = rx205_cur."newpad"()
-    unless $P10, rx205_fail
-    rx205_pos = $P10."pos"()
+    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=
-    rx205_cur."!cursor_pos"(rx205_pos)
-    $P10 = rx205_cur."blockoid"()
-    unless $P10, rx205_fail
-    rx205_cur."!mark_push"(0, -1, 0, $P10)
+    rx183_cur."!cursor_pos"(rx183_pos)
+    $P10 = rx183_cur."blockoid"()
+    unless $P10, rx183_fail
+    rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx205_pos = $P10."pos"()
+    rx183_pos = $P10."pos"()
 .annotate 'line', 124
-    goto alt211_end
-  alt211_2:
+    goto alt189_end
+  alt189_2:
 .annotate 'line', 127
   # rx subrule "panic" subtype=method negate=
-    rx205_cur."!cursor_pos"(rx205_pos)
-    $P10 = rx205_cur."panic"("Missing block")
-    unless $P10, rx205_fail
-    rx205_pos = $P10."pos"()
-  alt211_end:
+    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
-    rx205_cur."!cursor_pass"(rx205_pos, "pblock")
-    rx205_cur."!cursor_debug"("PASS  ", "pblock", " at pos=", rx205_pos)
-    .return (rx205_cur)
-  rx205_fail:
+    rx183_cur."!cursor_pass"(rx183_pos, "pblock")
+    rx183_cur."!cursor_debug"("PASS  ", "pblock", " at pos=", rx183_pos)
+    .return (rx183_cur)
+  rx183_restart:
 .annotate 'line', 4
-    (rx205_rep, rx205_pos, $I10, $P10) = rx205_cur."!mark_fail"(0)
-    lt rx205_pos, -1, rx205_done
-    eq rx205_pos, -1, rx205_fail
+    rx183_cur."!cursor_debug"("NEXT ", "pblock")
+  rx183_fail:
+    (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
+    lt rx183_pos, -1, rx183_done
+    eq rx183_pos, -1, rx183_fail
     jump $I10
-  rx205_done:
-    rx205_cur."!cursor_fail"()
-    rx205_cur."!cursor_debug"("FAIL  ", "pblock")
-    .return (rx205_cur)
+  rx183_done:
+    rx183_cur."!cursor_fail"()
+    rx183_cur."!cursor_debug"("FAIL  ", "pblock")
+    .return (rx183_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock"  :subid("41_1277356913.9538") :method
+.sub "!PREFIX__pblock"  :subid("41_1280467477.44751") :method
 .annotate 'line', 4
-    $P207 = self."!PREFIX__!subrule"("panic", "")
-    $P208 = self."!PREFIX__!subrule"("lambda", "")
-    new $P209, "ResizablePMCArray"
-    push $P209, $P207
-    push $P209, "{"
-    push $P209, $P208
-    .return ($P209)
+    $P185 = self."!PREFIX__!subrule"("panic", "")
+    $P186 = self."!PREFIX__!subrule"("lambda", "")
+    new $P187, "ResizablePMCArray"
+    push $P187, $P185
+    push $P187, "{"
+    push $P187, $P186
+    .return ($P187)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "lambda"  :subid("42_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 4
-    .local string rx213_tgt
-    .local int rx213_pos
-    .local int rx213_off
-    .local int rx213_eos
-    .local int rx213_rep
-    .local pmc rx213_cur
-    (rx213_cur, rx213_pos, rx213_tgt) = self."!cursor_start"()
-    rx213_cur."!cursor_debug"("START ", "lambda")
-    .lex unicode:"$\x{a2}", rx213_cur
-    .local pmc match
-    .lex "$/", match
-    length rx213_eos, rx213_tgt
-    gt rx213_pos, rx213_eos, rx213_done
-    set rx213_off, 0
-    lt rx213_pos, 2, rx213_start
-    sub rx213_off, rx213_pos, 1
-    substr rx213_tgt, rx213_tgt, rx213_off
-  rx213_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan216_done
-    goto rxscan216_scan
-  rxscan216_loop:
-    ($P10) = rx213_cur."from"()
-    inc $P10
-    set rx213_pos, $P10
-    ge rx213_pos, rx213_eos, rxscan216_done
-  rxscan216_scan:
-    set_addr $I10, rxscan216_loop
-    rx213_cur."!mark_push"(0, rx213_pos, $I10)
-  rxscan216_done:
-  alt217_0:
+.sub "lambda"  :subid("42_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+    .local string rx191_tgt
+    .local int rx191_pos
+    .local int rx191_off
+    .local int rx191_eos
+    .local int rx191_rep
+    .local pmc rx191_cur
+    (rx191_cur, rx191_pos, rx191_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx191_cur
+    .local pmc match
+    .lex "$/", match
+    length rx191_eos, rx191_tgt
+    gt rx191_pos, rx191_eos, rx191_done
+    set rx191_off, 0
+    lt rx191_pos, 2, rx191_start
+    sub rx191_off, rx191_pos, 1
+    substr rx191_tgt, rx191_tgt, rx191_off
+  rx191_start:
+    eq $I10, 1, rx191_restart
+    rx191_cur."!cursor_debug"("START ", "lambda")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan194_done
+    goto rxscan194_scan
+  rxscan194_loop:
+    ($P10) = rx191_cur."from"()
+    inc $P10
+    set rx191_pos, $P10
+    ge rx191_pos, rx191_eos, rxscan194_done
+  rxscan194_scan:
+    set_addr $I10, rxscan194_loop
+    rx191_cur."!mark_push"(0, rx191_pos, $I10)
+  rxscan194_done:
+  alt195_0:
 .annotate 'line', 130
-    set_addr $I10, alt217_1
-    rx213_cur."!mark_push"(0, rx213_pos, $I10)
+    set_addr $I10, alt195_1
+    rx191_cur."!mark_push"(0, rx191_pos, $I10)
   # rx literal  "->"
-    add $I11, rx213_pos, 2
-    gt $I11, rx213_eos, rx213_fail
-    sub $I11, rx213_pos, rx213_off
-    substr $S10, rx213_tgt, $I11, 2
-    ne $S10, "->", rx213_fail
-    add rx213_pos, 2
-    goto alt217_end
-  alt217_1:
+    add $I11, rx191_pos, 2
+    gt $I11, rx191_eos, rx191_fail
+    sub $I11, rx191_pos, rx191_off
+    substr $S10, rx191_tgt, $I11, 2
+    ne $S10, "->", rx191_fail
+    add rx191_pos, 2
+    goto alt195_end
+  alt195_1:
   # rx literal  "<->"
-    add $I11, rx213_pos, 3
-    gt $I11, rx213_eos, rx213_fail
-    sub $I11, rx213_pos, rx213_off
-    substr $S10, rx213_tgt, $I11, 3
-    ne $S10, "<->", rx213_fail
-    add rx213_pos, 3
-  alt217_end:
-  # rx pass
-    rx213_cur."!cursor_pass"(rx213_pos, "lambda")
-    rx213_cur."!cursor_debug"("PASS  ", "lambda", " at pos=", rx213_pos)
-    .return (rx213_cur)
-  rx213_fail:
-.annotate 'line', 4
-    (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0)
-    lt rx213_pos, -1, rx213_done
-    eq rx213_pos, -1, rx213_fail
-    jump $I10
-  rx213_done:
-    rx213_cur."!cursor_fail"()
-    rx213_cur."!cursor_debug"("FAIL  ", "lambda")
-    .return (rx213_cur)
+    add $I11, rx191_pos, 3
+    gt $I11, rx191_eos, rx191_fail
+    sub $I11, rx191_pos, rx191_off
+    substr $S10, rx191_tgt, $I11, 3
+    ne $S10, "<->", rx191_fail
+    add rx191_pos, 3
+  alt195_end:
+  # rx pass
+    rx191_cur."!cursor_pass"(rx191_pos, "lambda")
+    rx191_cur."!cursor_debug"("PASS  ", "lambda", " at pos=", rx191_pos)
+    .return (rx191_cur)
+  rx191_restart:
+.annotate 'line', 4
+    rx191_cur."!cursor_debug"("NEXT ", "lambda")
+  rx191_fail:
+    (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0)
+    lt rx191_pos, -1, rx191_done
+    eq rx191_pos, -1, rx191_fail
+    jump $I10
+  rx191_done:
+    rx191_cur."!cursor_fail"()
+    rx191_cur."!cursor_debug"("FAIL  ", "lambda")
+    .return (rx191_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda"  :subid("43_1277356913.9538") :method
-.annotate 'line', 4
-    new $P215, "ResizablePMCArray"
-    push $P215, "<->"
-    push $P215, "->"
-    .return ($P215)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "block"  :subid("44_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 4
-    .local string rx219_tgt
-    .local int rx219_pos
-    .local int rx219_off
-    .local int rx219_eos
-    .local int rx219_rep
-    .local pmc rx219_cur
-    (rx219_cur, rx219_pos, rx219_tgt) = self."!cursor_start"()
-    rx219_cur."!cursor_debug"("START ", "block")
-    .lex unicode:"$\x{a2}", rx219_cur
-    .local pmc match
-    .lex "$/", match
-    length rx219_eos, rx219_tgt
-    gt rx219_pos, rx219_eos, rx219_done
-    set rx219_off, 0
-    lt rx219_pos, 2, rx219_start
-    sub rx219_off, rx219_pos, 1
-    substr rx219_tgt, rx219_tgt, rx219_off
-  rx219_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan223_done
-    goto rxscan223_scan
-  rxscan223_loop:
-    ($P10) = rx219_cur."from"()
-    inc $P10
-    set rx219_pos, $P10
-    ge rx219_pos, rx219_eos, rxscan223_done
-  rxscan223_scan:
-    set_addr $I10, rxscan223_loop
-    rx219_cur."!mark_push"(0, rx219_pos, $I10)
-  rxscan223_done:
-  alt224_0:
+.sub "!PREFIX__lambda"  :subid("43_1280467477.44751") :method
+.annotate 'line', 4
+    new $P193, "ResizablePMCArray"
+    push $P193, "<->"
+    push $P193, "->"
+    .return ($P193)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "block"  :subid("44_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+    .local string rx197_tgt
+    .local int rx197_pos
+    .local int rx197_off
+    .local int rx197_eos
+    .local int rx197_rep
+    .local pmc rx197_cur
+    (rx197_cur, rx197_pos, rx197_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx197_cur
+    .local pmc match
+    .lex "$/", match
+    length rx197_eos, rx197_tgt
+    gt rx197_pos, rx197_eos, rx197_done
+    set rx197_off, 0
+    lt rx197_pos, 2, rx197_start
+    sub rx197_off, rx197_pos, 1
+    substr rx197_tgt, rx197_tgt, rx197_off
+  rx197_start:
+    eq $I10, 1, rx197_restart
+    rx197_cur."!cursor_debug"("START ", "block")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan201_done
+    goto rxscan201_scan
+  rxscan201_loop:
+    ($P10) = rx197_cur."from"()
+    inc $P10
+    set rx197_pos, $P10
+    ge rx197_pos, rx197_eos, rxscan201_done
+  rxscan201_scan:
+    set_addr $I10, rxscan201_loop
+    rx197_cur."!mark_push"(0, rx197_pos, $I10)
+  rxscan201_done:
+  alt202_0:
 .annotate 'line', 133
-    set_addr $I10, alt224_1
-    rx219_cur."!mark_push"(0, rx219_pos, $I10)
+    set_addr $I10, alt202_1
+    rx197_cur."!mark_push"(0, rx197_pos, $I10)
   # rx enumcharlist negate=0 zerowidth
-    ge rx219_pos, rx219_eos, rx219_fail
-    sub $I10, rx219_pos, rx219_off
-    substr $S10, rx219_tgt, $I10, 1
+    ge rx197_pos, rx197_eos, rx197_fail
+    sub $I10, rx197_pos, rx197_off
+    substr $S10, rx197_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx219_fail
-    goto alt224_end
-  alt224_1:
+    lt $I11, 0, rx197_fail
+    goto alt202_end
+  alt202_1:
   # rx subrule "panic" subtype=method negate=
-    rx219_cur."!cursor_pos"(rx219_pos)
-    $P10 = rx219_cur."panic"("Missing block")
-    unless $P10, rx219_fail
-    rx219_pos = $P10."pos"()
-  alt224_end:
+    rx197_cur."!cursor_pos"(rx197_pos)
+    $P10 = rx197_cur."panic"("Missing block")
+    unless $P10, rx197_fail
+    rx197_pos = $P10."pos"()
+  alt202_end:
 .annotate 'line', 134
   # rx subrule "newpad" subtype=method negate=
-    rx219_cur."!cursor_pos"(rx219_pos)
-    $P10 = rx219_cur."newpad"()
-    unless $P10, rx219_fail
-    rx219_pos = $P10."pos"()
+    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=
-    rx219_cur."!cursor_pos"(rx219_pos)
-    $P10 = rx219_cur."blockoid"()
-    unless $P10, rx219_fail
-    rx219_cur."!mark_push"(0, -1, 0, $P10)
+    rx197_cur."!cursor_pos"(rx197_pos)
+    $P10 = rx197_cur."blockoid"()
+    unless $P10, rx197_fail
+    rx197_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx219_pos = $P10."pos"()
+    rx197_pos = $P10."pos"()
 .annotate 'line', 132
   # rx pass
-    rx219_cur."!cursor_pass"(rx219_pos, "block")
-    rx219_cur."!cursor_debug"("PASS  ", "block", " at pos=", rx219_pos)
-    .return (rx219_cur)
-  rx219_fail:
+    rx197_cur."!cursor_pass"(rx197_pos, "block")
+    rx197_cur."!cursor_debug"("PASS  ", "block", " at pos=", rx197_pos)
+    .return (rx197_cur)
+  rx197_restart:
 .annotate 'line', 4
-    (rx219_rep, rx219_pos, $I10, $P10) = rx219_cur."!mark_fail"(0)
-    lt rx219_pos, -1, rx219_done
-    eq rx219_pos, -1, rx219_fail
+    rx197_cur."!cursor_debug"("NEXT ", "block")
+  rx197_fail:
+    (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0)
+    lt rx197_pos, -1, rx197_done
+    eq rx197_pos, -1, rx197_fail
     jump $I10
-  rx219_done:
-    rx219_cur."!cursor_fail"()
-    rx219_cur."!cursor_debug"("FAIL  ", "block")
-    .return (rx219_cur)
+  rx197_done:
+    rx197_cur."!cursor_fail"()
+    rx197_cur."!cursor_debug"("FAIL  ", "block")
+    .return (rx197_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block"  :subid("45_1277356913.9538") :method
+.sub "!PREFIX__block"  :subid("45_1280467477.44751") :method
 .annotate 'line', 4
-    $P221 = self."!PREFIX__!subrule"("panic", "")
-    new $P222, "ResizablePMCArray"
-    push $P222, $P221
-    push $P222, "{"
-    .return ($P222)
+    $P199 = self."!PREFIX__!subrule"("panic", "")
+    new $P200, "ResizablePMCArray"
+    push $P200, $P199
+    push $P200, "{"
+    .return ($P200)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blockoid"  :subid("46_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "blockoid"  :subid("46_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx226_tgt
-    .local int rx226_pos
-    .local int rx226_off
-    .local int rx226_eos
-    .local int rx226_rep
-    .local pmc rx226_cur
-    (rx226_cur, rx226_pos, rx226_tgt) = self."!cursor_start"()
-    rx226_cur."!cursor_debug"("START ", "blockoid")
-    .lex unicode:"$\x{a2}", rx226_cur
+    .local string rx204_tgt
+    .local int rx204_pos
+    .local int rx204_off
+    .local int rx204_eos
+    .local int rx204_rep
+    .local pmc rx204_cur
+    (rx204_cur, rx204_pos, rx204_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx204_cur
     .local pmc match
     .lex "$/", match
-    length rx226_eos, rx226_tgt
-    gt rx226_pos, rx226_eos, rx226_done
-    set rx226_off, 0
-    lt rx226_pos, 2, rx226_start
-    sub rx226_off, rx226_pos, 1
-    substr rx226_tgt, rx226_tgt, rx226_off
-  rx226_start:
+    length rx204_eos, rx204_tgt
+    gt rx204_pos, rx204_eos, rx204_done
+    set rx204_off, 0
+    lt rx204_pos, 2, rx204_start
+    sub rx204_off, rx204_pos, 1
+    substr rx204_tgt, rx204_tgt, rx204_off
+  rx204_start:
+    eq $I10, 1, rx204_restart
+    rx204_cur."!cursor_debug"("START ", "blockoid")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan230_done
-    goto rxscan230_scan
-  rxscan230_loop:
-    ($P10) = rx226_cur."from"()
+    ne $I10, -1, rxscan208_done
+    goto rxscan208_scan
+  rxscan208_loop:
+    ($P10) = rx204_cur."from"()
     inc $P10
-    set rx226_pos, $P10
-    ge rx226_pos, rx226_eos, rxscan230_done
-  rxscan230_scan:
-    set_addr $I10, rxscan230_loop
-    rx226_cur."!mark_push"(0, rx226_pos, $I10)
-  rxscan230_done:
+    set rx204_pos, $P10
+    ge rx204_pos, rx204_eos, rxscan208_done
+  rxscan208_scan:
+    set_addr $I10, rxscan208_loop
+    rx204_cur."!mark_push"(0, rx204_pos, $I10)
+  rxscan208_done:
 .annotate 'line', 139
   # rx subrule "finishpad" subtype=method negate=
-    rx226_cur."!cursor_pos"(rx226_pos)
-    $P10 = rx226_cur."finishpad"()
-    unless $P10, rx226_fail
-    rx226_pos = $P10."pos"()
+    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, rx226_pos, 1
-    gt $I11, rx226_eos, rx226_fail
-    sub $I11, rx226_pos, rx226_off
-    substr $S10, rx226_tgt, $I11, 1
-    ne $S10, "{", rx226_fail
-    add rx226_pos, 1
+    add $I11, rx204_pos, 1
+    gt $I11, rx204_eos, rx204_fail
+    sub $I11, rx204_pos, rx204_off
+    substr $S10, rx204_tgt, $I11, 1
+    ne $S10, "{", rx204_fail
+    add rx204_pos, 1
   # rx subrule "statementlist" subtype=capture negate=
-    rx226_cur."!cursor_pos"(rx226_pos)
-    $P10 = rx226_cur."statementlist"()
-    unless $P10, rx226_fail
-    rx226_cur."!mark_push"(0, -1, 0, $P10)
+    rx204_cur."!cursor_pos"(rx204_pos)
+    $P10 = rx204_cur."statementlist"()
+    unless $P10, rx204_fail
+    rx204_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statementlist")
-    rx226_pos = $P10."pos"()
-  alt231_0:
-    set_addr $I10, alt231_1
-    rx226_cur."!mark_push"(0, rx226_pos, $I10)
+    rx204_pos = $P10."pos"()
+  alt209_0:
+    set_addr $I10, alt209_1
+    rx204_cur."!mark_push"(0, rx204_pos, $I10)
   # rx literal  "}"
-    add $I11, rx226_pos, 1
-    gt $I11, rx226_eos, rx226_fail
-    sub $I11, rx226_pos, rx226_off
-    substr $S10, rx226_tgt, $I11, 1
-    ne $S10, "}", rx226_fail
-    add rx226_pos, 1
-    goto alt231_end
-  alt231_1:
+    add $I11, rx204_pos, 1
+    gt $I11, rx204_eos, rx204_fail
+    sub $I11, rx204_pos, rx204_off
+    substr $S10, rx204_tgt, $I11, 1
+    ne $S10, "}", rx204_fail
+    add rx204_pos, 1
+    goto alt209_end
+  alt209_1:
   # rx subrule "FAILGOAL" subtype=method negate=
-    rx226_cur."!cursor_pos"(rx226_pos)
-    $P10 = rx226_cur."FAILGOAL"("'}'")
-    unless $P10, rx226_fail
-    rx226_pos = $P10."pos"()
-  alt231_end:
+    rx204_cur."!cursor_pos"(rx204_pos)
+    $P10 = rx204_cur."FAILGOAL"("'}'")
+    unless $P10, rx204_fail
+    goto rxsubrule211_pass
+  rxsubrule211_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx204_fail
+  rxsubrule211_pass:
+    set_addr $I10, rxsubrule211_back
+    rx204_cur."!mark_push"(0, rx204_pos, $I10, $P10)
+    rx204_pos = $P10."pos"()
+  alt209_end:
 .annotate 'line', 141
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
-    rx226_cur."!cursor_pos"(rx226_pos)
-    $P10 = rx226_cur."ENDSTMT"()
-    unless $P10, rx226_fail
+    rx204_cur."!cursor_pos"(rx204_pos)
+    $P10 = rx204_cur."ENDSTMT"()
+    unless $P10, rx204_fail
 .annotate 'line', 138
   # rx pass
-    rx226_cur."!cursor_pass"(rx226_pos, "blockoid")
-    rx226_cur."!cursor_debug"("PASS  ", "blockoid", " at pos=", rx226_pos)
-    .return (rx226_cur)
-  rx226_fail:
+    rx204_cur."!cursor_pass"(rx204_pos, "blockoid")
+    rx204_cur."!cursor_debug"("PASS  ", "blockoid", " at pos=", rx204_pos)
+    .return (rx204_cur)
+  rx204_restart:
 .annotate 'line', 4
-    (rx226_rep, rx226_pos, $I10, $P10) = rx226_cur."!mark_fail"(0)
-    lt rx226_pos, -1, rx226_done
-    eq rx226_pos, -1, rx226_fail
+    rx204_cur."!cursor_debug"("NEXT ", "blockoid")
+  rx204_fail:
+    (rx204_rep, rx204_pos, $I10, $P10) = rx204_cur."!mark_fail"(0)
+    lt rx204_pos, -1, rx204_done
+    eq rx204_pos, -1, rx204_fail
     jump $I10
-  rx226_done:
-    rx226_cur."!cursor_fail"()
-    rx226_cur."!cursor_debug"("FAIL  ", "blockoid")
-    .return (rx226_cur)
+  rx204_done:
+    rx204_cur."!cursor_fail"()
+    rx204_cur."!cursor_debug"("FAIL  ", "blockoid")
+    .return (rx204_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid"  :subid("47_1277356913.9538") :method
+.sub "!PREFIX__blockoid"  :subid("47_1280467477.44751") :method
 .annotate 'line', 4
-    $P228 = self."!PREFIX__!subrule"("finishpad", "")
-    new $P229, "ResizablePMCArray"
-    push $P229, $P228
-    .return ($P229)
+    $P206 = self."!PREFIX__!subrule"("finishpad", "")
+    new $P207, "ResizablePMCArray"
+    push $P207, $P206
+    .return ($P207)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "newpad"  :subid("48_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "newpad"  :subid("48_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx234_tgt
-    .local int rx234_pos
-    .local int rx234_off
-    .local int rx234_eos
-    .local int rx234_rep
-    .local pmc rx234_cur
-    (rx234_cur, rx234_pos, rx234_tgt) = self."!cursor_start"()
-    rx234_cur."!cursor_debug"("START ", "newpad")
-    .lex unicode:"$\x{a2}", rx234_cur
+    .local string rx213_tgt
+    .local int rx213_pos
+    .local int rx213_off
+    .local int rx213_eos
+    .local int rx213_rep
+    .local pmc rx213_cur
+    (rx213_cur, rx213_pos, rx213_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx213_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:
+    length rx213_eos, rx213_tgt
+    gt rx213_pos, rx213_eos, rx213_done
+    set rx213_off, 0
+    lt rx213_pos, 2, rx213_start
+    sub rx213_off, rx213_pos, 1
+    substr rx213_tgt, rx213_tgt, rx213_off
+  rx213_start:
+    eq $I10, 1, rx213_restart
+    rx213_cur."!cursor_debug"("START ", "newpad")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan237_done
-    goto rxscan237_scan
-  rxscan237_loop:
-    ($P10) = rx234_cur."from"()
+    ne $I10, -1, rxscan216_done
+    goto rxscan216_scan
+  rxscan216_loop:
+    ($P10) = rx213_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:
+    set rx213_pos, $P10
+    ge rx213_pos, rx213_eos, rxscan216_done
+  rxscan216_scan:
+    set_addr $I10, rxscan216_loop
+    rx213_cur."!mark_push"(0, rx213_pos, $I10)
+  rxscan216_done:
 .annotate 'line', 144
   # rx pass
-    rx234_cur."!cursor_pass"(rx234_pos, "newpad")
-    rx234_cur."!cursor_debug"("PASS  ", "newpad", " at pos=", rx234_pos)
-    .return (rx234_cur)
-  rx234_fail:
+    rx213_cur."!cursor_pass"(rx213_pos, "newpad")
+    rx213_cur."!cursor_debug"("PASS  ", "newpad", " at pos=", rx213_pos)
+    .return (rx213_cur)
+  rx213_restart:
 .annotate 'line', 4
-    (rx234_rep, rx234_pos, $I10, $P10) = rx234_cur."!mark_fail"(0)
-    lt rx234_pos, -1, rx234_done
-    eq rx234_pos, -1, rx234_fail
+    rx213_cur."!cursor_debug"("NEXT ", "newpad")
+  rx213_fail:
+    (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0)
+    lt rx213_pos, -1, rx213_done
+    eq rx213_pos, -1, rx213_fail
     jump $I10
-  rx234_done:
-    rx234_cur."!cursor_fail"()
-    rx234_cur."!cursor_debug"("FAIL  ", "newpad")
-    .return (rx234_cur)
+  rx213_done:
+    rx213_cur."!cursor_fail"()
+    rx213_cur."!cursor_debug"("FAIL  ", "newpad")
+    .return (rx213_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad"  :subid("49_1277356913.9538") :method
+.sub "!PREFIX__newpad"  :subid("49_1280467477.44751") :method
 .annotate 'line', 4
-    new $P236, "ResizablePMCArray"
-    push $P236, ""
-    .return ($P236)
+    new $P215, "ResizablePMCArray"
+    push $P215, ""
+    .return ($P215)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "outerctx"  :subid("50_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "outerctx"  :subid("50_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx239_tgt
-    .local int rx239_pos
-    .local int rx239_off
-    .local int rx239_eos
-    .local int rx239_rep
-    .local pmc rx239_cur
-    (rx239_cur, rx239_pos, rx239_tgt) = self."!cursor_start"()
-    rx239_cur."!cursor_debug"("START ", "outerctx")
-    .lex unicode:"$\x{a2}", rx239_cur
-    .local pmc match
-    .lex "$/", match
-    length rx239_eos, rx239_tgt
-    gt rx239_pos, rx239_eos, rx239_done
-    set rx239_off, 0
-    lt rx239_pos, 2, rx239_start
-    sub rx239_off, rx239_pos, 1
-    substr rx239_tgt, rx239_tgt, rx239_off
-  rx239_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan242_done
-    goto rxscan242_scan
-  rxscan242_loop:
-    ($P10) = rx239_cur."from"()
-    inc $P10
-    set rx239_pos, $P10
-    ge rx239_pos, rx239_eos, rxscan242_done
-  rxscan242_scan:
-    set_addr $I10, rxscan242_loop
-    rx239_cur."!mark_push"(0, rx239_pos, $I10)
-  rxscan242_done:
+    .local string rx218_tgt
+    .local int rx218_pos
+    .local int rx218_off
+    .local int rx218_eos
+    .local int rx218_rep
+    .local pmc rx218_cur
+    (rx218_cur, rx218_pos, rx218_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx218_cur
+    .local pmc match
+    .lex "$/", match
+    length rx218_eos, rx218_tgt
+    gt rx218_pos, rx218_eos, rx218_done
+    set rx218_off, 0
+    lt rx218_pos, 2, rx218_start
+    sub rx218_off, rx218_pos, 1
+    substr rx218_tgt, rx218_tgt, rx218_off
+  rx218_start:
+    eq $I10, 1, rx218_restart
+    rx218_cur."!cursor_debug"("START ", "outerctx")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan221_done
+    goto rxscan221_scan
+  rxscan221_loop:
+    ($P10) = rx218_cur."from"()
+    inc $P10
+    set rx218_pos, $P10
+    ge rx218_pos, rx218_eos, rxscan221_done
+  rxscan221_scan:
+    set_addr $I10, rxscan221_loop
+    rx218_cur."!mark_push"(0, rx218_pos, $I10)
+  rxscan221_done:
 .annotate 'line', 145
   # rx pass
-    rx239_cur."!cursor_pass"(rx239_pos, "outerctx")
-    rx239_cur."!cursor_debug"("PASS  ", "outerctx", " at pos=", rx239_pos)
-    .return (rx239_cur)
-  rx239_fail:
+    rx218_cur."!cursor_pass"(rx218_pos, "outerctx")
+    rx218_cur."!cursor_debug"("PASS  ", "outerctx", " at pos=", rx218_pos)
+    .return (rx218_cur)
+  rx218_restart:
 .annotate 'line', 4
-    (rx239_rep, rx239_pos, $I10, $P10) = rx239_cur."!mark_fail"(0)
-    lt rx239_pos, -1, rx239_done
-    eq rx239_pos, -1, rx239_fail
+    rx218_cur."!cursor_debug"("NEXT ", "outerctx")
+  rx218_fail:
+    (rx218_rep, rx218_pos, $I10, $P10) = rx218_cur."!mark_fail"(0)
+    lt rx218_pos, -1, rx218_done
+    eq rx218_pos, -1, rx218_fail
     jump $I10
-  rx239_done:
-    rx239_cur."!cursor_fail"()
-    rx239_cur."!cursor_debug"("FAIL  ", "outerctx")
-    .return (rx239_cur)
+  rx218_done:
+    rx218_cur."!cursor_fail"()
+    rx218_cur."!cursor_debug"("FAIL  ", "outerctx")
+    .return (rx218_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__outerctx"  :subid("51_1277356913.9538") :method
+.sub "!PREFIX__outerctx"  :subid("51_1280467477.44751") :method
 .annotate 'line', 4
-    new $P241, "ResizablePMCArray"
-    push $P241, ""
-    .return ($P241)
+    new $P220, "ResizablePMCArray"
+    push $P220, ""
+    .return ($P220)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "finishpad"  :subid("52_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "finishpad"  :subid("52_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx244_tgt
-    .local int rx244_pos
-    .local int rx244_off
-    .local int rx244_eos
-    .local int rx244_rep
-    .local pmc rx244_cur
-    (rx244_cur, rx244_pos, rx244_tgt) = self."!cursor_start"()
-    rx244_cur."!cursor_debug"("START ", "finishpad")
-    .lex unicode:"$\x{a2}", rx244_cur
+    .local string rx223_tgt
+    .local int rx223_pos
+    .local int rx223_off
+    .local int rx223_eos
+    .local int rx223_rep
+    .local pmc rx223_cur
+    (rx223_cur, rx223_pos, rx223_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx223_cur
     .local pmc match
     .lex "$/", match
-    length rx244_eos, rx244_tgt
-    gt rx244_pos, rx244_eos, rx244_done
-    set rx244_off, 0
-    lt rx244_pos, 2, rx244_start
-    sub rx244_off, rx244_pos, 1
-    substr rx244_tgt, rx244_tgt, rx244_off
-  rx244_start:
+    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
+    rx223_cur."!cursor_debug"("START ", "finishpad")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan247_done
-    goto rxscan247_scan
-  rxscan247_loop:
-    ($P10) = rx244_cur."from"()
+    ne $I10, -1, rxscan226_done
+    goto rxscan226_scan
+  rxscan226_loop:
+    ($P10) = rx223_cur."from"()
     inc $P10
-    set rx244_pos, $P10
-    ge rx244_pos, rx244_eos, rxscan247_done
-  rxscan247_scan:
-    set_addr $I10, rxscan247_loop
-    rx244_cur."!mark_push"(0, rx244_pos, $I10)
-  rxscan247_done:
+    set rx223_pos, $P10
+    ge rx223_pos, rx223_eos, rxscan226_done
+  rxscan226_scan:
+    set_addr $I10, rxscan226_loop
+    rx223_cur."!mark_push"(0, rx223_pos, $I10)
+  rxscan226_done:
 .annotate 'line', 146
   # rx pass
-    rx244_cur."!cursor_pass"(rx244_pos, "finishpad")
-    rx244_cur."!cursor_debug"("PASS  ", "finishpad", " at pos=", rx244_pos)
-    .return (rx244_cur)
-  rx244_fail:
+    rx223_cur."!cursor_pass"(rx223_pos, "finishpad")
+    rx223_cur."!cursor_debug"("PASS  ", "finishpad", " at pos=", rx223_pos)
+    .return (rx223_cur)
+  rx223_restart:
 .annotate 'line', 4
-    (rx244_rep, rx244_pos, $I10, $P10) = rx244_cur."!mark_fail"(0)
-    lt rx244_pos, -1, rx244_done
-    eq rx244_pos, -1, rx244_fail
+    rx223_cur."!cursor_debug"("NEXT ", "finishpad")
+  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
-  rx244_done:
-    rx244_cur."!cursor_fail"()
-    rx244_cur."!cursor_debug"("FAIL  ", "finishpad")
-    .return (rx244_cur)
+  rx223_done:
+    rx223_cur."!cursor_fail"()
+    rx223_cur."!cursor_debug"("FAIL  ", "finishpad")
+    .return (rx223_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad"  :subid("53_1277356913.9538") :method
+.sub "!PREFIX__finishpad"  :subid("53_1280467477.44751") :method
 .annotate 'line', 4
-    new $P246, "ResizablePMCArray"
-    push $P246, ""
-    .return ($P246)
+    new $P225, "ResizablePMCArray"
+    push $P225, ""
+    .return ($P225)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator"  :subid("54_1277356913.9538") :method
+.sub "terminator"  :subid("54_1280467477.44751") :method
 .annotate 'line', 148
-    $P249 = self."!protoregex"("terminator")
-    .return ($P249)
+    $P228 = self."!protoregex"("terminator")
+    .return ($P228)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator"  :subid("55_1277356913.9538") :method
+.sub "!PREFIX__terminator"  :subid("55_1280467477.44751") :method
 .annotate 'line', 148
-    $P251 = self."!PREFIX__!protoregex"("terminator")
-    .return ($P251)
+    $P230 = self."!PREFIX__!protoregex"("terminator")
+    .return ($P230)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>"  :subid("56_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "terminator:sym<;>"  :subid("56_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx253_tgt
-    .local int rx253_pos
-    .local int rx253_off
-    .local int rx253_eos
-    .local int rx253_rep
-    .local pmc rx253_cur
-    (rx253_cur, rx253_pos, rx253_tgt) = self."!cursor_start"()
-    rx253_cur."!cursor_debug"("START ", "terminator:sym<;>")
-    .lex unicode:"$\x{a2}", rx253_cur
-    .local pmc match
-    .lex "$/", match
-    length rx253_eos, rx253_tgt
-    gt rx253_pos, rx253_eos, rx253_done
-    set rx253_off, 0
-    lt rx253_pos, 2, rx253_start
-    sub rx253_off, rx253_pos, 1
-    substr rx253_tgt, rx253_tgt, rx253_off
-  rx253_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan256_done
-    goto rxscan256_scan
-  rxscan256_loop:
-    ($P10) = rx253_cur."from"()
-    inc $P10
-    set rx253_pos, $P10
-    ge rx253_pos, rx253_eos, rxscan256_done
-  rxscan256_scan:
-    set_addr $I10, rxscan256_loop
-    rx253_cur."!mark_push"(0, rx253_pos, $I10)
-  rxscan256_done:
+    .local string rx232_tgt
+    .local int rx232_pos
+    .local int rx232_off
+    .local int rx232_eos
+    .local int rx232_rep
+    .local pmc rx232_cur
+    (rx232_cur, rx232_pos, rx232_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx232_cur
+    .local pmc match
+    .lex "$/", match
+    length rx232_eos, rx232_tgt
+    gt rx232_pos, rx232_eos, rx232_done
+    set rx232_off, 0
+    lt rx232_pos, 2, rx232_start
+    sub rx232_off, rx232_pos, 1
+    substr rx232_tgt, rx232_tgt, rx232_off
+  rx232_start:
+    eq $I10, 1, rx232_restart
+    rx232_cur."!cursor_debug"("START ", "terminator:sym<;>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan235_done
+    goto rxscan235_scan
+  rxscan235_loop:
+    ($P10) = rx232_cur."from"()
+    inc $P10
+    set rx232_pos, $P10
+    ge rx232_pos, rx232_eos, rxscan235_done
+  rxscan235_scan:
+    set_addr $I10, rxscan235_loop
+    rx232_cur."!mark_push"(0, rx232_pos, $I10)
+  rxscan235_done:
 .annotate 'line', 150
   # rx enumcharlist negate=0 zerowidth
-    ge rx253_pos, rx253_eos, rx253_fail
-    sub $I10, rx253_pos, rx253_off
-    substr $S10, rx253_tgt, $I10, 1
+    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, rx253_fail
+    lt $I11, 0, rx232_fail
   # rx pass
-    rx253_cur."!cursor_pass"(rx253_pos, "terminator:sym<;>")
-    rx253_cur."!cursor_debug"("PASS  ", "terminator:sym<;>", " at pos=", rx253_pos)
-    .return (rx253_cur)
-  rx253_fail:
+    rx232_cur."!cursor_pass"(rx232_pos, "terminator:sym<;>")
+    rx232_cur."!cursor_debug"("PASS  ", "terminator:sym<;>", " at pos=", rx232_pos)
+    .return (rx232_cur)
+  rx232_restart:
 .annotate 'line', 4
-    (rx253_rep, rx253_pos, $I10, $P10) = rx253_cur."!mark_fail"(0)
-    lt rx253_pos, -1, rx253_done
-    eq rx253_pos, -1, rx253_fail
+    rx232_cur."!cursor_debug"("NEXT ", "terminator:sym<;>")
+  rx232_fail:
+    (rx232_rep, rx232_pos, $I10, $P10) = rx232_cur."!mark_fail"(0)
+    lt rx232_pos, -1, rx232_done
+    eq rx232_pos, -1, rx232_fail
     jump $I10
-  rx253_done:
-    rx253_cur."!cursor_fail"()
-    rx253_cur."!cursor_debug"("FAIL  ", "terminator:sym<;>")
-    .return (rx253_cur)
+  rx232_done:
+    rx232_cur."!cursor_fail"()
+    rx232_cur."!cursor_debug"("FAIL  ", "terminator:sym<;>")
+    .return (rx232_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>"  :subid("57_1277356913.9538") :method
+.sub "!PREFIX__terminator:sym<;>"  :subid("57_1280467477.44751") :method
 .annotate 'line', 4
-    new $P255, "ResizablePMCArray"
-    push $P255, ";"
-    .return ($P255)
+    new $P234, "ResizablePMCArray"
+    push $P234, ";"
+    .return ($P234)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>"  :subid("58_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "terminator:sym<}>"  :subid("58_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx258_tgt
-    .local int rx258_pos
-    .local int rx258_off
-    .local int rx258_eos
-    .local int rx258_rep
-    .local pmc rx258_cur
-    (rx258_cur, rx258_pos, rx258_tgt) = self."!cursor_start"()
-    rx258_cur."!cursor_debug"("START ", "terminator:sym<}>")
-    .lex unicode:"$\x{a2}", rx258_cur
+    .local string rx237_tgt
+    .local int rx237_pos
+    .local int rx237_off
+    .local int rx237_eos
+    .local int rx237_rep
+    .local pmc rx237_cur
+    (rx237_cur, rx237_pos, rx237_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx237_cur
     .local pmc match
     .lex "$/", match
-    length rx258_eos, rx258_tgt
-    gt rx258_pos, rx258_eos, rx258_done
-    set rx258_off, 0
-    lt rx258_pos, 2, rx258_start
-    sub rx258_off, rx258_pos, 1
-    substr rx258_tgt, rx258_tgt, rx258_off
-  rx258_start:
+    length rx237_eos, rx237_tgt
+    gt rx237_pos, rx237_eos, rx237_done
+    set rx237_off, 0
+    lt rx237_pos, 2, rx237_start
+    sub rx237_off, rx237_pos, 1
+    substr rx237_tgt, rx237_tgt, rx237_off
+  rx237_start:
+    eq $I10, 1, rx237_restart
+    rx237_cur."!cursor_debug"("START ", "terminator:sym<}>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan261_done
-    goto rxscan261_scan
-  rxscan261_loop:
-    ($P10) = rx258_cur."from"()
+    ne $I10, -1, rxscan240_done
+    goto rxscan240_scan
+  rxscan240_loop:
+    ($P10) = rx237_cur."from"()
     inc $P10
-    set rx258_pos, $P10
-    ge rx258_pos, rx258_eos, rxscan261_done
-  rxscan261_scan:
-    set_addr $I10, rxscan261_loop
-    rx258_cur."!mark_push"(0, rx258_pos, $I10)
-  rxscan261_done:
+    set rx237_pos, $P10
+    ge rx237_pos, rx237_eos, rxscan240_done
+  rxscan240_scan:
+    set_addr $I10, rxscan240_loop
+    rx237_cur."!mark_push"(0, rx237_pos, $I10)
+  rxscan240_done:
 .annotate 'line', 151
   # rx enumcharlist negate=0 zerowidth
-    ge rx258_pos, rx258_eos, rx258_fail
-    sub $I10, rx258_pos, rx258_off
-    substr $S10, rx258_tgt, $I10, 1
+    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, rx258_fail
+    lt $I11, 0, rx237_fail
   # rx pass
-    rx258_cur."!cursor_pass"(rx258_pos, "terminator:sym<}>")
-    rx258_cur."!cursor_debug"("PASS  ", "terminator:sym<}>", " at pos=", rx258_pos)
-    .return (rx258_cur)
-  rx258_fail:
+    rx237_cur."!cursor_pass"(rx237_pos, "terminator:sym<}>")
+    rx237_cur."!cursor_debug"("PASS  ", "terminator:sym<}>", " at pos=", rx237_pos)
+    .return (rx237_cur)
+  rx237_restart:
 .annotate 'line', 4
-    (rx258_rep, rx258_pos, $I10, $P10) = rx258_cur."!mark_fail"(0)
-    lt rx258_pos, -1, rx258_done
-    eq rx258_pos, -1, rx258_fail
+    rx237_cur."!cursor_debug"("NEXT ", "terminator:sym<}>")
+  rx237_fail:
+    (rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0)
+    lt rx237_pos, -1, rx237_done
+    eq rx237_pos, -1, rx237_fail
     jump $I10
-  rx258_done:
-    rx258_cur."!cursor_fail"()
-    rx258_cur."!cursor_debug"("FAIL  ", "terminator:sym<}>")
-    .return (rx258_cur)
+  rx237_done:
+    rx237_cur."!cursor_fail"()
+    rx237_cur."!cursor_debug"("FAIL  ", "terminator:sym<}>")
+    .return (rx237_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>"  :subid("59_1277356913.9538") :method
+.sub "!PREFIX__terminator:sym<}>"  :subid("59_1280467477.44751") :method
 .annotate 'line', 4
-    new $P260, "ResizablePMCArray"
-    push $P260, "}"
-    .return ($P260)
+    new $P239, "ResizablePMCArray"
+    push $P239, "}"
+    .return ($P239)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control"  :subid("60_1277356913.9538") :method
+.sub "statement_control"  :subid("60_1280467477.44751") :method
 .annotate 'line', 155
-    $P263 = self."!protoregex"("statement_control")
-    .return ($P263)
+    $P242 = self."!protoregex"("statement_control")
+    .return ($P242)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control"  :subid("61_1277356913.9538") :method
+.sub "!PREFIX__statement_control"  :subid("61_1280467477.44751") :method
 .annotate 'line', 155
-    $P265 = self."!PREFIX__!protoregex"("statement_control")
-    .return ($P265)
+    $P244 = self."!PREFIX__!protoregex"("statement_control")
+    .return ($P244)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<if>"  :subid("62_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "statement_control:sym<if>"  :subid("62_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx267_tgt
-    .local int rx267_pos
-    .local int rx267_off
-    .local int rx267_eos
-    .local int rx267_rep
-    .local pmc rx267_cur
-    (rx267_cur, rx267_pos, rx267_tgt) = self."!cursor_start"()
-    rx267_cur."!cursor_debug"("START ", "statement_control:sym<if>")
-    rx267_cur."!cursor_caparray"("else", "xblock")
-    .lex unicode:"$\x{a2}", rx267_cur
-    .local pmc match
-    .lex "$/", match
-    length rx267_eos, rx267_tgt
-    gt rx267_pos, rx267_eos, rx267_done
-    set rx267_off, 0
-    lt rx267_pos, 2, rx267_start
-    sub rx267_off, rx267_pos, 1
-    substr rx267_tgt, rx267_tgt, rx267_off
-  rx267_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan270_done
-    goto rxscan270_scan
-  rxscan270_loop:
-    ($P10) = rx267_cur."from"()
-    inc $P10
-    set rx267_pos, $P10
-    ge rx267_pos, rx267_eos, rxscan270_done
-  rxscan270_scan:
-    set_addr $I10, rxscan270_loop
-    rx267_cur."!mark_push"(0, rx267_pos, $I10)
-  rxscan270_done:
+    .local string rx246_tgt
+    .local int rx246_pos
+    .local int rx246_off
+    .local int rx246_eos
+    .local int rx246_rep
+    .local pmc rx246_cur
+    (rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"()
+    rx246_cur."!cursor_caparray"("xblock", "else")
+    .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
+    rx246_cur."!cursor_debug"("START ", "statement_control:sym<if>")
+    $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:
 .annotate 'line', 158
   # rx subcapture "sym"
-    set_addr $I10, rxcap_271_fail
-    rx267_cur."!mark_push"(0, rx267_pos, $I10)
+    set_addr $I10, rxcap_250_fail
+    rx246_cur."!mark_push"(0, rx246_pos, $I10)
   # rx literal  "if"
-    add $I11, rx267_pos, 2
-    gt $I11, rx267_eos, rx267_fail
-    sub $I11, rx267_pos, rx267_off
-    substr $S10, rx267_tgt, $I11, 2
-    ne $S10, "if", rx267_fail
-    add rx267_pos, 2
-    set_addr $I10, rxcap_271_fail
-    ($I12, $I11) = rx267_cur."!mark_peek"($I10)
-    rx267_cur."!cursor_pos"($I11)
-    ($P10) = rx267_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx267_pos, "")
-    rx267_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx246_pos, 2
+    gt $I11, rx246_eos, rx246_fail
+    sub $I11, rx246_pos, rx246_off
+    substr $S10, rx246_tgt, $I11, 2
+    ne $S10, "if", rx246_fail
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_271_done
-  rxcap_271_fail:
-    goto rx267_fail
-  rxcap_271_done:
+    goto rxcap_250_done
+  rxcap_250_fail:
+    goto rx246_fail
+  rxcap_250_done:
   # rx charclass s
-    ge rx267_pos, rx267_eos, rx267_fail
-    sub $I10, rx267_pos, rx267_off
-    is_cclass $I11, 32, rx267_tgt, $I10
-    unless $I11, rx267_fail
-    inc rx267_pos
-  # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
+    ge rx246_pos, rx246_eos, rx246_fail
+    sub $I10, rx246_pos, rx246_off
+    is_cclass $I11, 32, rx246_tgt, $I10
+    unless $I11, rx246_fail
+    inc rx246_pos
+  # rx subrule "ws" subtype=method negate=
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
 .annotate 'line', 159
   # rx subrule "xblock" subtype=capture negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."xblock"()
-    unless $P10, rx267_fail
-    rx267_cur."!mark_push"(0, -1, 0, $P10)
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."xblock"()
+    unless $P10, rx246_fail
+    rx246_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx267_pos = $P10."pos"()
+    rx246_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
 .annotate 'line', 160
-  # rx rxquantr274 ** 0..*
-    set_addr $I278, rxquantr274_done
-    rx267_cur."!mark_push"(0, rx267_pos, $I278)
-  rxquantr274_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
+  # rx rxquantr253 ** 0..*
+    set_addr $I10, rxquantr253_done
+    rx246_cur."!mark_push"(0, rx246_pos, $I10)
+  rxquantr253_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
   # rx literal  "elsif"
-    add $I11, rx267_pos, 5
-    gt $I11, rx267_eos, rx267_fail
-    sub $I11, rx267_pos, rx267_off
-    substr $S10, rx267_tgt, $I11, 5
-    ne $S10, "elsif", rx267_fail
-    add rx267_pos, 5
+    add $I11, rx246_pos, 5
+    gt $I11, rx246_eos, rx246_fail
+    sub $I11, rx246_pos, rx246_off
+    substr $S10, rx246_tgt, $I11, 5
+    ne $S10, "elsif", rx246_fail
+    add rx246_pos, 5
   # rx charclass s
-    ge rx267_pos, rx267_eos, rx267_fail
-    sub $I10, rx267_pos, rx267_off
-    is_cclass $I11, 32, rx267_tgt, $I10
-    unless $I11, rx267_fail
-    inc rx267_pos
-  # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
+    ge rx246_pos, rx246_eos, rx246_fail
+    sub $I10, rx246_pos, rx246_off
+    is_cclass $I11, 32, rx246_tgt, $I10
+    unless $I11, rx246_fail
+    inc rx246_pos
+  # rx subrule "ws" subtype=method negate=
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
   # rx subrule "xblock" subtype=capture negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."xblock"()
-    unless $P10, rx267_fail
-    rx267_cur."!mark_push"(0, -1, 0, $P10)
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."xblock"()
+    unless $P10, rx246_fail
+    rx246_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx267_pos = $P10."pos"()
+    rx246_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
-    (rx267_rep) = rx267_cur."!mark_commit"($I278)
-    rx267_cur."!mark_push"(rx267_rep, rx267_pos, $I278)
-    goto rxquantr274_loop
-  rxquantr274_done:
-  # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
+    set_addr $I10, rxquantr253_done
+    (rx246_rep) = rx246_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr253_done
+    rx246_cur."!mark_push"(rx246_rep, rx246_pos, $I10)
+    goto rxquantr253_loop
+  rxquantr253_done:
+  # rx subrule "ws" subtype=method negate=
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
 .annotate 'line', 161
-  # rx rxquantr280 ** 0..1
-    set_addr $I284, rxquantr280_done
-    rx267_cur."!mark_push"(0, rx267_pos, $I284)
-  rxquantr280_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
+  # rx rxquantr258 ** 0..1
+    set_addr $I10, rxquantr258_done
+    rx246_cur."!mark_push"(0, rx246_pos, $I10)
+  rxquantr258_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
   # rx literal  "else"
-    add $I11, rx267_pos, 4
-    gt $I11, rx267_eos, rx267_fail
-    sub $I11, rx267_pos, rx267_off
-    substr $S10, rx267_tgt, $I11, 4
-    ne $S10, "else", rx267_fail
-    add rx267_pos, 4
+    add $I11, rx246_pos, 4
+    gt $I11, rx246_eos, rx246_fail
+    sub $I11, rx246_pos, rx246_off
+    substr $S10, rx246_tgt, $I11, 4
+    ne $S10, "else", rx246_fail
+    add rx246_pos, 4
   # rx charclass s
-    ge rx267_pos, rx267_eos, rx267_fail
-    sub $I10, rx267_pos, rx267_off
-    is_cclass $I11, 32, rx267_tgt, $I10
-    unless $I11, rx267_fail
-    inc rx267_pos
-  # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
+    ge rx246_pos, rx246_eos, rx246_fail
+    sub $I10, rx246_pos, rx246_off
+    is_cclass $I11, 32, rx246_tgt, $I10
+    unless $I11, rx246_fail
+    inc rx246_pos
+  # rx subrule "ws" subtype=method negate=
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
   # rx subrule "pblock" subtype=capture negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."pblock"()
-    unless $P10, rx267_fail
-    rx267_cur."!mark_push"(0, -1, 0, $P10)
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."pblock"()
+    unless $P10, rx246_fail
+    rx246_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("else")
-    rx267_pos = $P10."pos"()
+    rx246_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
-    (rx267_rep) = rx267_cur."!mark_commit"($I284)
-  rxquantr280_done:
-  # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
+    set_addr $I10, rxquantr258_done
+    (rx246_rep) = rx246_cur."!mark_commit"($I10)
+  rxquantr258_done:
+  # rx subrule "ws" subtype=method negate=
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
 .annotate 'line', 157
   # rx pass
-    rx267_cur."!cursor_pass"(rx267_pos, "statement_control:sym<if>")
-    rx267_cur."!cursor_debug"("PASS  ", "statement_control:sym<if>", " at pos=", rx267_pos)
-    .return (rx267_cur)
-  rx267_fail:
+    rx246_cur."!cursor_pass"(rx246_pos, "statement_control:sym<if>")
+    rx246_cur."!cursor_debug"("PASS  ", "statement_control:sym<if>", " at pos=", rx246_pos)
+    .return (rx246_cur)
+  rx246_restart:
 .annotate 'line', 4
-    (rx267_rep, rx267_pos, $I10, $P10) = rx267_cur."!mark_fail"(0)
-    lt rx267_pos, -1, rx267_done
-    eq rx267_pos, -1, rx267_fail
+    rx246_cur."!cursor_debug"("NEXT ", "statement_control:sym<if>")
+  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
-  rx267_done:
-    rx267_cur."!cursor_fail"()
-    rx267_cur."!cursor_debug"("FAIL  ", "statement_control:sym<if>")
-    .return (rx267_cur)
+  rx246_done:
+    rx246_cur."!cursor_fail"()
+    rx246_cur."!cursor_debug"("FAIL  ", "statement_control:sym<if>")
+    .return (rx246_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>"  :subid("63_1277356913.9538") :method
+.sub "!PREFIX__statement_control:sym<if>"  :subid("63_1280467477.44751") :method
 .annotate 'line', 4
-    new $P269, "ResizablePMCArray"
-    push $P269, "if"
-    .return ($P269)
+    new $P248, "ResizablePMCArray"
+    push $P248, "if"
+    .return ($P248)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<unless>"  :subid("64_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "statement_control:sym<unless>"  :subid("64_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .const 'Sub' $P297 = "66_1277356913.9538" 
-    capture_lex $P297
-    .local string rx287_tgt
-    .local int rx287_pos
-    .local int rx287_off
-    .local int rx287_eos
-    .local int rx287_rep
-    .local pmc rx287_cur
-    (rx287_cur, rx287_pos, rx287_tgt) = self."!cursor_start"()
-    rx287_cur."!cursor_debug"("START ", "statement_control:sym<unless>")
-    .lex unicode:"$\x{a2}", rx287_cur
+    .const 'Sub' $P274 = "66_1280467477.44751" 
+    capture_lex $P274
+    .local string rx264_tgt
+    .local int rx264_pos
+    .local int rx264_off
+    .local int rx264_eos
+    .local int rx264_rep
+    .local pmc rx264_cur
+    (rx264_cur, rx264_pos, rx264_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx264_cur
     .local pmc match
     .lex "$/", match
-    length rx287_eos, rx287_tgt
-    gt rx287_pos, rx287_eos, rx287_done
-    set rx287_off, 0
-    lt rx287_pos, 2, rx287_start
-    sub rx287_off, rx287_pos, 1
-    substr rx287_tgt, rx287_tgt, rx287_off
-  rx287_start:
+    length rx264_eos, rx264_tgt
+    gt rx264_pos, rx264_eos, rx264_done
+    set rx264_off, 0
+    lt rx264_pos, 2, rx264_start
+    sub rx264_off, rx264_pos, 1
+    substr rx264_tgt, rx264_tgt, rx264_off
+  rx264_start:
+    eq $I10, 1, rx264_restart
+    rx264_cur."!cursor_debug"("START ", "statement_control:sym<unless>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan290_done
-    goto rxscan290_scan
-  rxscan290_loop:
-    ($P10) = rx287_cur."from"()
+    ne $I10, -1, rxscan267_done
+    goto rxscan267_scan
+  rxscan267_loop:
+    ($P10) = rx264_cur."from"()
     inc $P10
-    set rx287_pos, $P10
-    ge rx287_pos, rx287_eos, rxscan290_done
-  rxscan290_scan:
-    set_addr $I10, rxscan290_loop
-    rx287_cur."!mark_push"(0, rx287_pos, $I10)
-  rxscan290_done:
+    set rx264_pos, $P10
+    ge rx264_pos, rx264_eos, rxscan267_done
+  rxscan267_scan:
+    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_291_fail
-    rx287_cur."!mark_push"(0, rx287_pos, $I10)
+    set_addr $I10, rxcap_268_fail
+    rx264_cur."!mark_push"(0, rx264_pos, $I10)
   # rx literal  "unless"
-    add $I11, rx287_pos, 6
-    gt $I11, rx287_eos, rx287_fail
-    sub $I11, rx287_pos, rx287_off
-    substr $S10, rx287_tgt, $I11, 6
-    ne $S10, "unless", rx287_fail
-    add rx287_pos, 6
-    set_addr $I10, rxcap_291_fail
-    ($I12, $I11) = rx287_cur."!mark_peek"($I10)
-    rx287_cur."!cursor_pos"($I11)
-    ($P10) = rx287_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx287_pos, "")
-    rx287_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx264_pos, 6
+    gt $I11, rx264_eos, rx264_fail
+    sub $I11, rx264_pos, rx264_off
+    substr $S10, rx264_tgt, $I11, 6
+    ne $S10, "unless", rx264_fail
+    add rx264_pos, 6
+    set_addr $I10, rxcap_268_fail
+    ($I12, $I11) = rx264_cur."!mark_peek"($I10)
+    rx264_cur."!cursor_pos"($I11)
+    ($P10) = rx264_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx264_pos, "")
+    rx264_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_291_done
-  rxcap_291_fail:
-    goto rx287_fail
-  rxcap_291_done:
+    goto rxcap_268_done
+  rxcap_268_fail:
+    goto rx264_fail
+  rxcap_268_done:
   # rx charclass s
-    ge rx287_pos, rx287_eos, rx287_fail
-    sub $I10, rx287_pos, rx287_off
-    is_cclass $I11, 32, rx287_tgt, $I10
-    unless $I11, rx287_fail
-    inc rx287_pos
-  # rx subrule "ws" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."ws"()
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
+    ge rx264_pos, rx264_eos, rx264_fail
+    sub $I10, rx264_pos, rx264_off
+    is_cclass $I11, 32, rx264_tgt, $I10
+    unless $I11, rx264_fail
+    inc rx264_pos
+  # rx subrule "ws" subtype=method negate=
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."ws"()
+    unless $P10, rx264_fail
+    rx264_pos = $P10."pos"()
 .annotate 'line', 166
   # rx subrule "xblock" subtype=capture negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."xblock"()
-    unless $P10, rx287_fail
-    rx287_cur."!mark_push"(0, -1, 0, $P10)
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."xblock"()
+    unless $P10, rx264_fail
+    rx264_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx287_pos = $P10."pos"()
+    rx264_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."ws"()
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
-  alt294_0:
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."ws"()
+    unless $P10, rx264_fail
+    rx264_pos = $P10."pos"()
+  alt271_0:
 .annotate 'line', 167
-    set_addr $I10, alt294_1
-    rx287_cur."!mark_push"(0, rx287_pos, $I10)
+    set_addr $I10, alt271_1
+    rx264_cur."!mark_push"(0, rx264_pos, $I10)
   # rx subrule "ws" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."ws"()
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."ws"()
+    unless $P10, rx264_fail
+    rx264_pos = $P10."pos"()
   # rx subrule "before" subtype=zerowidth negate=1
-    rx287_cur."!cursor_pos"(rx287_pos)
-    .const 'Sub' $P297 = "66_1277356913.9538" 
-    capture_lex $P297
-    $P10 = rx287_cur."before"($P297)
-    if $P10, rx287_fail
-  # rx subrule "ws" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."ws"()
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
-    goto alt294_end
-  alt294_1:
-  # rx subrule "ws" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."ws"()
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
+    rx264_cur."!cursor_pos"(rx264_pos)
+    .const 'Sub' $P274 = "66_1280467477.44751" 
+    capture_lex $P274
+    $P10 = rx264_cur."before"($P274)
+    if $P10, rx264_fail
+  # rx subrule "ws" subtype=method negate=
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."ws"()
+    unless $P10, rx264_fail
+    rx264_pos = $P10."pos"()
+    goto alt271_end
+  alt271_1:
+  # rx subrule "ws" subtype=method negate=
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."ws"()
+    unless $P10, rx264_fail
+    rx264_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."panic"("unless does not take \"else\", please rewrite using \"if\"")
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."ws"()
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
-  alt294_end:
-  # rx subrule "ws" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."ws"()
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."panic"("unless does not take \"else\", please rewrite using \"if\"")
+    unless $P10, rx264_fail
+    rx264_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."ws"()
+    unless $P10, rx264_fail
+    rx264_pos = $P10."pos"()
+  alt271_end:
+  # rx subrule "ws" subtype=method negate=
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."ws"()
+    unless $P10, rx264_fail
+    rx264_pos = $P10."pos"()
 .annotate 'line', 164
   # rx pass
-    rx287_cur."!cursor_pass"(rx287_pos, "statement_control:sym<unless>")
-    rx287_cur."!cursor_debug"("PASS  ", "statement_control:sym<unless>", " at pos=", rx287_pos)
-    .return (rx287_cur)
-  rx287_fail:
+    rx264_cur."!cursor_pass"(rx264_pos, "statement_control:sym<unless>")
+    rx264_cur."!cursor_debug"("PASS  ", "statement_control:sym<unless>", " at pos=", rx264_pos)
+    .return (rx264_cur)
+  rx264_restart:
 .annotate 'line', 4
-    (rx287_rep, rx287_pos, $I10, $P10) = rx287_cur."!mark_fail"(0)
-    lt rx287_pos, -1, rx287_done
-    eq rx287_pos, -1, rx287_fail
+    rx264_cur."!cursor_debug"("NEXT ", "statement_control:sym<unless>")
+  rx264_fail:
+    (rx264_rep, rx264_pos, $I10, $P10) = rx264_cur."!mark_fail"(0)
+    lt rx264_pos, -1, rx264_done
+    eq rx264_pos, -1, rx264_fail
     jump $I10
-  rx287_done:
-    rx287_cur."!cursor_fail"()
-    rx287_cur."!cursor_debug"("FAIL  ", "statement_control:sym<unless>")
-    .return (rx287_cur)
+  rx264_done:
+    rx264_cur."!cursor_fail"()
+    rx264_cur."!cursor_debug"("FAIL  ", "statement_control:sym<unless>")
+    .return (rx264_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>"  :subid("65_1277356913.9538") :method
+.sub "!PREFIX__statement_control:sym<unless>"  :subid("65_1280467477.44751") :method
 .annotate 'line', 4
-    new $P289, "ResizablePMCArray"
-    push $P289, "unless"
-    .return ($P289)
+    new $P266, "ResizablePMCArray"
+    push $P266, "unless"
+    .return ($P266)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block296"  :anon :subid("66_1277356913.9538") :method :outer("64_1277356913.9538")
+.sub "_block273"  :anon :subid("66_1280467477.44751") :method :outer("64_1280467477.44751")
 .annotate 'line', 167
-    .local string rx298_tgt
-    .local int rx298_pos
-    .local int rx298_off
-    .local int rx298_eos
-    .local int rx298_rep
-    .local pmc rx298_cur
-    (rx298_cur, rx298_pos, rx298_tgt) = self."!cursor_start"()
-    rx298_cur."!cursor_debug"("START ", "")
-    .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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan299_done
-    goto rxscan299_scan
-  rxscan299_loop:
-    ($P10) = rx298_cur."from"()
-    inc $P10
-    set rx298_pos, $P10
-    ge rx298_pos, rx298_eos, rxscan299_done
-  rxscan299_scan:
-    set_addr $I10, rxscan299_loop
-    rx298_cur."!mark_push"(0, rx298_pos, $I10)
-  rxscan299_done:
+    .local string rx275_tgt
+    .local int rx275_pos
+    .local int rx275_off
+    .local int rx275_eos
+    .local int rx275_rep
+    .local pmc rx275_cur
+    (rx275_cur, rx275_pos, rx275_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx275_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan276_done
+    goto rxscan276_scan
+  rxscan276_loop:
+    ($P10) = rx275_cur."from"()
+    inc $P10
+    set rx275_pos, $P10
+    ge rx275_pos, rx275_eos, rxscan276_done
+  rxscan276_scan:
+    set_addr $I10, rxscan276_loop
+    rx275_cur."!mark_push"(0, rx275_pos, $I10)
+  rxscan276_done:
   # rx literal  "else"
-    add $I11, rx298_pos, 4
-    gt $I11, rx298_eos, rx298_fail
-    sub $I11, rx298_pos, rx298_off
-    substr $S10, rx298_tgt, $I11, 4
-    ne $S10, "else", rx298_fail
-    add rx298_pos, 4
-  # rx pass
-    rx298_cur."!cursor_pass"(rx298_pos, "")
-    rx298_cur."!cursor_debug"("PASS  ", "", " at pos=", rx298_pos)
-    .return (rx298_cur)
-  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"()
-    rx298_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx298_cur)
+    add $I11, rx275_pos, 4
+    gt $I11, rx275_eos, rx275_fail
+    sub $I11, rx275_pos, rx275_off
+    substr $S10, rx275_tgt, $I11, 4
+    ne $S10, "else", rx275_fail
+    add rx275_pos, 4
+  # rx pass
+    rx275_cur."!cursor_pass"(rx275_pos, "")
+    rx275_cur."!cursor_debug"("PASS  ", "", " at pos=", rx275_pos)
+    .return (rx275_cur)
+  rx275_restart:
+    rx275_cur."!cursor_debug"("NEXT ", "")
+  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"()
+    rx275_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx275_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>"  :subid("67_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 4
-    .local string rx305_tgt
-    .local int rx305_pos
-    .local int rx305_off
-    .local int rx305_eos
-    .local int rx305_rep
-    .local pmc rx305_cur
-    (rx305_cur, rx305_pos, rx305_tgt) = self."!cursor_start"()
-    rx305_cur."!cursor_debug"("START ", "statement_control:sym<while>")
-    .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:
-    $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:
+.sub "statement_control:sym<while>"  :subid("67_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+    .local string rx282_tgt
+    .local int rx282_pos
+    .local int rx282_off
+    .local int rx282_eos
+    .local int rx282_rep
+    .local pmc rx282_cur
+    (rx282_cur, rx282_pos, rx282_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx282_cur."!cursor_debug"("START ", "statement_control:sym<while>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan285_done
+    goto rxscan285_scan
+  rxscan285_loop:
+    ($P10) = rx282_cur."from"()
+    inc $P10
+    set rx282_pos, $P10
+    ge rx282_pos, rx282_eos, rxscan285_done
+  rxscan285_scan:
+    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_310_fail
-    rx305_cur."!mark_push"(0, rx305_pos, $I10)
-  alt309_0:
-    set_addr $I10, alt309_1
-    rx305_cur."!mark_push"(0, rx305_pos, $I10)
+    set_addr $I10, rxcap_287_fail
+    rx282_cur."!mark_push"(0, rx282_pos, $I10)
+  alt286_0:
+    set_addr $I10, alt286_1
+    rx282_cur."!mark_push"(0, rx282_pos, $I10)
   # rx literal  "while"
-    add $I11, rx305_pos, 5
-    gt $I11, rx305_eos, rx305_fail
-    sub $I11, rx305_pos, rx305_off
-    substr $S10, rx305_tgt, $I11, 5
-    ne $S10, "while", rx305_fail
-    add rx305_pos, 5
-    goto alt309_end
-  alt309_1:
+    add $I11, rx282_pos, 5
+    gt $I11, rx282_eos, rx282_fail
+    sub $I11, rx282_pos, rx282_off
+    substr $S10, rx282_tgt, $I11, 5
+    ne $S10, "while", rx282_fail
+    add rx282_pos, 5
+    goto alt286_end
+  alt286_1:
   # rx literal  "until"
-    add $I11, rx305_pos, 5
-    gt $I11, rx305_eos, rx305_fail
-    sub $I11, rx305_pos, rx305_off
-    substr $S10, rx305_tgt, $I11, 5
-    ne $S10, "until", rx305_fail
-    add rx305_pos, 5
-  alt309_end:
-    set_addr $I10, rxcap_310_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, rx282_pos, 5
+    gt $I11, rx282_eos, rx282_fail
+    sub $I11, rx282_pos, rx282_off
+    substr $S10, rx282_tgt, $I11, 5
+    ne $S10, "until", rx282_fail
+    add rx282_pos, 5
+  alt286_end:
+    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_310_done
-  rxcap_310_fail:
-    goto rx305_fail
-  rxcap_310_done:
+    goto rxcap_287_done
+  rxcap_287_fail:
+    goto rx282_fail
+  rxcap_287_done:
   # rx charclass s
-    ge rx305_pos, rx305_eos, rx305_fail
-    sub $I10, rx305_pos, rx305_off
-    is_cclass $I11, 32, rx305_tgt, $I10
-    unless $I11, rx305_fail
-    inc rx305_pos
-  # rx subrule "ws" subtype=method negate=
-    rx305_cur."!cursor_pos"(rx305_pos)
-    $P10 = rx305_cur."ws"()
-    unless $P10, rx305_fail
-    rx305_pos = $P10."pos"()
+    ge rx282_pos, rx282_eos, rx282_fail
+    sub $I10, rx282_pos, rx282_off
+    is_cclass $I11, 32, rx282_tgt, $I10
+    unless $I11, rx282_fail
+    inc rx282_pos
+  # rx subrule "ws" subtype=method negate=
+    rx282_cur."!cursor_pos"(rx282_pos)
+    $P10 = rx282_cur."ws"()
+    unless $P10, rx282_fail
+    rx282_pos = $P10."pos"()
 .annotate 'line', 172
   # rx subrule "xblock" subtype=capture negate=
-    rx305_cur."!cursor_pos"(rx305_pos)
-    $P10 = rx305_cur."xblock"()
-    unless $P10, rx305_fail
-    rx305_cur."!mark_push"(0, -1, 0, $P10)
+    rx282_cur."!cursor_pos"(rx282_pos)
+    $P10 = rx282_cur."xblock"()
+    unless $P10, rx282_fail
+    rx282_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx305_pos = $P10."pos"()
+    rx282_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx305_cur."!cursor_pos"(rx305_pos)
-    $P10 = rx305_cur."ws"()
-    unless $P10, rx305_fail
-    rx305_pos = $P10."pos"()
+    rx282_cur."!cursor_pos"(rx282_pos)
+    $P10 = rx282_cur."ws"()
+    unless $P10, rx282_fail
+    rx282_pos = $P10."pos"()
 .annotate 'line', 170
   # rx pass
-    rx305_cur."!cursor_pass"(rx305_pos, "statement_control:sym<while>")
-    rx305_cur."!cursor_debug"("PASS  ", "statement_control:sym<while>", " at pos=", rx305_pos)
-    .return (rx305_cur)
-  rx305_fail:
+    rx282_cur."!cursor_pass"(rx282_pos, "statement_control:sym<while>")
+    rx282_cur."!cursor_debug"("PASS  ", "statement_control:sym<while>", " at pos=", rx282_pos)
+    .return (rx282_cur)
+  rx282_restart:
 .annotate 'line', 4
-    (rx305_rep, rx305_pos, $I10, $P10) = rx305_cur."!mark_fail"(0)
-    lt rx305_pos, -1, rx305_done
-    eq rx305_pos, -1, rx305_fail
+    rx282_cur."!cursor_debug"("NEXT ", "statement_control:sym<while>")
+  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
-  rx305_done:
-    rx305_cur."!cursor_fail"()
-    rx305_cur."!cursor_debug"("FAIL  ", "statement_control:sym<while>")
-    .return (rx305_cur)
+  rx282_done:
+    rx282_cur."!cursor_fail"()
+    rx282_cur."!cursor_debug"("FAIL  ", "statement_control:sym<while>")
+    .return (rx282_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>"  :subid("68_1277356913.9538") :method
+.sub "!PREFIX__statement_control:sym<while>"  :subid("68_1280467477.44751") :method
 .annotate 'line', 4
-    new $P307, "ResizablePMCArray"
-    push $P307, "until"
-    push $P307, "while"
-    .return ($P307)
+    new $P284, "ResizablePMCArray"
+    push $P284, "until"
+    push $P284, "while"
+    .return ($P284)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<repeat>"  :subid("69_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "statement_control:sym<repeat>"  :subid("69_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx314_tgt
-    .local int rx314_pos
-    .local int rx314_off
-    .local int rx314_eos
-    .local int rx314_rep
-    .local pmc rx314_cur
-    (rx314_cur, rx314_pos, rx314_tgt) = self."!cursor_start"()
-    rx314_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
-    .lex unicode:"$\x{a2}", rx314_cur
+    .local string rx291_tgt
+    .local int rx291_pos
+    .local int rx291_off
+    .local int rx291_eos
+    .local int rx291_rep
+    .local pmc rx291_cur
+    (rx291_cur, rx291_pos, rx291_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx291_cur
     .local pmc match
     .lex "$/", match
-    length rx314_eos, rx314_tgt
-    gt rx314_pos, rx314_eos, rx314_done
-    set rx314_off, 0
-    lt rx314_pos, 2, rx314_start
-    sub rx314_off, rx314_pos, 1
-    substr rx314_tgt, rx314_tgt, rx314_off
-  rx314_start:
+    length rx291_eos, rx291_tgt
+    gt rx291_pos, rx291_eos, rx291_done
+    set rx291_off, 0
+    lt rx291_pos, 2, rx291_start
+    sub rx291_off, rx291_pos, 1
+    substr rx291_tgt, rx291_tgt, rx291_off
+  rx291_start:
+    eq $I10, 1, rx291_restart
+    rx291_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan317_done
-    goto rxscan317_scan
-  rxscan317_loop:
-    ($P10) = rx314_cur."from"()
+    ne $I10, -1, rxscan294_done
+    goto rxscan294_scan
+  rxscan294_loop:
+    ($P10) = rx291_cur."from"()
     inc $P10
-    set rx314_pos, $P10
-    ge rx314_pos, rx314_eos, rxscan317_done
-  rxscan317_scan:
-    set_addr $I10, rxscan317_loop
-    rx314_cur."!mark_push"(0, rx314_pos, $I10)
-  rxscan317_done:
+    set rx291_pos, $P10
+    ge rx291_pos, rx291_eos, rxscan294_done
+  rxscan294_scan:
+    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_318_fail
-    rx314_cur."!mark_push"(0, rx314_pos, $I10)
+    set_addr $I10, rxcap_295_fail
+    rx291_cur."!mark_push"(0, rx291_pos, $I10)
   # rx literal  "repeat"
-    add $I11, rx314_pos, 6
-    gt $I11, rx314_eos, rx314_fail
-    sub $I11, rx314_pos, rx314_off
-    substr $S10, rx314_tgt, $I11, 6
-    ne $S10, "repeat", rx314_fail
-    add rx314_pos, 6
-    set_addr $I10, rxcap_318_fail
-    ($I12, $I11) = rx314_cur."!mark_peek"($I10)
-    rx314_cur."!cursor_pos"($I11)
-    ($P10) = rx314_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx314_pos, "")
-    rx314_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx291_pos, 6
+    gt $I11, rx291_eos, rx291_fail
+    sub $I11, rx291_pos, rx291_off
+    substr $S10, rx291_tgt, $I11, 6
+    ne $S10, "repeat", rx291_fail
+    add rx291_pos, 6
+    set_addr $I10, rxcap_295_fail
+    ($I12, $I11) = rx291_cur."!mark_peek"($I10)
+    rx291_cur."!cursor_pos"($I11)
+    ($P10) = rx291_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx291_pos, "")
+    rx291_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_318_done
-  rxcap_318_fail:
-    goto rx314_fail
-  rxcap_318_done:
+    goto rxcap_295_done
+  rxcap_295_fail:
+    goto rx291_fail
+  rxcap_295_done:
   # rx charclass s
-    ge rx314_pos, rx314_eos, rx314_fail
-    sub $I10, rx314_pos, rx314_off
-    is_cclass $I11, 32, rx314_tgt, $I10
-    unless $I11, rx314_fail
-    inc rx314_pos
-  # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
-  alt320_0:
+    ge rx291_pos, rx291_eos, rx291_fail
+    sub $I10, rx291_pos, rx291_off
+    is_cclass $I11, 32, rx291_tgt, $I10
+    unless $I11, rx291_fail
+    inc rx291_pos
+  # rx subrule "ws" subtype=method negate=
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
+  alt297_0:
 .annotate 'line', 177
-    set_addr $I10, alt320_1
-    rx314_cur."!mark_push"(0, rx314_pos, $I10)
+    set_addr $I10, alt297_1
+    rx291_cur."!mark_push"(0, rx291_pos, $I10)
 .annotate 'line', 178
   # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
   # rx subcapture "wu"
-    set_addr $I10, rxcap_323_fail
-    rx314_cur."!mark_push"(0, rx314_pos, $I10)
-  alt322_0:
-    set_addr $I10, alt322_1
-    rx314_cur."!mark_push"(0, rx314_pos, $I10)
+    set_addr $I10, rxcap_300_fail
+    rx291_cur."!mark_push"(0, rx291_pos, $I10)
+  alt299_0:
+    set_addr $I10, alt299_1
+    rx291_cur."!mark_push"(0, rx291_pos, $I10)
   # rx literal  "while"
-    add $I11, rx314_pos, 5
-    gt $I11, rx314_eos, rx314_fail
-    sub $I11, rx314_pos, rx314_off
-    substr $S10, rx314_tgt, $I11, 5
-    ne $S10, "while", rx314_fail
-    add rx314_pos, 5
-    goto alt322_end
-  alt322_1:
+    add $I11, rx291_pos, 5
+    gt $I11, rx291_eos, rx291_fail
+    sub $I11, rx291_pos, rx291_off
+    substr $S10, rx291_tgt, $I11, 5
+    ne $S10, "while", rx291_fail
+    add rx291_pos, 5
+    goto alt299_end
+  alt299_1:
   # rx literal  "until"
-    add $I11, rx314_pos, 5
-    gt $I11, rx314_eos, rx314_fail
-    sub $I11, rx314_pos, rx314_off
-    substr $S10, rx314_tgt, $I11, 5
-    ne $S10, "until", rx314_fail
-    add rx314_pos, 5
-  alt322_end:
-    set_addr $I10, rxcap_323_fail
-    ($I12, $I11) = rx314_cur."!mark_peek"($I10)
-    rx314_cur."!cursor_pos"($I11)
-    ($P10) = rx314_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx314_pos, "")
-    rx314_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx291_pos, 5
+    gt $I11, rx291_eos, rx291_fail
+    sub $I11, rx291_pos, rx291_off
+    substr $S10, rx291_tgt, $I11, 5
+    ne $S10, "until", rx291_fail
+    add rx291_pos, 5
+  alt299_end:
+    set_addr $I10, rxcap_300_fail
+    ($I12, $I11) = rx291_cur."!mark_peek"($I10)
+    rx291_cur."!cursor_pos"($I11)
+    ($P10) = rx291_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx291_pos, "")
+    rx291_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("wu")
-    goto rxcap_323_done
-  rxcap_323_fail:
-    goto rx314_fail
-  rxcap_323_done:
+    goto rxcap_300_done
+  rxcap_300_fail:
+    goto rx291_fail
+  rxcap_300_done:
   # rx charclass s
-    ge rx314_pos, rx314_eos, rx314_fail
-    sub $I10, rx314_pos, rx314_off
-    is_cclass $I11, 32, rx314_tgt, $I10
-    unless $I11, rx314_fail
-    inc rx314_pos
-  # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
+    ge rx291_pos, rx291_eos, rx291_fail
+    sub $I10, rx291_pos, rx291_off
+    is_cclass $I11, 32, rx291_tgt, $I10
+    unless $I11, rx291_fail
+    inc rx291_pos
+  # rx subrule "ws" subtype=method negate=
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
   # rx subrule "xblock" subtype=capture negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."xblock"()
-    unless $P10, rx314_fail
-    rx314_cur."!mark_push"(0, -1, 0, $P10)
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."xblock"()
+    unless $P10, rx291_fail
+    rx291_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx314_pos = $P10."pos"()
+    rx291_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
-    goto alt320_end
-  alt320_1:
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
+    goto alt297_end
+  alt297_1:
 .annotate 'line', 179
   # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
   # rx subrule "pblock" subtype=capture negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."pblock"()
-    unless $P10, rx314_fail
-    rx314_cur."!mark_push"(0, -1, 0, $P10)
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."pblock"()
+    unless $P10, rx291_fail
+    rx291_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pblock")
-    rx314_pos = $P10."pos"()
+    rx291_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
   # rx subcapture "wu"
-    set_addr $I10, rxcap_329_fail
-    rx314_cur."!mark_push"(0, rx314_pos, $I10)
-  alt328_0:
-    set_addr $I10, alt328_1
-    rx314_cur."!mark_push"(0, rx314_pos, $I10)
+    set_addr $I10, rxcap_306_fail
+    rx291_cur."!mark_push"(0, rx291_pos, $I10)
+  alt305_0:
+    set_addr $I10, alt305_1
+    rx291_cur."!mark_push"(0, rx291_pos, $I10)
   # rx literal  "while"
-    add $I11, rx314_pos, 5
-    gt $I11, rx314_eos, rx314_fail
-    sub $I11, rx314_pos, rx314_off
-    substr $S10, rx314_tgt, $I11, 5
-    ne $S10, "while", rx314_fail
-    add rx314_pos, 5
-    goto alt328_end
-  alt328_1:
+    add $I11, rx291_pos, 5
+    gt $I11, rx291_eos, rx291_fail
+    sub $I11, rx291_pos, rx291_off
+    substr $S10, rx291_tgt, $I11, 5
+    ne $S10, "while", rx291_fail
+    add rx291_pos, 5
+    goto alt305_end
+  alt305_1:
   # rx literal  "until"
-    add $I11, rx314_pos, 5
-    gt $I11, rx314_eos, rx314_fail
-    sub $I11, rx314_pos, rx314_off
-    substr $S10, rx314_tgt, $I11, 5
-    ne $S10, "until", rx314_fail
-    add rx314_pos, 5
-  alt328_end:
-    set_addr $I10, rxcap_329_fail
-    ($I12, $I11) = rx314_cur."!mark_peek"($I10)
-    rx314_cur."!cursor_pos"($I11)
-    ($P10) = rx314_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx314_pos, "")
-    rx314_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx291_pos, 5
+    gt $I11, rx291_eos, rx291_fail
+    sub $I11, rx291_pos, rx291_off
+    substr $S10, rx291_tgt, $I11, 5
+    ne $S10, "until", rx291_fail
+    add rx291_pos, 5
+  alt305_end:
+    set_addr $I10, rxcap_306_fail
+    ($I12, $I11) = rx291_cur."!mark_peek"($I10)
+    rx291_cur."!cursor_pos"($I11)
+    ($P10) = rx291_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx291_pos, "")
+    rx291_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("wu")
-    goto rxcap_329_done
-  rxcap_329_fail:
-    goto rx314_fail
-  rxcap_329_done:
+    goto rxcap_306_done
+  rxcap_306_fail:
+    goto rx291_fail
+  rxcap_306_done:
   # rx charclass s
-    ge rx314_pos, rx314_eos, rx314_fail
-    sub $I10, rx314_pos, rx314_off
-    is_cclass $I11, 32, rx314_tgt, $I10
-    unless $I11, rx314_fail
-    inc rx314_pos
-  # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
+    ge rx291_pos, rx291_eos, rx291_fail
+    sub $I10, rx291_pos, rx291_off
+    is_cclass $I11, 32, rx291_tgt, $I10
+    unless $I11, rx291_fail
+    inc rx291_pos
+  # rx subrule "ws" subtype=method negate=
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."EXPR"()
-    unless $P10, rx314_fail
-    rx314_cur."!mark_push"(0, -1, 0, $P10)
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."EXPR"()
+    unless $P10, rx291_fail
+    rx291_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx314_pos = $P10."pos"()
+    rx291_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
-  alt320_end:
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
+  alt297_end:
 .annotate 'line', 180
   # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
 .annotate 'line', 175
   # rx pass
-    rx314_cur."!cursor_pass"(rx314_pos, "statement_control:sym<repeat>")
-    rx314_cur."!cursor_debug"("PASS  ", "statement_control:sym<repeat>", " at pos=", rx314_pos)
-    .return (rx314_cur)
-  rx314_fail:
+    rx291_cur."!cursor_pass"(rx291_pos, "statement_control:sym<repeat>")
+    rx291_cur."!cursor_debug"("PASS  ", "statement_control:sym<repeat>", " at pos=", rx291_pos)
+    .return (rx291_cur)
+  rx291_restart:
 .annotate 'line', 4
-    (rx314_rep, rx314_pos, $I10, $P10) = rx314_cur."!mark_fail"(0)
-    lt rx314_pos, -1, rx314_done
-    eq rx314_pos, -1, rx314_fail
+    rx291_cur."!cursor_debug"("NEXT ", "statement_control:sym<repeat>")
+  rx291_fail:
+    (rx291_rep, rx291_pos, $I10, $P10) = rx291_cur."!mark_fail"(0)
+    lt rx291_pos, -1, rx291_done
+    eq rx291_pos, -1, rx291_fail
     jump $I10
-  rx314_done:
-    rx314_cur."!cursor_fail"()
-    rx314_cur."!cursor_debug"("FAIL  ", "statement_control:sym<repeat>")
-    .return (rx314_cur)
+  rx291_done:
+    rx291_cur."!cursor_fail"()
+    rx291_cur."!cursor_debug"("FAIL  ", "statement_control:sym<repeat>")
+    .return (rx291_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>"  :subid("70_1277356913.9538") :method
+.sub "!PREFIX__statement_control:sym<repeat>"  :subid("70_1280467477.44751") :method
 .annotate 'line', 4
-    new $P316, "ResizablePMCArray"
-    push $P316, "repeat"
-    .return ($P316)
+    new $P293, "ResizablePMCArray"
+    push $P293, "repeat"
+    .return ($P293)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<for>"  :subid("71_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "statement_control:sym<for>"  :subid("71_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx334_tgt
-    .local int rx334_pos
-    .local int rx334_off
-    .local int rx334_eos
-    .local int rx334_rep
-    .local pmc rx334_cur
-    (rx334_cur, rx334_pos, rx334_tgt) = self."!cursor_start"()
-    rx334_cur."!cursor_debug"("START ", "statement_control:sym<for>")
-    .lex unicode:"$\x{a2}", rx334_cur
+    .local string rx311_tgt
+    .local int rx311_pos
+    .local int rx311_off
+    .local int rx311_eos
+    .local int rx311_rep
+    .local pmc rx311_cur
+    (rx311_cur, rx311_pos, rx311_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx311_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:
+    length rx311_eos, rx311_tgt
+    gt rx311_pos, rx311_eos, rx311_done
+    set rx311_off, 0
+    lt rx311_pos, 2, rx311_start
+    sub rx311_off, rx311_pos, 1
+    substr rx311_tgt, rx311_tgt, rx311_off
+  rx311_start:
+    eq $I10, 1, rx311_restart
+    rx311_cur."!cursor_debug"("START ", "statement_control:sym<for>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan337_done
-    goto rxscan337_scan
-  rxscan337_loop:
-    ($P10) = rx334_cur."from"()
+    ne $I10, -1, rxscan314_done
+    goto rxscan314_scan
+  rxscan314_loop:
+    ($P10) = rx311_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:
+    set rx311_pos, $P10
+    ge rx311_pos, rx311_eos, rxscan314_done
+  rxscan314_scan:
+    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_338_fail
-    rx334_cur."!mark_push"(0, rx334_pos, $I10)
+    set_addr $I10, rxcap_315_fail
+    rx311_cur."!mark_push"(0, rx311_pos, $I10)
   # rx literal  "for"
-    add $I11, rx334_pos, 3
-    gt $I11, rx334_eos, rx334_fail
-    sub $I11, rx334_pos, rx334_off
-    substr $S10, rx334_tgt, $I11, 3
-    ne $S10, "for", rx334_fail
-    add rx334_pos, 3
-    set_addr $I10, rxcap_338_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)
+    add $I11, rx311_pos, 3
+    gt $I11, rx311_eos, rx311_fail
+    sub $I11, rx311_pos, rx311_off
+    substr $S10, rx311_tgt, $I11, 3
+    ne $S10, "for", rx311_fail
+    add rx311_pos, 3
+    set_addr $I10, rxcap_315_fail
+    ($I12, $I11) = rx311_cur."!mark_peek"($I10)
+    rx311_cur."!cursor_pos"($I11)
+    ($P10) = rx311_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx311_pos, "")
+    rx311_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_338_done
-  rxcap_338_fail:
-    goto rx334_fail
-  rxcap_338_done:
+    goto rxcap_315_done
+  rxcap_315_fail:
+    goto rx311_fail
+  rxcap_315_done:
   # rx charclass s
-    ge rx334_pos, rx334_eos, rx334_fail
-    sub $I10, rx334_pos, rx334_off
-    is_cclass $I11, 32, rx334_tgt, $I10
-    unless $I11, rx334_fail
-    inc rx334_pos
-  # rx subrule "ws" subtype=method negate=
-    rx334_cur."!cursor_pos"(rx334_pos)
-    $P10 = rx334_cur."ws"()
-    unless $P10, rx334_fail
-    rx334_pos = $P10."pos"()
+    ge rx311_pos, rx311_eos, rx311_fail
+    sub $I10, rx311_pos, rx311_off
+    is_cclass $I11, 32, rx311_tgt, $I10
+    unless $I11, rx311_fail
+    inc rx311_pos
+  # rx subrule "ws" subtype=method negate=
+    rx311_cur."!cursor_pos"(rx311_pos)
+    $P10 = rx311_cur."ws"()
+    unless $P10, rx311_fail
+    rx311_pos = $P10."pos"()
 .annotate 'line', 185
   # rx subrule "xblock" subtype=capture negate=
-    rx334_cur."!cursor_pos"(rx334_pos)
-    $P10 = rx334_cur."xblock"()
-    unless $P10, rx334_fail
-    rx334_cur."!mark_push"(0, -1, 0, $P10)
+    rx311_cur."!cursor_pos"(rx311_pos)
+    $P10 = rx311_cur."xblock"()
+    unless $P10, rx311_fail
+    rx311_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx334_pos = $P10."pos"()
+    rx311_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx334_cur."!cursor_pos"(rx334_pos)
-    $P10 = rx334_cur."ws"()
-    unless $P10, rx334_fail
-    rx334_pos = $P10."pos"()
+    rx311_cur."!cursor_pos"(rx311_pos)
+    $P10 = rx311_cur."ws"()
+    unless $P10, rx311_fail
+    rx311_pos = $P10."pos"()
 .annotate 'line', 183
   # rx pass
-    rx334_cur."!cursor_pass"(rx334_pos, "statement_control:sym<for>")
-    rx334_cur."!cursor_debug"("PASS  ", "statement_control:sym<for>", " at pos=", rx334_pos)
-    .return (rx334_cur)
-  rx334_fail:
+    rx311_cur."!cursor_pass"(rx311_pos, "statement_control:sym<for>")
+    rx311_cur."!cursor_debug"("PASS  ", "statement_control:sym<for>", " at pos=", rx311_pos)
+    .return (rx311_cur)
+  rx311_restart:
 .annotate 'line', 4
-    (rx334_rep, rx334_pos, $I10, $P10) = rx334_cur."!mark_fail"(0)
-    lt rx334_pos, -1, rx334_done
-    eq rx334_pos, -1, rx334_fail
+    rx311_cur."!cursor_debug"("NEXT ", "statement_control:sym<for>")
+  rx311_fail:
+    (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0)
+    lt rx311_pos, -1, rx311_done
+    eq rx311_pos, -1, rx311_fail
     jump $I10
-  rx334_done:
-    rx334_cur."!cursor_fail"()
-    rx334_cur."!cursor_debug"("FAIL  ", "statement_control:sym<for>")
-    .return (rx334_cur)
+  rx311_done:
+    rx311_cur."!cursor_fail"()
+    rx311_cur."!cursor_debug"("FAIL  ", "statement_control:sym<for>")
+    .return (rx311_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>"  :subid("72_1277356913.9538") :method
+.sub "!PREFIX__statement_control:sym<for>"  :subid("72_1280467477.44751") :method
 .annotate 'line', 4
-    new $P336, "ResizablePMCArray"
-    push $P336, "for"
-    .return ($P336)
+    new $P313, "ResizablePMCArray"
+    push $P313, "for"
+    .return ($P313)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CATCH>"  :subid("73_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "statement_control:sym<CATCH>"  :subid("73_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx342_tgt
-    .local int rx342_pos
-    .local int rx342_off
-    .local int rx342_eos
-    .local int rx342_rep
-    .local pmc rx342_cur
-    (rx342_cur, rx342_pos, rx342_tgt) = self."!cursor_start"()
-    rx342_cur."!cursor_debug"("START ", "statement_control:sym<CATCH>")
-    .lex unicode:"$\x{a2}", rx342_cur
+    .local string rx319_tgt
+    .local int rx319_pos
+    .local int rx319_off
+    .local int rx319_eos
+    .local int rx319_rep
+    .local pmc rx319_cur
+    (rx319_cur, rx319_pos, rx319_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx319_cur
     .local pmc match
     .lex "$/", match
-    length rx342_eos, rx342_tgt
-    gt rx342_pos, rx342_eos, rx342_done
-    set rx342_off, 0
-    lt rx342_pos, 2, rx342_start
-    sub rx342_off, rx342_pos, 1
-    substr rx342_tgt, rx342_tgt, rx342_off
-  rx342_start:
+    length rx319_eos, rx319_tgt
+    gt rx319_pos, rx319_eos, rx319_done
+    set rx319_off, 0
+    lt rx319_pos, 2, rx319_start
+    sub rx319_off, rx319_pos, 1
+    substr rx319_tgt, rx319_tgt, rx319_off
+  rx319_start:
+    eq $I10, 1, rx319_restart
+    rx319_cur."!cursor_debug"("START ", "statement_control:sym<CATCH>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan345_done
-    goto rxscan345_scan
-  rxscan345_loop:
-    ($P10) = rx342_cur."from"()
+    ne $I10, -1, rxscan322_done
+    goto rxscan322_scan
+  rxscan322_loop:
+    ($P10) = rx319_cur."from"()
     inc $P10
-    set rx342_pos, $P10
-    ge rx342_pos, rx342_eos, rxscan345_done
-  rxscan345_scan:
-    set_addr $I10, rxscan345_loop
-    rx342_cur."!mark_push"(0, rx342_pos, $I10)
-  rxscan345_done:
+    set rx319_pos, $P10
+    ge rx319_pos, rx319_eos, rxscan322_done
+  rxscan322_scan:
+    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_346_fail
-    rx342_cur."!mark_push"(0, rx342_pos, $I10)
+    set_addr $I10, rxcap_323_fail
+    rx319_cur."!mark_push"(0, rx319_pos, $I10)
   # rx literal  "CATCH"
-    add $I11, rx342_pos, 5
-    gt $I11, rx342_eos, rx342_fail
-    sub $I11, rx342_pos, rx342_off
-    substr $S10, rx342_tgt, $I11, 5
-    ne $S10, "CATCH", rx342_fail
-    add rx342_pos, 5
-    set_addr $I10, rxcap_346_fail
-    ($I12, $I11) = rx342_cur."!mark_peek"($I10)
-    rx342_cur."!cursor_pos"($I11)
-    ($P10) = rx342_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx342_pos, "")
-    rx342_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx319_pos, 5
+    gt $I11, rx319_eos, rx319_fail
+    sub $I11, rx319_pos, rx319_off
+    substr $S10, rx319_tgt, $I11, 5
+    ne $S10, "CATCH", rx319_fail
+    add rx319_pos, 5
+    set_addr $I10, rxcap_323_fail
+    ($I12, $I11) = rx319_cur."!mark_peek"($I10)
+    rx319_cur."!cursor_pos"($I11)
+    ($P10) = rx319_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx319_pos, "")
+    rx319_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_346_done
-  rxcap_346_fail:
-    goto rx342_fail
-  rxcap_346_done:
+    goto rxcap_323_done
+  rxcap_323_fail:
+    goto rx319_fail
+  rxcap_323_done:
   # rx charclass s
-    ge rx342_pos, rx342_eos, rx342_fail
-    sub $I10, rx342_pos, rx342_off
-    is_cclass $I11, 32, rx342_tgt, $I10
-    unless $I11, rx342_fail
-    inc rx342_pos
-  # rx subrule "ws" subtype=method negate=
-    rx342_cur."!cursor_pos"(rx342_pos)
-    $P10 = rx342_cur."ws"()
-    unless $P10, rx342_fail
-    rx342_pos = $P10."pos"()
+    ge rx319_pos, rx319_eos, rx319_fail
+    sub $I10, rx319_pos, rx319_off
+    is_cclass $I11, 32, rx319_tgt, $I10
+    unless $I11, rx319_fail
+    inc rx319_pos
+  # rx subrule "ws" subtype=method negate=
+    rx319_cur."!cursor_pos"(rx319_pos)
+    $P10 = rx319_cur."ws"()
+    unless $P10, rx319_fail
+    rx319_pos = $P10."pos"()
 .annotate 'line', 190
   # rx subrule "block" subtype=capture negate=
-    rx342_cur."!cursor_pos"(rx342_pos)
-    $P10 = rx342_cur."block"()
-    unless $P10, rx342_fail
-    rx342_cur."!mark_push"(0, -1, 0, $P10)
+    rx319_cur."!cursor_pos"(rx319_pos)
+    $P10 = rx319_cur."block"()
+    unless $P10, rx319_fail
+    rx319_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx342_pos = $P10."pos"()
+    rx319_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx342_cur."!cursor_pos"(rx342_pos)
-    $P10 = rx342_cur."ws"()
-    unless $P10, rx342_fail
-    rx342_pos = $P10."pos"()
+    rx319_cur."!cursor_pos"(rx319_pos)
+    $P10 = rx319_cur."ws"()
+    unless $P10, rx319_fail
+    rx319_pos = $P10."pos"()
 .annotate 'line', 188
   # rx pass
-    rx342_cur."!cursor_pass"(rx342_pos, "statement_control:sym<CATCH>")
-    rx342_cur."!cursor_debug"("PASS  ", "statement_control:sym<CATCH>", " at pos=", rx342_pos)
-    .return (rx342_cur)
-  rx342_fail:
+    rx319_cur."!cursor_pass"(rx319_pos, "statement_control:sym<CATCH>")
+    rx319_cur."!cursor_debug"("PASS  ", "statement_control:sym<CATCH>", " at pos=", rx319_pos)
+    .return (rx319_cur)
+  rx319_restart:
 .annotate 'line', 4
-    (rx342_rep, rx342_pos, $I10, $P10) = rx342_cur."!mark_fail"(0)
-    lt rx342_pos, -1, rx342_done
-    eq rx342_pos, -1, rx342_fail
+    rx319_cur."!cursor_debug"("NEXT ", "statement_control:sym<CATCH>")
+  rx319_fail:
+    (rx319_rep, rx319_pos, $I10, $P10) = rx319_cur."!mark_fail"(0)
+    lt rx319_pos, -1, rx319_done
+    eq rx319_pos, -1, rx319_fail
     jump $I10
-  rx342_done:
-    rx342_cur."!cursor_fail"()
-    rx342_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CATCH>")
-    .return (rx342_cur)
+  rx319_done:
+    rx319_cur."!cursor_fail"()
+    rx319_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CATCH>")
+    .return (rx319_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("74_1277356913.9538") :method
+.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("74_1280467477.44751") :method
 .annotate 'line', 4
-    new $P344, "ResizablePMCArray"
-    push $P344, "CATCH"
-    .return ($P344)
+    new $P321, "ResizablePMCArray"
+    push $P321, "CATCH"
+    .return ($P321)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CONTROL>"  :subid("75_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "statement_control:sym<CONTROL>"  :subid("75_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx350_tgt
-    .local int rx350_pos
-    .local int rx350_off
-    .local int rx350_eos
-    .local int rx350_rep
-    .local pmc rx350_cur
-    (rx350_cur, rx350_pos, rx350_tgt) = self."!cursor_start"()
-    rx350_cur."!cursor_debug"("START ", "statement_control:sym<CONTROL>")
-    .lex unicode:"$\x{a2}", rx350_cur
+    .local string rx327_tgt
+    .local int rx327_pos
+    .local int rx327_off
+    .local int rx327_eos
+    .local int rx327_rep
+    .local pmc rx327_cur
+    (rx327_cur, rx327_pos, rx327_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx327_cur
     .local pmc match
     .lex "$/", match
-    length rx350_eos, rx350_tgt
-    gt rx350_pos, rx350_eos, rx350_done
-    set rx350_off, 0
-    lt rx350_pos, 2, rx350_start
-    sub rx350_off, rx350_pos, 1
-    substr rx350_tgt, rx350_tgt, rx350_off
-  rx350_start:
+    length rx327_eos, rx327_tgt
+    gt rx327_pos, rx327_eos, rx327_done
+    set rx327_off, 0
+    lt rx327_pos, 2, rx327_start
+    sub rx327_off, rx327_pos, 1
+    substr rx327_tgt, rx327_tgt, rx327_off
+  rx327_start:
+    eq $I10, 1, rx327_restart
+    rx327_cur."!cursor_debug"("START ", "statement_control:sym<CONTROL>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan353_done
-    goto rxscan353_scan
-  rxscan353_loop:
-    ($P10) = rx350_cur."from"()
+    ne $I10, -1, rxscan330_done
+    goto rxscan330_scan
+  rxscan330_loop:
+    ($P10) = rx327_cur."from"()
     inc $P10
-    set rx350_pos, $P10
-    ge rx350_pos, rx350_eos, rxscan353_done
-  rxscan353_scan:
-    set_addr $I10, rxscan353_loop
-    rx350_cur."!mark_push"(0, rx350_pos, $I10)
-  rxscan353_done:
+    set rx327_pos, $P10
+    ge rx327_pos, rx327_eos, rxscan330_done
+  rxscan330_scan:
+    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_354_fail
-    rx350_cur."!mark_push"(0, rx350_pos, $I10)
+    set_addr $I10, rxcap_331_fail
+    rx327_cur."!mark_push"(0, rx327_pos, $I10)
   # rx literal  "CONTROL"
-    add $I11, rx350_pos, 7
-    gt $I11, rx350_eos, rx350_fail
-    sub $I11, rx350_pos, rx350_off
-    substr $S10, rx350_tgt, $I11, 7
-    ne $S10, "CONTROL", rx350_fail
-    add rx350_pos, 7
-    set_addr $I10, rxcap_354_fail
-    ($I12, $I11) = rx350_cur."!mark_peek"($I10)
-    rx350_cur."!cursor_pos"($I11)
-    ($P10) = rx350_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx350_pos, "")
-    rx350_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx327_pos, 7
+    gt $I11, rx327_eos, rx327_fail
+    sub $I11, rx327_pos, rx327_off
+    substr $S10, rx327_tgt, $I11, 7
+    ne $S10, "CONTROL", rx327_fail
+    add rx327_pos, 7
+    set_addr $I10, rxcap_331_fail
+    ($I12, $I11) = rx327_cur."!mark_peek"($I10)
+    rx327_cur."!cursor_pos"($I11)
+    ($P10) = rx327_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx327_pos, "")
+    rx327_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_354_done
-  rxcap_354_fail:
-    goto rx350_fail
-  rxcap_354_done:
+    goto rxcap_331_done
+  rxcap_331_fail:
+    goto rx327_fail
+  rxcap_331_done:
   # rx charclass s
-    ge rx350_pos, rx350_eos, rx350_fail
-    sub $I10, rx350_pos, rx350_off
-    is_cclass $I11, 32, rx350_tgt, $I10
-    unless $I11, rx350_fail
-    inc rx350_pos
-  # rx subrule "ws" subtype=method negate=
-    rx350_cur."!cursor_pos"(rx350_pos)
-    $P10 = rx350_cur."ws"()
-    unless $P10, rx350_fail
-    rx350_pos = $P10."pos"()
+    ge rx327_pos, rx327_eos, rx327_fail
+    sub $I10, rx327_pos, rx327_off
+    is_cclass $I11, 32, rx327_tgt, $I10
+    unless $I11, rx327_fail
+    inc rx327_pos
+  # rx subrule "ws" subtype=method negate=
+    rx327_cur."!cursor_pos"(rx327_pos)
+    $P10 = rx327_cur."ws"()
+    unless $P10, rx327_fail
+    rx327_pos = $P10."pos"()
 .annotate 'line', 195
   # rx subrule "block" subtype=capture negate=
-    rx350_cur."!cursor_pos"(rx350_pos)
-    $P10 = rx350_cur."block"()
-    unless $P10, rx350_fail
-    rx350_cur."!mark_push"(0, -1, 0, $P10)
+    rx327_cur."!cursor_pos"(rx327_pos)
+    $P10 = rx327_cur."block"()
+    unless $P10, rx327_fail
+    rx327_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx350_pos = $P10."pos"()
+    rx327_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx350_cur."!cursor_pos"(rx350_pos)
-    $P10 = rx350_cur."ws"()
-    unless $P10, rx350_fail
-    rx350_pos = $P10."pos"()
+    rx327_cur."!cursor_pos"(rx327_pos)
+    $P10 = rx327_cur."ws"()
+    unless $P10, rx327_fail
+    rx327_pos = $P10."pos"()
 .annotate 'line', 193
   # rx pass
-    rx350_cur."!cursor_pass"(rx350_pos, "statement_control:sym<CONTROL>")
-    rx350_cur."!cursor_debug"("PASS  ", "statement_control:sym<CONTROL>", " at pos=", rx350_pos)
-    .return (rx350_cur)
-  rx350_fail:
+    rx327_cur."!cursor_pass"(rx327_pos, "statement_control:sym<CONTROL>")
+    rx327_cur."!cursor_debug"("PASS  ", "statement_control:sym<CONTROL>", " at pos=", rx327_pos)
+    .return (rx327_cur)
+  rx327_restart:
 .annotate 'line', 4
-    (rx350_rep, rx350_pos, $I10, $P10) = rx350_cur."!mark_fail"(0)
-    lt rx350_pos, -1, rx350_done
-    eq rx350_pos, -1, rx350_fail
+    rx327_cur."!cursor_debug"("NEXT ", "statement_control:sym<CONTROL>")
+  rx327_fail:
+    (rx327_rep, rx327_pos, $I10, $P10) = rx327_cur."!mark_fail"(0)
+    lt rx327_pos, -1, rx327_done
+    eq rx327_pos, -1, rx327_fail
     jump $I10
-  rx350_done:
-    rx350_cur."!cursor_fail"()
-    rx350_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CONTROL>")
-    .return (rx350_cur)
+  rx327_done:
+    rx327_cur."!cursor_fail"()
+    rx327_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CONTROL>")
+    .return (rx327_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("76_1277356913.9538") :method
+.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("76_1280467477.44751") :method
 .annotate 'line', 4
-    new $P352, "ResizablePMCArray"
-    push $P352, "CONTROL"
-    .return ($P352)
+    new $P329, "ResizablePMCArray"
+    push $P329, "CONTROL"
+    .return ($P329)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix"  :subid("77_1277356913.9538") :method
+.sub "statement_prefix"  :subid("77_1280467477.44751") :method
 .annotate 'line', 198
-    $P358 = self."!protoregex"("statement_prefix")
-    .return ($P358)
+    $P335 = self."!protoregex"("statement_prefix")
+    .return ($P335)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix"  :subid("78_1277356913.9538") :method
+.sub "!PREFIX__statement_prefix"  :subid("78_1280467477.44751") :method
 .annotate 'line', 198
-    $P360 = self."!PREFIX__!protoregex"("statement_prefix")
-    .return ($P360)
+    $P337 = self."!PREFIX__!protoregex"("statement_prefix")
+    .return ($P337)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<INIT>"  :subid("79_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "statement_prefix:sym<INIT>"  :subid("79_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx362_tgt
-    .local int rx362_pos
-    .local int rx362_off
-    .local int rx362_eos
-    .local int rx362_rep
-    .local pmc rx362_cur
-    (rx362_cur, rx362_pos, rx362_tgt) = self."!cursor_start"()
-    rx362_cur."!cursor_debug"("START ", "statement_prefix:sym<INIT>")
-    .lex unicode:"$\x{a2}", rx362_cur
-    .local pmc match
-    .lex "$/", match
-    length rx362_eos, rx362_tgt
-    gt rx362_pos, rx362_eos, rx362_done
-    set rx362_off, 0
-    lt rx362_pos, 2, rx362_start
-    sub rx362_off, rx362_pos, 1
-    substr rx362_tgt, rx362_tgt, rx362_off
-  rx362_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan366_done
-    goto rxscan366_scan
-  rxscan366_loop:
-    ($P10) = rx362_cur."from"()
-    inc $P10
-    set rx362_pos, $P10
-    ge rx362_pos, rx362_eos, rxscan366_done
-  rxscan366_scan:
-    set_addr $I10, rxscan366_loop
-    rx362_cur."!mark_push"(0, rx362_pos, $I10)
-  rxscan366_done:
+    .local string rx339_tgt
+    .local int rx339_pos
+    .local int rx339_off
+    .local int rx339_eos
+    .local int rx339_rep
+    .local pmc rx339_cur
+    (rx339_cur, rx339_pos, rx339_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx339_cur
+    .local pmc match
+    .lex "$/", match
+    length rx339_eos, rx339_tgt
+    gt rx339_pos, rx339_eos, rx339_done
+    set rx339_off, 0
+    lt rx339_pos, 2, rx339_start
+    sub rx339_off, rx339_pos, 1
+    substr rx339_tgt, rx339_tgt, rx339_off
+  rx339_start:
+    eq $I10, 1, rx339_restart
+    rx339_cur."!cursor_debug"("START ", "statement_prefix:sym<INIT>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan343_done
+    goto rxscan343_scan
+  rxscan343_loop:
+    ($P10) = rx339_cur."from"()
+    inc $P10
+    set rx339_pos, $P10
+    ge rx339_pos, rx339_eos, rxscan343_done
+  rxscan343_scan:
+    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_367_fail
-    rx362_cur."!mark_push"(0, rx362_pos, $I10)
+    set_addr $I10, rxcap_344_fail
+    rx339_cur."!mark_push"(0, rx339_pos, $I10)
   # rx literal  "INIT"
-    add $I11, rx362_pos, 4
-    gt $I11, rx362_eos, rx362_fail
-    sub $I11, rx362_pos, rx362_off
-    substr $S10, rx362_tgt, $I11, 4
-    ne $S10, "INIT", rx362_fail
-    add rx362_pos, 4
-    set_addr $I10, rxcap_367_fail
-    ($I12, $I11) = rx362_cur."!mark_peek"($I10)
-    rx362_cur."!cursor_pos"($I11)
-    ($P10) = rx362_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx362_pos, "")
-    rx362_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx339_pos, 4
+    gt $I11, rx339_eos, rx339_fail
+    sub $I11, rx339_pos, rx339_off
+    substr $S10, rx339_tgt, $I11, 4
+    ne $S10, "INIT", rx339_fail
+    add rx339_pos, 4
+    set_addr $I10, rxcap_344_fail
+    ($I12, $I11) = rx339_cur."!mark_peek"($I10)
+    rx339_cur."!cursor_pos"($I11)
+    ($P10) = rx339_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx339_pos, "")
+    rx339_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_367_done
-  rxcap_367_fail:
-    goto rx362_fail
-  rxcap_367_done:
+    goto rxcap_344_done
+  rxcap_344_fail:
+    goto rx339_fail
+  rxcap_344_done:
   # rx subrule "blorst" subtype=capture negate=
-    rx362_cur."!cursor_pos"(rx362_pos)
-    $P10 = rx362_cur."blorst"()
-    unless $P10, rx362_fail
-    rx362_cur."!mark_push"(0, -1, 0, $P10)
+    rx339_cur."!cursor_pos"(rx339_pos)
+    $P10 = rx339_cur."blorst"()
+    unless $P10, rx339_fail
+    rx339_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blorst")
-    rx362_pos = $P10."pos"()
+    rx339_pos = $P10."pos"()
   # rx pass
-    rx362_cur."!cursor_pass"(rx362_pos, "statement_prefix:sym<INIT>")
-    rx362_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<INIT>", " at pos=", rx362_pos)
-    .return (rx362_cur)
-  rx362_fail:
+    rx339_cur."!cursor_pass"(rx339_pos, "statement_prefix:sym<INIT>")
+    rx339_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<INIT>", " at pos=", rx339_pos)
+    .return (rx339_cur)
+  rx339_restart:
 .annotate 'line', 4
-    (rx362_rep, rx362_pos, $I10, $P10) = rx362_cur."!mark_fail"(0)
-    lt rx362_pos, -1, rx362_done
-    eq rx362_pos, -1, rx362_fail
+    rx339_cur."!cursor_debug"("NEXT ", "statement_prefix:sym<INIT>")
+  rx339_fail:
+    (rx339_rep, rx339_pos, $I10, $P10) = rx339_cur."!mark_fail"(0)
+    lt rx339_pos, -1, rx339_done
+    eq rx339_pos, -1, rx339_fail
     jump $I10
-  rx362_done:
-    rx362_cur."!cursor_fail"()
-    rx362_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<INIT>")
-    .return (rx362_cur)
+  rx339_done:
+    rx339_cur."!cursor_fail"()
+    rx339_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<INIT>")
+    .return (rx339_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("80_1277356913.9538") :method
+.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("80_1280467477.44751") :method
 .annotate 'line', 4
-    $P364 = self."!PREFIX__!subrule"("blorst", "INIT")
-    new $P365, "ResizablePMCArray"
-    push $P365, $P364
-    .return ($P365)
+    $P341 = self."!PREFIX__!subrule"("blorst", "INIT")
+    new $P342, "ResizablePMCArray"
+    push $P342, $P341
+    .return ($P342)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<try>"  :subid("81_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "statement_prefix:sym<try>"  :subid("81_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx369_tgt
-    .local int rx369_pos
-    .local int rx369_off
-    .local int rx369_eos
-    .local int rx369_rep
-    .local pmc rx369_cur
-    (rx369_cur, rx369_pos, rx369_tgt) = self."!cursor_start"()
-    rx369_cur."!cursor_debug"("START ", "statement_prefix:sym<try>")
-    .lex unicode:"$\x{a2}", rx369_cur
+    .local string rx346_tgt
+    .local int rx346_pos
+    .local int rx346_off
+    .local int rx346_eos
+    .local int rx346_rep
+    .local pmc rx346_cur
+    (rx346_cur, rx346_pos, rx346_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx346_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:
+    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
+    rx346_cur."!cursor_debug"("START ", "statement_prefix:sym<try>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan373_done
-    goto rxscan373_scan
-  rxscan373_loop:
-    ($P10) = rx369_cur."from"()
+    ne $I10, -1, rxscan350_done
+    goto rxscan350_scan
+  rxscan350_loop:
+    ($P10) = rx346_cur."from"()
     inc $P10
-    set rx369_pos, $P10
-    ge rx369_pos, rx369_eos, rxscan373_done
-  rxscan373_scan:
-    set_addr $I10, rxscan373_loop
-    rx369_cur."!mark_push"(0, rx369_pos, $I10)
-  rxscan373_done:
+    set rx346_pos, $P10
+    ge rx346_pos, rx346_eos, rxscan350_done
+  rxscan350_scan:
+    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_374_fail
-    rx369_cur."!mark_push"(0, rx369_pos, $I10)
+    set_addr $I10, rxcap_351_fail
+    rx346_cur."!mark_push"(0, rx346_pos, $I10)
   # rx literal  "try"
-    add $I11, rx369_pos, 3
-    gt $I11, rx369_eos, rx369_fail
-    sub $I11, rx369_pos, rx369_off
-    substr $S10, rx369_tgt, $I11, 3
-    ne $S10, "try", rx369_fail
-    add rx369_pos, 3
-    set_addr $I10, rxcap_374_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)
+    add $I11, rx346_pos, 3
+    gt $I11, rx346_eos, rx346_fail
+    sub $I11, rx346_pos, rx346_off
+    substr $S10, rx346_tgt, $I11, 3
+    ne $S10, "try", rx346_fail
+    add rx346_pos, 3
+    set_addr $I10, rxcap_351_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)
     $P10."!cursor_names"("sym")
-    goto rxcap_374_done
-  rxcap_374_fail:
-    goto rx369_fail
-  rxcap_374_done:
+    goto rxcap_351_done
+  rxcap_351_fail:
+    goto rx346_fail
+  rxcap_351_done:
 .annotate 'line', 203
   # rx subrule "blorst" subtype=capture negate=
-    rx369_cur."!cursor_pos"(rx369_pos)
-    $P10 = rx369_cur."blorst"()
-    unless $P10, rx369_fail
-    rx369_cur."!mark_push"(0, -1, 0, $P10)
+    rx346_cur."!cursor_pos"(rx346_pos)
+    $P10 = rx346_cur."blorst"()
+    unless $P10, rx346_fail
+    rx346_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blorst")
-    rx369_pos = $P10."pos"()
+    rx346_pos = $P10."pos"()
 .annotate 'line', 201
   # rx pass
-    rx369_cur."!cursor_pass"(rx369_pos, "statement_prefix:sym<try>")
-    rx369_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<try>", " at pos=", rx369_pos)
-    .return (rx369_cur)
-  rx369_fail:
+    rx346_cur."!cursor_pass"(rx346_pos, "statement_prefix:sym<try>")
+    rx346_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<try>", " at pos=", rx346_pos)
+    .return (rx346_cur)
+  rx346_restart:
 .annotate 'line', 4
-    (rx369_rep, rx369_pos, $I10, $P10) = rx369_cur."!mark_fail"(0)
-    lt rx369_pos, -1, rx369_done
-    eq rx369_pos, -1, rx369_fail
+    rx346_cur."!cursor_debug"("NEXT ", "statement_prefix:sym<try>")
+  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
-  rx369_done:
-    rx369_cur."!cursor_fail"()
-    rx369_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<try>")
-    .return (rx369_cur)
+  rx346_done:
+    rx346_cur."!cursor_fail"()
+    rx346_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<try>")
+    .return (rx346_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>"  :subid("82_1277356913.9538") :method
+.sub "!PREFIX__statement_prefix:sym<try>"  :subid("82_1280467477.44751") :method
 .annotate 'line', 4
-    $P371 = self."!PREFIX__!subrule"("blorst", "try")
-    new $P372, "ResizablePMCArray"
-    push $P372, $P371
-    .return ($P372)
+    $P348 = self."!PREFIX__!subrule"("blorst", "try")
+    new $P349, "ResizablePMCArray"
+    push $P349, $P348
+    .return ($P349)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blorst"  :subid("83_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "blorst"  :subid("83_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx376_tgt
-    .local int rx376_pos
-    .local int rx376_off
-    .local int rx376_eos
-    .local int rx376_rep
-    .local pmc rx376_cur
-    (rx376_cur, rx376_pos, rx376_tgt) = self."!cursor_start"()
-    rx376_cur."!cursor_debug"("START ", "blorst")
-    .lex unicode:"$\x{a2}", rx376_cur
+    .local string rx353_tgt
+    .local int rx353_pos
+    .local int rx353_off
+    .local int rx353_eos
+    .local int rx353_rep
+    .local pmc rx353_cur
+    (rx353_cur, rx353_pos, rx353_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx353_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:
+    length rx353_eos, rx353_tgt
+    gt rx353_pos, rx353_eos, rx353_done
+    set rx353_off, 0
+    lt rx353_pos, 2, rx353_start
+    sub rx353_off, rx353_pos, 1
+    substr rx353_tgt, rx353_tgt, rx353_off
+  rx353_start:
+    eq $I10, 1, rx353_restart
+    rx353_cur."!cursor_debug"("START ", "blorst")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan379_done
-    goto rxscan379_scan
-  rxscan379_loop:
-    ($P10) = rx376_cur."from"()
+    ne $I10, -1, rxscan356_done
+    goto rxscan356_scan
+  rxscan356_loop:
+    ($P10) = rx353_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:
+    set rx353_pos, $P10
+    ge rx353_pos, rx353_eos, rxscan356_done
+  rxscan356_scan:
+    set_addr $I10, rxscan356_loop
+    rx353_cur."!mark_push"(0, rx353_pos, $I10)
+  rxscan356_done:
 .annotate 'line', 207
   # rx charclass s
-    ge rx376_pos, rx376_eos, rx376_fail
-    sub $I10, rx376_pos, rx376_off
-    is_cclass $I11, 32, rx376_tgt, $I10
-    unless $I11, rx376_fail
-    inc rx376_pos
-  # rx subrule "ws" subtype=method negate=
-    rx376_cur."!cursor_pos"(rx376_pos)
-    $P10 = rx376_cur."ws"()
-    unless $P10, rx376_fail
-    rx376_pos = $P10."pos"()
-  alt380_0:
-    set_addr $I10, alt380_1
-    rx376_cur."!mark_push"(0, rx376_pos, $I10)
+    ge rx353_pos, rx353_eos, rx353_fail
+    sub $I10, rx353_pos, rx353_off
+    is_cclass $I11, 32, rx353_tgt, $I10
+    unless $I11, rx353_fail
+    inc rx353_pos
+  # rx subrule "ws" subtype=method negate=
+    rx353_cur."!cursor_pos"(rx353_pos)
+    $P10 = rx353_cur."ws"()
+    unless $P10, rx353_fail
+    rx353_pos = $P10."pos"()
+  alt357_0:
+    set_addr $I10, alt357_1
+    rx353_cur."!mark_push"(0, rx353_pos, $I10)
   # rx enumcharlist negate=0 zerowidth
-    ge rx376_pos, rx376_eos, rx376_fail
-    sub $I10, rx376_pos, rx376_off
-    substr $S10, rx376_tgt, $I10, 1
+    ge rx353_pos, rx353_eos, rx353_fail
+    sub $I10, rx353_pos, rx353_off
+    substr $S10, rx353_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx376_fail
+    lt $I11, 0, rx353_fail
   # rx subrule "block" subtype=capture negate=
-    rx376_cur."!cursor_pos"(rx376_pos)
-    $P10 = rx376_cur."block"()
-    unless $P10, rx376_fail
-    rx376_cur."!mark_push"(0, -1, 0, $P10)
+    rx353_cur."!cursor_pos"(rx353_pos)
+    $P10 = rx353_cur."block"()
+    unless $P10, rx353_fail
+    rx353_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx376_pos = $P10."pos"()
-    goto alt380_end
-  alt380_1:
+    rx353_pos = $P10."pos"()
+    goto alt357_end
+  alt357_1:
   # rx subrule "statement" subtype=capture negate=
-    rx376_cur."!cursor_pos"(rx376_pos)
-    $P10 = rx376_cur."statement"()
-    unless $P10, rx376_fail
-    rx376_cur."!mark_push"(0, -1, 0, $P10)
+    rx353_cur."!cursor_pos"(rx353_pos)
+    $P10 = rx353_cur."statement"()
+    unless $P10, rx353_fail
+    rx353_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement")
-    rx376_pos = $P10."pos"()
-  alt380_end:
+    rx353_pos = $P10."pos"()
+  alt357_end:
 .annotate 'line', 206
   # rx pass
-    rx376_cur."!cursor_pass"(rx376_pos, "blorst")
-    rx376_cur."!cursor_debug"("PASS  ", "blorst", " at pos=", rx376_pos)
-    .return (rx376_cur)
-  rx376_fail:
+    rx353_cur."!cursor_pass"(rx353_pos, "blorst")
+    rx353_cur."!cursor_debug"("PASS  ", "blorst", " at pos=", rx353_pos)
+    .return (rx353_cur)
+  rx353_restart:
 .annotate 'line', 4
-    (rx376_rep, rx376_pos, $I10, $P10) = rx376_cur."!mark_fail"(0)
-    lt rx376_pos, -1, rx376_done
-    eq rx376_pos, -1, rx376_fail
+    rx353_cur."!cursor_debug"("NEXT ", "blorst")
+  rx353_fail:
+    (rx353_rep, rx353_pos, $I10, $P10) = rx353_cur."!mark_fail"(0)
+    lt rx353_pos, -1, rx353_done
+    eq rx353_pos, -1, rx353_fail
     jump $I10
-  rx376_done:
-    rx376_cur."!cursor_fail"()
-    rx376_cur."!cursor_debug"("FAIL  ", "blorst")
-    .return (rx376_cur)
+  rx353_done:
+    rx353_cur."!cursor_fail"()
+    rx353_cur."!cursor_debug"("FAIL  ", "blorst")
+    .return (rx353_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst"  :subid("84_1277356913.9538") :method
+.sub "!PREFIX__blorst"  :subid("84_1280467477.44751") :method
 .annotate 'line', 4
-    new $P378, "ResizablePMCArray"
-    push $P378, ""
-    .return ($P378)
+    new $P355, "ResizablePMCArray"
+    push $P355, ""
+    .return ($P355)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond"  :subid("85_1277356913.9538") :method
+.sub "statement_mod_cond"  :subid("85_1280467477.44751") :method
 .annotate 'line', 212
-    $P382 = self."!protoregex"("statement_mod_cond")
-    .return ($P382)
+    $P359 = self."!protoregex"("statement_mod_cond")
+    .return ($P359)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond"  :subid("86_1277356913.9538") :method
+.sub "!PREFIX__statement_mod_cond"  :subid("86_1280467477.44751") :method
 .annotate 'line', 212
-    $P384 = self."!PREFIX__!protoregex"("statement_mod_cond")
-    .return ($P384)
+    $P361 = self."!PREFIX__!protoregex"("statement_mod_cond")
+    .return ($P361)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<if>"  :subid("87_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "statement_mod_cond:sym<if>"  :subid("87_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx386_tgt
-    .local int rx386_pos
-    .local int rx386_off
-    .local int rx386_eos
-    .local int rx386_rep
-    .local pmc rx386_cur
-    (rx386_cur, rx386_pos, rx386_tgt) = self."!cursor_start"()
-    rx386_cur."!cursor_debug"("START ", "statement_mod_cond:sym<if>")
-    .lex unicode:"$\x{a2}", rx386_cur
-    .local pmc match
-    .lex "$/", match
-    length rx386_eos, rx386_tgt
-    gt rx386_pos, rx386_eos, rx386_done
-    set rx386_off, 0
-    lt rx386_pos, 2, rx386_start
-    sub rx386_off, rx386_pos, 1
-    substr rx386_tgt, rx386_tgt, rx386_off
-  rx386_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan390_done
-    goto rxscan390_scan
-  rxscan390_loop:
-    ($P10) = rx386_cur."from"()
-    inc $P10
-    set rx386_pos, $P10
-    ge rx386_pos, rx386_eos, rxscan390_done
-  rxscan390_scan:
-    set_addr $I10, rxscan390_loop
-    rx386_cur."!mark_push"(0, rx386_pos, $I10)
-  rxscan390_done:
+    .local string rx363_tgt
+    .local int rx363_pos
+    .local int rx363_off
+    .local int rx363_eos
+    .local int rx363_rep
+    .local pmc rx363_cur
+    (rx363_cur, rx363_pos, rx363_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx363_cur
+    .local pmc match
+    .lex "$/", match
+    length rx363_eos, rx363_tgt
+    gt rx363_pos, rx363_eos, rx363_done
+    set rx363_off, 0
+    lt rx363_pos, 2, rx363_start
+    sub rx363_off, rx363_pos, 1
+    substr rx363_tgt, rx363_tgt, rx363_off
+  rx363_start:
+    eq $I10, 1, rx363_restart
+    rx363_cur."!cursor_debug"("START ", "statement_mod_cond:sym<if>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan367_done
+    goto rxscan367_scan
+  rxscan367_loop:
+    ($P10) = rx363_cur."from"()
+    inc $P10
+    set rx363_pos, $P10
+    ge rx363_pos, rx363_eos, rxscan367_done
+  rxscan367_scan:
+    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_391_fail
-    rx386_cur."!mark_push"(0, rx386_pos, $I10)
+    set_addr $I10, rxcap_368_fail
+    rx363_cur."!mark_push"(0, rx363_pos, $I10)
   # rx literal  "if"
-    add $I11, rx386_pos, 2
-    gt $I11, rx386_eos, rx386_fail
-    sub $I11, rx386_pos, rx386_off
-    substr $S10, rx386_tgt, $I11, 2
-    ne $S10, "if", rx386_fail
-    add rx386_pos, 2
-    set_addr $I10, rxcap_391_fail
-    ($I12, $I11) = rx386_cur."!mark_peek"($I10)
-    rx386_cur."!cursor_pos"($I11)
-    ($P10) = rx386_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx386_pos, "")
-    rx386_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx363_pos, 2
+    gt $I11, rx363_eos, rx363_fail
+    sub $I11, rx363_pos, rx363_off
+    substr $S10, rx363_tgt, $I11, 2
+    ne $S10, "if", rx363_fail
+    add rx363_pos, 2
+    set_addr $I10, rxcap_368_fail
+    ($I12, $I11) = rx363_cur."!mark_peek"($I10)
+    rx363_cur."!cursor_pos"($I11)
+    ($P10) = rx363_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx363_pos, "")
+    rx363_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_391_done
-  rxcap_391_fail:
-    goto rx386_fail
-  rxcap_391_done:
-  # rx subrule "ws" subtype=method negate=
-    rx386_cur."!cursor_pos"(rx386_pos)
-    $P10 = rx386_cur."ws"()
-    unless $P10, rx386_fail
-    rx386_pos = $P10."pos"()
+    goto rxcap_368_done
+  rxcap_368_fail:
+    goto rx363_fail
+  rxcap_368_done:
+  # rx subrule "ws" subtype=method negate=
+    rx363_cur."!cursor_pos"(rx363_pos)
+    $P10 = rx363_cur."ws"()
+    unless $P10, rx363_fail
+    rx363_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx386_cur."!cursor_pos"(rx386_pos)
-    $P10 = rx386_cur."EXPR"()
-    unless $P10, rx386_fail
-    rx386_cur."!mark_push"(0, -1, 0, $P10)
+    rx363_cur."!cursor_pos"(rx363_pos)
+    $P10 = rx363_cur."EXPR"()
+    unless $P10, rx363_fail
+    rx363_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx386_pos = $P10."pos"()
+    rx363_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx386_cur."!cursor_pos"(rx386_pos)
-    $P10 = rx386_cur."ws"()
-    unless $P10, rx386_fail
-    rx386_pos = $P10."pos"()
+    rx363_cur."!cursor_pos"(rx363_pos)
+    $P10 = rx363_cur."ws"()
+    unless $P10, rx363_fail
+    rx363_pos = $P10."pos"()
   # rx pass
-    rx386_cur."!cursor_pass"(rx386_pos, "statement_mod_cond:sym<if>")
-    rx386_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<if>", " at pos=", rx386_pos)
-    .return (rx386_cur)
-  rx386_fail:
+    rx363_cur."!cursor_pass"(rx363_pos, "statement_mod_cond:sym<if>")
+    rx363_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<if>", " at pos=", rx363_pos)
+    .return (rx363_cur)
+  rx363_restart:
 .annotate 'line', 4
-    (rx386_rep, rx386_pos, $I10, $P10) = rx386_cur."!mark_fail"(0)
-    lt rx386_pos, -1, rx386_done
-    eq rx386_pos, -1, rx386_fail
+    rx363_cur."!cursor_debug"("NEXT ", "statement_mod_cond:sym<if>")
+  rx363_fail:
+    (rx363_rep, rx363_pos, $I10, $P10) = rx363_cur."!mark_fail"(0)
+    lt rx363_pos, -1, rx363_done
+    eq rx363_pos, -1, rx363_fail
     jump $I10
-  rx386_done:
-    rx386_cur."!cursor_fail"()
-    rx386_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<if>")
-    .return (rx386_cur)
+  rx363_done:
+    rx363_cur."!cursor_fail"()
+    rx363_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<if>")
+    .return (rx363_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("88_1277356913.9538") :method
+.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("88_1280467477.44751") :method
 .annotate 'line', 4
-    $P388 = self."!PREFIX__!subrule"("ws", "if")
-    new $P389, "ResizablePMCArray"
-    push $P389, $P388
-    .return ($P389)
+    $P365 = self."!PREFIX__!subrule"("ws", "if")
+    new $P366, "ResizablePMCArray"
+    push $P366, $P365
+    .return ($P366)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<unless>"  :subid("89_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "statement_mod_cond:sym<unless>"  :subid("89_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx395_tgt
-    .local int rx395_pos
-    .local int rx395_off
-    .local int rx395_eos
-    .local int rx395_rep
-    .local pmc rx395_cur
-    (rx395_cur, rx395_pos, rx395_tgt) = self."!cursor_start"()
-    rx395_cur."!cursor_debug"("START ", "statement_mod_cond:sym<unless>")
-    .lex unicode:"$\x{a2}", rx395_cur
+    .local string rx372_tgt
+    .local int rx372_pos
+    .local int rx372_off
+    .local int rx372_eos
+    .local int rx372_rep
+    .local pmc rx372_cur
+    (rx372_cur, rx372_pos, rx372_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx372_cur
     .local pmc match
     .lex "$/", match
-    length rx395_eos, rx395_tgt
-    gt rx395_pos, rx395_eos, rx395_done
-    set rx395_off, 0
-    lt rx395_pos, 2, rx395_start
-    sub rx395_off, rx395_pos, 1
-    substr rx395_tgt, rx395_tgt, rx395_off
-  rx395_start:
+    length rx372_eos, rx372_tgt
+    gt rx372_pos, rx372_eos, rx372_done
+    set rx372_off, 0
+    lt rx372_pos, 2, rx372_start
+    sub rx372_off, rx372_pos, 1
+    substr rx372_tgt, rx372_tgt, rx372_off
+  rx372_start:
+    eq $I10, 1, rx372_restart
+    rx372_cur."!cursor_debug"("START ", "statement_mod_cond:sym<unless>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan399_done
-    goto rxscan399_scan
-  rxscan399_loop:
-    ($P10) = rx395_cur."from"()
+    ne $I10, -1, rxscan376_done
+    goto rxscan376_scan
+  rxscan376_loop:
+    ($P10) = rx372_cur."from"()
     inc $P10
-    set rx395_pos, $P10
-    ge rx395_pos, rx395_eos, rxscan399_done
-  rxscan399_scan:
-    set_addr $I10, rxscan399_loop
-    rx395_cur."!mark_push"(0, rx395_pos, $I10)
-  rxscan399_done:
+    set rx372_pos, $P10
+    ge rx372_pos, rx372_eos, rxscan376_done
+  rxscan376_scan:
+    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_400_fail
-    rx395_cur."!mark_push"(0, rx395_pos, $I10)
+    set_addr $I10, rxcap_377_fail
+    rx372_cur."!mark_push"(0, rx372_pos, $I10)
   # rx literal  "unless"
-    add $I11, rx395_pos, 6
-    gt $I11, rx395_eos, rx395_fail
-    sub $I11, rx395_pos, rx395_off
-    substr $S10, rx395_tgt, $I11, 6
-    ne $S10, "unless", rx395_fail
-    add rx395_pos, 6
-    set_addr $I10, rxcap_400_fail
-    ($I12, $I11) = rx395_cur."!mark_peek"($I10)
-    rx395_cur."!cursor_pos"($I11)
-    ($P10) = rx395_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx395_pos, "")
-    rx395_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx372_pos, 6
+    gt $I11, rx372_eos, rx372_fail
+    sub $I11, rx372_pos, rx372_off
+    substr $S10, rx372_tgt, $I11, 6
+    ne $S10, "unless", rx372_fail
+    add rx372_pos, 6
+    set_addr $I10, rxcap_377_fail
+    ($I12, $I11) = rx372_cur."!mark_peek"($I10)
+    rx372_cur."!cursor_pos"($I11)
+    ($P10) = rx372_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx372_pos, "")
+    rx372_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_400_done
-  rxcap_400_fail:
-    goto rx395_fail
-  rxcap_400_done:
-  # rx subrule "ws" subtype=method negate=
-    rx395_cur."!cursor_pos"(rx395_pos)
-    $P10 = rx395_cur."ws"()
-    unless $P10, rx395_fail
-    rx395_pos = $P10."pos"()
+    goto rxcap_377_done
+  rxcap_377_fail:
+    goto rx372_fail
+  rxcap_377_done:
+  # rx subrule "ws" subtype=method negate=
+    rx372_cur."!cursor_pos"(rx372_pos)
+    $P10 = rx372_cur."ws"()
+    unless $P10, rx372_fail
+    rx372_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx395_cur."!cursor_pos"(rx395_pos)
-    $P10 = rx395_cur."EXPR"()
-    unless $P10, rx395_fail
-    rx395_cur."!mark_push"(0, -1, 0, $P10)
+    rx372_cur."!cursor_pos"(rx372_pos)
+    $P10 = rx372_cur."EXPR"()
+    unless $P10, rx372_fail
+    rx372_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx395_pos = $P10."pos"()
+    rx372_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx395_cur."!cursor_pos"(rx395_pos)
-    $P10 = rx395_cur."ws"()
-    unless $P10, rx395_fail
-    rx395_pos = $P10."pos"()
+    rx372_cur."!cursor_pos"(rx372_pos)
+    $P10 = rx372_cur."ws"()
+    unless $P10, rx372_fail
+    rx372_pos = $P10."pos"()
   # rx pass
-    rx395_cur."!cursor_pass"(rx395_pos, "statement_mod_cond:sym<unless>")
-    rx395_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<unless>", " at pos=", rx395_pos)
-    .return (rx395_cur)
-  rx395_fail:
+    rx372_cur."!cursor_pass"(rx372_pos, "statement_mod_cond:sym<unless>")
+    rx372_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<unless>", " at pos=", rx372_pos)
+    .return (rx372_cur)
+  rx372_restart:
 .annotate 'line', 4
-    (rx395_rep, rx395_pos, $I10, $P10) = rx395_cur."!mark_fail"(0)
-    lt rx395_pos, -1, rx395_done
-    eq rx395_pos, -1, rx395_fail
+    rx372_cur."!cursor_debug"("NEXT ", "statement_mod_cond:sym<unless>")
+  rx372_fail:
+    (rx372_rep, rx372_pos, $I10, $P10) = rx372_cur."!mark_fail"(0)
+    lt rx372_pos, -1, rx372_done
+    eq rx372_pos, -1, rx372_fail
     jump $I10
-  rx395_done:
-    rx395_cur."!cursor_fail"()
-    rx395_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<unless>")
-    .return (rx395_cur)
+  rx372_done:
+    rx372_cur."!cursor_fail"()
+    rx372_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<unless>")
+    .return (rx372_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("90_1277356913.9538") :method
+.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("90_1280467477.44751") :method
 .annotate 'line', 4
-    $P397 = self."!PREFIX__!subrule"("ws", "unless")
-    new $P398, "ResizablePMCArray"
-    push $P398, $P397
-    .return ($P398)
+    $P374 = self."!PREFIX__!subrule"("ws", "unless")
+    new $P375, "ResizablePMCArray"
+    push $P375, $P374
+    .return ($P375)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop"  :subid("91_1277356913.9538") :method
+.sub "statement_mod_loop"  :subid("91_1280467477.44751") :method
 .annotate 'line', 217
-    $P404 = self."!protoregex"("statement_mod_loop")
-    .return ($P404)
+    $P381 = self."!protoregex"("statement_mod_loop")
+    .return ($P381)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop"  :subid("92_1277356913.9538") :method
+.sub "!PREFIX__statement_mod_loop"  :subid("92_1280467477.44751") :method
 .annotate 'line', 217
-    $P406 = self."!PREFIX__!protoregex"("statement_mod_loop")
-    .return ($P406)
+    $P383 = self."!PREFIX__!protoregex"("statement_mod_loop")
+    .return ($P383)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<while>"  :subid("93_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "statement_mod_loop:sym<while>"  :subid("93_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx408_tgt
-    .local int rx408_pos
-    .local int rx408_off
-    .local int rx408_eos
-    .local int rx408_rep
-    .local pmc rx408_cur
-    (rx408_cur, rx408_pos, rx408_tgt) = self."!cursor_start"()
-    rx408_cur."!cursor_debug"("START ", "statement_mod_loop:sym<while>")
-    .lex unicode:"$\x{a2}", rx408_cur
-    .local pmc match
-    .lex "$/", match
-    length rx408_eos, rx408_tgt
-    gt rx408_pos, rx408_eos, rx408_done
-    set rx408_off, 0
-    lt rx408_pos, 2, rx408_start
-    sub rx408_off, rx408_pos, 1
-    substr rx408_tgt, rx408_tgt, rx408_off
-  rx408_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan412_done
-    goto rxscan412_scan
-  rxscan412_loop:
-    ($P10) = rx408_cur."from"()
-    inc $P10
-    set rx408_pos, $P10
-    ge rx408_pos, rx408_eos, rxscan412_done
-  rxscan412_scan:
-    set_addr $I10, rxscan412_loop
-    rx408_cur."!mark_push"(0, rx408_pos, $I10)
-  rxscan412_done:
+    .local string rx385_tgt
+    .local int rx385_pos
+    .local int rx385_off
+    .local int rx385_eos
+    .local int rx385_rep
+    .local pmc rx385_cur
+    (rx385_cur, rx385_pos, rx385_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx385_cur
+    .local pmc match
+    .lex "$/", match
+    length rx385_eos, rx385_tgt
+    gt rx385_pos, rx385_eos, rx385_done
+    set rx385_off, 0
+    lt rx385_pos, 2, rx385_start
+    sub rx385_off, rx385_pos, 1
+    substr rx385_tgt, rx385_tgt, rx385_off
+  rx385_start:
+    eq $I10, 1, rx385_restart
+    rx385_cur."!cursor_debug"("START ", "statement_mod_loop:sym<while>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan389_done
+    goto rxscan389_scan
+  rxscan389_loop:
+    ($P10) = rx385_cur."from"()
+    inc $P10
+    set rx385_pos, $P10
+    ge rx385_pos, rx385_eos, rxscan389_done
+  rxscan389_scan:
+    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_413_fail
-    rx408_cur."!mark_push"(0, rx408_pos, $I10)
+    set_addr $I10, rxcap_390_fail
+    rx385_cur."!mark_push"(0, rx385_pos, $I10)
   # rx literal  "while"
-    add $I11, rx408_pos, 5
-    gt $I11, rx408_eos, rx408_fail
-    sub $I11, rx408_pos, rx408_off
-    substr $S10, rx408_tgt, $I11, 5
-    ne $S10, "while", rx408_fail
-    add rx408_pos, 5
-    set_addr $I10, rxcap_413_fail
-    ($I12, $I11) = rx408_cur."!mark_peek"($I10)
-    rx408_cur."!cursor_pos"($I11)
-    ($P10) = rx408_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx408_pos, "")
-    rx408_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx385_pos, 5
+    gt $I11, rx385_eos, rx385_fail
+    sub $I11, rx385_pos, rx385_off
+    substr $S10, rx385_tgt, $I11, 5
+    ne $S10, "while", rx385_fail
+    add rx385_pos, 5
+    set_addr $I10, rxcap_390_fail
+    ($I12, $I11) = rx385_cur."!mark_peek"($I10)
+    rx385_cur."!cursor_pos"($I11)
+    ($P10) = rx385_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx385_pos, "")
+    rx385_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_413_done
-  rxcap_413_fail:
-    goto rx408_fail
-  rxcap_413_done:
-  # rx subrule "ws" subtype=method negate=
-    rx408_cur."!cursor_pos"(rx408_pos)
-    $P10 = rx408_cur."ws"()
-    unless $P10, rx408_fail
-    rx408_pos = $P10."pos"()
+    goto rxcap_390_done
+  rxcap_390_fail:
+    goto rx385_fail
+  rxcap_390_done:
+  # rx subrule "ws" subtype=method negate=
+    rx385_cur."!cursor_pos"(rx385_pos)
+    $P10 = rx385_cur."ws"()
+    unless $P10, rx385_fail
+    rx385_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx408_cur."!cursor_pos"(rx408_pos)
-    $P10 = rx408_cur."EXPR"()
-    unless $P10, rx408_fail
-    rx408_cur."!mark_push"(0, -1, 0, $P10)
+    rx385_cur."!cursor_pos"(rx385_pos)
+    $P10 = rx385_cur."EXPR"()
+    unless $P10, rx385_fail
+    rx385_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx408_pos = $P10."pos"()
+    rx385_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx408_cur."!cursor_pos"(rx408_pos)
-    $P10 = rx408_cur."ws"()
-    unless $P10, rx408_fail
-    rx408_pos = $P10."pos"()
+    rx385_cur."!cursor_pos"(rx385_pos)
+    $P10 = rx385_cur."ws"()
+    unless $P10, rx385_fail
+    rx385_pos = $P10."pos"()
   # rx pass
-    rx408_cur."!cursor_pass"(rx408_pos, "statement_mod_loop:sym<while>")
-    rx408_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<while>", " at pos=", rx408_pos)
-    .return (rx408_cur)
-  rx408_fail:
+    rx385_cur."!cursor_pass"(rx385_pos, "statement_mod_loop:sym<while>")
+    rx385_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<while>", " at pos=", rx385_pos)
+    .return (rx385_cur)
+  rx385_restart:
 .annotate 'line', 4
-    (rx408_rep, rx408_pos, $I10, $P10) = rx408_cur."!mark_fail"(0)
-    lt rx408_pos, -1, rx408_done
-    eq rx408_pos, -1, rx408_fail
+    rx385_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<while>")
+  rx385_fail:
+    (rx385_rep, rx385_pos, $I10, $P10) = rx385_cur."!mark_fail"(0)
+    lt rx385_pos, -1, rx385_done
+    eq rx385_pos, -1, rx385_fail
     jump $I10
-  rx408_done:
-    rx408_cur."!cursor_fail"()
-    rx408_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<while>")
-    .return (rx408_cur)
+  rx385_done:
+    rx385_cur."!cursor_fail"()
+    rx385_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<while>")
+    .return (rx385_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("94_1277356913.9538") :method
+.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("94_1280467477.44751") :method
 .annotate 'line', 4
-    $P410 = self."!PREFIX__!subrule"("ws", "while")
-    new $P411, "ResizablePMCArray"
-    push $P411, $P410
-    .return ($P411)
+    $P387 = self."!PREFIX__!subrule"("ws", "while")
+    new $P388, "ResizablePMCArray"
+    push $P388, $P387
+    .return ($P388)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<until>"  :subid("95_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "statement_mod_loop:sym<until>"  :subid("95_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx417_tgt
-    .local int rx417_pos
-    .local int rx417_off
-    .local int rx417_eos
-    .local int rx417_rep
-    .local pmc rx417_cur
-    (rx417_cur, rx417_pos, rx417_tgt) = self."!cursor_start"()
-    rx417_cur."!cursor_debug"("START ", "statement_mod_loop:sym<until>")
-    .lex unicode:"$\x{a2}", rx417_cur
+    .local string rx394_tgt
+    .local int rx394_pos
+    .local int rx394_off
+    .local int rx394_eos
+    .local int rx394_rep
+    .local pmc rx394_cur
+    (rx394_cur, rx394_pos, rx394_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx394_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:
+    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
+    rx394_cur."!cursor_debug"("START ", "statement_mod_loop:sym<until>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan421_done
-    goto rxscan421_scan
-  rxscan421_loop:
-    ($P10) = rx417_cur."from"()
+    ne $I10, -1, rxscan398_done
+    goto rxscan398_scan
+  rxscan398_loop:
+    ($P10) = rx394_cur."from"()
     inc $P10
-    set rx417_pos, $P10
-    ge rx417_pos, rx417_eos, rxscan421_done
-  rxscan421_scan:
-    set_addr $I10, rxscan421_loop
-    rx417_cur."!mark_push"(0, rx417_pos, $I10)
-  rxscan421_done:
+    set rx394_pos, $P10
+    ge rx394_pos, rx394_eos, rxscan398_done
+  rxscan398_scan:
+    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_422_fail
-    rx417_cur."!mark_push"(0, rx417_pos, $I10)
+    set_addr $I10, rxcap_399_fail
+    rx394_cur."!mark_push"(0, rx394_pos, $I10)
   # rx literal  "until"
-    add $I11, rx417_pos, 5
-    gt $I11, rx417_eos, rx417_fail
-    sub $I11, rx417_pos, rx417_off
-    substr $S10, rx417_tgt, $I11, 5
-    ne $S10, "until", rx417_fail
-    add rx417_pos, 5
-    set_addr $I10, rxcap_422_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)
+    add $I11, rx394_pos, 5
+    gt $I11, rx394_eos, rx394_fail
+    sub $I11, rx394_pos, rx394_off
+    substr $S10, rx394_tgt, $I11, 5
+    ne $S10, "until", rx394_fail
+    add rx394_pos, 5
+    set_addr $I10, rxcap_399_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)
     $P10."!cursor_names"("sym")
-    goto rxcap_422_done
-  rxcap_422_fail:
-    goto rx417_fail
-  rxcap_422_done:
-  # rx subrule "ws" subtype=method negate=
-    rx417_cur."!cursor_pos"(rx417_pos)
-    $P10 = rx417_cur."ws"()
-    unless $P10, rx417_fail
-    rx417_pos = $P10."pos"()
+    goto rxcap_399_done
+  rxcap_399_fail:
+    goto rx394_fail
+  rxcap_399_done:
+  # rx subrule "ws" subtype=method negate=
+    rx394_cur."!cursor_pos"(rx394_pos)
+    $P10 = rx394_cur."ws"()
+    unless $P10, rx394_fail
+    rx394_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx417_cur."!cursor_pos"(rx417_pos)
-    $P10 = rx417_cur."EXPR"()
-    unless $P10, rx417_fail
-    rx417_cur."!mark_push"(0, -1, 0, $P10)
+    rx394_cur."!cursor_pos"(rx394_pos)
+    $P10 = rx394_cur."EXPR"()
+    unless $P10, rx394_fail
+    rx394_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx417_pos = $P10."pos"()
+    rx394_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx417_cur."!cursor_pos"(rx417_pos)
-    $P10 = rx417_cur."ws"()
-    unless $P10, rx417_fail
-    rx417_pos = $P10."pos"()
+    rx394_cur."!cursor_pos"(rx394_pos)
+    $P10 = rx394_cur."ws"()
+    unless $P10, rx394_fail
+    rx394_pos = $P10."pos"()
   # rx pass
-    rx417_cur."!cursor_pass"(rx417_pos, "statement_mod_loop:sym<until>")
-    rx417_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<until>", " at pos=", rx417_pos)
-    .return (rx417_cur)
-  rx417_fail:
+    rx394_cur."!cursor_pass"(rx394_pos, "statement_mod_loop:sym<until>")
+    rx394_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<until>", " at pos=", rx394_pos)
+    .return (rx394_cur)
+  rx394_restart:
 .annotate 'line', 4
-    (rx417_rep, rx417_pos, $I10, $P10) = rx417_cur."!mark_fail"(0)
-    lt rx417_pos, -1, rx417_done
-    eq rx417_pos, -1, rx417_fail
+    rx394_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<until>")
+  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
-  rx417_done:
-    rx417_cur."!cursor_fail"()
-    rx417_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<until>")
-    .return (rx417_cur)
+  rx394_done:
+    rx394_cur."!cursor_fail"()
+    rx394_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<until>")
+    .return (rx394_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("96_1277356913.9538") :method
+.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("96_1280467477.44751") :method
 .annotate 'line', 4
-    $P419 = self."!PREFIX__!subrule"("ws", "until")
-    new $P420, "ResizablePMCArray"
-    push $P420, $P419
-    .return ($P420)
+    $P396 = self."!PREFIX__!subrule"("ws", "until")
+    new $P397, "ResizablePMCArray"
+    push $P397, $P396
+    .return ($P397)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>"  :subid("97_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "statement_mod_loop:sym<for>"  :subid("97_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx426_tgt
-    .local int rx426_pos
-    .local int rx426_off
-    .local int rx426_eos
-    .local int rx426_rep
-    .local pmc rx426_cur
-    (rx426_cur, rx426_pos, rx426_tgt) = self."!cursor_start"()
-    rx426_cur."!cursor_debug"("START ", "term:sym<fatarrow>")
-    .lex unicode:"$\x{a2}", rx426_cur
+    .local string rx403_tgt
+    .local int rx403_pos
+    .local int rx403_off
+    .local int rx403_eos
+    .local int rx403_rep
+    .local pmc rx403_cur
+    (rx403_cur, rx403_pos, rx403_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx403_cur
     .local pmc match
     .lex "$/", match
-    length rx426_eos, rx426_tgt
-    gt rx426_pos, rx426_eos, rx426_done
-    set rx426_off, 0
-    lt rx426_pos, 2, rx426_start
-    sub rx426_off, rx426_pos, 1
-    substr rx426_tgt, rx426_tgt, rx426_off
-  rx426_start:
+    length rx403_eos, rx403_tgt
+    gt rx403_pos, rx403_eos, rx403_done
+    set rx403_off, 0
+    lt rx403_pos, 2, rx403_start
+    sub rx403_off, rx403_pos, 1
+    substr rx403_tgt, rx403_tgt, rx403_off
+  rx403_start:
+    eq $I10, 1, rx403_restart
+    rx403_cur."!cursor_debug"("START ", "statement_mod_loop:sym<for>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan430_done
-    goto rxscan430_scan
-  rxscan430_loop:
-    ($P10) = rx426_cur."from"()
+    ne $I10, -1, rxscan407_done
+    goto rxscan407_scan
+  rxscan407_loop:
+    ($P10) = rx403_cur."from"()
     inc $P10
-    set rx426_pos, $P10
-    ge rx426_pos, rx426_eos, rxscan430_done
-  rxscan430_scan:
-    set_addr $I10, rxscan430_loop
-    rx426_cur."!mark_push"(0, rx426_pos, $I10)
-  rxscan430_done:
-.annotate 'line', 224
+    set rx403_pos, $P10
+    ge rx403_pos, rx403_eos, rxscan407_done
+  rxscan407_scan:
+    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)
+  # rx literal  "for"
+    add $I11, rx403_pos, 3
+    gt $I11, rx403_eos, rx403_fail
+    sub $I11, rx403_pos, rx403_off
+    substr $S10, rx403_tgt, $I11, 3
+    ne $S10, "for", rx403_fail
+    add rx403_pos, 3
+    set_addr $I10, rxcap_408_fail
+    ($I12, $I11) = rx403_cur."!mark_peek"($I10)
+    rx403_cur."!cursor_pos"($I11)
+    ($P10) = rx403_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx403_pos, "")
+    rx403_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_408_done
+  rxcap_408_fail:
+    goto rx403_fail
+  rxcap_408_done:
+  # rx subrule "ws" subtype=method negate=
+    rx403_cur."!cursor_pos"(rx403_pos)
+    $P10 = rx403_cur."ws"()
+    unless $P10, rx403_fail
+    rx403_pos = $P10."pos"()
+  # rx subrule "EXPR" subtype=capture negate=
+    rx403_cur."!cursor_pos"(rx403_pos)
+    $P10 = rx403_cur."EXPR"()
+    unless $P10, rx403_fail
+    rx403_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("cond")
+    rx403_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx403_cur."!cursor_pos"(rx403_pos)
+    $P10 = rx403_cur."ws"()
+    unless $P10, rx403_fail
+    rx403_pos = $P10."pos"()
+  # rx pass
+    rx403_cur."!cursor_pass"(rx403_pos, "statement_mod_loop:sym<for>")
+    rx403_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<for>", " at pos=", rx403_pos)
+    .return (rx403_cur)
+  rx403_restart:
+.annotate 'line', 4
+    rx403_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<for>")
+  rx403_fail:
+    (rx403_rep, rx403_pos, $I10, $P10) = rx403_cur."!mark_fail"(0)
+    lt rx403_pos, -1, rx403_done
+    eq rx403_pos, -1, rx403_fail
+    jump $I10
+  rx403_done:
+    rx403_cur."!cursor_fail"()
+    rx403_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<for>")
+    .return (rx403_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__statement_mod_loop:sym<for>"  :subid("98_1280467477.44751") :method
+.annotate 'line', 4
+    $P405 = self."!PREFIX__!subrule"("ws", "for")
+    new $P406, "ResizablePMCArray"
+    push $P406, $P405
+    .return ($P406)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "term:sym<fatarrow>"  :subid("99_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+    .local string rx412_tgt
+    .local int rx412_pos
+    .local int rx412_off
+    .local int rx412_eos
+    .local int rx412_rep
+    .local pmc rx412_cur
+    (rx412_cur, rx412_pos, rx412_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx412_cur
+    .local pmc match
+    .lex "$/", match
+    length rx412_eos, rx412_tgt
+    gt rx412_pos, rx412_eos, rx412_done
+    set rx412_off, 0
+    lt rx412_pos, 2, rx412_start
+    sub rx412_off, rx412_pos, 1
+    substr rx412_tgt, rx412_tgt, rx412_off
+  rx412_start:
+    eq $I10, 1, rx412_restart
+    rx412_cur."!cursor_debug"("START ", "term:sym<fatarrow>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan416_done
+    goto rxscan416_scan
+  rxscan416_loop:
+    ($P10) = rx412_cur."from"()
+    inc $P10
+    set rx412_pos, $P10
+    ge rx412_pos, rx412_eos, rxscan416_done
+  rxscan416_scan:
+    set_addr $I10, rxscan416_loop
+    rx412_cur."!mark_push"(0, rx412_pos, $I10)
+  rxscan416_done:
+.annotate 'line', 225
   # rx subrule "fatarrow" subtype=capture negate=
-    rx426_cur."!cursor_pos"(rx426_pos)
-    $P10 = rx426_cur."fatarrow"()
-    unless $P10, rx426_fail
-    rx426_cur."!mark_push"(0, -1, 0, $P10)
+    rx412_cur."!cursor_pos"(rx412_pos)
+    $P10 = rx412_cur."fatarrow"()
+    unless $P10, rx412_fail
+    rx412_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("fatarrow")
-    rx426_pos = $P10."pos"()
+    rx412_pos = $P10."pos"()
   # rx pass
-    rx426_cur."!cursor_pass"(rx426_pos, "term:sym<fatarrow>")
-    rx426_cur."!cursor_debug"("PASS  ", "term:sym<fatarrow>", " at pos=", rx426_pos)
-    .return (rx426_cur)
-  rx426_fail:
+    rx412_cur."!cursor_pass"(rx412_pos, "term:sym<fatarrow>")
+    rx412_cur."!cursor_debug"("PASS  ", "term:sym<fatarrow>", " at pos=", rx412_pos)
+    .return (rx412_cur)
+  rx412_restart:
 .annotate 'line', 4
-    (rx426_rep, rx426_pos, $I10, $P10) = rx426_cur."!mark_fail"(0)
-    lt rx426_pos, -1, rx426_done
-    eq rx426_pos, -1, rx426_fail
+    rx412_cur."!cursor_debug"("NEXT ", "term:sym<fatarrow>")
+  rx412_fail:
+    (rx412_rep, rx412_pos, $I10, $P10) = rx412_cur."!mark_fail"(0)
+    lt rx412_pos, -1, rx412_done
+    eq rx412_pos, -1, rx412_fail
     jump $I10
-  rx426_done:
-    rx426_cur."!cursor_fail"()
-    rx426_cur."!cursor_debug"("FAIL  ", "term:sym<fatarrow>")
-    .return (rx426_cur)
+  rx412_done:
+    rx412_cur."!cursor_fail"()
+    rx412_cur."!cursor_debug"("FAIL  ", "term:sym<fatarrow>")
+    .return (rx412_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>"  :subid("98_1277356913.9538") :method
+.sub "!PREFIX__term:sym<fatarrow>"  :subid("100_1280467477.44751") :method
 .annotate 'line', 4
-    $P428 = self."!PREFIX__!subrule"("fatarrow", "")
-    new $P429, "ResizablePMCArray"
-    push $P429, $P428
-    .return ($P429)
+    $P414 = self."!PREFIX__!subrule"("fatarrow", "")
+    new $P415, "ResizablePMCArray"
+    push $P415, $P414
+    .return ($P415)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>"  :subid("99_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "term:sym<colonpair>"  :subid("101_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx432_tgt
-    .local int rx432_pos
-    .local int rx432_off
-    .local int rx432_eos
-    .local int rx432_rep
-    .local pmc rx432_cur
-    (rx432_cur, rx432_pos, rx432_tgt) = self."!cursor_start"()
-    rx432_cur."!cursor_debug"("START ", "term:sym<colonpair>")
-    .lex unicode:"$\x{a2}", rx432_cur
-    .local pmc match
-    .lex "$/", match
-    length rx432_eos, rx432_tgt
-    gt rx432_pos, rx432_eos, rx432_done
-    set rx432_off, 0
-    lt rx432_pos, 2, rx432_start
-    sub rx432_off, rx432_pos, 1
-    substr rx432_tgt, rx432_tgt, rx432_off
-  rx432_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan436_done
-    goto rxscan436_scan
-  rxscan436_loop:
-    ($P10) = rx432_cur."from"()
-    inc $P10
-    set rx432_pos, $P10
-    ge rx432_pos, rx432_eos, rxscan436_done
-  rxscan436_scan:
-    set_addr $I10, rxscan436_loop
-    rx432_cur."!mark_push"(0, rx432_pos, $I10)
-  rxscan436_done:
-.annotate 'line', 225
+    .local string rx418_tgt
+    .local int rx418_pos
+    .local int rx418_off
+    .local int rx418_eos
+    .local int rx418_rep
+    .local pmc rx418_cur
+    (rx418_cur, rx418_pos, rx418_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx418_cur
+    .local pmc match
+    .lex "$/", match
+    length rx418_eos, rx418_tgt
+    gt rx418_pos, rx418_eos, rx418_done
+    set rx418_off, 0
+    lt rx418_pos, 2, rx418_start
+    sub rx418_off, rx418_pos, 1
+    substr rx418_tgt, rx418_tgt, rx418_off
+  rx418_start:
+    eq $I10, 1, rx418_restart
+    rx418_cur."!cursor_debug"("START ", "term:sym<colonpair>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan422_done
+    goto rxscan422_scan
+  rxscan422_loop:
+    ($P10) = rx418_cur."from"()
+    inc $P10
+    set rx418_pos, $P10
+    ge rx418_pos, rx418_eos, rxscan422_done
+  rxscan422_scan:
+    set_addr $I10, rxscan422_loop
+    rx418_cur."!mark_push"(0, rx418_pos, $I10)
+  rxscan422_done:
+.annotate 'line', 226
   # rx subrule "colonpair" subtype=capture negate=
-    rx432_cur."!cursor_pos"(rx432_pos)
-    $P10 = rx432_cur."colonpair"()
-    unless $P10, rx432_fail
-    rx432_cur."!mark_push"(0, -1, 0, $P10)
+    rx418_cur."!cursor_pos"(rx418_pos)
+    $P10 = rx418_cur."colonpair"()
+    unless $P10, rx418_fail
+    rx418_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("colonpair")
-    rx432_pos = $P10."pos"()
+    rx418_pos = $P10."pos"()
   # rx pass
-    rx432_cur."!cursor_pass"(rx432_pos, "term:sym<colonpair>")
-    rx432_cur."!cursor_debug"("PASS  ", "term:sym<colonpair>", " at pos=", rx432_pos)
-    .return (rx432_cur)
-  rx432_fail:
+    rx418_cur."!cursor_pass"(rx418_pos, "term:sym<colonpair>")
+    rx418_cur."!cursor_debug"("PASS  ", "term:sym<colonpair>", " at pos=", rx418_pos)
+    .return (rx418_cur)
+  rx418_restart:
 .annotate 'line', 4
-    (rx432_rep, rx432_pos, $I10, $P10) = rx432_cur."!mark_fail"(0)
-    lt rx432_pos, -1, rx432_done
-    eq rx432_pos, -1, rx432_fail
+    rx418_cur."!cursor_debug"("NEXT ", "term:sym<colonpair>")
+  rx418_fail:
+    (rx418_rep, rx418_pos, $I10, $P10) = rx418_cur."!mark_fail"(0)
+    lt rx418_pos, -1, rx418_done
+    eq rx418_pos, -1, rx418_fail
     jump $I10
-  rx432_done:
-    rx432_cur."!cursor_fail"()
-    rx432_cur."!cursor_debug"("FAIL  ", "term:sym<colonpair>")
-    .return (rx432_cur)
+  rx418_done:
+    rx418_cur."!cursor_fail"()
+    rx418_cur."!cursor_debug"("FAIL  ", "term:sym<colonpair>")
+    .return (rx418_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>"  :subid("100_1277356913.9538") :method
+.sub "!PREFIX__term:sym<colonpair>"  :subid("102_1280467477.44751") :method
 .annotate 'line', 4
-    $P434 = self."!PREFIX__!subrule"("colonpair", "")
-    new $P435, "ResizablePMCArray"
-    push $P435, $P434
-    .return ($P435)
+    $P420 = self."!PREFIX__!subrule"("colonpair", "")
+    new $P421, "ResizablePMCArray"
+    push $P421, $P420
+    .return ($P421)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>"  :subid("101_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "term:sym<variable>"  :subid("103_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx438_tgt
-    .local int rx438_pos
-    .local int rx438_off
-    .local int rx438_eos
-    .local int rx438_rep
-    .local pmc rx438_cur
-    (rx438_cur, rx438_pos, rx438_tgt) = self."!cursor_start"()
-    rx438_cur."!cursor_debug"("START ", "term:sym<variable>")
-    .lex unicode:"$\x{a2}", rx438_cur
+    .local string rx424_tgt
+    .local int rx424_pos
+    .local int rx424_off
+    .local int rx424_eos
+    .local int rx424_rep
+    .local pmc rx424_cur
+    (rx424_cur, rx424_pos, rx424_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx424_cur
     .local pmc match
     .lex "$/", match
-    length rx438_eos, rx438_tgt
-    gt rx438_pos, rx438_eos, rx438_done
-    set rx438_off, 0
-    lt rx438_pos, 2, rx438_start
-    sub rx438_off, rx438_pos, 1
-    substr rx438_tgt, rx438_tgt, rx438_off
-  rx438_start:
+    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
+    rx424_cur."!cursor_debug"("START ", "term:sym<variable>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan442_done
-    goto rxscan442_scan
-  rxscan442_loop:
-    ($P10) = rx438_cur."from"()
+    ne $I10, -1, rxscan428_done
+    goto rxscan428_scan
+  rxscan428_loop:
+    ($P10) = rx424_cur."from"()
     inc $P10
-    set rx438_pos, $P10
-    ge rx438_pos, rx438_eos, rxscan442_done
-  rxscan442_scan:
-    set_addr $I10, rxscan442_loop
-    rx438_cur."!mark_push"(0, rx438_pos, $I10)
-  rxscan442_done:
-.annotate 'line', 226
+    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:
+.annotate 'line', 227
   # rx subrule "variable" subtype=capture negate=
-    rx438_cur."!cursor_pos"(rx438_pos)
-    $P10 = rx438_cur."variable"()
-    unless $P10, rx438_fail
-    rx438_cur."!mark_push"(0, -1, 0, $P10)
+    rx424_cur."!cursor_pos"(rx424_pos)
+    $P10 = rx424_cur."variable"()
+    unless $P10, rx424_fail
+    rx424_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("variable")
-    rx438_pos = $P10."pos"()
+    rx424_pos = $P10."pos"()
   # rx pass
-    rx438_cur."!cursor_pass"(rx438_pos, "term:sym<variable>")
-    rx438_cur."!cursor_debug"("PASS  ", "term:sym<variable>", " at pos=", rx438_pos)
-    .return (rx438_cur)
-  rx438_fail:
+    rx424_cur."!cursor_pass"(rx424_pos, "term:sym<variable>")
+    rx424_cur."!cursor_debug"("PASS  ", "term:sym<variable>", " at pos=", rx424_pos)
+    .return (rx424_cur)
+  rx424_restart:
 .annotate 'line', 4
-    (rx438_rep, rx438_pos, $I10, $P10) = rx438_cur."!mark_fail"(0)
-    lt rx438_pos, -1, rx438_done
-    eq rx438_pos, -1, rx438_fail
+    rx424_cur."!cursor_debug"("NEXT ", "term:sym<variable>")
+  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
-  rx438_done:
-    rx438_cur."!cursor_fail"()
-    rx438_cur."!cursor_debug"("FAIL  ", "term:sym<variable>")
-    .return (rx438_cur)
+  rx424_done:
+    rx424_cur."!cursor_fail"()
+    rx424_cur."!cursor_debug"("FAIL  ", "term:sym<variable>")
+    .return (rx424_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>"  :subid("102_1277356913.9538") :method
+.sub "!PREFIX__term:sym<variable>"  :subid("104_1280467477.44751") :method
 .annotate 'line', 4
-    $P440 = self."!PREFIX__!subrule"("variable", "")
-    new $P441, "ResizablePMCArray"
-    push $P441, $P440
-    .return ($P441)
+    $P426 = self."!PREFIX__!subrule"("variable", "")
+    new $P427, "ResizablePMCArray"
+    push $P427, $P426
+    .return ($P427)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<package_declarator>"  :subid("103_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "term:sym<package_declarator>"  :subid("105_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx444_tgt
-    .local int rx444_pos
-    .local int rx444_off
-    .local int rx444_eos
-    .local int rx444_rep
-    .local pmc rx444_cur
-    (rx444_cur, rx444_pos, rx444_tgt) = self."!cursor_start"()
-    rx444_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
-    .lex unicode:"$\x{a2}", rx444_cur
-    .local pmc match
-    .lex "$/", match
-    length rx444_eos, rx444_tgt
-    gt rx444_pos, rx444_eos, rx444_done
-    set rx444_off, 0
-    lt rx444_pos, 2, rx444_start
-    sub rx444_off, rx444_pos, 1
-    substr rx444_tgt, rx444_tgt, rx444_off
-  rx444_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan448_done
-    goto rxscan448_scan
-  rxscan448_loop:
-    ($P10) = rx444_cur."from"()
-    inc $P10
-    set rx444_pos, $P10
-    ge rx444_pos, rx444_eos, rxscan448_done
-  rxscan448_scan:
-    set_addr $I10, rxscan448_loop
-    rx444_cur."!mark_push"(0, rx444_pos, $I10)
-  rxscan448_done:
-.annotate 'line', 227
+    .local string rx430_tgt
+    .local int rx430_pos
+    .local int rx430_off
+    .local int rx430_eos
+    .local int rx430_rep
+    .local pmc rx430_cur
+    (rx430_cur, rx430_pos, rx430_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx430_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
+    $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:
+.annotate 'line', 228
   # rx subrule "package_declarator" subtype=capture negate=
-    rx444_cur."!cursor_pos"(rx444_pos)
-    $P10 = rx444_cur."package_declarator"()
-    unless $P10, rx444_fail
-    rx444_cur."!mark_push"(0, -1, 0, $P10)
+    rx430_cur."!cursor_pos"(rx430_pos)
+    $P10 = rx430_cur."package_declarator"()
+    unless $P10, rx430_fail
+    rx430_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("package_declarator")
-    rx444_pos = $P10."pos"()
+    rx430_pos = $P10."pos"()
   # rx pass
-    rx444_cur."!cursor_pass"(rx444_pos, "term:sym<package_declarator>")
-    rx444_cur."!cursor_debug"("PASS  ", "term:sym<package_declarator>", " at pos=", rx444_pos)
-    .return (rx444_cur)
-  rx444_fail:
+    rx430_cur."!cursor_pass"(rx430_pos, "term:sym<package_declarator>")
+    rx430_cur."!cursor_debug"("PASS  ", "term:sym<package_declarator>", " at pos=", rx430_pos)
+    .return (rx430_cur)
+  rx430_restart:
 .annotate 'line', 4
-    (rx444_rep, rx444_pos, $I10, $P10) = rx444_cur."!mark_fail"(0)
-    lt rx444_pos, -1, rx444_done
-    eq rx444_pos, -1, rx444_fail
+    rx430_cur."!cursor_debug"("NEXT ", "term:sym<package_declarator>")
+  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
-  rx444_done:
-    rx444_cur."!cursor_fail"()
-    rx444_cur."!cursor_debug"("FAIL  ", "term:sym<package_declarator>")
-    .return (rx444_cur)
+  rx430_done:
+    rx430_cur."!cursor_fail"()
+    rx430_cur."!cursor_debug"("FAIL  ", "term:sym<package_declarator>")
+    .return (rx430_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>"  :subid("104_1277356913.9538") :method
+.sub "!PREFIX__term:sym<package_declarator>"  :subid("106_1280467477.44751") :method
 .annotate 'line', 4
-    $P446 = self."!PREFIX__!subrule"("package_declarator", "")
-    new $P447, "ResizablePMCArray"
-    push $P447, $P446
-    .return ($P447)
+    $P432 = self."!PREFIX__!subrule"("package_declarator", "")
+    new $P433, "ResizablePMCArray"
+    push $P433, $P432
+    .return ($P433)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<scope_declarator>"  :subid("105_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "term:sym<scope_declarator>"  :subid("107_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx450_tgt
-    .local int rx450_pos
-    .local int rx450_off
-    .local int rx450_eos
-    .local int rx450_rep
-    .local pmc rx450_cur
-    (rx450_cur, rx450_pos, rx450_tgt) = self."!cursor_start"()
-    rx450_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
-    .lex unicode:"$\x{a2}", rx450_cur
+    .local string rx436_tgt
+    .local int rx436_pos
+    .local int rx436_off
+    .local int rx436_eos
+    .local int rx436_rep
+    .local pmc rx436_cur
+    (rx436_cur, rx436_pos, rx436_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx436_cur
     .local pmc match
     .lex "$/", match
-    length rx450_eos, rx450_tgt
-    gt rx450_pos, rx450_eos, rx450_done
-    set rx450_off, 0
-    lt rx450_pos, 2, rx450_start
-    sub rx450_off, rx450_pos, 1
-    substr rx450_tgt, rx450_tgt, rx450_off
-  rx450_start:
+    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
+    rx436_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan454_done
-    goto rxscan454_scan
-  rxscan454_loop:
-    ($P10) = rx450_cur."from"()
+    ne $I10, -1, rxscan440_done
+    goto rxscan440_scan
+  rxscan440_loop:
+    ($P10) = rx436_cur."from"()
     inc $P10
-    set rx450_pos, $P10
-    ge rx450_pos, rx450_eos, rxscan454_done
-  rxscan454_scan:
-    set_addr $I10, rxscan454_loop
-    rx450_cur."!mark_push"(0, rx450_pos, $I10)
-  rxscan454_done:
-.annotate 'line', 228
+    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:
+.annotate 'line', 229
   # rx subrule "scope_declarator" subtype=capture negate=
-    rx450_cur."!cursor_pos"(rx450_pos)
-    $P10 = rx450_cur."scope_declarator"()
-    unless $P10, rx450_fail
-    rx450_cur."!mark_push"(0, -1, 0, $P10)
+    rx436_cur."!cursor_pos"(rx436_pos)
+    $P10 = rx436_cur."scope_declarator"()
+    unless $P10, rx436_fail
+    rx436_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("scope_declarator")
-    rx450_pos = $P10."pos"()
+    rx436_pos = $P10."pos"()
   # rx pass
-    rx450_cur."!cursor_pass"(rx450_pos, "term:sym<scope_declarator>")
-    rx450_cur."!cursor_debug"("PASS  ", "term:sym<scope_declarator>", " at pos=", rx450_pos)
-    .return (rx450_cur)
-  rx450_fail:
+    rx436_cur."!cursor_pass"(rx436_pos, "term:sym<scope_declarator>")
+    rx436_cur."!cursor_debug"("PASS  ", "term:sym<scope_declarator>", " at pos=", rx436_pos)
+    .return (rx436_cur)
+  rx436_restart:
 .annotate 'line', 4
-    (rx450_rep, rx450_pos, $I10, $P10) = rx450_cur."!mark_fail"(0)
-    lt rx450_pos, -1, rx450_done
-    eq rx450_pos, -1, rx450_fail
+    rx436_cur."!cursor_debug"("NEXT ", "term:sym<scope_declarator>")
+  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
-  rx450_done:
-    rx450_cur."!cursor_fail"()
-    rx450_cur."!cursor_debug"("FAIL  ", "term:sym<scope_declarator>")
-    .return (rx450_cur)
+  rx436_done:
+    rx436_cur."!cursor_fail"()
+    rx436_cur."!cursor_debug"("FAIL  ", "term:sym<scope_declarator>")
+    .return (rx436_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>"  :subid("106_1277356913.9538") :method
+.sub "!PREFIX__term:sym<scope_declarator>"  :subid("108_1280467477.44751") :method
 .annotate 'line', 4
-    $P452 = self."!PREFIX__!subrule"("scope_declarator", "")
-    new $P453, "ResizablePMCArray"
-    push $P453, $P452
-    .return ($P453)
+    $P438 = self."!PREFIX__!subrule"("scope_declarator", "")
+    new $P439, "ResizablePMCArray"
+    push $P439, $P438
+    .return ($P439)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<routine_declarator>"  :subid("107_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "term:sym<routine_declarator>"  :subid("109_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx456_tgt
-    .local int rx456_pos
-    .local int rx456_off
-    .local int rx456_eos
-    .local int rx456_rep
-    .local pmc rx456_cur
-    (rx456_cur, rx456_pos, rx456_tgt) = self."!cursor_start"()
-    rx456_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
-    .lex unicode:"$\x{a2}", rx456_cur
+    .local string rx442_tgt
+    .local int rx442_pos
+    .local int rx442_off
+    .local int rx442_eos
+    .local int rx442_rep
+    .local pmc rx442_cur
+    (rx442_cur, rx442_pos, rx442_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx442_cur
     .local pmc match
     .lex "$/", match
-    length rx456_eos, rx456_tgt
-    gt rx456_pos, rx456_eos, rx456_done
-    set rx456_off, 0
-    lt rx456_pos, 2, rx456_start
-    sub rx456_off, rx456_pos, 1
-    substr rx456_tgt, rx456_tgt, rx456_off
-  rx456_start:
+    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
+    rx442_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan460_done
-    goto rxscan460_scan
-  rxscan460_loop:
-    ($P10) = rx456_cur."from"()
+    ne $I10, -1, rxscan446_done
+    goto rxscan446_scan
+  rxscan446_loop:
+    ($P10) = rx442_cur."from"()
     inc $P10
-    set rx456_pos, $P10
-    ge rx456_pos, rx456_eos, rxscan460_done
-  rxscan460_scan:
-    set_addr $I10, rxscan460_loop
-    rx456_cur."!mark_push"(0, rx456_pos, $I10)
-  rxscan460_done:
-.annotate 'line', 229
+    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:
+.annotate 'line', 230
   # rx subrule "routine_declarator" subtype=capture negate=
-    rx456_cur."!cursor_pos"(rx456_pos)
-    $P10 = rx456_cur."routine_declarator"()
-    unless $P10, rx456_fail
-    rx456_cur."!mark_push"(0, -1, 0, $P10)
+    rx442_cur."!cursor_pos"(rx442_pos)
+    $P10 = rx442_cur."routine_declarator"()
+    unless $P10, rx442_fail
+    rx442_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("routine_declarator")
-    rx456_pos = $P10."pos"()
+    rx442_pos = $P10."pos"()
   # rx pass
-    rx456_cur."!cursor_pass"(rx456_pos, "term:sym<routine_declarator>")
-    rx456_cur."!cursor_debug"("PASS  ", "term:sym<routine_declarator>", " at pos=", rx456_pos)
-    .return (rx456_cur)
-  rx456_fail:
+    rx442_cur."!cursor_pass"(rx442_pos, "term:sym<routine_declarator>")
+    rx442_cur."!cursor_debug"("PASS  ", "term:sym<routine_declarator>", " at pos=", rx442_pos)
+    .return (rx442_cur)
+  rx442_restart:
 .annotate 'line', 4
-    (rx456_rep, rx456_pos, $I10, $P10) = rx456_cur."!mark_fail"(0)
-    lt rx456_pos, -1, rx456_done
-    eq rx456_pos, -1, rx456_fail
+    rx442_cur."!cursor_debug"("NEXT ", "term:sym<routine_declarator>")
+  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
-  rx456_done:
-    rx456_cur."!cursor_fail"()
-    rx456_cur."!cursor_debug"("FAIL  ", "term:sym<routine_declarator>")
-    .return (rx456_cur)
+  rx442_done:
+    rx442_cur."!cursor_fail"()
+    rx442_cur."!cursor_debug"("FAIL  ", "term:sym<routine_declarator>")
+    .return (rx442_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>"  :subid("108_1277356913.9538") :method
+.sub "!PREFIX__term:sym<routine_declarator>"  :subid("110_1280467477.44751") :method
 .annotate 'line', 4
-    $P458 = self."!PREFIX__!subrule"("routine_declarator", "")
-    new $P459, "ResizablePMCArray"
-    push $P459, $P458
-    .return ($P459)
+    $P444 = self."!PREFIX__!subrule"("routine_declarator", "")
+    new $P445, "ResizablePMCArray"
+    push $P445, $P444
+    .return ($P445)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<multi_declarator>"  :subid("109_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "term:sym<multi_declarator>"  :subid("111_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .const 'Sub' $P467 = "111_1277356913.9538" 
-    capture_lex $P467
-    .local string rx462_tgt
-    .local int rx462_pos
-    .local int rx462_off
-    .local int rx462_eos
-    .local int rx462_rep
-    .local pmc rx462_cur
-    (rx462_cur, rx462_pos, rx462_tgt) = self."!cursor_start"()
-    rx462_cur."!cursor_debug"("START ", "term:sym<multi_declarator>")
-    .lex unicode:"$\x{a2}", rx462_cur
+    .const 'Sub' $P453 = "113_1280467477.44751" 
+    capture_lex $P453
+    .local string rx448_tgt
+    .local int rx448_pos
+    .local int rx448_off
+    .local int rx448_eos
+    .local int rx448_rep
+    .local pmc rx448_cur
+    (rx448_cur, rx448_pos, rx448_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx448_cur
     .local pmc match
     .lex "$/", match
-    length rx462_eos, rx462_tgt
-    gt rx462_pos, rx462_eos, rx462_done
-    set rx462_off, 0
-    lt rx462_pos, 2, rx462_start
-    sub rx462_off, rx462_pos, 1
-    substr rx462_tgt, rx462_tgt, rx462_off
-  rx462_start:
+    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
+    rx448_cur."!cursor_debug"("START ", "term:sym<multi_declarator>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan465_done
-    goto rxscan465_scan
-  rxscan465_loop:
-    ($P10) = rx462_cur."from"()
+    ne $I10, -1, rxscan451_done
+    goto rxscan451_scan
+  rxscan451_loop:
+    ($P10) = rx448_cur."from"()
     inc $P10
-    set rx462_pos, $P10
-    ge rx462_pos, rx462_eos, rxscan465_done
-  rxscan465_scan:
-    set_addr $I10, rxscan465_loop
-    rx462_cur."!mark_push"(0, rx462_pos, $I10)
-  rxscan465_done:
-.annotate 'line', 230
+    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:
+.annotate 'line', 231
   # rx subrule "before" subtype=zerowidth negate=
-    rx462_cur."!cursor_pos"(rx462_pos)
-    .const 'Sub' $P467 = "111_1277356913.9538" 
-    capture_lex $P467
-    $P10 = rx462_cur."before"($P467)
-    unless $P10, rx462_fail
+    rx448_cur."!cursor_pos"(rx448_pos)
+    .const 'Sub' $P453 = "113_1280467477.44751" 
+    capture_lex $P453
+    $P10 = rx448_cur."before"($P453)
+    unless $P10, rx448_fail
   # rx subrule "multi_declarator" subtype=capture negate=
-    rx462_cur."!cursor_pos"(rx462_pos)
-    $P10 = rx462_cur."multi_declarator"()
-    unless $P10, rx462_fail
-    rx462_cur."!mark_push"(0, -1, 0, $P10)
+    rx448_cur."!cursor_pos"(rx448_pos)
+    $P10 = rx448_cur."multi_declarator"()
+    unless $P10, rx448_fail
+    rx448_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("multi_declarator")
-    rx462_pos = $P10."pos"()
+    rx448_pos = $P10."pos"()
   # rx pass
-    rx462_cur."!cursor_pass"(rx462_pos, "term:sym<multi_declarator>")
-    rx462_cur."!cursor_debug"("PASS  ", "term:sym<multi_declarator>", " at pos=", rx462_pos)
-    .return (rx462_cur)
-  rx462_fail:
+    rx448_cur."!cursor_pass"(rx448_pos, "term:sym<multi_declarator>")
+    rx448_cur."!cursor_debug"("PASS  ", "term:sym<multi_declarator>", " at pos=", rx448_pos)
+    .return (rx448_cur)
+  rx448_restart:
 .annotate 'line', 4
-    (rx462_rep, rx462_pos, $I10, $P10) = rx462_cur."!mark_fail"(0)
-    lt rx462_pos, -1, rx462_done
-    eq rx462_pos, -1, rx462_fail
+    rx448_cur."!cursor_debug"("NEXT ", "term:sym<multi_declarator>")
+  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
-  rx462_done:
-    rx462_cur."!cursor_fail"()
-    rx462_cur."!cursor_debug"("FAIL  ", "term:sym<multi_declarator>")
-    .return (rx462_cur)
+  rx448_done:
+    rx448_cur."!cursor_fail"()
+    rx448_cur."!cursor_debug"("FAIL  ", "term:sym<multi_declarator>")
+    .return (rx448_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<multi_declarator>"  :subid("110_1277356913.9538") :method
+.sub "!PREFIX__term:sym<multi_declarator>"  :subid("112_1280467477.44751") :method
 .annotate 'line', 4
-    new $P464, "ResizablePMCArray"
-    push $P464, ""
-    .return ($P464)
+    new $P450, "ResizablePMCArray"
+    push $P450, ""
+    .return ($P450)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block466"  :anon :subid("111_1277356913.9538") :method :outer("109_1277356913.9538")
-.annotate 'line', 230
-    .local string rx468_tgt
-    .local int rx468_pos
-    .local int rx468_off
-    .local int rx468_eos
-    .local int rx468_rep
-    .local pmc rx468_cur
-    (rx468_cur, rx468_pos, rx468_tgt) = self."!cursor_start"()
-    rx468_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx468_cur
-    .local pmc match
-    .lex "$/", match
-    length rx468_eos, rx468_tgt
-    gt rx468_pos, rx468_eos, rx468_done
-    set rx468_off, 0
-    lt rx468_pos, 2, rx468_start
-    sub rx468_off, rx468_pos, 1
-    substr rx468_tgt, rx468_tgt, rx468_off
-  rx468_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan469_done
-    goto rxscan469_scan
-  rxscan469_loop:
-    ($P10) = rx468_cur."from"()
-    inc $P10
-    set rx468_pos, $P10
-    ge rx468_pos, rx468_eos, rxscan469_done
-  rxscan469_scan:
-    set_addr $I10, rxscan469_loop
-    rx468_cur."!mark_push"(0, rx468_pos, $I10)
-  rxscan469_done:
-  alt470_0:
-    set_addr $I10, alt470_1
-    rx468_cur."!mark_push"(0, rx468_pos, $I10)
+.sub "_block452"  :anon :subid("113_1280467477.44751") :method :outer("111_1280467477.44751")
+.annotate 'line', 231
+    .local string rx454_tgt
+    .local int rx454_pos
+    .local int rx454_off
+    .local int rx454_eos
+    .local int rx454_rep
+    .local pmc rx454_cur
+    (rx454_cur, rx454_pos, rx454_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx454_cur
+    .local pmc match
+    .lex "$/", match
+    length rx454_eos, rx454_tgt
+    gt rx454_pos, rx454_eos, rx454_done
+    set rx454_off, 0
+    lt rx454_pos, 2, rx454_start
+    sub rx454_off, rx454_pos, 1
+    substr rx454_tgt, rx454_tgt, rx454_off
+  rx454_start:
+    eq $I10, 1, rx454_restart
+    rx454_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan455_done
+    goto rxscan455_scan
+  rxscan455_loop:
+    ($P10) = rx454_cur."from"()
+    inc $P10
+    set rx454_pos, $P10
+    ge rx454_pos, rx454_eos, rxscan455_done
+  rxscan455_scan:
+    set_addr $I10, rxscan455_loop
+    rx454_cur."!mark_push"(0, rx454_pos, $I10)
+  rxscan455_done:
+  alt456_0:
+    set_addr $I10, alt456_1
+    rx454_cur."!mark_push"(0, rx454_pos, $I10)
   # rx literal  "multi"
-    add $I11, rx468_pos, 5
-    gt $I11, rx468_eos, rx468_fail
-    sub $I11, rx468_pos, rx468_off
-    substr $S10, rx468_tgt, $I11, 5
-    ne $S10, "multi", rx468_fail
-    add rx468_pos, 5
-    goto alt470_end
-  alt470_1:
-    set_addr $I10, alt470_2
-    rx468_cur."!mark_push"(0, rx468_pos, $I10)
+    add $I11, rx454_pos, 5
+    gt $I11, rx454_eos, rx454_fail
+    sub $I11, rx454_pos, rx454_off
+    substr $S10, rx454_tgt, $I11, 5
+    ne $S10, "multi", rx454_fail
+    add rx454_pos, 5
+    goto alt456_end
+  alt456_1:
+    set_addr $I10, alt456_2
+    rx454_cur."!mark_push"(0, rx454_pos, $I10)
   # rx literal  "proto"
-    add $I11, rx468_pos, 5
-    gt $I11, rx468_eos, rx468_fail
-    sub $I11, rx468_pos, rx468_off
-    substr $S10, rx468_tgt, $I11, 5
-    ne $S10, "proto", rx468_fail
-    add rx468_pos, 5
-    goto alt470_end
-  alt470_2:
+    add $I11, rx454_pos, 5
+    gt $I11, rx454_eos, rx454_fail
+    sub $I11, rx454_pos, rx454_off
+    substr $S10, rx454_tgt, $I11, 5
+    ne $S10, "proto", rx454_fail
+    add rx454_pos, 5
+    goto alt456_end
+  alt456_2:
   # rx literal  "only"
-    add $I11, rx468_pos, 4
-    gt $I11, rx468_eos, rx468_fail
-    sub $I11, rx468_pos, rx468_off
-    substr $S10, rx468_tgt, $I11, 4
-    ne $S10, "only", rx468_fail
-    add rx468_pos, 4
-  alt470_end:
-  # rx pass
-    rx468_cur."!cursor_pass"(rx468_pos, "")
-    rx468_cur."!cursor_debug"("PASS  ", "", " at pos=", rx468_pos)
-    .return (rx468_cur)
-  rx468_fail:
-    (rx468_rep, rx468_pos, $I10, $P10) = rx468_cur."!mark_fail"(0)
-    lt rx468_pos, -1, rx468_done
-    eq rx468_pos, -1, rx468_fail
-    jump $I10
-  rx468_done:
-    rx468_cur."!cursor_fail"()
-    rx468_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx468_cur)
+    add $I11, rx454_pos, 4
+    gt $I11, rx454_eos, rx454_fail
+    sub $I11, rx454_pos, rx454_off
+    substr $S10, rx454_tgt, $I11, 4
+    ne $S10, "only", rx454_fail
+    add rx454_pos, 4
+  alt456_end:
+  # rx pass
+    rx454_cur."!cursor_pass"(rx454_pos, "")
+    rx454_cur."!cursor_debug"("PASS  ", "", " at pos=", rx454_pos)
+    .return (rx454_cur)
+  rx454_restart:
+    rx454_cur."!cursor_debug"("NEXT ", "")
+  rx454_fail:
+    (rx454_rep, rx454_pos, $I10, $P10) = rx454_cur."!mark_fail"(0)
+    lt rx454_pos, -1, rx454_done
+    eq rx454_pos, -1, rx454_fail
+    jump $I10
+  rx454_done:
+    rx454_cur."!cursor_fail"()
+    rx454_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx454_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>"  :subid("112_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 4
-    .local string rx472_tgt
-    .local int rx472_pos
-    .local int rx472_off
-    .local int rx472_eos
-    .local int rx472_rep
-    .local pmc rx472_cur
-    (rx472_cur, rx472_pos, rx472_tgt) = self."!cursor_start"()
-    rx472_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
-    .lex unicode:"$\x{a2}", rx472_cur
-    .local pmc match
-    .lex "$/", match
-    length rx472_eos, rx472_tgt
-    gt rx472_pos, rx472_eos, rx472_done
-    set rx472_off, 0
-    lt rx472_pos, 2, rx472_start
-    sub rx472_off, rx472_pos, 1
-    substr rx472_tgt, rx472_tgt, rx472_off
-  rx472_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan476_done
-    goto rxscan476_scan
-  rxscan476_loop:
-    ($P10) = rx472_cur."from"()
-    inc $P10
-    set rx472_pos, $P10
-    ge rx472_pos, rx472_eos, rxscan476_done
-  rxscan476_scan:
-    set_addr $I10, rxscan476_loop
-    rx472_cur."!mark_push"(0, rx472_pos, $I10)
-  rxscan476_done:
-.annotate 'line', 231
+.sub "term:sym<regex_declarator>"  :subid("114_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+    .local string rx458_tgt
+    .local int rx458_pos
+    .local int rx458_off
+    .local int rx458_eos
+    .local int rx458_rep
+    .local pmc rx458_cur
+    (rx458_cur, rx458_pos, rx458_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx458_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan462_done
+    goto rxscan462_scan
+  rxscan462_loop:
+    ($P10) = rx458_cur."from"()
+    inc $P10
+    set rx458_pos, $P10
+    ge rx458_pos, rx458_eos, rxscan462_done
+  rxscan462_scan:
+    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=
-    rx472_cur."!cursor_pos"(rx472_pos)
-    $P10 = rx472_cur."regex_declarator"()
-    unless $P10, rx472_fail
-    rx472_cur."!mark_push"(0, -1, 0, $P10)
+    rx458_cur."!cursor_pos"(rx458_pos)
+    $P10 = rx458_cur."regex_declarator"()
+    unless $P10, rx458_fail
+    rx458_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("regex_declarator")
-    rx472_pos = $P10."pos"()
+    rx458_pos = $P10."pos"()
   # rx pass
-    rx472_cur."!cursor_pass"(rx472_pos, "term:sym<regex_declarator>")
-    rx472_cur."!cursor_debug"("PASS  ", "term:sym<regex_declarator>", " at pos=", rx472_pos)
-    .return (rx472_cur)
-  rx472_fail:
+    rx458_cur."!cursor_pass"(rx458_pos, "term:sym<regex_declarator>")
+    rx458_cur."!cursor_debug"("PASS  ", "term:sym<regex_declarator>", " at pos=", rx458_pos)
+    .return (rx458_cur)
+  rx458_restart:
 .annotate 'line', 4
-    (rx472_rep, rx472_pos, $I10, $P10) = rx472_cur."!mark_fail"(0)
-    lt rx472_pos, -1, rx472_done
-    eq rx472_pos, -1, rx472_fail
+    rx458_cur."!cursor_debug"("NEXT ", "term:sym<regex_declarator>")
+  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
-  rx472_done:
-    rx472_cur."!cursor_fail"()
-    rx472_cur."!cursor_debug"("FAIL  ", "term:sym<regex_declarator>")
-    .return (rx472_cur)
+  rx458_done:
+    rx458_cur."!cursor_fail"()
+    rx458_cur."!cursor_debug"("FAIL  ", "term:sym<regex_declarator>")
+    .return (rx458_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>"  :subid("113_1277356913.9538") :method
+.sub "!PREFIX__term:sym<regex_declarator>"  :subid("115_1280467477.44751") :method
 .annotate 'line', 4
-    $P474 = self."!PREFIX__!subrule"("regex_declarator", "")
-    new $P475, "ResizablePMCArray"
-    push $P475, $P474
-    .return ($P475)
+    $P460 = self."!PREFIX__!subrule"("regex_declarator", "")
+    new $P461, "ResizablePMCArray"
+    push $P461, $P460
+    .return ($P461)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<statement_prefix>"  :subid("114_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "term:sym<statement_prefix>"  :subid("116_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx478_tgt
-    .local int rx478_pos
-    .local int rx478_off
-    .local int rx478_eos
-    .local int rx478_rep
-    .local pmc rx478_cur
-    (rx478_cur, rx478_pos, rx478_tgt) = self."!cursor_start"()
-    rx478_cur."!cursor_debug"("START ", "term:sym<statement_prefix>")
-    .lex unicode:"$\x{a2}", rx478_cur
+    .local string rx464_tgt
+    .local int rx464_pos
+    .local int rx464_off
+    .local int rx464_eos
+    .local int rx464_rep
+    .local pmc rx464_cur
+    (rx464_cur, rx464_pos, rx464_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx464_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:
+    length rx464_eos, rx464_tgt
+    gt rx464_pos, rx464_eos, rx464_done
+    set rx464_off, 0
+    lt rx464_pos, 2, rx464_start
+    sub rx464_off, rx464_pos, 1
+    substr rx464_tgt, rx464_tgt, rx464_off
+  rx464_start:
+    eq $I10, 1, rx464_restart
+    rx464_cur."!cursor_debug"("START ", "term:sym<statement_prefix>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan482_done
-    goto rxscan482_scan
-  rxscan482_loop:
-    ($P10) = rx478_cur."from"()
+    ne $I10, -1, rxscan468_done
+    goto rxscan468_scan
+  rxscan468_loop:
+    ($P10) = rx464_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:
-.annotate 'line', 232
+    set rx464_pos, $P10
+    ge rx464_pos, rx464_eos, rxscan468_done
+  rxscan468_scan:
+    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=
-    rx478_cur."!cursor_pos"(rx478_pos)
-    $P10 = rx478_cur."statement_prefix"()
-    unless $P10, rx478_fail
-    rx478_cur."!mark_push"(0, -1, 0, $P10)
+    rx464_cur."!cursor_pos"(rx464_pos)
+    $P10 = rx464_cur."statement_prefix"()
+    unless $P10, rx464_fail
+    rx464_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement_prefix")
-    rx478_pos = $P10."pos"()
+    rx464_pos = $P10."pos"()
   # rx pass
-    rx478_cur."!cursor_pass"(rx478_pos, "term:sym<statement_prefix>")
-    rx478_cur."!cursor_debug"("PASS  ", "term:sym<statement_prefix>", " at pos=", rx478_pos)
-    .return (rx478_cur)
-  rx478_fail:
+    rx464_cur."!cursor_pass"(rx464_pos, "term:sym<statement_prefix>")
+    rx464_cur."!cursor_debug"("PASS  ", "term:sym<statement_prefix>", " at pos=", rx464_pos)
+    .return (rx464_cur)
+  rx464_restart:
 .annotate 'line', 4
-    (rx478_rep, rx478_pos, $I10, $P10) = rx478_cur."!mark_fail"(0)
-    lt rx478_pos, -1, rx478_done
-    eq rx478_pos, -1, rx478_fail
+    rx464_cur."!cursor_debug"("NEXT ", "term:sym<statement_prefix>")
+  rx464_fail:
+    (rx464_rep, rx464_pos, $I10, $P10) = rx464_cur."!mark_fail"(0)
+    lt rx464_pos, -1, rx464_done
+    eq rx464_pos, -1, rx464_fail
     jump $I10
-  rx478_done:
-    rx478_cur."!cursor_fail"()
-    rx478_cur."!cursor_debug"("FAIL  ", "term:sym<statement_prefix>")
-    .return (rx478_cur)
+  rx464_done:
+    rx464_cur."!cursor_fail"()
+    rx464_cur."!cursor_debug"("FAIL  ", "term:sym<statement_prefix>")
+    .return (rx464_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>"  :subid("115_1277356913.9538") :method
+.sub "!PREFIX__term:sym<statement_prefix>"  :subid("117_1280467477.44751") :method
 .annotate 'line', 4
-    $P480 = self."!PREFIX__!subrule"("statement_prefix", "")
-    new $P481, "ResizablePMCArray"
-    push $P481, $P480
-    .return ($P481)
+    $P466 = self."!PREFIX__!subrule"("statement_prefix", "")
+    new $P467, "ResizablePMCArray"
+    push $P467, $P466
+    .return ($P467)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>"  :subid("116_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "term:sym<lambda>"  :subid("118_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx484_tgt
-    .local int rx484_pos
-    .local int rx484_off
-    .local int rx484_eos
-    .local int rx484_rep
-    .local pmc rx484_cur
-    (rx484_cur, rx484_pos, rx484_tgt) = self."!cursor_start"()
-    rx484_cur."!cursor_debug"("START ", "term:sym<lambda>")
-    .lex unicode:"$\x{a2}", rx484_cur
+    .local string rx470_tgt
+    .local int rx470_pos
+    .local int rx470_off
+    .local int rx470_eos
+    .local int rx470_rep
+    .local pmc rx470_cur
+    (rx470_cur, rx470_pos, rx470_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx470_cur
     .local pmc match
     .lex "$/", match
-    length rx484_eos, rx484_tgt
-    gt rx484_pos, rx484_eos, rx484_done
-    set rx484_off, 0
-    lt rx484_pos, 2, rx484_start
-    sub rx484_off, rx484_pos, 1
-    substr rx484_tgt, rx484_tgt, rx484_off
-  rx484_start:
+    length rx470_eos, rx470_tgt
+    gt rx470_pos, rx470_eos, rx470_done
+    set rx470_off, 0
+    lt rx470_pos, 2, rx470_start
+    sub rx470_off, rx470_pos, 1
+    substr rx470_tgt, rx470_tgt, rx470_off
+  rx470_start:
+    eq $I10, 1, rx470_restart
+    rx470_cur."!cursor_debug"("START ", "term:sym<lambda>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan487_done
-    goto rxscan487_scan
-  rxscan487_loop:
-    ($P10) = rx484_cur."from"()
+    ne $I10, -1, rxscan473_done
+    goto rxscan473_scan
+  rxscan473_loop:
+    ($P10) = rx470_cur."from"()
     inc $P10
-    set rx484_pos, $P10
-    ge rx484_pos, rx484_eos, rxscan487_done
-  rxscan487_scan:
-    set_addr $I10, rxscan487_loop
-    rx484_cur."!mark_push"(0, rx484_pos, $I10)
-  rxscan487_done:
-.annotate 'line', 233
+    set rx470_pos, $P10
+    ge rx470_pos, rx470_eos, rxscan473_done
+  rxscan473_scan:
+    set_addr $I10, rxscan473_loop
+    rx470_cur."!mark_push"(0, rx470_pos, $I10)
+  rxscan473_done:
+.annotate 'line', 234
   # rx subrule "lambda" subtype=zerowidth negate=
-    rx484_cur."!cursor_pos"(rx484_pos)
-    $P10 = rx484_cur."lambda"()
-    unless $P10, rx484_fail
+    rx470_cur."!cursor_pos"(rx470_pos)
+    $P10 = rx470_cur."lambda"()
+    unless $P10, rx470_fail
   # rx subrule "pblock" subtype=capture negate=
-    rx484_cur."!cursor_pos"(rx484_pos)
-    $P10 = rx484_cur."pblock"()
-    unless $P10, rx484_fail
-    rx484_cur."!mark_push"(0, -1, 0, $P10)
+    rx470_cur."!cursor_pos"(rx470_pos)
+    $P10 = rx470_cur."pblock"()
+    unless $P10, rx470_fail
+    rx470_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pblock")
-    rx484_pos = $P10."pos"()
+    rx470_pos = $P10."pos"()
   # rx pass
-    rx484_cur."!cursor_pass"(rx484_pos, "term:sym<lambda>")
-    rx484_cur."!cursor_debug"("PASS  ", "term:sym<lambda>", " at pos=", rx484_pos)
-    .return (rx484_cur)
-  rx484_fail:
+    rx470_cur."!cursor_pass"(rx470_pos, "term:sym<lambda>")
+    rx470_cur."!cursor_debug"("PASS  ", "term:sym<lambda>", " at pos=", rx470_pos)
+    .return (rx470_cur)
+  rx470_restart:
 .annotate 'line', 4
-    (rx484_rep, rx484_pos, $I10, $P10) = rx484_cur."!mark_fail"(0)
-    lt rx484_pos, -1, rx484_done
-    eq rx484_pos, -1, rx484_fail
+    rx470_cur."!cursor_debug"("NEXT ", "term:sym<lambda>")
+  rx470_fail:
+    (rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0)
+    lt rx470_pos, -1, rx470_done
+    eq rx470_pos, -1, rx470_fail
     jump $I10
-  rx484_done:
-    rx484_cur."!cursor_fail"()
-    rx484_cur."!cursor_debug"("FAIL  ", "term:sym<lambda>")
-    .return (rx484_cur)
+  rx470_done:
+    rx470_cur."!cursor_fail"()
+    rx470_cur."!cursor_debug"("FAIL  ", "term:sym<lambda>")
+    .return (rx470_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>"  :subid("117_1277356913.9538") :method
+.sub "!PREFIX__term:sym<lambda>"  :subid("119_1280467477.44751") :method
 .annotate 'line', 4
-    new $P486, "ResizablePMCArray"
-    push $P486, ""
-    .return ($P486)
+    new $P472, "ResizablePMCArray"
+    push $P472, ""
+    .return ($P472)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "fatarrow"  :subid("118_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "fatarrow"  :subid("120_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx489_tgt
-    .local int rx489_pos
-    .local int rx489_off
-    .local int rx489_eos
-    .local int rx489_rep
-    .local pmc rx489_cur
-    (rx489_cur, rx489_pos, rx489_tgt) = self."!cursor_start"()
-    rx489_cur."!cursor_debug"("START ", "fatarrow")
-    .lex unicode:"$\x{a2}", rx489_cur
+    .local string rx475_tgt
+    .local int rx475_pos
+    .local int rx475_off
+    .local int rx475_eos
+    .local int rx475_rep
+    .local pmc rx475_cur
+    (rx475_cur, rx475_pos, rx475_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx475_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:
+    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
+    rx475_cur."!cursor_debug"("START ", "fatarrow")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan493_done
-    goto rxscan493_scan
-  rxscan493_loop:
-    ($P10) = rx489_cur."from"()
+    ne $I10, -1, rxscan479_done
+    goto rxscan479_scan
+  rxscan479_loop:
+    ($P10) = rx475_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:
-.annotate 'line', 236
+    set rx475_pos, $P10
+    ge rx475_pos, rx475_eos, rxscan479_done
+  rxscan479_scan:
+    set_addr $I10, rxscan479_loop
+    rx475_cur."!mark_push"(0, rx475_pos, $I10)
+  rxscan479_done:
+.annotate 'line', 237
   # rx subrule "identifier" subtype=capture negate=
-    rx489_cur."!cursor_pos"(rx489_pos)
-    $P10 = rx489_cur."identifier"()
-    unless $P10, rx489_fail
-    rx489_cur."!mark_push"(0, -1, 0, $P10)
+    rx475_cur."!cursor_pos"(rx475_pos)
+    $P10 = rx475_cur."identifier"()
+    unless $P10, rx475_fail
+    rx475_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("key")
-    rx489_pos = $P10."pos"()
-  # rx rxquantr494 ** 0..*
-    set_addr $I495, rxquantr494_done
-    rx489_cur."!mark_push"(0, rx489_pos, $I495)
-  rxquantr494_loop:
+    rx475_pos = $P10."pos"()
+  # rx rxquantr480 ** 0..*
+    set_addr $I10, rxquantr480_done
+    rx475_cur."!mark_push"(0, rx475_pos, $I10)
+  rxquantr480_loop:
   # rx enumcharlist negate=0 
-    ge rx489_pos, rx489_eos, rx489_fail
-    sub $I10, rx489_pos, rx489_off
-    substr $S10, rx489_tgt, $I10, 1
+    ge rx475_pos, rx475_eos, rx475_fail
+    sub $I10, rx475_pos, rx475_off
+    substr $S10, rx475_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, rx489_fail
-    inc rx489_pos
-    (rx489_rep) = rx489_cur."!mark_commit"($I495)
-    rx489_cur."!mark_push"(rx489_rep, rx489_pos, $I495)
-    goto rxquantr494_loop
-  rxquantr494_done:
+    lt $I11, 0, rx475_fail
+    inc rx475_pos
+    set_addr $I10, rxquantr480_done
+    (rx475_rep) = rx475_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr480_done
+    rx475_cur."!mark_push"(rx475_rep, rx475_pos, $I10)
+    goto rxquantr480_loop
+  rxquantr480_done:
   # rx literal  "=>"
-    add $I11, rx489_pos, 2
-    gt $I11, rx489_eos, rx489_fail
-    sub $I11, rx489_pos, rx489_off
-    substr $S10, rx489_tgt, $I11, 2
-    ne $S10, "=>", rx489_fail
-    add rx489_pos, 2
-  # rx subrule "ws" subtype=method negate=
-    rx489_cur."!cursor_pos"(rx489_pos)
-    $P10 = rx489_cur."ws"()
-    unless $P10, rx489_fail
-    rx489_pos = $P10."pos"()
+    add $I11, rx475_pos, 2
+    gt $I11, rx475_eos, rx475_fail
+    sub $I11, rx475_pos, rx475_off
+    substr $S10, rx475_tgt, $I11, 2
+    ne $S10, "=>", rx475_fail
+    add rx475_pos, 2
+  # rx subrule "ws" subtype=method negate=
+    rx475_cur."!cursor_pos"(rx475_pos)
+    $P10 = rx475_cur."ws"()
+    unless $P10, rx475_fail
+    rx475_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx489_cur."!cursor_pos"(rx489_pos)
-    $P10 = rx489_cur."EXPR"("i=")
-    unless $P10, rx489_fail
-    rx489_cur."!mark_push"(0, -1, 0, $P10)
+    rx475_cur."!cursor_pos"(rx475_pos)
+    $P10 = rx475_cur."EXPR"("i=")
+    unless $P10, rx475_fail
+    rx475_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("val")
-    rx489_pos = $P10."pos"()
-.annotate 'line', 235
+    rx475_pos = $P10."pos"()
+.annotate 'line', 236
   # rx pass
-    rx489_cur."!cursor_pass"(rx489_pos, "fatarrow")
-    rx489_cur."!cursor_debug"("PASS  ", "fatarrow", " at pos=", rx489_pos)
-    .return (rx489_cur)
-  rx489_fail:
+    rx475_cur."!cursor_pass"(rx475_pos, "fatarrow")
+    rx475_cur."!cursor_debug"("PASS  ", "fatarrow", " at pos=", rx475_pos)
+    .return (rx475_cur)
+  rx475_restart:
 .annotate 'line', 4
-    (rx489_rep, rx489_pos, $I10, $P10) = rx489_cur."!mark_fail"(0)
-    lt rx489_pos, -1, rx489_done
-    eq rx489_pos, -1, rx489_fail
+    rx475_cur."!cursor_debug"("NEXT ", "fatarrow")
+  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
-  rx489_done:
-    rx489_cur."!cursor_fail"()
-    rx489_cur."!cursor_debug"("FAIL  ", "fatarrow")
-    .return (rx489_cur)
+  rx475_done:
+    rx475_cur."!cursor_fail"()
+    rx475_cur."!cursor_debug"("FAIL  ", "fatarrow")
+    .return (rx475_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow"  :subid("119_1277356913.9538") :method
+.sub "!PREFIX__fatarrow"  :subid("121_1280467477.44751") :method
 .annotate 'line', 4
-    $P491 = self."!PREFIX__!subrule"("identifier", "")
-    new $P492, "ResizablePMCArray"
-    push $P492, $P491
-    .return ($P492)
+    $P477 = self."!PREFIX__!subrule"("identifier", "")
+    new $P478, "ResizablePMCArray"
+    push $P478, $P477
+    .return ($P478)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "colonpair"  :subid("120_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "colonpair"  :subid("122_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx497_tgt
-    .local int rx497_pos
-    .local int rx497_off
-    .local int rx497_eos
-    .local int rx497_rep
-    .local pmc rx497_cur
-    (rx497_cur, rx497_pos, rx497_tgt) = self."!cursor_start"()
-    rx497_cur."!cursor_debug"("START ", "colonpair")
-    rx497_cur."!cursor_caparray"("circumfix")
-    .lex unicode:"$\x{a2}", rx497_cur
+    .local string rx482_tgt
+    .local int rx482_pos
+    .local int rx482_off
+    .local int rx482_eos
+    .local int rx482_rep
+    .local pmc rx482_cur
+    (rx482_cur, rx482_pos, rx482_tgt, $I10) = self."!cursor_start"()
+    rx482_cur."!cursor_caparray"("circumfix")
+    .lex unicode:"$\x{a2}", rx482_cur
     .local pmc match
     .lex "$/", match
-    length rx497_eos, rx497_tgt
-    gt rx497_pos, rx497_eos, rx497_done
-    set rx497_off, 0
-    lt rx497_pos, 2, rx497_start
-    sub rx497_off, rx497_pos, 1
-    substr rx497_tgt, rx497_tgt, rx497_off
-  rx497_start:
+    length rx482_eos, rx482_tgt
+    gt rx482_pos, rx482_eos, rx482_done
+    set rx482_off, 0
+    lt rx482_pos, 2, rx482_start
+    sub rx482_off, rx482_pos, 1
+    substr rx482_tgt, rx482_tgt, rx482_off
+  rx482_start:
+    eq $I10, 1, rx482_restart
+    rx482_cur."!cursor_debug"("START ", "colonpair")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan503_done
-    goto rxscan503_scan
-  rxscan503_loop:
-    ($P10) = rx497_cur."from"()
+    ne $I10, -1, rxscan488_done
+    goto rxscan488_scan
+  rxscan488_loop:
+    ($P10) = rx482_cur."from"()
     inc $P10
-    set rx497_pos, $P10
-    ge rx497_pos, rx497_eos, rxscan503_done
-  rxscan503_scan:
-    set_addr $I10, rxscan503_loop
-    rx497_cur."!mark_push"(0, rx497_pos, $I10)
-  rxscan503_done:
-.annotate 'line', 240
-  # rx literal  ":"
-    add $I11, rx497_pos, 1
-    gt $I11, rx497_eos, rx497_fail
-    sub $I11, rx497_pos, rx497_off
-    substr $S10, rx497_tgt, $I11, 1
-    ne $S10, ":", rx497_fail
-    add rx497_pos, 1
-  alt504_0:
+    set rx482_pos, $P10
+    ge rx482_pos, rx482_eos, rxscan488_done
+  rxscan488_scan:
+    set_addr $I10, rxscan488_loop
+    rx482_cur."!mark_push"(0, rx482_pos, $I10)
+  rxscan488_done:
 .annotate 'line', 241
-    set_addr $I10, alt504_1
-    rx497_cur."!mark_push"(0, rx497_pos, $I10)
+  # rx literal  ":"
+    add $I11, rx482_pos, 1
+    gt $I11, rx482_eos, rx482_fail
+    sub $I11, rx482_pos, rx482_off
+    substr $S10, rx482_tgt, $I11, 1
+    ne $S10, ":", rx482_fail
+    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_505_fail
-    rx497_cur."!mark_push"(0, rx497_pos, $I10)
+    set_addr $I10, rxcap_490_fail
+    rx482_cur."!mark_push"(0, rx482_pos, $I10)
   # rx literal  "!"
-    add $I11, rx497_pos, 1
-    gt $I11, rx497_eos, rx497_fail
-    sub $I11, rx497_pos, rx497_off
-    substr $S10, rx497_tgt, $I11, 1
-    ne $S10, "!", rx497_fail
-    add rx497_pos, 1
-    set_addr $I10, rxcap_505_fail
-    ($I12, $I11) = rx497_cur."!mark_peek"($I10)
-    rx497_cur."!cursor_pos"($I11)
-    ($P10) = rx497_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx497_pos, "")
-    rx497_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx482_pos, 1
+    gt $I11, rx482_eos, rx482_fail
+    sub $I11, rx482_pos, rx482_off
+    substr $S10, rx482_tgt, $I11, 1
+    ne $S10, "!", rx482_fail
+    add rx482_pos, 1
+    set_addr $I10, rxcap_490_fail
+    ($I12, $I11) = rx482_cur."!mark_peek"($I10)
+    rx482_cur."!cursor_pos"($I11)
+    ($P10) = rx482_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx482_pos, "")
+    rx482_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("not")
-    goto rxcap_505_done
-  rxcap_505_fail:
-    goto rx497_fail
-  rxcap_505_done:
+    goto rxcap_490_done
+  rxcap_490_fail:
+    goto rx482_fail
+  rxcap_490_done:
   # rx subrule "identifier" subtype=capture negate=
-    rx497_cur."!cursor_pos"(rx497_pos)
-    $P10 = rx497_cur."identifier"()
-    unless $P10, rx497_fail
-    rx497_cur."!mark_push"(0, -1, 0, $P10)
+    rx482_cur."!cursor_pos"(rx482_pos)
+    $P10 = rx482_cur."identifier"()
+    unless $P10, rx482_fail
+    rx482_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx497_pos = $P10."pos"()
-    goto alt504_end
-  alt504_1:
-    set_addr $I10, alt504_2
-    rx497_cur."!mark_push"(0, rx497_pos, $I10)
-.annotate 'line', 243
+    rx482_pos = $P10."pos"()
+    goto alt489_end
+  alt489_1:
+    set_addr $I10, alt489_2
+    rx482_cur."!mark_push"(0, rx482_pos, $I10)
+.annotate 'line', 244
   # rx subrule "identifier" subtype=capture negate=
-    rx497_cur."!cursor_pos"(rx497_pos)
-    $P10 = rx497_cur."identifier"()
-    unless $P10, rx497_fail
-    rx497_cur."!mark_push"(0, -1, 0, $P10)
+    rx482_cur."!cursor_pos"(rx482_pos)
+    $P10 = rx482_cur."identifier"()
+    unless $P10, rx482_fail
+    rx482_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx497_pos = $P10."pos"()
-  # rx rxquantr506 ** 0..1
-    set_addr $I507, rxquantr506_done
-    rx497_cur."!mark_push"(0, rx497_pos, $I507)
-  rxquantr506_loop:
+    rx482_pos = $P10."pos"()
+  # rx rxquantr491 ** 0..1
+    set_addr $I10, rxquantr491_done
+    rx482_cur."!mark_push"(0, rx482_pos, $I10)
+  rxquantr491_loop:
   # rx subrule "circumfix" subtype=capture negate=
-    rx497_cur."!cursor_pos"(rx497_pos)
-    $P10 = rx497_cur."circumfix"()
-    unless $P10, rx497_fail
-    rx497_cur."!mark_push"(0, -1, 0, $P10)
+    rx482_cur."!cursor_pos"(rx482_pos)
+    $P10 = rx482_cur."circumfix"()
+    unless $P10, rx482_fail
+    goto rxsubrule492_pass
+  rxsubrule492_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx482_fail
+  rxsubrule492_pass:
+    set_addr $I10, rxsubrule492_back
+    rx482_cur."!mark_push"(0, rx482_pos, $I10, $P10)
     $P10."!cursor_names"("circumfix")
-    rx497_pos = $P10."pos"()
-    (rx497_rep) = rx497_cur."!mark_commit"($I507)
-  rxquantr506_done:
-    goto alt504_end
-  alt504_2:
-.annotate 'line', 244
+    rx482_pos = $P10."pos"()
+    set_addr $I10, rxquantr491_done
+    (rx482_rep) = rx482_cur."!mark_commit"($I10)
+  rxquantr491_done:
+    goto alt489_end
+  alt489_2:
+.annotate 'line', 245
   # rx subrule "circumfix" subtype=capture negate=
-    rx497_cur."!cursor_pos"(rx497_pos)
-    $P10 = rx497_cur."circumfix"()
-    unless $P10, rx497_fail
-    rx497_cur."!mark_push"(0, -1, 0, $P10)
+    rx482_cur."!cursor_pos"(rx482_pos)
+    $P10 = rx482_cur."circumfix"()
+    unless $P10, rx482_fail
+    rx482_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("circumfix")
-    rx497_pos = $P10."pos"()
-  alt504_end:
-.annotate 'line', 239
+    rx482_pos = $P10."pos"()
+  alt489_end:
+.annotate 'line', 240
   # rx pass
-    rx497_cur."!cursor_pass"(rx497_pos, "colonpair")
-    rx497_cur."!cursor_debug"("PASS  ", "colonpair", " at pos=", rx497_pos)
-    .return (rx497_cur)
-  rx497_fail:
-.annotate 'line', 4
-    (rx497_rep, rx497_pos, $I10, $P10) = rx497_cur."!mark_fail"(0)
-    lt rx497_pos, -1, rx497_done
-    eq rx497_pos, -1, rx497_fail
-    jump $I10
-  rx497_done:
-    rx497_cur."!cursor_fail"()
-    rx497_cur."!cursor_debug"("FAIL  ", "colonpair")
-    .return (rx497_cur)
+    rx482_cur."!cursor_pass"(rx482_pos, "colonpair")
+    rx482_cur."!cursor_debug"("PASS  ", "colonpair", " at pos=", rx482_pos)
+    .return (rx482_cur)
+  rx482_restart:
+.annotate 'line', 4
+    rx482_cur."!cursor_debug"("NEXT ", "colonpair")
+  rx482_fail:
+    (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0)
+    lt rx482_pos, -1, rx482_done
+    eq rx482_pos, -1, rx482_fail
+    jump $I10
+  rx482_done:
+    rx482_cur."!cursor_fail"()
+    rx482_cur."!cursor_debug"("FAIL  ", "colonpair")
+    .return (rx482_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair"  :subid("121_1277356913.9538") :method
-.annotate 'line', 4
-    $P499 = self."!PREFIX__!subrule"("circumfix", ":")
-    $P500 = self."!PREFIX__!subrule"("identifier", ":")
-    $P501 = self."!PREFIX__!subrule"("identifier", ":!")
-    new $P502, "ResizablePMCArray"
-    push $P502, $P499
-    push $P502, $P500
-    push $P502, $P501
-    .return ($P502)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "variable"  :subid("122_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 4
-    .local string rx509_tgt
-    .local int rx509_pos
-    .local int rx509_off
-    .local int rx509_eos
-    .local int rx509_rep
-    .local pmc rx509_cur
-    (rx509_cur, rx509_pos, rx509_tgt) = self."!cursor_start"()
-    rx509_cur."!cursor_debug"("START ", "variable")
-    rx509_cur."!cursor_caparray"("twigil")
-    .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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan514_done
-    goto rxscan514_scan
-  rxscan514_loop:
-    ($P10) = rx509_cur."from"()
-    inc $P10
-    set rx509_pos, $P10
-    ge rx509_pos, rx509_eos, rxscan514_done
-  rxscan514_scan:
-    set_addr $I10, rxscan514_loop
-    rx509_cur."!mark_push"(0, rx509_pos, $I10)
-  rxscan514_done:
-  alt515_0:
-.annotate 'line', 248
-    set_addr $I10, alt515_1
-    rx509_cur."!mark_push"(0, rx509_pos, $I10)
+.sub "!PREFIX__colonpair"  :subid("123_1280467477.44751") :method
+.annotate 'line', 4
+    $P484 = self."!PREFIX__!subrule"("circumfix", ":")
+    $P485 = self."!PREFIX__!subrule"("identifier", ":")
+    $P486 = self."!PREFIX__!subrule"("identifier", ":!")
+    new $P487, "ResizablePMCArray"
+    push $P487, $P484
+    push $P487, $P485
+    push $P487, $P486
+    .return ($P487)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "variable"  :subid("124_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+    .local string rx494_tgt
+    .local int rx494_pos
+    .local int rx494_off
+    .local int rx494_eos
+    .local int rx494_rep
+    .local pmc rx494_cur
+    (rx494_cur, rx494_pos, rx494_tgt, $I10) = self."!cursor_start"()
+    rx494_cur."!cursor_caparray"("twigil")
+    .lex unicode:"$\x{a2}", rx494_cur
+    .local pmc match
+    .lex "$/", match
+    length rx494_eos, rx494_tgt
+    gt rx494_pos, rx494_eos, rx494_done
+    set rx494_off, 0
+    lt rx494_pos, 2, rx494_start
+    sub rx494_off, rx494_pos, 1
+    substr rx494_tgt, rx494_tgt, rx494_off
+  rx494_start:
+    eq $I10, 1, rx494_restart
+    rx494_cur."!cursor_debug"("START ", "variable")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan499_done
+    goto rxscan499_scan
+  rxscan499_loop:
+    ($P10) = rx494_cur."from"()
+    inc $P10
+    set rx494_pos, $P10
+    ge rx494_pos, rx494_eos, rxscan499_done
+  rxscan499_scan:
+    set_addr $I10, rxscan499_loop
+    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=
-    rx509_cur."!cursor_pos"(rx509_pos)
-    $P10 = rx509_cur."sigil"()
-    unless $P10, rx509_fail
-    rx509_cur."!mark_push"(0, -1, 0, $P10)
+    rx494_cur."!cursor_pos"(rx494_pos)
+    $P10 = rx494_cur."sigil"()
+    unless $P10, rx494_fail
+    rx494_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    rx509_pos = $P10."pos"()
-  # rx rxquantr516 ** 0..1
-    set_addr $I517, rxquantr516_done
-    rx509_cur."!mark_push"(0, rx509_pos, $I517)
-  rxquantr516_loop:
+    rx494_pos = $P10."pos"()
+  # rx rxquantr501 ** 0..1
+    set_addr $I10, rxquantr501_done
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
+  rxquantr501_loop:
   # rx subrule "twigil" subtype=capture negate=
-    rx509_cur."!cursor_pos"(rx509_pos)
-    $P10 = rx509_cur."twigil"()
-    unless $P10, rx509_fail
-    rx509_cur."!mark_push"(0, -1, 0, $P10)
+    rx494_cur."!cursor_pos"(rx494_pos)
+    $P10 = rx494_cur."twigil"()
+    unless $P10, rx494_fail
+    goto rxsubrule502_pass
+  rxsubrule502_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx494_fail
+  rxsubrule502_pass:
+    set_addr $I10, rxsubrule502_back
+    rx494_cur."!mark_push"(0, rx494_pos, $I10, $P10)
     $P10."!cursor_names"("twigil")
-    rx509_pos = $P10."pos"()
-    (rx509_rep) = rx509_cur."!mark_commit"($I517)
-  rxquantr516_done:
+    rx494_pos = $P10."pos"()
+    set_addr $I10, rxquantr501_done
+    (rx494_rep) = rx494_cur."!mark_commit"($I10)
+  rxquantr501_done:
   # rx subrule "name" subtype=capture negate=
-    rx509_cur."!cursor_pos"(rx509_pos)
-    $P10 = rx509_cur."name"()
-    unless $P10, rx509_fail
-    rx509_cur."!mark_push"(0, -1, 0, $P10)
+    rx494_cur."!cursor_pos"(rx494_pos)
+    $P10 = rx494_cur."name"()
+    unless $P10, rx494_fail
+    rx494_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("desigilname")
-    rx509_pos = $P10."pos"()
-    goto alt515_end
-  alt515_1:
-    set_addr $I10, alt515_2
-    rx509_cur."!mark_push"(0, rx509_pos, $I10)
-.annotate 'line', 250
+    rx494_pos = $P10."pos"()
+    goto alt500_end
+  alt500_1:
+    set_addr $I10, alt500_2
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
+.annotate 'line', 251
   # rx subrule "sigil" subtype=capture negate=
-    rx509_cur."!cursor_pos"(rx509_pos)
-    $P10 = rx509_cur."sigil"()
-    unless $P10, rx509_fail
-    rx509_cur."!mark_push"(0, -1, 0, $P10)
+    rx494_cur."!cursor_pos"(rx494_pos)
+    $P10 = rx494_cur."sigil"()
+    unless $P10, rx494_fail
+    rx494_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    rx509_pos = $P10."pos"()
+    rx494_pos = $P10."pos"()
   # rx enumcharlist negate=0 zerowidth
-    ge rx509_pos, rx509_eos, rx509_fail
-    sub $I10, rx509_pos, rx509_off
-    substr $S10, rx509_tgt, $I10, 1
+    ge rx494_pos, rx494_eos, rx494_fail
+    sub $I10, rx494_pos, rx494_off
+    substr $S10, rx494_tgt, $I10, 1
     index $I11, "<[", $S10
-    lt $I11, 0, rx509_fail
+    lt $I11, 0, rx494_fail
   # rx subrule "postcircumfix" subtype=capture negate=
-    rx509_cur."!cursor_pos"(rx509_pos)
-    $P10 = rx509_cur."postcircumfix"()
-    unless $P10, rx509_fail
-    rx509_cur."!mark_push"(0, -1, 0, $P10)
+    rx494_cur."!cursor_pos"(rx494_pos)
+    $P10 = rx494_cur."postcircumfix"()
+    unless $P10, rx494_fail
+    rx494_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("postcircumfix")
-    rx509_pos = $P10."pos"()
-    goto alt515_end
-  alt515_2:
-.annotate 'line', 251
+    rx494_pos = $P10."pos"()
+    goto alt500_end
+  alt500_2:
+.annotate 'line', 252
   # rx subcapture "sigil"
-    set_addr $I10, rxcap_518_fail
-    rx509_cur."!mark_push"(0, rx509_pos, $I10)
+    set_addr $I10, rxcap_503_fail
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
   # rx literal  "$"
-    add $I11, rx509_pos, 1
-    gt $I11, rx509_eos, rx509_fail
-    sub $I11, rx509_pos, rx509_off
-    substr $S10, rx509_tgt, $I11, 1
-    ne $S10, "$", rx509_fail
-    add rx509_pos, 1
-    set_addr $I10, rxcap_518_fail
-    ($I12, $I11) = rx509_cur."!mark_peek"($I10)
-    rx509_cur."!cursor_pos"($I11)
-    ($P10) = rx509_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx509_pos, "")
-    rx509_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx494_pos, 1
+    gt $I11, rx494_eos, rx494_fail
+    sub $I11, rx494_pos, rx494_off
+    substr $S10, rx494_tgt, $I11, 1
+    ne $S10, "$", rx494_fail
+    add rx494_pos, 1
+    set_addr $I10, rxcap_503_fail
+    ($I12, $I11) = rx494_cur."!mark_peek"($I10)
+    rx494_cur."!cursor_pos"($I11)
+    ($P10) = rx494_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx494_pos, "")
+    rx494_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    goto rxcap_518_done
-  rxcap_518_fail:
-    goto rx509_fail
-  rxcap_518_done:
+    goto rxcap_503_done
+  rxcap_503_fail:
+    goto rx494_fail
+  rxcap_503_done:
   # rx subcapture "desigilname"
-    set_addr $I10, rxcap_519_fail
-    rx509_cur."!mark_push"(0, rx509_pos, $I10)
+    set_addr $I10, rxcap_504_fail
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx509_pos, rx509_eos, rx509_fail
-    sub $I10, rx509_pos, rx509_off
-    substr $S10, rx509_tgt, $I10, 1
+    ge rx494_pos, rx494_eos, rx494_fail
+    sub $I10, rx494_pos, rx494_off
+    substr $S10, rx494_tgt, $I10, 1
     index $I11, "/_!", $S10
-    lt $I11, 0, rx509_fail
-    inc rx509_pos
-    set_addr $I10, rxcap_519_fail
-    ($I12, $I11) = rx509_cur."!mark_peek"($I10)
-    rx509_cur."!cursor_pos"($I11)
-    ($P10) = rx509_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx509_pos, "")
-    rx509_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx494_fail
+    inc rx494_pos
+    set_addr $I10, rxcap_504_fail
+    ($I12, $I11) = rx494_cur."!mark_peek"($I10)
+    rx494_cur."!cursor_pos"($I11)
+    ($P10) = rx494_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx494_pos, "")
+    rx494_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("desigilname")
-    goto rxcap_519_done
-  rxcap_519_fail:
-    goto rx509_fail
-  rxcap_519_done:
-  alt515_end:
-.annotate 'line', 248
+    goto rxcap_504_done
+  rxcap_504_fail:
+    goto rx494_fail
+  rxcap_504_done:
+  alt500_end:
+.annotate 'line', 249
   # rx pass
-    rx509_cur."!cursor_pass"(rx509_pos, "variable")
-    rx509_cur."!cursor_debug"("PASS  ", "variable", " at pos=", rx509_pos)
-    .return (rx509_cur)
-  rx509_fail:
-.annotate 'line', 4
-    (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"()
-    rx509_cur."!cursor_debug"("FAIL  ", "variable")
-    .return (rx509_cur)
+    rx494_cur."!cursor_pass"(rx494_pos, "variable")
+    rx494_cur."!cursor_debug"("PASS  ", "variable", " at pos=", rx494_pos)
+    .return (rx494_cur)
+  rx494_restart:
+.annotate 'line', 4
+    rx494_cur."!cursor_debug"("NEXT ", "variable")
+  rx494_fail:
+    (rx494_rep, rx494_pos, $I10, $P10) = rx494_cur."!mark_fail"(0)
+    lt rx494_pos, -1, rx494_done
+    eq rx494_pos, -1, rx494_fail
+    jump $I10
+  rx494_done:
+    rx494_cur."!cursor_fail"()
+    rx494_cur."!cursor_debug"("FAIL  ", "variable")
+    .return (rx494_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable"  :subid("123_1277356913.9538") :method
-.annotate 'line', 4
-    $P511 = self."!PREFIX__!subrule"("sigil", "")
-    $P512 = self."!PREFIX__!subrule"("sigil", "")
-    new $P513, "ResizablePMCArray"
-    push $P513, "$!"
-    push $P513, "$_"
-    push $P513, "$/"
-    push $P513, $P511
-    push $P513, $P512
-    .return ($P513)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "sigil"  :subid("124_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 4
-    .local string rx521_tgt
-    .local int rx521_pos
-    .local int rx521_off
-    .local int rx521_eos
-    .local int rx521_rep
-    .local pmc rx521_cur
-    (rx521_cur, rx521_pos, rx521_tgt) = self."!cursor_start"()
-    rx521_cur."!cursor_debug"("START ", "sigil")
-    .lex unicode:"$\x{a2}", rx521_cur
-    .local pmc match
-    .lex "$/", match
-    length rx521_eos, rx521_tgt
-    gt rx521_pos, rx521_eos, rx521_done
-    set rx521_off, 0
-    lt rx521_pos, 2, rx521_start
-    sub rx521_off, rx521_pos, 1
-    substr rx521_tgt, rx521_tgt, rx521_off
-  rx521_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan524_done
-    goto rxscan524_scan
-  rxscan524_loop:
-    ($P10) = rx521_cur."from"()
-    inc $P10
-    set rx521_pos, $P10
-    ge rx521_pos, rx521_eos, rxscan524_done
-  rxscan524_scan:
-    set_addr $I10, rxscan524_loop
-    rx521_cur."!mark_push"(0, rx521_pos, $I10)
-  rxscan524_done:
-.annotate 'line', 254
+.sub "!PREFIX__variable"  :subid("125_1280467477.44751") :method
+.annotate 'line', 4
+    $P496 = self."!PREFIX__!subrule"("sigil", "")
+    $P497 = self."!PREFIX__!subrule"("sigil", "")
+    new $P498, "ResizablePMCArray"
+    push $P498, "$!"
+    push $P498, "$_"
+    push $P498, "$/"
+    push $P498, $P496
+    push $P498, $P497
+    .return ($P498)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "sigil"  :subid("126_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+    .local string rx506_tgt
+    .local int rx506_pos
+    .local int rx506_off
+    .local int rx506_eos
+    .local int rx506_rep
+    .local pmc rx506_cur
+    (rx506_cur, rx506_pos, rx506_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx506_cur
+    .local pmc match
+    .lex "$/", match
+    length rx506_eos, rx506_tgt
+    gt rx506_pos, rx506_eos, rx506_done
+    set rx506_off, 0
+    lt rx506_pos, 2, rx506_start
+    sub rx506_off, rx506_pos, 1
+    substr rx506_tgt, rx506_tgt, rx506_off
+  rx506_start:
+    eq $I10, 1, rx506_restart
+    rx506_cur."!cursor_debug"("START ", "sigil")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan509_done
+    goto rxscan509_scan
+  rxscan509_loop:
+    ($P10) = rx506_cur."from"()
+    inc $P10
+    set rx506_pos, $P10
+    ge rx506_pos, rx506_eos, rxscan509_done
+  rxscan509_scan:
+    set_addr $I10, rxscan509_loop
+    rx506_cur."!mark_push"(0, rx506_pos, $I10)
+  rxscan509_done:
+.annotate 'line', 255
   # rx enumcharlist negate=0 
-    ge rx521_pos, rx521_eos, rx521_fail
-    sub $I10, rx521_pos, rx521_off
-    substr $S10, rx521_tgt, $I10, 1
+    ge rx506_pos, rx506_eos, rx506_fail
+    sub $I10, rx506_pos, rx506_off
+    substr $S10, rx506_tgt, $I10, 1
     index $I11, "$@%&", $S10
-    lt $I11, 0, rx521_fail
-    inc rx521_pos
+    lt $I11, 0, rx506_fail
+    inc rx506_pos
   # rx pass
-    rx521_cur."!cursor_pass"(rx521_pos, "sigil")
-    rx521_cur."!cursor_debug"("PASS  ", "sigil", " at pos=", rx521_pos)
-    .return (rx521_cur)
-  rx521_fail:
+    rx506_cur."!cursor_pass"(rx506_pos, "sigil")
+    rx506_cur."!cursor_debug"("PASS  ", "sigil", " at pos=", rx506_pos)
+    .return (rx506_cur)
+  rx506_restart:
 .annotate 'line', 4
-    (rx521_rep, rx521_pos, $I10, $P10) = rx521_cur."!mark_fail"(0)
-    lt rx521_pos, -1, rx521_done
-    eq rx521_pos, -1, rx521_fail
+    rx506_cur."!cursor_debug"("NEXT ", "sigil")
+  rx506_fail:
+    (rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0)
+    lt rx506_pos, -1, rx506_done
+    eq rx506_pos, -1, rx506_fail
     jump $I10
-  rx521_done:
-    rx521_cur."!cursor_fail"()
-    rx521_cur."!cursor_debug"("FAIL  ", "sigil")
-    .return (rx521_cur)
+  rx506_done:
+    rx506_cur."!cursor_fail"()
+    rx506_cur."!cursor_debug"("FAIL  ", "sigil")
+    .return (rx506_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil"  :subid("125_1277356913.9538") :method
+.sub "!PREFIX__sigil"  :subid("127_1280467477.44751") :method
 .annotate 'line', 4
-    new $P523, "ResizablePMCArray"
-    push $P523, "&"
-    push $P523, "%"
-    push $P523, "@"
-    push $P523, "$"
-    .return ($P523)
+    new $P508, "ResizablePMCArray"
+    push $P508, "&"
+    push $P508, "%"
+    push $P508, "@"
+    push $P508, "$"
+    .return ($P508)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "twigil"  :subid("126_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "twigil"  :subid("128_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx526_tgt
-    .local int rx526_pos
-    .local int rx526_off
-    .local int rx526_eos
-    .local int rx526_rep
-    .local pmc rx526_cur
-    (rx526_cur, rx526_pos, rx526_tgt) = self."!cursor_start"()
-    rx526_cur."!cursor_debug"("START ", "twigil")
-    .lex unicode:"$\x{a2}", rx526_cur
-    .local pmc match
-    .lex "$/", match
-    length rx526_eos, rx526_tgt
-    gt rx526_pos, rx526_eos, rx526_done
-    set rx526_off, 0
-    lt rx526_pos, 2, rx526_start
-    sub rx526_off, rx526_pos, 1
-    substr rx526_tgt, rx526_tgt, rx526_off
-  rx526_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan529_done
-    goto rxscan529_scan
-  rxscan529_loop:
-    ($P10) = rx526_cur."from"()
-    inc $P10
-    set rx526_pos, $P10
-    ge rx526_pos, rx526_eos, rxscan529_done
-  rxscan529_scan:
-    set_addr $I10, rxscan529_loop
-    rx526_cur."!mark_push"(0, rx526_pos, $I10)
-  rxscan529_done:
-.annotate 'line', 256
+    .local string rx511_tgt
+    .local int rx511_pos
+    .local int rx511_off
+    .local int rx511_eos
+    .local int rx511_rep
+    .local pmc rx511_cur
+    (rx511_cur, rx511_pos, rx511_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx511_cur
+    .local pmc match
+    .lex "$/", match
+    length rx511_eos, rx511_tgt
+    gt rx511_pos, rx511_eos, rx511_done
+    set rx511_off, 0
+    lt rx511_pos, 2, rx511_start
+    sub rx511_off, rx511_pos, 1
+    substr rx511_tgt, rx511_tgt, rx511_off
+  rx511_start:
+    eq $I10, 1, rx511_restart
+    rx511_cur."!cursor_debug"("START ", "twigil")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan514_done
+    goto rxscan514_scan
+  rxscan514_loop:
+    ($P10) = rx511_cur."from"()
+    inc $P10
+    set rx511_pos, $P10
+    ge rx511_pos, rx511_eos, rxscan514_done
+  rxscan514_scan:
+    set_addr $I10, rxscan514_loop
+    rx511_cur."!mark_push"(0, rx511_pos, $I10)
+  rxscan514_done:
+.annotate 'line', 257
   # rx enumcharlist negate=0 
-    ge rx526_pos, rx526_eos, rx526_fail
-    sub $I10, rx526_pos, rx526_off
-    substr $S10, rx526_tgt, $I10, 1
+    ge rx511_pos, rx511_eos, rx511_fail
+    sub $I10, rx511_pos, rx511_off
+    substr $S10, rx511_tgt, $I10, 1
     index $I11, "*!?", $S10
-    lt $I11, 0, rx526_fail
-    inc rx526_pos
+    lt $I11, 0, rx511_fail
+    inc rx511_pos
   # rx pass
-    rx526_cur."!cursor_pass"(rx526_pos, "twigil")
-    rx526_cur."!cursor_debug"("PASS  ", "twigil", " at pos=", rx526_pos)
-    .return (rx526_cur)
-  rx526_fail:
+    rx511_cur."!cursor_pass"(rx511_pos, "twigil")
+    rx511_cur."!cursor_debug"("PASS  ", "twigil", " at pos=", rx511_pos)
+    .return (rx511_cur)
+  rx511_restart:
 .annotate 'line', 4
-    (rx526_rep, rx526_pos, $I10, $P10) = rx526_cur."!mark_fail"(0)
-    lt rx526_pos, -1, rx526_done
-    eq rx526_pos, -1, rx526_fail
+    rx511_cur."!cursor_debug"("NEXT ", "twigil")
+  rx511_fail:
+    (rx511_rep, rx511_pos, $I10, $P10) = rx511_cur."!mark_fail"(0)
+    lt rx511_pos, -1, rx511_done
+    eq rx511_pos, -1, rx511_fail
     jump $I10
-  rx526_done:
-    rx526_cur."!cursor_fail"()
-    rx526_cur."!cursor_debug"("FAIL  ", "twigil")
-    .return (rx526_cur)
+  rx511_done:
+    rx511_cur."!cursor_fail"()
+    rx511_cur."!cursor_debug"("FAIL  ", "twigil")
+    .return (rx511_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil"  :subid("127_1277356913.9538") :method
+.sub "!PREFIX__twigil"  :subid("129_1280467477.44751") :method
 .annotate 'line', 4
-    new $P528, "ResizablePMCArray"
-    push $P528, "?"
-    push $P528, "!"
-    push $P528, "*"
-    .return ($P528)
+    new $P513, "ResizablePMCArray"
+    push $P513, "?"
+    push $P513, "!"
+    push $P513, "*"
+    .return ($P513)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator"  :subid("128_1277356913.9538") :method
-.annotate 'line', 258
-    $P531 = self."!protoregex"("package_declarator")
-    .return ($P531)
+.sub "package_declarator"  :subid("130_1280467477.44751") :method
+.annotate 'line', 259
+    $P516 = self."!protoregex"("package_declarator")
+    .return ($P516)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator"  :subid("129_1277356913.9538") :method
-.annotate 'line', 258
-    $P533 = self."!PREFIX__!protoregex"("package_declarator")
-    .return ($P533)
+.sub "!PREFIX__package_declarator"  :subid("131_1280467477.44751") :method
+.annotate 'line', 259
+    $P518 = self."!PREFIX__!protoregex"("package_declarator")
+    .return ($P518)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<module>"  :subid("130_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "package_declarator:sym<module>"  :subid("132_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx535_tgt
-    .local int rx535_pos
-    .local int rx535_off
-    .local int rx535_eos
-    .local int rx535_rep
-    .local pmc rx535_cur
-    (rx535_cur, rx535_pos, rx535_tgt) = self."!cursor_start"()
-    rx535_cur."!cursor_debug"("START ", "package_declarator:sym<module>")
-    .lex unicode:"$\x{a2}", rx535_cur
-    .local pmc match
-    .lex "$/", match
-    length rx535_eos, rx535_tgt
-    gt rx535_pos, rx535_eos, rx535_done
-    set rx535_off, 0
-    lt rx535_pos, 2, rx535_start
-    sub rx535_off, rx535_pos, 1
-    substr rx535_tgt, rx535_tgt, rx535_off
-  rx535_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan539_done
-    goto rxscan539_scan
-  rxscan539_loop:
-    ($P10) = rx535_cur."from"()
-    inc $P10
-    set rx535_pos, $P10
-    ge rx535_pos, rx535_eos, rxscan539_done
-  rxscan539_scan:
-    set_addr $I10, rxscan539_loop
-    rx535_cur."!mark_push"(0, rx535_pos, $I10)
-  rxscan539_done:
-.annotate 'line', 259
+    .local string rx520_tgt
+    .local int rx520_pos
+    .local int rx520_off
+    .local int rx520_eos
+    .local int rx520_rep
+    .local pmc rx520_cur
+    (rx520_cur, rx520_pos, rx520_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx520_cur
+    .local pmc match
+    .lex "$/", match
+    length rx520_eos, rx520_tgt
+    gt rx520_pos, rx520_eos, rx520_done
+    set rx520_off, 0
+    lt rx520_pos, 2, rx520_start
+    sub rx520_off, rx520_pos, 1
+    substr rx520_tgt, rx520_tgt, rx520_off
+  rx520_start:
+    eq $I10, 1, rx520_restart
+    rx520_cur."!cursor_debug"("START ", "package_declarator:sym<module>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan524_done
+    goto rxscan524_scan
+  rxscan524_loop:
+    ($P10) = rx520_cur."from"()
+    inc $P10
+    set rx520_pos, $P10
+    ge rx520_pos, rx520_eos, rxscan524_done
+  rxscan524_scan:
+    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_540_fail
-    rx535_cur."!mark_push"(0, rx535_pos, $I10)
+    set_addr $I10, rxcap_525_fail
+    rx520_cur."!mark_push"(0, rx520_pos, $I10)
   # rx literal  "module"
-    add $I11, rx535_pos, 6
-    gt $I11, rx535_eos, rx535_fail
-    sub $I11, rx535_pos, rx535_off
-    substr $S10, rx535_tgt, $I11, 6
-    ne $S10, "module", rx535_fail
-    add rx535_pos, 6
-    set_addr $I10, rxcap_540_fail
-    ($I12, $I11) = rx535_cur."!mark_peek"($I10)
-    rx535_cur."!cursor_pos"($I11)
-    ($P10) = rx535_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx535_pos, "")
-    rx535_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx520_pos, 6
+    gt $I11, rx520_eos, rx520_fail
+    sub $I11, rx520_pos, rx520_off
+    substr $S10, rx520_tgt, $I11, 6
+    ne $S10, "module", rx520_fail
+    add rx520_pos, 6
+    set_addr $I10, rxcap_525_fail
+    ($I12, $I11) = rx520_cur."!mark_peek"($I10)
+    rx520_cur."!cursor_pos"($I11)
+    ($P10) = rx520_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx520_pos, "")
+    rx520_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_540_done
-  rxcap_540_fail:
-    goto rx535_fail
-  rxcap_540_done:
+    goto rxcap_525_done
+  rxcap_525_fail:
+    goto rx520_fail
+  rxcap_525_done:
   # rx subrule "package_def" subtype=capture negate=
-    rx535_cur."!cursor_pos"(rx535_pos)
-    $P10 = rx535_cur."package_def"()
-    unless $P10, rx535_fail
-    rx535_cur."!mark_push"(0, -1, 0, $P10)
+    rx520_cur."!cursor_pos"(rx520_pos)
+    $P10 = rx520_cur."package_def"()
+    unless $P10, rx520_fail
+    rx520_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("package_def")
-    rx535_pos = $P10."pos"()
+    rx520_pos = $P10."pos"()
   # rx pass
-    rx535_cur."!cursor_pass"(rx535_pos, "package_declarator:sym<module>")
-    rx535_cur."!cursor_debug"("PASS  ", "package_declarator:sym<module>", " at pos=", rx535_pos)
-    .return (rx535_cur)
-  rx535_fail:
+    rx520_cur."!cursor_pass"(rx520_pos, "package_declarator:sym<module>")
+    rx520_cur."!cursor_debug"("PASS  ", "package_declarator:sym<module>", " at pos=", rx520_pos)
+    .return (rx520_cur)
+  rx520_restart:
 .annotate 'line', 4
-    (rx535_rep, rx535_pos, $I10, $P10) = rx535_cur."!mark_fail"(0)
-    lt rx535_pos, -1, rx535_done
-    eq rx535_pos, -1, rx535_fail
+    rx520_cur."!cursor_debug"("NEXT ", "package_declarator:sym<module>")
+  rx520_fail:
+    (rx520_rep, rx520_pos, $I10, $P10) = rx520_cur."!mark_fail"(0)
+    lt rx520_pos, -1, rx520_done
+    eq rx520_pos, -1, rx520_fail
     jump $I10
-  rx535_done:
-    rx535_cur."!cursor_fail"()
-    rx535_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<module>")
-    .return (rx535_cur)
+  rx520_done:
+    rx520_cur."!cursor_fail"()
+    rx520_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<module>")
+    .return (rx520_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>"  :subid("131_1277356913.9538") :method
+.sub "!PREFIX__package_declarator:sym<module>"  :subid("133_1280467477.44751") :method
 .annotate 'line', 4
-    $P537 = self."!PREFIX__!subrule"("package_def", "module")
-    new $P538, "ResizablePMCArray"
-    push $P538, $P537
-    .return ($P538)
+    $P522 = self."!PREFIX__!subrule"("package_def", "module")
+    new $P523, "ResizablePMCArray"
+    push $P523, $P522
+    .return ($P523)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<class>"  :subid("132_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "package_declarator:sym<class>"  :subid("134_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx542_tgt
-    .local int rx542_pos
-    .local int rx542_off
-    .local int rx542_eos
-    .local int rx542_rep
-    .local pmc rx542_cur
-    (rx542_cur, rx542_pos, rx542_tgt) = self."!cursor_start"()
-    rx542_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
-    .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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan547_done
-    goto rxscan547_scan
-  rxscan547_loop:
-    ($P10) = rx542_cur."from"()
-    inc $P10
-    set rx542_pos, $P10
-    ge rx542_pos, rx542_eos, rxscan547_done
-  rxscan547_scan:
-    set_addr $I10, rxscan547_loop
-    rx542_cur."!mark_push"(0, rx542_pos, $I10)
-  rxscan547_done:
-.annotate 'line', 260
+    .local string rx527_tgt
+    .local int rx527_pos
+    .local int rx527_off
+    .local int rx527_eos
+    .local int rx527_rep
+    .local pmc rx527_cur
+    (rx527_cur, rx527_pos, rx527_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx527_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan532_done
+    goto rxscan532_scan
+  rxscan532_loop:
+    ($P10) = rx527_cur."from"()
+    inc $P10
+    set rx527_pos, $P10
+    ge rx527_pos, rx527_eos, rxscan532_done
+  rxscan532_scan:
+    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_549_fail
-    rx542_cur."!mark_push"(0, rx542_pos, $I10)
-  alt548_0:
-    set_addr $I10, alt548_1
-    rx542_cur."!mark_push"(0, rx542_pos, $I10)
+    set_addr $I10, rxcap_534_fail
+    rx527_cur."!mark_push"(0, rx527_pos, $I10)
+  alt533_0:
+    set_addr $I10, alt533_1
+    rx527_cur."!mark_push"(0, rx527_pos, $I10)
   # rx literal  "class"
-    add $I11, rx542_pos, 5
-    gt $I11, rx542_eos, rx542_fail
-    sub $I11, rx542_pos, rx542_off
-    substr $S10, rx542_tgt, $I11, 5
-    ne $S10, "class", rx542_fail
-    add rx542_pos, 5
-    goto alt548_end
-  alt548_1:
+    add $I11, rx527_pos, 5
+    gt $I11, rx527_eos, rx527_fail
+    sub $I11, rx527_pos, rx527_off
+    substr $S10, rx527_tgt, $I11, 5
+    ne $S10, "class", rx527_fail
+    add rx527_pos, 5
+    goto alt533_end
+  alt533_1:
   # rx literal  "grammar"
-    add $I11, rx542_pos, 7
-    gt $I11, rx542_eos, rx542_fail
-    sub $I11, rx542_pos, rx542_off
-    substr $S10, rx542_tgt, $I11, 7
-    ne $S10, "grammar", rx542_fail
-    add rx542_pos, 7
-  alt548_end:
-    set_addr $I10, rxcap_549_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)
+    add $I11, rx527_pos, 7
+    gt $I11, rx527_eos, rx527_fail
+    sub $I11, rx527_pos, rx527_off
+    substr $S10, rx527_tgt, $I11, 7
+    ne $S10, "grammar", rx527_fail
+    add rx527_pos, 7
+  alt533_end:
+    set_addr $I10, rxcap_534_fail
+    ($I12, $I11) = rx527_cur."!mark_peek"($I10)
+    rx527_cur."!cursor_pos"($I11)
+    ($P10) = rx527_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx527_pos, "")
+    rx527_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_549_done
-  rxcap_549_fail:
-    goto rx542_fail
-  rxcap_549_done:
+    goto rxcap_534_done
+  rxcap_534_fail:
+    goto rx527_fail
+  rxcap_534_done:
   # rx subrule "package_def" subtype=capture negate=
-    rx542_cur."!cursor_pos"(rx542_pos)
-    $P10 = rx542_cur."package_def"()
-    unless $P10, rx542_fail
-    rx542_cur."!mark_push"(0, -1, 0, $P10)
+    rx527_cur."!cursor_pos"(rx527_pos)
+    $P10 = rx527_cur."package_def"()
+    unless $P10, rx527_fail
+    rx527_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("package_def")
-    rx542_pos = $P10."pos"()
+    rx527_pos = $P10."pos"()
   # rx pass
-    rx542_cur."!cursor_pass"(rx542_pos, "package_declarator:sym<class>")
-    rx542_cur."!cursor_debug"("PASS  ", "package_declarator:sym<class>", " at pos=", rx542_pos)
-    .return (rx542_cur)
-  rx542_fail:
+    rx527_cur."!cursor_pass"(rx527_pos, "package_declarator:sym<class>")
+    rx527_cur."!cursor_debug"("PASS  ", "package_declarator:sym<class>", " at pos=", rx527_pos)
+    .return (rx527_cur)
+  rx527_restart:
 .annotate 'line', 4
-    (rx542_rep, rx542_pos, $I10, $P10) = rx542_cur."!mark_fail"(0)
-    lt rx542_pos, -1, rx542_done
-    eq rx542_pos, -1, rx542_fail
+    rx527_cur."!cursor_debug"("NEXT ", "package_declarator:sym<class>")
+  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
-  rx542_done:
-    rx542_cur."!cursor_fail"()
-    rx542_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<class>")
-    .return (rx542_cur)
+  rx527_done:
+    rx527_cur."!cursor_fail"()
+    rx527_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<class>")
+    .return (rx527_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>"  :subid("133_1277356913.9538") :method
+.sub "!PREFIX__package_declarator:sym<class>"  :subid("135_1280467477.44751") :method
 .annotate 'line', 4
-    $P544 = self."!PREFIX__!subrule"("package_def", "grammar")
-    $P545 = self."!PREFIX__!subrule"("package_def", "class")
-    new $P546, "ResizablePMCArray"
-    push $P546, $P544
-    push $P546, $P545
-    .return ($P546)
+    $P529 = self."!PREFIX__!subrule"("package_def", "grammar")
+    $P530 = self."!PREFIX__!subrule"("package_def", "class")
+    new $P531, "ResizablePMCArray"
+    push $P531, $P529
+    push $P531, $P530
+    .return ($P531)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_def"  :subid("134_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "package_def"  :subid("136_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx551_tgt
-    .local int rx551_pos
-    .local int rx551_off
-    .local int rx551_eos
-    .local int rx551_rep
-    .local pmc rx551_cur
-    (rx551_cur, rx551_pos, rx551_tgt) = self."!cursor_start"()
-    rx551_cur."!cursor_debug"("START ", "package_def")
-    rx551_cur."!cursor_caparray"("parent")
-    .lex unicode:"$\x{a2}", rx551_cur
-    .local pmc match
-    .lex "$/", match
-    length rx551_eos, rx551_tgt
-    gt rx551_pos, rx551_eos, rx551_done
-    set rx551_off, 0
-    lt rx551_pos, 2, rx551_start
-    sub rx551_off, rx551_pos, 1
-    substr rx551_tgt, rx551_tgt, rx551_off
-  rx551_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan555_done
-    goto rxscan555_scan
-  rxscan555_loop:
-    ($P10) = rx551_cur."from"()
-    inc $P10
-    set rx551_pos, $P10
-    ge rx551_pos, rx551_eos, rxscan555_done
-  rxscan555_scan:
-    set_addr $I10, rxscan555_loop
-    rx551_cur."!mark_push"(0, rx551_pos, $I10)
-  rxscan555_done:
-.annotate 'line', 262
-  # rx subrule "ws" subtype=method negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."ws"()
-    unless $P10, rx551_fail
-    rx551_pos = $P10."pos"()
+    .local string rx536_tgt
+    .local int rx536_pos
+    .local int rx536_off
+    .local int rx536_eos
+    .local int rx536_rep
+    .local pmc rx536_cur
+    (rx536_cur, rx536_pos, rx536_tgt, $I10) = self."!cursor_start"()
+    rx536_cur."!cursor_caparray"("parent")
+    .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
+    rx536_cur."!cursor_debug"("START ", "package_def")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan540_done
+    goto rxscan540_scan
+  rxscan540_loop:
+    ($P10) = rx536_cur."from"()
+    inc $P10
+    set rx536_pos, $P10
+    ge rx536_pos, rx536_eos, rxscan540_done
+  rxscan540_scan:
+    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=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."name"()
-    unless $P10, rx551_fail
-    rx551_cur."!mark_push"(0, -1, 0, $P10)
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."name"()
+    unless $P10, rx536_fail
+    rx536_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    rx551_pos = $P10."pos"()
+    rx536_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."ws"()
-    unless $P10, rx551_fail
-    rx551_pos = $P10."pos"()
-.annotate 'line', 264
-  # rx rxquantr558 ** 0..1
-    set_addr $I562, rxquantr558_done
-    rx551_cur."!mark_push"(0, rx551_pos, $I562)
-  rxquantr558_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."ws"()
-    unless $P10, rx551_fail
-    rx551_pos = $P10."pos"()
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $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)
+  rxquantr543_loop:
+  # 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 literal  "is"
-    add $I11, rx551_pos, 2
-    gt $I11, rx551_eos, rx551_fail
-    sub $I11, rx551_pos, rx551_off
-    substr $S10, rx551_tgt, $I11, 2
-    ne $S10, "is", rx551_fail
-    add rx551_pos, 2
-  # rx subrule "ws" subtype=method negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."ws"()
-    unless $P10, rx551_fail
-    rx551_pos = $P10."pos"()
+    add $I11, rx536_pos, 2
+    gt $I11, rx536_eos, rx536_fail
+    sub $I11, rx536_pos, rx536_off
+    substr $S10, rx536_tgt, $I11, 2
+    ne $S10, "is", rx536_fail
+    add rx536_pos, 2
+  # 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 subrule "name" subtype=capture negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."name"()
-    unless $P10, rx551_fail
-    rx551_cur."!mark_push"(0, -1, 0, $P10)
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."name"()
+    unless $P10, rx536_fail
+    rx536_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("parent")
-    rx551_pos = $P10."pos"()
+    rx536_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."ws"()
-    unless $P10, rx551_fail
-    rx551_pos = $P10."pos"()
-    (rx551_rep) = rx551_cur."!mark_commit"($I562)
-  rxquantr558_done:
-  # rx subrule "ws" subtype=method negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."ws"()
-    unless $P10, rx551_fail
-    rx551_pos = $P10."pos"()
-  alt564_0:
-.annotate 'line', 265
-    set_addr $I10, alt564_1
-    rx551_cur."!mark_push"(0, rx551_pos, $I10)
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
+    set_addr $I10, rxquantr543_done
+    (rx536_rep) = rx536_cur."!mark_commit"($I10)
+  rxquantr543_done:
+  # rx subrule "ws" subtype=method negate=
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    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=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."ws"()
-    unless $P10, rx551_fail
-    rx551_pos = $P10."pos"()
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
   # rx literal  ";"
-    add $I11, rx551_pos, 1
-    gt $I11, rx551_eos, rx551_fail
-    sub $I11, rx551_pos, rx551_off
-    substr $S10, rx551_tgt, $I11, 1
-    ne $S10, ";", rx551_fail
-    add rx551_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."ws"()
-    unless $P10, rx551_fail
-    rx551_pos = $P10."pos"()
+    add $I11, rx536_pos, 1
+    gt $I11, rx536_eos, rx536_fail
+    sub $I11, rx536_pos, rx536_off
+    substr $S10, rx536_tgt, $I11, 1
+    ne $S10, ";", rx536_fail
+    add rx536_pos, 1
+  # 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 subrule "comp_unit" subtype=capture negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."comp_unit"()
-    unless $P10, rx551_fail
-    rx551_cur."!mark_push"(0, -1, 0, $P10)
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."comp_unit"()
+    unless $P10, rx536_fail
+    rx536_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("comp_unit")
-    rx551_pos = $P10."pos"()
+    rx536_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."ws"()
-    unless $P10, rx551_fail
-    rx551_pos = $P10."pos"()
-    goto alt564_end
-  alt564_1:
-    set_addr $I10, alt564_2
-    rx551_cur."!mark_push"(0, rx551_pos, $I10)
-.annotate 'line', 267
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
+    goto alt548_end
+  alt548_1:
+    set_addr $I10, alt548_2
+    rx536_cur."!mark_push"(0, rx536_pos, $I10)
+.annotate 'line', 268
   # rx subrule "ws" subtype=method negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."ws"()
-    unless $P10, rx551_fail
-    rx551_pos = $P10."pos"()
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
   # rx enumcharlist negate=0 zerowidth
-    ge rx551_pos, rx551_eos, rx551_fail
-    sub $I10, rx551_pos, rx551_off
-    substr $S10, rx551_tgt, $I10, 1
+    ge rx536_pos, rx536_eos, rx536_fail
+    sub $I10, rx536_pos, rx536_off
+    substr $S10, rx536_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx551_fail
+    lt $I11, 0, rx536_fail
   # rx subrule "ws" subtype=method negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."ws"()
-    unless $P10, rx551_fail
-    rx551_pos = $P10."pos"()
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
   # rx subrule "block" subtype=capture negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."block"()
-    unless $P10, rx551_fail
-    rx551_cur."!mark_push"(0, -1, 0, $P10)
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."block"()
+    unless $P10, rx536_fail
+    rx536_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx551_pos = $P10."pos"()
+    rx536_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."ws"()
-    unless $P10, rx551_fail
-    rx551_pos = $P10."pos"()
-    goto alt564_end
-  alt564_2:
-.annotate 'line', 268
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
+    goto alt548_end
+  alt548_2:
+.annotate 'line', 269
   # rx subrule "ws" subtype=method negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."ws"()
-    unless $P10, rx551_fail
-    rx551_pos = $P10."pos"()
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."panic"("Malformed package declaration")
-    unless $P10, rx551_fail
-    rx551_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."ws"()
-    unless $P10, rx551_fail
-    rx551_pos = $P10."pos"()
-  alt564_end:
-.annotate 'line', 269
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."panic"("Malformed package declaration")
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
+  alt548_end:
+.annotate 'line', 270
   # rx subrule "ws" subtype=method negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."ws"()
-    unless $P10, rx551_fail
-    rx551_pos = $P10."pos"()
-.annotate 'line', 262
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
+.annotate 'line', 263
   # rx pass
-    rx551_cur."!cursor_pass"(rx551_pos, "package_def")
-    rx551_cur."!cursor_debug"("PASS  ", "package_def", " at pos=", rx551_pos)
-    .return (rx551_cur)
-  rx551_fail:
+    rx536_cur."!cursor_pass"(rx536_pos, "package_def")
+    rx536_cur."!cursor_debug"("PASS  ", "package_def", " at pos=", rx536_pos)
+    .return (rx536_cur)
+  rx536_restart:
 .annotate 'line', 4
-    (rx551_rep, rx551_pos, $I10, $P10) = rx551_cur."!mark_fail"(0)
-    lt rx551_pos, -1, rx551_done
-    eq rx551_pos, -1, rx551_fail
+    rx536_cur."!cursor_debug"("NEXT ", "package_def")
+  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
-  rx551_done:
-    rx551_cur."!cursor_fail"()
-    rx551_cur."!cursor_debug"("FAIL  ", "package_def")
-    .return (rx551_cur)
+  rx536_done:
+    rx536_cur."!cursor_fail"()
+    rx536_cur."!cursor_debug"("FAIL  ", "package_def")
+    .return (rx536_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def"  :subid("135_1277356913.9538") :method
+.sub "!PREFIX__package_def"  :subid("137_1280467477.44751") :method
 .annotate 'line', 4
-    $P553 = self."!PREFIX__!subrule"("ws", "")
-    new $P554, "ResizablePMCArray"
-    push $P554, $P553
-    .return ($P554)
+    $P538 = self."!PREFIX__!subrule"("ws", "")
+    new $P539, "ResizablePMCArray"
+    push $P539, $P538
+    .return ($P539)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator"  :subid("136_1277356913.9538") :method
-.annotate 'line', 272
-    $P575 = self."!protoregex"("scope_declarator")
-    .return ($P575)
+.sub "scope_declarator"  :subid("138_1280467477.44751") :method
+.annotate 'line', 273
+    $P559 = self."!protoregex"("scope_declarator")
+    .return ($P559)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator"  :subid("137_1277356913.9538") :method
-.annotate 'line', 272
-    $P577 = self."!PREFIX__!protoregex"("scope_declarator")
-    .return ($P577)
+.sub "!PREFIX__scope_declarator"  :subid("139_1280467477.44751") :method
+.annotate 'line', 273
+    $P561 = self."!PREFIX__!protoregex"("scope_declarator")
+    .return ($P561)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<my>"  :subid("138_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "scope_declarator:sym<my>"  :subid("140_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx579_tgt
-    .local int rx579_pos
-    .local int rx579_off
-    .local int rx579_eos
-    .local int rx579_rep
-    .local pmc rx579_cur
-    (rx579_cur, rx579_pos, rx579_tgt) = self."!cursor_start"()
-    rx579_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
-    .lex unicode:"$\x{a2}", rx579_cur
-    .local pmc match
-    .lex "$/", match
-    length rx579_eos, rx579_tgt
-    gt rx579_pos, rx579_eos, rx579_done
-    set rx579_off, 0
-    lt rx579_pos, 2, rx579_start
-    sub rx579_off, rx579_pos, 1
-    substr rx579_tgt, rx579_tgt, rx579_off
-  rx579_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan583_done
-    goto rxscan583_scan
-  rxscan583_loop:
-    ($P10) = rx579_cur."from"()
-    inc $P10
-    set rx579_pos, $P10
-    ge rx579_pos, rx579_eos, rxscan583_done
-  rxscan583_scan:
-    set_addr $I10, rxscan583_loop
-    rx579_cur."!mark_push"(0, rx579_pos, $I10)
-  rxscan583_done:
-.annotate 'line', 273
+    .local string rx563_tgt
+    .local int rx563_pos
+    .local int rx563_off
+    .local int rx563_eos
+    .local int rx563_rep
+    .local pmc rx563_cur
+    (rx563_cur, rx563_pos, rx563_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx563_cur
+    .local pmc match
+    .lex "$/", match
+    length rx563_eos, rx563_tgt
+    gt rx563_pos, rx563_eos, rx563_done
+    set rx563_off, 0
+    lt rx563_pos, 2, rx563_start
+    sub rx563_off, rx563_pos, 1
+    substr rx563_tgt, rx563_tgt, rx563_off
+  rx563_start:
+    eq $I10, 1, rx563_restart
+    rx563_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan567_done
+    goto rxscan567_scan
+  rxscan567_loop:
+    ($P10) = rx563_cur."from"()
+    inc $P10
+    set rx563_pos, $P10
+    ge rx563_pos, rx563_eos, rxscan567_done
+  rxscan567_scan:
+    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_584_fail
-    rx579_cur."!mark_push"(0, rx579_pos, $I10)
+    set_addr $I10, rxcap_568_fail
+    rx563_cur."!mark_push"(0, rx563_pos, $I10)
   # rx literal  "my"
-    add $I11, rx579_pos, 2
-    gt $I11, rx579_eos, rx579_fail
-    sub $I11, rx579_pos, rx579_off
-    substr $S10, rx579_tgt, $I11, 2
-    ne $S10, "my", rx579_fail
-    add rx579_pos, 2
-    set_addr $I10, rxcap_584_fail
-    ($I12, $I11) = rx579_cur."!mark_peek"($I10)
-    rx579_cur."!cursor_pos"($I11)
-    ($P10) = rx579_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx579_pos, "")
-    rx579_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx563_pos, 2
+    gt $I11, rx563_eos, rx563_fail
+    sub $I11, rx563_pos, rx563_off
+    substr $S10, rx563_tgt, $I11, 2
+    ne $S10, "my", rx563_fail
+    add rx563_pos, 2
+    set_addr $I10, rxcap_568_fail
+    ($I12, $I11) = rx563_cur."!mark_peek"($I10)
+    rx563_cur."!cursor_pos"($I11)
+    ($P10) = rx563_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx563_pos, "")
+    rx563_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_584_done
-  rxcap_584_fail:
-    goto rx579_fail
-  rxcap_584_done:
+    goto rxcap_568_done
+  rxcap_568_fail:
+    goto rx563_fail
+  rxcap_568_done:
   # rx subrule "scoped" subtype=capture negate=
-    rx579_cur."!cursor_pos"(rx579_pos)
-    $P10 = rx579_cur."scoped"("my")
-    unless $P10, rx579_fail
-    rx579_cur."!mark_push"(0, -1, 0, $P10)
+    rx563_cur."!cursor_pos"(rx563_pos)
+    $P10 = rx563_cur."scoped"("my")
+    unless $P10, rx563_fail
+    rx563_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("scoped")
-    rx579_pos = $P10."pos"()
+    rx563_pos = $P10."pos"()
   # rx pass
-    rx579_cur."!cursor_pass"(rx579_pos, "scope_declarator:sym<my>")
-    rx579_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<my>", " at pos=", rx579_pos)
-    .return (rx579_cur)
-  rx579_fail:
+    rx563_cur."!cursor_pass"(rx563_pos, "scope_declarator:sym<my>")
+    rx563_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<my>", " at pos=", rx563_pos)
+    .return (rx563_cur)
+  rx563_restart:
 .annotate 'line', 4
-    (rx579_rep, rx579_pos, $I10, $P10) = rx579_cur."!mark_fail"(0)
-    lt rx579_pos, -1, rx579_done
-    eq rx579_pos, -1, rx579_fail
+    rx563_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<my>")
+  rx563_fail:
+    (rx563_rep, rx563_pos, $I10, $P10) = rx563_cur."!mark_fail"(0)
+    lt rx563_pos, -1, rx563_done
+    eq rx563_pos, -1, rx563_fail
     jump $I10
-  rx579_done:
-    rx579_cur."!cursor_fail"()
-    rx579_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<my>")
-    .return (rx579_cur)
+  rx563_done:
+    rx563_cur."!cursor_fail"()
+    rx563_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<my>")
+    .return (rx563_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>"  :subid("139_1277356913.9538") :method
+.sub "!PREFIX__scope_declarator:sym<my>"  :subid("141_1280467477.44751") :method
 .annotate 'line', 4
-    $P581 = self."!PREFIX__!subrule"("scoped", "my")
-    new $P582, "ResizablePMCArray"
-    push $P582, $P581
-    .return ($P582)
+    $P565 = self."!PREFIX__!subrule"("scoped", "my")
+    new $P566, "ResizablePMCArray"
+    push $P566, $P565
+    .return ($P566)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<our>"  :subid("140_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "scope_declarator:sym<our>"  :subid("142_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx586_tgt
-    .local int rx586_pos
-    .local int rx586_off
-    .local int rx586_eos
-    .local int rx586_rep
-    .local pmc rx586_cur
-    (rx586_cur, rx586_pos, rx586_tgt) = self."!cursor_start"()
-    rx586_cur."!cursor_debug"("START ", "scope_declarator:sym<our>")
-    .lex unicode:"$\x{a2}", rx586_cur
+    .local string rx570_tgt
+    .local int rx570_pos
+    .local int rx570_off
+    .local int rx570_eos
+    .local int rx570_rep
+    .local pmc rx570_cur
+    (rx570_cur, rx570_pos, rx570_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx570_cur
     .local pmc match
     .lex "$/", match
-    length rx586_eos, rx586_tgt
-    gt rx586_pos, rx586_eos, rx586_done
-    set rx586_off, 0
-    lt rx586_pos, 2, rx586_start
-    sub rx586_off, rx586_pos, 1
-    substr rx586_tgt, rx586_tgt, rx586_off
-  rx586_start:
+    length rx570_eos, rx570_tgt
+    gt rx570_pos, rx570_eos, rx570_done
+    set rx570_off, 0
+    lt rx570_pos, 2, rx570_start
+    sub rx570_off, rx570_pos, 1
+    substr rx570_tgt, rx570_tgt, rx570_off
+  rx570_start:
+    eq $I10, 1, rx570_restart
+    rx570_cur."!cursor_debug"("START ", "scope_declarator:sym<our>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan590_done
-    goto rxscan590_scan
-  rxscan590_loop:
-    ($P10) = rx586_cur."from"()
+    ne $I10, -1, rxscan574_done
+    goto rxscan574_scan
+  rxscan574_loop:
+    ($P10) = rx570_cur."from"()
     inc $P10
-    set rx586_pos, $P10
-    ge rx586_pos, rx586_eos, rxscan590_done
-  rxscan590_scan:
-    set_addr $I10, rxscan590_loop
-    rx586_cur."!mark_push"(0, rx586_pos, $I10)
-  rxscan590_done:
-.annotate 'line', 274
+    set rx570_pos, $P10
+    ge rx570_pos, rx570_eos, rxscan574_done
+  rxscan574_scan:
+    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_591_fail
-    rx586_cur."!mark_push"(0, rx586_pos, $I10)
+    set_addr $I10, rxcap_575_fail
+    rx570_cur."!mark_push"(0, rx570_pos, $I10)
   # rx literal  "our"
-    add $I11, rx586_pos, 3
-    gt $I11, rx586_eos, rx586_fail
-    sub $I11, rx586_pos, rx586_off
-    substr $S10, rx586_tgt, $I11, 3
-    ne $S10, "our", rx586_fail
-    add rx586_pos, 3
-    set_addr $I10, rxcap_591_fail
-    ($I12, $I11) = rx586_cur."!mark_peek"($I10)
-    rx586_cur."!cursor_pos"($I11)
-    ($P10) = rx586_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx586_pos, "")
-    rx586_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx570_pos, 3
+    gt $I11, rx570_eos, rx570_fail
+    sub $I11, rx570_pos, rx570_off
+    substr $S10, rx570_tgt, $I11, 3
+    ne $S10, "our", rx570_fail
+    add rx570_pos, 3
+    set_addr $I10, rxcap_575_fail
+    ($I12, $I11) = rx570_cur."!mark_peek"($I10)
+    rx570_cur."!cursor_pos"($I11)
+    ($P10) = rx570_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx570_pos, "")
+    rx570_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_591_done
-  rxcap_591_fail:
-    goto rx586_fail
-  rxcap_591_done:
+    goto rxcap_575_done
+  rxcap_575_fail:
+    goto rx570_fail
+  rxcap_575_done:
   # rx subrule "scoped" subtype=capture negate=
-    rx586_cur."!cursor_pos"(rx586_pos)
-    $P10 = rx586_cur."scoped"("our")
-    unless $P10, rx586_fail
-    rx586_cur."!mark_push"(0, -1, 0, $P10)
+    rx570_cur."!cursor_pos"(rx570_pos)
+    $P10 = rx570_cur."scoped"("our")
+    unless $P10, rx570_fail
+    rx570_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("scoped")
-    rx586_pos = $P10."pos"()
+    rx570_pos = $P10."pos"()
   # rx pass
-    rx586_cur."!cursor_pass"(rx586_pos, "scope_declarator:sym<our>")
-    rx586_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<our>", " at pos=", rx586_pos)
-    .return (rx586_cur)
-  rx586_fail:
+    rx570_cur."!cursor_pass"(rx570_pos, "scope_declarator:sym<our>")
+    rx570_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<our>", " at pos=", rx570_pos)
+    .return (rx570_cur)
+  rx570_restart:
 .annotate 'line', 4
-    (rx586_rep, rx586_pos, $I10, $P10) = rx586_cur."!mark_fail"(0)
-    lt rx586_pos, -1, rx586_done
-    eq rx586_pos, -1, rx586_fail
+    rx570_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<our>")
+  rx570_fail:
+    (rx570_rep, rx570_pos, $I10, $P10) = rx570_cur."!mark_fail"(0)
+    lt rx570_pos, -1, rx570_done
+    eq rx570_pos, -1, rx570_fail
     jump $I10
-  rx586_done:
-    rx586_cur."!cursor_fail"()
-    rx586_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<our>")
-    .return (rx586_cur)
+  rx570_done:
+    rx570_cur."!cursor_fail"()
+    rx570_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<our>")
+    .return (rx570_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>"  :subid("141_1277356913.9538") :method
+.sub "!PREFIX__scope_declarator:sym<our>"  :subid("143_1280467477.44751") :method
 .annotate 'line', 4
-    $P588 = self."!PREFIX__!subrule"("scoped", "our")
-    new $P589, "ResizablePMCArray"
-    push $P589, $P588
-    .return ($P589)
+    $P572 = self."!PREFIX__!subrule"("scoped", "our")
+    new $P573, "ResizablePMCArray"
+    push $P573, $P572
+    .return ($P573)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<has>"  :subid("142_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "scope_declarator:sym<has>"  :subid("144_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx593_tgt
-    .local int rx593_pos
-    .local int rx593_off
-    .local int rx593_eos
-    .local int rx593_rep
-    .local pmc rx593_cur
-    (rx593_cur, rx593_pos, rx593_tgt) = self."!cursor_start"()
-    rx593_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
-    .lex unicode:"$\x{a2}", rx593_cur
-    .local pmc match
-    .lex "$/", match
-    length rx593_eos, rx593_tgt
-    gt rx593_pos, rx593_eos, rx593_done
-    set rx593_off, 0
-    lt rx593_pos, 2, rx593_start
-    sub rx593_off, rx593_pos, 1
-    substr rx593_tgt, rx593_tgt, rx593_off
-  rx593_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan597_done
-    goto rxscan597_scan
-  rxscan597_loop:
-    ($P10) = rx593_cur."from"()
-    inc $P10
-    set rx593_pos, $P10
-    ge rx593_pos, rx593_eos, rxscan597_done
-  rxscan597_scan:
-    set_addr $I10, rxscan597_loop
-    rx593_cur."!mark_push"(0, rx593_pos, $I10)
-  rxscan597_done:
-.annotate 'line', 275
+    .local string rx577_tgt
+    .local int rx577_pos
+    .local int rx577_off
+    .local int rx577_eos
+    .local int rx577_rep
+    .local pmc rx577_cur
+    (rx577_cur, rx577_pos, rx577_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx577_cur
+    .local pmc match
+    .lex "$/", match
+    length rx577_eos, rx577_tgt
+    gt rx577_pos, rx577_eos, rx577_done
+    set rx577_off, 0
+    lt rx577_pos, 2, rx577_start
+    sub rx577_off, rx577_pos, 1
+    substr rx577_tgt, rx577_tgt, rx577_off
+  rx577_start:
+    eq $I10, 1, rx577_restart
+    rx577_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan581_done
+    goto rxscan581_scan
+  rxscan581_loop:
+    ($P10) = rx577_cur."from"()
+    inc $P10
+    set rx577_pos, $P10
+    ge rx577_pos, rx577_eos, rxscan581_done
+  rxscan581_scan:
+    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_598_fail
-    rx593_cur."!mark_push"(0, rx593_pos, $I10)
+    set_addr $I10, rxcap_582_fail
+    rx577_cur."!mark_push"(0, rx577_pos, $I10)
   # rx literal  "has"
-    add $I11, rx593_pos, 3
-    gt $I11, rx593_eos, rx593_fail
-    sub $I11, rx593_pos, rx593_off
-    substr $S10, rx593_tgt, $I11, 3
-    ne $S10, "has", rx593_fail
-    add rx593_pos, 3
-    set_addr $I10, rxcap_598_fail
-    ($I12, $I11) = rx593_cur."!mark_peek"($I10)
-    rx593_cur."!cursor_pos"($I11)
-    ($P10) = rx593_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx593_pos, "")
-    rx593_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx577_pos, 3
+    gt $I11, rx577_eos, rx577_fail
+    sub $I11, rx577_pos, rx577_off
+    substr $S10, rx577_tgt, $I11, 3
+    ne $S10, "has", rx577_fail
+    add rx577_pos, 3
+    set_addr $I10, rxcap_582_fail
+    ($I12, $I11) = rx577_cur."!mark_peek"($I10)
+    rx577_cur."!cursor_pos"($I11)
+    ($P10) = rx577_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx577_pos, "")
+    rx577_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_598_done
-  rxcap_598_fail:
-    goto rx593_fail
-  rxcap_598_done:
+    goto rxcap_582_done
+  rxcap_582_fail:
+    goto rx577_fail
+  rxcap_582_done:
   # rx subrule "scoped" subtype=capture negate=
-    rx593_cur."!cursor_pos"(rx593_pos)
-    $P10 = rx593_cur."scoped"("has")
-    unless $P10, rx593_fail
-    rx593_cur."!mark_push"(0, -1, 0, $P10)
+    rx577_cur."!cursor_pos"(rx577_pos)
+    $P10 = rx577_cur."scoped"("has")
+    unless $P10, rx577_fail
+    rx577_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("scoped")
-    rx593_pos = $P10."pos"()
+    rx577_pos = $P10."pos"()
   # rx pass
-    rx593_cur."!cursor_pass"(rx593_pos, "scope_declarator:sym<has>")
-    rx593_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<has>", " at pos=", rx593_pos)
-    .return (rx593_cur)
-  rx593_fail:
+    rx577_cur."!cursor_pass"(rx577_pos, "scope_declarator:sym<has>")
+    rx577_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<has>", " at pos=", rx577_pos)
+    .return (rx577_cur)
+  rx577_restart:
 .annotate 'line', 4
-    (rx593_rep, rx593_pos, $I10, $P10) = rx593_cur."!mark_fail"(0)
-    lt rx593_pos, -1, rx593_done
-    eq rx593_pos, -1, rx593_fail
+    rx577_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<has>")
+  rx577_fail:
+    (rx577_rep, rx577_pos, $I10, $P10) = rx577_cur."!mark_fail"(0)
+    lt rx577_pos, -1, rx577_done
+    eq rx577_pos, -1, rx577_fail
     jump $I10
-  rx593_done:
-    rx593_cur."!cursor_fail"()
-    rx593_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<has>")
-    .return (rx593_cur)
+  rx577_done:
+    rx577_cur."!cursor_fail"()
+    rx577_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<has>")
+    .return (rx577_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>"  :subid("143_1277356913.9538") :method
+.sub "!PREFIX__scope_declarator:sym<has>"  :subid("145_1280467477.44751") :method
 .annotate 'line', 4
-    $P595 = self."!PREFIX__!subrule"("scoped", "has")
-    new $P596, "ResizablePMCArray"
-    push $P596, $P595
-    .return ($P596)
+    $P579 = self."!PREFIX__!subrule"("scoped", "has")
+    new $P580, "ResizablePMCArray"
+    push $P580, $P579
+    .return ($P580)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scoped"  :subid("144_1277356913.9538") :method :outer("11_1277356913.9538")
-    .param pmc param_600
-.annotate 'line', 277
-    .lex "$*SCOPE", param_600
+.sub "scoped"  :subid("146_1280467477.44751") :method :outer("11_1280467477.44751")
+    .param pmc param_584
+.annotate 'line', 278
+    .lex "$*SCOPE", param_584
 .annotate 'line', 4
-    .local string rx601_tgt
-    .local int rx601_pos
-    .local int rx601_off
-    .local int rx601_eos
-    .local int rx601_rep
-    .local pmc rx601_cur
-    (rx601_cur, rx601_pos, rx601_tgt) = self."!cursor_start"()
-    rx601_cur."!cursor_debug"("START ", "scoped")
-    .lex unicode:"$\x{a2}", rx601_cur
-    .local pmc match
-    .lex "$/", match
-    length rx601_eos, rx601_tgt
-    gt rx601_pos, rx601_eos, rx601_done
-    set rx601_off, 0
-    lt rx601_pos, 2, rx601_start
-    sub rx601_off, rx601_pos, 1
-    substr rx601_tgt, rx601_tgt, rx601_off
-  rx601_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan606_done
-    goto rxscan606_scan
-  rxscan606_loop:
-    ($P10) = rx601_cur."from"()
-    inc $P10
-    set rx601_pos, $P10
-    ge rx601_pos, rx601_eos, rxscan606_done
-  rxscan606_scan:
-    set_addr $I10, rxscan606_loop
-    rx601_cur."!mark_push"(0, rx601_pos, $I10)
-  rxscan606_done:
-  alt607_0:
-.annotate 'line', 277
-    set_addr $I10, alt607_1
-    rx601_cur."!mark_push"(0, rx601_pos, $I10)
+    .local string rx585_tgt
+    .local int rx585_pos
+    .local int rx585_off
+    .local int rx585_eos
+    .local int rx585_rep
+    .local pmc rx585_cur
+    (rx585_cur, rx585_pos, rx585_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx585_cur."!cursor_debug"("START ", "scoped")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan590_done
+    goto rxscan590_scan
+  rxscan590_loop:
+    ($P10) = rx585_cur."from"()
+    inc $P10
+    set rx585_pos, $P10
+    ge rx585_pos, rx585_eos, rxscan590_done
+  rxscan590_scan:
+    set_addr $I10, rxscan590_loop
+    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=
-    rx601_cur."!cursor_pos"(rx601_pos)
-    $P10 = rx601_cur."ws"()
-    unless $P10, rx601_fail
-    rx601_pos = $P10."pos"()
+    rx585_cur."!cursor_pos"(rx585_pos)
+    $P10 = rx585_cur."ws"()
+    unless $P10, rx585_fail
+    rx585_pos = $P10."pos"()
   # rx subrule "declarator" subtype=capture negate=
-    rx601_cur."!cursor_pos"(rx601_pos)
-    $P10 = rx601_cur."declarator"()
-    unless $P10, rx601_fail
-    rx601_cur."!mark_push"(0, -1, 0, $P10)
+    rx585_cur."!cursor_pos"(rx585_pos)
+    $P10 = rx585_cur."declarator"()
+    unless $P10, rx585_fail
+    rx585_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("declarator")
-    rx601_pos = $P10."pos"()
+    rx585_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx601_cur."!cursor_pos"(rx601_pos)
-    $P10 = rx601_cur."ws"()
-    unless $P10, rx601_fail
-    rx601_pos = $P10."pos"()
-    goto alt607_end
-  alt607_1:
-.annotate 'line', 279
+    rx585_cur."!cursor_pos"(rx585_pos)
+    $P10 = rx585_cur."ws"()
+    unless $P10, rx585_fail
+    rx585_pos = $P10."pos"()
+    goto alt591_end
+  alt591_1:
+.annotate 'line', 280
   # rx subrule "ws" subtype=method negate=
-    rx601_cur."!cursor_pos"(rx601_pos)
-    $P10 = rx601_cur."ws"()
-    unless $P10, rx601_fail
-    rx601_pos = $P10."pos"()
+    rx585_cur."!cursor_pos"(rx585_pos)
+    $P10 = rx585_cur."ws"()
+    unless $P10, rx585_fail
+    rx585_pos = $P10."pos"()
   # rx subrule "multi_declarator" subtype=capture negate=
-    rx601_cur."!cursor_pos"(rx601_pos)
-    $P10 = rx601_cur."multi_declarator"()
-    unless $P10, rx601_fail
-    rx601_cur."!mark_push"(0, -1, 0, $P10)
+    rx585_cur."!cursor_pos"(rx585_pos)
+    $P10 = rx585_cur."multi_declarator"()
+    unless $P10, rx585_fail
+    rx585_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("multi_declarator")
-    rx601_pos = $P10."pos"()
+    rx585_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx601_cur."!cursor_pos"(rx601_pos)
-    $P10 = rx601_cur."ws"()
-    unless $P10, rx601_fail
-    rx601_pos = $P10."pos"()
-  alt607_end:
-.annotate 'line', 277
+    rx585_cur."!cursor_pos"(rx585_pos)
+    $P10 = rx585_cur."ws"()
+    unless $P10, rx585_fail
+    rx585_pos = $P10."pos"()
+  alt591_end:
+.annotate 'line', 278
   # rx pass
-    rx601_cur."!cursor_pass"(rx601_pos, "scoped")
-    rx601_cur."!cursor_debug"("PASS  ", "scoped", " at pos=", rx601_pos)
-    .return (rx601_cur)
-  rx601_fail:
+    rx585_cur."!cursor_pass"(rx585_pos, "scoped")
+    rx585_cur."!cursor_debug"("PASS  ", "scoped", " at pos=", rx585_pos)
+    .return (rx585_cur)
+  rx585_restart:
 .annotate 'line', 4
-    (rx601_rep, rx601_pos, $I10, $P10) = rx601_cur."!mark_fail"(0)
-    lt rx601_pos, -1, rx601_done
-    eq rx601_pos, -1, rx601_fail
+    rx585_cur."!cursor_debug"("NEXT ", "scoped")
+  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
-  rx601_done:
-    rx601_cur."!cursor_fail"()
-    rx601_cur."!cursor_debug"("FAIL  ", "scoped")
-    .return (rx601_cur)
+  rx585_done:
+    rx585_cur."!cursor_fail"()
+    rx585_cur."!cursor_debug"("FAIL  ", "scoped")
+    .return (rx585_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped"  :subid("145_1277356913.9538") :method
+.sub "!PREFIX__scoped"  :subid("147_1280467477.44751") :method
 .annotate 'line', 4
-    $P603 = self."!PREFIX__!subrule"("ws", "")
-    $P604 = self."!PREFIX__!subrule"("ws", "")
-    new $P605, "ResizablePMCArray"
-    push $P605, $P603
-    push $P605, $P604
-    .return ($P605)
+    $P587 = self."!PREFIX__!subrule"("ws", "")
+    $P588 = self."!PREFIX__!subrule"("ws", "")
+    new $P589, "ResizablePMCArray"
+    push $P589, $P587
+    push $P589, $P588
+    .return ($P589)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "typename"  :subid("146_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "typename"  :subid("148_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx613_tgt
-    .local int rx613_pos
-    .local int rx613_off
-    .local int rx613_eos
-    .local int rx613_rep
-    .local pmc rx613_cur
-    (rx613_cur, rx613_pos, rx613_tgt) = self."!cursor_start"()
-    rx613_cur."!cursor_debug"("START ", "typename")
-    .lex unicode:"$\x{a2}", rx613_cur
-    .local pmc match
-    .lex "$/", match
-    length rx613_eos, rx613_tgt
-    gt rx613_pos, rx613_eos, rx613_done
-    set rx613_off, 0
-    lt rx613_pos, 2, rx613_start
-    sub rx613_off, rx613_pos, 1
-    substr rx613_tgt, rx613_tgt, rx613_off
-  rx613_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan617_done
-    goto rxscan617_scan
-  rxscan617_loop:
-    ($P10) = rx613_cur."from"()
-    inc $P10
-    set rx613_pos, $P10
-    ge rx613_pos, rx613_eos, rxscan617_done
-  rxscan617_scan:
-    set_addr $I10, rxscan617_loop
-    rx613_cur."!mark_push"(0, rx613_pos, $I10)
-  rxscan617_done:
-.annotate 'line', 282
+    .local string rx597_tgt
+    .local int rx597_pos
+    .local int rx597_off
+    .local int rx597_eos
+    .local int rx597_rep
+    .local pmc rx597_cur
+    (rx597_cur, rx597_pos, rx597_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx597_cur
+    .local pmc match
+    .lex "$/", match
+    length rx597_eos, rx597_tgt
+    gt rx597_pos, rx597_eos, rx597_done
+    set rx597_off, 0
+    lt rx597_pos, 2, rx597_start
+    sub rx597_off, rx597_pos, 1
+    substr rx597_tgt, rx597_tgt, rx597_off
+  rx597_start:
+    eq $I10, 1, rx597_restart
+    rx597_cur."!cursor_debug"("START ", "typename")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan601_done
+    goto rxscan601_scan
+  rxscan601_loop:
+    ($P10) = rx597_cur."from"()
+    inc $P10
+    set rx597_pos, $P10
+    ge rx597_pos, rx597_eos, rxscan601_done
+  rxscan601_scan:
+    set_addr $I10, rxscan601_loop
+    rx597_cur."!mark_push"(0, rx597_pos, $I10)
+  rxscan601_done:
+.annotate 'line', 283
   # rx subrule "name" subtype=capture negate=
-    rx613_cur."!cursor_pos"(rx613_pos)
-    $P10 = rx613_cur."name"()
-    unless $P10, rx613_fail
-    rx613_cur."!mark_push"(0, -1, 0, $P10)
+    rx597_cur."!cursor_pos"(rx597_pos)
+    $P10 = rx597_cur."name"()
+    unless $P10, rx597_fail
+    rx597_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    rx613_pos = $P10."pos"()
+    rx597_pos = $P10."pos"()
   # rx pass
-    rx613_cur."!cursor_pass"(rx613_pos, "typename")
-    rx613_cur."!cursor_debug"("PASS  ", "typename", " at pos=", rx613_pos)
-    .return (rx613_cur)
-  rx613_fail:
+    rx597_cur."!cursor_pass"(rx597_pos, "typename")
+    rx597_cur."!cursor_debug"("PASS  ", "typename", " at pos=", rx597_pos)
+    .return (rx597_cur)
+  rx597_restart:
 .annotate 'line', 4
-    (rx613_rep, rx613_pos, $I10, $P10) = rx613_cur."!mark_fail"(0)
-    lt rx613_pos, -1, rx613_done
-    eq rx613_pos, -1, rx613_fail
+    rx597_cur."!cursor_debug"("NEXT ", "typename")
+  rx597_fail:
+    (rx597_rep, rx597_pos, $I10, $P10) = rx597_cur."!mark_fail"(0)
+    lt rx597_pos, -1, rx597_done
+    eq rx597_pos, -1, rx597_fail
     jump $I10
-  rx613_done:
-    rx613_cur."!cursor_fail"()
-    rx613_cur."!cursor_debug"("FAIL  ", "typename")
-    .return (rx613_cur)
+  rx597_done:
+    rx597_cur."!cursor_fail"()
+    rx597_cur."!cursor_debug"("FAIL  ", "typename")
+    .return (rx597_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__typename"  :subid("147_1277356913.9538") :method
+.sub "!PREFIX__typename"  :subid("149_1280467477.44751") :method
 .annotate 'line', 4
-    $P615 = self."!PREFIX__!subrule"("name", "")
-    new $P616, "ResizablePMCArray"
-    push $P616, $P615
-    .return ($P616)
+    $P599 = self."!PREFIX__!subrule"("name", "")
+    new $P600, "ResizablePMCArray"
+    push $P600, $P599
+    .return ($P600)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "declarator"  :subid("148_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "declarator"  :subid("150_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx619_tgt
-    .local int rx619_pos
-    .local int rx619_off
-    .local int rx619_eos
-    .local int rx619_rep
-    .local pmc rx619_cur
-    (rx619_cur, rx619_pos, rx619_tgt) = self."!cursor_start"()
-    rx619_cur."!cursor_debug"("START ", "declarator")
-    .lex unicode:"$\x{a2}", rx619_cur
+    .local string rx603_tgt
+    .local int rx603_pos
+    .local int rx603_off
+    .local int rx603_eos
+    .local int rx603_rep
+    .local pmc rx603_cur
+    (rx603_cur, rx603_pos, rx603_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx603_cur
     .local pmc match
     .lex "$/", match
-    length rx619_eos, rx619_tgt
-    gt rx619_pos, rx619_eos, rx619_done
-    set rx619_off, 0
-    lt rx619_pos, 2, rx619_start
-    sub rx619_off, rx619_pos, 1
-    substr rx619_tgt, rx619_tgt, rx619_off
-  rx619_start:
+    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
+    rx603_cur."!cursor_debug"("START ", "declarator")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan624_done
-    goto rxscan624_scan
-  rxscan624_loop:
-    ($P10) = rx619_cur."from"()
+    ne $I10, -1, rxscan608_done
+    goto rxscan608_scan
+  rxscan608_loop:
+    ($P10) = rx603_cur."from"()
     inc $P10
-    set rx619_pos, $P10
-    ge rx619_pos, rx619_eos, rxscan624_done
-  rxscan624_scan:
-    set_addr $I10, rxscan624_loop
-    rx619_cur."!mark_push"(0, rx619_pos, $I10)
-  rxscan624_done:
-  alt625_0:
-.annotate 'line', 284
-    set_addr $I10, alt625_1
-    rx619_cur."!mark_push"(0, rx619_pos, $I10)
+    set rx603_pos, $P10
+    ge rx603_pos, rx603_eos, rxscan608_done
+  rxscan608_scan:
+    set_addr $I10, rxscan608_loop
+    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=
-    rx619_cur."!cursor_pos"(rx619_pos)
-    $P10 = rx619_cur."variable_declarator"()
-    unless $P10, rx619_fail
-    rx619_cur."!mark_push"(0, -1, 0, $P10)
+    rx603_cur."!cursor_pos"(rx603_pos)
+    $P10 = rx603_cur."variable_declarator"()
+    unless $P10, rx603_fail
+    rx603_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("variable_declarator")
-    rx619_pos = $P10."pos"()
-    goto alt625_end
-  alt625_1:
-.annotate 'line', 286
+    rx603_pos = $P10."pos"()
+    goto alt609_end
+  alt609_1:
+.annotate 'line', 287
   # rx subrule "routine_declarator" subtype=capture negate=
-    rx619_cur."!cursor_pos"(rx619_pos)
-    $P10 = rx619_cur."routine_declarator"()
-    unless $P10, rx619_fail
-    rx619_cur."!mark_push"(0, -1, 0, $P10)
+    rx603_cur."!cursor_pos"(rx603_pos)
+    $P10 = rx603_cur."routine_declarator"()
+    unless $P10, rx603_fail
+    rx603_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("routine_declarator")
-    rx619_pos = $P10."pos"()
-  alt625_end:
-.annotate 'line', 284
+    rx603_pos = $P10."pos"()
+  alt609_end:
+.annotate 'line', 285
   # rx pass
-    rx619_cur."!cursor_pass"(rx619_pos, "declarator")
-    rx619_cur."!cursor_debug"("PASS  ", "declarator", " at pos=", rx619_pos)
-    .return (rx619_cur)
-  rx619_fail:
+    rx603_cur."!cursor_pass"(rx603_pos, "declarator")
+    rx603_cur."!cursor_debug"("PASS  ", "declarator", " at pos=", rx603_pos)
+    .return (rx603_cur)
+  rx603_restart:
 .annotate 'line', 4
-    (rx619_rep, rx619_pos, $I10, $P10) = rx619_cur."!mark_fail"(0)
-    lt rx619_pos, -1, rx619_done
-    eq rx619_pos, -1, rx619_fail
+    rx603_cur."!cursor_debug"("NEXT ", "declarator")
+  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
-  rx619_done:
-    rx619_cur."!cursor_fail"()
-    rx619_cur."!cursor_debug"("FAIL  ", "declarator")
-    .return (rx619_cur)
+  rx603_done:
+    rx603_cur."!cursor_fail"()
+    rx603_cur."!cursor_debug"("FAIL  ", "declarator")
+    .return (rx603_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__declarator"  :subid("149_1277356913.9538") :method
+.sub "!PREFIX__declarator"  :subid("151_1280467477.44751") :method
 .annotate 'line', 4
-    $P621 = self."!PREFIX__!subrule"("routine_declarator", "")
-    $P622 = self."!PREFIX__!subrule"("variable_declarator", "")
-    new $P623, "ResizablePMCArray"
-    push $P623, $P621
-    push $P623, $P622
-    .return ($P623)
+    $P605 = self."!PREFIX__!subrule"("routine_declarator", "")
+    $P606 = self."!PREFIX__!subrule"("variable_declarator", "")
+    new $P607, "ResizablePMCArray"
+    push $P607, $P605
+    push $P607, $P606
+    .return ($P607)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable_declarator"  :subid("150_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "variable_declarator"  :subid("152_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx627_tgt
-    .local int rx627_pos
-    .local int rx627_off
-    .local int rx627_eos
-    .local int rx627_rep
-    .local pmc rx627_cur
-    (rx627_cur, rx627_pos, rx627_tgt) = self."!cursor_start"()
-    rx627_cur."!cursor_debug"("START ", "variable_declarator")
-    .lex unicode:"$\x{a2}", rx627_cur
+    .local string rx611_tgt
+    .local int rx611_pos
+    .local int rx611_off
+    .local int rx611_eos
+    .local int rx611_rep
+    .local pmc rx611_cur
+    (rx611_cur, rx611_pos, rx611_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx611_cur
     .local pmc match
     .lex "$/", match
-    length rx627_eos, rx627_tgt
-    gt rx627_pos, rx627_eos, rx627_done
-    set rx627_off, 0
-    lt rx627_pos, 2, rx627_start
-    sub rx627_off, rx627_pos, 1
-    substr rx627_tgt, rx627_tgt, rx627_off
-  rx627_start:
+    length rx611_eos, rx611_tgt
+    gt rx611_pos, rx611_eos, rx611_done
+    set rx611_off, 0
+    lt rx611_pos, 2, rx611_start
+    sub rx611_off, rx611_pos, 1
+    substr rx611_tgt, rx611_tgt, rx611_off
+  rx611_start:
+    eq $I10, 1, rx611_restart
+    rx611_cur."!cursor_debug"("START ", "variable_declarator")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan631_done
-    goto rxscan631_scan
-  rxscan631_loop:
-    ($P10) = rx627_cur."from"()
+    ne $I10, -1, rxscan615_done
+    goto rxscan615_scan
+  rxscan615_loop:
+    ($P10) = rx611_cur."from"()
     inc $P10
-    set rx627_pos, $P10
-    ge rx627_pos, rx627_eos, rxscan631_done
-  rxscan631_scan:
-    set_addr $I10, rxscan631_loop
-    rx627_cur."!mark_push"(0, rx627_pos, $I10)
-  rxscan631_done:
-.annotate 'line', 289
+    set rx611_pos, $P10
+    ge rx611_pos, rx611_eos, rxscan615_done
+  rxscan615_scan:
+    set_addr $I10, rxscan615_loop
+    rx611_cur."!mark_push"(0, rx611_pos, $I10)
+  rxscan615_done:
+.annotate 'line', 290
   # rx subrule "variable" subtype=capture negate=
-    rx627_cur."!cursor_pos"(rx627_pos)
-    $P10 = rx627_cur."variable"()
-    unless $P10, rx627_fail
-    rx627_cur."!mark_push"(0, -1, 0, $P10)
+    rx611_cur."!cursor_pos"(rx611_pos)
+    $P10 = rx611_cur."variable"()
+    unless $P10, rx611_fail
+    rx611_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("variable")
-    rx627_pos = $P10."pos"()
+    rx611_pos = $P10."pos"()
   # rx pass
-    rx627_cur."!cursor_pass"(rx627_pos, "variable_declarator")
-    rx627_cur."!cursor_debug"("PASS  ", "variable_declarator", " at pos=", rx627_pos)
-    .return (rx627_cur)
-  rx627_fail:
+    rx611_cur."!cursor_pass"(rx611_pos, "variable_declarator")
+    rx611_cur."!cursor_debug"("PASS  ", "variable_declarator", " at pos=", rx611_pos)
+    .return (rx611_cur)
+  rx611_restart:
 .annotate 'line', 4
-    (rx627_rep, rx627_pos, $I10, $P10) = rx627_cur."!mark_fail"(0)
-    lt rx627_pos, -1, rx627_done
-    eq rx627_pos, -1, rx627_fail
+    rx611_cur."!cursor_debug"("NEXT ", "variable_declarator")
+  rx611_fail:
+    (rx611_rep, rx611_pos, $I10, $P10) = rx611_cur."!mark_fail"(0)
+    lt rx611_pos, -1, rx611_done
+    eq rx611_pos, -1, rx611_fail
     jump $I10
-  rx627_done:
-    rx627_cur."!cursor_fail"()
-    rx627_cur."!cursor_debug"("FAIL  ", "variable_declarator")
-    .return (rx627_cur)
+  rx611_done:
+    rx611_cur."!cursor_fail"()
+    rx611_cur."!cursor_debug"("FAIL  ", "variable_declarator")
+    .return (rx611_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator"  :subid("151_1277356913.9538") :method
+.sub "!PREFIX__variable_declarator"  :subid("153_1280467477.44751") :method
 .annotate 'line', 4
-    $P629 = self."!PREFIX__!subrule"("variable", "")
-    new $P630, "ResizablePMCArray"
-    push $P630, $P629
-    .return ($P630)
+    $P613 = self."!PREFIX__!subrule"("variable", "")
+    new $P614, "ResizablePMCArray"
+    push $P614, $P613
+    .return ($P614)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator"  :subid("152_1277356913.9538") :method
-.annotate 'line', 291
-    $P633 = self."!protoregex"("routine_declarator")
-    .return ($P633)
+.sub "routine_declarator"  :subid("154_1280467477.44751") :method
+.annotate 'line', 292
+    $P617 = self."!protoregex"("routine_declarator")
+    .return ($P617)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator"  :subid("153_1277356913.9538") :method
-.annotate 'line', 291
-    $P635 = self."!PREFIX__!protoregex"("routine_declarator")
-    .return ($P635)
+.sub "!PREFIX__routine_declarator"  :subid("155_1280467477.44751") :method
+.annotate 'line', 292
+    $P619 = self."!PREFIX__!protoregex"("routine_declarator")
+    .return ($P619)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<sub>"  :subid("154_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "routine_declarator:sym<sub>"  :subid("156_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx637_tgt
-    .local int rx637_pos
-    .local int rx637_off
-    .local int rx637_eos
-    .local int rx637_rep
-    .local pmc rx637_cur
-    (rx637_cur, rx637_pos, rx637_tgt) = self."!cursor_start"()
-    rx637_cur."!cursor_debug"("START ", "routine_declarator:sym<sub>")
-    .lex unicode:"$\x{a2}", rx637_cur
-    .local pmc match
-    .lex "$/", match
-    length rx637_eos, rx637_tgt
-    gt rx637_pos, rx637_eos, rx637_done
-    set rx637_off, 0
-    lt rx637_pos, 2, rx637_start
-    sub rx637_off, rx637_pos, 1
-    substr rx637_tgt, rx637_tgt, rx637_off
-  rx637_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan641_done
-    goto rxscan641_scan
-  rxscan641_loop:
-    ($P10) = rx637_cur."from"()
-    inc $P10
-    set rx637_pos, $P10
-    ge rx637_pos, rx637_eos, rxscan641_done
-  rxscan641_scan:
-    set_addr $I10, rxscan641_loop
-    rx637_cur."!mark_push"(0, rx637_pos, $I10)
-  rxscan641_done:
-.annotate 'line', 292
+    .local string rx621_tgt
+    .local int rx621_pos
+    .local int rx621_off
+    .local int rx621_eos
+    .local int rx621_rep
+    .local pmc rx621_cur
+    (rx621_cur, rx621_pos, rx621_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx621_cur
+    .local pmc match
+    .lex "$/", match
+    length rx621_eos, rx621_tgt
+    gt rx621_pos, rx621_eos, rx621_done
+    set rx621_off, 0
+    lt rx621_pos, 2, rx621_start
+    sub rx621_off, rx621_pos, 1
+    substr rx621_tgt, rx621_tgt, rx621_off
+  rx621_start:
+    eq $I10, 1, rx621_restart
+    rx621_cur."!cursor_debug"("START ", "routine_declarator:sym<sub>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan625_done
+    goto rxscan625_scan
+  rxscan625_loop:
+    ($P10) = rx621_cur."from"()
+    inc $P10
+    set rx621_pos, $P10
+    ge rx621_pos, rx621_eos, rxscan625_done
+  rxscan625_scan:
+    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_642_fail
-    rx637_cur."!mark_push"(0, rx637_pos, $I10)
+    set_addr $I10, rxcap_626_fail
+    rx621_cur."!mark_push"(0, rx621_pos, $I10)
   # rx literal  "sub"
-    add $I11, rx637_pos, 3
-    gt $I11, rx637_eos, rx637_fail
-    sub $I11, rx637_pos, rx637_off
-    substr $S10, rx637_tgt, $I11, 3
-    ne $S10, "sub", rx637_fail
-    add rx637_pos, 3
-    set_addr $I10, rxcap_642_fail
-    ($I12, $I11) = rx637_cur."!mark_peek"($I10)
-    rx637_cur."!cursor_pos"($I11)
-    ($P10) = rx637_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx637_pos, "")
-    rx637_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx621_pos, 3
+    gt $I11, rx621_eos, rx621_fail
+    sub $I11, rx621_pos, rx621_off
+    substr $S10, rx621_tgt, $I11, 3
+    ne $S10, "sub", rx621_fail
+    add rx621_pos, 3
+    set_addr $I10, rxcap_626_fail
+    ($I12, $I11) = rx621_cur."!mark_peek"($I10)
+    rx621_cur."!cursor_pos"($I11)
+    ($P10) = rx621_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx621_pos, "")
+    rx621_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_642_done
-  rxcap_642_fail:
-    goto rx637_fail
-  rxcap_642_done:
+    goto rxcap_626_done
+  rxcap_626_fail:
+    goto rx621_fail
+  rxcap_626_done:
   # rx subrule "routine_def" subtype=capture negate=
-    rx637_cur."!cursor_pos"(rx637_pos)
-    $P10 = rx637_cur."routine_def"()
-    unless $P10, rx637_fail
-    rx637_cur."!mark_push"(0, -1, 0, $P10)
+    rx621_cur."!cursor_pos"(rx621_pos)
+    $P10 = rx621_cur."routine_def"()
+    unless $P10, rx621_fail
+    rx621_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("routine_def")
-    rx637_pos = $P10."pos"()
+    rx621_pos = $P10."pos"()
   # rx pass
-    rx637_cur."!cursor_pass"(rx637_pos, "routine_declarator:sym<sub>")
-    rx637_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<sub>", " at pos=", rx637_pos)
-    .return (rx637_cur)
-  rx637_fail:
+    rx621_cur."!cursor_pass"(rx621_pos, "routine_declarator:sym<sub>")
+    rx621_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<sub>", " at pos=", rx621_pos)
+    .return (rx621_cur)
+  rx621_restart:
 .annotate 'line', 4
-    (rx637_rep, rx637_pos, $I10, $P10) = rx637_cur."!mark_fail"(0)
-    lt rx637_pos, -1, rx637_done
-    eq rx637_pos, -1, rx637_fail
+    rx621_cur."!cursor_debug"("NEXT ", "routine_declarator:sym<sub>")
+  rx621_fail:
+    (rx621_rep, rx621_pos, $I10, $P10) = rx621_cur."!mark_fail"(0)
+    lt rx621_pos, -1, rx621_done
+    eq rx621_pos, -1, rx621_fail
     jump $I10
-  rx637_done:
-    rx637_cur."!cursor_fail"()
-    rx637_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<sub>")
-    .return (rx637_cur)
+  rx621_done:
+    rx621_cur."!cursor_fail"()
+    rx621_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<sub>")
+    .return (rx621_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("155_1277356913.9538") :method
+.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("157_1280467477.44751") :method
 .annotate 'line', 4
-    $P639 = self."!PREFIX__!subrule"("routine_def", "sub")
-    new $P640, "ResizablePMCArray"
-    push $P640, $P639
-    .return ($P640)
+    $P623 = self."!PREFIX__!subrule"("routine_def", "sub")
+    new $P624, "ResizablePMCArray"
+    push $P624, $P623
+    .return ($P624)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<method>"  :subid("156_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "routine_declarator:sym<method>"  :subid("158_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx644_tgt
-    .local int rx644_pos
-    .local int rx644_off
-    .local int rx644_eos
-    .local int rx644_rep
-    .local pmc rx644_cur
-    (rx644_cur, rx644_pos, rx644_tgt) = self."!cursor_start"()
-    rx644_cur."!cursor_debug"("START ", "routine_declarator:sym<method>")
-    .lex unicode:"$\x{a2}", rx644_cur
+    .local string rx628_tgt
+    .local int rx628_pos
+    .local int rx628_off
+    .local int rx628_eos
+    .local int rx628_rep
+    .local pmc rx628_cur
+    (rx628_cur, rx628_pos, rx628_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx628_cur
     .local pmc match
     .lex "$/", match
-    length rx644_eos, rx644_tgt
-    gt rx644_pos, rx644_eos, rx644_done
-    set rx644_off, 0
-    lt rx644_pos, 2, rx644_start
-    sub rx644_off, rx644_pos, 1
-    substr rx644_tgt, rx644_tgt, rx644_off
-  rx644_start:
+    length rx628_eos, rx628_tgt
+    gt rx628_pos, rx628_eos, rx628_done
+    set rx628_off, 0
+    lt rx628_pos, 2, rx628_start
+    sub rx628_off, rx628_pos, 1
+    substr rx628_tgt, rx628_tgt, rx628_off
+  rx628_start:
+    eq $I10, 1, rx628_restart
+    rx628_cur."!cursor_debug"("START ", "routine_declarator:sym<method>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan648_done
-    goto rxscan648_scan
-  rxscan648_loop:
-    ($P10) = rx644_cur."from"()
+    ne $I10, -1, rxscan632_done
+    goto rxscan632_scan
+  rxscan632_loop:
+    ($P10) = rx628_cur."from"()
     inc $P10
-    set rx644_pos, $P10
-    ge rx644_pos, rx644_eos, rxscan648_done
-  rxscan648_scan:
-    set_addr $I10, rxscan648_loop
-    rx644_cur."!mark_push"(0, rx644_pos, $I10)
-  rxscan648_done:
-.annotate 'line', 293
+    set rx628_pos, $P10
+    ge rx628_pos, rx628_eos, rxscan632_done
+  rxscan632_scan:
+    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_649_fail
-    rx644_cur."!mark_push"(0, rx644_pos, $I10)
+    set_addr $I10, rxcap_633_fail
+    rx628_cur."!mark_push"(0, rx628_pos, $I10)
   # rx literal  "method"
-    add $I11, rx644_pos, 6
-    gt $I11, rx644_eos, rx644_fail
-    sub $I11, rx644_pos, rx644_off
-    substr $S10, rx644_tgt, $I11, 6
-    ne $S10, "method", rx644_fail
-    add rx644_pos, 6
-    set_addr $I10, rxcap_649_fail
-    ($I12, $I11) = rx644_cur."!mark_peek"($I10)
-    rx644_cur."!cursor_pos"($I11)
-    ($P10) = rx644_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx644_pos, "")
-    rx644_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx628_pos, 6
+    gt $I11, rx628_eos, rx628_fail
+    sub $I11, rx628_pos, rx628_off
+    substr $S10, rx628_tgt, $I11, 6
+    ne $S10, "method", rx628_fail
+    add rx628_pos, 6
+    set_addr $I10, rxcap_633_fail
+    ($I12, $I11) = rx628_cur."!mark_peek"($I10)
+    rx628_cur."!cursor_pos"($I11)
+    ($P10) = rx628_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx628_pos, "")
+    rx628_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_649_done
-  rxcap_649_fail:
-    goto rx644_fail
-  rxcap_649_done:
+    goto rxcap_633_done
+  rxcap_633_fail:
+    goto rx628_fail
+  rxcap_633_done:
   # rx subrule "method_def" subtype=capture negate=
-    rx644_cur."!cursor_pos"(rx644_pos)
-    $P10 = rx644_cur."method_def"()
-    unless $P10, rx644_fail
-    rx644_cur."!mark_push"(0, -1, 0, $P10)
+    rx628_cur."!cursor_pos"(rx628_pos)
+    $P10 = rx628_cur."method_def"()
+    unless $P10, rx628_fail
+    rx628_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("method_def")
-    rx644_pos = $P10."pos"()
+    rx628_pos = $P10."pos"()
   # rx pass
-    rx644_cur."!cursor_pass"(rx644_pos, "routine_declarator:sym<method>")
-    rx644_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<method>", " at pos=", rx644_pos)
-    .return (rx644_cur)
-  rx644_fail:
+    rx628_cur."!cursor_pass"(rx628_pos, "routine_declarator:sym<method>")
+    rx628_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<method>", " at pos=", rx628_pos)
+    .return (rx628_cur)
+  rx628_restart:
 .annotate 'line', 4
-    (rx644_rep, rx644_pos, $I10, $P10) = rx644_cur."!mark_fail"(0)
-    lt rx644_pos, -1, rx644_done
-    eq rx644_pos, -1, rx644_fail
+    rx628_cur."!cursor_debug"("NEXT ", "routine_declarator:sym<method>")
+  rx628_fail:
+    (rx628_rep, rx628_pos, $I10, $P10) = rx628_cur."!mark_fail"(0)
+    lt rx628_pos, -1, rx628_done
+    eq rx628_pos, -1, rx628_fail
     jump $I10
-  rx644_done:
-    rx644_cur."!cursor_fail"()
-    rx644_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<method>")
-    .return (rx644_cur)
+  rx628_done:
+    rx628_cur."!cursor_fail"()
+    rx628_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<method>")
+    .return (rx628_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>"  :subid("157_1277356913.9538") :method
+.sub "!PREFIX__routine_declarator:sym<method>"  :subid("159_1280467477.44751") :method
 .annotate 'line', 4
-    $P646 = self."!PREFIX__!subrule"("method_def", "method")
-    new $P647, "ResizablePMCArray"
-    push $P647, $P646
-    .return ($P647)
+    $P630 = self."!PREFIX__!subrule"("method_def", "method")
+    new $P631, "ResizablePMCArray"
+    push $P631, $P630
+    .return ($P631)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_def"  :subid("158_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "routine_def"  :subid("160_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx651_tgt
-    .local int rx651_pos
-    .local int rx651_off
-    .local int rx651_eos
-    .local int rx651_rep
-    .local pmc rx651_cur
-    (rx651_cur, rx651_pos, rx651_tgt) = self."!cursor_start"()
-    rx651_cur."!cursor_debug"("START ", "routine_def")
-    rx651_cur."!cursor_caparray"("sigil", "deflongname")
-    .lex unicode:"$\x{a2}", rx651_cur
+    .local string rx635_tgt
+    .local int rx635_pos
+    .local int rx635_off
+    .local int rx635_eos
+    .local int rx635_rep
+    .local pmc rx635_cur
+    (rx635_cur, rx635_pos, rx635_tgt, $I10) = self."!cursor_start"()
+    rx635_cur."!cursor_caparray"("sigil", "deflongname")
+    .lex unicode:"$\x{a2}", rx635_cur
     .local pmc match
     .lex "$/", match
-    length rx651_eos, rx651_tgt
-    gt rx651_pos, rx651_eos, rx651_done
-    set rx651_off, 0
-    lt rx651_pos, 2, rx651_start
-    sub rx651_off, rx651_pos, 1
-    substr rx651_tgt, rx651_tgt, rx651_off
-  rx651_start:
+    length rx635_eos, rx635_tgt
+    gt rx635_pos, rx635_eos, rx635_done
+    set rx635_off, 0
+    lt rx635_pos, 2, rx635_start
+    sub rx635_off, rx635_pos, 1
+    substr rx635_tgt, rx635_tgt, rx635_off
+  rx635_start:
+    eq $I10, 1, rx635_restart
+    rx635_cur."!cursor_debug"("START ", "routine_def")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan655_done
-    goto rxscan655_scan
-  rxscan655_loop:
-    ($P10) = rx651_cur."from"()
+    ne $I10, -1, rxscan639_done
+    goto rxscan639_scan
+  rxscan639_loop:
+    ($P10) = rx635_cur."from"()
     inc $P10
-    set rx651_pos, $P10
-    ge rx651_pos, rx651_eos, rxscan655_done
-  rxscan655_scan:
-    set_addr $I10, rxscan655_loop
-    rx651_cur."!mark_push"(0, rx651_pos, $I10)
-  rxscan655_done:
-.annotate 'line', 295
-  # rx subrule "ws" subtype=method negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."ws"()
-    unless $P10, rx651_fail
-    rx651_pos = $P10."pos"()
+    set rx635_pos, $P10
+    ge rx635_pos, rx635_eos, rxscan639_done
+  rxscan639_scan:
+    set_addr $I10, rxscan639_loop
+    rx635_cur."!mark_push"(0, rx635_pos, $I10)
+  rxscan639_done:
 .annotate 'line', 296
-  # rx rxquantr657 ** 0..1
-    set_addr $I663, rxquantr657_done
-    rx651_cur."!mark_push"(0, rx651_pos, $I663)
-  rxquantr657_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."ws"()
-    unless $P10, rx651_fail
-    rx651_pos = $P10."pos"()
+  # 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)
+  rxquantr641_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
   # rx subcapture "sigil"
-    set_addr $I10, rxcap_661_fail
-    rx651_cur."!mark_push"(0, rx651_pos, $I10)
-  # rx rxquantr659 ** 0..1
-    set_addr $I660, rxquantr659_done
-    rx651_cur."!mark_push"(0, rx651_pos, $I660)
-  rxquantr659_loop:
+    set_addr $I10, rxcap_644_fail
+    rx635_cur."!mark_push"(0, rx635_pos, $I10)
+  # rx rxquantr643 ** 0..1
+    set_addr $I10, rxquantr643_done
+    rx635_cur."!mark_push"(0, rx635_pos, $I10)
+  rxquantr643_loop:
   # rx literal  "&"
-    add $I11, rx651_pos, 1
-    gt $I11, rx651_eos, rx651_fail
-    sub $I11, rx651_pos, rx651_off
-    substr $S10, rx651_tgt, $I11, 1
-    ne $S10, "&", rx651_fail
-    add rx651_pos, 1
-    (rx651_rep) = rx651_cur."!mark_commit"($I660)
-  rxquantr659_done:
-    set_addr $I10, rxcap_661_fail
-    ($I12, $I11) = rx651_cur."!mark_peek"($I10)
-    rx651_cur."!cursor_pos"($I11)
-    ($P10) = rx651_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx651_pos, "")
-    rx651_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx635_pos, 1
+    gt $I11, rx635_eos, rx635_fail
+    sub $I11, rx635_pos, rx635_off
+    substr $S10, rx635_tgt, $I11, 1
+    ne $S10, "&", rx635_fail
+    add rx635_pos, 1
+    set_addr $I10, rxquantr643_done
+    (rx635_rep) = rx635_cur."!mark_commit"($I10)
+  rxquantr643_done:
+    set_addr $I10, rxcap_644_fail
+    ($I12, $I11) = rx635_cur."!mark_peek"($I10)
+    rx635_cur."!cursor_pos"($I11)
+    ($P10) = rx635_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx635_pos, "")
+    rx635_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    goto rxcap_661_done
-  rxcap_661_fail:
-    goto rx651_fail
-  rxcap_661_done:
+    goto rxcap_644_done
+  rxcap_644_fail:
+    goto rx635_fail
+  rxcap_644_done:
   # rx subrule "deflongname" subtype=capture negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."deflongname"()
-    unless $P10, rx651_fail
-    rx651_cur."!mark_push"(0, -1, 0, $P10)
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."deflongname"()
+    unless $P10, rx635_fail
+    rx635_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx651_pos = $P10."pos"()
+    rx635_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."ws"()
-    unless $P10, rx651_fail
-    rx651_pos = $P10."pos"()
-    (rx651_rep) = rx651_cur."!mark_commit"($I663)
-  rxquantr657_done:
-  # rx subrule "ws" subtype=method negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."ws"()
-    unless $P10, rx651_fail
-    rx651_pos = $P10."pos"()
-.annotate 'line', 297
-  # rx subrule "newpad" subtype=method negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."newpad"()
-    unless $P10, rx651_fail
-    rx651_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."ws"()
-    unless $P10, rx651_fail
-    rx651_pos = $P10."pos"()
-  alt666_0:
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
+    set_addr $I10, rxquantr641_done
+    (rx635_rep) = rx635_cur."!mark_commit"($I10)
+  rxquantr641_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', 298
-    set_addr $I10, alt666_1
-    rx651_cur."!mark_push"(0, rx651_pos, $I10)
+  # rx subrule "newpad" subtype=method negate=
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."newpad"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    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=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."ws"()
-    unless $P10, rx651_fail
-    rx651_pos = $P10."pos"()
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
   # rx literal  "("
-    add $I11, rx651_pos, 1
-    gt $I11, rx651_eos, rx651_fail
-    sub $I11, rx651_pos, rx651_off
-    substr $S10, rx651_tgt, $I11, 1
-    ne $S10, "(", rx651_fail
-    add rx651_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."ws"()
-    unless $P10, rx651_fail
-    rx651_pos = $P10."pos"()
+    add $I11, rx635_pos, 1
+    gt $I11, rx635_eos, rx635_fail
+    sub $I11, rx635_pos, rx635_off
+    substr $S10, rx635_tgt, $I11, 1
+    ne $S10, "(", rx635_fail
+    add rx635_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
   # rx subrule "signature" subtype=capture negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."signature"()
-    unless $P10, rx651_fail
-    rx651_cur."!mark_push"(0, -1, 0, $P10)
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."signature"()
+    unless $P10, rx635_fail
+    rx635_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx651_pos = $P10."pos"()
+    rx635_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."ws"()
-    unless $P10, rx651_fail
-    rx651_pos = $P10."pos"()
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx651_pos, 1
-    gt $I11, rx651_eos, rx651_fail
-    sub $I11, rx651_pos, rx651_off
-    substr $S10, rx651_tgt, $I11, 1
-    ne $S10, ")", rx651_fail
-    add rx651_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."ws"()
-    unless $P10, rx651_fail
-    rx651_pos = $P10."pos"()
-    goto alt666_end
-  alt666_1:
-.annotate 'line', 299
+    add $I11, rx635_pos, 1
+    gt $I11, rx635_eos, rx635_fail
+    sub $I11, rx635_pos, rx635_off
+    substr $S10, rx635_tgt, $I11, 1
+    ne $S10, ")", rx635_fail
+    add rx635_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
+    goto alt648_end
+  alt648_1:
+.annotate 'line', 300
   # rx subrule "ws" subtype=method negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."ws"()
-    unless $P10, rx651_fail
-    rx651_pos = $P10."pos"()
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."panic"("Routine declaration requires a signature")
-    unless $P10, rx651_fail
-    rx651_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."ws"()
-    unless $P10, rx651_fail
-    rx651_pos = $P10."pos"()
-  alt666_end:
-  # rx subrule "ws" subtype=method negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."ws"()
-    unless $P10, rx651_fail
-    rx651_pos = $P10."pos"()
-.annotate 'line', 300
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."panic"("Routine declaration requires a signature")
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
+  alt648_end:
+  # 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', 301
   # rx subrule "blockoid" subtype=capture negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."blockoid"()
-    unless $P10, rx651_fail
-    rx651_cur."!mark_push"(0, -1, 0, $P10)
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."blockoid"()
+    unless $P10, rx635_fail
+    rx635_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx651_pos = $P10."pos"()
+    rx635_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx651_cur."!cursor_pos"(rx651_pos)
-    $P10 = rx651_cur."ws"()
-    unless $P10, rx651_fail
-    rx651_pos = $P10."pos"()
-.annotate 'line', 295
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
+.annotate 'line', 296
   # rx pass
-    rx651_cur."!cursor_pass"(rx651_pos, "routine_def")
-    rx651_cur."!cursor_debug"("PASS  ", "routine_def", " at pos=", rx651_pos)
-    .return (rx651_cur)
-  rx651_fail:
+    rx635_cur."!cursor_pass"(rx635_pos, "routine_def")
+    rx635_cur."!cursor_debug"("PASS  ", "routine_def", " at pos=", rx635_pos)
+    .return (rx635_cur)
+  rx635_restart:
 .annotate 'line', 4
-    (rx651_rep, rx651_pos, $I10, $P10) = rx651_cur."!mark_fail"(0)
-    lt rx651_pos, -1, rx651_done
-    eq rx651_pos, -1, rx651_fail
+    rx635_cur."!cursor_debug"("NEXT ", "routine_def")
+  rx635_fail:
+    (rx635_rep, rx635_pos, $I10, $P10) = rx635_cur."!mark_fail"(0)
+    lt rx635_pos, -1, rx635_done
+    eq rx635_pos, -1, rx635_fail
     jump $I10
-  rx651_done:
-    rx651_cur."!cursor_fail"()
-    rx651_cur."!cursor_debug"("FAIL  ", "routine_def")
-    .return (rx651_cur)
+  rx635_done:
+    rx635_cur."!cursor_fail"()
+    rx635_cur."!cursor_debug"("FAIL  ", "routine_def")
+    .return (rx635_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def"  :subid("159_1277356913.9538") :method
+.sub "!PREFIX__routine_def"  :subid("161_1280467477.44751") :method
 .annotate 'line', 4
-    $P653 = self."!PREFIX__!subrule"("ws", "")
-    new $P654, "ResizablePMCArray"
-    push $P654, $P653
-    .return ($P654)
+    $P637 = self."!PREFIX__!subrule"("ws", "")
+    new $P638, "ResizablePMCArray"
+    push $P638, $P637
+    .return ($P638)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "method_def"  :subid("160_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "method_def"  :subid("162_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx676_tgt
-    .local int rx676_pos
-    .local int rx676_off
-    .local int rx676_eos
-    .local int rx676_rep
-    .local pmc rx676_cur
-    (rx676_cur, rx676_pos, rx676_tgt) = self."!cursor_start"()
-    rx676_cur."!cursor_debug"("START ", "method_def")
-    rx676_cur."!cursor_caparray"("deflongname")
-    .lex unicode:"$\x{a2}", rx676_cur
+    .local string rx658_tgt
+    .local int rx658_pos
+    .local int rx658_off
+    .local int rx658_eos
+    .local int rx658_rep
+    .local pmc rx658_cur
+    (rx658_cur, rx658_pos, rx658_tgt, $I10) = self."!cursor_start"()
+    rx658_cur."!cursor_caparray"("deflongname")
+    .lex unicode:"$\x{a2}", rx658_cur
     .local pmc match
     .lex "$/", match
-    length rx676_eos, rx676_tgt
-    gt rx676_pos, rx676_eos, rx676_done
-    set rx676_off, 0
-    lt rx676_pos, 2, rx676_start
-    sub rx676_off, rx676_pos, 1
-    substr rx676_tgt, rx676_tgt, rx676_off
-  rx676_start:
+    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
+    rx658_cur."!cursor_debug"("START ", "method_def")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan680_done
-    goto rxscan680_scan
-  rxscan680_loop:
-    ($P10) = rx676_cur."from"()
+    ne $I10, -1, rxscan662_done
+    goto rxscan662_scan
+  rxscan662_loop:
+    ($P10) = rx658_cur."from"()
     inc $P10
-    set rx676_pos, $P10
-    ge rx676_pos, rx676_eos, rxscan680_done
-  rxscan680_scan:
-    set_addr $I10, rxscan680_loop
-    rx676_cur."!mark_push"(0, rx676_pos, $I10)
-  rxscan680_done:
-.annotate 'line', 303
-  # rx subrule "ws" subtype=method negate=
-    rx676_cur."!cursor_pos"(rx676_pos)
-    $P10 = rx676_cur."ws"()
-    unless $P10, rx676_fail
-    rx676_pos = $P10."pos"()
+    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:
 .annotate 'line', 304
-  # rx rxquantr682 ** 0..1
-    set_addr $I683, rxquantr682_done
-    rx676_cur."!mark_push"(0, rx676_pos, $I683)
-  rxquantr682_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."ws"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
+.annotate 'line', 305
+  # rx rxquantr664 ** 0..1
+    set_addr $I10, rxquantr664_done
+    rx658_cur."!mark_push"(0, rx658_pos, $I10)
+  rxquantr664_loop:
   # rx subrule "deflongname" subtype=capture negate=
-    rx676_cur."!cursor_pos"(rx676_pos)
-    $P10 = rx676_cur."deflongname"()
-    unless $P10, rx676_fail
-    rx676_cur."!mark_push"(0, -1, 0, $P10)
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."deflongname"()
+    unless $P10, rx658_fail
+    goto rxsubrule665_pass
+  rxsubrule665_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)
     $P10."!cursor_names"("deflongname")
-    rx676_pos = $P10."pos"()
-    (rx676_rep) = rx676_cur."!mark_commit"($I683)
-  rxquantr682_done:
-  # rx subrule "ws" subtype=method negate=
-    rx676_cur."!cursor_pos"(rx676_pos)
-    $P10 = rx676_cur."ws"()
-    unless $P10, rx676_fail
-    rx676_pos = $P10."pos"()
-.annotate 'line', 305
-  # rx subrule "newpad" subtype=method negate=
-    rx676_cur."!cursor_pos"(rx676_pos)
-    $P10 = rx676_cur."newpad"()
-    unless $P10, rx676_fail
-    rx676_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx676_cur."!cursor_pos"(rx676_pos)
-    $P10 = rx676_cur."ws"()
-    unless $P10, rx676_fail
-    rx676_pos = $P10."pos"()
-  alt686_0:
+    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"()
 .annotate 'line', 306
-    set_addr $I10, alt686_1
-    rx676_cur."!mark_push"(0, rx676_pos, $I10)
+  # 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:
+.annotate 'line', 307
+    set_addr $I10, alt668_1
+    rx658_cur."!mark_push"(0, rx658_pos, $I10)
   # rx subrule "ws" subtype=method negate=
-    rx676_cur."!cursor_pos"(rx676_pos)
-    $P10 = rx676_cur."ws"()
-    unless $P10, rx676_fail
-    rx676_pos = $P10."pos"()
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."ws"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
   # rx literal  "("
-    add $I11, rx676_pos, 1
-    gt $I11, rx676_eos, rx676_fail
-    sub $I11, rx676_pos, rx676_off
-    substr $S10, rx676_tgt, $I11, 1
-    ne $S10, "(", rx676_fail
-    add rx676_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx676_cur."!cursor_pos"(rx676_pos)
-    $P10 = rx676_cur."ws"()
-    unless $P10, rx676_fail
-    rx676_pos = $P10."pos"()
+    add $I11, rx658_pos, 1
+    gt $I11, rx658_eos, rx658_fail
+    sub $I11, rx658_pos, rx658_off
+    substr $S10, rx658_tgt, $I11, 1
+    ne $S10, "(", rx658_fail
+    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"()
   # rx subrule "signature" subtype=capture negate=
-    rx676_cur."!cursor_pos"(rx676_pos)
-    $P10 = rx676_cur."signature"()
-    unless $P10, rx676_fail
-    rx676_cur."!mark_push"(0, -1, 0, $P10)
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."signature"()
+    unless $P10, rx658_fail
+    rx658_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx676_pos = $P10."pos"()
+    rx658_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx676_cur."!cursor_pos"(rx676_pos)
-    $P10 = rx676_cur."ws"()
-    unless $P10, rx676_fail
-    rx676_pos = $P10."pos"()
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."ws"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx676_pos, 1
-    gt $I11, rx676_eos, rx676_fail
-    sub $I11, rx676_pos, rx676_off
-    substr $S10, rx676_tgt, $I11, 1
-    ne $S10, ")", rx676_fail
-    add rx676_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx676_cur."!cursor_pos"(rx676_pos)
-    $P10 = rx676_cur."ws"()
-    unless $P10, rx676_fail
-    rx676_pos = $P10."pos"()
-    goto alt686_end
-  alt686_1:
-.annotate 'line', 307
+    add $I11, rx658_pos, 1
+    gt $I11, rx658_eos, rx658_fail
+    sub $I11, rx658_pos, rx658_off
+    substr $S10, rx658_tgt, $I11, 1
+    ne $S10, ")", rx658_fail
+    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:
+.annotate 'line', 308
   # rx subrule "ws" subtype=method negate=
-    rx676_cur."!cursor_pos"(rx676_pos)
-    $P10 = rx676_cur."ws"()
-    unless $P10, rx676_fail
-    rx676_pos = $P10."pos"()
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."ws"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx676_cur."!cursor_pos"(rx676_pos)
-    $P10 = rx676_cur."panic"("Routine declaration requires a signature")
-    unless $P10, rx676_fail
-    rx676_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx676_cur."!cursor_pos"(rx676_pos)
-    $P10 = rx676_cur."ws"()
-    unless $P10, rx676_fail
-    rx676_pos = $P10."pos"()
-  alt686_end:
-  # rx subrule "ws" subtype=method negate=
-    rx676_cur."!cursor_pos"(rx676_pos)
-    $P10 = rx676_cur."ws"()
-    unless $P10, rx676_fail
-    rx676_pos = $P10."pos"()
-.annotate 'line', 308
+    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"()
+.annotate 'line', 309
   # rx subrule "blockoid" subtype=capture negate=
-    rx676_cur."!cursor_pos"(rx676_pos)
-    $P10 = rx676_cur."blockoid"()
-    unless $P10, rx676_fail
-    rx676_cur."!mark_push"(0, -1, 0, $P10)
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."blockoid"()
+    unless $P10, rx658_fail
+    rx658_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx676_pos = $P10."pos"()
+    rx658_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx676_cur."!cursor_pos"(rx676_pos)
-    $P10 = rx676_cur."ws"()
-    unless $P10, rx676_fail
-    rx676_pos = $P10."pos"()
-.annotate 'line', 303
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."ws"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
+.annotate 'line', 304
   # rx pass
-    rx676_cur."!cursor_pass"(rx676_pos, "method_def")
-    rx676_cur."!cursor_debug"("PASS  ", "method_def", " at pos=", rx676_pos)
-    .return (rx676_cur)
-  rx676_fail:
+    rx658_cur."!cursor_pass"(rx658_pos, "method_def")
+    rx658_cur."!cursor_debug"("PASS  ", "method_def", " at pos=", rx658_pos)
+    .return (rx658_cur)
+  rx658_restart:
 .annotate 'line', 4
-    (rx676_rep, rx676_pos, $I10, $P10) = rx676_cur."!mark_fail"(0)
-    lt rx676_pos, -1, rx676_done
-    eq rx676_pos, -1, rx676_fail
+    rx658_cur."!cursor_debug"("NEXT ", "method_def")
+  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
-  rx676_done:
-    rx676_cur."!cursor_fail"()
-    rx676_cur."!cursor_debug"("FAIL  ", "method_def")
-    .return (rx676_cur)
+  rx658_done:
+    rx658_cur."!cursor_fail"()
+    rx658_cur."!cursor_debug"("FAIL  ", "method_def")
+    .return (rx658_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def"  :subid("161_1277356913.9538") :method
+.sub "!PREFIX__method_def"  :subid("163_1280467477.44751") :method
 .annotate 'line', 4
-    $P678 = self."!PREFIX__!subrule"("ws", "")
-    new $P679, "ResizablePMCArray"
-    push $P679, $P678
-    .return ($P679)
+    $P660 = self."!PREFIX__!subrule"("ws", "")
+    new $P661, "ResizablePMCArray"
+    push $P661, $P660
+    .return ($P661)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator"  :subid("162_1277356913.9538") :method
-.annotate 'line', 311
-    $P696 = self."!protoregex"("multi_declarator")
-    .return ($P696)
+.sub "multi_declarator"  :subid("164_1280467477.44751") :method
+.annotate 'line', 312
+    $P678 = self."!protoregex"("multi_declarator")
+    .return ($P678)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator"  :subid("163_1277356913.9538") :method
-.annotate 'line', 311
-    $P698 = self."!PREFIX__!protoregex"("multi_declarator")
-    .return ($P698)
+.sub "!PREFIX__multi_declarator"  :subid("165_1280467477.44751") :method
+.annotate 'line', 312
+    $P680 = self."!PREFIX__!protoregex"("multi_declarator")
+    .return ($P680)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator:sym<multi>"  :subid("164_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 313
-    new $P700, "Undef"
-    .lex "$*MULTINESS", $P700
+.sub "multi_declarator:sym<multi>"  :subid("166_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 314
+    new $P682, "Undef"
+    .lex "$*MULTINESS", $P682
 .annotate 'line', 4
-    .local string rx701_tgt
-    .local int rx701_pos
-    .local int rx701_off
-    .local int rx701_eos
-    .local int rx701_rep
-    .local pmc rx701_cur
-    (rx701_cur, rx701_pos, rx701_tgt) = self."!cursor_start"()
-    rx701_cur."!cursor_debug"("START ", "multi_declarator:sym<multi>")
-    .lex unicode:"$\x{a2}", rx701_cur
-    .local pmc match
-    .lex "$/", match
-    length rx701_eos, rx701_tgt
-    gt rx701_pos, rx701_eos, rx701_done
-    set rx701_off, 0
-    lt rx701_pos, 2, rx701_start
-    sub rx701_off, rx701_pos, 1
-    substr rx701_tgt, rx701_tgt, rx701_off
-  rx701_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan705_done
-    goto rxscan705_scan
-  rxscan705_loop:
-    ($P10) = rx701_cur."from"()
-    inc $P10
-    set rx701_pos, $P10
-    ge rx701_pos, rx701_eos, rxscan705_done
-  rxscan705_scan:
-    set_addr $I10, rxscan705_loop
-    rx701_cur."!mark_push"(0, rx701_pos, $I10)
-  rxscan705_done:
-.annotate 'line', 313
-    rx701_cur."!cursor_pos"(rx701_pos)
-    new $P706, "String"
-    assign $P706, "multi"
-    store_lex "$*MULTINESS", $P706
+    .local string rx683_tgt
+    .local int rx683_pos
+    .local int rx683_off
+    .local int rx683_eos
+    .local int rx683_rep
+    .local pmc rx683_cur
+    (rx683_cur, rx683_pos, rx683_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx683_cur."!cursor_debug"("START ", "multi_declarator:sym<multi>")
+    $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:
 .annotate 'line', 314
+    rx683_cur."!cursor_pos"(rx683_pos)
+    new $P688, "String"
+    assign $P688, "multi"
+    store_lex "$*MULTINESS", $P688
+.annotate 'line', 315
   # rx subcapture "sym"
-    set_addr $I10, rxcap_707_fail
-    rx701_cur."!mark_push"(0, rx701_pos, $I10)
+    set_addr $I10, rxcap_689_fail
+    rx683_cur."!mark_push"(0, rx683_pos, $I10)
   # rx literal  "multi"
-    add $I11, rx701_pos, 5
-    gt $I11, rx701_eos, rx701_fail
-    sub $I11, rx701_pos, rx701_off
-    substr $S10, rx701_tgt, $I11, 5
-    ne $S10, "multi", rx701_fail
-    add rx701_pos, 5
-    set_addr $I10, rxcap_707_fail
-    ($I12, $I11) = rx701_cur."!mark_peek"($I10)
-    rx701_cur."!cursor_pos"($I11)
-    ($P10) = rx701_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx701_pos, "")
-    rx701_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_707_done
-  rxcap_707_fail:
-    goto rx701_fail
-  rxcap_707_done:
-.annotate 'line', 315
-  # rx subrule "ws" subtype=method negate=
-    rx701_cur."!cursor_pos"(rx701_pos)
-    $P10 = rx701_cur."ws"()
-    unless $P10, rx701_fail
-    rx701_pos = $P10."pos"()
-  alt708_0:
-    set_addr $I10, alt708_1
-    rx701_cur."!mark_push"(0, rx701_pos, $I10)
+    goto rxcap_689_done
+  rxcap_689_fail:
+    goto rx683_fail
+  rxcap_689_done:
+.annotate 'line', 316
+  # 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)
   # rx subrule "declarator" subtype=capture negate=
-    rx701_cur."!cursor_pos"(rx701_pos)
-    $P10 = rx701_cur."declarator"()
-    unless $P10, rx701_fail
-    rx701_cur."!mark_push"(0, -1, 0, $P10)
+    rx683_cur."!cursor_pos"(rx683_pos)
+    $P10 = rx683_cur."declarator"()
+    unless $P10, rx683_fail
+    rx683_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("declarator")
-    rx701_pos = $P10."pos"()
-    goto alt708_end
-  alt708_1:
-    set_addr $I10, alt708_2
-    rx701_cur."!mark_push"(0, rx701_pos, $I10)
+    rx683_pos = $P10."pos"()
+    goto alt690_end
+  alt690_1:
+    set_addr $I10, alt690_2
+    rx683_cur."!mark_push"(0, rx683_pos, $I10)
   # rx subrule "routine_def" subtype=capture negate=
-    rx701_cur."!cursor_pos"(rx701_pos)
-    $P10 = rx701_cur."routine_def"()
-    unless $P10, rx701_fail
-    rx701_cur."!mark_push"(0, -1, 0, $P10)
+    rx683_cur."!cursor_pos"(rx683_pos)
+    $P10 = rx683_cur."routine_def"()
+    unless $P10, rx683_fail
+    rx683_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("routine_def")
-    rx701_pos = $P10."pos"()
-    goto alt708_end
-  alt708_2:
+    rx683_pos = $P10."pos"()
+    goto alt690_end
+  alt690_2:
   # rx subrule "panic" subtype=method negate=
-    rx701_cur."!cursor_pos"(rx701_pos)
-    $P10 = rx701_cur."panic"("Malformed multi")
-    unless $P10, rx701_fail
-    rx701_pos = $P10."pos"()
-  alt708_end:
-.annotate 'line', 312
+    rx683_cur."!cursor_pos"(rx683_pos)
+    $P10 = rx683_cur."panic"("Malformed multi")
+    unless $P10, rx683_fail
+    rx683_pos = $P10."pos"()
+  alt690_end:
+.annotate 'line', 313
   # rx pass
-    rx701_cur."!cursor_pass"(rx701_pos, "multi_declarator:sym<multi>")
-    rx701_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<multi>", " at pos=", rx701_pos)
-    .return (rx701_cur)
-  rx701_fail:
+    rx683_cur."!cursor_pass"(rx683_pos, "multi_declarator:sym<multi>")
+    rx683_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<multi>", " at pos=", rx683_pos)
+    .return (rx683_cur)
+  rx683_restart:
 .annotate 'line', 4
-    (rx701_rep, rx701_pos, $I10, $P10) = rx701_cur."!mark_fail"(0)
-    lt rx701_pos, -1, rx701_done
-    eq rx701_pos, -1, rx701_fail
+    rx683_cur."!cursor_debug"("NEXT ", "multi_declarator:sym<multi>")
+  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
-  rx701_done:
-    rx701_cur."!cursor_fail"()
-    rx701_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<multi>")
-    .return (rx701_cur)
+  rx683_done:
+    rx683_cur."!cursor_fail"()
+    rx683_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<multi>")
+    .return (rx683_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<multi>"  :subid("165_1277356913.9538") :method
+.sub "!PREFIX__multi_declarator:sym<multi>"  :subid("167_1280467477.44751") :method
 .annotate 'line', 4
-    $P703 = self."!PREFIX__!subrule"("ws", "multi")
-    new $P704, "ResizablePMCArray"
-    push $P704, $P703
-    .return ($P704)
+    $P685 = self."!PREFIX__!subrule"("ws", "multi")
+    new $P686, "ResizablePMCArray"
+    push $P686, $P685
+    .return ($P686)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator:sym<null>"  :subid("166_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 318
-    new $P710, "Undef"
-    .lex "$*MULTINESS", $P710
+.sub "multi_declarator:sym<null>"  :subid("168_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 319
+    new $P692, "Undef"
+    .lex "$*MULTINESS", $P692
 .annotate 'line', 4
-    .local string rx711_tgt
-    .local int rx711_pos
-    .local int rx711_off
-    .local int rx711_eos
-    .local int rx711_rep
-    .local pmc rx711_cur
-    (rx711_cur, rx711_pos, rx711_tgt) = self."!cursor_start"()
-    rx711_cur."!cursor_debug"("START ", "multi_declarator:sym<null>")
-    .lex unicode:"$\x{a2}", rx711_cur
-    .local pmc match
-    .lex "$/", match
-    length rx711_eos, rx711_tgt
-    gt rx711_pos, rx711_eos, rx711_done
-    set rx711_off, 0
-    lt rx711_pos, 2, rx711_start
-    sub rx711_off, rx711_pos, 1
-    substr rx711_tgt, rx711_tgt, rx711_off
-  rx711_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan715_done
-    goto rxscan715_scan
-  rxscan715_loop:
-    ($P10) = rx711_cur."from"()
-    inc $P10
-    set rx711_pos, $P10
-    ge rx711_pos, rx711_eos, rxscan715_done
-  rxscan715_scan:
-    set_addr $I10, rxscan715_loop
-    rx711_cur."!mark_push"(0, rx711_pos, $I10)
-  rxscan715_done:
-.annotate 'line', 318
-    rx711_cur."!cursor_pos"(rx711_pos)
-    new $P716, "String"
-    assign $P716, ""
-    store_lex "$*MULTINESS", $P716
+    .local string rx693_tgt
+    .local int rx693_pos
+    .local int rx693_off
+    .local int rx693_eos
+    .local int rx693_rep
+    .local pmc rx693_cur
+    (rx693_cur, rx693_pos, rx693_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx693_cur."!cursor_debug"("START ", "multi_declarator:sym<null>")
+    $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:
 .annotate 'line', 319
+    rx693_cur."!cursor_pos"(rx693_pos)
+    new $P698, "String"
+    assign $P698, ""
+    store_lex "$*MULTINESS", $P698
+.annotate 'line', 320
   # rx subrule "declarator" subtype=capture negate=
-    rx711_cur."!cursor_pos"(rx711_pos)
-    $P10 = rx711_cur."declarator"()
-    unless $P10, rx711_fail
-    rx711_cur."!mark_push"(0, -1, 0, $P10)
+    rx693_cur."!cursor_pos"(rx693_pos)
+    $P10 = rx693_cur."declarator"()
+    unless $P10, rx693_fail
+    rx693_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("declarator")
-    rx711_pos = $P10."pos"()
-.annotate 'line', 317
+    rx693_pos = $P10."pos"()
+.annotate 'line', 318
   # rx pass
-    rx711_cur."!cursor_pass"(rx711_pos, "multi_declarator:sym<null>")
-    rx711_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<null>", " at pos=", rx711_pos)
-    .return (rx711_cur)
-  rx711_fail:
+    rx693_cur."!cursor_pass"(rx693_pos, "multi_declarator:sym<null>")
+    rx693_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<null>", " at pos=", rx693_pos)
+    .return (rx693_cur)
+  rx693_restart:
 .annotate 'line', 4
-    (rx711_rep, rx711_pos, $I10, $P10) = rx711_cur."!mark_fail"(0)
-    lt rx711_pos, -1, rx711_done
-    eq rx711_pos, -1, rx711_fail
+    rx693_cur."!cursor_debug"("NEXT ", "multi_declarator:sym<null>")
+  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
-  rx711_done:
-    rx711_cur."!cursor_fail"()
-    rx711_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<null>")
-    .return (rx711_cur)
+  rx693_done:
+    rx693_cur."!cursor_fail"()
+    rx693_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<null>")
+    .return (rx693_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<null>"  :subid("167_1277356913.9538") :method
+.sub "!PREFIX__multi_declarator:sym<null>"  :subid("169_1280467477.44751") :method
 .annotate 'line', 4
-    $P713 = self."!PREFIX__!subrule"("declarator", "")
-    new $P714, "ResizablePMCArray"
-    push $P714, $P713
-    .return ($P714)
+    $P695 = self."!PREFIX__!subrule"("declarator", "")
+    new $P696, "ResizablePMCArray"
+    push $P696, $P695
+    .return ($P696)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "signature"  :subid("168_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "signature"  :subid("170_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx718_tgt
-    .local int rx718_pos
-    .local int rx718_off
-    .local int rx718_eos
-    .local int rx718_rep
-    .local pmc rx718_cur
-    (rx718_cur, rx718_pos, rx718_tgt) = self."!cursor_start"()
-    rx718_cur."!cursor_debug"("START ", "signature")
-    rx718_cur."!cursor_caparray"("parameter")
-    .lex unicode:"$\x{a2}", rx718_cur
-    .local pmc match
-    .lex "$/", match
-    length rx718_eos, rx718_tgt
-    gt rx718_pos, rx718_eos, rx718_done
-    set rx718_off, 0
-    lt rx718_pos, 2, rx718_start
-    sub rx718_off, rx718_pos, 1
-    substr rx718_tgt, rx718_tgt, rx718_off
-  rx718_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan721_done
-    goto rxscan721_scan
-  rxscan721_loop:
-    ($P10) = rx718_cur."from"()
-    inc $P10
-    set rx718_pos, $P10
-    ge rx718_pos, rx718_eos, rxscan721_done
-  rxscan721_scan:
-    set_addr $I10, rxscan721_loop
-    rx718_cur."!mark_push"(0, rx718_pos, $I10)
-  rxscan721_done:
-.annotate 'line', 322
-  # rx rxquantr722 ** 0..1
-    set_addr $I725, rxquantr722_done
-    rx718_cur."!mark_push"(0, rx718_pos, $I725)
-  rxquantr722_loop:
-  # rx rxquantr723 ** 1..*
-    set_addr $I724, rxquantr723_done
-    rx718_cur."!mark_push"(0, -1, $I724)
-  rxquantr723_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx718_cur."!cursor_pos"(rx718_pos)
-    $P10 = rx718_cur."ws"()
-    unless $P10, rx718_fail
-    rx718_pos = $P10."pos"()
+    .local string rx700_tgt
+    .local int rx700_pos
+    .local int rx700_off
+    .local int rx700_eos
+    .local int rx700_rep
+    .local pmc rx700_cur
+    (rx700_cur, rx700_pos, rx700_tgt, $I10) = self."!cursor_start"()
+    rx700_cur."!cursor_caparray"("parameter")
+    .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
+    rx700_cur."!cursor_debug"("START ", "signature")
+    $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:
+.annotate 'line', 323
+  # 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"()
   # rx subrule "parameter" subtype=capture negate=
-    rx718_cur."!cursor_pos"(rx718_pos)
-    $P10 = rx718_cur."parameter"()
-    unless $P10, rx718_fail
-    rx718_cur."!mark_push"(0, -1, 0, $P10)
+    rx700_cur."!cursor_pos"(rx700_pos)
+    $P10 = rx700_cur."parameter"()
+    unless $P10, rx700_fail
+    rx700_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("parameter")
-    rx718_pos = $P10."pos"()
+    rx700_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx718_cur."!cursor_pos"(rx718_pos)
-    $P10 = rx718_cur."ws"()
-    unless $P10, rx718_fail
-    rx718_pos = $P10."pos"()
-    (rx718_rep) = rx718_cur."!mark_commit"($I724)
-    rx718_cur."!mark_push"(rx718_rep, rx718_pos, $I724)
+    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)
   # rx literal  ","
-    add $I11, rx718_pos, 1
-    gt $I11, rx718_eos, rx718_fail
-    sub $I11, rx718_pos, rx718_off
-    substr $S10, rx718_tgt, $I11, 1
-    ne $S10, ",", rx718_fail
-    add rx718_pos, 1
-    goto rxquantr723_loop
-  rxquantr723_done:
-    (rx718_rep) = rx718_cur."!mark_commit"($I725)
-  rxquantr722_done:
-  # rx pass
-    rx718_cur."!cursor_pass"(rx718_pos, "signature")
-    rx718_cur."!cursor_debug"("PASS  ", "signature", " at pos=", rx718_pos)
-    .return (rx718_cur)
-  rx718_fail:
-.annotate 'line', 4
-    (rx718_rep, rx718_pos, $I10, $P10) = rx718_cur."!mark_fail"(0)
-    lt rx718_pos, -1, rx718_done
-    eq rx718_pos, -1, rx718_fail
-    jump $I10
-  rx718_done:
-    rx718_cur."!cursor_fail"()
-    rx718_cur."!cursor_debug"("FAIL  ", "signature")
-    .return (rx718_cur)
+    add $I11, rx700_pos, 1
+    gt $I11, rx700_eos, rx700_fail
+    sub $I11, rx700_pos, rx700_off
+    substr $S10, rx700_tgt, $I11, 1
+    ne $S10, ",", rx700_fail
+    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")
+    rx700_cur."!cursor_debug"("PASS  ", "signature", " at pos=", rx700_pos)
+    .return (rx700_cur)
+  rx700_restart:
+.annotate 'line', 4
+    rx700_cur."!cursor_debug"("NEXT ", "signature")
+  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"()
+    rx700_cur."!cursor_debug"("FAIL  ", "signature")
+    .return (rx700_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature"  :subid("169_1277356913.9538") :method
-.annotate 'line', 4
-    new $P720, "ResizablePMCArray"
-    push $P720, ""
-    .return ($P720)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "parameter"  :subid("170_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 4
-    .local string rx727_tgt
-    .local int rx727_pos
-    .local int rx727_off
-    .local int rx727_eos
-    .local int rx727_rep
-    .local pmc rx727_cur
-    (rx727_cur, rx727_pos, rx727_tgt) = self."!cursor_start"()
-    rx727_cur."!cursor_debug"("START ", "parameter")
-    rx727_cur."!cursor_caparray"("default_value", "typename")
-    .lex unicode:"$\x{a2}", rx727_cur
-    .local pmc match
-    .lex "$/", match
-    length rx727_eos, rx727_tgt
-    gt rx727_pos, rx727_eos, rx727_done
-    set rx727_off, 0
-    lt rx727_pos, 2, rx727_start
-    sub rx727_off, rx727_pos, 1
-    substr rx727_tgt, rx727_tgt, rx727_off
-  rx727_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan730_done
-    goto rxscan730_scan
-  rxscan730_loop:
-    ($P10) = rx727_cur."from"()
-    inc $P10
-    set rx727_pos, $P10
-    ge rx727_pos, rx727_eos, rxscan730_done
-  rxscan730_scan:
-    set_addr $I10, rxscan730_loop
-    rx727_cur."!mark_push"(0, rx727_pos, $I10)
-  rxscan730_done:
-.annotate 'line', 325
-  # rx rxquantr731 ** 0..*
-    set_addr $I732, rxquantr731_done
-    rx727_cur."!mark_push"(0, rx727_pos, $I732)
-  rxquantr731_loop:
+.sub "!PREFIX__signature"  :subid("171_1280467477.44751") :method
+.annotate 'line', 4
+    new $P702, "ResizablePMCArray"
+    push $P702, ""
+    .return ($P702)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "parameter"  :subid("172_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+    .local string rx707_tgt
+    .local int rx707_pos
+    .local int rx707_off
+    .local int rx707_eos
+    .local int rx707_rep
+    .local pmc rx707_cur
+    (rx707_cur, rx707_pos, rx707_tgt, $I10) = self."!cursor_start"()
+    rx707_cur."!cursor_caparray"("typename", "default_value")
+    .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
+    rx707_cur."!cursor_debug"("START ", "parameter")
+    $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:
+.annotate 'line', 326
+  # rx rxquantr711 ** 0..*
+    set_addr $I10, rxquantr711_done
+    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+  rxquantr711_loop:
   # rx subrule "typename" subtype=capture negate=
-    rx727_cur."!cursor_pos"(rx727_pos)
-    $P10 = rx727_cur."typename"()
-    unless $P10, rx727_fail
-    rx727_cur."!mark_push"(0, -1, 0, $P10)
+    rx707_cur."!cursor_pos"(rx707_pos)
+    $P10 = rx707_cur."typename"()
+    unless $P10, rx707_fail
+    rx707_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("typename")
-    rx727_pos = $P10."pos"()
+    rx707_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx727_cur."!cursor_pos"(rx727_pos)
-    $P10 = rx727_cur."ws"()
-    unless $P10, rx727_fail
-    rx727_pos = $P10."pos"()
-    (rx727_rep) = rx727_cur."!mark_commit"($I732)
-    rx727_cur."!mark_push"(rx727_rep, rx727_pos, $I732)
-    goto rxquantr731_loop
-  rxquantr731_done:
-  alt733_0:
-.annotate 'line', 326
-    set_addr $I10, alt733_1
-    rx727_cur."!mark_push"(0, rx727_pos, $I10)
+    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:
 .annotate 'line', 327
+    set_addr $I10, alt712_1
+    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+.annotate 'line', 328
   # rx subcapture "quant"
-    set_addr $I10, rxcap_734_fail
-    rx727_cur."!mark_push"(0, rx727_pos, $I10)
+    set_addr $I10, rxcap_713_fail
+    rx707_cur."!mark_push"(0, rx707_pos, $I10)
   # rx literal  "*"
-    add $I11, rx727_pos, 1
-    gt $I11, rx727_eos, rx727_fail
-    sub $I11, rx727_pos, rx727_off
-    substr $S10, rx727_tgt, $I11, 1
-    ne $S10, "*", rx727_fail
-    add rx727_pos, 1
-    set_addr $I10, rxcap_734_fail
-    ($I12, $I11) = rx727_cur."!mark_peek"($I10)
-    rx727_cur."!cursor_pos"($I11)
-    ($P10) = rx727_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx727_pos, "")
-    rx727_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx707_pos, 1
+    gt $I11, rx707_eos, rx707_fail
+    sub $I11, rx707_pos, rx707_off
+    substr $S10, rx707_tgt, $I11, 1
+    ne $S10, "*", rx707_fail
+    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)
     $P10."!cursor_names"("quant")
-    goto rxcap_734_done
-  rxcap_734_fail:
-    goto rx727_fail
-  rxcap_734_done:
+    goto rxcap_713_done
+  rxcap_713_fail:
+    goto rx707_fail
+  rxcap_713_done:
   # rx subrule "param_var" subtype=capture negate=
-    rx727_cur."!cursor_pos"(rx727_pos)
-    $P10 = rx727_cur."param_var"()
-    unless $P10, rx727_fail
-    rx727_cur."!mark_push"(0, -1, 0, $P10)
+    rx707_cur."!cursor_pos"(rx707_pos)
+    $P10 = rx707_cur."param_var"()
+    unless $P10, rx707_fail
+    rx707_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("param_var")
-    rx727_pos = $P10."pos"()
-    goto alt733_end
-  alt733_1:
-  alt735_0:
-.annotate 'line', 328
-    set_addr $I10, alt735_1
-    rx727_cur."!mark_push"(0, rx727_pos, $I10)
+    rx707_pos = $P10."pos"()
+    goto alt712_end
+  alt712_1:
+  alt714_0:
+.annotate 'line', 329
+    set_addr $I10, alt714_1
+    rx707_cur."!mark_push"(0, rx707_pos, $I10)
   # rx subrule "param_var" subtype=capture negate=
-    rx727_cur."!cursor_pos"(rx727_pos)
-    $P10 = rx727_cur."param_var"()
-    unless $P10, rx727_fail
-    rx727_cur."!mark_push"(0, -1, 0, $P10)
+    rx707_cur."!cursor_pos"(rx707_pos)
+    $P10 = rx707_cur."param_var"()
+    unless $P10, rx707_fail
+    rx707_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("param_var")
-    rx727_pos = $P10."pos"()
-    goto alt735_end
-  alt735_1:
+    rx707_pos = $P10."pos"()
+    goto alt714_end
+  alt714_1:
   # rx subrule "named_param" subtype=capture negate=
-    rx727_cur."!cursor_pos"(rx727_pos)
-    $P10 = rx727_cur."named_param"()
-    unless $P10, rx727_fail
-    rx727_cur."!mark_push"(0, -1, 0, $P10)
+    rx707_cur."!cursor_pos"(rx707_pos)
+    $P10 = rx707_cur."named_param"()
+    unless $P10, rx707_fail
+    rx707_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("named_param")
-    rx727_pos = $P10."pos"()
-  alt735_end:
+    rx707_pos = $P10."pos"()
+  alt714_end:
   # rx subcapture "quant"
-    set_addr $I10, rxcap_737_fail
-    rx727_cur."!mark_push"(0, rx727_pos, $I10)
-  alt736_0:
-    set_addr $I10, alt736_1
-    rx727_cur."!mark_push"(0, rx727_pos, $I10)
+    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)
   # rx literal  "?"
-    add $I11, rx727_pos, 1
-    gt $I11, rx727_eos, rx727_fail
-    sub $I11, rx727_pos, rx727_off
-    substr $S10, rx727_tgt, $I11, 1
-    ne $S10, "?", rx727_fail
-    add rx727_pos, 1
-    goto alt736_end
-  alt736_1:
-    set_addr $I10, alt736_2
-    rx727_cur."!mark_push"(0, rx727_pos, $I10)
+    add $I11, rx707_pos, 1
+    gt $I11, rx707_eos, rx707_fail
+    sub $I11, rx707_pos, rx707_off
+    substr $S10, rx707_tgt, $I11, 1
+    ne $S10, "?", rx707_fail
+    add rx707_pos, 1
+    goto alt715_end
+  alt715_1:
+    set_addr $I10, alt715_2
+    rx707_cur."!mark_push"(0, rx707_pos, $I10)
   # rx literal  "!"
-    add $I11, rx727_pos, 1
-    gt $I11, rx727_eos, rx727_fail
-    sub $I11, rx727_pos, rx727_off
-    substr $S10, rx727_tgt, $I11, 1
-    ne $S10, "!", rx727_fail
-    add rx727_pos, 1
-    goto alt736_end
-  alt736_2:
-  alt736_end:
-    set_addr $I10, rxcap_737_fail
-    ($I12, $I11) = rx727_cur."!mark_peek"($I10)
-    rx727_cur."!cursor_pos"($I11)
-    ($P10) = rx727_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx727_pos, "")
-    rx727_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx707_pos, 1
+    gt $I11, rx707_eos, rx707_fail
+    sub $I11, rx707_pos, rx707_off
+    substr $S10, rx707_tgt, $I11, 1
+    ne $S10, "!", rx707_fail
+    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)
     $P10."!cursor_names"("quant")
-    goto rxcap_737_done
-  rxcap_737_fail:
-    goto rx727_fail
-  rxcap_737_done:
-  alt733_end:
-.annotate 'line', 330
-  # rx rxquantr738 ** 0..1
-    set_addr $I739, rxquantr738_done
-    rx727_cur."!mark_push"(0, rx727_pos, $I739)
-  rxquantr738_loop:
+    goto rxcap_716_done
+  rxcap_716_fail:
+    goto rx707_fail
+  rxcap_716_done:
+  alt712_end:
+.annotate 'line', 331
+  # rx rxquantr717 ** 0..1
+    set_addr $I10, rxquantr717_done
+    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+  rxquantr717_loop:
   # rx subrule "default_value" subtype=capture negate=
-    rx727_cur."!cursor_pos"(rx727_pos)
-    $P10 = rx727_cur."default_value"()
-    unless $P10, rx727_fail
-    rx727_cur."!mark_push"(0, -1, 0, $P10)
+    rx707_cur."!cursor_pos"(rx707_pos)
+    $P10 = rx707_cur."default_value"()
+    unless $P10, rx707_fail
+    goto rxsubrule718_pass
+  rxsubrule718_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)
     $P10."!cursor_names"("default_value")
-    rx727_pos = $P10."pos"()
-    (rx727_rep) = rx727_cur."!mark_commit"($I739)
-  rxquantr738_done:
-.annotate 'line', 324
+    rx707_pos = $P10."pos"()
+    set_addr $I10, rxquantr717_done
+    (rx707_rep) = rx707_cur."!mark_commit"($I10)
+  rxquantr717_done:
+.annotate 'line', 325
   # rx pass
-    rx727_cur."!cursor_pass"(rx727_pos, "parameter")
-    rx727_cur."!cursor_debug"("PASS  ", "parameter", " at pos=", rx727_pos)
-    .return (rx727_cur)
-  rx727_fail:
+    rx707_cur."!cursor_pass"(rx707_pos, "parameter")
+    rx707_cur."!cursor_debug"("PASS  ", "parameter", " at pos=", rx707_pos)
+    .return (rx707_cur)
+  rx707_restart:
 .annotate 'line', 4
-    (rx727_rep, rx727_pos, $I10, $P10) = rx727_cur."!mark_fail"(0)
-    lt rx727_pos, -1, rx727_done
-    eq rx727_pos, -1, rx727_fail
+    rx707_cur."!cursor_debug"("NEXT ", "parameter")
+  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
-  rx727_done:
-    rx727_cur."!cursor_fail"()
-    rx727_cur."!cursor_debug"("FAIL  ", "parameter")
-    .return (rx727_cur)
+  rx707_done:
+    rx707_cur."!cursor_fail"()
+    rx707_cur."!cursor_debug"("FAIL  ", "parameter")
+    .return (rx707_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter"  :subid("171_1277356913.9538") :method
+.sub "!PREFIX__parameter"  :subid("173_1280467477.44751") :method
 .annotate 'line', 4
-    new $P729, "ResizablePMCArray"
-    push $P729, ""
-    .return ($P729)
+    new $P709, "ResizablePMCArray"
+    push $P709, ""
+    .return ($P709)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "param_var"  :subid("172_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "param_var"  :subid("174_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx741_tgt
-    .local int rx741_pos
-    .local int rx741_off
-    .local int rx741_eos
-    .local int rx741_rep
-    .local pmc rx741_cur
-    (rx741_cur, rx741_pos, rx741_tgt) = self."!cursor_start"()
-    rx741_cur."!cursor_debug"("START ", "param_var")
-    rx741_cur."!cursor_caparray"("twigil")
-    .lex unicode:"$\x{a2}", rx741_cur
-    .local pmc match
-    .lex "$/", match
-    length rx741_eos, rx741_tgt
-    gt rx741_pos, rx741_eos, rx741_done
-    set rx741_off, 0
-    lt rx741_pos, 2, rx741_start
-    sub rx741_off, rx741_pos, 1
-    substr rx741_tgt, rx741_tgt, rx741_off
-  rx741_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan745_done
-    goto rxscan745_scan
-  rxscan745_loop:
-    ($P10) = rx741_cur."from"()
-    inc $P10
-    set rx741_pos, $P10
-    ge rx741_pos, rx741_eos, rxscan745_done
-  rxscan745_scan:
-    set_addr $I10, rxscan745_loop
-    rx741_cur."!mark_push"(0, rx741_pos, $I10)
-  rxscan745_done:
-.annotate 'line', 334
+    .local string rx720_tgt
+    .local int rx720_pos
+    .local int rx720_off
+    .local int rx720_eos
+    .local int rx720_rep
+    .local pmc rx720_cur
+    (rx720_cur, rx720_pos, rx720_tgt, $I10) = self."!cursor_start"()
+    rx720_cur."!cursor_caparray"("twigil")
+    .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
+    rx720_cur."!cursor_debug"("START ", "param_var")
+    $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:
+.annotate 'line', 335
   # rx subrule "sigil" subtype=capture negate=
-    rx741_cur."!cursor_pos"(rx741_pos)
-    $P10 = rx741_cur."sigil"()
-    unless $P10, rx741_fail
-    rx741_cur."!mark_push"(0, -1, 0, $P10)
+    rx720_cur."!cursor_pos"(rx720_pos)
+    $P10 = rx720_cur."sigil"()
+    unless $P10, rx720_fail
+    rx720_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    rx741_pos = $P10."pos"()
-  # rx rxquantr746 ** 0..1
-    set_addr $I747, rxquantr746_done
-    rx741_cur."!mark_push"(0, rx741_pos, $I747)
-  rxquantr746_loop:
+    rx720_pos = $P10."pos"()
+  # rx rxquantr725 ** 0..1
+    set_addr $I10, rxquantr725_done
+    rx720_cur."!mark_push"(0, rx720_pos, $I10)
+  rxquantr725_loop:
   # rx subrule "twigil" subtype=capture negate=
-    rx741_cur."!cursor_pos"(rx741_pos)
-    $P10 = rx741_cur."twigil"()
-    unless $P10, rx741_fail
-    rx741_cur."!mark_push"(0, -1, 0, $P10)
+    rx720_cur."!cursor_pos"(rx720_pos)
+    $P10 = rx720_cur."twigil"()
+    unless $P10, rx720_fail
+    goto rxsubrule726_pass
+  rxsubrule726_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)
     $P10."!cursor_names"("twigil")
-    rx741_pos = $P10."pos"()
-    (rx741_rep) = rx741_cur."!mark_commit"($I747)
-  rxquantr746_done:
-  alt748_0:
-.annotate 'line', 335
-    set_addr $I10, alt748_1
-    rx741_cur."!mark_push"(0, rx741_pos, $I10)
+    rx720_pos = $P10."pos"()
+    set_addr $I10, rxquantr725_done
+    (rx720_rep) = rx720_cur."!mark_commit"($I10)
+  rxquantr725_done:
+  alt727_0:
+.annotate 'line', 336
+    set_addr $I10, alt727_1
+    rx720_cur."!mark_push"(0, rx720_pos, $I10)
   # rx subrule "ident" subtype=capture negate=
-    rx741_cur."!cursor_pos"(rx741_pos)
-    $P10 = rx741_cur."ident"()
-    unless $P10, rx741_fail
-    rx741_cur."!mark_push"(0, -1, 0, $P10)
+    rx720_cur."!cursor_pos"(rx720_pos)
+    $P10 = rx720_cur."ident"()
+    unless $P10, rx720_fail
+    rx720_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    rx741_pos = $P10."pos"()
-    goto alt748_end
-  alt748_1:
+    rx720_pos = $P10."pos"()
+    goto alt727_end
+  alt727_1:
   # rx subcapture "name"
-    set_addr $I10, rxcap_749_fail
-    rx741_cur."!mark_push"(0, rx741_pos, $I10)
+    set_addr $I10, rxcap_728_fail
+    rx720_cur."!mark_push"(0, rx720_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx741_pos, rx741_eos, rx741_fail
-    sub $I10, rx741_pos, rx741_off
-    substr $S10, rx741_tgt, $I10, 1
+    ge rx720_pos, rx720_eos, rx720_fail
+    sub $I10, rx720_pos, rx720_off
+    substr $S10, rx720_tgt, $I10, 1
     index $I11, "/!", $S10
-    lt $I11, 0, rx741_fail
-    inc rx741_pos
-    set_addr $I10, rxcap_749_fail
-    ($I12, $I11) = rx741_cur."!mark_peek"($I10)
-    rx741_cur."!cursor_pos"($I11)
-    ($P10) = rx741_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx741_pos, "")
-    rx741_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("name")
-    goto rxcap_749_done
-  rxcap_749_fail:
-    goto rx741_fail
-  rxcap_749_done:
-  alt748_end:
-.annotate 'line', 333
+    goto rxcap_728_done
+  rxcap_728_fail:
+    goto rx720_fail
+  rxcap_728_done:
+  alt727_end:
+.annotate 'line', 334
   # rx pass
-    rx741_cur."!cursor_pass"(rx741_pos, "param_var")
-    rx741_cur."!cursor_debug"("PASS  ", "param_var", " at pos=", rx741_pos)
-    .return (rx741_cur)
-  rx741_fail:
+    rx720_cur."!cursor_pass"(rx720_pos, "param_var")
+    rx720_cur."!cursor_debug"("PASS  ", "param_var", " at pos=", rx720_pos)
+    .return (rx720_cur)
+  rx720_restart:
 .annotate 'line', 4
-    (rx741_rep, rx741_pos, $I10, $P10) = rx741_cur."!mark_fail"(0)
-    lt rx741_pos, -1, rx741_done
-    eq rx741_pos, -1, rx741_fail
+    rx720_cur."!cursor_debug"("NEXT ", "param_var")
+  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
-  rx741_done:
-    rx741_cur."!cursor_fail"()
-    rx741_cur."!cursor_debug"("FAIL  ", "param_var")
-    .return (rx741_cur)
+  rx720_done:
+    rx720_cur."!cursor_fail"()
+    rx720_cur."!cursor_debug"("FAIL  ", "param_var")
+    .return (rx720_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var"  :subid("173_1277356913.9538") :method
+.sub "!PREFIX__param_var"  :subid("175_1280467477.44751") :method
 .annotate 'line', 4
-    $P743 = self."!PREFIX__!subrule"("sigil", "")
-    new $P744, "ResizablePMCArray"
-    push $P744, $P743
-    .return ($P744)
+    $P722 = self."!PREFIX__!subrule"("sigil", "")
+    new $P723, "ResizablePMCArray"
+    push $P723, $P722
+    .return ($P723)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "named_param"  :subid("174_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "named_param"  :subid("176_1280467477.44751") :method :outer("11_1280467477.44751")
 .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
-    (rx751_cur, rx751_pos, rx751_tgt) = self."!cursor_start"()
-    rx751_cur."!cursor_debug"("START ", "named_param")
-    .lex unicode:"$\x{a2}", rx751_cur
+    .local string rx730_tgt
+    .local int rx730_pos
+    .local int rx730_off
+    .local int rx730_eos
+    .local int rx730_rep
+    .local pmc rx730_cur
+    (rx730_cur, rx730_pos, rx730_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx730_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:
+    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
+    rx730_cur."!cursor_debug"("START ", "named_param")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan755_done
-    goto rxscan755_scan
-  rxscan755_loop:
-    ($P10) = rx751_cur."from"()
+    ne $I10, -1, rxscan734_done
+    goto rxscan734_scan
+  rxscan734_loop:
+    ($P10) = rx730_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', 339
+    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:
+.annotate 'line', 340
   # rx literal  ":"
-    add $I11, rx751_pos, 1
-    gt $I11, rx751_eos, rx751_fail
-    sub $I11, rx751_pos, rx751_off
-    substr $S10, rx751_tgt, $I11, 1
-    ne $S10, ":", rx751_fail
-    add rx751_pos, 1
+    add $I11, rx730_pos, 1
+    gt $I11, rx730_eos, rx730_fail
+    sub $I11, rx730_pos, rx730_off
+    substr $S10, rx730_tgt, $I11, 1
+    ne $S10, ":", rx730_fail
+    add rx730_pos, 1
   # rx subrule "param_var" subtype=capture negate=
-    rx751_cur."!cursor_pos"(rx751_pos)
-    $P10 = rx751_cur."param_var"()
-    unless $P10, rx751_fail
-    rx751_cur."!mark_push"(0, -1, 0, $P10)
+    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")
-    rx751_pos = $P10."pos"()
-.annotate 'line', 338
+    rx730_pos = $P10."pos"()
+.annotate 'line', 339
   # rx pass
-    rx751_cur."!cursor_pass"(rx751_pos, "named_param")
-    rx751_cur."!cursor_debug"("PASS  ", "named_param", " at pos=", rx751_pos)
-    .return (rx751_cur)
-  rx751_fail:
+    rx730_cur."!cursor_pass"(rx730_pos, "named_param")
+    rx730_cur."!cursor_debug"("PASS  ", "named_param", " at pos=", rx730_pos)
+    .return (rx730_cur)
+  rx730_restart:
 .annotate 'line', 4
-    (rx751_rep, rx751_pos, $I10, $P10) = rx751_cur."!mark_fail"(0)
-    lt rx751_pos, -1, rx751_done
-    eq rx751_pos, -1, rx751_fail
+    rx730_cur."!cursor_debug"("NEXT ", "named_param")
+  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
-  rx751_done:
-    rx751_cur."!cursor_fail"()
-    rx751_cur."!cursor_debug"("FAIL  ", "named_param")
-    .return (rx751_cur)
+  rx730_done:
+    rx730_cur."!cursor_fail"()
+    rx730_cur."!cursor_debug"("FAIL  ", "named_param")
+    .return (rx730_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param"  :subid("175_1277356913.9538") :method
+.sub "!PREFIX__named_param"  :subid("177_1280467477.44751") :method
 .annotate 'line', 4
-    $P753 = self."!PREFIX__!subrule"("param_var", ":")
-    new $P754, "ResizablePMCArray"
-    push $P754, $P753
-    .return ($P754)
+    $P732 = self."!PREFIX__!subrule"("param_var", ":")
+    new $P733, "ResizablePMCArray"
+    push $P733, $P732
+    .return ($P733)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "default_value"  :subid("176_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "default_value"  :subid("178_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx757_tgt
-    .local int rx757_pos
-    .local int rx757_off
-    .local int rx757_eos
-    .local int rx757_rep
-    .local pmc rx757_cur
-    (rx757_cur, rx757_pos, rx757_tgt) = self."!cursor_start"()
-    rx757_cur."!cursor_debug"("START ", "default_value")
-    .lex unicode:"$\x{a2}", rx757_cur
+    .local string rx736_tgt
+    .local int rx736_pos
+    .local int rx736_off
+    .local int rx736_eos
+    .local int rx736_rep
+    .local pmc rx736_cur
+    (rx736_cur, rx736_pos, rx736_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx736_cur
     .local pmc match
     .lex "$/", match
-    length rx757_eos, rx757_tgt
-    gt rx757_pos, rx757_eos, rx757_done
-    set rx757_off, 0
-    lt rx757_pos, 2, rx757_start
-    sub rx757_off, rx757_pos, 1
-    substr rx757_tgt, rx757_tgt, rx757_off
-  rx757_start:
+    length rx736_eos, rx736_tgt
+    gt rx736_pos, rx736_eos, rx736_done
+    set rx736_off, 0
+    lt rx736_pos, 2, rx736_start
+    sub rx736_off, rx736_pos, 1
+    substr rx736_tgt, rx736_tgt, rx736_off
+  rx736_start:
+    eq $I10, 1, rx736_restart
+    rx736_cur."!cursor_debug"("START ", "default_value")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan761_done
-    goto rxscan761_scan
-  rxscan761_loop:
-    ($P10) = rx757_cur."from"()
+    ne $I10, -1, rxscan740_done
+    goto rxscan740_scan
+  rxscan740_loop:
+    ($P10) = rx736_cur."from"()
     inc $P10
-    set rx757_pos, $P10
-    ge rx757_pos, rx757_eos, rxscan761_done
-  rxscan761_scan:
-    set_addr $I10, rxscan761_loop
-    rx757_cur."!mark_push"(0, rx757_pos, $I10)
-  rxscan761_done:
-.annotate 'line', 342
+    set rx736_pos, $P10
+    ge rx736_pos, rx736_eos, rxscan740_done
+  rxscan740_scan:
+    set_addr $I10, rxscan740_loop
+    rx736_cur."!mark_push"(0, rx736_pos, $I10)
+  rxscan740_done:
+.annotate 'line', 343
   # rx subrule "ws" subtype=method negate=
-    rx757_cur."!cursor_pos"(rx757_pos)
-    $P10 = rx757_cur."ws"()
-    unless $P10, rx757_fail
-    rx757_pos = $P10."pos"()
+    rx736_cur."!cursor_pos"(rx736_pos)
+    $P10 = rx736_cur."ws"()
+    unless $P10, rx736_fail
+    rx736_pos = $P10."pos"()
   # rx literal  "="
-    add $I11, rx757_pos, 1
-    gt $I11, rx757_eos, rx757_fail
-    sub $I11, rx757_pos, rx757_off
-    substr $S10, rx757_tgt, $I11, 1
-    ne $S10, "=", rx757_fail
-    add rx757_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx757_cur."!cursor_pos"(rx757_pos)
-    $P10 = rx757_cur."ws"()
-    unless $P10, rx757_fail
-    rx757_pos = $P10."pos"()
+    add $I11, rx736_pos, 1
+    gt $I11, rx736_eos, rx736_fail
+    sub $I11, rx736_pos, rx736_off
+    substr $S10, rx736_tgt, $I11, 1
+    ne $S10, "=", rx736_fail
+    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=
-    rx757_cur."!cursor_pos"(rx757_pos)
-    $P10 = rx757_cur."EXPR"("i=")
-    unless $P10, rx757_fail
-    rx757_cur."!mark_push"(0, -1, 0, $P10)
+    rx736_cur."!cursor_pos"(rx736_pos)
+    $P10 = rx736_cur."EXPR"("i=")
+    unless $P10, rx736_fail
+    rx736_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx757_pos = $P10."pos"()
+    rx736_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx757_cur."!cursor_pos"(rx757_pos)
-    $P10 = rx757_cur."ws"()
-    unless $P10, rx757_fail
-    rx757_pos = $P10."pos"()
+    rx736_cur."!cursor_pos"(rx736_pos)
+    $P10 = rx736_cur."ws"()
+    unless $P10, rx736_fail
+    rx736_pos = $P10."pos"()
   # rx pass
-    rx757_cur."!cursor_pass"(rx757_pos, "default_value")
-    rx757_cur."!cursor_debug"("PASS  ", "default_value", " at pos=", rx757_pos)
-    .return (rx757_cur)
-  rx757_fail:
+    rx736_cur."!cursor_pass"(rx736_pos, "default_value")
+    rx736_cur."!cursor_debug"("PASS  ", "default_value", " at pos=", rx736_pos)
+    .return (rx736_cur)
+  rx736_restart:
 .annotate 'line', 4
-    (rx757_rep, rx757_pos, $I10, $P10) = rx757_cur."!mark_fail"(0)
-    lt rx757_pos, -1, rx757_done
-    eq rx757_pos, -1, rx757_fail
+    rx736_cur."!cursor_debug"("NEXT ", "default_value")
+  rx736_fail:
+    (rx736_rep, rx736_pos, $I10, $P10) = rx736_cur."!mark_fail"(0)
+    lt rx736_pos, -1, rx736_done
+    eq rx736_pos, -1, rx736_fail
     jump $I10
-  rx757_done:
-    rx757_cur."!cursor_fail"()
-    rx757_cur."!cursor_debug"("FAIL  ", "default_value")
-    .return (rx757_cur)
+  rx736_done:
+    rx736_cur."!cursor_fail"()
+    rx736_cur."!cursor_debug"("FAIL  ", "default_value")
+    .return (rx736_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value"  :subid("177_1277356913.9538") :method
+.sub "!PREFIX__default_value"  :subid("179_1280467477.44751") :method
 .annotate 'line', 4
-    $P759 = self."!PREFIX__!subrule"("ws", "")
-    new $P760, "ResizablePMCArray"
-    push $P760, $P759
-    .return ($P760)
+    $P738 = self."!PREFIX__!subrule"("ws", "")
+    new $P739, "ResizablePMCArray"
+    push $P739, $P738
+    .return ($P739)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "regex_declarator"  :subid("178_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "regex_declarator"  :subid("180_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx766_tgt
-    .local int rx766_pos
-    .local int rx766_off
-    .local int rx766_eos
-    .local int rx766_rep
-    .local pmc rx766_cur
-    (rx766_cur, rx766_pos, rx766_tgt) = self."!cursor_start"()
-    rx766_cur."!cursor_debug"("START ", "regex_declarator")
-    rx766_cur."!cursor_caparray"("signature")
-    .lex unicode:"$\x{a2}", rx766_cur
+    .local string rx745_tgt
+    .local int rx745_pos
+    .local int rx745_off
+    .local int rx745_eos
+    .local int rx745_rep
+    .local pmc rx745_cur
+    (rx745_cur, rx745_pos, rx745_tgt, $I10) = self."!cursor_start"()
+    rx745_cur."!cursor_caparray"("signature")
+    .lex unicode:"$\x{a2}", rx745_cur
     .local pmc match
     .lex "$/", match
-    length rx766_eos, rx766_tgt
-    gt rx766_pos, rx766_eos, rx766_done
-    set rx766_off, 0
-    lt rx766_pos, 2, rx766_start
-    sub rx766_off, rx766_pos, 1
-    substr rx766_tgt, rx766_tgt, rx766_off
-  rx766_start:
+    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
+    rx745_cur."!cursor_debug"("START ", "regex_declarator")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan770_done
-    goto rxscan770_scan
-  rxscan770_loop:
-    ($P10) = rx766_cur."from"()
+    ne $I10, -1, rxscan749_done
+    goto rxscan749_scan
+  rxscan749_loop:
+    ($P10) = rx745_cur."from"()
     inc $P10
-    set rx766_pos, $P10
-    ge rx766_pos, rx766_eos, rxscan770_done
-  rxscan770_scan:
-    set_addr $I10, rxscan770_loop
-    rx766_cur."!mark_push"(0, rx766_pos, $I10)
-  rxscan770_done:
-.annotate 'line', 344
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-  alt772_0:
+    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:
 .annotate 'line', 345
-    set_addr $I10, alt772_1
-    rx766_cur."!mark_push"(0, rx766_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"()
+  alt751_0:
 .annotate 'line', 346
+    set_addr $I10, alt751_1
+    rx745_cur."!mark_push"(0, rx745_pos, $I10)
+.annotate 'line', 347
   # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
   # rx subcapture "proto"
-    set_addr $I10, rxcap_774_fail
-    rx766_cur."!mark_push"(0, rx766_pos, $I10)
+    set_addr $I10, rxcap_753_fail
+    rx745_cur."!mark_push"(0, rx745_pos, $I10)
   # rx literal  "proto"
-    add $I11, rx766_pos, 5
-    gt $I11, rx766_eos, rx766_fail
-    sub $I11, rx766_pos, rx766_off
-    substr $S10, rx766_tgt, $I11, 5
-    ne $S10, "proto", rx766_fail
-    add rx766_pos, 5
-    set_addr $I10, rxcap_774_fail
-    ($I12, $I11) = rx766_cur."!mark_peek"($I10)
-    rx766_cur."!cursor_pos"($I11)
-    ($P10) = rx766_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx766_pos, "")
-    rx766_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("proto")
-    goto rxcap_774_done
-  rxcap_774_fail:
-    goto rx766_fail
-  rxcap_774_done:
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-  alt776_0:
-    set_addr $I10, alt776_1
-    rx766_cur."!mark_push"(0, rx766_pos, $I10)
+    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)
   # rx literal  "regex"
-    add $I11, rx766_pos, 5
-    gt $I11, rx766_eos, rx766_fail
-    sub $I11, rx766_pos, rx766_off
-    substr $S10, rx766_tgt, $I11, 5
-    ne $S10, "regex", rx766_fail
-    add rx766_pos, 5
-    goto alt776_end
-  alt776_1:
-    set_addr $I10, alt776_2
-    rx766_cur."!mark_push"(0, rx766_pos, $I10)
+    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)
   # rx literal  "token"
-    add $I11, rx766_pos, 5
-    gt $I11, rx766_eos, rx766_fail
-    sub $I11, rx766_pos, rx766_off
-    substr $S10, rx766_tgt, $I11, 5
-    ne $S10, "token", rx766_fail
-    add rx766_pos, 5
-    goto alt776_end
-  alt776_2:
+    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:
   # rx literal  "rule"
-    add $I11, rx766_pos, 4
-    gt $I11, rx766_eos, rx766_fail
-    sub $I11, rx766_pos, rx766_off
-    substr $S10, rx766_tgt, $I11, 4
-    ne $S10, "rule", rx766_fail
-    add rx766_pos, 4
-  alt776_end:
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-.annotate 'line', 347
+    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"()
+.annotate 'line', 348
   # rx subrule "deflongname" subtype=capture negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."deflongname"()
-    unless $P10, rx766_fail
-    rx766_cur."!mark_push"(0, -1, 0, $P10)
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."deflongname"()
+    unless $P10, rx745_fail
+    rx745_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx766_pos = $P10."pos"()
+    rx745_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-  alt779_0:
-.annotate 'line', 348
-    set_addr $I10, alt779_1
-    rx766_cur."!mark_push"(0, rx766_pos, $I10)
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
+  alt758_0:
 .annotate 'line', 349
+    set_addr $I10, alt758_1
+    rx745_cur."!mark_push"(0, rx745_pos, $I10)
+.annotate 'line', 350
   # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
   # rx literal  "{"
-    add $I11, rx766_pos, 1
-    gt $I11, rx766_eos, rx766_fail
-    sub $I11, rx766_pos, rx766_off
-    substr $S10, rx766_tgt, $I11, 1
-    ne $S10, "{", rx766_fail
-    add rx766_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
+    add $I11, rx745_pos, 1
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 1
+    ne $S10, "{", rx745_fail
+    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"()
   # rx literal  "<...>"
-    add $I11, rx766_pos, 5
-    gt $I11, rx766_eos, rx766_fail
-    sub $I11, rx766_pos, rx766_off
-    substr $S10, rx766_tgt, $I11, 5
-    ne $S10, "<...>", rx766_fail
-    add rx766_pos, 5
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
+    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"()
   # rx literal  "}"
-    add $I11, rx766_pos, 1
-    gt $I11, rx766_eos, rx766_fail
-    sub $I11, rx766_pos, rx766_off
-    substr $S10, rx766_tgt, $I11, 1
-    ne $S10, "}", rx766_fail
-    add rx766_pos, 1
+    add $I11, rx745_pos, 1
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 1
+    ne $S10, "}", rx745_fail
+    add rx745_pos, 1
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ENDSTMT"()
-    unless $P10, rx766_fail
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-    goto alt779_end
-  alt779_1:
-.annotate 'line', 350
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-  # rx subrule "panic" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."panic"("Proto regex body must be <...>")
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-  alt779_end:
+    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:
 .annotate 'line', 351
   # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-.annotate 'line', 346
-    goto alt772_end
-  alt772_1:
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_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:
 .annotate 'line', 352
   # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
+.annotate 'line', 347
+    goto alt751_end
+  alt751_1:
+.annotate 'line', 353
+  # 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 subcapture "sym"
-    set_addr $I10, rxcap_789_fail
-    rx766_cur."!mark_push"(0, rx766_pos, $I10)
-  alt788_0:
-    set_addr $I10, alt788_1
-    rx766_cur."!mark_push"(0, rx766_pos, $I10)
+    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)
   # rx literal  "regex"
-    add $I11, rx766_pos, 5
-    gt $I11, rx766_eos, rx766_fail
-    sub $I11, rx766_pos, rx766_off
-    substr $S10, rx766_tgt, $I11, 5
-    ne $S10, "regex", rx766_fail
-    add rx766_pos, 5
-    goto alt788_end
-  alt788_1:
-    set_addr $I10, alt788_2
-    rx766_cur."!mark_push"(0, rx766_pos, $I10)
+    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)
   # rx literal  "token"
-    add $I11, rx766_pos, 5
-    gt $I11, rx766_eos, rx766_fail
-    sub $I11, rx766_pos, rx766_off
-    substr $S10, rx766_tgt, $I11, 5
-    ne $S10, "token", rx766_fail
-    add rx766_pos, 5
-    goto alt788_end
-  alt788_2:
+    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:
   # rx literal  "rule"
-    add $I11, rx766_pos, 4
-    gt $I11, rx766_eos, rx766_fail
-    sub $I11, rx766_pos, rx766_off
-    substr $S10, rx766_tgt, $I11, 4
-    ne $S10, "rule", rx766_fail
-    add rx766_pos, 4
-  alt788_end:
-    set_addr $I10, rxcap_789_fail
-    ($I12, $I11) = rx766_cur."!mark_peek"($I10)
-    rx766_cur."!cursor_pos"($I11)
-    ($P10) = rx766_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx766_pos, "")
-    rx766_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_789_done
-  rxcap_789_fail:
-    goto rx766_fail
-  rxcap_789_done:
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-.annotate 'line', 353
+    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"()
+.annotate 'line', 354
   # rx subrule "deflongname" subtype=capture negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."deflongname"()
-    unless $P10, rx766_fail
-    rx766_cur."!mark_push"(0, -1, 0, $P10)
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."deflongname"()
+    unless $P10, rx745_fail
+    rx745_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx766_pos = $P10."pos"()
+    rx745_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-.annotate 'line', 354
-  # rx subrule "newpad" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."newpad"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
 .annotate 'line', 355
-  # rx rxquantr793 ** 0..1
-    set_addr $I798, rxquantr793_done
-    rx766_cur."!mark_push"(0, rx766_pos, $I798)
-  rxquantr793_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
+  # 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"()
+.annotate 'line', 356
+  # 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"()
   # rx literal  "("
-    add $I11, rx766_pos, 1
-    gt $I11, rx766_eos, rx766_fail
-    sub $I11, rx766_pos, rx766_off
-    substr $S10, rx766_tgt, $I11, 1
-    ne $S10, "(", rx766_fail
-    add rx766_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
+    add $I11, rx745_pos, 1
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 1
+    ne $S10, "(", rx745_fail
+    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"()
   # rx subrule "signature" subtype=capture negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."signature"()
-    unless $P10, rx766_fail
-    rx766_cur."!mark_push"(0, -1, 0, $P10)
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."signature"()
+    unless $P10, rx745_fail
+    rx745_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx766_pos = $P10."pos"()
+    rx745_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx766_pos, 1
-    gt $I11, rx766_eos, rx766_fail
-    sub $I11, rx766_pos, rx766_off
-    substr $S10, rx766_tgt, $I11, 1
-    ne $S10, ")", rx766_fail
-    add rx766_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-    (rx766_rep) = rx766_cur."!mark_commit"($I798)
-  rxquantr793_done:
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-.annotate 'line', 356
+    add $I11, rx745_pos, 1
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 1
+    ne $S10, ")", rx745_fail
+    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"()
+.annotate 'line', 357
   # rx reduce name="regex_declarator" key="open"
-    rx766_cur."!cursor_pos"(rx766_pos)
-    rx766_cur."!reduce"("regex_declarator", "open")
+    rx745_cur."!cursor_pos"(rx745_pos)
+    rx745_cur."!reduce"("regex_declarator", "open")
   # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-.annotate 'line', 357
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
+.annotate 'line', 358
   # rx literal  "{"
-    add $I11, rx766_pos, 1
-    gt $I11, rx766_eos, rx766_fail
-    sub $I11, rx766_pos, rx766_off
-    substr $S10, rx766_tgt, $I11, 1
-    ne $S10, "{", rx766_fail
-    add rx766_pos, 1
+    add $I11, rx745_pos, 1
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 1
+    ne $S10, "{", rx745_fail
+    add rx745_pos, 1
   # rx subrule "LANG" subtype=capture negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."LANG"("Regex", "nibbler")
-    unless $P10, rx766_fail
-    rx766_cur."!mark_push"(0, -1, 0, $P10)
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."LANG"("Regex", "nibbler")
+    unless $P10, rx745_fail
+    rx745_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("p6regex")
-    rx766_pos = $P10."pos"()
+    rx745_pos = $P10."pos"()
   # rx literal  "}"
-    add $I11, rx766_pos, 1
-    gt $I11, rx766_eos, rx766_fail
-    sub $I11, rx766_pos, rx766_off
-    substr $S10, rx766_tgt, $I11, 1
-    ne $S10, "}", rx766_fail
-    add rx766_pos, 1
+    add $I11, rx745_pos, 1
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 1
+    ne $S10, "}", rx745_fail
+    add rx745_pos, 1
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ENDSTMT"()
-    unless $P10, rx766_fail
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-  alt772_end:
-.annotate 'line', 358
+    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:
+.annotate 'line', 359
   # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-.annotate 'line', 344
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
+.annotate 'line', 345
   # rx pass
-    rx766_cur."!cursor_pass"(rx766_pos, "regex_declarator")
-    rx766_cur."!cursor_debug"("PASS  ", "regex_declarator", " at pos=", rx766_pos)
-    .return (rx766_cur)
-  rx766_fail:
+    rx745_cur."!cursor_pass"(rx745_pos, "regex_declarator")
+    rx745_cur."!cursor_debug"("PASS  ", "regex_declarator", " at pos=", rx745_pos)
+    .return (rx745_cur)
+  rx745_restart:
 .annotate 'line', 4
-    (rx766_rep, rx766_pos, $I10, $P10) = rx766_cur."!mark_fail"(0)
-    lt rx766_pos, -1, rx766_done
-    eq rx766_pos, -1, rx766_fail
+    rx745_cur."!cursor_debug"("NEXT ", "regex_declarator")
+  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
-  rx766_done:
-    rx766_cur."!cursor_fail"()
-    rx766_cur."!cursor_debug"("FAIL  ", "regex_declarator")
-    .return (rx766_cur)
+  rx745_done:
+    rx745_cur."!cursor_fail"()
+    rx745_cur."!cursor_debug"("FAIL  ", "regex_declarator")
+    .return (rx745_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator"  :subid("179_1277356913.9538") :method
+.sub "!PREFIX__regex_declarator"  :subid("181_1280467477.44751") :method
 .annotate 'line', 4
-    $P768 = self."!PREFIX__!subrule"("ws", "")
-    new $P769, "ResizablePMCArray"
-    push $P769, $P768
-    .return ($P769)
+    $P747 = self."!PREFIX__!subrule"("ws", "")
+    new $P748, "ResizablePMCArray"
+    push $P748, $P747
+    .return ($P748)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "dotty"  :subid("180_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "dotty"  :subid("182_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx804_tgt
-    .local int rx804_pos
-    .local int rx804_off
-    .local int rx804_eos
-    .local int rx804_rep
-    .local pmc rx804_cur
-    (rx804_cur, rx804_pos, rx804_tgt) = self."!cursor_start"()
-    rx804_cur."!cursor_debug"("START ", "dotty")
-    rx804_cur."!cursor_caparray"("args")
-    .lex unicode:"$\x{a2}", rx804_cur
-    .local pmc match
-    .lex "$/", match
-    length rx804_eos, rx804_tgt
-    gt rx804_pos, rx804_eos, rx804_done
-    set rx804_off, 0
-    lt rx804_pos, 2, rx804_start
-    sub rx804_off, rx804_pos, 1
-    substr rx804_tgt, rx804_tgt, rx804_off
-  rx804_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan808_done
-    goto rxscan808_scan
-  rxscan808_loop:
-    ($P10) = rx804_cur."from"()
-    inc $P10
-    set rx804_pos, $P10
-    ge rx804_pos, rx804_eos, rxscan808_done
-  rxscan808_scan:
-    set_addr $I10, rxscan808_loop
-    rx804_cur."!mark_push"(0, rx804_pos, $I10)
-  rxscan808_done:
-.annotate 'line', 362
-  # rx literal  "."
-    add $I11, rx804_pos, 1
-    gt $I11, rx804_eos, rx804_fail
-    sub $I11, rx804_pos, rx804_off
-    substr $S10, rx804_tgt, $I11, 1
-    ne $S10, ".", rx804_fail
-    add rx804_pos, 1
-  alt809_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
+    (rx782_cur, rx782_pos, rx782_tgt, $I10) = self."!cursor_start"()
+    rx782_cur."!cursor_caparray"("args")
+    .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
+    rx782_cur."!cursor_debug"("START ", "dotty")
+    $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:
 .annotate 'line', 363
-    set_addr $I10, alt809_1
-    rx804_cur."!mark_push"(0, rx804_pos, $I10)
+  # rx literal  "."
+    add $I11, rx782_pos, 1
+    gt $I11, rx782_eos, rx782_fail
+    sub $I11, rx782_pos, rx782_off
+    substr $S10, rx782_tgt, $I11, 1
+    ne $S10, ".", rx782_fail
+    add rx782_pos, 1
+  alt787_0:
+.annotate 'line', 364
+    set_addr $I10, alt787_1
+    rx782_cur."!mark_push"(0, rx782_pos, $I10)
   # rx subrule "deflongname" subtype=capture negate=
-    rx804_cur."!cursor_pos"(rx804_pos)
-    $P10 = rx804_cur."deflongname"()
-    unless $P10, rx804_fail
-    rx804_cur."!mark_push"(0, -1, 0, $P10)
+    rx782_cur."!cursor_pos"(rx782_pos)
+    $P10 = rx782_cur."deflongname"()
+    unless $P10, rx782_fail
+    rx782_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("longname=deflongname")
-    rx804_pos = $P10."pos"()
-    goto alt809_end
-  alt809_1:
-.annotate 'line', 364
+    rx782_pos = $P10."pos"()
+    goto alt787_end
+  alt787_1:
+.annotate 'line', 365
   # rx enumcharlist negate=0 zerowidth
-    ge rx804_pos, rx804_eos, rx804_fail
-    sub $I10, rx804_pos, rx804_off
-    substr $S10, rx804_tgt, $I10, 1
+    ge rx782_pos, rx782_eos, rx782_fail
+    sub $I10, rx782_pos, rx782_off
+    substr $S10, rx782_tgt, $I10, 1
     index $I11, "'\"", $S10
-    lt $I11, 0, rx804_fail
+    lt $I11, 0, rx782_fail
   # rx subrule "quote" subtype=capture negate=
-    rx804_cur."!cursor_pos"(rx804_pos)
-    $P10 = rx804_cur."quote"()
-    unless $P10, rx804_fail
-    rx804_cur."!mark_push"(0, -1, 0, $P10)
+    rx782_cur."!cursor_pos"(rx782_pos)
+    $P10 = rx782_cur."quote"()
+    unless $P10, rx782_fail
+    rx782_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote")
-    rx804_pos = $P10."pos"()
-  alt810_0:
-.annotate 'line', 365
-    set_addr $I10, alt810_1
-    rx804_cur."!mark_push"(0, rx804_pos, $I10)
+    rx782_pos = $P10."pos"()
+  alt788_0:
+.annotate 'line', 366
+    set_addr $I10, alt788_1
+    rx782_cur."!mark_push"(0, rx782_pos, $I10)
   # rx enumcharlist negate=0 zerowidth
-    ge rx804_pos, rx804_eos, rx804_fail
-    sub $I10, rx804_pos, rx804_off
-    substr $S10, rx804_tgt, $I10, 1
+    ge rx782_pos, rx782_eos, rx782_fail
+    sub $I10, rx782_pos, rx782_off
+    substr $S10, rx782_tgt, $I10, 1
     index $I11, "(", $S10
-    lt $I11, 0, rx804_fail
-    goto alt810_end
-  alt810_1:
+    lt $I11, 0, rx782_fail
+    goto alt788_end
+  alt788_1:
   # rx subrule "panic" subtype=method negate=
-    rx804_cur."!cursor_pos"(rx804_pos)
-    $P10 = rx804_cur."panic"("Quoted method name requires parenthesized arguments")
-    unless $P10, rx804_fail
-    rx804_pos = $P10."pos"()
-  alt810_end:
-  alt809_end:
-.annotate 'line', 371
-  # rx rxquantr811 ** 0..1
-    set_addr $I813, rxquantr811_done
-    rx804_cur."!mark_push"(0, rx804_pos, $I813)
-  rxquantr811_loop:
-  alt812_0:
-.annotate 'line', 368
-    set_addr $I10, alt812_1
-    rx804_cur."!mark_push"(0, rx804_pos, $I10)
+    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:
+.annotate 'line', 372
+  # rx rxquantr789 ** 0..1
+    set_addr $I10, rxquantr789_done
+    rx782_cur."!mark_push"(0, rx782_pos, $I10)
+  rxquantr789_loop:
+  alt790_0:
 .annotate 'line', 369
+    set_addr $I10, alt790_1
+    rx782_cur."!mark_push"(0, rx782_pos, $I10)
+.annotate 'line', 370
   # rx enumcharlist negate=0 zerowidth
-    ge rx804_pos, rx804_eos, rx804_fail
-    sub $I10, rx804_pos, rx804_off
-    substr $S10, rx804_tgt, $I10, 1
+    ge rx782_pos, rx782_eos, rx782_fail
+    sub $I10, rx782_pos, rx782_off
+    substr $S10, rx782_tgt, $I10, 1
     index $I11, "(", $S10
-    lt $I11, 0, rx804_fail
+    lt $I11, 0, rx782_fail
   # rx subrule "args" subtype=capture negate=
-    rx804_cur."!cursor_pos"(rx804_pos)
-    $P10 = rx804_cur."args"()
-    unless $P10, rx804_fail
-    rx804_cur."!mark_push"(0, -1, 0, $P10)
+    rx782_cur."!cursor_pos"(rx782_pos)
+    $P10 = rx782_cur."args"()
+    unless $P10, rx782_fail
+    rx782_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx804_pos = $P10."pos"()
-    goto alt812_end
-  alt812_1:
-.annotate 'line', 370
+    rx782_pos = $P10."pos"()
+    goto alt790_end
+  alt790_1:
+.annotate 'line', 371
   # rx literal  ":"
-    add $I11, rx804_pos, 1
-    gt $I11, rx804_eos, rx804_fail
-    sub $I11, rx804_pos, rx804_off
-    substr $S10, rx804_tgt, $I11, 1
-    ne $S10, ":", rx804_fail
-    add rx804_pos, 1
+    add $I11, rx782_pos, 1
+    gt $I11, rx782_eos, rx782_fail
+    sub $I11, rx782_pos, rx782_off
+    substr $S10, rx782_tgt, $I11, 1
+    ne $S10, ":", rx782_fail
+    add rx782_pos, 1
   # rx charclass s
-    ge rx804_pos, rx804_eos, rx804_fail
-    sub $I10, rx804_pos, rx804_off
-    is_cclass $I11, 32, rx804_tgt, $I10
-    unless $I11, rx804_fail
-    inc rx804_pos
+    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
   # rx subrule "arglist" subtype=capture negate=
-    rx804_cur."!cursor_pos"(rx804_pos)
-    $P10 = rx804_cur."arglist"()
-    unless $P10, rx804_fail
-    rx804_cur."!mark_push"(0, -1, 0, $P10)
+    rx782_cur."!cursor_pos"(rx782_pos)
+    $P10 = rx782_cur."arglist"()
+    unless $P10, rx782_fail
+    rx782_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx804_pos = $P10."pos"()
-  alt812_end:
-.annotate 'line', 371
-    (rx804_rep) = rx804_cur."!mark_commit"($I813)
-  rxquantr811_done:
-.annotate 'line', 361
+    rx782_pos = $P10."pos"()
+  alt790_end:
+.annotate 'line', 372
+    set_addr $I10, rxquantr789_done
+    (rx782_rep) = rx782_cur."!mark_commit"($I10)
+  rxquantr789_done:
+.annotate 'line', 362
   # rx pass
-    rx804_cur."!cursor_pass"(rx804_pos, "dotty")
-    rx804_cur."!cursor_debug"("PASS  ", "dotty", " at pos=", rx804_pos)
-    .return (rx804_cur)
-  rx804_fail:
+    rx782_cur."!cursor_pass"(rx782_pos, "dotty")
+    rx782_cur."!cursor_debug"("PASS  ", "dotty", " at pos=", rx782_pos)
+    .return (rx782_cur)
+  rx782_restart:
 .annotate 'line', 4
-    (rx804_rep, rx804_pos, $I10, $P10) = rx804_cur."!mark_fail"(0)
-    lt rx804_pos, -1, rx804_done
-    eq rx804_pos, -1, rx804_fail
+    rx782_cur."!cursor_debug"("NEXT ", "dotty")
+  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
-  rx804_done:
-    rx804_cur."!cursor_fail"()
-    rx804_cur."!cursor_debug"("FAIL  ", "dotty")
-    .return (rx804_cur)
+  rx782_done:
+    rx782_cur."!cursor_fail"()
+    rx782_cur."!cursor_debug"("FAIL  ", "dotty")
+    .return (rx782_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty"  :subid("181_1277356913.9538") :method
+.sub "!PREFIX__dotty"  :subid("183_1280467477.44751") :method
 .annotate 'line', 4
-    $P806 = self."!PREFIX__!subrule"("deflongname", ".")
-    new $P807, "ResizablePMCArray"
-    push $P807, "'"
-    push $P807, "\""
-    push $P807, $P806
-    .return ($P807)
+    $P784 = self."!PREFIX__!subrule"("deflongname", ".")
+    new $P785, "ResizablePMCArray"
+    push $P785, "'"
+    push $P785, "\""
+    push $P785, $P784
+    .return ($P785)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term"  :subid("182_1277356913.9538") :method
-.annotate 'line', 375
-    $P815 = self."!protoregex"("term")
-    .return ($P815)
+.sub "term"  :subid("184_1280467477.44751") :method
+.annotate 'line', 376
+    $P792 = self."!protoregex"("term")
+    .return ($P792)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term"  :subid("183_1277356913.9538") :method
-.annotate 'line', 375
-    $P817 = self."!PREFIX__!protoregex"("term")
-    .return ($P817)
+.sub "!PREFIX__term"  :subid("185_1280467477.44751") :method
+.annotate 'line', 376
+    $P794 = self."!PREFIX__!protoregex"("term")
+    .return ($P794)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<self>"  :subid("184_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "term:sym<self>"  :subid("186_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx819_tgt
-    .local int rx819_pos
-    .local int rx819_off
-    .local int rx819_eos
-    .local int rx819_rep
-    .local pmc rx819_cur
-    (rx819_cur, rx819_pos, rx819_tgt) = self."!cursor_start"()
-    rx819_cur."!cursor_debug"("START ", "term:sym<self>")
-    .lex unicode:"$\x{a2}", rx819_cur
-    .local pmc match
-    .lex "$/", match
-    length rx819_eos, rx819_tgt
-    gt rx819_pos, rx819_eos, rx819_done
-    set rx819_off, 0
-    lt rx819_pos, 2, rx819_start
-    sub rx819_off, rx819_pos, 1
-    substr rx819_tgt, rx819_tgt, rx819_off
-  rx819_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan822_done
-    goto rxscan822_scan
-  rxscan822_loop:
-    ($P10) = rx819_cur."from"()
-    inc $P10
-    set rx819_pos, $P10
-    ge rx819_pos, rx819_eos, rxscan822_done
-  rxscan822_scan:
-    set_addr $I10, rxscan822_loop
-    rx819_cur."!mark_push"(0, rx819_pos, $I10)
-  rxscan822_done:
-.annotate 'line', 377
+    .local string rx796_tgt
+    .local int rx796_pos
+    .local int rx796_off
+    .local int rx796_eos
+    .local int rx796_rep
+    .local pmc rx796_cur
+    (rx796_cur, rx796_pos, rx796_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx796_cur."!cursor_debug"("START ", "term:sym<self>")
+    $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:
+.annotate 'line', 378
   # rx subcapture "sym"
-    set_addr $I10, rxcap_823_fail
-    rx819_cur."!mark_push"(0, rx819_pos, $I10)
+    set_addr $I10, rxcap_800_fail
+    rx796_cur."!mark_push"(0, rx796_pos, $I10)
   # rx literal  "self"
-    add $I11, rx819_pos, 4
-    gt $I11, rx819_eos, rx819_fail
-    sub $I11, rx819_pos, rx819_off
-    substr $S10, rx819_tgt, $I11, 4
-    ne $S10, "self", rx819_fail
-    add rx819_pos, 4
-    set_addr $I10, rxcap_823_fail
-    ($I12, $I11) = rx819_cur."!mark_peek"($I10)
-    rx819_cur."!cursor_pos"($I11)
-    ($P10) = rx819_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx819_pos, "")
-    rx819_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_823_done
-  rxcap_823_fail:
-    goto rx819_fail
-  rxcap_823_done:
+    goto rxcap_800_done
+  rxcap_800_fail:
+    goto rx796_fail
+  rxcap_800_done:
   # rxanchor rwb
-    le rx819_pos, 0, rx819_fail
-    sub $I10, rx819_pos, rx819_off
-    is_cclass $I11, 8192, rx819_tgt, $I10
-    if $I11, rx819_fail
+    le rx796_pos, 0, rx796_fail
+    sub $I10, rx796_pos, rx796_off
+    is_cclass $I11, 8192, rx796_tgt, $I10
+    if $I11, rx796_fail
     dec $I10
-    is_cclass $I11, 8192, rx819_tgt, $I10
-    unless $I11, rx819_fail
+    is_cclass $I11, 8192, rx796_tgt, $I10
+    unless $I11, rx796_fail
   # rx pass
-    rx819_cur."!cursor_pass"(rx819_pos, "term:sym<self>")
-    rx819_cur."!cursor_debug"("PASS  ", "term:sym<self>", " at pos=", rx819_pos)
-    .return (rx819_cur)
-  rx819_fail:
+    rx796_cur."!cursor_pass"(rx796_pos, "term:sym<self>")
+    rx796_cur."!cursor_debug"("PASS  ", "term:sym<self>", " at pos=", rx796_pos)
+    .return (rx796_cur)
+  rx796_restart:
 .annotate 'line', 4
-    (rx819_rep, rx819_pos, $I10, $P10) = rx819_cur."!mark_fail"(0)
-    lt rx819_pos, -1, rx819_done
-    eq rx819_pos, -1, rx819_fail
+    rx796_cur."!cursor_debug"("NEXT ", "term:sym<self>")
+  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
-  rx819_done:
-    rx819_cur."!cursor_fail"()
-    rx819_cur."!cursor_debug"("FAIL  ", "term:sym<self>")
-    .return (rx819_cur)
+  rx796_done:
+    rx796_cur."!cursor_fail"()
+    rx796_cur."!cursor_debug"("FAIL  ", "term:sym<self>")
+    .return (rx796_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>"  :subid("185_1277356913.9538") :method
+.sub "!PREFIX__term:sym<self>"  :subid("187_1280467477.44751") :method
 .annotate 'line', 4
-    new $P821, "ResizablePMCArray"
-    push $P821, "self"
-    .return ($P821)
+    new $P798, "ResizablePMCArray"
+    push $P798, "self"
+    .return ($P798)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>"  :subid("186_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "term:sym<identifier>"  :subid("188_1280467477.44751") :method :outer("11_1280467477.44751")
 .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
-    (rx825_cur, rx825_pos, rx825_tgt) = self."!cursor_start"()
-    rx825_cur."!cursor_debug"("START ", "term:sym<identifier>")
-    .lex unicode:"$\x{a2}", rx825_cur
+    .local string rx802_tgt
+    .local int rx802_pos
+    .local int rx802_off
+    .local int rx802_eos
+    .local int rx802_rep
+    .local pmc rx802_cur
+    (rx802_cur, rx802_pos, rx802_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx802_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:
+    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
+    rx802_cur."!cursor_debug"("START ", "term:sym<identifier>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan829_done
-    goto rxscan829_scan
-  rxscan829_loop:
-    ($P10) = rx825_cur."from"()
+    ne $I10, -1, rxscan806_done
+    goto rxscan806_scan
+  rxscan806_loop:
+    ($P10) = rx802_cur."from"()
     inc $P10
-    set rx825_pos, $P10
-    ge rx825_pos, rx825_eos, rxscan829_done
-  rxscan829_scan:
-    set_addr $I10, rxscan829_loop
-    rx825_cur."!mark_push"(0, rx825_pos, $I10)
-  rxscan829_done:
-.annotate 'line', 380
+    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:
+.annotate 'line', 381
   # rx subrule "deflongname" subtype=capture negate=
-    rx825_cur."!cursor_pos"(rx825_pos)
-    $P10 = rx825_cur."deflongname"()
-    unless $P10, rx825_fail
-    rx825_cur."!mark_push"(0, -1, 0, $P10)
+    rx802_cur."!cursor_pos"(rx802_pos)
+    $P10 = rx802_cur."deflongname"()
+    unless $P10, rx802_fail
+    rx802_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx825_pos = $P10."pos"()
+    rx802_pos = $P10."pos"()
   # rx enumcharlist negate=0 zerowidth
-    ge rx825_pos, rx825_eos, rx825_fail
-    sub $I10, rx825_pos, rx825_off
-    substr $S10, rx825_tgt, $I10, 1
+    ge rx802_pos, rx802_eos, rx802_fail
+    sub $I10, rx802_pos, rx802_off
+    substr $S10, rx802_tgt, $I10, 1
     index $I11, "(", $S10
-    lt $I11, 0, rx825_fail
+    lt $I11, 0, rx802_fail
   # rx subrule "args" subtype=capture negate=
-    rx825_cur."!cursor_pos"(rx825_pos)
-    $P10 = rx825_cur."args"()
-    unless $P10, rx825_fail
-    rx825_cur."!mark_push"(0, -1, 0, $P10)
+    rx802_cur."!cursor_pos"(rx802_pos)
+    $P10 = rx802_cur."args"()
+    unless $P10, rx802_fail
+    rx802_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx825_pos = $P10."pos"()
-.annotate 'line', 379
+    rx802_pos = $P10."pos"()
+.annotate 'line', 380
   # rx pass
-    rx825_cur."!cursor_pass"(rx825_pos, "term:sym<identifier>")
-    rx825_cur."!cursor_debug"("PASS  ", "term:sym<identifier>", " at pos=", rx825_pos)
-    .return (rx825_cur)
-  rx825_fail:
+    rx802_cur."!cursor_pass"(rx802_pos, "term:sym<identifier>")
+    rx802_cur."!cursor_debug"("PASS  ", "term:sym<identifier>", " at pos=", rx802_pos)
+    .return (rx802_cur)
+  rx802_restart:
 .annotate 'line', 4
-    (rx825_rep, rx825_pos, $I10, $P10) = rx825_cur."!mark_fail"(0)
-    lt rx825_pos, -1, rx825_done
-    eq rx825_pos, -1, rx825_fail
+    rx802_cur."!cursor_debug"("NEXT ", "term:sym<identifier>")
+  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
-  rx825_done:
-    rx825_cur."!cursor_fail"()
-    rx825_cur."!cursor_debug"("FAIL  ", "term:sym<identifier>")
-    .return (rx825_cur)
+  rx802_done:
+    rx802_cur."!cursor_fail"()
+    rx802_cur."!cursor_debug"("FAIL  ", "term:sym<identifier>")
+    .return (rx802_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>"  :subid("187_1277356913.9538") :method
+.sub "!PREFIX__term:sym<identifier>"  :subid("189_1280467477.44751") :method
 .annotate 'line', 4
-    $P827 = self."!PREFIX__!subrule"("deflongname", "")
-    new $P828, "ResizablePMCArray"
-    push $P828, $P827
-    .return ($P828)
+    $P804 = self."!PREFIX__!subrule"("deflongname", "")
+    new $P805, "ResizablePMCArray"
+    push $P805, $P804
+    .return ($P805)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<name>"  :subid("188_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "term:sym<name>"  :subid("190_1280467477.44751") :method :outer("11_1280467477.44751")
 .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
-    (rx831_cur, rx831_pos, rx831_tgt) = self."!cursor_start"()
-    rx831_cur."!cursor_debug"("START ", "term:sym<name>")
-    rx831_cur."!cursor_caparray"("args")
-    .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:
-    $I10 = self.'from'()
-    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', 384
+    .local string rx808_tgt
+    .local int rx808_pos
+    .local int rx808_off
+    .local int rx808_eos
+    .local int rx808_rep
+    .local pmc rx808_cur
+    (rx808_cur, rx808_pos, rx808_tgt, $I10) = self."!cursor_start"()
+    rx808_cur."!cursor_caparray"("args")
+    .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
+    rx808_cur."!cursor_debug"("START ", "term:sym<name>")
+    $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:
+.annotate 'line', 385
   # rx subrule "name" subtype=capture negate=
-    rx831_cur."!cursor_pos"(rx831_pos)
-    $P10 = rx831_cur."name"()
-    unless $P10, rx831_fail
-    rx831_cur."!mark_push"(0, -1, 0, $P10)
+    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")
-    rx831_pos = $P10."pos"()
-  # rx rxquantr836 ** 0..1
-    set_addr $I837, rxquantr836_done
-    rx831_cur."!mark_push"(0, rx831_pos, $I837)
-  rxquantr836_loop:
+    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=
-    rx831_cur."!cursor_pos"(rx831_pos)
-    $P10 = rx831_cur."args"()
-    unless $P10, rx831_fail
-    rx831_cur."!mark_push"(0, -1, 0, $P10)
+    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")
-    rx831_pos = $P10."pos"()
-    (rx831_rep) = rx831_cur."!mark_commit"($I837)
-  rxquantr836_done:
-.annotate 'line', 383
+    rx808_pos = $P10."pos"()
+    set_addr $I10, rxquantr813_done
+    (rx808_rep) = rx808_cur."!mark_commit"($I10)
+  rxquantr813_done:
+.annotate 'line', 384
   # rx pass
-    rx831_cur."!cursor_pass"(rx831_pos, "term:sym<name>")
-    rx831_cur."!cursor_debug"("PASS  ", "term:sym<name>", " at pos=", rx831_pos)
-    .return (rx831_cur)
-  rx831_fail:
+    rx808_cur."!cursor_pass"(rx808_pos, "term:sym<name>")
+    rx808_cur."!cursor_debug"("PASS  ", "term:sym<name>", " at pos=", rx808_pos)
+    .return (rx808_cur)
+  rx808_restart:
 .annotate 'line', 4
-    (rx831_rep, rx831_pos, $I10, $P10) = rx831_cur."!mark_fail"(0)
-    lt rx831_pos, -1, rx831_done
-    eq rx831_pos, -1, rx831_fail
+    rx808_cur."!cursor_debug"("NEXT ", "term:sym<name>")
+  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
-  rx831_done:
-    rx831_cur."!cursor_fail"()
-    rx831_cur."!cursor_debug"("FAIL  ", "term:sym<name>")
-    .return (rx831_cur)
+  rx808_done:
+    rx808_cur."!cursor_fail"()
+    rx808_cur."!cursor_debug"("FAIL  ", "term:sym<name>")
+    .return (rx808_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>"  :subid("189_1277356913.9538") :method
+.sub "!PREFIX__term:sym<name>"  :subid("191_1280467477.44751") :method
 .annotate 'line', 4
-    $P833 = self."!PREFIX__!subrule"("name", "")
-    new $P834, "ResizablePMCArray"
-    push $P834, $P833
-    .return ($P834)
+    $P810 = self."!PREFIX__!subrule"("name", "")
+    new $P811, "ResizablePMCArray"
+    push $P811, $P810
+    .return ($P811)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<pir::op>"  :subid("190_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "term:sym<pir::op>"  :subid("192_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx839_tgt
-    .local int rx839_pos
-    .local int rx839_off
-    .local int rx839_eos
-    .local int rx839_rep
-    .local pmc rx839_cur
-    (rx839_cur, rx839_pos, rx839_tgt) = self."!cursor_start"()
-    rx839_cur."!cursor_debug"("START ", "term:sym<pir::op>")
-    rx839_cur."!cursor_caparray"("args")
-    .lex unicode:"$\x{a2}", rx839_cur
+    .local string rx816_tgt
+    .local int rx816_pos
+    .local int rx816_off
+    .local int rx816_eos
+    .local int rx816_rep
+    .local pmc rx816_cur
+    (rx816_cur, rx816_pos, rx816_tgt, $I10) = self."!cursor_start"()
+    rx816_cur."!cursor_caparray"("args")
+    .lex unicode:"$\x{a2}", rx816_cur
     .local pmc match
     .lex "$/", match
-    length rx839_eos, rx839_tgt
-    gt rx839_pos, rx839_eos, rx839_done
-    set rx839_off, 0
-    lt rx839_pos, 2, rx839_start
-    sub rx839_off, rx839_pos, 1
-    substr rx839_tgt, rx839_tgt, rx839_off
-  rx839_start:
+    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
+    rx816_cur."!cursor_debug"("START ", "term:sym<pir::op>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan842_done
-    goto rxscan842_scan
-  rxscan842_loop:
-    ($P10) = rx839_cur."from"()
+    ne $I10, -1, rxscan819_done
+    goto rxscan819_scan
+  rxscan819_loop:
+    ($P10) = rx816_cur."from"()
     inc $P10
-    set rx839_pos, $P10
-    ge rx839_pos, rx839_eos, rxscan842_done
-  rxscan842_scan:
-    set_addr $I10, rxscan842_loop
-    rx839_cur."!mark_push"(0, rx839_pos, $I10)
-  rxscan842_done:
-.annotate 'line', 388
+    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:
+.annotate 'line', 389
   # rx literal  "pir::"
-    add $I11, rx839_pos, 5
-    gt $I11, rx839_eos, rx839_fail
-    sub $I11, rx839_pos, rx839_off
-    substr $S10, rx839_tgt, $I11, 5
-    ne $S10, "pir::", rx839_fail
-    add rx839_pos, 5
+    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_843_fail
-    rx839_cur."!mark_push"(0, rx839_pos, $I10)
+    set_addr $I10, rxcap_820_fail
+    rx816_cur."!mark_push"(0, rx816_pos, $I10)
   # rx charclass_q w r 1..-1
-    sub $I10, rx839_pos, rx839_off
-    find_not_cclass $I11, 8192, rx839_tgt, $I10, rx839_eos
+    sub $I10, rx816_pos, rx816_off
+    find_not_cclass $I11, 8192, rx816_tgt, $I10, rx816_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx839_fail
-    add rx839_pos, rx839_off, $I11
-    set_addr $I10, rxcap_843_fail
-    ($I12, $I11) = rx839_cur."!mark_peek"($I10)
-    rx839_cur."!cursor_pos"($I11)
-    ($P10) = rx839_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx839_pos, "")
-    rx839_cur."!mark_push"(0, -1, 0, $P10)
+    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_843_done
-  rxcap_843_fail:
-    goto rx839_fail
-  rxcap_843_done:
-  # rx rxquantr844 ** 0..1
-    set_addr $I845, rxquantr844_done
-    rx839_cur."!mark_push"(0, rx839_pos, $I845)
-  rxquantr844_loop:
+    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=
-    rx839_cur."!cursor_pos"(rx839_pos)
-    $P10 = rx839_cur."args"()
-    unless $P10, rx839_fail
-    rx839_cur."!mark_push"(0, -1, 0, $P10)
+    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")
-    rx839_pos = $P10."pos"()
-    (rx839_rep) = rx839_cur."!mark_commit"($I845)
-  rxquantr844_done:
-.annotate 'line', 387
+    rx816_pos = $P10."pos"()
+    set_addr $I10, rxquantr821_done
+    (rx816_rep) = rx816_cur."!mark_commit"($I10)
+  rxquantr821_done:
+.annotate 'line', 388
   # rx pass
-    rx839_cur."!cursor_pass"(rx839_pos, "term:sym<pir::op>")
-    rx839_cur."!cursor_debug"("PASS  ", "term:sym<pir::op>", " at pos=", rx839_pos)
-    .return (rx839_cur)
-  rx839_fail:
+    rx816_cur."!cursor_pass"(rx816_pos, "term:sym<pir::op>")
+    rx816_cur."!cursor_debug"("PASS  ", "term:sym<pir::op>", " at pos=", rx816_pos)
+    .return (rx816_cur)
+  rx816_restart:
 .annotate 'line', 4
-    (rx839_rep, rx839_pos, $I10, $P10) = rx839_cur."!mark_fail"(0)
-    lt rx839_pos, -1, rx839_done
-    eq rx839_pos, -1, rx839_fail
+    rx816_cur."!cursor_debug"("NEXT ", "term:sym<pir::op>")
+  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
-  rx839_done:
-    rx839_cur."!cursor_fail"()
-    rx839_cur."!cursor_debug"("FAIL  ", "term:sym<pir::op>")
-    .return (rx839_cur)
+  rx816_done:
+    rx816_cur."!cursor_fail"()
+    rx816_cur."!cursor_debug"("FAIL  ", "term:sym<pir::op>")
+    .return (rx816_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>"  :subid("191_1277356913.9538") :method
+.sub "!PREFIX__term:sym<pir::op>"  :subid("193_1280467477.44751") :method
 .annotate 'line', 4
-    new $P841, "ResizablePMCArray"
-    push $P841, "pir::"
-    .return ($P841)
+    new $P818, "ResizablePMCArray"
+    push $P818, "pir::"
+    .return ($P818)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "args"  :subid("192_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "args"  :subid("194_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx847_tgt
-    .local int rx847_pos
-    .local int rx847_off
-    .local int rx847_eos
-    .local int rx847_rep
-    .local pmc rx847_cur
-    (rx847_cur, rx847_pos, rx847_tgt) = self."!cursor_start"()
-    rx847_cur."!cursor_debug"("START ", "args")
-    .lex unicode:"$\x{a2}", rx847_cur
+    .local string rx824_tgt
+    .local int rx824_pos
+    .local int rx824_off
+    .local int rx824_eos
+    .local int rx824_rep
+    .local pmc rx824_cur
+    (rx824_cur, rx824_pos, rx824_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx824_cur
     .local pmc match
     .lex "$/", match
-    length rx847_eos, rx847_tgt
-    gt rx847_pos, rx847_eos, rx847_done
-    set rx847_off, 0
-    lt rx847_pos, 2, rx847_start
-    sub rx847_off, rx847_pos, 1
-    substr rx847_tgt, rx847_tgt, rx847_off
-  rx847_start:
+    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
+    rx824_cur."!cursor_debug"("START ", "args")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan851_done
-    goto rxscan851_scan
-  rxscan851_loop:
-    ($P10) = rx847_cur."from"()
+    ne $I10, -1, rxscan828_done
+    goto rxscan828_scan
+  rxscan828_loop:
+    ($P10) = rx824_cur."from"()
     inc $P10
-    set rx847_pos, $P10
-    ge rx847_pos, rx847_eos, rxscan851_done
-  rxscan851_scan:
-    set_addr $I10, rxscan851_loop
-    rx847_cur."!mark_push"(0, rx847_pos, $I10)
-  rxscan851_done:
-.annotate 'line', 392
+    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:
+.annotate 'line', 393
   # rx literal  "("
-    add $I11, rx847_pos, 1
-    gt $I11, rx847_eos, rx847_fail
-    sub $I11, rx847_pos, rx847_off
-    substr $S10, rx847_tgt, $I11, 1
-    ne $S10, "(", rx847_fail
-    add rx847_pos, 1
+    add $I11, rx824_pos, 1
+    gt $I11, rx824_eos, rx824_fail
+    sub $I11, rx824_pos, rx824_off
+    substr $S10, rx824_tgt, $I11, 1
+    ne $S10, "(", rx824_fail
+    add rx824_pos, 1
   # rx subrule "arglist" subtype=capture negate=
-    rx847_cur."!cursor_pos"(rx847_pos)
-    $P10 = rx847_cur."arglist"()
-    unless $P10, rx847_fail
-    rx847_cur."!mark_push"(0, -1, 0, $P10)
+    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")
-    rx847_pos = $P10."pos"()
+    rx824_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx847_pos, 1
-    gt $I11, rx847_eos, rx847_fail
-    sub $I11, rx847_pos, rx847_off
-    substr $S10, rx847_tgt, $I11, 1
-    ne $S10, ")", rx847_fail
-    add rx847_pos, 1
+    add $I11, rx824_pos, 1
+    gt $I11, rx824_eos, rx824_fail
+    sub $I11, rx824_pos, rx824_off
+    substr $S10, rx824_tgt, $I11, 1
+    ne $S10, ")", rx824_fail
+    add rx824_pos, 1
   # rx pass
-    rx847_cur."!cursor_pass"(rx847_pos, "args")
-    rx847_cur."!cursor_debug"("PASS  ", "args", " at pos=", rx847_pos)
-    .return (rx847_cur)
-  rx847_fail:
+    rx824_cur."!cursor_pass"(rx824_pos, "args")
+    rx824_cur."!cursor_debug"("PASS  ", "args", " at pos=", rx824_pos)
+    .return (rx824_cur)
+  rx824_restart:
 .annotate 'line', 4
-    (rx847_rep, rx847_pos, $I10, $P10) = rx847_cur."!mark_fail"(0)
-    lt rx847_pos, -1, rx847_done
-    eq rx847_pos, -1, rx847_fail
+    rx824_cur."!cursor_debug"("NEXT ", "args")
+  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
-  rx847_done:
-    rx847_cur."!cursor_fail"()
-    rx847_cur."!cursor_debug"("FAIL  ", "args")
-    .return (rx847_cur)
+  rx824_done:
+    rx824_cur."!cursor_fail"()
+    rx824_cur."!cursor_debug"("FAIL  ", "args")
+    .return (rx824_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args"  :subid("193_1277356913.9538") :method
+.sub "!PREFIX__args"  :subid("195_1280467477.44751") :method
 .annotate 'line', 4
-    $P849 = self."!PREFIX__!subrule"("arglist", "(")
-    new $P850, "ResizablePMCArray"
-    push $P850, $P849
-    .return ($P850)
+    $P826 = self."!PREFIX__!subrule"("arglist", "(")
+    new $P827, "ResizablePMCArray"
+    push $P827, $P826
+    .return ($P827)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "arglist"  :subid("194_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "arglist"  :subid("196_1280467477.44751") :method :outer("11_1280467477.44751")
 .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
-    (rx853_cur, rx853_pos, rx853_tgt) = self."!cursor_start"()
-    rx853_cur."!cursor_debug"("START ", "arglist")
-    .lex unicode:"$\x{a2}", rx853_cur
+    .local string rx830_tgt
+    .local int rx830_pos
+    .local int rx830_off
+    .local int rx830_eos
+    .local int rx830_rep
+    .local pmc rx830_cur
+    (rx830_cur, rx830_pos, rx830_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx830_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:
+    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
+    rx830_cur."!cursor_debug"("START ", "arglist")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan857_done
-    goto rxscan857_scan
-  rxscan857_loop:
-    ($P10) = rx853_cur."from"()
+    ne $I10, -1, rxscan834_done
+    goto rxscan834_scan
+  rxscan834_loop:
+    ($P10) = rx830_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', 396
-  # rx subrule "ws" subtype=method negate=
-    rx853_cur."!cursor_pos"(rx853_pos)
-    $P10 = rx853_cur."ws"()
-    unless $P10, rx853_fail
-    rx853_pos = $P10."pos"()
-  alt858_0:
+    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:
 .annotate 'line', 397
-    set_addr $I10, alt858_1
-    rx853_cur."!mark_push"(0, rx853_pos, $I10)
+  # 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:
 .annotate 'line', 398
+    set_addr $I10, alt835_1
+    rx830_cur."!mark_push"(0, rx830_pos, $I10)
+.annotate 'line', 399
   # rx subrule "EXPR" subtype=capture negate=
-    rx853_cur."!cursor_pos"(rx853_pos)
-    $P10 = rx853_cur."EXPR"("f=")
-    unless $P10, rx853_fail
-    rx853_cur."!mark_push"(0, -1, 0, $P10)
+    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")
-    rx853_pos = $P10."pos"()
-    goto alt858_end
-  alt858_1:
-  alt858_end:
-.annotate 'line', 395
+    rx830_pos = $P10."pos"()
+    goto alt835_end
+  alt835_1:
+  alt835_end:
+.annotate 'line', 396
   # rx pass
-    rx853_cur."!cursor_pass"(rx853_pos, "arglist")
-    rx853_cur."!cursor_debug"("PASS  ", "arglist", " at pos=", rx853_pos)
-    .return (rx853_cur)
-  rx853_fail:
+    rx830_cur."!cursor_pass"(rx830_pos, "arglist")
+    rx830_cur."!cursor_debug"("PASS  ", "arglist", " at pos=", rx830_pos)
+    .return (rx830_cur)
+  rx830_restart:
 .annotate 'line', 4
-    (rx853_rep, rx853_pos, $I10, $P10) = rx853_cur."!mark_fail"(0)
-    lt rx853_pos, -1, rx853_done
-    eq rx853_pos, -1, rx853_fail
+    rx830_cur."!cursor_debug"("NEXT ", "arglist")
+  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
-  rx853_done:
-    rx853_cur."!cursor_fail"()
-    rx853_cur."!cursor_debug"("FAIL  ", "arglist")
-    .return (rx853_cur)
+  rx830_done:
+    rx830_cur."!cursor_fail"()
+    rx830_cur."!cursor_debug"("FAIL  ", "arglist")
+    .return (rx830_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("195_1277356913.9538") :method
+.sub "!PREFIX__arglist"  :subid("197_1280467477.44751") :method
 .annotate 'line', 4
-    $P855 = self."!PREFIX__!subrule"("ws", "")
-    new $P856, "ResizablePMCArray"
-    push $P856, $P855
-    .return ($P856)
+    $P832 = self."!PREFIX__!subrule"("ws", "")
+    new $P833, "ResizablePMCArray"
+    push $P833, $P832
+    .return ($P833)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<value>"  :subid("196_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "term:sym<value>"  :subid("198_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx860_tgt
-    .local int rx860_pos
-    .local int rx860_off
-    .local int rx860_eos
-    .local int rx860_rep
-    .local pmc rx860_cur
-    (rx860_cur, rx860_pos, rx860_tgt) = self."!cursor_start"()
-    rx860_cur."!cursor_debug"("START ", "term:sym<value>")
-    .lex unicode:"$\x{a2}", rx860_cur
+    .local string rx837_tgt
+    .local int rx837_pos
+    .local int rx837_off
+    .local int rx837_eos
+    .local int rx837_rep
+    .local pmc rx837_cur
+    (rx837_cur, rx837_pos, rx837_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx837_cur
     .local pmc match
     .lex "$/", match
-    length rx860_eos, rx860_tgt
-    gt rx860_pos, rx860_eos, rx860_done
-    set rx860_off, 0
-    lt rx860_pos, 2, rx860_start
-    sub rx860_off, rx860_pos, 1
-    substr rx860_tgt, rx860_tgt, rx860_off
-  rx860_start:
+    length rx837_eos, rx837_tgt
+    gt rx837_pos, rx837_eos, rx837_done
+    set rx837_off, 0
+    lt rx837_pos, 2, rx837_start
+    sub rx837_off, rx837_pos, 1
+    substr rx837_tgt, rx837_tgt, rx837_off
+  rx837_start:
+    eq $I10, 1, rx837_restart
+    rx837_cur."!cursor_debug"("START ", "term:sym<value>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan864_done
-    goto rxscan864_scan
-  rxscan864_loop:
-    ($P10) = rx860_cur."from"()
+    ne $I10, -1, rxscan841_done
+    goto rxscan841_scan
+  rxscan841_loop:
+    ($P10) = rx837_cur."from"()
     inc $P10
-    set rx860_pos, $P10
-    ge rx860_pos, rx860_eos, rxscan864_done
-  rxscan864_scan:
-    set_addr $I10, rxscan864_loop
-    rx860_cur."!mark_push"(0, rx860_pos, $I10)
-  rxscan864_done:
-.annotate 'line', 404
+    set rx837_pos, $P10
+    ge rx837_pos, rx837_eos, rxscan841_done
+  rxscan841_scan:
+    set_addr $I10, rxscan841_loop
+    rx837_cur."!mark_push"(0, rx837_pos, $I10)
+  rxscan841_done:
+.annotate 'line', 405
   # rx subrule "value" subtype=capture negate=
-    rx860_cur."!cursor_pos"(rx860_pos)
-    $P10 = rx860_cur."value"()
-    unless $P10, rx860_fail
-    rx860_cur."!mark_push"(0, -1, 0, $P10)
+    rx837_cur."!cursor_pos"(rx837_pos)
+    $P10 = rx837_cur."value"()
+    unless $P10, rx837_fail
+    rx837_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("value")
-    rx860_pos = $P10."pos"()
+    rx837_pos = $P10."pos"()
+  # rx pass
+    rx837_cur."!cursor_pass"(rx837_pos, "term:sym<value>")
+    rx837_cur."!cursor_debug"("PASS  ", "term:sym<value>", " at pos=", rx837_pos)
+    .return (rx837_cur)
+  rx837_restart:
+.annotate 'line', 4
+    rx837_cur."!cursor_debug"("NEXT ", "term:sym<value>")
+  rx837_fail:
+    (rx837_rep, rx837_pos, $I10, $P10) = rx837_cur."!mark_fail"(0)
+    lt rx837_pos, -1, rx837_done
+    eq rx837_pos, -1, rx837_fail
+    jump $I10
+  rx837_done:
+    rx837_cur."!cursor_fail"()
+    rx837_cur."!cursor_debug"("FAIL  ", "term:sym<value>")
+    .return (rx837_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__term:sym<value>"  :subid("199_1280467477.44751") :method
+.annotate 'line', 4
+    $P839 = self."!PREFIX__!subrule"("value", "")
+    new $P840, "ResizablePMCArray"
+    push $P840, $P839
+    .return ($P840)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "value"  :subid("200_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+    .local string rx843_tgt
+    .local int rx843_pos
+    .local int rx843_off
+    .local int rx843_eos
+    .local int rx843_rep
+    .local pmc rx843_cur
+    (rx843_cur, rx843_pos, rx843_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx843_cur."!cursor_debug"("START ", "value")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan848_done
+    goto rxscan848_scan
+  rxscan848_loop:
+    ($P10) = rx843_cur."from"()
+    inc $P10
+    set rx843_pos, $P10
+    ge rx843_pos, rx843_eos, rxscan848_done
+  rxscan848_scan:
+    set_addr $I10, rxscan848_loop
+    rx843_cur."!mark_push"(0, rx843_pos, $I10)
+  rxscan848_done:
+  alt849_0:
+.annotate 'line', 407
+    set_addr $I10, alt849_1
+    rx843_cur."!mark_push"(0, rx843_pos, $I10)
+.annotate 'line', 408
+  # 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:
+.annotate 'line', 409
+  # 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:
+.annotate 'line', 407
+  # rx pass
+    rx843_cur."!cursor_pass"(rx843_pos, "value")
+    rx843_cur."!cursor_debug"("PASS  ", "value", " at pos=", rx843_pos)
+    .return (rx843_cur)
+  rx843_restart:
+.annotate 'line', 4
+    rx843_cur."!cursor_debug"("NEXT ", "value")
+  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"()
+    rx843_cur."!cursor_debug"("FAIL  ", "value")
+    .return (rx843_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__value"  :subid("201_1280467477.44751") :method
+.annotate 'line', 4
+    $P845 = self."!PREFIX__!subrule"("number", "")
+    $P846 = self."!PREFIX__!subrule"("quote", "")
+    new $P847, "ResizablePMCArray"
+    push $P847, $P845
+    push $P847, $P846
+    .return ($P847)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "number"  :subid("202_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+    .local string rx851_tgt
+    .local int rx851_pos
+    .local int rx851_off
+    .local int rx851_eos
+    .local int rx851_rep
+    .local pmc rx851_cur
+    (rx851_cur, rx851_pos, rx851_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx851_cur."!cursor_debug"("START ", "number")
+    $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:
+.annotate 'line', 413
+  # rx subcapture "sign"
+    set_addr $I10, rxcap_856_fail
+    rx851_cur."!mark_push"(0, rx851_pos, $I10)
+  # rx rxquantr855 ** 0..1
+    set_addr $I10, rxquantr855_done
+    rx851_cur."!mark_push"(0, rx851_pos, $I10)
+  rxquantr855_loop:
+  # rx enumcharlist negate=0 
+    ge rx851_pos, rx851_eos, rx851_fail
+    sub $I10, rx851_pos, rx851_off
+    substr $S10, rx851_tgt, $I10, 1
+    index $I11, "+-", $S10
+    lt $I11, 0, rx851_fail
+    inc rx851_pos
+    set_addr $I10, rxquantr855_done
+    (rx851_rep) = rx851_cur."!mark_commit"($I10)
+  rxquantr855_done:
+    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:
+.annotate 'line', 414
+    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:
+.annotate 'line', 412
+  # rx pass
+    rx851_cur."!cursor_pass"(rx851_pos, "number")
+    rx851_cur."!cursor_debug"("PASS  ", "number", " at pos=", rx851_pos)
+    .return (rx851_cur)
+  rx851_restart:
+.annotate 'line', 4
+    rx851_cur."!cursor_debug"("NEXT ", "number")
+  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"()
+    rx851_cur."!cursor_debug"("FAIL  ", "number")
+    .return (rx851_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__number"  :subid("203_1280467477.44751") :method
+.annotate 'line', 4
+    new $P853, "ResizablePMCArray"
+    push $P853, ""
+    .return ($P853)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "quote"  :subid("204_1280467477.44751") :method
+.annotate 'line', 417
+    $P859 = self."!protoregex"("quote")
+    .return ($P859)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__quote"  :subid("205_1280467477.44751") :method
+.annotate 'line', 417
+    $P861 = self."!PREFIX__!protoregex"("quote")
+    .return ($P861)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "quote:sym<apos>"  :subid("206_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+    .local string rx863_tgt
+    .local int rx863_pos
+    .local int rx863_off
+    .local int rx863_eos
+    .local int rx863_rep
+    .local pmc rx863_cur
+    (rx863_cur, rx863_pos, rx863_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx863_cur."!cursor_debug"("START ", "quote:sym<apos>")
+    $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:
+.annotate 'line', 418
+  # 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
-    rx860_cur."!cursor_pass"(rx860_pos, "term:sym<value>")
-    rx860_cur."!cursor_debug"("PASS  ", "term:sym<value>", " at pos=", rx860_pos)
-    .return (rx860_cur)
-  rx860_fail:
+    rx863_cur."!cursor_pass"(rx863_pos, "quote:sym<apos>")
+    rx863_cur."!cursor_debug"("PASS  ", "quote:sym<apos>", " at pos=", rx863_pos)
+    .return (rx863_cur)
+  rx863_restart:
 .annotate 'line', 4
-    (rx860_rep, rx860_pos, $I10, $P10) = rx860_cur."!mark_fail"(0)
-    lt rx860_pos, -1, rx860_done
-    eq rx860_pos, -1, rx860_fail
+    rx863_cur."!cursor_debug"("NEXT ", "quote:sym<apos>")
+  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
-  rx860_done:
-    rx860_cur."!cursor_fail"()
-    rx860_cur."!cursor_debug"("FAIL  ", "term:sym<value>")
-    .return (rx860_cur)
+  rx863_done:
+    rx863_cur."!cursor_fail"()
+    rx863_cur."!cursor_debug"("FAIL  ", "quote:sym<apos>")
+    .return (rx863_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>"  :subid("197_1277356913.9538") :method
+.sub "!PREFIX__quote:sym<apos>"  :subid("207_1280467477.44751") :method
 .annotate 'line', 4
-    $P862 = self."!PREFIX__!subrule"("value", "")
-    new $P863, "ResizablePMCArray"
-    push $P863, $P862
-    .return ($P863)
+    new $P865, "ResizablePMCArray"
+    push $P865, "'"
+    .return ($P865)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "value"  :subid("198_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "quote:sym<dblq>"  :subid("208_1280467477.44751") :method :outer("11_1280467477.44751")
 .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
-    (rx866_cur, rx866_pos, rx866_tgt) = self."!cursor_start"()
-    rx866_cur."!cursor_debug"("START ", "value")
-    .lex unicode:"$\x{a2}", rx866_cur
+    .local string rx868_tgt
+    .local int rx868_pos
+    .local int rx868_off
+    .local int rx868_eos
+    .local int rx868_rep
+    .local pmc rx868_cur
+    (rx868_cur, rx868_pos, rx868_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx868_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:
+    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
+    rx868_cur."!cursor_debug"("START ", "quote:sym<dblq>")
     $I10 = self.'from'()
     ne $I10, -1, rxscan871_done
     goto rxscan871_scan
   rxscan871_loop:
-    ($P10) = rx866_cur."from"()
+    ($P10) = rx868_cur."from"()
     inc $P10
-    set rx866_pos, $P10
-    ge rx866_pos, rx866_eos, rxscan871_done
+    set rx868_pos, $P10
+    ge rx868_pos, rx868_eos, rxscan871_done
   rxscan871_scan:
     set_addr $I10, rxscan871_loop
-    rx866_cur."!mark_push"(0, rx866_pos, $I10)
+    rx868_cur."!mark_push"(0, rx868_pos, $I10)
   rxscan871_done:
-  alt872_0:
-.annotate 'line', 406
-    set_addr $I10, alt872_1
-    rx866_cur."!mark_push"(0, rx866_pos, $I10)
-.annotate 'line', 407
-  # rx subrule "quote" subtype=capture negate=
-    rx866_cur."!cursor_pos"(rx866_pos)
-    $P10 = rx866_cur."quote"()
-    unless $P10, rx866_fail
-    rx866_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote")
-    rx866_pos = $P10."pos"()
-    goto alt872_end
-  alt872_1:
-.annotate 'line', 408
-  # rx subrule "number" subtype=capture negate=
-    rx866_cur."!cursor_pos"(rx866_pos)
-    $P10 = rx866_cur."number"()
-    unless $P10, rx866_fail
-    rx866_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("number")
-    rx866_pos = $P10."pos"()
-  alt872_end:
-.annotate 'line', 406
+.annotate 'line', 419
+  # 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"()
   # rx pass
-    rx866_cur."!cursor_pass"(rx866_pos, "value")
-    rx866_cur."!cursor_debug"("PASS  ", "value", " at pos=", rx866_pos)
-    .return (rx866_cur)
-  rx866_fail:
+    rx868_cur."!cursor_pass"(rx868_pos, "quote:sym<dblq>")
+    rx868_cur."!cursor_debug"("PASS  ", "quote:sym<dblq>", " at pos=", rx868_pos)
+    .return (rx868_cur)
+  rx868_restart:
 .annotate 'line', 4
-    (rx866_rep, rx866_pos, $I10, $P10) = rx866_cur."!mark_fail"(0)
-    lt rx866_pos, -1, rx866_done
-    eq rx866_pos, -1, rx866_fail
+    rx868_cur."!cursor_debug"("NEXT ", "quote:sym<dblq>")
+  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
-  rx866_done:
-    rx866_cur."!cursor_fail"()
-    rx866_cur."!cursor_debug"("FAIL  ", "value")
-    .return (rx866_cur)
+  rx868_done:
+    rx868_cur."!cursor_fail"()
+    rx868_cur."!cursor_debug"("FAIL  ", "quote:sym<dblq>")
+    .return (rx868_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value"  :subid("199_1277356913.9538") :method
+.sub "!PREFIX__quote:sym<dblq>"  :subid("209_1280467477.44751") :method
 .annotate 'line', 4
-    $P868 = self."!PREFIX__!subrule"("number", "")
-    $P869 = self."!PREFIX__!subrule"("quote", "")
     new $P870, "ResizablePMCArray"
-    push $P870, $P868
-    push $P870, $P869
+    push $P870, "\""
     .return ($P870)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "number"  :subid("200_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "quote:sym<q>"  :subid("210_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx874_tgt
-    .local int rx874_pos
-    .local int rx874_off
-    .local int rx874_eos
-    .local int rx874_rep
-    .local pmc rx874_cur
-    (rx874_cur, rx874_pos, rx874_tgt) = self."!cursor_start"()
-    rx874_cur."!cursor_debug"("START ", "number")
-    .lex unicode:"$\x{a2}", rx874_cur
-    .local pmc match
-    .lex "$/", match
-    length rx874_eos, rx874_tgt
-    gt rx874_pos, rx874_eos, rx874_done
-    set rx874_off, 0
-    lt rx874_pos, 2, rx874_start
-    sub rx874_off, rx874_pos, 1
-    substr rx874_tgt, rx874_tgt, rx874_off
-  rx874_start:
+    .local string rx873_tgt
+    .local int rx873_pos
+    .local int rx873_off
+    .local int rx873_eos
+    .local int rx873_rep
+    .local pmc rx873_cur
+    (rx873_cur, rx873_pos, rx873_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx873_cur."!cursor_debug"("START ", "quote:sym<q>")
     $I10 = self.'from'()
     ne $I10, -1, rxscan877_done
     goto rxscan877_scan
   rxscan877_loop:
-    ($P10) = rx874_cur."from"()
+    ($P10) = rx873_cur."from"()
     inc $P10
-    set rx874_pos, $P10
-    ge rx874_pos, rx874_eos, rxscan877_done
+    set rx873_pos, $P10
+    ge rx873_pos, rx873_eos, rxscan877_done
   rxscan877_scan:
     set_addr $I10, rxscan877_loop
-    rx874_cur."!mark_push"(0, rx874_pos, $I10)
+    rx873_cur."!mark_push"(0, rx873_pos, $I10)
   rxscan877_done:
-.annotate 'line', 412
-  # rx subcapture "sign"
-    set_addr $I10, rxcap_880_fail
-    rx874_cur."!mark_push"(0, rx874_pos, $I10)
-  # rx rxquantr878 ** 0..1
-    set_addr $I879, rxquantr878_done
-    rx874_cur."!mark_push"(0, rx874_pos, $I879)
-  rxquantr878_loop:
-  # rx enumcharlist negate=0 
-    ge rx874_pos, rx874_eos, rx874_fail
-    sub $I10, rx874_pos, rx874_off
-    substr $S10, rx874_tgt, $I10, 1
-    index $I11, "+-", $S10
-    lt $I11, 0, rx874_fail
-    inc rx874_pos
-    (rx874_rep) = rx874_cur."!mark_commit"($I879)
-  rxquantr878_done:
-    set_addr $I10, rxcap_880_fail
-    ($I12, $I11) = rx874_cur."!mark_peek"($I10)
-    rx874_cur."!cursor_pos"($I11)
-    ($P10) = rx874_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx874_pos, "")
-    rx874_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sign")
-    goto rxcap_880_done
-  rxcap_880_fail:
-    goto rx874_fail
-  rxcap_880_done:
-  alt881_0:
-.annotate 'line', 413
-    set_addr $I10, alt881_1
-    rx874_cur."!mark_push"(0, rx874_pos, $I10)
-  # rx subrule "dec_number" subtype=capture negate=
-    rx874_cur."!cursor_pos"(rx874_pos)
-    $P10 = rx874_cur."dec_number"()
-    unless $P10, rx874_fail
-    rx874_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("dec_number")
-    rx874_pos = $P10."pos"()
-    goto alt881_end
-  alt881_1:
-  # rx subrule "integer" subtype=capture negate=
-    rx874_cur."!cursor_pos"(rx874_pos)
-    $P10 = rx874_cur."integer"()
-    unless $P10, rx874_fail
-    rx874_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("integer")
-    rx874_pos = $P10."pos"()
-  alt881_end:
-.annotate 'line', 411
+.annotate 'line', 420
+  # rx literal  "q"
+    add $I11, rx873_pos, 1
+    gt $I11, rx873_eos, rx873_fail
+    sub $I11, rx873_pos, rx873_off
+    substr $S10, rx873_tgt, $I11, 1
+    ne $S10, "q", rx873_fail
+    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
-    rx874_cur."!cursor_pass"(rx874_pos, "number")
-    rx874_cur."!cursor_debug"("PASS  ", "number", " at pos=", rx874_pos)
-    .return (rx874_cur)
-  rx874_fail:
+    rx873_cur."!cursor_pass"(rx873_pos, "quote:sym<q>")
+    rx873_cur."!cursor_debug"("PASS  ", "quote:sym<q>", " at pos=", rx873_pos)
+    .return (rx873_cur)
+  rx873_restart:
 .annotate 'line', 4
-    (rx874_rep, rx874_pos, $I10, $P10) = rx874_cur."!mark_fail"(0)
-    lt rx874_pos, -1, rx874_done
-    eq rx874_pos, -1, rx874_fail
+    rx873_cur."!cursor_debug"("NEXT ", "quote:sym<q>")
+  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
-  rx874_done:
-    rx874_cur."!cursor_fail"()
-    rx874_cur."!cursor_debug"("FAIL  ", "number")
-    .return (rx874_cur)
+  rx873_done:
+    rx873_cur."!cursor_fail"()
+    rx873_cur."!cursor_debug"("FAIL  ", "quote:sym<q>")
+    .return (rx873_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number"  :subid("201_1277356913.9538") :method
+.sub "!PREFIX__quote:sym<q>"  :subid("211_1280467477.44751") :method
 .annotate 'line', 4
+    $P875 = self."!PREFIX__!subrule"("ws", "q")
     new $P876, "ResizablePMCArray"
-    push $P876, ""
+    push $P876, $P875
     .return ($P876)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote"  :subid("202_1277356913.9538") :method
-.annotate 'line', 416
-    $P883 = self."!protoregex"("quote")
-    .return ($P883)
+.sub "quote:sym<qq>"  :subid("212_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+    .local string rx879_tgt
+    .local int rx879_pos
+    .local int rx879_off
+    .local int rx879_eos
+    .local int rx879_rep
+    .local pmc rx879_cur
+    (rx879_cur, rx879_pos, rx879_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx879_cur."!cursor_debug"("START ", "quote:sym<qq>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan883_done
+    goto rxscan883_scan
+  rxscan883_loop:
+    ($P10) = rx879_cur."from"()
+    inc $P10
+    set rx879_pos, $P10
+    ge rx879_pos, rx879_eos, rxscan883_done
+  rxscan883_scan:
+    set_addr $I10, rxscan883_loop
+    rx879_cur."!mark_push"(0, rx879_pos, $I10)
+  rxscan883_done:
+.annotate 'line', 421
+  # 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>")
+    rx879_cur."!cursor_debug"("PASS  ", "quote:sym<qq>", " at pos=", rx879_pos)
+    .return (rx879_cur)
+  rx879_restart:
+.annotate 'line', 4
+    rx879_cur."!cursor_debug"("NEXT ", "quote:sym<qq>")
+  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"()
+    rx879_cur."!cursor_debug"("FAIL  ", "quote:sym<qq>")
+    .return (rx879_cur)
+    .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote"  :subid("203_1277356913.9538") :method
-.annotate 'line', 416
-    $P885 = self."!PREFIX__!protoregex"("quote")
-    .return ($P885)
+.sub "!PREFIX__quote:sym<qq>"  :subid("213_1280467477.44751") :method
+.annotate 'line', 4
+    $P881 = self."!PREFIX__!subrule"("ws", "qq")
+    new $P882, "ResizablePMCArray"
+    push $P882, $P881
+    .return ($P882)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>"  :subid("204_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "quote:sym<Q>"  :subid("214_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx887_tgt
-    .local int rx887_pos
-    .local int rx887_off
-    .local int rx887_eos
-    .local int rx887_rep
-    .local pmc rx887_cur
-    (rx887_cur, rx887_pos, rx887_tgt) = self."!cursor_start"()
-    rx887_cur."!cursor_debug"("START ", "quote:sym<apos>")
-    .lex unicode:"$\x{a2}", rx887_cur
+    .local string rx885_tgt
+    .local int rx885_pos
+    .local int rx885_off
+    .local int rx885_eos
+    .local int rx885_rep
+    .local pmc rx885_cur
+    (rx885_cur, rx885_pos, rx885_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx885_cur
     .local pmc match
     .lex "$/", match
-    length rx887_eos, rx887_tgt
-    gt rx887_pos, rx887_eos, rx887_done
-    set rx887_off, 0
-    lt rx887_pos, 2, rx887_start
-    sub rx887_off, rx887_pos, 1
-    substr rx887_tgt, rx887_tgt, rx887_off
-  rx887_start:
+    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
+    rx885_cur."!cursor_debug"("START ", "quote:sym<Q>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan890_done
-    goto rxscan890_scan
-  rxscan890_loop:
-    ($P10) = rx887_cur."from"()
+    ne $I10, -1, rxscan889_done
+    goto rxscan889_scan
+  rxscan889_loop:
+    ($P10) = rx885_cur."from"()
     inc $P10
-    set rx887_pos, $P10
-    ge rx887_pos, rx887_eos, rxscan890_done
-  rxscan890_scan:
-    set_addr $I10, rxscan890_loop
-    rx887_cur."!mark_push"(0, rx887_pos, $I10)
-  rxscan890_done:
-.annotate 'line', 417
-  # rx enumcharlist negate=0 zerowidth
-    ge rx887_pos, rx887_eos, rx887_fail
-    sub $I10, rx887_pos, rx887_off
-    substr $S10, rx887_tgt, $I10, 1
-    index $I11, "'", $S10
-    lt $I11, 0, rx887_fail
+    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:
+.annotate 'line', 422
+  # rx literal  "Q"
+    add $I11, rx885_pos, 1
+    gt $I11, rx885_eos, rx885_fail
+    sub $I11, rx885_pos, rx885_off
+    substr $S10, rx885_tgt, $I11, 1
+    ne $S10, "Q", rx885_fail
+    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=
-    rx887_cur."!cursor_pos"(rx887_pos)
-    $P10 = rx887_cur."quote_EXPR"(":q")
-    unless $P10, rx887_fail
-    rx887_cur."!mark_push"(0, -1, 0, $P10)
+    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")
-    rx887_pos = $P10."pos"()
+    rx885_pos = $P10."pos"()
   # rx pass
-    rx887_cur."!cursor_pass"(rx887_pos, "quote:sym<apos>")
-    rx887_cur."!cursor_debug"("PASS  ", "quote:sym<apos>", " at pos=", rx887_pos)
-    .return (rx887_cur)
-  rx887_fail:
+    rx885_cur."!cursor_pass"(rx885_pos, "quote:sym<Q>")
+    rx885_cur."!cursor_debug"("PASS  ", "quote:sym<Q>", " at pos=", rx885_pos)
+    .return (rx885_cur)
+  rx885_restart:
 .annotate 'line', 4
-    (rx887_rep, rx887_pos, $I10, $P10) = rx887_cur."!mark_fail"(0)
-    lt rx887_pos, -1, rx887_done
-    eq rx887_pos, -1, rx887_fail
+    rx885_cur."!cursor_debug"("NEXT ", "quote:sym<Q>")
+  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
-  rx887_done:
-    rx887_cur."!cursor_fail"()
-    rx887_cur."!cursor_debug"("FAIL  ", "quote:sym<apos>")
-    .return (rx887_cur)
+  rx885_done:
+    rx885_cur."!cursor_fail"()
+    rx885_cur."!cursor_debug"("FAIL  ", "quote:sym<Q>")
+    .return (rx885_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>"  :subid("205_1277356913.9538") :method
+.sub "!PREFIX__quote:sym<Q>"  :subid("215_1280467477.44751") :method
 .annotate 'line', 4
-    new $P889, "ResizablePMCArray"
-    push $P889, "'"
-    .return ($P889)
+    $P887 = self."!PREFIX__!subrule"("ws", "Q")
+    new $P888, "ResizablePMCArray"
+    push $P888, $P887
+    .return ($P888)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>"  :subid("206_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "quote:sym<Q:PIR>"  :subid("216_1280467477.44751") :method :outer("11_1280467477.44751")
 .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
-    (rx892_cur, rx892_pos, rx892_tgt) = self."!cursor_start"()
-    rx892_cur."!cursor_debug"("START ", "quote:sym<dblq>")
-    .lex unicode:"$\x{a2}", rx892_cur
+    .local string rx891_tgt
+    .local int rx891_pos
+    .local int rx891_off
+    .local int rx891_eos
+    .local int rx891_rep
+    .local pmc rx891_cur
+    (rx891_cur, rx891_pos, rx891_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx891_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:
+    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
+    rx891_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
     $I10 = self.'from'()
     ne $I10, -1, rxscan895_done
     goto rxscan895_scan
   rxscan895_loop:
-    ($P10) = rx892_cur."from"()
+    ($P10) = rx891_cur."from"()
     inc $P10
-    set rx892_pos, $P10
-    ge rx892_pos, rx892_eos, rxscan895_done
+    set rx891_pos, $P10
+    ge rx891_pos, rx891_eos, rxscan895_done
   rxscan895_scan:
     set_addr $I10, rxscan895_loop
-    rx892_cur."!mark_push"(0, rx892_pos, $I10)
+    rx891_cur."!mark_push"(0, rx891_pos, $I10)
   rxscan895_done:
-.annotate 'line', 418
-  # rx enumcharlist negate=0 zerowidth
-    ge rx892_pos, rx892_eos, rx892_fail
-    sub $I10, rx892_pos, rx892_off
-    substr $S10, rx892_tgt, $I10, 1
-    index $I11, "\"", $S10
-    lt $I11, 0, rx892_fail
+.annotate 'line', 423
+  # 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"()
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx892_cur."!cursor_pos"(rx892_pos)
-    $P10 = rx892_cur."quote_EXPR"(":qq")
-    unless $P10, rx892_fail
-    rx892_cur."!mark_push"(0, -1, 0, $P10)
+    rx891_cur."!cursor_pos"(rx891_pos)
+    $P10 = rx891_cur."quote_EXPR"()
+    unless $P10, rx891_fail
+    rx891_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx892_pos = $P10."pos"()
+    rx891_pos = $P10."pos"()
   # rx pass
-    rx892_cur."!cursor_pass"(rx892_pos, "quote:sym<dblq>")
-    rx892_cur."!cursor_debug"("PASS  ", "quote:sym<dblq>", " at pos=", rx892_pos)
-    .return (rx892_cur)
-  rx892_fail:
+    rx891_cur."!cursor_pass"(rx891_pos, "quote:sym<Q:PIR>")
+    rx891_cur."!cursor_debug"("PASS  ", "quote:sym<Q:PIR>", " at pos=", rx891_pos)
+    .return (rx891_cur)
+  rx891_restart:
 .annotate 'line', 4
-    (rx892_rep, rx892_pos, $I10, $P10) = rx892_cur."!mark_fail"(0)
-    lt rx892_pos, -1, rx892_done
-    eq rx892_pos, -1, rx892_fail
+    rx891_cur."!cursor_debug"("NEXT ", "quote:sym<Q:PIR>")
+  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
-  rx892_done:
-    rx892_cur."!cursor_fail"()
-    rx892_cur."!cursor_debug"("FAIL  ", "quote:sym<dblq>")
-    .return (rx892_cur)
+  rx891_done:
+    rx891_cur."!cursor_fail"()
+    rx891_cur."!cursor_debug"("FAIL  ", "quote:sym<Q:PIR>")
+    .return (rx891_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<dblq>"  :subid("207_1277356913.9538") :method
+.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("217_1280467477.44751") :method
 .annotate 'line', 4
+    $P893 = self."!PREFIX__!subrule"("ws", "Q:PIR")
     new $P894, "ResizablePMCArray"
-    push $P894, "\""
+    push $P894, $P893
     .return ($P894)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<q>"  :subid("208_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "quote:sym</ />"  :subid("218_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
     .local string rx897_tgt
     .local int rx897_pos
@@ -10539,8 +11438,7 @@
     .local int rx897_eos
     .local int rx897_rep
     .local pmc rx897_cur
-    (rx897_cur, rx897_pos, rx897_tgt) = self."!cursor_start"()
-    rx897_cur."!cursor_debug"("START ", "quote:sym<q>")
+    (rx897_cur, rx897_pos, rx897_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx897_cur
     .local pmc match
     .lex "$/", match
@@ -10551,6 +11449,8 @@
     sub rx897_off, rx897_pos, 1
     substr rx897_tgt, rx897_tgt, rx897_off
   rx897_start:
+    eq $I10, 1, rx897_restart
+    rx897_cur."!cursor_debug"("START ", "quote:sym</ />")
     $I10 = self.'from'()
     ne $I10, -1, rxscan901_done
     goto rxscan901_scan
@@ -10563,62 +11463,65 @@
     set_addr $I10, rxscan901_loop
     rx897_cur."!mark_push"(0, rx897_pos, $I10)
   rxscan901_done:
-.annotate 'line', 419
-  # rx literal  "q"
+.annotate 'line', 425
+  # rx literal  "/"
     add $I11, rx897_pos, 1
     gt $I11, rx897_eos, rx897_fail
     sub $I11, rx897_pos, rx897_off
     substr $S10, rx897_tgt, $I11, 1
-    ne $S10, "q", rx897_fail
+    ne $S10, "/", rx897_fail
     add rx897_pos, 1
-  # rxanchor rwb
-    le rx897_pos, 0, rx897_fail
-    sub $I10, rx897_pos, rx897_off
-    is_cclass $I11, 8192, rx897_tgt, $I10
-    if $I11, rx897_fail
-    dec $I10
-    is_cclass $I11, 8192, rx897_tgt, $I10
-    unless $I11, rx897_fail
-  # rx enumcharlist negate=1 zerowidth
-    ge rx897_pos, rx897_eos, rx897_fail
-    sub $I10, rx897_pos, rx897_off
-    substr $S10, rx897_tgt, $I10, 1
-    index $I11, "(", $S10
-    ge $I11, 0, rx897_fail
-  # rx subrule "ws" subtype=method negate=
+.annotate 'line', 426
+  # rx subrule "newpad" subtype=method negate=
     rx897_cur."!cursor_pos"(rx897_pos)
-    $P10 = rx897_cur."ws"()
+    $P10 = rx897_cur."newpad"()
     unless $P10, rx897_fail
     rx897_pos = $P10."pos"()
-  # rx subrule "quote_EXPR" subtype=capture negate=
+.annotate 'line', 427
+  # rx reduce name="quote:sym</ />" key="open"
+    rx897_cur."!cursor_pos"(rx897_pos)
+    rx897_cur."!reduce"("quote:sym</ />", "open")
+.annotate 'line', 428
+  # rx subrule "LANG" subtype=capture negate=
     rx897_cur."!cursor_pos"(rx897_pos)
-    $P10 = rx897_cur."quote_EXPR"(":q")
+    $P10 = rx897_cur."LANG"("Regex", "nibbler")
     unless $P10, rx897_fail
     rx897_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
+    $P10."!cursor_names"("p6regex")
     rx897_pos = $P10."pos"()
+.annotate 'line', 429
+  # rx literal  "/"
+    add $I11, rx897_pos, 1
+    gt $I11, rx897_eos, rx897_fail
+    sub $I11, rx897_pos, rx897_off
+    substr $S10, rx897_tgt, $I11, 1
+    ne $S10, "/", rx897_fail
+    add rx897_pos, 1
+.annotate 'line', 424
   # rx pass
-    rx897_cur."!cursor_pass"(rx897_pos, "quote:sym<q>")
-    rx897_cur."!cursor_debug"("PASS  ", "quote:sym<q>", " at pos=", rx897_pos)
+    rx897_cur."!cursor_pass"(rx897_pos, "quote:sym</ />")
+    rx897_cur."!cursor_debug"("PASS  ", "quote:sym</ />", " at pos=", rx897_pos)
     .return (rx897_cur)
-  rx897_fail:
+  rx897_restart:
 .annotate 'line', 4
+    rx897_cur."!cursor_debug"("NEXT ", "quote:sym</ />")
+  rx897_fail:
     (rx897_rep, rx897_pos, $I10, $P10) = rx897_cur."!mark_fail"(0)
     lt rx897_pos, -1, rx897_done
     eq rx897_pos, -1, rx897_fail
     jump $I10
   rx897_done:
     rx897_cur."!cursor_fail"()
-    rx897_cur."!cursor_debug"("FAIL  ", "quote:sym<q>")
+    rx897_cur."!cursor_debug"("FAIL  ", "quote:sym</ />")
     .return (rx897_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<q>"  :subid("209_1277356913.9538") :method
+.sub "!PREFIX__quote:sym</ />"  :subid("219_1280467477.44751") :method
 .annotate 'line', 4
-    $P899 = self."!PREFIX__!subrule"("ws", "q")
+    $P899 = self."!PREFIX__!subrule"("newpad", "/")
     new $P900, "ResizablePMCArray"
     push $P900, $P899
     .return ($P900)
@@ -10626,7 +11529,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<qq>"  :subid("210_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "quote_escape:sym<$>"  :subid("220_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
     .local string rx903_tgt
     .local int rx903_pos
@@ -10634,8 +11537,7 @@
     .local int rx903_eos
     .local int rx903_rep
     .local pmc rx903_cur
-    (rx903_cur, rx903_pos, rx903_tgt) = self."!cursor_start"()
-    rx903_cur."!cursor_debug"("START ", "quote:sym<qq>")
+    (rx903_cur, rx903_pos, rx903_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx903_cur
     .local pmc match
     .lex "$/", match
@@ -10646,772 +11548,777 @@
     sub rx903_off, rx903_pos, 1
     substr rx903_tgt, rx903_tgt, rx903_off
   rx903_start:
+    eq $I10, 1, rx903_restart
+    rx903_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan907_done
-    goto rxscan907_scan
-  rxscan907_loop:
+    ne $I10, -1, rxscan906_done
+    goto rxscan906_scan
+  rxscan906_loop:
     ($P10) = rx903_cur."from"()
     inc $P10
     set rx903_pos, $P10
-    ge rx903_pos, rx903_eos, rxscan907_done
-  rxscan907_scan:
-    set_addr $I10, rxscan907_loop
+    ge rx903_pos, rx903_eos, rxscan906_done
+  rxscan906_scan:
+    set_addr $I10, rxscan906_loop
     rx903_cur."!mark_push"(0, rx903_pos, $I10)
-  rxscan907_done:
-.annotate 'line', 420
-  # rx literal  "qq"
-    add $I11, rx903_pos, 2
-    gt $I11, rx903_eos, rx903_fail
-    sub $I11, rx903_pos, rx903_off
-    substr $S10, rx903_tgt, $I11, 2
-    ne $S10, "qq", rx903_fail
-    add rx903_pos, 2
-  # rxanchor rwb
-    le rx903_pos, 0, rx903_fail
-    sub $I10, rx903_pos, rx903_off
-    is_cclass $I11, 8192, rx903_tgt, $I10
-    if $I11, rx903_fail
-    dec $I10
-    is_cclass $I11, 8192, rx903_tgt, $I10
-    unless $I11, rx903_fail
-  # rx enumcharlist negate=1 zerowidth
+  rxscan906_done:
+.annotate 'line', 432
+  # 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
-    ge $I11, 0, rx903_fail
-  # rx subrule "ws" subtype=method negate=
+    index $I11, "$", $S10
+    lt $I11, 0, rx903_fail
+  # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx903_cur."!cursor_pos"(rx903_pos)
-    $P10 = rx903_cur."ws"()
+    $P10 = rx903_cur."quotemod_check"("s")
     unless $P10, rx903_fail
-    rx903_pos = $P10."pos"()
-  # rx subrule "quote_EXPR" subtype=capture negate=
+  # rx subrule "variable" subtype=capture negate=
     rx903_cur."!cursor_pos"(rx903_pos)
-    $P10 = rx903_cur."quote_EXPR"(":qq")
+    $P10 = rx903_cur."variable"()
     unless $P10, rx903_fail
     rx903_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
+    $P10."!cursor_names"("variable")
     rx903_pos = $P10."pos"()
   # rx pass
-    rx903_cur."!cursor_pass"(rx903_pos, "quote:sym<qq>")
-    rx903_cur."!cursor_debug"("PASS  ", "quote:sym<qq>", " at pos=", rx903_pos)
+    rx903_cur."!cursor_pass"(rx903_pos, "quote_escape:sym<$>")
+    rx903_cur."!cursor_debug"("PASS  ", "quote_escape:sym<$>", " at pos=", rx903_pos)
     .return (rx903_cur)
-  rx903_fail:
+  rx903_restart:
 .annotate 'line', 4
+    rx903_cur."!cursor_debug"("NEXT ", "quote_escape:sym<$>")
+  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"()
-    rx903_cur."!cursor_debug"("FAIL  ", "quote:sym<qq>")
+    rx903_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<$>")
     .return (rx903_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<qq>"  :subid("211_1277356913.9538") :method
+.sub "!PREFIX__quote_escape:sym<$>"  :subid("221_1280467477.44751") :method
 .annotate 'line', 4
-    $P905 = self."!PREFIX__!subrule"("ws", "qq")
-    new $P906, "ResizablePMCArray"
-    push $P906, $P905
-    .return ($P906)
+    new $P905, "ResizablePMCArray"
+    push $P905, "$"
+    .return ($P905)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q>"  :subid("212_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 4
-    .local string rx909_tgt
-    .local int rx909_pos
-    .local int rx909_off
-    .local int rx909_eos
-    .local int rx909_rep
-    .local pmc rx909_cur
-    (rx909_cur, rx909_pos, rx909_tgt) = self."!cursor_start"()
-    rx909_cur."!cursor_debug"("START ", "quote:sym<Q>")
-    .lex unicode:"$\x{a2}", rx909_cur
-    .local pmc match
-    .lex "$/", match
-    length rx909_eos, rx909_tgt
-    gt rx909_pos, rx909_eos, rx909_done
-    set rx909_off, 0
-    lt rx909_pos, 2, rx909_start
-    sub rx909_off, rx909_pos, 1
-    substr rx909_tgt, rx909_tgt, rx909_off
-  rx909_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan913_done
-    goto rxscan913_scan
-  rxscan913_loop:
-    ($P10) = rx909_cur."from"()
-    inc $P10
-    set rx909_pos, $P10
-    ge rx909_pos, rx909_eos, rxscan913_done
-  rxscan913_scan:
-    set_addr $I10, rxscan913_loop
-    rx909_cur."!mark_push"(0, rx909_pos, $I10)
-  rxscan913_done:
-.annotate 'line', 421
-  # rx literal  "Q"
-    add $I11, rx909_pos, 1
-    gt $I11, rx909_eos, rx909_fail
-    sub $I11, rx909_pos, rx909_off
-    substr $S10, rx909_tgt, $I11, 1
-    ne $S10, "Q", rx909_fail
-    add rx909_pos, 1
-  # rxanchor rwb
-    le rx909_pos, 0, rx909_fail
-    sub $I10, rx909_pos, rx909_off
-    is_cclass $I11, 8192, rx909_tgt, $I10
-    if $I11, rx909_fail
-    dec $I10
-    is_cclass $I11, 8192, rx909_tgt, $I10
-    unless $I11, rx909_fail
-  # rx enumcharlist negate=1 zerowidth
-    ge rx909_pos, rx909_eos, rx909_fail
-    sub $I10, rx909_pos, rx909_off
-    substr $S10, rx909_tgt, $I10, 1
-    index $I11, "(", $S10
-    ge $I11, 0, rx909_fail
-  # rx subrule "ws" subtype=method negate=
-    rx909_cur."!cursor_pos"(rx909_pos)
-    $P10 = rx909_cur."ws"()
-    unless $P10, rx909_fail
-    rx909_pos = $P10."pos"()
-  # rx subrule "quote_EXPR" subtype=capture negate=
-    rx909_cur."!cursor_pos"(rx909_pos)
-    $P10 = rx909_cur."quote_EXPR"()
-    unless $P10, rx909_fail
-    rx909_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
-    rx909_pos = $P10."pos"()
+.sub "quote_escape:sym<{ }>"  :subid("222_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+    .local string rx908_tgt
+    .local int rx908_pos
+    .local int rx908_off
+    .local int rx908_eos
+    .local int rx908_rep
+    .local pmc rx908_cur
+    (rx908_cur, rx908_pos, rx908_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx908_cur
+    .local pmc match
+    .lex "$/", match
+    length rx908_eos, rx908_tgt
+    gt rx908_pos, rx908_eos, rx908_done
+    set rx908_off, 0
+    lt rx908_pos, 2, rx908_start
+    sub rx908_off, rx908_pos, 1
+    substr rx908_tgt, rx908_tgt, rx908_off
+  rx908_start:
+    eq $I10, 1, rx908_restart
+    rx908_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan911_done
+    goto rxscan911_scan
+  rxscan911_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
+    rx908_cur."!mark_push"(0, rx908_pos, $I10)
+  rxscan911_done:
+.annotate 'line', 433
+  # rx enumcharlist negate=0 zerowidth
+    ge rx908_pos, rx908_eos, rx908_fail
+    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=
+    rx908_cur."!cursor_pos"(rx908_pos)
+    $P10 = rx908_cur."quotemod_check"("c")
+    unless $P10, rx908_fail
+  # rx subrule "block" subtype=capture negate=
+    rx908_cur."!cursor_pos"(rx908_pos)
+    $P10 = rx908_cur."block"()
+    unless $P10, rx908_fail
+    rx908_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("block")
+    rx908_pos = $P10."pos"()
   # rx pass
-    rx909_cur."!cursor_pass"(rx909_pos, "quote:sym<Q>")
-    rx909_cur."!cursor_debug"("PASS  ", "quote:sym<Q>", " at pos=", rx909_pos)
-    .return (rx909_cur)
-  rx909_fail:
+    rx908_cur."!cursor_pass"(rx908_pos, "quote_escape:sym<{ }>")
+    rx908_cur."!cursor_debug"("PASS  ", "quote_escape:sym<{ }>", " at pos=", rx908_pos)
+    .return (rx908_cur)
+  rx908_restart:
 .annotate 'line', 4
-    (rx909_rep, rx909_pos, $I10, $P10) = rx909_cur."!mark_fail"(0)
-    lt rx909_pos, -1, rx909_done
-    eq rx909_pos, -1, rx909_fail
+    rx908_cur."!cursor_debug"("NEXT ", "quote_escape:sym<{ }>")
+  rx908_fail:
+    (rx908_rep, rx908_pos, $I10, $P10) = rx908_cur."!mark_fail"(0)
+    lt rx908_pos, -1, rx908_done
+    eq rx908_pos, -1, rx908_fail
     jump $I10
-  rx909_done:
-    rx909_cur."!cursor_fail"()
-    rx909_cur."!cursor_debug"("FAIL  ", "quote:sym<Q>")
-    .return (rx909_cur)
+  rx908_done:
+    rx908_cur."!cursor_fail"()
+    rx908_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<{ }>")
+    .return (rx908_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q>"  :subid("213_1277356913.9538") :method
+.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("223_1280467477.44751") :method
 .annotate 'line', 4
-    $P911 = self."!PREFIX__!subrule"("ws", "Q")
-    new $P912, "ResizablePMCArray"
-    push $P912, $P911
-    .return ($P912)
+    new $P910, "ResizablePMCArray"
+    push $P910, "{"
+    .return ($P910)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q:PIR>"  :subid("214_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "quote_escape:sym<esc>"  :subid("224_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx915_tgt
-    .local int rx915_pos
-    .local int rx915_off
-    .local int rx915_eos
-    .local int rx915_rep
-    .local pmc rx915_cur
-    (rx915_cur, rx915_pos, rx915_tgt) = self."!cursor_start"()
-    rx915_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
-    .lex unicode:"$\x{a2}", rx915_cur
+    .local string rx913_tgt
+    .local int rx913_pos
+    .local int rx913_off
+    .local int rx913_eos
+    .local int rx913_rep
+    .local pmc rx913_cur
+    (rx913_cur, rx913_pos, rx913_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx913_cur
     .local pmc match
     .lex "$/", match
-    length rx915_eos, rx915_tgt
-    gt rx915_pos, rx915_eos, rx915_done
-    set rx915_off, 0
-    lt rx915_pos, 2, rx915_start
-    sub rx915_off, rx915_pos, 1
-    substr rx915_tgt, rx915_tgt, rx915_off
-  rx915_start:
+    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
+    rx913_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan919_done
-    goto rxscan919_scan
-  rxscan919_loop:
-    ($P10) = rx915_cur."from"()
+    ne $I10, -1, rxscan916_done
+    goto rxscan916_scan
+  rxscan916_loop:
+    ($P10) = rx913_cur."from"()
     inc $P10
-    set rx915_pos, $P10
-    ge rx915_pos, rx915_eos, rxscan919_done
-  rxscan919_scan:
-    set_addr $I10, rxscan919_loop
-    rx915_cur."!mark_push"(0, rx915_pos, $I10)
-  rxscan919_done:
-.annotate 'line', 422
-  # rx literal  "Q:PIR"
-    add $I11, rx915_pos, 5
-    gt $I11, rx915_eos, rx915_fail
-    sub $I11, rx915_pos, rx915_off
-    substr $S10, rx915_tgt, $I11, 5
-    ne $S10, "Q:PIR", rx915_fail
-    add rx915_pos, 5
-  # rx subrule "ws" subtype=method negate=
-    rx915_cur."!cursor_pos"(rx915_pos)
-    $P10 = rx915_cur."ws"()
-    unless $P10, rx915_fail
-    rx915_pos = $P10."pos"()
-  # rx subrule "quote_EXPR" subtype=capture negate=
-    rx915_cur."!cursor_pos"(rx915_pos)
-    $P10 = rx915_cur."quote_EXPR"()
-    unless $P10, rx915_fail
-    rx915_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
-    rx915_pos = $P10."pos"()
+    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:
+.annotate 'line', 434
+  # 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
-    rx915_cur."!cursor_pass"(rx915_pos, "quote:sym<Q:PIR>")
-    rx915_cur."!cursor_debug"("PASS  ", "quote:sym<Q:PIR>", " at pos=", rx915_pos)
-    .return (rx915_cur)
-  rx915_fail:
+    rx913_cur."!cursor_pass"(rx913_pos, "quote_escape:sym<esc>")
+    rx913_cur."!cursor_debug"("PASS  ", "quote_escape:sym<esc>", " at pos=", rx913_pos)
+    .return (rx913_cur)
+  rx913_restart:
 .annotate 'line', 4
-    (rx915_rep, rx915_pos, $I10, $P10) = rx915_cur."!mark_fail"(0)
-    lt rx915_pos, -1, rx915_done
-    eq rx915_pos, -1, rx915_fail
+    rx913_cur."!cursor_debug"("NEXT ", "quote_escape:sym<esc>")
+  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
-  rx915_done:
-    rx915_cur."!cursor_fail"()
-    rx915_cur."!cursor_debug"("FAIL  ", "quote:sym<Q:PIR>")
-    .return (rx915_cur)
+  rx913_done:
+    rx913_cur."!cursor_fail"()
+    rx913_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<esc>")
+    .return (rx913_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("215_1277356913.9538") :method
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("225_1280467477.44751") :method
 .annotate 'line', 4
-    $P917 = self."!PREFIX__!subrule"("ws", "Q:PIR")
-    new $P918, "ResizablePMCArray"
-    push $P918, $P917
-    .return ($P918)
+    new $P915, "ResizablePMCArray"
+    push $P915, "\\e"
+    .return ($P915)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym</ />"  :subid("216_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "circumfix:sym<( )>"  :subid("226_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx921_tgt
-    .local int rx921_pos
-    .local int rx921_off
-    .local int rx921_eos
-    .local int rx921_rep
-    .local pmc rx921_cur
-    (rx921_cur, rx921_pos, rx921_tgt) = self."!cursor_start"()
-    rx921_cur."!cursor_debug"("START ", "quote:sym</ />")
-    .lex unicode:"$\x{a2}", rx921_cur
+    .local string rx918_tgt
+    .local int rx918_pos
+    .local int rx918_off
+    .local int rx918_eos
+    .local int rx918_rep
+    .local pmc rx918_cur
+    (rx918_cur, rx918_pos, rx918_tgt, $I10) = self."!cursor_start"()
+    rx918_cur."!cursor_caparray"("EXPR")
+    .lex unicode:"$\x{a2}", rx918_cur
     .local pmc match
     .lex "$/", match
-    length rx921_eos, rx921_tgt
-    gt rx921_pos, rx921_eos, rx921_done
-    set rx921_off, 0
-    lt rx921_pos, 2, rx921_start
-    sub rx921_off, rx921_pos, 1
-    substr rx921_tgt, rx921_tgt, rx921_off
-  rx921_start:
+    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
+    rx918_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan925_done
-    goto rxscan925_scan
-  rxscan925_loop:
-    ($P10) = rx921_cur."from"()
+    ne $I10, -1, rxscan922_done
+    goto rxscan922_scan
+  rxscan922_loop:
+    ($P10) = rx918_cur."from"()
     inc $P10
-    set rx921_pos, $P10
-    ge rx921_pos, rx921_eos, rxscan925_done
-  rxscan925_scan:
-    set_addr $I10, rxscan925_loop
-    rx921_cur."!mark_push"(0, rx921_pos, $I10)
-  rxscan925_done:
-.annotate 'line', 424
-  # rx literal  "/"
-    add $I11, rx921_pos, 1
-    gt $I11, rx921_eos, rx921_fail
-    sub $I11, rx921_pos, rx921_off
-    substr $S10, rx921_tgt, $I11, 1
-    ne $S10, "/", rx921_fail
-    add rx921_pos, 1
-.annotate 'line', 425
-  # rx subrule "newpad" subtype=method negate=
-    rx921_cur."!cursor_pos"(rx921_pos)
-    $P10 = rx921_cur."newpad"()
-    unless $P10, rx921_fail
-    rx921_pos = $P10."pos"()
-.annotate 'line', 426
-  # rx reduce name="quote:sym</ />" key="open"
-    rx921_cur."!cursor_pos"(rx921_pos)
-    rx921_cur."!reduce"("quote:sym</ />", "open")
-.annotate 'line', 427
-  # rx subrule "LANG" subtype=capture negate=
-    rx921_cur."!cursor_pos"(rx921_pos)
-    $P10 = rx921_cur."LANG"("Regex", "nibbler")
-    unless $P10, rx921_fail
-    rx921_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("p6regex")
-    rx921_pos = $P10."pos"()
-.annotate 'line', 428
-  # rx literal  "/"
-    add $I11, rx921_pos, 1
-    gt $I11, rx921_eos, rx921_fail
-    sub $I11, rx921_pos, rx921_off
-    substr $S10, rx921_tgt, $I11, 1
-    ne $S10, "/", rx921_fail
-    add rx921_pos, 1
-.annotate 'line', 423
+    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:
+.annotate 'line', 436
+  # rx literal  "("
+    add $I11, rx918_pos, 1
+    gt $I11, rx918_eos, rx918_fail
+    sub $I11, rx918_pos, rx918_off
+    substr $S10, rx918_tgt, $I11, 1
+    ne $S10, "(", rx918_fail
+    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
+    substr $S10, rx918_tgt, $I11, 1
+    ne $S10, ")", rx918_fail
+    add rx918_pos, 1
   # rx pass
-    rx921_cur."!cursor_pass"(rx921_pos, "quote:sym</ />")
-    rx921_cur."!cursor_debug"("PASS  ", "quote:sym</ />", " at pos=", rx921_pos)
-    .return (rx921_cur)
-  rx921_fail:
+    rx918_cur."!cursor_pass"(rx918_pos, "circumfix:sym<( )>")
+    rx918_cur."!cursor_debug"("PASS  ", "circumfix:sym<( )>", " at pos=", rx918_pos)
+    .return (rx918_cur)
+  rx918_restart:
 .annotate 'line', 4
-    (rx921_rep, rx921_pos, $I10, $P10) = rx921_cur."!mark_fail"(0)
-    lt rx921_pos, -1, rx921_done
-    eq rx921_pos, -1, rx921_fail
+    rx918_cur."!cursor_debug"("NEXT ", "circumfix:sym<( )>")
+  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
-  rx921_done:
-    rx921_cur."!cursor_fail"()
-    rx921_cur."!cursor_debug"("FAIL  ", "quote:sym</ />")
-    .return (rx921_cur)
+  rx918_done:
+    rx918_cur."!cursor_fail"()
+    rx918_cur."!cursor_debug"("FAIL  ", "circumfix:sym<( )>")
+    .return (rx918_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym</ />"  :subid("217_1277356913.9538") :method
+.sub "!PREFIX__circumfix:sym<( )>"  :subid("227_1280467477.44751") :method
 .annotate 'line', 4
-    $P923 = self."!PREFIX__!subrule"("newpad", "/")
-    new $P924, "ResizablePMCArray"
-    push $P924, $P923
-    .return ($P924)
+    $P920 = self."!PREFIX__!subrule"("ws", "(")
+    new $P921, "ResizablePMCArray"
+    push $P921, $P920
+    .return ($P921)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<$>"  :subid("218_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "circumfix:sym<[ ]>"  :subid("228_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx927_tgt
-    .local int rx927_pos
-    .local int rx927_off
-    .local int rx927_eos
-    .local int rx927_rep
-    .local pmc rx927_cur
-    (rx927_cur, rx927_pos, rx927_tgt) = self."!cursor_start"()
-    rx927_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
-    .lex unicode:"$\x{a2}", rx927_cur
+    .local string rx926_tgt
+    .local int rx926_pos
+    .local int rx926_off
+    .local int rx926_eos
+    .local int rx926_rep
+    .local pmc rx926_cur
+    (rx926_cur, rx926_pos, rx926_tgt, $I10) = self."!cursor_start"()
+    rx926_cur."!cursor_caparray"("EXPR")
+    .lex unicode:"$\x{a2}", rx926_cur
     .local pmc match
     .lex "$/", match
-    length rx927_eos, rx927_tgt
-    gt rx927_pos, rx927_eos, rx927_done
-    set rx927_off, 0
-    lt rx927_pos, 2, rx927_start
-    sub rx927_off, rx927_pos, 1
-    substr rx927_tgt, rx927_tgt, rx927_off
-  rx927_start:
+    length rx926_eos, rx926_tgt
+    gt rx926_pos, rx926_eos, rx926_done
+    set rx926_off, 0
+    lt rx926_pos, 2, rx926_start
+    sub rx926_off, rx926_pos, 1
+    substr rx926_tgt, rx926_tgt, rx926_off
+  rx926_start:
+    eq $I10, 1, rx926_restart
+    rx926_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
     $I10 = self.'from'()
     ne $I10, -1, rxscan930_done
     goto rxscan930_scan
   rxscan930_loop:
-    ($P10) = rx927_cur."from"()
+    ($P10) = rx926_cur."from"()
     inc $P10
-    set rx927_pos, $P10
-    ge rx927_pos, rx927_eos, rxscan930_done
+    set rx926_pos, $P10
+    ge rx926_pos, rx926_eos, rxscan930_done
   rxscan930_scan:
     set_addr $I10, rxscan930_loop
-    rx927_cur."!mark_push"(0, rx927_pos, $I10)
+    rx926_cur."!mark_push"(0, rx926_pos, $I10)
   rxscan930_done:
-.annotate 'line', 431
-  # rx enumcharlist negate=0 zerowidth
-    ge rx927_pos, rx927_eos, rx927_fail
-    sub $I10, rx927_pos, rx927_off
-    substr $S10, rx927_tgt, $I10, 1
-    index $I11, "$", $S10
-    lt $I11, 0, rx927_fail
-  # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx927_cur."!cursor_pos"(rx927_pos)
-    $P10 = rx927_cur."quotemod_check"("s")
-    unless $P10, rx927_fail
-  # rx subrule "variable" subtype=capture negate=
-    rx927_cur."!cursor_pos"(rx927_pos)
-    $P10 = rx927_cur."variable"()
-    unless $P10, rx927_fail
-    rx927_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("variable")
-    rx927_pos = $P10."pos"()
+.annotate 'line', 437
+  # rx literal  "["
+    add $I11, rx926_pos, 1
+    gt $I11, rx926_eos, rx926_fail
+    sub $I11, rx926_pos, rx926_off
+    substr $S10, rx926_tgt, $I11, 1
+    ne $S10, "[", rx926_fail
+    add rx926_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx926_cur."!cursor_pos"(rx926_pos)
+    $P10 = rx926_cur."ws"()
+    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=
+    rx926_cur."!cursor_pos"(rx926_pos)
+    $P10 = rx926_cur."EXPR"()
+    unless $P10, rx926_fail
+    goto rxsubrule932_pass
+  rxsubrule932_back:
+    $P10 = $P10."!cursor_next"()
+    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_pos = $P10."pos"()
+    set_addr $I10, rxquantr931_done
+    (rx926_rep) = rx926_cur."!mark_commit"($I10)
+  rxquantr931_done:
+  # rx literal  "]"
+    add $I11, rx926_pos, 1
+    gt $I11, rx926_eos, rx926_fail
+    sub $I11, rx926_pos, rx926_off
+    substr $S10, rx926_tgt, $I11, 1
+    ne $S10, "]", rx926_fail
+    add rx926_pos, 1
   # rx pass
-    rx927_cur."!cursor_pass"(rx927_pos, "quote_escape:sym<$>")
-    rx927_cur."!cursor_debug"("PASS  ", "quote_escape:sym<$>", " at pos=", rx927_pos)
-    .return (rx927_cur)
-  rx927_fail:
+    rx926_cur."!cursor_pass"(rx926_pos, "circumfix:sym<[ ]>")
+    rx926_cur."!cursor_debug"("PASS  ", "circumfix:sym<[ ]>", " at pos=", rx926_pos)
+    .return (rx926_cur)
+  rx926_restart:
 .annotate 'line', 4
-    (rx927_rep, rx927_pos, $I10, $P10) = rx927_cur."!mark_fail"(0)
-    lt rx927_pos, -1, rx927_done
-    eq rx927_pos, -1, rx927_fail
+    rx926_cur."!cursor_debug"("NEXT ", "circumfix:sym<[ ]>")
+  rx926_fail:
+    (rx926_rep, rx926_pos, $I10, $P10) = rx926_cur."!mark_fail"(0)
+    lt rx926_pos, -1, rx926_done
+    eq rx926_pos, -1, rx926_fail
     jump $I10
-  rx927_done:
-    rx927_cur."!cursor_fail"()
-    rx927_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<$>")
-    .return (rx927_cur)
+  rx926_done:
+    rx926_cur."!cursor_fail"()
+    rx926_cur."!cursor_debug"("FAIL  ", "circumfix:sym<[ ]>")
+    .return (rx926_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<$>"  :subid("219_1277356913.9538") :method
+.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("229_1280467477.44751") :method
 .annotate 'line', 4
+    $P928 = self."!PREFIX__!subrule"("ws", "[")
     new $P929, "ResizablePMCArray"
-    push $P929, "$"
+    push $P929, $P928
     .return ($P929)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<{ }>"  :subid("220_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "circumfix:sym<ang>"  :subid("230_1280467477.44751") :method :outer("11_1280467477.44751")
 .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
-    (rx932_cur, rx932_pos, rx932_tgt) = self."!cursor_start"()
-    rx932_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
-    .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:
-    $I10 = self.'from'()
-    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', 432
+    .local string rx934_tgt
+    .local int rx934_pos
+    .local int rx934_off
+    .local int rx934_eos
+    .local int rx934_rep
+    .local pmc rx934_cur
+    (rx934_cur, rx934_pos, rx934_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx934_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
+    $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:
+.annotate 'line', 438
   # rx enumcharlist negate=0 zerowidth
-    ge rx932_pos, rx932_eos, rx932_fail
-    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"("c")
-    unless $P10, rx932_fail
-  # rx subrule "block" subtype=capture negate=
-    rx932_cur."!cursor_pos"(rx932_pos)
-    $P10 = rx932_cur."block"()
-    unless $P10, rx932_fail
-    rx932_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("block")
-    rx932_pos = $P10."pos"()
+    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"()
   # rx pass
-    rx932_cur."!cursor_pass"(rx932_pos, "quote_escape:sym<{ }>")
-    rx932_cur."!cursor_debug"("PASS  ", "quote_escape:sym<{ }>", " at pos=", rx932_pos)
-    .return (rx932_cur)
-  rx932_fail:
+    rx934_cur."!cursor_pass"(rx934_pos, "circumfix:sym<ang>")
+    rx934_cur."!cursor_debug"("PASS  ", "circumfix:sym<ang>", " at pos=", rx934_pos)
+    .return (rx934_cur)
+  rx934_restart:
 .annotate 'line', 4
-    (rx932_rep, rx932_pos, $I10, $P10) = rx932_cur."!mark_fail"(0)
-    lt rx932_pos, -1, rx932_done
-    eq rx932_pos, -1, rx932_fail
+    rx934_cur."!cursor_debug"("NEXT ", "circumfix:sym<ang>")
+  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
-  rx932_done:
-    rx932_cur."!cursor_fail"()
-    rx932_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<{ }>")
-    .return (rx932_cur)
+  rx934_done:
+    rx934_cur."!cursor_fail"()
+    rx934_cur."!cursor_debug"("FAIL  ", "circumfix:sym<ang>")
+    .return (rx934_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("221_1277356913.9538") :method
+.sub "!PREFIX__circumfix:sym<ang>"  :subid("231_1280467477.44751") :method
 .annotate 'line', 4
-    new $P934, "ResizablePMCArray"
-    push $P934, "{"
-    .return ($P934)
+    new $P936, "ResizablePMCArray"
+    push $P936, "<"
+    .return ($P936)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<esc>"  :subid("222_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("232_1280467477.44751") :method :outer("11_1280467477.44751")
 .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
-    (rx937_cur, rx937_pos, rx937_tgt) = self."!cursor_start"()
-    rx937_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
-    .lex unicode:"$\x{a2}", rx937_cur
+    .local string rx939_tgt
+    .local int rx939_pos
+    .local int rx939_off
+    .local int rx939_eos
+    .local int rx939_rep
+    .local pmc rx939_cur
+    (rx939_cur, rx939_pos, rx939_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx939_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:
+    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
+    rx939_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan940_done
-    goto rxscan940_scan
-  rxscan940_loop:
-    ($P10) = rx937_cur."from"()
+    ne $I10, -1, rxscan942_done
+    goto rxscan942_scan
+  rxscan942_loop:
+    ($P10) = rx939_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', 433
-  # rx literal  "\\e"
-    add $I11, rx937_pos, 2
-    gt $I11, rx937_eos, rx937_fail
-    sub $I11, rx937_pos, rx937_off
-    substr $S10, rx937_tgt, $I11, 2
-    ne $S10, "\\e", rx937_fail
-    add rx937_pos, 2
-  # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx937_cur."!cursor_pos"(rx937_pos)
-    $P10 = rx937_cur."quotemod_check"("b")
-    unless $P10, rx937_fail
+    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:
+.annotate 'line', 439
+  # 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"()
   # rx pass
-    rx937_cur."!cursor_pass"(rx937_pos, "quote_escape:sym<esc>")
-    rx937_cur."!cursor_debug"("PASS  ", "quote_escape:sym<esc>", " at pos=", rx937_pos)
-    .return (rx937_cur)
-  rx937_fail:
+    rx939_cur."!cursor_pass"(rx939_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
+    rx939_cur."!cursor_debug"("PASS  ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx939_pos)
+    .return (rx939_cur)
+  rx939_restart:
 .annotate 'line', 4
-    (rx937_rep, rx937_pos, $I10, $P10) = rx937_cur."!mark_fail"(0)
-    lt rx937_pos, -1, rx937_done
-    eq rx937_pos, -1, rx937_fail
+    rx939_cur."!cursor_debug"("NEXT ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+  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
-  rx937_done:
-    rx937_cur."!cursor_fail"()
-    rx937_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<esc>")
-    .return (rx937_cur)
+  rx939_done:
+    rx939_cur."!cursor_fail"()
+    rx939_cur."!cursor_debug"("FAIL  ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+    .return (rx939_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("223_1277356913.9538") :method
+.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("233_1280467477.44751") :method
 .annotate 'line', 4
-    new $P939, "ResizablePMCArray"
-    push $P939, "\\e"
-    .return ($P939)
+    new $P941, "ResizablePMCArray"
+    push $P941, unicode:"\x{ab}"
+    .return ($P941)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<( )>"  :subid("224_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "circumfix:sym<{ }>"  :subid("234_1280467477.44751") :method :outer("11_1280467477.44751")
 .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
-    (rx942_cur, rx942_pos, rx942_tgt) = self."!cursor_start"()
-    rx942_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
-    rx942_cur."!cursor_caparray"("EXPR")
-    .lex unicode:"$\x{a2}", rx942_cur
+    .local string rx944_tgt
+    .local int rx944_pos
+    .local int rx944_off
+    .local int rx944_eos
+    .local int rx944_rep
+    .local pmc rx944_cur
+    (rx944_cur, rx944_pos, rx944_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx944_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:
+    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
+    rx944_cur."!cursor_debug"("START ", "circumfix:sym<{ }>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan946_done
-    goto rxscan946_scan
-  rxscan946_loop:
-    ($P10) = rx942_cur."from"()
+    ne $I10, -1, rxscan947_done
+    goto rxscan947_scan
+  rxscan947_loop:
+    ($P10) = rx944_cur."from"()
     inc $P10
-    set rx942_pos, $P10
-    ge rx942_pos, rx942_eos, rxscan946_done
-  rxscan946_scan:
-    set_addr $I10, rxscan946_loop
-    rx942_cur."!mark_push"(0, rx942_pos, $I10)
-  rxscan946_done:
-.annotate 'line', 435
-  # rx literal  "("
-    add $I11, rx942_pos, 1
-    gt $I11, rx942_eos, rx942_fail
-    sub $I11, rx942_pos, rx942_off
-    substr $S10, rx942_tgt, $I11, 1
-    ne $S10, "(", rx942_fail
-    add rx942_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx942_cur."!cursor_pos"(rx942_pos)
-    $P10 = rx942_cur."ws"()
-    unless $P10, rx942_fail
-    rx942_pos = $P10."pos"()
-  # rx rxquantr947 ** 0..1
-    set_addr $I948, rxquantr947_done
-    rx942_cur."!mark_push"(0, rx942_pos, $I948)
-  rxquantr947_loop:
-  # rx subrule "EXPR" subtype=capture negate=
-    rx942_cur."!cursor_pos"(rx942_pos)
-    $P10 = rx942_cur."EXPR"()
-    unless $P10, rx942_fail
-    rx942_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("EXPR")
-    rx942_pos = $P10."pos"()
-    (rx942_rep) = rx942_cur."!mark_commit"($I948)
-  rxquantr947_done:
-  # rx literal  ")"
-    add $I11, rx942_pos, 1
-    gt $I11, rx942_eos, rx942_fail
-    sub $I11, rx942_pos, rx942_off
-    substr $S10, rx942_tgt, $I11, 1
-    ne $S10, ")", rx942_fail
-    add rx942_pos, 1
+    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:
+.annotate 'line', 440
+  # 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
-    rx942_cur."!cursor_pass"(rx942_pos, "circumfix:sym<( )>")
-    rx942_cur."!cursor_debug"("PASS  ", "circumfix:sym<( )>", " at pos=", rx942_pos)
-    .return (rx942_cur)
-  rx942_fail:
+    rx944_cur."!cursor_pass"(rx944_pos, "circumfix:sym<{ }>")
+    rx944_cur."!cursor_debug"("PASS  ", "circumfix:sym<{ }>", " at pos=", rx944_pos)
+    .return (rx944_cur)
+  rx944_restart:
 .annotate 'line', 4
-    (rx942_rep, rx942_pos, $I10, $P10) = rx942_cur."!mark_fail"(0)
-    lt rx942_pos, -1, rx942_done
-    eq rx942_pos, -1, rx942_fail
+    rx944_cur."!cursor_debug"("NEXT ", "circumfix:sym<{ }>")
+  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
-  rx942_done:
-    rx942_cur."!cursor_fail"()
-    rx942_cur."!cursor_debug"("FAIL  ", "circumfix:sym<( )>")
-    .return (rx942_cur)
+  rx944_done:
+    rx944_cur."!cursor_fail"()
+    rx944_cur."!cursor_debug"("FAIL  ", "circumfix:sym<{ }>")
+    .return (rx944_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<( )>"  :subid("225_1277356913.9538") :method
+.sub "!PREFIX__circumfix:sym<{ }>"  :subid("235_1280467477.44751") :method
 .annotate 'line', 4
-    $P944 = self."!PREFIX__!subrule"("ws", "(")
-    new $P945, "ResizablePMCArray"
-    push $P945, $P944
-    .return ($P945)
+    new $P946, "ResizablePMCArray"
+    push $P946, "{"
+    .return ($P946)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<[ ]>"  :subid("226_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "circumfix:sym<sigil>"  :subid("236_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
-    .local string rx950_tgt
-    .local int rx950_pos
-    .local int rx950_off
-    .local int rx950_eos
-    .local int rx950_rep
-    .local pmc rx950_cur
-    (rx950_cur, rx950_pos, rx950_tgt) = self."!cursor_start"()
-    rx950_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
-    rx950_cur."!cursor_caparray"("EXPR")
-    .lex unicode:"$\x{a2}", rx950_cur
+    .local string rx949_tgt
+    .local int rx949_pos
+    .local int rx949_off
+    .local int rx949_eos
+    .local int rx949_rep
+    .local pmc rx949_cur
+    (rx949_cur, rx949_pos, rx949_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx949_cur
     .local pmc match
     .lex "$/", match
-    length rx950_eos, rx950_tgt
-    gt rx950_pos, rx950_eos, rx950_done
-    set rx950_off, 0
-    lt rx950_pos, 2, rx950_start
-    sub rx950_off, rx950_pos, 1
-    substr rx950_tgt, rx950_tgt, rx950_off
-  rx950_start:
+    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
+    rx949_cur."!cursor_debug"("START ", "circumfix:sym<sigil>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan954_done
-    goto rxscan954_scan
-  rxscan954_loop:
-    ($P10) = rx950_cur."from"()
+    ne $I10, -1, rxscan953_done
+    goto rxscan953_scan
+  rxscan953_loop:
+    ($P10) = rx949_cur."from"()
     inc $P10
-    set rx950_pos, $P10
-    ge rx950_pos, rx950_eos, rxscan954_done
-  rxscan954_scan:
-    set_addr $I10, rxscan954_loop
-    rx950_cur."!mark_push"(0, rx950_pos, $I10)
-  rxscan954_done:
-.annotate 'line', 436
-  # rx literal  "["
-    add $I11, rx950_pos, 1
-    gt $I11, rx950_eos, rx950_fail
-    sub $I11, rx950_pos, rx950_off
-    substr $S10, rx950_tgt, $I11, 1
-    ne $S10, "[", rx950_fail
-    add rx950_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx950_cur."!cursor_pos"(rx950_pos)
-    $P10 = rx950_cur."ws"()
-    unless $P10, rx950_fail
-    rx950_pos = $P10."pos"()
-  # rx rxquantr955 ** 0..1
-    set_addr $I956, rxquantr955_done
-    rx950_cur."!mark_push"(0, rx950_pos, $I956)
-  rxquantr955_loop:
-  # rx subrule "EXPR" subtype=capture negate=
-    rx950_cur."!cursor_pos"(rx950_pos)
-    $P10 = rx950_cur."EXPR"()
-    unless $P10, rx950_fail
-    rx950_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("EXPR")
-    rx950_pos = $P10."pos"()
-    (rx950_rep) = rx950_cur."!mark_commit"($I956)
-  rxquantr955_done:
-  # rx literal  "]"
-    add $I11, rx950_pos, 1
-    gt $I11, rx950_eos, rx950_fail
-    sub $I11, rx950_pos, rx950_off
-    substr $S10, rx950_tgt, $I11, 1
-    ne $S10, "]", rx950_fail
-    add rx950_pos, 1
+    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:
+.annotate 'line', 441
+  # 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"()
+  # rx literal  "("
+    add $I11, rx949_pos, 1
+    gt $I11, rx949_eos, rx949_fail
+    sub $I11, rx949_pos, rx949_off
+    substr $S10, rx949_tgt, $I11, 1
+    ne $S10, "(", rx949_fail
+    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
+    substr $S10, rx949_tgt, $I11, 1
+    ne $S10, ")", 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:
+    $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
-    rx950_cur."!cursor_pass"(rx950_pos, "circumfix:sym<[ ]>")
-    rx950_cur."!cursor_debug"("PASS  ", "circumfix:sym<[ ]>", " at pos=", rx950_pos)
-    .return (rx950_cur)
-  rx950_fail:
+    rx949_cur."!cursor_pass"(rx949_pos, "circumfix:sym<sigil>")
+    rx949_cur."!cursor_debug"("PASS  ", "circumfix:sym<sigil>", " at pos=", rx949_pos)
+    .return (rx949_cur)
+  rx949_restart:
 .annotate 'line', 4
-    (rx950_rep, rx950_pos, $I10, $P10) = rx950_cur."!mark_fail"(0)
-    lt rx950_pos, -1, rx950_done
-    eq rx950_pos, -1, rx950_fail
+    rx949_cur."!cursor_debug"("NEXT ", "circumfix:sym<sigil>")
+  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
-  rx950_done:
-    rx950_cur."!cursor_fail"()
-    rx950_cur."!cursor_debug"("FAIL  ", "circumfix:sym<[ ]>")
-    .return (rx950_cur)
+  rx949_done:
+    rx949_cur."!cursor_fail"()
+    rx949_cur."!cursor_debug"("FAIL  ", "circumfix:sym<sigil>")
+    .return (rx949_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("227_1277356913.9538") :method
+.sub "!PREFIX__circumfix:sym<sigil>"  :subid("237_1280467477.44751") :method
 .annotate 'line', 4
-    $P952 = self."!PREFIX__!subrule"("ws", "[")
-    new $P953, "ResizablePMCArray"
-    push $P953, $P952
-    .return ($P953)
+    $P951 = self."!PREFIX__!subrule"("sigil", "")
+    new $P952, "ResizablePMCArray"
+    push $P952, $P951
+    .return ($P952)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<ang>"  :subid("228_1277356913.9538") :method :outer("11_1277356913.9538")
+.sub "semilist"  :subid("238_1280467477.44751") :method :outer("11_1280467477.44751")
 .annotate 'line', 4
     .local string rx958_tgt
     .local int rx958_pos
@@ -11419,8 +12326,7 @@
     .local int rx958_eos
     .local int rx958_rep
     .local pmc rx958_cur
-    (rx958_cur, rx958_pos, rx958_tgt) = self."!cursor_start"()
-    rx958_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
+    (rx958_cur, rx958_pos, rx958_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx958_cur
     .local pmc match
     .lex "$/", match
@@ -11431,535 +12337,607 @@
     sub rx958_off, rx958_pos, 1
     substr rx958_tgt, rx958_tgt, rx958_off
   rx958_start:
+    eq $I10, 1, rx958_restart
+    rx958_cur."!cursor_debug"("START ", "semilist")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan961_done
-    goto rxscan961_scan
-  rxscan961_loop:
+    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, rxscan961_done
-  rxscan961_scan:
-    set_addr $I10, rxscan961_loop
+    ge rx958_pos, rx958_eos, rxscan962_done
+  rxscan962_scan:
+    set_addr $I10, rxscan962_loop
     rx958_cur."!mark_push"(0, rx958_pos, $I10)
-  rxscan961_done:
-.annotate 'line', 437
-  # rx enumcharlist negate=0 zerowidth
-    ge rx958_pos, rx958_eos, rx958_fail
-    sub $I10, rx958_pos, rx958_off
-    substr $S10, rx958_tgt, $I10, 1
-    index $I11, "<", $S10
-    lt $I11, 0, rx958_fail
-  # rx subrule "quote_EXPR" subtype=capture negate=
+  rxscan962_done:
+.annotate 'line', 443
+  # 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."quote_EXPR"(":q", ":w")
+    $P10 = rx958_cur."statement"()
     unless $P10, rx958_fail
     rx958_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
+    $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, "circumfix:sym<ang>")
-    rx958_cur."!cursor_debug"("PASS  ", "circumfix:sym<ang>", " at pos=", rx958_pos)
+    rx958_cur."!cursor_pass"(rx958_pos, "semilist")
+    rx958_cur."!cursor_debug"("PASS  ", "semilist", " at pos=", rx958_pos)
     .return (rx958_cur)
-  rx958_fail:
+  rx958_restart:
 .annotate 'line', 4
+    rx958_cur."!cursor_debug"("NEXT ", "semilist")
+  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"()
-    rx958_cur."!cursor_debug"("FAIL  ", "circumfix:sym<ang>")
+    rx958_cur."!cursor_debug"("FAIL  ", "semilist")
     .return (rx958_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<ang>"  :subid("229_1277356913.9538") :method
+.sub "!PREFIX__semilist"  :subid("239_1280467477.44751") :method
 .annotate 'line', 4
-    new $P960, "ResizablePMCArray"
-    push $P960, "<"
-    .return ($P960)
+    $P960 = self."!PREFIX__!subrule"("ws", "")
+    new $P961, "ResizablePMCArray"
+    push $P961, $P960
+    .return ($P961)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("230_1277356913.9538") :method :outer("11_1277356913.9538")
-.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
-    (rx963_cur, rx963_pos, rx963_tgt) = self."!cursor_start"()
-    rx963_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
-    .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:
-    $I10 = self.'from'()
-    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', 438
-  # rx enumcharlist negate=0 zerowidth
-    ge rx963_pos, rx963_eos, rx963_fail
-    sub $I10, rx963_pos, rx963_off
-    substr $S10, rx963_tgt, $I10, 1
-    index $I11, unicode:"\x{ab}", $S10
-    lt $I11, 0, rx963_fail
-  # rx subrule "quote_EXPR" subtype=capture negate=
-    rx963_cur."!cursor_pos"(rx963_pos)
-    $P10 = rx963_cur."quote_EXPR"(":qq", ":w")
-    unless $P10, rx963_fail
-    rx963_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
-    rx963_pos = $P10."pos"()
+.sub "infixish"  :subid("240_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx966_tgt
+    .local int rx966_pos
+    .local int rx966_off
+    .local int rx966_eos
+    .local int rx966_rep
+    .local pmc rx966_cur
+    (rx966_cur, rx966_pos, rx966_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx966_cur."!cursor_debug"("START ", "infixish")
+    $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:
+.annotate 'line', 466
+  # 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"()
   # rx pass
-    rx963_cur."!cursor_pass"(rx963_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
-    rx963_cur."!cursor_debug"("PASS  ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx963_pos)
-    .return (rx963_cur)
-  rx963_fail:
-.annotate 'line', 4
-    (rx963_rep, rx963_pos, $I10, $P10) = rx963_cur."!mark_fail"(0)
-    lt rx963_pos, -1, rx963_done
-    eq rx963_pos, -1, rx963_fail
+    rx966_cur."!cursor_pass"(rx966_pos, "infixish")
+    rx966_cur."!cursor_debug"("PASS  ", "infixish", " at pos=", rx966_pos)
+    .return (rx966_cur)
+  rx966_restart:
+.annotate 'line', 447
+    rx966_cur."!cursor_debug"("NEXT ", "infixish")
+  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
-  rx963_done:
-    rx963_cur."!cursor_fail"()
-    rx963_cur."!cursor_debug"("FAIL  ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
-    .return (rx963_cur)
+  rx966_done:
+    rx966_cur."!cursor_fail"()
+    rx966_cur."!cursor_debug"("FAIL  ", "infixish")
+    .return (rx966_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("231_1277356913.9538") :method
-.annotate 'line', 4
-    new $P965, "ResizablePMCArray"
-    push $P965, unicode:"\x{ab}"
-    .return ($P965)
+.sub "!PREFIX__infixish"  :subid("241_1280467477.44751") :method
+.annotate 'line', 447
+    new $P968, "ResizablePMCArray"
+    push $P968, ""
+    .return ($P968)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<{ }>"  :subid("232_1277356913.9538") :method :outer("11_1277356913.9538")
-.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
-    (rx968_cur, rx968_pos, rx968_tgt) = self."!cursor_start"()
-    rx968_cur."!cursor_debug"("START ", "circumfix:sym<{ }>")
-    .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:
-    $I10 = self.'from'()
-    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', 439
-  # rx enumcharlist negate=0 zerowidth
-    ge rx968_pos, rx968_eos, rx968_fail
-    sub $I10, rx968_pos, rx968_off
-    substr $S10, rx968_tgt, $I10, 1
-    index $I11, "{", $S10
-    lt $I11, 0, rx968_fail
-  # rx subrule "pblock" subtype=capture negate=
-    rx968_cur."!cursor_pos"(rx968_pos)
-    $P10 = rx968_cur."pblock"()
-    unless $P10, rx968_fail
-    rx968_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("pblock")
-    rx968_pos = $P10."pos"()
-  # rx pass
-    rx968_cur."!cursor_pass"(rx968_pos, "circumfix:sym<{ }>")
-    rx968_cur."!cursor_debug"("PASS  ", "circumfix:sym<{ }>", " at pos=", rx968_pos)
-    .return (rx968_cur)
-  rx968_fail:
-.annotate 'line', 4
-    (rx968_rep, rx968_pos, $I10, $P10) = rx968_cur."!mark_fail"(0)
-    lt rx968_pos, -1, rx968_done
-    eq rx968_pos, -1, rx968_fail
+.sub "infixstopper"  :subid("242_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx971_tgt
+    .local int rx971_pos
+    .local int rx971_off
+    .local int rx971_eos
+    .local int rx971_rep
+    .local pmc rx971_cur
+    (rx971_cur, rx971_pos, rx971_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx971_cur."!cursor_debug"("START ", "infixstopper")
+    $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:
+.annotate 'line', 467
+  # 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")
+    rx971_cur."!cursor_debug"("PASS  ", "infixstopper", " at pos=", rx971_pos)
+    .return (rx971_cur)
+  rx971_restart:
+.annotate 'line', 447
+    rx971_cur."!cursor_debug"("NEXT ", "infixstopper")
+  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
-  rx968_done:
-    rx968_cur."!cursor_fail"()
-    rx968_cur."!cursor_debug"("FAIL  ", "circumfix:sym<{ }>")
-    .return (rx968_cur)
+  rx971_done:
+    rx971_cur."!cursor_fail"()
+    rx971_cur."!cursor_debug"("FAIL  ", "infixstopper")
+    .return (rx971_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<{ }>"  :subid("233_1277356913.9538") :method
-.annotate 'line', 4
-    new $P970, "ResizablePMCArray"
-    push $P970, "{"
-    .return ($P970)
+.sub "!PREFIX__infixstopper"  :subid("243_1280467477.44751") :method
+.annotate 'line', 447
+    new $P973, "ResizablePMCArray"
+    push $P973, ""
+    .return ($P973)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<sigil>"  :subid("234_1277356913.9538") :method :outer("11_1277356913.9538")
-.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
-    (rx973_cur, rx973_pos, rx973_tgt) = self."!cursor_start"()
-    rx973_cur."!cursor_debug"("START ", "circumfix:sym<sigil>")
-    .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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan977_done
-    goto rxscan977_scan
-  rxscan977_loop:
-    ($P10) = rx973_cur."from"()
-    inc $P10
-    set rx973_pos, $P10
-    ge rx973_pos, rx973_eos, rxscan977_done
-  rxscan977_scan:
-    set_addr $I10, rxscan977_loop
-    rx973_cur."!mark_push"(0, rx973_pos, $I10)
-  rxscan977_done:
-.annotate 'line', 440
-  # rx subrule "sigil" subtype=capture negate=
-    rx973_cur."!cursor_pos"(rx973_pos)
-    $P10 = rx973_cur."sigil"()
-    unless $P10, rx973_fail
-    rx973_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sigil")
-    rx973_pos = $P10."pos"()
-  # rx literal  "("
-    add $I11, rx973_pos, 1
-    gt $I11, rx973_eos, rx973_fail
-    sub $I11, rx973_pos, rx973_off
-    substr $S10, rx973_tgt, $I11, 1
-    ne $S10, "(", rx973_fail
-    add rx973_pos, 1
-  # rx subrule "semilist" subtype=capture negate=
-    rx973_cur."!cursor_pos"(rx973_pos)
-    $P10 = rx973_cur."semilist"()
-    unless $P10, rx973_fail
-    rx973_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("semilist")
-    rx973_pos = $P10."pos"()
-  alt978_0:
-    set_addr $I10, alt978_1
-    rx973_cur."!mark_push"(0, rx973_pos, $I10)
-  # rx literal  ")"
-    add $I11, rx973_pos, 1
-    gt $I11, rx973_eos, rx973_fail
-    sub $I11, rx973_pos, rx973_off
-    substr $S10, rx973_tgt, $I11, 1
-    ne $S10, ")", rx973_fail
-    add rx973_pos, 1
-    goto alt978_end
-  alt978_1:
-  # rx subrule "FAILGOAL" subtype=method negate=
-    rx973_cur."!cursor_pos"(rx973_pos)
-    $P10 = rx973_cur."FAILGOAL"("')'")
-    unless $P10, rx973_fail
-    rx973_pos = $P10."pos"()
-  alt978_end:
+.sub "postcircumfix:sym<[ ]>"  :subid("244_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx976_tgt
+    .local int rx976_pos
+    .local int rx976_off
+    .local int rx976_eos
+    .local int rx976_rep
+    .local pmc rx976_cur
+    (rx976_cur, rx976_pos, rx976_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx976_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
+    $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:
+.annotate 'line', 470
+  # rx literal  "["
+    add $I11, rx976_pos, 1
+    gt $I11, rx976_eos, rx976_fail
+    sub $I11, rx976_pos, rx976_off
+    substr $S10, rx976_tgt, $I11, 1
+    ne $S10, "[", rx976_fail
+    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
+    substr $S10, rx976_tgt, $I11, 1
+    ne $S10, "]", rx976_fail
+    add rx976_pos, 1
+.annotate 'line', 471
+  # 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"()
+.annotate 'line', 469
   # rx pass
-    rx973_cur."!cursor_pass"(rx973_pos, "circumfix:sym<sigil>")
-    rx973_cur."!cursor_debug"("PASS  ", "circumfix:sym<sigil>", " at pos=", rx973_pos)
-    .return (rx973_cur)
-  rx973_fail:
-.annotate 'line', 4
-    (rx973_rep, rx973_pos, $I10, $P10) = rx973_cur."!mark_fail"(0)
-    lt rx973_pos, -1, rx973_done
-    eq rx973_pos, -1, rx973_fail
+    rx976_cur."!cursor_pass"(rx976_pos, "postcircumfix:sym<[ ]>")
+    rx976_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<[ ]>", " at pos=", rx976_pos)
+    .return (rx976_cur)
+  rx976_restart:
+.annotate 'line', 447
+    rx976_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<[ ]>")
+  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
-  rx973_done:
-    rx973_cur."!cursor_fail"()
-    rx973_cur."!cursor_debug"("FAIL  ", "circumfix:sym<sigil>")
-    .return (rx973_cur)
+  rx976_done:
+    rx976_cur."!cursor_fail"()
+    rx976_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<[ ]>")
+    .return (rx976_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<sigil>"  :subid("235_1277356913.9538") :method
-.annotate 'line', 4
-    $P975 = self."!PREFIX__!subrule"("sigil", "")
-    new $P976, "ResizablePMCArray"
-    push $P976, $P975
-    .return ($P976)
+.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("245_1280467477.44751") :method
+.annotate 'line', 447
+    $P978 = self."!PREFIX__!subrule"("ws", "[")
+    new $P979, "ResizablePMCArray"
+    push $P979, $P978
+    .return ($P979)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "semilist"  :subid("236_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 4
-    .local string rx981_tgt
-    .local int rx981_pos
-    .local int rx981_off
-    .local int rx981_eos
-    .local int rx981_rep
-    .local pmc rx981_cur
-    (rx981_cur, rx981_pos, rx981_tgt) = self."!cursor_start"()
-    rx981_cur."!cursor_debug"("START ", "semilist")
-    .lex unicode:"$\x{a2}", rx981_cur
-    .local pmc match
-    .lex "$/", match
-    length rx981_eos, rx981_tgt
-    gt rx981_pos, rx981_eos, rx981_done
-    set rx981_off, 0
-    lt rx981_pos, 2, rx981_start
-    sub rx981_off, rx981_pos, 1
-    substr rx981_tgt, rx981_tgt, rx981_off
-  rx981_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan985_done
-    goto rxscan985_scan
-  rxscan985_loop:
-    ($P10) = rx981_cur."from"()
-    inc $P10
-    set rx981_pos, $P10
-    ge rx981_pos, rx981_eos, rxscan985_done
-  rxscan985_scan:
-    set_addr $I10, rxscan985_loop
-    rx981_cur."!mark_push"(0, rx981_pos, $I10)
-  rxscan985_done:
-.annotate 'line', 442
-  # rx subrule "ws" subtype=method negate=
-    rx981_cur."!cursor_pos"(rx981_pos)
-    $P10 = rx981_cur."ws"()
-    unless $P10, rx981_fail
-    rx981_pos = $P10."pos"()
-  # rx subrule "statement" subtype=capture negate=
-    rx981_cur."!cursor_pos"(rx981_pos)
-    $P10 = rx981_cur."statement"()
-    unless $P10, rx981_fail
-    rx981_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("statement")
-    rx981_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx981_cur."!cursor_pos"(rx981_pos)
-    $P10 = rx981_cur."ws"()
-    unless $P10, rx981_fail
-    rx981_pos = $P10."pos"()
+.sub "postcircumfix:sym<{ }>"  :subid("246_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx982_tgt
+    .local int rx982_pos
+    .local int rx982_off
+    .local int rx982_eos
+    .local int rx982_rep
+    .local pmc rx982_cur
+    (rx982_cur, rx982_pos, rx982_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx982_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
+    $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:
+.annotate 'line', 475
+  # rx literal  "{"
+    add $I11, rx982_pos, 1
+    gt $I11, rx982_eos, rx982_fail
+    sub $I11, rx982_pos, rx982_off
+    substr $S10, rx982_tgt, $I11, 1
+    ne $S10, "{", rx982_fail
+    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
+    substr $S10, rx982_tgt, $I11, 1
+    ne $S10, "}", rx982_fail
+    add rx982_pos, 1
+.annotate 'line', 476
+  # 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"()
+.annotate 'line', 474
   # rx pass
-    rx981_cur."!cursor_pass"(rx981_pos, "semilist")
-    rx981_cur."!cursor_debug"("PASS  ", "semilist", " at pos=", rx981_pos)
-    .return (rx981_cur)
-  rx981_fail:
-.annotate 'line', 4
-    (rx981_rep, rx981_pos, $I10, $P10) = rx981_cur."!mark_fail"(0)
-    lt rx981_pos, -1, rx981_done
-    eq rx981_pos, -1, rx981_fail
+    rx982_cur."!cursor_pass"(rx982_pos, "postcircumfix:sym<{ }>")
+    rx982_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<{ }>", " at pos=", rx982_pos)
+    .return (rx982_cur)
+  rx982_restart:
+.annotate 'line', 447
+    rx982_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<{ }>")
+  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
-  rx981_done:
-    rx981_cur."!cursor_fail"()
-    rx981_cur."!cursor_debug"("FAIL  ", "semilist")
-    .return (rx981_cur)
+  rx982_done:
+    rx982_cur."!cursor_fail"()
+    rx982_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<{ }>")
+    .return (rx982_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__semilist"  :subid("237_1277356913.9538") :method
-.annotate 'line', 4
-    $P983 = self."!PREFIX__!subrule"("ws", "")
-    new $P984, "ResizablePMCArray"
-    push $P984, $P983
-    .return ($P984)
+.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("247_1280467477.44751") :method
+.annotate 'line', 447
+    $P984 = self."!PREFIX__!subrule"("ws", "{")
+    new $P985, "ResizablePMCArray"
+    push $P985, $P984
+    .return ($P985)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixish"  :subid("238_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx989_tgt
-    .local int rx989_pos
-    .local int rx989_off
-    .local int rx989_eos
-    .local int rx989_rep
-    .local pmc rx989_cur
-    (rx989_cur, rx989_pos, rx989_tgt) = self."!cursor_start"()
-    rx989_cur."!cursor_debug"("START ", "infixish")
-    .lex unicode:"$\x{a2}", rx989_cur
-    .local pmc match
-    .lex "$/", match
-    length rx989_eos, rx989_tgt
-    gt rx989_pos, rx989_eos, rx989_done
-    set rx989_off, 0
-    lt rx989_pos, 2, rx989_start
-    sub rx989_off, rx989_pos, 1
-    substr rx989_tgt, rx989_tgt, rx989_off
-  rx989_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan992_done
-    goto rxscan992_scan
-  rxscan992_loop:
-    ($P10) = rx989_cur."from"()
-    inc $P10
-    set rx989_pos, $P10
-    ge rx989_pos, rx989_eos, rxscan992_done
-  rxscan992_scan:
-    set_addr $I10, rxscan992_loop
-    rx989_cur."!mark_push"(0, rx989_pos, $I10)
-  rxscan992_done:
-.annotate 'line', 465
-  # rx subrule "infixstopper" subtype=zerowidth negate=1
-    rx989_cur."!cursor_pos"(rx989_pos)
-    $P10 = rx989_cur."infixstopper"()
-    if $P10, rx989_fail
-  # rx subrule "infix" subtype=capture negate=
-    rx989_cur."!cursor_pos"(rx989_pos)
-    $P10 = rx989_cur."infix"()
-    unless $P10, rx989_fail
-    rx989_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("OPER=infix")
-    rx989_pos = $P10."pos"()
+.sub "postcircumfix:sym<ang>"  :subid("248_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx988_tgt
+    .local int rx988_pos
+    .local int rx988_off
+    .local int rx988_eos
+    .local int rx988_rep
+    .local pmc rx988_cur
+    (rx988_cur, rx988_pos, rx988_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx988_cur."!cursor_debug"("START ", "postcircumfix:sym<ang>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan991_done
+    goto rxscan991_scan
+  rxscan991_loop:
+    ($P10) = rx988_cur."from"()
+    inc $P10
+    set rx988_pos, $P10
+    ge rx988_pos, rx988_eos, rxscan991_done
+  rxscan991_scan:
+    set_addr $I10, rxscan991_loop
+    rx988_cur."!mark_push"(0, rx988_pos, $I10)
+  rxscan991_done:
+.annotate 'line', 480
+  # 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"()
+.annotate 'line', 481
+  # 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"()
+.annotate 'line', 479
   # rx pass
-    rx989_cur."!cursor_pass"(rx989_pos, "infixish")
-    rx989_cur."!cursor_debug"("PASS  ", "infixish", " at pos=", rx989_pos)
-    .return (rx989_cur)
-  rx989_fail:
-.annotate 'line', 446
-    (rx989_rep, rx989_pos, $I10, $P10) = rx989_cur."!mark_fail"(0)
-    lt rx989_pos, -1, rx989_done
-    eq rx989_pos, -1, rx989_fail
+    rx988_cur."!cursor_pass"(rx988_pos, "postcircumfix:sym<ang>")
+    rx988_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<ang>", " at pos=", rx988_pos)
+    .return (rx988_cur)
+  rx988_restart:
+.annotate 'line', 447
+    rx988_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<ang>")
+  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
-  rx989_done:
-    rx989_cur."!cursor_fail"()
-    rx989_cur."!cursor_debug"("FAIL  ", "infixish")
-    .return (rx989_cur)
+  rx988_done:
+    rx988_cur."!cursor_fail"()
+    rx988_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<ang>")
+    .return (rx988_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("239_1277356913.9538") :method
-.annotate 'line', 446
-    new $P991, "ResizablePMCArray"
-    push $P991, ""
-    .return ($P991)
+.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("249_1280467477.44751") :method
+.annotate 'line', 447
+    new $P990, "ResizablePMCArray"
+    push $P990, "<"
+    .return ($P990)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixstopper"  :subid("240_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx994_tgt
-    .local int rx994_pos
-    .local int rx994_off
-    .local int rx994_eos
-    .local int rx994_rep
-    .local pmc rx994_cur
-    (rx994_cur, rx994_pos, rx994_tgt) = self."!cursor_start"()
-    rx994_cur."!cursor_debug"("START ", "infixstopper")
-    .lex unicode:"$\x{a2}", rx994_cur
-    .local pmc match
-    .lex "$/", match
-    length rx994_eos, rx994_tgt
-    gt rx994_pos, rx994_eos, rx994_done
-    set rx994_off, 0
-    lt rx994_pos, 2, rx994_start
-    sub rx994_off, rx994_pos, 1
-    substr rx994_tgt, rx994_tgt, rx994_off
-  rx994_start:
+.sub "postcircumfix:sym<( )>"  :subid("250_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx993_tgt
+    .local int rx993_pos
+    .local int rx993_off
+    .local int rx993_eos
+    .local int rx993_rep
+    .local pmc rx993_cur
+    (rx993_cur, rx993_pos, rx993_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx993_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>")
     $I10 = self.'from'()
     ne $I10, -1, rxscan997_done
     goto rxscan997_scan
   rxscan997_loop:
-    ($P10) = rx994_cur."from"()
+    ($P10) = rx993_cur."from"()
     inc $P10
-    set rx994_pos, $P10
-    ge rx994_pos, rx994_eos, rxscan997_done
+    set rx993_pos, $P10
+    ge rx993_pos, rx993_eos, rxscan997_done
   rxscan997_scan:
     set_addr $I10, rxscan997_loop
-    rx994_cur."!mark_push"(0, rx994_pos, $I10)
+    rx993_cur."!mark_push"(0, rx993_pos, $I10)
   rxscan997_done:
-.annotate 'line', 466
-  # rx subrule "lambda" subtype=zerowidth negate=
-    rx994_cur."!cursor_pos"(rx994_pos)
-    $P10 = rx994_cur."lambda"()
-    unless $P10, rx994_fail
-  # rx pass
-    rx994_cur."!cursor_pass"(rx994_pos, "infixstopper")
-    rx994_cur."!cursor_debug"("PASS  ", "infixstopper", " at pos=", rx994_pos)
-    .return (rx994_cur)
-  rx994_fail:
-.annotate 'line', 446
-    (rx994_rep, rx994_pos, $I10, $P10) = rx994_cur."!mark_fail"(0)
-    lt rx994_pos, -1, rx994_done
-    eq rx994_pos, -1, rx994_fail
+.annotate 'line', 485
+  # rx literal  "("
+    add $I11, rx993_pos, 1
+    gt $I11, rx993_eos, rx993_fail
+    sub $I11, rx993_pos, rx993_off
+    substr $S10, rx993_tgt, $I11, 1
+    ne $S10, "(", rx993_fail
+    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
+    substr $S10, rx993_tgt, $I11, 1
+    ne $S10, ")", rx993_fail
+    add rx993_pos, 1
+.annotate 'line', 486
+  # 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"()
+.annotate 'line', 484
+  # rx pass
+    rx993_cur."!cursor_pass"(rx993_pos, "postcircumfix:sym<( )>")
+    rx993_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<( )>", " at pos=", rx993_pos)
+    .return (rx993_cur)
+  rx993_restart:
+.annotate 'line', 447
+    rx993_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<( )>")
+  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
-  rx994_done:
-    rx994_cur."!cursor_fail"()
-    rx994_cur."!cursor_debug"("FAIL  ", "infixstopper")
-    .return (rx994_cur)
+  rx993_done:
+    rx993_cur."!cursor_fail"()
+    rx993_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<( )>")
+    .return (rx993_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixstopper"  :subid("241_1277356913.9538") :method
-.annotate 'line', 446
+.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("251_1280467477.44751") :method
+.annotate 'line', 447
+    $P995 = self."!PREFIX__!subrule"("ws", "(")
     new $P996, "ResizablePMCArray"
-    push $P996, ""
+    push $P996, $P995
     .return ($P996)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<[ ]>"  :subid("242_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
+.sub "postfix:sym<.>"  :subid("252_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
     .local string rx999_tgt
     .local int rx999_pos
     .local int rx999_off
     .local int rx999_eos
     .local int rx999_rep
     .local pmc rx999_cur
-    (rx999_cur, rx999_pos, rx999_tgt) = self."!cursor_start"()
-    rx999_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
+    (rx999_cur, rx999_pos, rx999_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx999_cur
     .local pmc match
     .lex "$/", match
@@ -11970,6 +12948,8 @@
     sub rx999_off, rx999_pos, 1
     substr rx999_tgt, rx999_tgt, rx999_off
   rx999_start:
+    eq $I10, 1, rx999_restart
+    rx999_cur."!cursor_debug"("START ", "postfix:sym<.>")
     $I10 = self.'from'()
     ne $I10, -1, rxscan1003_done
     goto rxscan1003_scan
@@ -11982,34 +12962,14 @@
     set_addr $I10, rxscan1003_loop
     rx999_cur."!mark_push"(0, rx999_pos, $I10)
   rxscan1003_done:
-.annotate 'line', 469
-  # rx literal  "["
-    add $I11, rx999_pos, 1
-    gt $I11, rx999_eos, rx999_fail
-    sub $I11, rx999_pos, rx999_off
-    substr $S10, rx999_tgt, $I11, 1
-    ne $S10, "[", rx999_fail
-    add rx999_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx999_cur."!cursor_pos"(rx999_pos)
-    $P10 = rx999_cur."ws"()
-    unless $P10, rx999_fail
-    rx999_pos = $P10."pos"()
-  # rx subrule "EXPR" subtype=capture negate=
+.annotate 'line', 489
+  # rx subrule "dotty" subtype=capture negate=
     rx999_cur."!cursor_pos"(rx999_pos)
-    $P10 = rx999_cur."EXPR"()
+    $P10 = rx999_cur."dotty"()
     unless $P10, rx999_fail
     rx999_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("EXPR")
+    $P10."!cursor_names"("dotty")
     rx999_pos = $P10."pos"()
-  # rx literal  "]"
-    add $I11, rx999_pos, 1
-    gt $I11, rx999_eos, rx999_fail
-    sub $I11, rx999_pos, rx999_off
-    substr $S10, rx999_tgt, $I11, 1
-    ne $S10, "]", rx999_fail
-    add rx999_pos, 1
-.annotate 'line', 470
   # rx subrule "O" subtype=capture negate=
     rx999_cur."!cursor_pos"(rx999_pos)
     $P10 = rx999_cur."O"("%methodop")
@@ -12017,29 +12977,30 @@
     rx999_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
     rx999_pos = $P10."pos"()
-.annotate 'line', 468
   # rx pass
-    rx999_cur."!cursor_pass"(rx999_pos, "postcircumfix:sym<[ ]>")
-    rx999_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<[ ]>", " at pos=", rx999_pos)
+    rx999_cur."!cursor_pass"(rx999_pos, "postfix:sym<.>")
+    rx999_cur."!cursor_debug"("PASS  ", "postfix:sym<.>", " at pos=", rx999_pos)
     .return (rx999_cur)
+  rx999_restart:
+.annotate 'line', 447
+    rx999_cur."!cursor_debug"("NEXT ", "postfix:sym<.>")
   rx999_fail:
-.annotate 'line', 446
     (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"()
-    rx999_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<[ ]>")
+    rx999_cur."!cursor_debug"("FAIL  ", "postfix:sym<.>")
     .return (rx999_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("243_1277356913.9538") :method
-.annotate 'line', 446
-    $P1001 = self."!PREFIX__!subrule"("ws", "[")
+.sub "!PREFIX__postfix:sym<.>"  :subid("253_1280467477.44751") :method
+.annotate 'line', 447
+    $P1001 = self."!PREFIX__!subrule"("dotty", "")
     new $P1002, "ResizablePMCArray"
     push $P1002, $P1001
     .return ($P1002)
@@ -12047,16 +13008,15 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<{ }>"  :subid("244_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
+.sub "prefix:sym<++>"  :subid("254_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
     .local string rx1005_tgt
     .local int rx1005_pos
     .local int rx1005_off
     .local int rx1005_eos
     .local int rx1005_rep
     .local pmc rx1005_cur
-    (rx1005_cur, rx1005_pos, rx1005_tgt) = self."!cursor_start"()
-    rx1005_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
+    (rx1005_cur, rx1005_pos, rx1005_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx1005_cur
     .local pmc match
     .lex "$/", match
@@ -12067,6 +13027,8 @@
     sub rx1005_off, rx1005_pos, 1
     substr rx1005_tgt, rx1005_tgt, rx1005_off
   rx1005_start:
+    eq $I10, 1, rx1005_restart
+    rx1005_cur."!cursor_debug"("START ", "prefix:sym<++>")
     $I10 = self.'from'()
     ne $I10, -1, rxscan1009_done
     goto rxscan1009_scan
@@ -12079,64 +13041,59 @@
     set_addr $I10, rxscan1009_loop
     rx1005_cur."!mark_push"(0, rx1005_pos, $I10)
   rxscan1009_done:
-.annotate 'line', 474
-  # rx literal  "{"
-    add $I11, rx1005_pos, 1
+.annotate 'line', 491
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_1010_fail
+    rx1005_cur."!mark_push"(0, rx1005_pos, $I10)
+  # rx literal  "++"
+    add $I11, rx1005_pos, 2
     gt $I11, rx1005_eos, rx1005_fail
     sub $I11, rx1005_pos, rx1005_off
-    substr $S10, rx1005_tgt, $I11, 1
-    ne $S10, "{", 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
+    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, "")
     rx1005_cur."!mark_push"(0, -1, 0, $P10)
-    $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
-    substr $S10, rx1005_tgt, $I11, 1
-    ne $S10, "}", rx1005_fail
-    add rx1005_pos, 1
-.annotate 'line', 475
+    $P10."!cursor_names"("sym")
+    goto rxcap_1010_done
+  rxcap_1010_fail:
+    goto rx1005_fail
+  rxcap_1010_done:
   # rx subrule "O" subtype=capture negate=
     rx1005_cur."!cursor_pos"(rx1005_pos)
-    $P10 = rx1005_cur."O"("%methodop")
+    $P10 = rx1005_cur."O"("%autoincrement, :pirop<inc>")
     unless $P10, rx1005_fail
     rx1005_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
     rx1005_pos = $P10."pos"()
-.annotate 'line', 473
   # rx pass
-    rx1005_cur."!cursor_pass"(rx1005_pos, "postcircumfix:sym<{ }>")
-    rx1005_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<{ }>", " at pos=", rx1005_pos)
+    rx1005_cur."!cursor_pass"(rx1005_pos, "prefix:sym<++>")
+    rx1005_cur."!cursor_debug"("PASS  ", "prefix:sym<++>", " at pos=", rx1005_pos)
     .return (rx1005_cur)
+  rx1005_restart:
+.annotate 'line', 447
+    rx1005_cur."!cursor_debug"("NEXT ", "prefix:sym<++>")
   rx1005_fail:
-.annotate 'line', 446
     (rx1005_rep, rx1005_pos, $I10, $P10) = rx1005_cur."!mark_fail"(0)
     lt rx1005_pos, -1, rx1005_done
     eq rx1005_pos, -1, rx1005_fail
     jump $I10
   rx1005_done:
     rx1005_cur."!cursor_fail"()
-    rx1005_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<{ }>")
+    rx1005_cur."!cursor_debug"("FAIL  ", "prefix:sym<++>")
     .return (rx1005_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("245_1277356913.9538") :method
-.annotate 'line', 446
-    $P1007 = self."!PREFIX__!subrule"("ws", "{")
+.sub "!PREFIX__prefix:sym<++>"  :subid("255_1280467477.44751") :method
+.annotate 'line', 447
+    $P1007 = self."!PREFIX__!subrule"("O", "++")
     new $P1008, "ResizablePMCArray"
     push $P1008, $P1007
     .return ($P1008)
@@ -12144,5302 +13101,5401 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<ang>"  :subid("246_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1011_tgt
-    .local int rx1011_pos
-    .local int rx1011_off
-    .local int rx1011_eos
-    .local int rx1011_rep
-    .local pmc rx1011_cur
-    (rx1011_cur, rx1011_pos, rx1011_tgt) = self."!cursor_start"()
-    rx1011_cur."!cursor_debug"("START ", "postcircumfix:sym<ang>")
-    .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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1014_done
-    goto rxscan1014_scan
-  rxscan1014_loop:
-    ($P10) = rx1011_cur."from"()
-    inc $P10
-    set rx1011_pos, $P10
-    ge rx1011_pos, rx1011_eos, rxscan1014_done
-  rxscan1014_scan:
-    set_addr $I10, rxscan1014_loop
-    rx1011_cur."!mark_push"(0, rx1011_pos, $I10)
-  rxscan1014_done:
-.annotate 'line', 479
-  # rx enumcharlist negate=0 zerowidth
-    ge rx1011_pos, rx1011_eos, rx1011_fail
-    sub $I10, rx1011_pos, rx1011_off
-    substr $S10, rx1011_tgt, $I10, 1
-    index $I11, "<", $S10
-    lt $I11, 0, rx1011_fail
-  # rx subrule "quote_EXPR" subtype=capture negate=
-    rx1011_cur."!cursor_pos"(rx1011_pos)
-    $P10 = rx1011_cur."quote_EXPR"(":q")
-    unless $P10, rx1011_fail
-    rx1011_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
-    rx1011_pos = $P10."pos"()
-.annotate 'line', 480
+.sub "prefix:sym<-->"  :subid("256_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1012_tgt
+    .local int rx1012_pos
+    .local int rx1012_off
+    .local int rx1012_eos
+    .local int rx1012_rep
+    .local pmc rx1012_cur
+    (rx1012_cur, rx1012_pos, rx1012_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1012_cur."!cursor_debug"("START ", "prefix:sym<-->")
+    $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:
+.annotate 'line', 492
+  # 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:
   # rx subrule "O" subtype=capture negate=
-    rx1011_cur."!cursor_pos"(rx1011_pos)
-    $P10 = rx1011_cur."O"("%methodop")
-    unless $P10, rx1011_fail
-    rx1011_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1011_pos = $P10."pos"()
-.annotate 'line', 478
+    rx1012_pos = $P10."pos"()
   # rx pass
-    rx1011_cur."!cursor_pass"(rx1011_pos, "postcircumfix:sym<ang>")
-    rx1011_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<ang>", " at pos=", rx1011_pos)
-    .return (rx1011_cur)
-  rx1011_fail:
-.annotate 'line', 446
-    (rx1011_rep, rx1011_pos, $I10, $P10) = rx1011_cur."!mark_fail"(0)
-    lt rx1011_pos, -1, rx1011_done
-    eq rx1011_pos, -1, rx1011_fail
+    rx1012_cur."!cursor_pass"(rx1012_pos, "prefix:sym<-->")
+    rx1012_cur."!cursor_debug"("PASS  ", "prefix:sym<-->", " at pos=", rx1012_pos)
+    .return (rx1012_cur)
+  rx1012_restart:
+.annotate 'line', 447
+    rx1012_cur."!cursor_debug"("NEXT ", "prefix:sym<-->")
+  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
-  rx1011_done:
-    rx1011_cur."!cursor_fail"()
-    rx1011_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<ang>")
-    .return (rx1011_cur)
+  rx1012_done:
+    rx1012_cur."!cursor_fail"()
+    rx1012_cur."!cursor_debug"("FAIL  ", "prefix:sym<-->")
+    .return (rx1012_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("247_1277356913.9538") :method
-.annotate 'line', 446
-    new $P1013, "ResizablePMCArray"
-    push $P1013, "<"
-    .return ($P1013)
+.sub "!PREFIX__prefix:sym<-->"  :subid("257_1280467477.44751") :method
+.annotate 'line', 447
+    $P1014 = self."!PREFIX__!subrule"("O", "--")
+    new $P1015, "ResizablePMCArray"
+    push $P1015, $P1014
+    .return ($P1015)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<( )>"  :subid("248_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1016_tgt
-    .local int rx1016_pos
-    .local int rx1016_off
-    .local int rx1016_eos
-    .local int rx1016_rep
-    .local pmc rx1016_cur
-    (rx1016_cur, rx1016_pos, rx1016_tgt) = self."!cursor_start"()
-    rx1016_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>")
-    .lex unicode:"$\x{a2}", rx1016_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1016_eos, rx1016_tgt
-    gt rx1016_pos, rx1016_eos, rx1016_done
-    set rx1016_off, 0
-    lt rx1016_pos, 2, rx1016_start
-    sub rx1016_off, rx1016_pos, 1
-    substr rx1016_tgt, rx1016_tgt, rx1016_off
-  rx1016_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1020_done
-    goto rxscan1020_scan
-  rxscan1020_loop:
-    ($P10) = rx1016_cur."from"()
-    inc $P10
-    set rx1016_pos, $P10
-    ge rx1016_pos, rx1016_eos, rxscan1020_done
-  rxscan1020_scan:
-    set_addr $I10, rxscan1020_loop
-    rx1016_cur."!mark_push"(0, rx1016_pos, $I10)
-  rxscan1020_done:
-.annotate 'line', 484
-  # rx literal  "("
-    add $I11, rx1016_pos, 1
-    gt $I11, rx1016_eos, rx1016_fail
-    sub $I11, rx1016_pos, rx1016_off
-    substr $S10, rx1016_tgt, $I11, 1
-    ne $S10, "(", rx1016_fail
-    add rx1016_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx1016_cur."!cursor_pos"(rx1016_pos)
-    $P10 = rx1016_cur."ws"()
-    unless $P10, rx1016_fail
-    rx1016_pos = $P10."pos"()
-  # rx subrule "arglist" subtype=capture negate=
-    rx1016_cur."!cursor_pos"(rx1016_pos)
-    $P10 = rx1016_cur."arglist"()
-    unless $P10, rx1016_fail
-    rx1016_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("arglist")
-    rx1016_pos = $P10."pos"()
-  # rx literal  ")"
-    add $I11, rx1016_pos, 1
-    gt $I11, rx1016_eos, rx1016_fail
-    sub $I11, rx1016_pos, rx1016_off
-    substr $S10, rx1016_tgt, $I11, 1
-    ne $S10, ")", rx1016_fail
-    add rx1016_pos, 1
-.annotate 'line', 485
+.sub "postfix:sym<++>"  :subid("258_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1019_tgt
+    .local int rx1019_pos
+    .local int rx1019_off
+    .local int rx1019_eos
+    .local int rx1019_rep
+    .local pmc rx1019_cur
+    (rx1019_cur, rx1019_pos, rx1019_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1019_cur."!cursor_debug"("START ", "postfix:sym<++>")
+    $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:
+.annotate 'line', 495
+  # 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:
   # rx subrule "O" subtype=capture negate=
-    rx1016_cur."!cursor_pos"(rx1016_pos)
-    $P10 = rx1016_cur."O"("%methodop")
-    unless $P10, rx1016_fail
-    rx1016_cur."!mark_push"(0, -1, 0, $P10)
+    rx1019_cur."!cursor_pos"(rx1019_pos)
+    $P10 = rx1019_cur."O"("%autoincrement")
+    unless $P10, rx1019_fail
+    rx1019_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1016_pos = $P10."pos"()
-.annotate 'line', 483
+    rx1019_pos = $P10."pos"()
   # rx pass
-    rx1016_cur."!cursor_pass"(rx1016_pos, "postcircumfix:sym<( )>")
-    rx1016_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<( )>", " at pos=", rx1016_pos)
-    .return (rx1016_cur)
-  rx1016_fail:
-.annotate 'line', 446
-    (rx1016_rep, rx1016_pos, $I10, $P10) = rx1016_cur."!mark_fail"(0)
-    lt rx1016_pos, -1, rx1016_done
-    eq rx1016_pos, -1, rx1016_fail
+    rx1019_cur."!cursor_pass"(rx1019_pos, "postfix:sym<++>")
+    rx1019_cur."!cursor_debug"("PASS  ", "postfix:sym<++>", " at pos=", rx1019_pos)
+    .return (rx1019_cur)
+  rx1019_restart:
+.annotate 'line', 447
+    rx1019_cur."!cursor_debug"("NEXT ", "postfix:sym<++>")
+  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
-  rx1016_done:
-    rx1016_cur."!cursor_fail"()
-    rx1016_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<( )>")
-    .return (rx1016_cur)
+  rx1019_done:
+    rx1019_cur."!cursor_fail"()
+    rx1019_cur."!cursor_debug"("FAIL  ", "postfix:sym<++>")
+    .return (rx1019_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("249_1277356913.9538") :method
-.annotate 'line', 446
-    $P1018 = self."!PREFIX__!subrule"("ws", "(")
-    new $P1019, "ResizablePMCArray"
-    push $P1019, $P1018
-    .return ($P1019)
+.sub "!PREFIX__postfix:sym<++>"  :subid("259_1280467477.44751") :method
+.annotate 'line', 447
+    $P1021 = self."!PREFIX__!subrule"("O", "++")
+    new $P1022, "ResizablePMCArray"
+    push $P1022, $P1021
+    .return ($P1022)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<.>"  :subid("250_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1022_tgt
-    .local int rx1022_pos
-    .local int rx1022_off
-    .local int rx1022_eos
-    .local int rx1022_rep
-    .local pmc rx1022_cur
-    (rx1022_cur, rx1022_pos, rx1022_tgt) = self."!cursor_start"()
-    rx1022_cur."!cursor_debug"("START ", "postfix:sym<.>")
-    .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:
-    $I10 = self.'from'()
-    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', 488
-  # rx subrule "dotty" subtype=capture negate=
-    rx1022_cur."!cursor_pos"(rx1022_pos)
-    $P10 = rx1022_cur."dotty"()
-    unless $P10, rx1022_fail
-    rx1022_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("dotty")
-    rx1022_pos = $P10."pos"()
+.sub "postfix:sym<-->"  :subid("260_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1026_tgt
+    .local int rx1026_pos
+    .local int rx1026_off
+    .local int rx1026_eos
+    .local int rx1026_rep
+    .local pmc rx1026_cur
+    (rx1026_cur, rx1026_pos, rx1026_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1026_cur."!cursor_debug"("START ", "postfix:sym<-->")
+    $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:
+.annotate 'line', 496
+  # 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:
   # 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)
+    rx1026_cur."!cursor_pos"(rx1026_pos)
+    $P10 = rx1026_cur."O"("%autoincrement")
+    unless $P10, rx1026_fail
+    rx1026_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1022_pos = $P10."pos"()
+    rx1026_pos = $P10."pos"()
   # rx pass
-    rx1022_cur."!cursor_pass"(rx1022_pos, "postfix:sym<.>")
-    rx1022_cur."!cursor_debug"("PASS  ", "postfix:sym<.>", " at pos=", rx1022_pos)
-    .return (rx1022_cur)
-  rx1022_fail:
-.annotate 'line', 446
-    (rx1022_rep, rx1022_pos, $I10, $P10) = rx1022_cur."!mark_fail"(0)
-    lt rx1022_pos, -1, rx1022_done
-    eq rx1022_pos, -1, rx1022_fail
+    rx1026_cur."!cursor_pass"(rx1026_pos, "postfix:sym<-->")
+    rx1026_cur."!cursor_debug"("PASS  ", "postfix:sym<-->", " at pos=", rx1026_pos)
+    .return (rx1026_cur)
+  rx1026_restart:
+.annotate 'line', 447
+    rx1026_cur."!cursor_debug"("NEXT ", "postfix:sym<-->")
+  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
-  rx1022_done:
-    rx1022_cur."!cursor_fail"()
-    rx1022_cur."!cursor_debug"("FAIL  ", "postfix:sym<.>")
-    .return (rx1022_cur)
+  rx1026_done:
+    rx1026_cur."!cursor_fail"()
+    rx1026_cur."!cursor_debug"("FAIL  ", "postfix:sym<-->")
+    .return (rx1026_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<.>"  :subid("251_1277356913.9538") :method
-.annotate 'line', 446
-    $P1024 = self."!PREFIX__!subrule"("dotty", "")
-    new $P1025, "ResizablePMCArray"
-    push $P1025, $P1024
-    .return ($P1025)
+.sub "!PREFIX__postfix:sym<-->"  :subid("261_1280467477.44751") :method
+.annotate 'line', 447
+    $P1028 = self."!PREFIX__!subrule"("O", "--")
+    new $P1029, "ResizablePMCArray"
+    push $P1029, $P1028
+    .return ($P1029)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<++>"  :subid("252_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1028_tgt
-    .local int rx1028_pos
-    .local int rx1028_off
-    .local int rx1028_eos
-    .local int rx1028_rep
-    .local pmc rx1028_cur
-    (rx1028_cur, rx1028_pos, rx1028_tgt) = self."!cursor_start"()
-    rx1028_cur."!cursor_debug"("START ", "prefix:sym<++>")
-    .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:
-    $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', 490
+.sub "infix:sym<**>"  :subid("262_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1033_tgt
+    .local int rx1033_pos
+    .local int rx1033_off
+    .local int rx1033_eos
+    .local int rx1033_rep
+    .local pmc rx1033_cur
+    (rx1033_cur, rx1033_pos, rx1033_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1033_cur."!cursor_debug"("START ", "infix:sym<**>")
+    $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:
+.annotate 'line', 498
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1033_fail
-    rx1028_cur."!mark_push"(0, rx1028_pos, $I10)
-  # rx literal  "++"
-    add $I11, rx1028_pos, 2
-    gt $I11, rx1028_eos, rx1028_fail
-    sub $I11, rx1028_pos, rx1028_off
-    substr $S10, rx1028_tgt, $I11, 2
-    ne $S10, "++", rx1028_fail
-    add rx1028_pos, 2
-    set_addr $I10, rxcap_1033_fail
-    ($I12, $I11) = rx1028_cur."!mark_peek"($I10)
-    rx1028_cur."!cursor_pos"($I11)
-    ($P10) = rx1028_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1028_pos, "")
-    rx1028_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1033_done
-  rxcap_1033_fail:
-    goto rx1028_fail
-  rxcap_1033_done:
+    goto rxcap_1038_done
+  rxcap_1038_fail:
+    goto rx1033_fail
+  rxcap_1038_done:
   # rx subrule "O" subtype=capture negate=
-    rx1028_cur."!cursor_pos"(rx1028_pos)
-    $P10 = rx1028_cur."O"("%autoincrement, :pirop<inc>")
-    unless $P10, rx1028_fail
-    rx1028_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1028_pos = $P10."pos"()
+    rx1033_pos = $P10."pos"()
   # rx pass
-    rx1028_cur."!cursor_pass"(rx1028_pos, "prefix:sym<++>")
-    rx1028_cur."!cursor_debug"("PASS  ", "prefix:sym<++>", " at pos=", rx1028_pos)
-    .return (rx1028_cur)
-  rx1028_fail:
-.annotate 'line', 446
-    (rx1028_rep, rx1028_pos, $I10, $P10) = rx1028_cur."!mark_fail"(0)
-    lt rx1028_pos, -1, rx1028_done
-    eq rx1028_pos, -1, rx1028_fail
+    rx1033_cur."!cursor_pass"(rx1033_pos, "infix:sym<**>")
+    rx1033_cur."!cursor_debug"("PASS  ", "infix:sym<**>", " at pos=", rx1033_pos)
+    .return (rx1033_cur)
+  rx1033_restart:
+.annotate 'line', 447
+    rx1033_cur."!cursor_debug"("NEXT ", "infix:sym<**>")
+  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
-  rx1028_done:
-    rx1028_cur."!cursor_fail"()
-    rx1028_cur."!cursor_debug"("FAIL  ", "prefix:sym<++>")
-    .return (rx1028_cur)
+  rx1033_done:
+    rx1033_cur."!cursor_fail"()
+    rx1033_cur."!cursor_debug"("FAIL  ", "infix:sym<**>")
+    .return (rx1033_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<++>"  :subid("253_1277356913.9538") :method
-.annotate 'line', 446
-    $P1030 = self."!PREFIX__!subrule"("O", "++")
-    new $P1031, "ResizablePMCArray"
-    push $P1031, $P1030
-    .return ($P1031)
+.sub "!PREFIX__infix:sym<**>"  :subid("263_1280467477.44751") :method
+.annotate 'line', 447
+    $P1035 = self."!PREFIX__!subrule"("O", "**")
+    new $P1036, "ResizablePMCArray"
+    push $P1036, $P1035
+    .return ($P1036)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<-->"  :subid("254_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1035_tgt
-    .local int rx1035_pos
-    .local int rx1035_off
-    .local int rx1035_eos
-    .local int rx1035_rep
-    .local pmc rx1035_cur
-    (rx1035_cur, rx1035_pos, rx1035_tgt) = self."!cursor_start"()
-    rx1035_cur."!cursor_debug"("START ", "prefix:sym<-->")
-    .lex unicode:"$\x{a2}", rx1035_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1035_eos, rx1035_tgt
-    gt rx1035_pos, rx1035_eos, rx1035_done
-    set rx1035_off, 0
-    lt rx1035_pos, 2, rx1035_start
-    sub rx1035_off, rx1035_pos, 1
-    substr rx1035_tgt, rx1035_tgt, rx1035_off
-  rx1035_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1039_done
-    goto rxscan1039_scan
-  rxscan1039_loop:
-    ($P10) = rx1035_cur."from"()
-    inc $P10
-    set rx1035_pos, $P10
-    ge rx1035_pos, rx1035_eos, rxscan1039_done
-  rxscan1039_scan:
-    set_addr $I10, rxscan1039_loop
-    rx1035_cur."!mark_push"(0, rx1035_pos, $I10)
-  rxscan1039_done:
-.annotate 'line', 491
+.sub "prefix:sym<+>"  :subid("264_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1040_tgt
+    .local int rx1040_pos
+    .local int rx1040_off
+    .local int rx1040_eos
+    .local int rx1040_rep
+    .local pmc rx1040_cur
+    (rx1040_cur, rx1040_pos, rx1040_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1040_cur."!cursor_debug"("START ", "prefix:sym<+>")
+    $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:
+.annotate 'line', 500
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1040_fail
-    rx1035_cur."!mark_push"(0, rx1035_pos, $I10)
-  # rx literal  "--"
-    add $I11, rx1035_pos, 2
-    gt $I11, rx1035_eos, rx1035_fail
-    sub $I11, rx1035_pos, rx1035_off
-    substr $S10, rx1035_tgt, $I11, 2
-    ne $S10, "--", rx1035_fail
-    add rx1035_pos, 2
-    set_addr $I10, rxcap_1040_fail
-    ($I12, $I11) = rx1035_cur."!mark_peek"($I10)
-    rx1035_cur."!cursor_pos"($I11)
-    ($P10) = rx1035_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1035_pos, "")
-    rx1035_cur."!mark_push"(0, -1, 0, $P10)
+    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
+    substr $S10, rx1040_tgt, $I11, 1
+    ne $S10, "+", 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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1040_done
-  rxcap_1040_fail:
-    goto rx1035_fail
-  rxcap_1040_done:
+    goto rxcap_1045_done
+  rxcap_1045_fail:
+    goto rx1040_fail
+  rxcap_1045_done:
   # rx subrule "O" subtype=capture negate=
-    rx1035_cur."!cursor_pos"(rx1035_pos)
-    $P10 = rx1035_cur."O"("%autoincrement, :pirop<dec>")
-    unless $P10, rx1035_fail
-    rx1035_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1035_pos = $P10."pos"()
+    rx1040_pos = $P10."pos"()
   # rx pass
-    rx1035_cur."!cursor_pass"(rx1035_pos, "prefix:sym<-->")
-    rx1035_cur."!cursor_debug"("PASS  ", "prefix:sym<-->", " at pos=", rx1035_pos)
-    .return (rx1035_cur)
-  rx1035_fail:
-.annotate 'line', 446
-    (rx1035_rep, rx1035_pos, $I10, $P10) = rx1035_cur."!mark_fail"(0)
-    lt rx1035_pos, -1, rx1035_done
-    eq rx1035_pos, -1, rx1035_fail
+    rx1040_cur."!cursor_pass"(rx1040_pos, "prefix:sym<+>")
+    rx1040_cur."!cursor_debug"("PASS  ", "prefix:sym<+>", " at pos=", rx1040_pos)
+    .return (rx1040_cur)
+  rx1040_restart:
+.annotate 'line', 447
+    rx1040_cur."!cursor_debug"("NEXT ", "prefix:sym<+>")
+  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
-  rx1035_done:
-    rx1035_cur."!cursor_fail"()
-    rx1035_cur."!cursor_debug"("FAIL  ", "prefix:sym<-->")
-    .return (rx1035_cur)
+  rx1040_done:
+    rx1040_cur."!cursor_fail"()
+    rx1040_cur."!cursor_debug"("FAIL  ", "prefix:sym<+>")
+    .return (rx1040_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<-->"  :subid("255_1277356913.9538") :method
-.annotate 'line', 446
-    $P1037 = self."!PREFIX__!subrule"("O", "--")
-    new $P1038, "ResizablePMCArray"
-    push $P1038, $P1037
-    .return ($P1038)
+.sub "!PREFIX__prefix:sym<+>"  :subid("265_1280467477.44751") :method
+.annotate 'line', 447
+    $P1042 = self."!PREFIX__!subrule"("O", "+")
+    new $P1043, "ResizablePMCArray"
+    push $P1043, $P1042
+    .return ($P1043)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<++>"  :subid("256_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1042_tgt
-    .local int rx1042_pos
-    .local int rx1042_off
-    .local int rx1042_eos
-    .local int rx1042_rep
-    .local pmc rx1042_cur
-    (rx1042_cur, rx1042_pos, rx1042_tgt) = self."!cursor_start"()
-    rx1042_cur."!cursor_debug"("START ", "postfix:sym<++>")
-    .lex unicode:"$\x{a2}", rx1042_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1042_eos, rx1042_tgt
-    gt rx1042_pos, rx1042_eos, rx1042_done
-    set rx1042_off, 0
-    lt rx1042_pos, 2, rx1042_start
-    sub rx1042_off, rx1042_pos, 1
-    substr rx1042_tgt, rx1042_tgt, rx1042_off
-  rx1042_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1046_done
-    goto rxscan1046_scan
-  rxscan1046_loop:
-    ($P10) = rx1042_cur."from"()
-    inc $P10
-    set rx1042_pos, $P10
-    ge rx1042_pos, rx1042_eos, rxscan1046_done
-  rxscan1046_scan:
-    set_addr $I10, rxscan1046_loop
-    rx1042_cur."!mark_push"(0, rx1042_pos, $I10)
-  rxscan1046_done:
-.annotate 'line', 494
+.sub "prefix:sym<~>"  :subid("266_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1047_tgt
+    .local int rx1047_pos
+    .local int rx1047_off
+    .local int rx1047_eos
+    .local int rx1047_rep
+    .local pmc rx1047_cur
+    (rx1047_cur, rx1047_pos, rx1047_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1047_cur."!cursor_debug"("START ", "prefix:sym<~>")
+    $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:
+.annotate 'line', 501
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1047_fail
-    rx1042_cur."!mark_push"(0, rx1042_pos, $I10)
-  # rx literal  "++"
-    add $I11, rx1042_pos, 2
-    gt $I11, rx1042_eos, rx1042_fail
-    sub $I11, rx1042_pos, rx1042_off
-    substr $S10, rx1042_tgt, $I11, 2
-    ne $S10, "++", rx1042_fail
-    add rx1042_pos, 2
-    set_addr $I10, rxcap_1047_fail
-    ($I12, $I11) = rx1042_cur."!mark_peek"($I10)
-    rx1042_cur."!cursor_pos"($I11)
-    ($P10) = rx1042_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1042_pos, "")
-    rx1042_cur."!mark_push"(0, -1, 0, $P10)
+    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
+    substr $S10, rx1047_tgt, $I11, 1
+    ne $S10, "~", 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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1047_done
-  rxcap_1047_fail:
-    goto rx1042_fail
-  rxcap_1047_done:
+    goto rxcap_1052_done
+  rxcap_1052_fail:
+    goto rx1047_fail
+  rxcap_1052_done:
   # rx subrule "O" subtype=capture negate=
-    rx1042_cur."!cursor_pos"(rx1042_pos)
-    $P10 = rx1042_cur."O"("%autoincrement")
-    unless $P10, rx1042_fail
-    rx1042_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1042_pos = $P10."pos"()
+    rx1047_pos = $P10."pos"()
   # rx pass
-    rx1042_cur."!cursor_pass"(rx1042_pos, "postfix:sym<++>")
-    rx1042_cur."!cursor_debug"("PASS  ", "postfix:sym<++>", " at pos=", rx1042_pos)
-    .return (rx1042_cur)
-  rx1042_fail:
-.annotate 'line', 446
-    (rx1042_rep, rx1042_pos, $I10, $P10) = rx1042_cur."!mark_fail"(0)
-    lt rx1042_pos, -1, rx1042_done
-    eq rx1042_pos, -1, rx1042_fail
+    rx1047_cur."!cursor_pass"(rx1047_pos, "prefix:sym<~>")
+    rx1047_cur."!cursor_debug"("PASS  ", "prefix:sym<~>", " at pos=", rx1047_pos)
+    .return (rx1047_cur)
+  rx1047_restart:
+.annotate 'line', 447
+    rx1047_cur."!cursor_debug"("NEXT ", "prefix:sym<~>")
+  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
-  rx1042_done:
-    rx1042_cur."!cursor_fail"()
-    rx1042_cur."!cursor_debug"("FAIL  ", "postfix:sym<++>")
-    .return (rx1042_cur)
+  rx1047_done:
+    rx1047_cur."!cursor_fail"()
+    rx1047_cur."!cursor_debug"("FAIL  ", "prefix:sym<~>")
+    .return (rx1047_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<++>"  :subid("257_1277356913.9538") :method
-.annotate 'line', 446
-    $P1044 = self."!PREFIX__!subrule"("O", "++")
-    new $P1045, "ResizablePMCArray"
-    push $P1045, $P1044
-    .return ($P1045)
+.sub "!PREFIX__prefix:sym<~>"  :subid("267_1280467477.44751") :method
+.annotate 'line', 447
+    $P1049 = self."!PREFIX__!subrule"("O", "~")
+    new $P1050, "ResizablePMCArray"
+    push $P1050, $P1049
+    .return ($P1050)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<-->"  :subid("258_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1049_tgt
-    .local int rx1049_pos
-    .local int rx1049_off
-    .local int rx1049_eos
-    .local int rx1049_rep
-    .local pmc rx1049_cur
-    (rx1049_cur, rx1049_pos, rx1049_tgt) = self."!cursor_start"()
-    rx1049_cur."!cursor_debug"("START ", "postfix:sym<-->")
-    .lex unicode:"$\x{a2}", rx1049_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1049_eos, rx1049_tgt
-    gt rx1049_pos, rx1049_eos, rx1049_done
-    set rx1049_off, 0
-    lt rx1049_pos, 2, rx1049_start
-    sub rx1049_off, rx1049_pos, 1
-    substr rx1049_tgt, rx1049_tgt, rx1049_off
-  rx1049_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1053_done
-    goto rxscan1053_scan
-  rxscan1053_loop:
-    ($P10) = rx1049_cur."from"()
-    inc $P10
-    set rx1049_pos, $P10
-    ge rx1049_pos, rx1049_eos, rxscan1053_done
-  rxscan1053_scan:
-    set_addr $I10, rxscan1053_loop
-    rx1049_cur."!mark_push"(0, rx1049_pos, $I10)
-  rxscan1053_done:
-.annotate 'line', 495
+.sub "prefix:sym<->"  :subid("268_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1054_tgt
+    .local int rx1054_pos
+    .local int rx1054_off
+    .local int rx1054_eos
+    .local int rx1054_rep
+    .local pmc rx1054_cur
+    (rx1054_cur, rx1054_pos, rx1054_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1054_cur."!cursor_debug"("START ", "prefix:sym<->")
+    $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:
+.annotate 'line', 502
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1054_fail
-    rx1049_cur."!mark_push"(0, rx1049_pos, $I10)
-  # rx literal  "--"
-    add $I11, rx1049_pos, 2
-    gt $I11, rx1049_eos, rx1049_fail
-    sub $I11, rx1049_pos, rx1049_off
-    substr $S10, rx1049_tgt, $I11, 2
-    ne $S10, "--", rx1049_fail
-    add rx1049_pos, 2
-    set_addr $I10, rxcap_1054_fail
-    ($I12, $I11) = rx1049_cur."!mark_peek"($I10)
-    rx1049_cur."!cursor_pos"($I11)
-    ($P10) = rx1049_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1049_pos, "")
-    rx1049_cur."!mark_push"(0, -1, 0, $P10)
+    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
+    substr $S10, rx1054_tgt, $I11, 1
+    ne $S10, "-", 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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1054_done
-  rxcap_1054_fail:
-    goto rx1049_fail
-  rxcap_1054_done:
+    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
   # rx subrule "O" subtype=capture negate=
-    rx1049_cur."!cursor_pos"(rx1049_pos)
-    $P10 = rx1049_cur."O"("%autoincrement")
-    unless $P10, rx1049_fail
-    rx1049_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1049_pos = $P10."pos"()
+    rx1054_pos = $P10."pos"()
   # rx pass
-    rx1049_cur."!cursor_pass"(rx1049_pos, "postfix:sym<-->")
-    rx1049_cur."!cursor_debug"("PASS  ", "postfix:sym<-->", " at pos=", rx1049_pos)
-    .return (rx1049_cur)
-  rx1049_fail:
-.annotate 'line', 446
-    (rx1049_rep, rx1049_pos, $I10, $P10) = rx1049_cur."!mark_fail"(0)
-    lt rx1049_pos, -1, rx1049_done
-    eq rx1049_pos, -1, rx1049_fail
+    rx1054_cur."!cursor_pass"(rx1054_pos, "prefix:sym<->")
+    rx1054_cur."!cursor_debug"("PASS  ", "prefix:sym<->", " at pos=", rx1054_pos)
+    .return (rx1054_cur)
+  rx1054_restart:
+.annotate 'line', 447
+    rx1054_cur."!cursor_debug"("NEXT ", "prefix:sym<->")
+  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
-  rx1049_done:
-    rx1049_cur."!cursor_fail"()
-    rx1049_cur."!cursor_debug"("FAIL  ", "postfix:sym<-->")
-    .return (rx1049_cur)
+  rx1054_done:
+    rx1054_cur."!cursor_fail"()
+    rx1054_cur."!cursor_debug"("FAIL  ", "prefix:sym<->")
+    .return (rx1054_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<-->"  :subid("259_1277356913.9538") :method
-.annotate 'line', 446
-    $P1051 = self."!PREFIX__!subrule"("O", "--")
-    new $P1052, "ResizablePMCArray"
-    push $P1052, $P1051
-    .return ($P1052)
+.sub "!PREFIX__prefix:sym<->"  :subid("269_1280467477.44751") :method
+.annotate 'line', 447
+    new $P1056, "ResizablePMCArray"
+    push $P1056, "-"
+    .return ($P1056)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<**>"  :subid("260_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1056_tgt
-    .local int rx1056_pos
-    .local int rx1056_off
-    .local int rx1056_eos
-    .local int rx1056_rep
-    .local pmc rx1056_cur
-    (rx1056_cur, rx1056_pos, rx1056_tgt) = self."!cursor_start"()
-    rx1056_cur."!cursor_debug"("START ", "infix:sym<**>")
-    .lex unicode:"$\x{a2}", rx1056_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1056_eos, rx1056_tgt
-    gt rx1056_pos, rx1056_eos, rx1056_done
-    set rx1056_off, 0
-    lt rx1056_pos, 2, rx1056_start
-    sub rx1056_off, rx1056_pos, 1
-    substr rx1056_tgt, rx1056_tgt, rx1056_off
-  rx1056_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1060_done
-    goto rxscan1060_scan
-  rxscan1060_loop:
-    ($P10) = rx1056_cur."from"()
-    inc $P10
-    set rx1056_pos, $P10
-    ge rx1056_pos, rx1056_eos, rxscan1060_done
-  rxscan1060_scan:
-    set_addr $I10, rxscan1060_loop
-    rx1056_cur."!mark_push"(0, rx1056_pos, $I10)
-  rxscan1060_done:
-.annotate 'line', 497
+.sub "prefix:sym<?>"  :subid("270_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1060_tgt
+    .local int rx1060_pos
+    .local int rx1060_off
+    .local int rx1060_eos
+    .local int rx1060_rep
+    .local pmc rx1060_cur
+    (rx1060_cur, rx1060_pos, rx1060_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1060_cur."!cursor_debug"("START ", "prefix:sym<?>")
+    $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:
+.annotate 'line', 503
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1061_fail
-    rx1056_cur."!mark_push"(0, rx1056_pos, $I10)
-  # rx literal  "**"
-    add $I11, rx1056_pos, 2
-    gt $I11, rx1056_eos, rx1056_fail
-    sub $I11, rx1056_pos, rx1056_off
-    substr $S10, rx1056_tgt, $I11, 2
-    ne $S10, "**", rx1056_fail
-    add rx1056_pos, 2
-    set_addr $I10, rxcap_1061_fail
-    ($I12, $I11) = rx1056_cur."!mark_peek"($I10)
-    rx1056_cur."!cursor_pos"($I11)
-    ($P10) = rx1056_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1056_pos, "")
-    rx1056_cur."!mark_push"(0, -1, 0, $P10)
+    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
+    substr $S10, rx1060_tgt, $I11, 1
+    ne $S10, "?", 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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1061_done
-  rxcap_1061_fail:
-    goto rx1056_fail
-  rxcap_1061_done:
+    goto rxcap_1065_done
+  rxcap_1065_fail:
+    goto rx1060_fail
+  rxcap_1065_done:
   # rx subrule "O" subtype=capture negate=
-    rx1056_cur."!cursor_pos"(rx1056_pos)
-    $P10 = rx1056_cur."O"("%exponentiation, :pirop<pow>")
-    unless $P10, rx1056_fail
-    rx1056_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1056_pos = $P10."pos"()
+    rx1060_pos = $P10."pos"()
   # rx pass
-    rx1056_cur."!cursor_pass"(rx1056_pos, "infix:sym<**>")
-    rx1056_cur."!cursor_debug"("PASS  ", "infix:sym<**>", " at pos=", rx1056_pos)
-    .return (rx1056_cur)
-  rx1056_fail:
-.annotate 'line', 446
-    (rx1056_rep, rx1056_pos, $I10, $P10) = rx1056_cur."!mark_fail"(0)
-    lt rx1056_pos, -1, rx1056_done
-    eq rx1056_pos, -1, rx1056_fail
+    rx1060_cur."!cursor_pass"(rx1060_pos, "prefix:sym<?>")
+    rx1060_cur."!cursor_debug"("PASS  ", "prefix:sym<?>", " at pos=", rx1060_pos)
+    .return (rx1060_cur)
+  rx1060_restart:
+.annotate 'line', 447
+    rx1060_cur."!cursor_debug"("NEXT ", "prefix:sym<?>")
+  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
-  rx1056_done:
-    rx1056_cur."!cursor_fail"()
-    rx1056_cur."!cursor_debug"("FAIL  ", "infix:sym<**>")
-    .return (rx1056_cur)
+  rx1060_done:
+    rx1060_cur."!cursor_fail"()
+    rx1060_cur."!cursor_debug"("FAIL  ", "prefix:sym<?>")
+    .return (rx1060_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<**>"  :subid("261_1277356913.9538") :method
-.annotate 'line', 446
-    $P1058 = self."!PREFIX__!subrule"("O", "**")
-    new $P1059, "ResizablePMCArray"
-    push $P1059, $P1058
-    .return ($P1059)
+.sub "!PREFIX__prefix:sym<?>"  :subid("271_1280467477.44751") :method
+.annotate 'line', 447
+    $P1062 = self."!PREFIX__!subrule"("O", "?")
+    new $P1063, "ResizablePMCArray"
+    push $P1063, $P1062
+    .return ($P1063)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<+>"  :subid("262_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1063_tgt
-    .local int rx1063_pos
-    .local int rx1063_off
-    .local int rx1063_eos
-    .local int rx1063_rep
-    .local pmc rx1063_cur
-    (rx1063_cur, rx1063_pos, rx1063_tgt) = self."!cursor_start"()
-    rx1063_cur."!cursor_debug"("START ", "prefix:sym<+>")
-    .lex unicode:"$\x{a2}", rx1063_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1063_eos, rx1063_tgt
-    gt rx1063_pos, rx1063_eos, rx1063_done
-    set rx1063_off, 0
-    lt rx1063_pos, 2, rx1063_start
-    sub rx1063_off, rx1063_pos, 1
-    substr rx1063_tgt, rx1063_tgt, rx1063_off
-  rx1063_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1067_done
-    goto rxscan1067_scan
-  rxscan1067_loop:
-    ($P10) = rx1063_cur."from"()
-    inc $P10
-    set rx1063_pos, $P10
-    ge rx1063_pos, rx1063_eos, rxscan1067_done
-  rxscan1067_scan:
-    set_addr $I10, rxscan1067_loop
-    rx1063_cur."!mark_push"(0, rx1063_pos, $I10)
-  rxscan1067_done:
-.annotate 'line', 499
+.sub "prefix:sym<!>"  :subid("272_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1067_tgt
+    .local int rx1067_pos
+    .local int rx1067_off
+    .local int rx1067_eos
+    .local int rx1067_rep
+    .local pmc rx1067_cur
+    (rx1067_cur, rx1067_pos, rx1067_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1067_cur."!cursor_debug"("START ", "prefix:sym<!>")
+    $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:
+.annotate 'line', 504
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1068_fail
-    rx1063_cur."!mark_push"(0, rx1063_pos, $I10)
-  # rx literal  "+"
-    add $I11, rx1063_pos, 1
-    gt $I11, rx1063_eos, rx1063_fail
-    sub $I11, rx1063_pos, rx1063_off
-    substr $S10, rx1063_tgt, $I11, 1
-    ne $S10, "+", rx1063_fail
-    add rx1063_pos, 1
-    set_addr $I10, rxcap_1068_fail
-    ($I12, $I11) = rx1063_cur."!mark_peek"($I10)
-    rx1063_cur."!cursor_pos"($I11)
-    ($P10) = rx1063_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1063_pos, "")
-    rx1063_cur."!mark_push"(0, -1, 0, $P10)
+    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
+    substr $S10, rx1067_tgt, $I11, 1
+    ne $S10, "!", 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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1068_done
-  rxcap_1068_fail:
-    goto rx1063_fail
-  rxcap_1068_done:
+    goto rxcap_1072_done
+  rxcap_1072_fail:
+    goto rx1067_fail
+  rxcap_1072_done:
   # rx subrule "O" subtype=capture negate=
-    rx1063_cur."!cursor_pos"(rx1063_pos)
-    $P10 = rx1063_cur."O"("%symbolic_unary, :pirop<set N*>")
-    unless $P10, rx1063_fail
-    rx1063_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1063_pos = $P10."pos"()
+    rx1067_pos = $P10."pos"()
   # rx pass
-    rx1063_cur."!cursor_pass"(rx1063_pos, "prefix:sym<+>")
-    rx1063_cur."!cursor_debug"("PASS  ", "prefix:sym<+>", " at pos=", rx1063_pos)
-    .return (rx1063_cur)
-  rx1063_fail:
-.annotate 'line', 446
-    (rx1063_rep, rx1063_pos, $I10, $P10) = rx1063_cur."!mark_fail"(0)
-    lt rx1063_pos, -1, rx1063_done
-    eq rx1063_pos, -1, rx1063_fail
+    rx1067_cur."!cursor_pass"(rx1067_pos, "prefix:sym<!>")
+    rx1067_cur."!cursor_debug"("PASS  ", "prefix:sym<!>", " at pos=", rx1067_pos)
+    .return (rx1067_cur)
+  rx1067_restart:
+.annotate 'line', 447
+    rx1067_cur."!cursor_debug"("NEXT ", "prefix:sym<!>")
+  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
-  rx1063_done:
-    rx1063_cur."!cursor_fail"()
-    rx1063_cur."!cursor_debug"("FAIL  ", "prefix:sym<+>")
-    .return (rx1063_cur)
+  rx1067_done:
+    rx1067_cur."!cursor_fail"()
+    rx1067_cur."!cursor_debug"("FAIL  ", "prefix:sym<!>")
+    .return (rx1067_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<+>"  :subid("263_1277356913.9538") :method
-.annotate 'line', 446
-    $P1065 = self."!PREFIX__!subrule"("O", "+")
-    new $P1066, "ResizablePMCArray"
-    push $P1066, $P1065
-    .return ($P1066)
+.sub "!PREFIX__prefix:sym<!>"  :subid("273_1280467477.44751") :method
+.annotate 'line', 447
+    $P1069 = self."!PREFIX__!subrule"("O", "!")
+    new $P1070, "ResizablePMCArray"
+    push $P1070, $P1069
+    .return ($P1070)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<~>"  :subid("264_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1070_tgt
-    .local int rx1070_pos
-    .local int rx1070_off
-    .local int rx1070_eos
-    .local int rx1070_rep
-    .local pmc rx1070_cur
-    (rx1070_cur, rx1070_pos, rx1070_tgt) = self."!cursor_start"()
-    rx1070_cur."!cursor_debug"("START ", "prefix:sym<~>")
-    .lex unicode:"$\x{a2}", rx1070_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1070_eos, rx1070_tgt
-    gt rx1070_pos, rx1070_eos, rx1070_done
-    set rx1070_off, 0
-    lt rx1070_pos, 2, rx1070_start
-    sub rx1070_off, rx1070_pos, 1
-    substr rx1070_tgt, rx1070_tgt, rx1070_off
-  rx1070_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1074_done
-    goto rxscan1074_scan
-  rxscan1074_loop:
-    ($P10) = rx1070_cur."from"()
-    inc $P10
-    set rx1070_pos, $P10
-    ge rx1070_pos, rx1070_eos, rxscan1074_done
-  rxscan1074_scan:
-    set_addr $I10, rxscan1074_loop
-    rx1070_cur."!mark_push"(0, rx1070_pos, $I10)
-  rxscan1074_done:
-.annotate 'line', 500
+.sub "prefix:sym<|>"  :subid("274_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1074_tgt
+    .local int rx1074_pos
+    .local int rx1074_off
+    .local int rx1074_eos
+    .local int rx1074_rep
+    .local pmc rx1074_cur
+    (rx1074_cur, rx1074_pos, rx1074_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1074_cur."!cursor_debug"("START ", "prefix:sym<|>")
+    $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:
+.annotate 'line', 505
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1075_fail
-    rx1070_cur."!mark_push"(0, rx1070_pos, $I10)
-  # rx literal  "~"
-    add $I11, rx1070_pos, 1
-    gt $I11, rx1070_eos, rx1070_fail
-    sub $I11, rx1070_pos, rx1070_off
-    substr $S10, rx1070_tgt, $I11, 1
-    ne $S10, "~", rx1070_fail
-    add rx1070_pos, 1
-    set_addr $I10, rxcap_1075_fail
-    ($I12, $I11) = rx1070_cur."!mark_peek"($I10)
-    rx1070_cur."!cursor_pos"($I11)
-    ($P10) = rx1070_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1070_pos, "")
-    rx1070_cur."!mark_push"(0, -1, 0, $P10)
+    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
+    substr $S10, rx1074_tgt, $I11, 1
+    ne $S10, "|", 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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1075_done
-  rxcap_1075_fail:
-    goto rx1070_fail
-  rxcap_1075_done:
+    goto rxcap_1079_done
+  rxcap_1079_fail:
+    goto rx1074_fail
+  rxcap_1079_done:
   # rx subrule "O" subtype=capture negate=
-    rx1070_cur."!cursor_pos"(rx1070_pos)
-    $P10 = rx1070_cur."O"("%symbolic_unary, :pirop<set S*>")
-    unless $P10, rx1070_fail
-    rx1070_cur."!mark_push"(0, -1, 0, $P10)
+    rx1074_cur."!cursor_pos"(rx1074_pos)
+    $P10 = rx1074_cur."O"("%symbolic_unary")
+    unless $P10, rx1074_fail
+    rx1074_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1070_pos = $P10."pos"()
+    rx1074_pos = $P10."pos"()
   # rx pass
-    rx1070_cur."!cursor_pass"(rx1070_pos, "prefix:sym<~>")
-    rx1070_cur."!cursor_debug"("PASS  ", "prefix:sym<~>", " at pos=", rx1070_pos)
-    .return (rx1070_cur)
-  rx1070_fail:
-.annotate 'line', 446
-    (rx1070_rep, rx1070_pos, $I10, $P10) = rx1070_cur."!mark_fail"(0)
-    lt rx1070_pos, -1, rx1070_done
-    eq rx1070_pos, -1, rx1070_fail
+    rx1074_cur."!cursor_pass"(rx1074_pos, "prefix:sym<|>")
+    rx1074_cur."!cursor_debug"("PASS  ", "prefix:sym<|>", " at pos=", rx1074_pos)
+    .return (rx1074_cur)
+  rx1074_restart:
+.annotate 'line', 447
+    rx1074_cur."!cursor_debug"("NEXT ", "prefix:sym<|>")
+  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
-  rx1070_done:
-    rx1070_cur."!cursor_fail"()
-    rx1070_cur."!cursor_debug"("FAIL  ", "prefix:sym<~>")
-    .return (rx1070_cur)
+  rx1074_done:
+    rx1074_cur."!cursor_fail"()
+    rx1074_cur."!cursor_debug"("FAIL  ", "prefix:sym<|>")
+    .return (rx1074_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<~>"  :subid("265_1277356913.9538") :method
-.annotate 'line', 446
-    $P1072 = self."!PREFIX__!subrule"("O", "~")
-    new $P1073, "ResizablePMCArray"
-    push $P1073, $P1072
-    .return ($P1073)
+.sub "!PREFIX__prefix:sym<|>"  :subid("275_1280467477.44751") :method
+.annotate 'line', 447
+    $P1076 = self."!PREFIX__!subrule"("O", "|")
+    new $P1077, "ResizablePMCArray"
+    push $P1077, $P1076
+    .return ($P1077)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<->"  :subid("266_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1077_tgt
-    .local int rx1077_pos
-    .local int rx1077_off
-    .local int rx1077_eos
-    .local int rx1077_rep
-    .local pmc rx1077_cur
-    (rx1077_cur, rx1077_pos, rx1077_tgt) = self."!cursor_start"()
-    rx1077_cur."!cursor_debug"("START ", "prefix:sym<->")
-    .lex unicode:"$\x{a2}", rx1077_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1077_eos, rx1077_tgt
-    gt rx1077_pos, rx1077_eos, rx1077_done
-    set rx1077_off, 0
-    lt rx1077_pos, 2, rx1077_start
-    sub rx1077_off, rx1077_pos, 1
-    substr rx1077_tgt, rx1077_tgt, rx1077_off
-  rx1077_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1080_done
-    goto rxscan1080_scan
-  rxscan1080_loop:
-    ($P10) = rx1077_cur."from"()
-    inc $P10
-    set rx1077_pos, $P10
-    ge rx1077_pos, rx1077_eos, rxscan1080_done
-  rxscan1080_scan:
-    set_addr $I10, rxscan1080_loop
-    rx1077_cur."!mark_push"(0, rx1077_pos, $I10)
-  rxscan1080_done:
-.annotate 'line', 501
+.sub "infix:sym<*>"  :subid("276_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1081_tgt
+    .local int rx1081_pos
+    .local int rx1081_off
+    .local int rx1081_eos
+    .local int rx1081_rep
+    .local pmc rx1081_cur
+    (rx1081_cur, rx1081_pos, rx1081_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1081_cur."!cursor_debug"("START ", "infix:sym<*>")
+    $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:
+.annotate 'line', 507
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1081_fail
-    rx1077_cur."!mark_push"(0, rx1077_pos, $I10)
-  # rx literal  "-"
-    add $I11, rx1077_pos, 1
-    gt $I11, rx1077_eos, rx1077_fail
-    sub $I11, rx1077_pos, rx1077_off
-    substr $S10, rx1077_tgt, $I11, 1
-    ne $S10, "-", rx1077_fail
-    add rx1077_pos, 1
-    set_addr $I10, rxcap_1081_fail
-    ($I12, $I11) = rx1077_cur."!mark_peek"($I10)
-    rx1077_cur."!cursor_pos"($I11)
-    ($P10) = rx1077_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1077_pos, "")
-    rx1077_cur."!mark_push"(0, -1, 0, $P10)
+    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
+    substr $S10, rx1081_tgt, $I11, 1
+    ne $S10, "*", 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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1081_done
-  rxcap_1081_fail:
-    goto rx1077_fail
-  rxcap_1081_done:
-  # rx enumcharlist negate=1 zerowidth
-    ge rx1077_pos, rx1077_eos, rx1077_fail
-    sub $I10, rx1077_pos, rx1077_off
-    substr $S10, rx1077_tgt, $I10, 1
-    index $I11, ">", $S10
-    ge $I11, 0, rx1077_fail
-  # rx subrule "number" subtype=zerowidth negate=1
-    rx1077_cur."!cursor_pos"(rx1077_pos)
-    $P10 = rx1077_cur."number"()
-    if $P10, rx1077_fail
+    goto rxcap_1086_done
+  rxcap_1086_fail:
+    goto rx1081_fail
+  rxcap_1086_done:
   # rx subrule "O" subtype=capture negate=
-    rx1077_cur."!cursor_pos"(rx1077_pos)
-    $P10 = rx1077_cur."O"("%symbolic_unary, :pirop<neg>")
-    unless $P10, rx1077_fail
-    rx1077_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1077_pos = $P10."pos"()
+    rx1081_pos = $P10."pos"()
   # rx pass
-    rx1077_cur."!cursor_pass"(rx1077_pos, "prefix:sym<->")
-    rx1077_cur."!cursor_debug"("PASS  ", "prefix:sym<->", " at pos=", rx1077_pos)
-    .return (rx1077_cur)
-  rx1077_fail:
-.annotate 'line', 446
-    (rx1077_rep, rx1077_pos, $I10, $P10) = rx1077_cur."!mark_fail"(0)
-    lt rx1077_pos, -1, rx1077_done
-    eq rx1077_pos, -1, rx1077_fail
+    rx1081_cur."!cursor_pass"(rx1081_pos, "infix:sym<*>")
+    rx1081_cur."!cursor_debug"("PASS  ", "infix:sym<*>", " at pos=", rx1081_pos)
+    .return (rx1081_cur)
+  rx1081_restart:
+.annotate 'line', 447
+    rx1081_cur."!cursor_debug"("NEXT ", "infix:sym<*>")
+  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
-  rx1077_done:
-    rx1077_cur."!cursor_fail"()
-    rx1077_cur."!cursor_debug"("FAIL  ", "prefix:sym<->")
-    .return (rx1077_cur)
+  rx1081_done:
+    rx1081_cur."!cursor_fail"()
+    rx1081_cur."!cursor_debug"("FAIL  ", "infix:sym<*>")
+    .return (rx1081_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<->"  :subid("267_1277356913.9538") :method
-.annotate 'line', 446
-    new $P1079, "ResizablePMCArray"
-    push $P1079, "-"
-    .return ($P1079)
+.sub "!PREFIX__infix:sym<*>"  :subid("277_1280467477.44751") :method
+.annotate 'line', 447
+    $P1083 = self."!PREFIX__!subrule"("O", "*")
+    new $P1084, "ResizablePMCArray"
+    push $P1084, $P1083
+    .return ($P1084)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<?>"  :subid("268_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1083_tgt
-    .local int rx1083_pos
-    .local int rx1083_off
-    .local int rx1083_eos
-    .local int rx1083_rep
-    .local pmc rx1083_cur
-    (rx1083_cur, rx1083_pos, rx1083_tgt) = self."!cursor_start"()
-    rx1083_cur."!cursor_debug"("START ", "prefix:sym<?>")
-    .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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1087_done
-    goto rxscan1087_scan
-  rxscan1087_loop:
-    ($P10) = rx1083_cur."from"()
-    inc $P10
-    set rx1083_pos, $P10
-    ge rx1083_pos, rx1083_eos, rxscan1087_done
-  rxscan1087_scan:
-    set_addr $I10, rxscan1087_loop
-    rx1083_cur."!mark_push"(0, rx1083_pos, $I10)
-  rxscan1087_done:
-.annotate 'line', 502
+.sub "infix:sym</>"  :subid("278_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1088_tgt
+    .local int rx1088_pos
+    .local int rx1088_off
+    .local int rx1088_eos
+    .local int rx1088_rep
+    .local pmc rx1088_cur
+    (rx1088_cur, rx1088_pos, rx1088_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1088_cur."!cursor_debug"("START ", "infix:sym</>")
+    $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:
+.annotate 'line', 508
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1088_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
-    substr $S10, rx1083_tgt, $I11, 1
-    ne $S10, "?", rx1083_fail
-    add rx1083_pos, 1
-    set_addr $I10, rxcap_1088_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)
+    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
+    substr $S10, rx1088_tgt, $I11, 1
+    ne $S10, "/", 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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1088_done
-  rxcap_1088_fail:
-    goto rx1083_fail
-  rxcap_1088_done:
+    goto rxcap_1093_done
+  rxcap_1093_fail:
+    goto rx1088_fail
+  rxcap_1093_done:
   # rx subrule "O" subtype=capture negate=
-    rx1083_cur."!cursor_pos"(rx1083_pos)
-    $P10 = rx1083_cur."O"("%symbolic_unary, :pirop<istrue>")
-    unless $P10, rx1083_fail
-    rx1083_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1083_pos = $P10."pos"()
+    rx1088_pos = $P10."pos"()
   # rx pass
-    rx1083_cur."!cursor_pass"(rx1083_pos, "prefix:sym<?>")
-    rx1083_cur."!cursor_debug"("PASS  ", "prefix:sym<?>", " at pos=", rx1083_pos)
-    .return (rx1083_cur)
-  rx1083_fail:
-.annotate 'line', 446
-    (rx1083_rep, rx1083_pos, $I10, $P10) = rx1083_cur."!mark_fail"(0)
-    lt rx1083_pos, -1, rx1083_done
-    eq rx1083_pos, -1, rx1083_fail
+    rx1088_cur."!cursor_pass"(rx1088_pos, "infix:sym</>")
+    rx1088_cur."!cursor_debug"("PASS  ", "infix:sym</>", " at pos=", rx1088_pos)
+    .return (rx1088_cur)
+  rx1088_restart:
+.annotate 'line', 447
+    rx1088_cur."!cursor_debug"("NEXT ", "infix:sym</>")
+  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
-  rx1083_done:
-    rx1083_cur."!cursor_fail"()
-    rx1083_cur."!cursor_debug"("FAIL  ", "prefix:sym<?>")
-    .return (rx1083_cur)
+  rx1088_done:
+    rx1088_cur."!cursor_fail"()
+    rx1088_cur."!cursor_debug"("FAIL  ", "infix:sym</>")
+    .return (rx1088_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<?>"  :subid("269_1277356913.9538") :method
-.annotate 'line', 446
-    $P1085 = self."!PREFIX__!subrule"("O", "?")
-    new $P1086, "ResizablePMCArray"
-    push $P1086, $P1085
-    .return ($P1086)
+.sub "!PREFIX__infix:sym</>"  :subid("279_1280467477.44751") :method
+.annotate 'line', 447
+    $P1090 = self."!PREFIX__!subrule"("O", "/")
+    new $P1091, "ResizablePMCArray"
+    push $P1091, $P1090
+    .return ($P1091)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<!>"  :subid("270_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1090_tgt
-    .local int rx1090_pos
-    .local int rx1090_off
-    .local int rx1090_eos
-    .local int rx1090_rep
-    .local pmc rx1090_cur
-    (rx1090_cur, rx1090_pos, rx1090_tgt) = self."!cursor_start"()
-    rx1090_cur."!cursor_debug"("START ", "prefix:sym<!>")
-    .lex unicode:"$\x{a2}", rx1090_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1090_eos, rx1090_tgt
-    gt rx1090_pos, rx1090_eos, rx1090_done
-    set rx1090_off, 0
-    lt rx1090_pos, 2, rx1090_start
-    sub rx1090_off, rx1090_pos, 1
-    substr rx1090_tgt, rx1090_tgt, rx1090_off
-  rx1090_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1094_done
-    goto rxscan1094_scan
-  rxscan1094_loop:
-    ($P10) = rx1090_cur."from"()
-    inc $P10
-    set rx1090_pos, $P10
-    ge rx1090_pos, rx1090_eos, rxscan1094_done
-  rxscan1094_scan:
-    set_addr $I10, rxscan1094_loop
-    rx1090_cur."!mark_push"(0, rx1090_pos, $I10)
-  rxscan1094_done:
-.annotate 'line', 503
+.sub "infix:sym<%>"  :subid("280_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1095_tgt
+    .local int rx1095_pos
+    .local int rx1095_off
+    .local int rx1095_eos
+    .local int rx1095_rep
+    .local pmc rx1095_cur
+    (rx1095_cur, rx1095_pos, rx1095_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1095_cur."!cursor_debug"("START ", "infix:sym<%>")
+    $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:
+.annotate 'line', 509
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1095_fail
-    rx1090_cur."!mark_push"(0, rx1090_pos, $I10)
-  # rx literal  "!"
-    add $I11, rx1090_pos, 1
-    gt $I11, rx1090_eos, rx1090_fail
-    sub $I11, rx1090_pos, rx1090_off
-    substr $S10, rx1090_tgt, $I11, 1
-    ne $S10, "!", rx1090_fail
-    add rx1090_pos, 1
-    set_addr $I10, rxcap_1095_fail
-    ($I12, $I11) = rx1090_cur."!mark_peek"($I10)
-    rx1090_cur."!cursor_pos"($I11)
-    ($P10) = rx1090_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1090_pos, "")
-    rx1090_cur."!mark_push"(0, -1, 0, $P10)
+    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
+    substr $S10, rx1095_tgt, $I11, 1
+    ne $S10, "%", 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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1095_done
-  rxcap_1095_fail:
-    goto rx1090_fail
-  rxcap_1095_done:
+    goto rxcap_1100_done
+  rxcap_1100_fail:
+    goto rx1095_fail
+  rxcap_1100_done:
   # rx subrule "O" subtype=capture negate=
-    rx1090_cur."!cursor_pos"(rx1090_pos)
-    $P10 = rx1090_cur."O"("%symbolic_unary, :pirop<isfalse>")
-    unless $P10, rx1090_fail
-    rx1090_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1090_pos = $P10."pos"()
+    rx1095_pos = $P10."pos"()
   # rx pass
-    rx1090_cur."!cursor_pass"(rx1090_pos, "prefix:sym<!>")
-    rx1090_cur."!cursor_debug"("PASS  ", "prefix:sym<!>", " at pos=", rx1090_pos)
-    .return (rx1090_cur)
-  rx1090_fail:
-.annotate 'line', 446
-    (rx1090_rep, rx1090_pos, $I10, $P10) = rx1090_cur."!mark_fail"(0)
-    lt rx1090_pos, -1, rx1090_done
-    eq rx1090_pos, -1, rx1090_fail
+    rx1095_cur."!cursor_pass"(rx1095_pos, "infix:sym<%>")
+    rx1095_cur."!cursor_debug"("PASS  ", "infix:sym<%>", " at pos=", rx1095_pos)
+    .return (rx1095_cur)
+  rx1095_restart:
+.annotate 'line', 447
+    rx1095_cur."!cursor_debug"("NEXT ", "infix:sym<%>")
+  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
-  rx1090_done:
-    rx1090_cur."!cursor_fail"()
-    rx1090_cur."!cursor_debug"("FAIL  ", "prefix:sym<!>")
-    .return (rx1090_cur)
+  rx1095_done:
+    rx1095_cur."!cursor_fail"()
+    rx1095_cur."!cursor_debug"("FAIL  ", "infix:sym<%>")
+    .return (rx1095_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<!>"  :subid("271_1277356913.9538") :method
-.annotate 'line', 446
-    $P1092 = self."!PREFIX__!subrule"("O", "!")
-    new $P1093, "ResizablePMCArray"
-    push $P1093, $P1092
-    .return ($P1093)
+.sub "!PREFIX__infix:sym<%>"  :subid("281_1280467477.44751") :method
+.annotate 'line', 447
+    $P1097 = self."!PREFIX__!subrule"("O", "%")
+    new $P1098, "ResizablePMCArray"
+    push $P1098, $P1097
+    .return ($P1098)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<|>"  :subid("272_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1097_tgt
-    .local int rx1097_pos
-    .local int rx1097_off
-    .local int rx1097_eos
-    .local int rx1097_rep
-    .local pmc rx1097_cur
-    (rx1097_cur, rx1097_pos, rx1097_tgt) = self."!cursor_start"()
-    rx1097_cur."!cursor_debug"("START ", "prefix:sym<|>")
-    .lex unicode:"$\x{a2}", rx1097_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1097_eos, rx1097_tgt
-    gt rx1097_pos, rx1097_eos, rx1097_done
-    set rx1097_off, 0
-    lt rx1097_pos, 2, rx1097_start
-    sub rx1097_off, rx1097_pos, 1
-    substr rx1097_tgt, rx1097_tgt, rx1097_off
-  rx1097_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1101_done
-    goto rxscan1101_scan
-  rxscan1101_loop:
-    ($P10) = rx1097_cur."from"()
-    inc $P10
-    set rx1097_pos, $P10
-    ge rx1097_pos, rx1097_eos, rxscan1101_done
-  rxscan1101_scan:
-    set_addr $I10, rxscan1101_loop
-    rx1097_cur."!mark_push"(0, rx1097_pos, $I10)
-  rxscan1101_done:
-.annotate 'line', 504
+.sub "infix:sym<+&>"  :subid("282_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1102_tgt
+    .local int rx1102_pos
+    .local int rx1102_off
+    .local int rx1102_eos
+    .local int rx1102_rep
+    .local pmc rx1102_cur
+    (rx1102_cur, rx1102_pos, rx1102_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1102_cur."!cursor_debug"("START ", "infix:sym<+&>")
+    $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:
+.annotate 'line', 510
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1102_fail
-    rx1097_cur."!mark_push"(0, rx1097_pos, $I10)
-  # rx literal  "|"
-    add $I11, rx1097_pos, 1
-    gt $I11, rx1097_eos, rx1097_fail
-    sub $I11, rx1097_pos, rx1097_off
-    substr $S10, rx1097_tgt, $I11, 1
-    ne $S10, "|", rx1097_fail
-    add rx1097_pos, 1
-    set_addr $I10, rxcap_1102_fail
-    ($I12, $I11) = rx1097_cur."!mark_peek"($I10)
-    rx1097_cur."!cursor_pos"($I11)
-    ($P10) = rx1097_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1097_pos, "")
-    rx1097_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1102_done
-  rxcap_1102_fail:
-    goto rx1097_fail
-  rxcap_1102_done:
+    goto rxcap_1107_done
+  rxcap_1107_fail:
+    goto rx1102_fail
+  rxcap_1107_done:
   # rx subrule "O" subtype=capture negate=
-    rx1097_cur."!cursor_pos"(rx1097_pos)
-    $P10 = rx1097_cur."O"("%symbolic_unary")
-    unless $P10, rx1097_fail
-    rx1097_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1097_pos = $P10."pos"()
+    rx1102_pos = $P10."pos"()
   # rx pass
-    rx1097_cur."!cursor_pass"(rx1097_pos, "prefix:sym<|>")
-    rx1097_cur."!cursor_debug"("PASS  ", "prefix:sym<|>", " at pos=", rx1097_pos)
-    .return (rx1097_cur)
-  rx1097_fail:
-.annotate 'line', 446
-    (rx1097_rep, rx1097_pos, $I10, $P10) = rx1097_cur."!mark_fail"(0)
-    lt rx1097_pos, -1, rx1097_done
-    eq rx1097_pos, -1, rx1097_fail
+    rx1102_cur."!cursor_pass"(rx1102_pos, "infix:sym<+&>")
+    rx1102_cur."!cursor_debug"("PASS  ", "infix:sym<+&>", " at pos=", rx1102_pos)
+    .return (rx1102_cur)
+  rx1102_restart:
+.annotate 'line', 447
+    rx1102_cur."!cursor_debug"("NEXT ", "infix:sym<+&>")
+  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
-  rx1097_done:
-    rx1097_cur."!cursor_fail"()
-    rx1097_cur."!cursor_debug"("FAIL  ", "prefix:sym<|>")
-    .return (rx1097_cur)
+  rx1102_done:
+    rx1102_cur."!cursor_fail"()
+    rx1102_cur."!cursor_debug"("FAIL  ", "infix:sym<+&>")
+    .return (rx1102_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<|>"  :subid("273_1277356913.9538") :method
-.annotate 'line', 446
-    $P1099 = self."!PREFIX__!subrule"("O", "|")
-    new $P1100, "ResizablePMCArray"
-    push $P1100, $P1099
-    .return ($P1100)
+.sub "!PREFIX__infix:sym<+&>"  :subid("283_1280467477.44751") :method
+.annotate 'line', 447
+    $P1104 = self."!PREFIX__!subrule"("O", "+&")
+    new $P1105, "ResizablePMCArray"
+    push $P1105, $P1104
+    .return ($P1105)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<*>"  :subid("274_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1104_tgt
-    .local int rx1104_pos
-    .local int rx1104_off
-    .local int rx1104_eos
-    .local int rx1104_rep
-    .local pmc rx1104_cur
-    (rx1104_cur, rx1104_pos, rx1104_tgt) = self."!cursor_start"()
-    rx1104_cur."!cursor_debug"("START ", "infix:sym<*>")
-    .lex unicode:"$\x{a2}", rx1104_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1104_eos, rx1104_tgt
-    gt rx1104_pos, rx1104_eos, rx1104_done
-    set rx1104_off, 0
-    lt rx1104_pos, 2, rx1104_start
-    sub rx1104_off, rx1104_pos, 1
-    substr rx1104_tgt, rx1104_tgt, rx1104_off
-  rx1104_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1108_done
-    goto rxscan1108_scan
-  rxscan1108_loop:
-    ($P10) = rx1104_cur."from"()
-    inc $P10
-    set rx1104_pos, $P10
-    ge rx1104_pos, rx1104_eos, rxscan1108_done
-  rxscan1108_scan:
-    set_addr $I10, rxscan1108_loop
-    rx1104_cur."!mark_push"(0, rx1104_pos, $I10)
-  rxscan1108_done:
-.annotate 'line', 506
+.sub "infix:sym<+>"  :subid("284_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1109_tgt
+    .local int rx1109_pos
+    .local int rx1109_off
+    .local int rx1109_eos
+    .local int rx1109_rep
+    .local pmc rx1109_cur
+    (rx1109_cur, rx1109_pos, rx1109_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1109_cur."!cursor_debug"("START ", "infix:sym<+>")
+    $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:
+.annotate 'line', 512
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1109_fail
-    rx1104_cur."!mark_push"(0, rx1104_pos, $I10)
-  # rx literal  "*"
-    add $I11, rx1104_pos, 1
-    gt $I11, rx1104_eos, rx1104_fail
-    sub $I11, rx1104_pos, rx1104_off
-    substr $S10, rx1104_tgt, $I11, 1
-    ne $S10, "*", rx1104_fail
-    add rx1104_pos, 1
-    set_addr $I10, rxcap_1109_fail
-    ($I12, $I11) = rx1104_cur."!mark_peek"($I10)
-    rx1104_cur."!cursor_pos"($I11)
-    ($P10) = rx1104_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1104_pos, "")
-    rx1104_cur."!mark_push"(0, -1, 0, $P10)
+    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
+    substr $S10, rx1109_tgt, $I11, 1
+    ne $S10, "+", 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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1109_done
-  rxcap_1109_fail:
-    goto rx1104_fail
-  rxcap_1109_done:
+    goto rxcap_1114_done
+  rxcap_1114_fail:
+    goto rx1109_fail
+  rxcap_1114_done:
   # rx subrule "O" subtype=capture negate=
-    rx1104_cur."!cursor_pos"(rx1104_pos)
-    $P10 = rx1104_cur."O"("%multiplicative, :pirop<mul>")
-    unless $P10, rx1104_fail
-    rx1104_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1104_pos = $P10."pos"()
+    rx1109_pos = $P10."pos"()
   # rx pass
-    rx1104_cur."!cursor_pass"(rx1104_pos, "infix:sym<*>")
-    rx1104_cur."!cursor_debug"("PASS  ", "infix:sym<*>", " at pos=", rx1104_pos)
-    .return (rx1104_cur)
-  rx1104_fail:
-.annotate 'line', 446
-    (rx1104_rep, rx1104_pos, $I10, $P10) = rx1104_cur."!mark_fail"(0)
-    lt rx1104_pos, -1, rx1104_done
-    eq rx1104_pos, -1, rx1104_fail
+    rx1109_cur."!cursor_pass"(rx1109_pos, "infix:sym<+>")
+    rx1109_cur."!cursor_debug"("PASS  ", "infix:sym<+>", " at pos=", rx1109_pos)
+    .return (rx1109_cur)
+  rx1109_restart:
+.annotate 'line', 447
+    rx1109_cur."!cursor_debug"("NEXT ", "infix:sym<+>")
+  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
-  rx1104_done:
-    rx1104_cur."!cursor_fail"()
-    rx1104_cur."!cursor_debug"("FAIL  ", "infix:sym<*>")
-    .return (rx1104_cur)
+  rx1109_done:
+    rx1109_cur."!cursor_fail"()
+    rx1109_cur."!cursor_debug"("FAIL  ", "infix:sym<+>")
+    .return (rx1109_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<*>"  :subid("275_1277356913.9538") :method
-.annotate 'line', 446
-    $P1106 = self."!PREFIX__!subrule"("O", "*")
-    new $P1107, "ResizablePMCArray"
-    push $P1107, $P1106
-    .return ($P1107)
+.sub "!PREFIX__infix:sym<+>"  :subid("285_1280467477.44751") :method
+.annotate 'line', 447
+    $P1111 = self."!PREFIX__!subrule"("O", "+")
+    new $P1112, "ResizablePMCArray"
+    push $P1112, $P1111
+    .return ($P1112)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym</>"  :subid("276_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1111_tgt
-    .local int rx1111_pos
-    .local int rx1111_off
-    .local int rx1111_eos
-    .local int rx1111_rep
-    .local pmc rx1111_cur
-    (rx1111_cur, rx1111_pos, rx1111_tgt) = self."!cursor_start"()
-    rx1111_cur."!cursor_debug"("START ", "infix:sym</>")
-    .lex unicode:"$\x{a2}", rx1111_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1111_eos, rx1111_tgt
-    gt rx1111_pos, rx1111_eos, rx1111_done
-    set rx1111_off, 0
-    lt rx1111_pos, 2, rx1111_start
-    sub rx1111_off, rx1111_pos, 1
-    substr rx1111_tgt, rx1111_tgt, rx1111_off
-  rx1111_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1115_done
-    goto rxscan1115_scan
-  rxscan1115_loop:
-    ($P10) = rx1111_cur."from"()
-    inc $P10
-    set rx1111_pos, $P10
-    ge rx1111_pos, rx1111_eos, rxscan1115_done
-  rxscan1115_scan:
-    set_addr $I10, rxscan1115_loop
-    rx1111_cur."!mark_push"(0, rx1111_pos, $I10)
-  rxscan1115_done:
-.annotate 'line', 507
+.sub "infix:sym<->"  :subid("286_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1116_tgt
+    .local int rx1116_pos
+    .local int rx1116_off
+    .local int rx1116_eos
+    .local int rx1116_rep
+    .local pmc rx1116_cur
+    (rx1116_cur, rx1116_pos, rx1116_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1116_cur."!cursor_debug"("START ", "infix:sym<->")
+    $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:
+.annotate 'line', 513
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1116_fail
-    rx1111_cur."!mark_push"(0, rx1111_pos, $I10)
-  # rx literal  "/"
-    add $I11, rx1111_pos, 1
-    gt $I11, rx1111_eos, rx1111_fail
-    sub $I11, rx1111_pos, rx1111_off
-    substr $S10, rx1111_tgt, $I11, 1
-    ne $S10, "/", rx1111_fail
-    add rx1111_pos, 1
-    set_addr $I10, rxcap_1116_fail
-    ($I12, $I11) = rx1111_cur."!mark_peek"($I10)
-    rx1111_cur."!cursor_pos"($I11)
-    ($P10) = rx1111_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1111_pos, "")
-    rx1111_cur."!mark_push"(0, -1, 0, $P10)
+    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
+    substr $S10, rx1116_tgt, $I11, 1
+    ne $S10, "-", 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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1116_done
-  rxcap_1116_fail:
-    goto rx1111_fail
-  rxcap_1116_done:
+    goto rxcap_1121_done
+  rxcap_1121_fail:
+    goto rx1116_fail
+  rxcap_1121_done:
   # rx subrule "O" subtype=capture negate=
-    rx1111_cur."!cursor_pos"(rx1111_pos)
-    $P10 = rx1111_cur."O"("%multiplicative, :pirop<div>")
-    unless $P10, rx1111_fail
-    rx1111_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1111_pos = $P10."pos"()
+    rx1116_pos = $P10."pos"()
   # rx pass
-    rx1111_cur."!cursor_pass"(rx1111_pos, "infix:sym</>")
-    rx1111_cur."!cursor_debug"("PASS  ", "infix:sym</>", " at pos=", rx1111_pos)
-    .return (rx1111_cur)
-  rx1111_fail:
-.annotate 'line', 446
-    (rx1111_rep, rx1111_pos, $I10, $P10) = rx1111_cur."!mark_fail"(0)
-    lt rx1111_pos, -1, rx1111_done
-    eq rx1111_pos, -1, rx1111_fail
+    rx1116_cur."!cursor_pass"(rx1116_pos, "infix:sym<->")
+    rx1116_cur."!cursor_debug"("PASS  ", "infix:sym<->", " at pos=", rx1116_pos)
+    .return (rx1116_cur)
+  rx1116_restart:
+.annotate 'line', 447
+    rx1116_cur."!cursor_debug"("NEXT ", "infix:sym<->")
+  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
-  rx1111_done:
-    rx1111_cur."!cursor_fail"()
-    rx1111_cur."!cursor_debug"("FAIL  ", "infix:sym</>")
-    .return (rx1111_cur)
+  rx1116_done:
+    rx1116_cur."!cursor_fail"()
+    rx1116_cur."!cursor_debug"("FAIL  ", "infix:sym<->")
+    .return (rx1116_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym</>"  :subid("277_1277356913.9538") :method
-.annotate 'line', 446
-    $P1113 = self."!PREFIX__!subrule"("O", "/")
-    new $P1114, "ResizablePMCArray"
-    push $P1114, $P1113
-    .return ($P1114)
+.sub "!PREFIX__infix:sym<->"  :subid("287_1280467477.44751") :method
+.annotate 'line', 447
+    $P1118 = self."!PREFIX__!subrule"("O", "-")
+    new $P1119, "ResizablePMCArray"
+    push $P1119, $P1118
+    .return ($P1119)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<%>"  :subid("278_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1118_tgt
-    .local int rx1118_pos
-    .local int rx1118_off
-    .local int rx1118_eos
-    .local int rx1118_rep
-    .local pmc rx1118_cur
-    (rx1118_cur, rx1118_pos, rx1118_tgt) = self."!cursor_start"()
-    rx1118_cur."!cursor_debug"("START ", "infix:sym<%>")
-    .lex unicode:"$\x{a2}", rx1118_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1118_eos, rx1118_tgt
-    gt rx1118_pos, rx1118_eos, rx1118_done
-    set rx1118_off, 0
-    lt rx1118_pos, 2, rx1118_start
-    sub rx1118_off, rx1118_pos, 1
-    substr rx1118_tgt, rx1118_tgt, rx1118_off
-  rx1118_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1122_done
-    goto rxscan1122_scan
-  rxscan1122_loop:
-    ($P10) = rx1118_cur."from"()
-    inc $P10
-    set rx1118_pos, $P10
-    ge rx1118_pos, rx1118_eos, rxscan1122_done
-  rxscan1122_scan:
-    set_addr $I10, rxscan1122_loop
-    rx1118_cur."!mark_push"(0, rx1118_pos, $I10)
-  rxscan1122_done:
-.annotate 'line', 508
+.sub "infix:sym<+|>"  :subid("288_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1123_tgt
+    .local int rx1123_pos
+    .local int rx1123_off
+    .local int rx1123_eos
+    .local int rx1123_rep
+    .local pmc rx1123_cur
+    (rx1123_cur, rx1123_pos, rx1123_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1123_cur."!cursor_debug"("START ", "infix:sym<+|>")
+    $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:
+.annotate 'line', 514
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1123_fail
-    rx1118_cur."!mark_push"(0, rx1118_pos, $I10)
-  # rx literal  "%"
-    add $I11, rx1118_pos, 1
-    gt $I11, rx1118_eos, rx1118_fail
-    sub $I11, rx1118_pos, rx1118_off
-    substr $S10, rx1118_tgt, $I11, 1
-    ne $S10, "%", rx1118_fail
-    add rx1118_pos, 1
-    set_addr $I10, rxcap_1123_fail
-    ($I12, $I11) = rx1118_cur."!mark_peek"($I10)
-    rx1118_cur."!cursor_pos"($I11)
-    ($P10) = rx1118_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1118_pos, "")
-    rx1118_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1123_done
-  rxcap_1123_fail:
-    goto rx1118_fail
-  rxcap_1123_done:
+    goto rxcap_1128_done
+  rxcap_1128_fail:
+    goto rx1123_fail
+  rxcap_1128_done:
   # rx subrule "O" subtype=capture negate=
-    rx1118_cur."!cursor_pos"(rx1118_pos)
-    $P10 = rx1118_cur."O"("%multiplicative, :pirop<mod>")
-    unless $P10, rx1118_fail
-    rx1118_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1118_pos = $P10."pos"()
+    rx1123_pos = $P10."pos"()
   # rx pass
-    rx1118_cur."!cursor_pass"(rx1118_pos, "infix:sym<%>")
-    rx1118_cur."!cursor_debug"("PASS  ", "infix:sym<%>", " at pos=", rx1118_pos)
-    .return (rx1118_cur)
-  rx1118_fail:
-.annotate 'line', 446
-    (rx1118_rep, rx1118_pos, $I10, $P10) = rx1118_cur."!mark_fail"(0)
-    lt rx1118_pos, -1, rx1118_done
-    eq rx1118_pos, -1, rx1118_fail
+    rx1123_cur."!cursor_pass"(rx1123_pos, "infix:sym<+|>")
+    rx1123_cur."!cursor_debug"("PASS  ", "infix:sym<+|>", " at pos=", rx1123_pos)
+    .return (rx1123_cur)
+  rx1123_restart:
+.annotate 'line', 447
+    rx1123_cur."!cursor_debug"("NEXT ", "infix:sym<+|>")
+  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
-  rx1118_done:
-    rx1118_cur."!cursor_fail"()
-    rx1118_cur."!cursor_debug"("FAIL  ", "infix:sym<%>")
-    .return (rx1118_cur)
+  rx1123_done:
+    rx1123_cur."!cursor_fail"()
+    rx1123_cur."!cursor_debug"("FAIL  ", "infix:sym<+|>")
+    .return (rx1123_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<%>"  :subid("279_1277356913.9538") :method
-.annotate 'line', 446
-    $P1120 = self."!PREFIX__!subrule"("O", "%")
-    new $P1121, "ResizablePMCArray"
-    push $P1121, $P1120
-    .return ($P1121)
+.sub "!PREFIX__infix:sym<+|>"  :subid("289_1280467477.44751") :method
+.annotate 'line', 447
+    $P1125 = self."!PREFIX__!subrule"("O", "+|")
+    new $P1126, "ResizablePMCArray"
+    push $P1126, $P1125
+    .return ($P1126)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+>"  :subid("280_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1125_tgt
-    .local int rx1125_pos
-    .local int rx1125_off
-    .local int rx1125_eos
-    .local int rx1125_rep
-    .local pmc rx1125_cur
-    (rx1125_cur, rx1125_pos, rx1125_tgt) = self."!cursor_start"()
-    rx1125_cur."!cursor_debug"("START ", "infix:sym<+>")
-    .lex unicode:"$\x{a2}", rx1125_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1125_eos, rx1125_tgt
-    gt rx1125_pos, rx1125_eos, rx1125_done
-    set rx1125_off, 0
-    lt rx1125_pos, 2, rx1125_start
-    sub rx1125_off, rx1125_pos, 1
-    substr rx1125_tgt, rx1125_tgt, rx1125_off
-  rx1125_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1129_done
-    goto rxscan1129_scan
-  rxscan1129_loop:
-    ($P10) = rx1125_cur."from"()
-    inc $P10
-    set rx1125_pos, $P10
-    ge rx1125_pos, rx1125_eos, rxscan1129_done
-  rxscan1129_scan:
-    set_addr $I10, rxscan1129_loop
-    rx1125_cur."!mark_push"(0, rx1125_pos, $I10)
-  rxscan1129_done:
-.annotate 'line', 510
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_1130_fail
-    rx1125_cur."!mark_push"(0, rx1125_pos, $I10)
-  # rx literal  "+"
-    add $I11, rx1125_pos, 1
-    gt $I11, rx1125_eos, rx1125_fail
-    sub $I11, rx1125_pos, rx1125_off
-    substr $S10, rx1125_tgt, $I11, 1
-    ne $S10, "+", rx1125_fail
-    add rx1125_pos, 1
-    set_addr $I10, rxcap_1130_fail
-    ($I12, $I11) = rx1125_cur."!mark_peek"($I10)
-    rx1125_cur."!cursor_pos"($I11)
-    ($P10) = rx1125_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1125_pos, "")
-    rx1125_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_1130_done
-  rxcap_1130_fail:
-    goto rx1125_fail
-  rxcap_1130_done:
-  # rx subrule "O" subtype=capture negate=
-    rx1125_cur."!cursor_pos"(rx1125_pos)
-    $P10 = rx1125_cur."O"("%additive, :pirop<add>")
-    unless $P10, rx1125_fail
-    rx1125_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("O")
-    rx1125_pos = $P10."pos"()
-  # rx pass
-    rx1125_cur."!cursor_pass"(rx1125_pos, "infix:sym<+>")
-    rx1125_cur."!cursor_debug"("PASS  ", "infix:sym<+>", " at pos=", rx1125_pos)
-    .return (rx1125_cur)
-  rx1125_fail:
-.annotate 'line', 446
-    (rx1125_rep, rx1125_pos, $I10, $P10) = rx1125_cur."!mark_fail"(0)
-    lt rx1125_pos, -1, rx1125_done
-    eq rx1125_pos, -1, rx1125_fail
-    jump $I10
-  rx1125_done:
-    rx1125_cur."!cursor_fail"()
-    rx1125_cur."!cursor_debug"("FAIL  ", "infix:sym<+>")
-    .return (rx1125_cur)
-    .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+>"  :subid("281_1277356913.9538") :method
-.annotate 'line', 446
-    $P1127 = self."!PREFIX__!subrule"("O", "+")
-    new $P1128, "ResizablePMCArray"
-    push $P1128, $P1127
-    .return ($P1128)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "infix:sym<->"  :subid("282_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1132_tgt
-    .local int rx1132_pos
-    .local int rx1132_off
-    .local int rx1132_eos
-    .local int rx1132_rep
-    .local pmc rx1132_cur
-    (rx1132_cur, rx1132_pos, rx1132_tgt) = self."!cursor_start"()
-    rx1132_cur."!cursor_debug"("START ", "infix:sym<->")
-    .lex unicode:"$\x{a2}", rx1132_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1132_eos, rx1132_tgt
-    gt rx1132_pos, rx1132_eos, rx1132_done
-    set rx1132_off, 0
-    lt rx1132_pos, 2, rx1132_start
-    sub rx1132_off, rx1132_pos, 1
-    substr rx1132_tgt, rx1132_tgt, rx1132_off
-  rx1132_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1136_done
-    goto rxscan1136_scan
-  rxscan1136_loop:
-    ($P10) = rx1132_cur."from"()
-    inc $P10
-    set rx1132_pos, $P10
-    ge rx1132_pos, rx1132_eos, rxscan1136_done
-  rxscan1136_scan:
-    set_addr $I10, rxscan1136_loop
-    rx1132_cur."!mark_push"(0, rx1132_pos, $I10)
-  rxscan1136_done:
-.annotate 'line', 511
+.sub "infix:sym<+^>"  :subid("290_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1130_tgt
+    .local int rx1130_pos
+    .local int rx1130_off
+    .local int rx1130_eos
+    .local int rx1130_rep
+    .local pmc rx1130_cur
+    (rx1130_cur, rx1130_pos, rx1130_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1130_cur."!cursor_debug"("START ", "infix:sym<+^>")
+    $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:
+.annotate 'line', 515
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1137_fail
-    rx1132_cur."!mark_push"(0, rx1132_pos, $I10)
-  # rx literal  "-"
-    add $I11, rx1132_pos, 1
-    gt $I11, rx1132_eos, rx1132_fail
-    sub $I11, rx1132_pos, rx1132_off
-    substr $S10, rx1132_tgt, $I11, 1
-    ne $S10, "-", rx1132_fail
-    add rx1132_pos, 1
-    set_addr $I10, rxcap_1137_fail
-    ($I12, $I11) = rx1132_cur."!mark_peek"($I10)
-    rx1132_cur."!cursor_pos"($I11)
-    ($P10) = rx1132_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1132_pos, "")
-    rx1132_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1137_done
-  rxcap_1137_fail:
-    goto rx1132_fail
-  rxcap_1137_done:
+    goto rxcap_1135_done
+  rxcap_1135_fail:
+    goto rx1130_fail
+  rxcap_1135_done:
   # rx subrule "O" subtype=capture negate=
-    rx1132_cur."!cursor_pos"(rx1132_pos)
-    $P10 = rx1132_cur."O"("%additive, :pirop<sub>")
-    unless $P10, rx1132_fail
-    rx1132_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1132_pos = $P10."pos"()
+    rx1130_pos = $P10."pos"()
   # rx pass
-    rx1132_cur."!cursor_pass"(rx1132_pos, "infix:sym<->")
-    rx1132_cur."!cursor_debug"("PASS  ", "infix:sym<->", " at pos=", rx1132_pos)
-    .return (rx1132_cur)
-  rx1132_fail:
-.annotate 'line', 446
-    (rx1132_rep, rx1132_pos, $I10, $P10) = rx1132_cur."!mark_fail"(0)
-    lt rx1132_pos, -1, rx1132_done
-    eq rx1132_pos, -1, rx1132_fail
+    rx1130_cur."!cursor_pass"(rx1130_pos, "infix:sym<+^>")
+    rx1130_cur."!cursor_debug"("PASS  ", "infix:sym<+^>", " at pos=", rx1130_pos)
+    .return (rx1130_cur)
+  rx1130_restart:
+.annotate 'line', 447
+    rx1130_cur."!cursor_debug"("NEXT ", "infix:sym<+^>")
+  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
-  rx1132_done:
-    rx1132_cur."!cursor_fail"()
-    rx1132_cur."!cursor_debug"("FAIL  ", "infix:sym<->")
-    .return (rx1132_cur)
+  rx1130_done:
+    rx1130_cur."!cursor_fail"()
+    rx1130_cur."!cursor_debug"("FAIL  ", "infix:sym<+^>")
+    .return (rx1130_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<->"  :subid("283_1277356913.9538") :method
-.annotate 'line', 446
-    $P1134 = self."!PREFIX__!subrule"("O", "-")
-    new $P1135, "ResizablePMCArray"
-    push $P1135, $P1134
-    .return ($P1135)
+.sub "!PREFIX__infix:sym<+^>"  :subid("291_1280467477.44751") :method
+.annotate 'line', 447
+    $P1132 = self."!PREFIX__!subrule"("O", "+^")
+    new $P1133, "ResizablePMCArray"
+    push $P1133, $P1132
+    .return ($P1133)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~>"  :subid("284_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1139_tgt
-    .local int rx1139_pos
-    .local int rx1139_off
-    .local int rx1139_eos
-    .local int rx1139_rep
-    .local pmc rx1139_cur
-    (rx1139_cur, rx1139_pos, rx1139_tgt) = self."!cursor_start"()
-    rx1139_cur."!cursor_debug"("START ", "infix:sym<~>")
-    .lex unicode:"$\x{a2}", rx1139_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1139_eos, rx1139_tgt
-    gt rx1139_pos, rx1139_eos, rx1139_done
-    set rx1139_off, 0
-    lt rx1139_pos, 2, rx1139_start
-    sub rx1139_off, rx1139_pos, 1
-    substr rx1139_tgt, rx1139_tgt, rx1139_off
-  rx1139_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1143_done
-    goto rxscan1143_scan
-  rxscan1143_loop:
-    ($P10) = rx1139_cur."from"()
-    inc $P10
-    set rx1139_pos, $P10
-    ge rx1139_pos, rx1139_eos, rxscan1143_done
-  rxscan1143_scan:
-    set_addr $I10, rxscan1143_loop
-    rx1139_cur."!mark_push"(0, rx1139_pos, $I10)
-  rxscan1143_done:
-.annotate 'line', 513
+.sub "infix:sym<~>"  :subid("292_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1137_tgt
+    .local int rx1137_pos
+    .local int rx1137_off
+    .local int rx1137_eos
+    .local int rx1137_rep
+    .local pmc rx1137_cur
+    (rx1137_cur, rx1137_pos, rx1137_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1137_cur."!cursor_debug"("START ", "infix:sym<~>")
+    $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:
+.annotate 'line', 517
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1144_fail
-    rx1139_cur."!mark_push"(0, rx1139_pos, $I10)
+    set_addr $I10, rxcap_1142_fail
+    rx1137_cur."!mark_push"(0, rx1137_pos, $I10)
   # rx literal  "~"
-    add $I11, rx1139_pos, 1
-    gt $I11, rx1139_eos, rx1139_fail
-    sub $I11, rx1139_pos, rx1139_off
-    substr $S10, rx1139_tgt, $I11, 1
-    ne $S10, "~", rx1139_fail
-    add rx1139_pos, 1
-    set_addr $I10, rxcap_1144_fail
-    ($I12, $I11) = rx1139_cur."!mark_peek"($I10)
-    rx1139_cur."!cursor_pos"($I11)
-    ($P10) = rx1139_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1139_pos, "")
-    rx1139_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1137_pos, 1
+    gt $I11, rx1137_eos, rx1137_fail
+    sub $I11, rx1137_pos, rx1137_off
+    substr $S10, rx1137_tgt, $I11, 1
+    ne $S10, "~", rx1137_fail
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1144_done
-  rxcap_1144_fail:
-    goto rx1139_fail
-  rxcap_1144_done:
+    goto rxcap_1142_done
+  rxcap_1142_fail:
+    goto rx1137_fail
+  rxcap_1142_done:
   # rx subrule "O" subtype=capture negate=
-    rx1139_cur."!cursor_pos"(rx1139_pos)
-    $P10 = rx1139_cur."O"("%concatenation , :pirop<concat>")
-    unless $P10, rx1139_fail
-    rx1139_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1139_pos = $P10."pos"()
+    rx1137_pos = $P10."pos"()
   # rx pass
-    rx1139_cur."!cursor_pass"(rx1139_pos, "infix:sym<~>")
-    rx1139_cur."!cursor_debug"("PASS  ", "infix:sym<~>", " at pos=", rx1139_pos)
-    .return (rx1139_cur)
-  rx1139_fail:
-.annotate 'line', 446
-    (rx1139_rep, rx1139_pos, $I10, $P10) = rx1139_cur."!mark_fail"(0)
-    lt rx1139_pos, -1, rx1139_done
-    eq rx1139_pos, -1, rx1139_fail
+    rx1137_cur."!cursor_pass"(rx1137_pos, "infix:sym<~>")
+    rx1137_cur."!cursor_debug"("PASS  ", "infix:sym<~>", " at pos=", rx1137_pos)
+    .return (rx1137_cur)
+  rx1137_restart:
+.annotate 'line', 447
+    rx1137_cur."!cursor_debug"("NEXT ", "infix:sym<~>")
+  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
-  rx1139_done:
-    rx1139_cur."!cursor_fail"()
-    rx1139_cur."!cursor_debug"("FAIL  ", "infix:sym<~>")
-    .return (rx1139_cur)
+  rx1137_done:
+    rx1137_cur."!cursor_fail"()
+    rx1137_cur."!cursor_debug"("FAIL  ", "infix:sym<~>")
+    .return (rx1137_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~>"  :subid("285_1277356913.9538") :method
-.annotate 'line', 446
-    $P1141 = self."!PREFIX__!subrule"("O", "~")
-    new $P1142, "ResizablePMCArray"
-    push $P1142, $P1141
-    .return ($P1142)
+.sub "!PREFIX__infix:sym<~>"  :subid("293_1280467477.44751") :method
+.annotate 'line', 447
+    $P1139 = self."!PREFIX__!subrule"("O", "~")
+    new $P1140, "ResizablePMCArray"
+    push $P1140, $P1139
+    .return ($P1140)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<==>"  :subid("286_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1146_tgt
-    .local int rx1146_pos
-    .local int rx1146_off
-    .local int rx1146_eos
-    .local int rx1146_rep
-    .local pmc rx1146_cur
-    (rx1146_cur, rx1146_pos, rx1146_tgt) = self."!cursor_start"()
-    rx1146_cur."!cursor_debug"("START ", "infix:sym<==>")
-    .lex unicode:"$\x{a2}", rx1146_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1146_eos, rx1146_tgt
-    gt rx1146_pos, rx1146_eos, rx1146_done
-    set rx1146_off, 0
-    lt rx1146_pos, 2, rx1146_start
-    sub rx1146_off, rx1146_pos, 1
-    substr rx1146_tgt, rx1146_tgt, rx1146_off
-  rx1146_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1150_done
-    goto rxscan1150_scan
-  rxscan1150_loop:
-    ($P10) = rx1146_cur."from"()
-    inc $P10
-    set rx1146_pos, $P10
-    ge rx1146_pos, rx1146_eos, rxscan1150_done
-  rxscan1150_scan:
-    set_addr $I10, rxscan1150_loop
-    rx1146_cur."!mark_push"(0, rx1146_pos, $I10)
-  rxscan1150_done:
-.annotate 'line', 515
+.sub "infix:sym<==>"  :subid("294_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1144_tgt
+    .local int rx1144_pos
+    .local int rx1144_off
+    .local int rx1144_eos
+    .local int rx1144_rep
+    .local pmc rx1144_cur
+    (rx1144_cur, rx1144_pos, rx1144_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1144_cur."!cursor_debug"("START ", "infix:sym<==>")
+    $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:
+.annotate 'line', 519
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1151_fail
-    rx1146_cur."!mark_push"(0, rx1146_pos, $I10)
+    set_addr $I10, rxcap_1149_fail
+    rx1144_cur."!mark_push"(0, rx1144_pos, $I10)
   # rx literal  "=="
-    add $I11, rx1146_pos, 2
-    gt $I11, rx1146_eos, rx1146_fail
-    sub $I11, rx1146_pos, rx1146_off
-    substr $S10, rx1146_tgt, $I11, 2
-    ne $S10, "==", rx1146_fail
-    add rx1146_pos, 2
-    set_addr $I10, rxcap_1151_fail
-    ($I12, $I11) = rx1146_cur."!mark_peek"($I10)
-    rx1146_cur."!cursor_pos"($I11)
-    ($P10) = rx1146_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1146_pos, "")
-    rx1146_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1151_done
-  rxcap_1151_fail:
-    goto rx1146_fail
-  rxcap_1151_done:
+    goto rxcap_1149_done
+  rxcap_1149_fail:
+    goto rx1144_fail
+  rxcap_1149_done:
   # rx subrule "O" subtype=capture negate=
-    rx1146_cur."!cursor_pos"(rx1146_pos)
-    $P10 = rx1146_cur."O"("%relational, :pirop<iseq INn>")
-    unless $P10, rx1146_fail
-    rx1146_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1146_pos = $P10."pos"()
+    rx1144_pos = $P10."pos"()
   # rx pass
-    rx1146_cur."!cursor_pass"(rx1146_pos, "infix:sym<==>")
-    rx1146_cur."!cursor_debug"("PASS  ", "infix:sym<==>", " at pos=", rx1146_pos)
-    .return (rx1146_cur)
-  rx1146_fail:
-.annotate 'line', 446
-    (rx1146_rep, rx1146_pos, $I10, $P10) = rx1146_cur."!mark_fail"(0)
-    lt rx1146_pos, -1, rx1146_done
-    eq rx1146_pos, -1, rx1146_fail
+    rx1144_cur."!cursor_pass"(rx1144_pos, "infix:sym<==>")
+    rx1144_cur."!cursor_debug"("PASS  ", "infix:sym<==>", " at pos=", rx1144_pos)
+    .return (rx1144_cur)
+  rx1144_restart:
+.annotate 'line', 447
+    rx1144_cur."!cursor_debug"("NEXT ", "infix:sym<==>")
+  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
-  rx1146_done:
-    rx1146_cur."!cursor_fail"()
-    rx1146_cur."!cursor_debug"("FAIL  ", "infix:sym<==>")
-    .return (rx1146_cur)
+  rx1144_done:
+    rx1144_cur."!cursor_fail"()
+    rx1144_cur."!cursor_debug"("FAIL  ", "infix:sym<==>")
+    .return (rx1144_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<==>"  :subid("287_1277356913.9538") :method
-.annotate 'line', 446
-    $P1148 = self."!PREFIX__!subrule"("O", "==")
-    new $P1149, "ResizablePMCArray"
-    push $P1149, $P1148
-    .return ($P1149)
+.sub "!PREFIX__infix:sym<==>"  :subid("295_1280467477.44751") :method
+.annotate 'line', 447
+    $P1146 = self."!PREFIX__!subrule"("O", "==")
+    new $P1147, "ResizablePMCArray"
+    push $P1147, $P1146
+    .return ($P1147)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<!=>"  :subid("288_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1153_tgt
-    .local int rx1153_pos
-    .local int rx1153_off
-    .local int rx1153_eos
-    .local int rx1153_rep
-    .local pmc rx1153_cur
-    (rx1153_cur, rx1153_pos, rx1153_tgt) = self."!cursor_start"()
-    rx1153_cur."!cursor_debug"("START ", "infix:sym<!=>")
-    .lex unicode:"$\x{a2}", rx1153_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1153_eos, rx1153_tgt
-    gt rx1153_pos, rx1153_eos, rx1153_done
-    set rx1153_off, 0
-    lt rx1153_pos, 2, rx1153_start
-    sub rx1153_off, rx1153_pos, 1
-    substr rx1153_tgt, rx1153_tgt, rx1153_off
-  rx1153_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1157_done
-    goto rxscan1157_scan
-  rxscan1157_loop:
-    ($P10) = rx1153_cur."from"()
-    inc $P10
-    set rx1153_pos, $P10
-    ge rx1153_pos, rx1153_eos, rxscan1157_done
-  rxscan1157_scan:
-    set_addr $I10, rxscan1157_loop
-    rx1153_cur."!mark_push"(0, rx1153_pos, $I10)
-  rxscan1157_done:
-.annotate 'line', 516
+.sub "infix:sym<!=>"  :subid("296_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1151_tgt
+    .local int rx1151_pos
+    .local int rx1151_off
+    .local int rx1151_eos
+    .local int rx1151_rep
+    .local pmc rx1151_cur
+    (rx1151_cur, rx1151_pos, rx1151_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1151_cur."!cursor_debug"("START ", "infix:sym<!=>")
+    $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:
+.annotate 'line', 520
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1158_fail
-    rx1153_cur."!mark_push"(0, rx1153_pos, $I10)
+    set_addr $I10, rxcap_1156_fail
+    rx1151_cur."!mark_push"(0, rx1151_pos, $I10)
   # rx literal  "!="
-    add $I11, rx1153_pos, 2
-    gt $I11, rx1153_eos, rx1153_fail
-    sub $I11, rx1153_pos, rx1153_off
-    substr $S10, rx1153_tgt, $I11, 2
-    ne $S10, "!=", rx1153_fail
-    add rx1153_pos, 2
-    set_addr $I10, rxcap_1158_fail
-    ($I12, $I11) = rx1153_cur."!mark_peek"($I10)
-    rx1153_cur."!cursor_pos"($I11)
-    ($P10) = rx1153_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1153_pos, "")
-    rx1153_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1158_done
-  rxcap_1158_fail:
-    goto rx1153_fail
-  rxcap_1158_done:
+    goto rxcap_1156_done
+  rxcap_1156_fail:
+    goto rx1151_fail
+  rxcap_1156_done:
   # rx subrule "O" subtype=capture negate=
-    rx1153_cur."!cursor_pos"(rx1153_pos)
-    $P10 = rx1153_cur."O"("%relational, :pirop<isne INn>")
-    unless $P10, rx1153_fail
-    rx1153_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1153_pos = $P10."pos"()
+    rx1151_pos = $P10."pos"()
   # rx pass
-    rx1153_cur."!cursor_pass"(rx1153_pos, "infix:sym<!=>")
-    rx1153_cur."!cursor_debug"("PASS  ", "infix:sym<!=>", " at pos=", rx1153_pos)
-    .return (rx1153_cur)
-  rx1153_fail:
-.annotate 'line', 446
-    (rx1153_rep, rx1153_pos, $I10, $P10) = rx1153_cur."!mark_fail"(0)
-    lt rx1153_pos, -1, rx1153_done
-    eq rx1153_pos, -1, rx1153_fail
+    rx1151_cur."!cursor_pass"(rx1151_pos, "infix:sym<!=>")
+    rx1151_cur."!cursor_debug"("PASS  ", "infix:sym<!=>", " at pos=", rx1151_pos)
+    .return (rx1151_cur)
+  rx1151_restart:
+.annotate 'line', 447
+    rx1151_cur."!cursor_debug"("NEXT ", "infix:sym<!=>")
+  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
-  rx1153_done:
-    rx1153_cur."!cursor_fail"()
-    rx1153_cur."!cursor_debug"("FAIL  ", "infix:sym<!=>")
-    .return (rx1153_cur)
+  rx1151_done:
+    rx1151_cur."!cursor_fail"()
+    rx1151_cur."!cursor_debug"("FAIL  ", "infix:sym<!=>")
+    .return (rx1151_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<!=>"  :subid("289_1277356913.9538") :method
-.annotate 'line', 446
-    $P1155 = self."!PREFIX__!subrule"("O", "!=")
-    new $P1156, "ResizablePMCArray"
-    push $P1156, $P1155
-    .return ($P1156)
+.sub "!PREFIX__infix:sym<!=>"  :subid("297_1280467477.44751") :method
+.annotate 'line', 447
+    $P1153 = self."!PREFIX__!subrule"("O", "!=")
+    new $P1154, "ResizablePMCArray"
+    push $P1154, $P1153
+    .return ($P1154)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<=>"  :subid("290_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1160_tgt
-    .local int rx1160_pos
-    .local int rx1160_off
-    .local int rx1160_eos
-    .local int rx1160_rep
-    .local pmc rx1160_cur
-    (rx1160_cur, rx1160_pos, rx1160_tgt) = self."!cursor_start"()
-    rx1160_cur."!cursor_debug"("START ", "infix:sym<<=>")
-    .lex unicode:"$\x{a2}", rx1160_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1160_eos, rx1160_tgt
-    gt rx1160_pos, rx1160_eos, rx1160_done
-    set rx1160_off, 0
-    lt rx1160_pos, 2, rx1160_start
-    sub rx1160_off, rx1160_pos, 1
-    substr rx1160_tgt, rx1160_tgt, rx1160_off
-  rx1160_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1164_done
-    goto rxscan1164_scan
-  rxscan1164_loop:
-    ($P10) = rx1160_cur."from"()
-    inc $P10
-    set rx1160_pos, $P10
-    ge rx1160_pos, rx1160_eos, rxscan1164_done
-  rxscan1164_scan:
-    set_addr $I10, rxscan1164_loop
-    rx1160_cur."!mark_push"(0, rx1160_pos, $I10)
-  rxscan1164_done:
-.annotate 'line', 517
+.sub "infix:sym<<=>"  :subid("298_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1158_tgt
+    .local int rx1158_pos
+    .local int rx1158_off
+    .local int rx1158_eos
+    .local int rx1158_rep
+    .local pmc rx1158_cur
+    (rx1158_cur, rx1158_pos, rx1158_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1158_cur."!cursor_debug"("START ", "infix:sym<<=>")
+    $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:
+.annotate 'line', 521
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1165_fail
-    rx1160_cur."!mark_push"(0, rx1160_pos, $I10)
+    set_addr $I10, rxcap_1163_fail
+    rx1158_cur."!mark_push"(0, rx1158_pos, $I10)
   # rx literal  "<="
-    add $I11, rx1160_pos, 2
-    gt $I11, rx1160_eos, rx1160_fail
-    sub $I11, rx1160_pos, rx1160_off
-    substr $S10, rx1160_tgt, $I11, 2
-    ne $S10, "<=", rx1160_fail
-    add rx1160_pos, 2
-    set_addr $I10, rxcap_1165_fail
-    ($I12, $I11) = rx1160_cur."!mark_peek"($I10)
-    rx1160_cur."!cursor_pos"($I11)
-    ($P10) = rx1160_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1160_pos, "")
-    rx1160_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1165_done
-  rxcap_1165_fail:
-    goto rx1160_fail
-  rxcap_1165_done:
+    goto rxcap_1163_done
+  rxcap_1163_fail:
+    goto rx1158_fail
+  rxcap_1163_done:
   # rx subrule "O" subtype=capture negate=
-    rx1160_cur."!cursor_pos"(rx1160_pos)
-    $P10 = rx1160_cur."O"("%relational, :pirop<isle INn>")
-    unless $P10, rx1160_fail
-    rx1160_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1160_pos = $P10."pos"()
+    rx1158_pos = $P10."pos"()
   # rx pass
-    rx1160_cur."!cursor_pass"(rx1160_pos, "infix:sym<<=>")
-    rx1160_cur."!cursor_debug"("PASS  ", "infix:sym<<=>", " at pos=", rx1160_pos)
-    .return (rx1160_cur)
-  rx1160_fail:
-.annotate 'line', 446
-    (rx1160_rep, rx1160_pos, $I10, $P10) = rx1160_cur."!mark_fail"(0)
-    lt rx1160_pos, -1, rx1160_done
-    eq rx1160_pos, -1, rx1160_fail
+    rx1158_cur."!cursor_pass"(rx1158_pos, "infix:sym<<=>")
+    rx1158_cur."!cursor_debug"("PASS  ", "infix:sym<<=>", " at pos=", rx1158_pos)
+    .return (rx1158_cur)
+  rx1158_restart:
+.annotate 'line', 447
+    rx1158_cur."!cursor_debug"("NEXT ", "infix:sym<<=>")
+  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
-  rx1160_done:
-    rx1160_cur."!cursor_fail"()
-    rx1160_cur."!cursor_debug"("FAIL  ", "infix:sym<<=>")
-    .return (rx1160_cur)
+  rx1158_done:
+    rx1158_cur."!cursor_fail"()
+    rx1158_cur."!cursor_debug"("FAIL  ", "infix:sym<<=>")
+    .return (rx1158_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<=>"  :subid("291_1277356913.9538") :method
-.annotate 'line', 446
-    $P1162 = self."!PREFIX__!subrule"("O", "<=")
-    new $P1163, "ResizablePMCArray"
-    push $P1163, $P1162
-    .return ($P1163)
+.sub "!PREFIX__infix:sym<<=>"  :subid("299_1280467477.44751") :method
+.annotate 'line', 447
+    $P1160 = self."!PREFIX__!subrule"("O", "<=")
+    new $P1161, "ResizablePMCArray"
+    push $P1161, $P1160
+    .return ($P1161)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>=>"  :subid("292_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1167_tgt
-    .local int rx1167_pos
-    .local int rx1167_off
-    .local int rx1167_eos
-    .local int rx1167_rep
-    .local pmc rx1167_cur
-    (rx1167_cur, rx1167_pos, rx1167_tgt) = self."!cursor_start"()
-    rx1167_cur."!cursor_debug"("START ", "infix:sym<>=>")
-    .lex unicode:"$\x{a2}", rx1167_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1167_eos, rx1167_tgt
-    gt rx1167_pos, rx1167_eos, rx1167_done
-    set rx1167_off, 0
-    lt rx1167_pos, 2, rx1167_start
-    sub rx1167_off, rx1167_pos, 1
-    substr rx1167_tgt, rx1167_tgt, rx1167_off
-  rx1167_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1171_done
-    goto rxscan1171_scan
-  rxscan1171_loop:
-    ($P10) = rx1167_cur."from"()
-    inc $P10
-    set rx1167_pos, $P10
-    ge rx1167_pos, rx1167_eos, rxscan1171_done
-  rxscan1171_scan:
-    set_addr $I10, rxscan1171_loop
-    rx1167_cur."!mark_push"(0, rx1167_pos, $I10)
-  rxscan1171_done:
-.annotate 'line', 518
+.sub "infix:sym<>=>"  :subid("300_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1165_tgt
+    .local int rx1165_pos
+    .local int rx1165_off
+    .local int rx1165_eos
+    .local int rx1165_rep
+    .local pmc rx1165_cur
+    (rx1165_cur, rx1165_pos, rx1165_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1165_cur."!cursor_debug"("START ", "infix:sym<>=>")
+    $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:
+.annotate 'line', 522
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1172_fail
-    rx1167_cur."!mark_push"(0, rx1167_pos, $I10)
+    set_addr $I10, rxcap_1170_fail
+    rx1165_cur."!mark_push"(0, rx1165_pos, $I10)
   # rx literal  ">="
-    add $I11, rx1167_pos, 2
-    gt $I11, rx1167_eos, rx1167_fail
-    sub $I11, rx1167_pos, rx1167_off
-    substr $S10, rx1167_tgt, $I11, 2
-    ne $S10, ">=", rx1167_fail
-    add rx1167_pos, 2
-    set_addr $I10, rxcap_1172_fail
-    ($I12, $I11) = rx1167_cur."!mark_peek"($I10)
-    rx1167_cur."!cursor_pos"($I11)
-    ($P10) = rx1167_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1167_pos, "")
-    rx1167_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1172_done
-  rxcap_1172_fail:
-    goto rx1167_fail
-  rxcap_1172_done:
+    goto rxcap_1170_done
+  rxcap_1170_fail:
+    goto rx1165_fail
+  rxcap_1170_done:
   # rx subrule "O" subtype=capture negate=
-    rx1167_cur."!cursor_pos"(rx1167_pos)
-    $P10 = rx1167_cur."O"("%relational, :pirop<isge INn>")
-    unless $P10, rx1167_fail
-    rx1167_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1167_pos = $P10."pos"()
+    rx1165_pos = $P10."pos"()
   # rx pass
-    rx1167_cur."!cursor_pass"(rx1167_pos, "infix:sym<>=>")
-    rx1167_cur."!cursor_debug"("PASS  ", "infix:sym<>=>", " at pos=", rx1167_pos)
-    .return (rx1167_cur)
-  rx1167_fail:
-.annotate 'line', 446
-    (rx1167_rep, rx1167_pos, $I10, $P10) = rx1167_cur."!mark_fail"(0)
-    lt rx1167_pos, -1, rx1167_done
-    eq rx1167_pos, -1, rx1167_fail
+    rx1165_cur."!cursor_pass"(rx1165_pos, "infix:sym<>=>")
+    rx1165_cur."!cursor_debug"("PASS  ", "infix:sym<>=>", " at pos=", rx1165_pos)
+    .return (rx1165_cur)
+  rx1165_restart:
+.annotate 'line', 447
+    rx1165_cur."!cursor_debug"("NEXT ", "infix:sym<>=>")
+  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
-  rx1167_done:
-    rx1167_cur."!cursor_fail"()
-    rx1167_cur."!cursor_debug"("FAIL  ", "infix:sym<>=>")
-    .return (rx1167_cur)
+  rx1165_done:
+    rx1165_cur."!cursor_fail"()
+    rx1165_cur."!cursor_debug"("FAIL  ", "infix:sym<>=>")
+    .return (rx1165_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>=>"  :subid("293_1277356913.9538") :method
-.annotate 'line', 446
-    $P1169 = self."!PREFIX__!subrule"("O", ">=")
-    new $P1170, "ResizablePMCArray"
-    push $P1170, $P1169
-    .return ($P1170)
+.sub "!PREFIX__infix:sym<>=>"  :subid("301_1280467477.44751") :method
+.annotate 'line', 447
+    $P1167 = self."!PREFIX__!subrule"("O", ">=")
+    new $P1168, "ResizablePMCArray"
+    push $P1168, $P1167
+    .return ($P1168)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<>"  :subid("294_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1174_tgt
-    .local int rx1174_pos
-    .local int rx1174_off
-    .local int rx1174_eos
-    .local int rx1174_rep
-    .local pmc rx1174_cur
-    (rx1174_cur, rx1174_pos, rx1174_tgt) = self."!cursor_start"()
-    rx1174_cur."!cursor_debug"("START ", "infix:sym<<>")
-    .lex unicode:"$\x{a2}", rx1174_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1174_eos, rx1174_tgt
-    gt rx1174_pos, rx1174_eos, rx1174_done
-    set rx1174_off, 0
-    lt rx1174_pos, 2, rx1174_start
-    sub rx1174_off, rx1174_pos, 1
-    substr rx1174_tgt, rx1174_tgt, rx1174_off
-  rx1174_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1178_done
-    goto rxscan1178_scan
-  rxscan1178_loop:
-    ($P10) = rx1174_cur."from"()
-    inc $P10
-    set rx1174_pos, $P10
-    ge rx1174_pos, rx1174_eos, rxscan1178_done
-  rxscan1178_scan:
-    set_addr $I10, rxscan1178_loop
-    rx1174_cur."!mark_push"(0, rx1174_pos, $I10)
-  rxscan1178_done:
-.annotate 'line', 519
+.sub "infix:sym<<>"  :subid("302_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1172_tgt
+    .local int rx1172_pos
+    .local int rx1172_off
+    .local int rx1172_eos
+    .local int rx1172_rep
+    .local pmc rx1172_cur
+    (rx1172_cur, rx1172_pos, rx1172_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1172_cur."!cursor_debug"("START ", "infix:sym<<>")
+    $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:
+.annotate 'line', 523
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1179_fail
-    rx1174_cur."!mark_push"(0, rx1174_pos, $I10)
+    set_addr $I10, rxcap_1177_fail
+    rx1172_cur."!mark_push"(0, rx1172_pos, $I10)
   # rx literal  "<"
-    add $I11, rx1174_pos, 1
-    gt $I11, rx1174_eos, rx1174_fail
-    sub $I11, rx1174_pos, rx1174_off
-    substr $S10, rx1174_tgt, $I11, 1
-    ne $S10, "<", rx1174_fail
-    add rx1174_pos, 1
-    set_addr $I10, rxcap_1179_fail
-    ($I12, $I11) = rx1174_cur."!mark_peek"($I10)
-    rx1174_cur."!cursor_pos"($I11)
-    ($P10) = rx1174_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1174_pos, "")
-    rx1174_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1172_pos, 1
+    gt $I11, rx1172_eos, rx1172_fail
+    sub $I11, rx1172_pos, rx1172_off
+    substr $S10, rx1172_tgt, $I11, 1
+    ne $S10, "<", rx1172_fail
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1179_done
-  rxcap_1179_fail:
-    goto rx1174_fail
-  rxcap_1179_done:
+    goto rxcap_1177_done
+  rxcap_1177_fail:
+    goto rx1172_fail
+  rxcap_1177_done:
   # rx subrule "O" subtype=capture negate=
-    rx1174_cur."!cursor_pos"(rx1174_pos)
-    $P10 = rx1174_cur."O"("%relational, :pirop<islt INn>")
-    unless $P10, rx1174_fail
-    rx1174_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1174_pos = $P10."pos"()
+    rx1172_pos = $P10."pos"()
   # rx pass
-    rx1174_cur."!cursor_pass"(rx1174_pos, "infix:sym<<>")
-    rx1174_cur."!cursor_debug"("PASS  ", "infix:sym<<>", " at pos=", rx1174_pos)
-    .return (rx1174_cur)
-  rx1174_fail:
-.annotate 'line', 446
-    (rx1174_rep, rx1174_pos, $I10, $P10) = rx1174_cur."!mark_fail"(0)
-    lt rx1174_pos, -1, rx1174_done
-    eq rx1174_pos, -1, rx1174_fail
+    rx1172_cur."!cursor_pass"(rx1172_pos, "infix:sym<<>")
+    rx1172_cur."!cursor_debug"("PASS  ", "infix:sym<<>", " at pos=", rx1172_pos)
+    .return (rx1172_cur)
+  rx1172_restart:
+.annotate 'line', 447
+    rx1172_cur."!cursor_debug"("NEXT ", "infix:sym<<>")
+  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
-  rx1174_done:
-    rx1174_cur."!cursor_fail"()
-    rx1174_cur."!cursor_debug"("FAIL  ", "infix:sym<<>")
-    .return (rx1174_cur)
+  rx1172_done:
+    rx1172_cur."!cursor_fail"()
+    rx1172_cur."!cursor_debug"("FAIL  ", "infix:sym<<>")
+    .return (rx1172_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<>"  :subid("295_1277356913.9538") :method
-.annotate 'line', 446
-    $P1176 = self."!PREFIX__!subrule"("O", "<")
-    new $P1177, "ResizablePMCArray"
-    push $P1177, $P1176
-    .return ($P1177)
+.sub "!PREFIX__infix:sym<<>"  :subid("303_1280467477.44751") :method
+.annotate 'line', 447
+    $P1174 = self."!PREFIX__!subrule"("O", "<")
+    new $P1175, "ResizablePMCArray"
+    push $P1175, $P1174
+    .return ($P1175)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>>"  :subid("296_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1181_tgt
-    .local int rx1181_pos
-    .local int rx1181_off
-    .local int rx1181_eos
-    .local int rx1181_rep
-    .local pmc rx1181_cur
-    (rx1181_cur, rx1181_pos, rx1181_tgt) = self."!cursor_start"()
-    rx1181_cur."!cursor_debug"("START ", "infix:sym<>>")
-    .lex unicode:"$\x{a2}", rx1181_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1181_eos, rx1181_tgt
-    gt rx1181_pos, rx1181_eos, rx1181_done
-    set rx1181_off, 0
-    lt rx1181_pos, 2, rx1181_start
-    sub rx1181_off, rx1181_pos, 1
-    substr rx1181_tgt, rx1181_tgt, rx1181_off
-  rx1181_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1185_done
-    goto rxscan1185_scan
-  rxscan1185_loop:
-    ($P10) = rx1181_cur."from"()
-    inc $P10
-    set rx1181_pos, $P10
-    ge rx1181_pos, rx1181_eos, rxscan1185_done
-  rxscan1185_scan:
-    set_addr $I10, rxscan1185_loop
-    rx1181_cur."!mark_push"(0, rx1181_pos, $I10)
-  rxscan1185_done:
-.annotate 'line', 520
+.sub "infix:sym<>>"  :subid("304_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1179_tgt
+    .local int rx1179_pos
+    .local int rx1179_off
+    .local int rx1179_eos
+    .local int rx1179_rep
+    .local pmc rx1179_cur
+    (rx1179_cur, rx1179_pos, rx1179_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1179_cur."!cursor_debug"("START ", "infix:sym<>>")
+    $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:
+.annotate 'line', 524
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1186_fail
-    rx1181_cur."!mark_push"(0, rx1181_pos, $I10)
+    set_addr $I10, rxcap_1184_fail
+    rx1179_cur."!mark_push"(0, rx1179_pos, $I10)
   # rx literal  ">"
-    add $I11, rx1181_pos, 1
-    gt $I11, rx1181_eos, rx1181_fail
-    sub $I11, rx1181_pos, rx1181_off
-    substr $S10, rx1181_tgt, $I11, 1
-    ne $S10, ">", rx1181_fail
-    add rx1181_pos, 1
-    set_addr $I10, rxcap_1186_fail
-    ($I12, $I11) = rx1181_cur."!mark_peek"($I10)
-    rx1181_cur."!cursor_pos"($I11)
-    ($P10) = rx1181_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1181_pos, "")
-    rx1181_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1179_pos, 1
+    gt $I11, rx1179_eos, rx1179_fail
+    sub $I11, rx1179_pos, rx1179_off
+    substr $S10, rx1179_tgt, $I11, 1
+    ne $S10, ">", rx1179_fail
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1186_done
-  rxcap_1186_fail:
-    goto rx1181_fail
-  rxcap_1186_done:
+    goto rxcap_1184_done
+  rxcap_1184_fail:
+    goto rx1179_fail
+  rxcap_1184_done:
   # rx subrule "O" subtype=capture negate=
-    rx1181_cur."!cursor_pos"(rx1181_pos)
-    $P10 = rx1181_cur."O"("%relational, :pirop<isgt INn>")
-    unless $P10, rx1181_fail
-    rx1181_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1181_pos = $P10."pos"()
+    rx1179_pos = $P10."pos"()
   # rx pass
-    rx1181_cur."!cursor_pass"(rx1181_pos, "infix:sym<>>")
-    rx1181_cur."!cursor_debug"("PASS  ", "infix:sym<>>", " at pos=", rx1181_pos)
-    .return (rx1181_cur)
-  rx1181_fail:
-.annotate 'line', 446
-    (rx1181_rep, rx1181_pos, $I10, $P10) = rx1181_cur."!mark_fail"(0)
-    lt rx1181_pos, -1, rx1181_done
-    eq rx1181_pos, -1, rx1181_fail
+    rx1179_cur."!cursor_pass"(rx1179_pos, "infix:sym<>>")
+    rx1179_cur."!cursor_debug"("PASS  ", "infix:sym<>>", " at pos=", rx1179_pos)
+    .return (rx1179_cur)
+  rx1179_restart:
+.annotate 'line', 447
+    rx1179_cur."!cursor_debug"("NEXT ", "infix:sym<>>")
+  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
-  rx1181_done:
-    rx1181_cur."!cursor_fail"()
-    rx1181_cur."!cursor_debug"("FAIL  ", "infix:sym<>>")
-    .return (rx1181_cur)
+  rx1179_done:
+    rx1179_cur."!cursor_fail"()
+    rx1179_cur."!cursor_debug"("FAIL  ", "infix:sym<>>")
+    .return (rx1179_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>>"  :subid("297_1277356913.9538") :method
-.annotate 'line', 446
-    $P1183 = self."!PREFIX__!subrule"("O", ">")
-    new $P1184, "ResizablePMCArray"
-    push $P1184, $P1183
-    .return ($P1184)
+.sub "!PREFIX__infix:sym<>>"  :subid("305_1280467477.44751") :method
+.annotate 'line', 447
+    $P1181 = self."!PREFIX__!subrule"("O", ">")
+    new $P1182, "ResizablePMCArray"
+    push $P1182, $P1181
+    .return ($P1182)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<eq>"  :subid("298_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1188_tgt
-    .local int rx1188_pos
-    .local int rx1188_off
-    .local int rx1188_eos
-    .local int rx1188_rep
-    .local pmc rx1188_cur
-    (rx1188_cur, rx1188_pos, rx1188_tgt) = self."!cursor_start"()
-    rx1188_cur."!cursor_debug"("START ", "infix:sym<eq>")
-    .lex unicode:"$\x{a2}", rx1188_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1188_eos, rx1188_tgt
-    gt rx1188_pos, rx1188_eos, rx1188_done
-    set rx1188_off, 0
-    lt rx1188_pos, 2, rx1188_start
-    sub rx1188_off, rx1188_pos, 1
-    substr rx1188_tgt, rx1188_tgt, rx1188_off
-  rx1188_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1192_done
-    goto rxscan1192_scan
-  rxscan1192_loop:
-    ($P10) = rx1188_cur."from"()
-    inc $P10
-    set rx1188_pos, $P10
-    ge rx1188_pos, rx1188_eos, rxscan1192_done
-  rxscan1192_scan:
-    set_addr $I10, rxscan1192_loop
-    rx1188_cur."!mark_push"(0, rx1188_pos, $I10)
-  rxscan1192_done:
-.annotate 'line', 521
+.sub "infix:sym<eq>"  :subid("306_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1186_tgt
+    .local int rx1186_pos
+    .local int rx1186_off
+    .local int rx1186_eos
+    .local int rx1186_rep
+    .local pmc rx1186_cur
+    (rx1186_cur, rx1186_pos, rx1186_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1186_cur."!cursor_debug"("START ", "infix:sym<eq>")
+    $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:
+.annotate 'line', 525
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1193_fail
-    rx1188_cur."!mark_push"(0, rx1188_pos, $I10)
+    set_addr $I10, rxcap_1191_fail
+    rx1186_cur."!mark_push"(0, rx1186_pos, $I10)
   # rx literal  "eq"
-    add $I11, rx1188_pos, 2
-    gt $I11, rx1188_eos, rx1188_fail
-    sub $I11, rx1188_pos, rx1188_off
-    substr $S10, rx1188_tgt, $I11, 2
-    ne $S10, "eq", rx1188_fail
-    add rx1188_pos, 2
-    set_addr $I10, rxcap_1193_fail
-    ($I12, $I11) = rx1188_cur."!mark_peek"($I10)
-    rx1188_cur."!cursor_pos"($I11)
-    ($P10) = rx1188_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1188_pos, "")
-    rx1188_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1193_done
-  rxcap_1193_fail:
-    goto rx1188_fail
-  rxcap_1193_done:
+    goto rxcap_1191_done
+  rxcap_1191_fail:
+    goto rx1186_fail
+  rxcap_1191_done:
   # rx subrule "O" subtype=capture negate=
-    rx1188_cur."!cursor_pos"(rx1188_pos)
-    $P10 = rx1188_cur."O"("%relational, :pirop<iseq ISs>")
-    unless $P10, rx1188_fail
-    rx1188_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1188_pos = $P10."pos"()
+    rx1186_pos = $P10."pos"()
   # rx pass
-    rx1188_cur."!cursor_pass"(rx1188_pos, "infix:sym<eq>")
-    rx1188_cur."!cursor_debug"("PASS  ", "infix:sym<eq>", " at pos=", rx1188_pos)
-    .return (rx1188_cur)
-  rx1188_fail:
-.annotate 'line', 446
-    (rx1188_rep, rx1188_pos, $I10, $P10) = rx1188_cur."!mark_fail"(0)
-    lt rx1188_pos, -1, rx1188_done
-    eq rx1188_pos, -1, rx1188_fail
+    rx1186_cur."!cursor_pass"(rx1186_pos, "infix:sym<eq>")
+    rx1186_cur."!cursor_debug"("PASS  ", "infix:sym<eq>", " at pos=", rx1186_pos)
+    .return (rx1186_cur)
+  rx1186_restart:
+.annotate 'line', 447
+    rx1186_cur."!cursor_debug"("NEXT ", "infix:sym<eq>")
+  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
-  rx1188_done:
-    rx1188_cur."!cursor_fail"()
-    rx1188_cur."!cursor_debug"("FAIL  ", "infix:sym<eq>")
-    .return (rx1188_cur)
+  rx1186_done:
+    rx1186_cur."!cursor_fail"()
+    rx1186_cur."!cursor_debug"("FAIL  ", "infix:sym<eq>")
+    .return (rx1186_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<eq>"  :subid("299_1277356913.9538") :method
-.annotate 'line', 446
-    $P1190 = self."!PREFIX__!subrule"("O", "eq")
-    new $P1191, "ResizablePMCArray"
-    push $P1191, $P1190
-    .return ($P1191)
+.sub "!PREFIX__infix:sym<eq>"  :subid("307_1280467477.44751") :method
+.annotate 'line', 447
+    $P1188 = self."!PREFIX__!subrule"("O", "eq")
+    new $P1189, "ResizablePMCArray"
+    push $P1189, $P1188
+    .return ($P1189)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ne>"  :subid("300_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1195_tgt
-    .local int rx1195_pos
-    .local int rx1195_off
-    .local int rx1195_eos
-    .local int rx1195_rep
-    .local pmc rx1195_cur
-    (rx1195_cur, rx1195_pos, rx1195_tgt) = self."!cursor_start"()
-    rx1195_cur."!cursor_debug"("START ", "infix:sym<ne>")
-    .lex unicode:"$\x{a2}", rx1195_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1195_eos, rx1195_tgt
-    gt rx1195_pos, rx1195_eos, rx1195_done
-    set rx1195_off, 0
-    lt rx1195_pos, 2, rx1195_start
-    sub rx1195_off, rx1195_pos, 1
-    substr rx1195_tgt, rx1195_tgt, rx1195_off
-  rx1195_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1199_done
-    goto rxscan1199_scan
-  rxscan1199_loop:
-    ($P10) = rx1195_cur."from"()
-    inc $P10
-    set rx1195_pos, $P10
-    ge rx1195_pos, rx1195_eos, rxscan1199_done
-  rxscan1199_scan:
-    set_addr $I10, rxscan1199_loop
-    rx1195_cur."!mark_push"(0, rx1195_pos, $I10)
-  rxscan1199_done:
-.annotate 'line', 522
+.sub "infix:sym<ne>"  :subid("308_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1193_tgt
+    .local int rx1193_pos
+    .local int rx1193_off
+    .local int rx1193_eos
+    .local int rx1193_rep
+    .local pmc rx1193_cur
+    (rx1193_cur, rx1193_pos, rx1193_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1193_cur."!cursor_debug"("START ", "infix:sym<ne>")
+    $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:
+.annotate 'line', 526
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1200_fail
-    rx1195_cur."!mark_push"(0, rx1195_pos, $I10)
+    set_addr $I10, rxcap_1198_fail
+    rx1193_cur."!mark_push"(0, rx1193_pos, $I10)
   # rx literal  "ne"
-    add $I11, rx1195_pos, 2
-    gt $I11, rx1195_eos, rx1195_fail
-    sub $I11, rx1195_pos, rx1195_off
-    substr $S10, rx1195_tgt, $I11, 2
-    ne $S10, "ne", rx1195_fail
-    add rx1195_pos, 2
-    set_addr $I10, rxcap_1200_fail
-    ($I12, $I11) = rx1195_cur."!mark_peek"($I10)
-    rx1195_cur."!cursor_pos"($I11)
-    ($P10) = rx1195_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1195_pos, "")
-    rx1195_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1200_done
-  rxcap_1200_fail:
-    goto rx1195_fail
-  rxcap_1200_done:
+    goto rxcap_1198_done
+  rxcap_1198_fail:
+    goto rx1193_fail
+  rxcap_1198_done:
   # rx subrule "O" subtype=capture negate=
-    rx1195_cur."!cursor_pos"(rx1195_pos)
-    $P10 = rx1195_cur."O"("%relational, :pirop<isne ISs>")
-    unless $P10, rx1195_fail
-    rx1195_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1195_pos = $P10."pos"()
+    rx1193_pos = $P10."pos"()
   # rx pass
-    rx1195_cur."!cursor_pass"(rx1195_pos, "infix:sym<ne>")
-    rx1195_cur."!cursor_debug"("PASS  ", "infix:sym<ne>", " at pos=", rx1195_pos)
-    .return (rx1195_cur)
-  rx1195_fail:
-.annotate 'line', 446
-    (rx1195_rep, rx1195_pos, $I10, $P10) = rx1195_cur."!mark_fail"(0)
-    lt rx1195_pos, -1, rx1195_done
-    eq rx1195_pos, -1, rx1195_fail
+    rx1193_cur."!cursor_pass"(rx1193_pos, "infix:sym<ne>")
+    rx1193_cur."!cursor_debug"("PASS  ", "infix:sym<ne>", " at pos=", rx1193_pos)
+    .return (rx1193_cur)
+  rx1193_restart:
+.annotate 'line', 447
+    rx1193_cur."!cursor_debug"("NEXT ", "infix:sym<ne>")
+  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
-  rx1195_done:
-    rx1195_cur."!cursor_fail"()
-    rx1195_cur."!cursor_debug"("FAIL  ", "infix:sym<ne>")
-    .return (rx1195_cur)
+  rx1193_done:
+    rx1193_cur."!cursor_fail"()
+    rx1193_cur."!cursor_debug"("FAIL  ", "infix:sym<ne>")
+    .return (rx1193_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ne>"  :subid("301_1277356913.9538") :method
-.annotate 'line', 446
-    $P1197 = self."!PREFIX__!subrule"("O", "ne")
-    new $P1198, "ResizablePMCArray"
-    push $P1198, $P1197
-    .return ($P1198)
+.sub "!PREFIX__infix:sym<ne>"  :subid("309_1280467477.44751") :method
+.annotate 'line', 447
+    $P1195 = self."!PREFIX__!subrule"("O", "ne")
+    new $P1196, "ResizablePMCArray"
+    push $P1196, $P1195
+    .return ($P1196)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<le>"  :subid("302_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1202_tgt
-    .local int rx1202_pos
-    .local int rx1202_off
-    .local int rx1202_eos
-    .local int rx1202_rep
-    .local pmc rx1202_cur
-    (rx1202_cur, rx1202_pos, rx1202_tgt) = self."!cursor_start"()
-    rx1202_cur."!cursor_debug"("START ", "infix:sym<le>")
-    .lex unicode:"$\x{a2}", rx1202_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1202_eos, rx1202_tgt
-    gt rx1202_pos, rx1202_eos, rx1202_done
-    set rx1202_off, 0
-    lt rx1202_pos, 2, rx1202_start
-    sub rx1202_off, rx1202_pos, 1
-    substr rx1202_tgt, rx1202_tgt, rx1202_off
-  rx1202_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1206_done
-    goto rxscan1206_scan
-  rxscan1206_loop:
-    ($P10) = rx1202_cur."from"()
-    inc $P10
-    set rx1202_pos, $P10
-    ge rx1202_pos, rx1202_eos, rxscan1206_done
-  rxscan1206_scan:
-    set_addr $I10, rxscan1206_loop
-    rx1202_cur."!mark_push"(0, rx1202_pos, $I10)
-  rxscan1206_done:
-.annotate 'line', 523
+.sub "infix:sym<le>"  :subid("310_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1200_tgt
+    .local int rx1200_pos
+    .local int rx1200_off
+    .local int rx1200_eos
+    .local int rx1200_rep
+    .local pmc rx1200_cur
+    (rx1200_cur, rx1200_pos, rx1200_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1200_cur."!cursor_debug"("START ", "infix:sym<le>")
+    $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:
+.annotate 'line', 527
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1207_fail
-    rx1202_cur."!mark_push"(0, rx1202_pos, $I10)
+    set_addr $I10, rxcap_1205_fail
+    rx1200_cur."!mark_push"(0, rx1200_pos, $I10)
   # rx literal  "le"
-    add $I11, rx1202_pos, 2
-    gt $I11, rx1202_eos, rx1202_fail
-    sub $I11, rx1202_pos, rx1202_off
-    substr $S10, rx1202_tgt, $I11, 2
-    ne $S10, "le", rx1202_fail
-    add rx1202_pos, 2
-    set_addr $I10, rxcap_1207_fail
-    ($I12, $I11) = rx1202_cur."!mark_peek"($I10)
-    rx1202_cur."!cursor_pos"($I11)
-    ($P10) = rx1202_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1202_pos, "")
-    rx1202_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1207_done
-  rxcap_1207_fail:
-    goto rx1202_fail
-  rxcap_1207_done:
+    goto rxcap_1205_done
+  rxcap_1205_fail:
+    goto rx1200_fail
+  rxcap_1205_done:
   # rx subrule "O" subtype=capture negate=
-    rx1202_cur."!cursor_pos"(rx1202_pos)
-    $P10 = rx1202_cur."O"("%relational, :pirop<isle ISs>")
-    unless $P10, rx1202_fail
-    rx1202_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1202_pos = $P10."pos"()
+    rx1200_pos = $P10."pos"()
   # rx pass
-    rx1202_cur."!cursor_pass"(rx1202_pos, "infix:sym<le>")
-    rx1202_cur."!cursor_debug"("PASS  ", "infix:sym<le>", " at pos=", rx1202_pos)
-    .return (rx1202_cur)
-  rx1202_fail:
-.annotate 'line', 446
-    (rx1202_rep, rx1202_pos, $I10, $P10) = rx1202_cur."!mark_fail"(0)
-    lt rx1202_pos, -1, rx1202_done
-    eq rx1202_pos, -1, rx1202_fail
+    rx1200_cur."!cursor_pass"(rx1200_pos, "infix:sym<le>")
+    rx1200_cur."!cursor_debug"("PASS  ", "infix:sym<le>", " at pos=", rx1200_pos)
+    .return (rx1200_cur)
+  rx1200_restart:
+.annotate 'line', 447
+    rx1200_cur."!cursor_debug"("NEXT ", "infix:sym<le>")
+  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
-  rx1202_done:
-    rx1202_cur."!cursor_fail"()
-    rx1202_cur."!cursor_debug"("FAIL  ", "infix:sym<le>")
-    .return (rx1202_cur)
+  rx1200_done:
+    rx1200_cur."!cursor_fail"()
+    rx1200_cur."!cursor_debug"("FAIL  ", "infix:sym<le>")
+    .return (rx1200_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<le>"  :subid("303_1277356913.9538") :method
-.annotate 'line', 446
-    $P1204 = self."!PREFIX__!subrule"("O", "le")
-    new $P1205, "ResizablePMCArray"
-    push $P1205, $P1204
-    .return ($P1205)
+.sub "!PREFIX__infix:sym<le>"  :subid("311_1280467477.44751") :method
+.annotate 'line', 447
+    $P1202 = self."!PREFIX__!subrule"("O", "le")
+    new $P1203, "ResizablePMCArray"
+    push $P1203, $P1202
+    .return ($P1203)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ge>"  :subid("304_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1209_tgt
-    .local int rx1209_pos
-    .local int rx1209_off
-    .local int rx1209_eos
-    .local int rx1209_rep
-    .local pmc rx1209_cur
-    (rx1209_cur, rx1209_pos, rx1209_tgt) = self."!cursor_start"()
-    rx1209_cur."!cursor_debug"("START ", "infix:sym<ge>")
-    .lex unicode:"$\x{a2}", rx1209_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1209_eos, rx1209_tgt
-    gt rx1209_pos, rx1209_eos, rx1209_done
-    set rx1209_off, 0
-    lt rx1209_pos, 2, rx1209_start
-    sub rx1209_off, rx1209_pos, 1
-    substr rx1209_tgt, rx1209_tgt, rx1209_off
-  rx1209_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1213_done
-    goto rxscan1213_scan
-  rxscan1213_loop:
-    ($P10) = rx1209_cur."from"()
-    inc $P10
-    set rx1209_pos, $P10
-    ge rx1209_pos, rx1209_eos, rxscan1213_done
-  rxscan1213_scan:
-    set_addr $I10, rxscan1213_loop
-    rx1209_cur."!mark_push"(0, rx1209_pos, $I10)
-  rxscan1213_done:
-.annotate 'line', 524
+.sub "infix:sym<ge>"  :subid("312_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1207_tgt
+    .local int rx1207_pos
+    .local int rx1207_off
+    .local int rx1207_eos
+    .local int rx1207_rep
+    .local pmc rx1207_cur
+    (rx1207_cur, rx1207_pos, rx1207_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1207_cur."!cursor_debug"("START ", "infix:sym<ge>")
+    $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:
+.annotate 'line', 528
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1214_fail
-    rx1209_cur."!mark_push"(0, rx1209_pos, $I10)
+    set_addr $I10, rxcap_1212_fail
+    rx1207_cur."!mark_push"(0, rx1207_pos, $I10)
   # rx literal  "ge"
-    add $I11, rx1209_pos, 2
-    gt $I11, rx1209_eos, rx1209_fail
-    sub $I11, rx1209_pos, rx1209_off
-    substr $S10, rx1209_tgt, $I11, 2
-    ne $S10, "ge", rx1209_fail
-    add rx1209_pos, 2
-    set_addr $I10, rxcap_1214_fail
-    ($I12, $I11) = rx1209_cur."!mark_peek"($I10)
-    rx1209_cur."!cursor_pos"($I11)
-    ($P10) = rx1209_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1209_pos, "")
-    rx1209_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1214_done
-  rxcap_1214_fail:
-    goto rx1209_fail
-  rxcap_1214_done:
+    goto rxcap_1212_done
+  rxcap_1212_fail:
+    goto rx1207_fail
+  rxcap_1212_done:
   # rx subrule "O" subtype=capture negate=
-    rx1209_cur."!cursor_pos"(rx1209_pos)
-    $P10 = rx1209_cur."O"("%relational, :pirop<isge ISs>")
-    unless $P10, rx1209_fail
-    rx1209_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1209_pos = $P10."pos"()
+    rx1207_pos = $P10."pos"()
   # rx pass
-    rx1209_cur."!cursor_pass"(rx1209_pos, "infix:sym<ge>")
-    rx1209_cur."!cursor_debug"("PASS  ", "infix:sym<ge>", " at pos=", rx1209_pos)
-    .return (rx1209_cur)
-  rx1209_fail:
-.annotate 'line', 446
-    (rx1209_rep, rx1209_pos, $I10, $P10) = rx1209_cur."!mark_fail"(0)
-    lt rx1209_pos, -1, rx1209_done
-    eq rx1209_pos, -1, rx1209_fail
+    rx1207_cur."!cursor_pass"(rx1207_pos, "infix:sym<ge>")
+    rx1207_cur."!cursor_debug"("PASS  ", "infix:sym<ge>", " at pos=", rx1207_pos)
+    .return (rx1207_cur)
+  rx1207_restart:
+.annotate 'line', 447
+    rx1207_cur."!cursor_debug"("NEXT ", "infix:sym<ge>")
+  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
-  rx1209_done:
-    rx1209_cur."!cursor_fail"()
-    rx1209_cur."!cursor_debug"("FAIL  ", "infix:sym<ge>")
-    .return (rx1209_cur)
+  rx1207_done:
+    rx1207_cur."!cursor_fail"()
+    rx1207_cur."!cursor_debug"("FAIL  ", "infix:sym<ge>")
+    .return (rx1207_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ge>"  :subid("305_1277356913.9538") :method
-.annotate 'line', 446
-    $P1211 = self."!PREFIX__!subrule"("O", "ge")
-    new $P1212, "ResizablePMCArray"
-    push $P1212, $P1211
-    .return ($P1212)
+.sub "!PREFIX__infix:sym<ge>"  :subid("313_1280467477.44751") :method
+.annotate 'line', 447
+    $P1209 = self."!PREFIX__!subrule"("O", "ge")
+    new $P1210, "ResizablePMCArray"
+    push $P1210, $P1209
+    .return ($P1210)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<lt>"  :subid("306_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1216_tgt
-    .local int rx1216_pos
-    .local int rx1216_off
-    .local int rx1216_eos
-    .local int rx1216_rep
-    .local pmc rx1216_cur
-    (rx1216_cur, rx1216_pos, rx1216_tgt) = self."!cursor_start"()
-    rx1216_cur."!cursor_debug"("START ", "infix:sym<lt>")
-    .lex unicode:"$\x{a2}", rx1216_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1216_eos, rx1216_tgt
-    gt rx1216_pos, rx1216_eos, rx1216_done
-    set rx1216_off, 0
-    lt rx1216_pos, 2, rx1216_start
-    sub rx1216_off, rx1216_pos, 1
-    substr rx1216_tgt, rx1216_tgt, rx1216_off
-  rx1216_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1220_done
-    goto rxscan1220_scan
-  rxscan1220_loop:
-    ($P10) = rx1216_cur."from"()
-    inc $P10
-    set rx1216_pos, $P10
-    ge rx1216_pos, rx1216_eos, rxscan1220_done
-  rxscan1220_scan:
-    set_addr $I10, rxscan1220_loop
-    rx1216_cur."!mark_push"(0, rx1216_pos, $I10)
-  rxscan1220_done:
-.annotate 'line', 525
+.sub "infix:sym<lt>"  :subid("314_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1214_tgt
+    .local int rx1214_pos
+    .local int rx1214_off
+    .local int rx1214_eos
+    .local int rx1214_rep
+    .local pmc rx1214_cur
+    (rx1214_cur, rx1214_pos, rx1214_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1214_cur."!cursor_debug"("START ", "infix:sym<lt>")
+    $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:
+.annotate 'line', 529
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1221_fail
-    rx1216_cur."!mark_push"(0, rx1216_pos, $I10)
+    set_addr $I10, rxcap_1219_fail
+    rx1214_cur."!mark_push"(0, rx1214_pos, $I10)
   # rx literal  "lt"
-    add $I11, rx1216_pos, 2
-    gt $I11, rx1216_eos, rx1216_fail
-    sub $I11, rx1216_pos, rx1216_off
-    substr $S10, rx1216_tgt, $I11, 2
-    ne $S10, "lt", rx1216_fail
-    add rx1216_pos, 2
-    set_addr $I10, rxcap_1221_fail
-    ($I12, $I11) = rx1216_cur."!mark_peek"($I10)
-    rx1216_cur."!cursor_pos"($I11)
-    ($P10) = rx1216_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1216_pos, "")
-    rx1216_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1221_done
-  rxcap_1221_fail:
-    goto rx1216_fail
-  rxcap_1221_done:
+    goto rxcap_1219_done
+  rxcap_1219_fail:
+    goto rx1214_fail
+  rxcap_1219_done:
   # rx subrule "O" subtype=capture negate=
-    rx1216_cur."!cursor_pos"(rx1216_pos)
-    $P10 = rx1216_cur."O"("%relational, :pirop<islt ISs>")
-    unless $P10, rx1216_fail
-    rx1216_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1216_pos = $P10."pos"()
+    rx1214_pos = $P10."pos"()
   # rx pass
-    rx1216_cur."!cursor_pass"(rx1216_pos, "infix:sym<lt>")
-    rx1216_cur."!cursor_debug"("PASS  ", "infix:sym<lt>", " at pos=", rx1216_pos)
-    .return (rx1216_cur)
-  rx1216_fail:
-.annotate 'line', 446
-    (rx1216_rep, rx1216_pos, $I10, $P10) = rx1216_cur."!mark_fail"(0)
-    lt rx1216_pos, -1, rx1216_done
-    eq rx1216_pos, -1, rx1216_fail
+    rx1214_cur."!cursor_pass"(rx1214_pos, "infix:sym<lt>")
+    rx1214_cur."!cursor_debug"("PASS  ", "infix:sym<lt>", " at pos=", rx1214_pos)
+    .return (rx1214_cur)
+  rx1214_restart:
+.annotate 'line', 447
+    rx1214_cur."!cursor_debug"("NEXT ", "infix:sym<lt>")
+  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
-  rx1216_done:
-    rx1216_cur."!cursor_fail"()
-    rx1216_cur."!cursor_debug"("FAIL  ", "infix:sym<lt>")
-    .return (rx1216_cur)
+  rx1214_done:
+    rx1214_cur."!cursor_fail"()
+    rx1214_cur."!cursor_debug"("FAIL  ", "infix:sym<lt>")
+    .return (rx1214_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<lt>"  :subid("307_1277356913.9538") :method
-.annotate 'line', 446
-    $P1218 = self."!PREFIX__!subrule"("O", "lt")
-    new $P1219, "ResizablePMCArray"
-    push $P1219, $P1218
-    .return ($P1219)
+.sub "!PREFIX__infix:sym<lt>"  :subid("315_1280467477.44751") :method
+.annotate 'line', 447
+    $P1216 = self."!PREFIX__!subrule"("O", "lt")
+    new $P1217, "ResizablePMCArray"
+    push $P1217, $P1216
+    .return ($P1217)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<gt>"  :subid("308_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1223_tgt
-    .local int rx1223_pos
-    .local int rx1223_off
-    .local int rx1223_eos
-    .local int rx1223_rep
-    .local pmc rx1223_cur
-    (rx1223_cur, rx1223_pos, rx1223_tgt) = self."!cursor_start"()
-    rx1223_cur."!cursor_debug"("START ", "infix:sym<gt>")
-    .lex unicode:"$\x{a2}", rx1223_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1223_eos, rx1223_tgt
-    gt rx1223_pos, rx1223_eos, rx1223_done
-    set rx1223_off, 0
-    lt rx1223_pos, 2, rx1223_start
-    sub rx1223_off, rx1223_pos, 1
-    substr rx1223_tgt, rx1223_tgt, rx1223_off
-  rx1223_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1227_done
-    goto rxscan1227_scan
-  rxscan1227_loop:
-    ($P10) = rx1223_cur."from"()
-    inc $P10
-    set rx1223_pos, $P10
-    ge rx1223_pos, rx1223_eos, rxscan1227_done
-  rxscan1227_scan:
-    set_addr $I10, rxscan1227_loop
-    rx1223_cur."!mark_push"(0, rx1223_pos, $I10)
-  rxscan1227_done:
-.annotate 'line', 526
+.sub "infix:sym<gt>"  :subid("316_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1221_tgt
+    .local int rx1221_pos
+    .local int rx1221_off
+    .local int rx1221_eos
+    .local int rx1221_rep
+    .local pmc rx1221_cur
+    (rx1221_cur, rx1221_pos, rx1221_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1221_cur."!cursor_debug"("START ", "infix:sym<gt>")
+    $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:
+.annotate 'line', 530
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1228_fail
-    rx1223_cur."!mark_push"(0, rx1223_pos, $I10)
+    set_addr $I10, rxcap_1226_fail
+    rx1221_cur."!mark_push"(0, rx1221_pos, $I10)
   # rx literal  "gt"
-    add $I11, rx1223_pos, 2
-    gt $I11, rx1223_eos, rx1223_fail
-    sub $I11, rx1223_pos, rx1223_off
-    substr $S10, rx1223_tgt, $I11, 2
-    ne $S10, "gt", rx1223_fail
-    add rx1223_pos, 2
-    set_addr $I10, rxcap_1228_fail
-    ($I12, $I11) = rx1223_cur."!mark_peek"($I10)
-    rx1223_cur."!cursor_pos"($I11)
-    ($P10) = rx1223_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1223_pos, "")
-    rx1223_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1228_done
-  rxcap_1228_fail:
-    goto rx1223_fail
-  rxcap_1228_done:
+    goto rxcap_1226_done
+  rxcap_1226_fail:
+    goto rx1221_fail
+  rxcap_1226_done:
   # rx subrule "O" subtype=capture negate=
-    rx1223_cur."!cursor_pos"(rx1223_pos)
-    $P10 = rx1223_cur."O"("%relational, :pirop<isgt ISs>")
-    unless $P10, rx1223_fail
-    rx1223_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1223_pos = $P10."pos"()
+    rx1221_pos = $P10."pos"()
   # rx pass
-    rx1223_cur."!cursor_pass"(rx1223_pos, "infix:sym<gt>")
-    rx1223_cur."!cursor_debug"("PASS  ", "infix:sym<gt>", " at pos=", rx1223_pos)
-    .return (rx1223_cur)
-  rx1223_fail:
-.annotate 'line', 446
-    (rx1223_rep, rx1223_pos, $I10, $P10) = rx1223_cur."!mark_fail"(0)
-    lt rx1223_pos, -1, rx1223_done
-    eq rx1223_pos, -1, rx1223_fail
+    rx1221_cur."!cursor_pass"(rx1221_pos, "infix:sym<gt>")
+    rx1221_cur."!cursor_debug"("PASS  ", "infix:sym<gt>", " at pos=", rx1221_pos)
+    .return (rx1221_cur)
+  rx1221_restart:
+.annotate 'line', 447
+    rx1221_cur."!cursor_debug"("NEXT ", "infix:sym<gt>")
+  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
-  rx1223_done:
-    rx1223_cur."!cursor_fail"()
-    rx1223_cur."!cursor_debug"("FAIL  ", "infix:sym<gt>")
-    .return (rx1223_cur)
+  rx1221_done:
+    rx1221_cur."!cursor_fail"()
+    rx1221_cur."!cursor_debug"("FAIL  ", "infix:sym<gt>")
+    .return (rx1221_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<gt>"  :subid("309_1277356913.9538") :method
-.annotate 'line', 446
-    $P1225 = self."!PREFIX__!subrule"("O", "gt")
-    new $P1226, "ResizablePMCArray"
-    push $P1226, $P1225
-    .return ($P1226)
+.sub "!PREFIX__infix:sym<gt>"  :subid("317_1280467477.44751") :method
+.annotate 'line', 447
+    $P1223 = self."!PREFIX__!subrule"("O", "gt")
+    new $P1224, "ResizablePMCArray"
+    push $P1224, $P1223
+    .return ($P1224)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=:=>"  :subid("310_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1230_tgt
-    .local int rx1230_pos
-    .local int rx1230_off
-    .local int rx1230_eos
-    .local int rx1230_rep
-    .local pmc rx1230_cur
-    (rx1230_cur, rx1230_pos, rx1230_tgt) = self."!cursor_start"()
-    rx1230_cur."!cursor_debug"("START ", "infix:sym<=:=>")
-    .lex unicode:"$\x{a2}", rx1230_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1230_eos, rx1230_tgt
-    gt rx1230_pos, rx1230_eos, rx1230_done
-    set rx1230_off, 0
-    lt rx1230_pos, 2, rx1230_start
-    sub rx1230_off, rx1230_pos, 1
-    substr rx1230_tgt, rx1230_tgt, rx1230_off
-  rx1230_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1234_done
-    goto rxscan1234_scan
-  rxscan1234_loop:
-    ($P10) = rx1230_cur."from"()
-    inc $P10
-    set rx1230_pos, $P10
-    ge rx1230_pos, rx1230_eos, rxscan1234_done
-  rxscan1234_scan:
-    set_addr $I10, rxscan1234_loop
-    rx1230_cur."!mark_push"(0, rx1230_pos, $I10)
-  rxscan1234_done:
-.annotate 'line', 527
+.sub "infix:sym<=:=>"  :subid("318_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1228_tgt
+    .local int rx1228_pos
+    .local int rx1228_off
+    .local int rx1228_eos
+    .local int rx1228_rep
+    .local pmc rx1228_cur
+    (rx1228_cur, rx1228_pos, rx1228_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1228_cur."!cursor_debug"("START ", "infix:sym<=:=>")
+    $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:
+.annotate 'line', 531
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1235_fail
-    rx1230_cur."!mark_push"(0, rx1230_pos, $I10)
+    set_addr $I10, rxcap_1233_fail
+    rx1228_cur."!mark_push"(0, rx1228_pos, $I10)
   # rx literal  "=:="
-    add $I11, rx1230_pos, 3
-    gt $I11, rx1230_eos, rx1230_fail
-    sub $I11, rx1230_pos, rx1230_off
-    substr $S10, rx1230_tgt, $I11, 3
-    ne $S10, "=:=", rx1230_fail
-    add rx1230_pos, 3
-    set_addr $I10, rxcap_1235_fail
-    ($I12, $I11) = rx1230_cur."!mark_peek"($I10)
-    rx1230_cur."!cursor_pos"($I11)
-    ($P10) = rx1230_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1230_pos, "")
-    rx1230_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1235_done
-  rxcap_1235_fail:
-    goto rx1230_fail
-  rxcap_1235_done:
+    goto rxcap_1233_done
+  rxcap_1233_fail:
+    goto rx1228_fail
+  rxcap_1233_done:
   # rx subrule "O" subtype=capture negate=
-    rx1230_cur."!cursor_pos"(rx1230_pos)
-    $P10 = rx1230_cur."O"("%relational, :pirop<issame>")
-    unless $P10, rx1230_fail
-    rx1230_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1230_pos = $P10."pos"()
+    rx1228_pos = $P10."pos"()
   # rx pass
-    rx1230_cur."!cursor_pass"(rx1230_pos, "infix:sym<=:=>")
-    rx1230_cur."!cursor_debug"("PASS  ", "infix:sym<=:=>", " at pos=", rx1230_pos)
-    .return (rx1230_cur)
-  rx1230_fail:
-.annotate 'line', 446
-    (rx1230_rep, rx1230_pos, $I10, $P10) = rx1230_cur."!mark_fail"(0)
-    lt rx1230_pos, -1, rx1230_done
-    eq rx1230_pos, -1, rx1230_fail
+    rx1228_cur."!cursor_pass"(rx1228_pos, "infix:sym<=:=>")
+    rx1228_cur."!cursor_debug"("PASS  ", "infix:sym<=:=>", " at pos=", rx1228_pos)
+    .return (rx1228_cur)
+  rx1228_restart:
+.annotate 'line', 447
+    rx1228_cur."!cursor_debug"("NEXT ", "infix:sym<=:=>")
+  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
-  rx1230_done:
-    rx1230_cur."!cursor_fail"()
-    rx1230_cur."!cursor_debug"("FAIL  ", "infix:sym<=:=>")
-    .return (rx1230_cur)
+  rx1228_done:
+    rx1228_cur."!cursor_fail"()
+    rx1228_cur."!cursor_debug"("FAIL  ", "infix:sym<=:=>")
+    .return (rx1228_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=:=>"  :subid("311_1277356913.9538") :method
-.annotate 'line', 446
-    $P1232 = self."!PREFIX__!subrule"("O", "=:=")
-    new $P1233, "ResizablePMCArray"
-    push $P1233, $P1232
-    .return ($P1233)
+.sub "!PREFIX__infix:sym<=:=>"  :subid("319_1280467477.44751") :method
+.annotate 'line', 447
+    $P1230 = self."!PREFIX__!subrule"("O", "=:=")
+    new $P1231, "ResizablePMCArray"
+    push $P1231, $P1230
+    .return ($P1231)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~~>"  :subid("312_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1237_tgt
-    .local int rx1237_pos
-    .local int rx1237_off
-    .local int rx1237_eos
-    .local int rx1237_rep
-    .local pmc rx1237_cur
-    (rx1237_cur, rx1237_pos, rx1237_tgt) = self."!cursor_start"()
-    rx1237_cur."!cursor_debug"("START ", "infix:sym<~~>")
-    .lex unicode:"$\x{a2}", rx1237_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1237_eos, rx1237_tgt
-    gt rx1237_pos, rx1237_eos, rx1237_done
-    set rx1237_off, 0
-    lt rx1237_pos, 2, rx1237_start
-    sub rx1237_off, rx1237_pos, 1
-    substr rx1237_tgt, rx1237_tgt, rx1237_off
-  rx1237_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1241_done
-    goto rxscan1241_scan
-  rxscan1241_loop:
-    ($P10) = rx1237_cur."from"()
-    inc $P10
-    set rx1237_pos, $P10
-    ge rx1237_pos, rx1237_eos, rxscan1241_done
-  rxscan1241_scan:
-    set_addr $I10, rxscan1241_loop
-    rx1237_cur."!mark_push"(0, rx1237_pos, $I10)
-  rxscan1241_done:
-.annotate 'line', 528
+.sub "infix:sym<~~>"  :subid("320_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1235_tgt
+    .local int rx1235_pos
+    .local int rx1235_off
+    .local int rx1235_eos
+    .local int rx1235_rep
+    .local pmc rx1235_cur
+    (rx1235_cur, rx1235_pos, rx1235_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1235_cur."!cursor_debug"("START ", "infix:sym<~~>")
+    $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:
+.annotate 'line', 532
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1242_fail
-    rx1237_cur."!mark_push"(0, rx1237_pos, $I10)
+    set_addr $I10, rxcap_1240_fail
+    rx1235_cur."!mark_push"(0, rx1235_pos, $I10)
   # rx literal  "~~"
-    add $I11, rx1237_pos, 2
-    gt $I11, rx1237_eos, rx1237_fail
-    sub $I11, rx1237_pos, rx1237_off
-    substr $S10, rx1237_tgt, $I11, 2
-    ne $S10, "~~", rx1237_fail
-    add rx1237_pos, 2
-    set_addr $I10, rxcap_1242_fail
-    ($I12, $I11) = rx1237_cur."!mark_peek"($I10)
-    rx1237_cur."!cursor_pos"($I11)
-    ($P10) = rx1237_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1237_pos, "")
-    rx1237_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1242_done
-  rxcap_1242_fail:
-    goto rx1237_fail
-  rxcap_1242_done:
+    goto rxcap_1240_done
+  rxcap_1240_fail:
+    goto rx1235_fail
+  rxcap_1240_done:
   # rx subrule "O" subtype=capture negate=
-    rx1237_cur."!cursor_pos"(rx1237_pos)
-    $P10 = rx1237_cur."O"("%relational, :reducecheck<smartmatch>")
-    unless $P10, rx1237_fail
-    rx1237_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1237_pos = $P10."pos"()
+    rx1235_pos = $P10."pos"()
   # rx pass
-    rx1237_cur."!cursor_pass"(rx1237_pos, "infix:sym<~~>")
-    rx1237_cur."!cursor_debug"("PASS  ", "infix:sym<~~>", " at pos=", rx1237_pos)
-    .return (rx1237_cur)
-  rx1237_fail:
-.annotate 'line', 446
-    (rx1237_rep, rx1237_pos, $I10, $P10) = rx1237_cur."!mark_fail"(0)
-    lt rx1237_pos, -1, rx1237_done
-    eq rx1237_pos, -1, rx1237_fail
+    rx1235_cur."!cursor_pass"(rx1235_pos, "infix:sym<~~>")
+    rx1235_cur."!cursor_debug"("PASS  ", "infix:sym<~~>", " at pos=", rx1235_pos)
+    .return (rx1235_cur)
+  rx1235_restart:
+.annotate 'line', 447
+    rx1235_cur."!cursor_debug"("NEXT ", "infix:sym<~~>")
+  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
-  rx1237_done:
-    rx1237_cur."!cursor_fail"()
-    rx1237_cur."!cursor_debug"("FAIL  ", "infix:sym<~~>")
-    .return (rx1237_cur)
+  rx1235_done:
+    rx1235_cur."!cursor_fail"()
+    rx1235_cur."!cursor_debug"("FAIL  ", "infix:sym<~~>")
+    .return (rx1235_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~~>"  :subid("313_1277356913.9538") :method
-.annotate 'line', 446
-    $P1239 = self."!PREFIX__!subrule"("O", "~~")
-    new $P1240, "ResizablePMCArray"
-    push $P1240, $P1239
-    .return ($P1240)
+.sub "!PREFIX__infix:sym<~~>"  :subid("321_1280467477.44751") :method
+.annotate 'line', 447
+    $P1237 = self."!PREFIX__!subrule"("O", "~~")
+    new $P1238, "ResizablePMCArray"
+    push $P1238, $P1237
+    .return ($P1238)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<&&>"  :subid("314_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1244_tgt
-    .local int rx1244_pos
-    .local int rx1244_off
-    .local int rx1244_eos
-    .local int rx1244_rep
-    .local pmc rx1244_cur
-    (rx1244_cur, rx1244_pos, rx1244_tgt) = self."!cursor_start"()
-    rx1244_cur."!cursor_debug"("START ", "infix:sym<&&>")
-    .lex unicode:"$\x{a2}", rx1244_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1244_eos, rx1244_tgt
-    gt rx1244_pos, rx1244_eos, rx1244_done
-    set rx1244_off, 0
-    lt rx1244_pos, 2, rx1244_start
-    sub rx1244_off, rx1244_pos, 1
-    substr rx1244_tgt, rx1244_tgt, rx1244_off
-  rx1244_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1248_done
-    goto rxscan1248_scan
-  rxscan1248_loop:
-    ($P10) = rx1244_cur."from"()
-    inc $P10
-    set rx1244_pos, $P10
-    ge rx1244_pos, rx1244_eos, rxscan1248_done
-  rxscan1248_scan:
-    set_addr $I10, rxscan1248_loop
-    rx1244_cur."!mark_push"(0, rx1244_pos, $I10)
-  rxscan1248_done:
-.annotate 'line', 530
+.sub "infix:sym<&&>"  :subid("322_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1242_tgt
+    .local int rx1242_pos
+    .local int rx1242_off
+    .local int rx1242_eos
+    .local int rx1242_rep
+    .local pmc rx1242_cur
+    (rx1242_cur, rx1242_pos, rx1242_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1242_cur."!cursor_debug"("START ", "infix:sym<&&>")
+    $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:
+.annotate 'line', 534
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1249_fail
-    rx1244_cur."!mark_push"(0, rx1244_pos, $I10)
+    set_addr $I10, rxcap_1247_fail
+    rx1242_cur."!mark_push"(0, rx1242_pos, $I10)
   # rx literal  "&&"
-    add $I11, rx1244_pos, 2
-    gt $I11, rx1244_eos, rx1244_fail
-    sub $I11, rx1244_pos, rx1244_off
-    substr $S10, rx1244_tgt, $I11, 2
-    ne $S10, "&&", rx1244_fail
-    add rx1244_pos, 2
-    set_addr $I10, rxcap_1249_fail
-    ($I12, $I11) = rx1244_cur."!mark_peek"($I10)
-    rx1244_cur."!cursor_pos"($I11)
-    ($P10) = rx1244_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1244_pos, "")
-    rx1244_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1249_done
-  rxcap_1249_fail:
-    goto rx1244_fail
-  rxcap_1249_done:
+    goto rxcap_1247_done
+  rxcap_1247_fail:
+    goto rx1242_fail
+  rxcap_1247_done:
   # rx subrule "O" subtype=capture negate=
-    rx1244_cur."!cursor_pos"(rx1244_pos)
-    $P10 = rx1244_cur."O"("%tight_and, :pasttype<if>")
-    unless $P10, rx1244_fail
-    rx1244_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1244_pos = $P10."pos"()
+    rx1242_pos = $P10."pos"()
   # rx pass
-    rx1244_cur."!cursor_pass"(rx1244_pos, "infix:sym<&&>")
-    rx1244_cur."!cursor_debug"("PASS  ", "infix:sym<&&>", " at pos=", rx1244_pos)
-    .return (rx1244_cur)
-  rx1244_fail:
-.annotate 'line', 446
-    (rx1244_rep, rx1244_pos, $I10, $P10) = rx1244_cur."!mark_fail"(0)
-    lt rx1244_pos, -1, rx1244_done
-    eq rx1244_pos, -1, rx1244_fail
+    rx1242_cur."!cursor_pass"(rx1242_pos, "infix:sym<&&>")
+    rx1242_cur."!cursor_debug"("PASS  ", "infix:sym<&&>", " at pos=", rx1242_pos)
+    .return (rx1242_cur)
+  rx1242_restart:
+.annotate 'line', 447
+    rx1242_cur."!cursor_debug"("NEXT ", "infix:sym<&&>")
+  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
-  rx1244_done:
-    rx1244_cur."!cursor_fail"()
-    rx1244_cur."!cursor_debug"("FAIL  ", "infix:sym<&&>")
-    .return (rx1244_cur)
+  rx1242_done:
+    rx1242_cur."!cursor_fail"()
+    rx1242_cur."!cursor_debug"("FAIL  ", "infix:sym<&&>")
+    .return (rx1242_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<&&>"  :subid("315_1277356913.9538") :method
-.annotate 'line', 446
-    $P1246 = self."!PREFIX__!subrule"("O", "&&")
-    new $P1247, "ResizablePMCArray"
-    push $P1247, $P1246
-    .return ($P1247)
+.sub "!PREFIX__infix:sym<&&>"  :subid("323_1280467477.44751") :method
+.annotate 'line', 447
+    $P1244 = self."!PREFIX__!subrule"("O", "&&")
+    new $P1245, "ResizablePMCArray"
+    push $P1245, $P1244
+    .return ($P1245)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<||>"  :subid("316_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1251_tgt
-    .local int rx1251_pos
-    .local int rx1251_off
-    .local int rx1251_eos
-    .local int rx1251_rep
-    .local pmc rx1251_cur
-    (rx1251_cur, rx1251_pos, rx1251_tgt) = self."!cursor_start"()
-    rx1251_cur."!cursor_debug"("START ", "infix:sym<||>")
-    .lex unicode:"$\x{a2}", rx1251_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1251_eos, rx1251_tgt
-    gt rx1251_pos, rx1251_eos, rx1251_done
-    set rx1251_off, 0
-    lt rx1251_pos, 2, rx1251_start
-    sub rx1251_off, rx1251_pos, 1
-    substr rx1251_tgt, rx1251_tgt, rx1251_off
-  rx1251_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1255_done
-    goto rxscan1255_scan
-  rxscan1255_loop:
-    ($P10) = rx1251_cur."from"()
-    inc $P10
-    set rx1251_pos, $P10
-    ge rx1251_pos, rx1251_eos, rxscan1255_done
-  rxscan1255_scan:
-    set_addr $I10, rxscan1255_loop
-    rx1251_cur."!mark_push"(0, rx1251_pos, $I10)
-  rxscan1255_done:
-.annotate 'line', 532
+.sub "infix:sym<||>"  :subid("324_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1249_tgt
+    .local int rx1249_pos
+    .local int rx1249_off
+    .local int rx1249_eos
+    .local int rx1249_rep
+    .local pmc rx1249_cur
+    (rx1249_cur, rx1249_pos, rx1249_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1249_cur."!cursor_debug"("START ", "infix:sym<||>")
+    $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:
+.annotate 'line', 536
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1256_fail
-    rx1251_cur."!mark_push"(0, rx1251_pos, $I10)
+    set_addr $I10, rxcap_1254_fail
+    rx1249_cur."!mark_push"(0, rx1249_pos, $I10)
   # rx literal  "||"
-    add $I11, rx1251_pos, 2
-    gt $I11, rx1251_eos, rx1251_fail
-    sub $I11, rx1251_pos, rx1251_off
-    substr $S10, rx1251_tgt, $I11, 2
-    ne $S10, "||", rx1251_fail
-    add rx1251_pos, 2
-    set_addr $I10, rxcap_1256_fail
-    ($I12, $I11) = rx1251_cur."!mark_peek"($I10)
-    rx1251_cur."!cursor_pos"($I11)
-    ($P10) = rx1251_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1251_pos, "")
-    rx1251_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1256_done
-  rxcap_1256_fail:
-    goto rx1251_fail
-  rxcap_1256_done:
+    goto rxcap_1254_done
+  rxcap_1254_fail:
+    goto rx1249_fail
+  rxcap_1254_done:
   # rx subrule "O" subtype=capture negate=
-    rx1251_cur."!cursor_pos"(rx1251_pos)
-    $P10 = rx1251_cur."O"("%tight_or, :pasttype<unless>")
-    unless $P10, rx1251_fail
-    rx1251_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1251_pos = $P10."pos"()
+    rx1249_pos = $P10."pos"()
   # rx pass
-    rx1251_cur."!cursor_pass"(rx1251_pos, "infix:sym<||>")
-    rx1251_cur."!cursor_debug"("PASS  ", "infix:sym<||>", " at pos=", rx1251_pos)
-    .return (rx1251_cur)
-  rx1251_fail:
-.annotate 'line', 446
-    (rx1251_rep, rx1251_pos, $I10, $P10) = rx1251_cur."!mark_fail"(0)
-    lt rx1251_pos, -1, rx1251_done
-    eq rx1251_pos, -1, rx1251_fail
+    rx1249_cur."!cursor_pass"(rx1249_pos, "infix:sym<||>")
+    rx1249_cur."!cursor_debug"("PASS  ", "infix:sym<||>", " at pos=", rx1249_pos)
+    .return (rx1249_cur)
+  rx1249_restart:
+.annotate 'line', 447
+    rx1249_cur."!cursor_debug"("NEXT ", "infix:sym<||>")
+  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
-  rx1251_done:
-    rx1251_cur."!cursor_fail"()
-    rx1251_cur."!cursor_debug"("FAIL  ", "infix:sym<||>")
-    .return (rx1251_cur)
+  rx1249_done:
+    rx1249_cur."!cursor_fail"()
+    rx1249_cur."!cursor_debug"("FAIL  ", "infix:sym<||>")
+    .return (rx1249_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<||>"  :subid("317_1277356913.9538") :method
-.annotate 'line', 446
-    $P1253 = self."!PREFIX__!subrule"("O", "||")
-    new $P1254, "ResizablePMCArray"
-    push $P1254, $P1253
-    .return ($P1254)
+.sub "!PREFIX__infix:sym<||>"  :subid("325_1280467477.44751") :method
+.annotate 'line', 447
+    $P1251 = self."!PREFIX__!subrule"("O", "||")
+    new $P1252, "ResizablePMCArray"
+    push $P1252, $P1251
+    .return ($P1252)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<//>"  :subid("318_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1258_tgt
-    .local int rx1258_pos
-    .local int rx1258_off
-    .local int rx1258_eos
-    .local int rx1258_rep
-    .local pmc rx1258_cur
-    (rx1258_cur, rx1258_pos, rx1258_tgt) = self."!cursor_start"()
-    rx1258_cur."!cursor_debug"("START ", "infix:sym<//>")
-    .lex unicode:"$\x{a2}", rx1258_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1258_eos, rx1258_tgt
-    gt rx1258_pos, rx1258_eos, rx1258_done
-    set rx1258_off, 0
-    lt rx1258_pos, 2, rx1258_start
-    sub rx1258_off, rx1258_pos, 1
-    substr rx1258_tgt, rx1258_tgt, rx1258_off
-  rx1258_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1262_done
-    goto rxscan1262_scan
-  rxscan1262_loop:
-    ($P10) = rx1258_cur."from"()
-    inc $P10
-    set rx1258_pos, $P10
-    ge rx1258_pos, rx1258_eos, rxscan1262_done
-  rxscan1262_scan:
-    set_addr $I10, rxscan1262_loop
-    rx1258_cur."!mark_push"(0, rx1258_pos, $I10)
-  rxscan1262_done:
-.annotate 'line', 533
+.sub "infix:sym<//>"  :subid("326_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1256_tgt
+    .local int rx1256_pos
+    .local int rx1256_off
+    .local int rx1256_eos
+    .local int rx1256_rep
+    .local pmc rx1256_cur
+    (rx1256_cur, rx1256_pos, rx1256_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1256_cur."!cursor_debug"("START ", "infix:sym<//>")
+    $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:
+.annotate 'line', 537
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1263_fail
-    rx1258_cur."!mark_push"(0, rx1258_pos, $I10)
+    set_addr $I10, rxcap_1261_fail
+    rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
   # rx literal  "//"
-    add $I11, rx1258_pos, 2
-    gt $I11, rx1258_eos, rx1258_fail
-    sub $I11, rx1258_pos, rx1258_off
-    substr $S10, rx1258_tgt, $I11, 2
-    ne $S10, "//", rx1258_fail
-    add rx1258_pos, 2
-    set_addr $I10, rxcap_1263_fail
-    ($I12, $I11) = rx1258_cur."!mark_peek"($I10)
-    rx1258_cur."!cursor_pos"($I11)
-    ($P10) = rx1258_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1258_pos, "")
-    rx1258_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1263_done
-  rxcap_1263_fail:
-    goto rx1258_fail
-  rxcap_1263_done:
+    goto rxcap_1261_done
+  rxcap_1261_fail:
+    goto rx1256_fail
+  rxcap_1261_done:
   # rx subrule "O" subtype=capture negate=
-    rx1258_cur."!cursor_pos"(rx1258_pos)
-    $P10 = rx1258_cur."O"("%tight_or, :pasttype<def_or>")
-    unless $P10, rx1258_fail
-    rx1258_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1258_pos = $P10."pos"()
+    rx1256_pos = $P10."pos"()
   # rx pass
-    rx1258_cur."!cursor_pass"(rx1258_pos, "infix:sym<//>")
-    rx1258_cur."!cursor_debug"("PASS  ", "infix:sym<//>", " at pos=", rx1258_pos)
-    .return (rx1258_cur)
-  rx1258_fail:
-.annotate 'line', 446
-    (rx1258_rep, rx1258_pos, $I10, $P10) = rx1258_cur."!mark_fail"(0)
-    lt rx1258_pos, -1, rx1258_done
-    eq rx1258_pos, -1, rx1258_fail
+    rx1256_cur."!cursor_pass"(rx1256_pos, "infix:sym<//>")
+    rx1256_cur."!cursor_debug"("PASS  ", "infix:sym<//>", " at pos=", rx1256_pos)
+    .return (rx1256_cur)
+  rx1256_restart:
+.annotate 'line', 447
+    rx1256_cur."!cursor_debug"("NEXT ", "infix:sym<//>")
+  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
-  rx1258_done:
-    rx1258_cur."!cursor_fail"()
-    rx1258_cur."!cursor_debug"("FAIL  ", "infix:sym<//>")
-    .return (rx1258_cur)
+  rx1256_done:
+    rx1256_cur."!cursor_fail"()
+    rx1256_cur."!cursor_debug"("FAIL  ", "infix:sym<//>")
+    .return (rx1256_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<//>"  :subid("319_1277356913.9538") :method
-.annotate 'line', 446
-    $P1260 = self."!PREFIX__!subrule"("O", "//")
-    new $P1261, "ResizablePMCArray"
-    push $P1261, $P1260
-    .return ($P1261)
+.sub "!PREFIX__infix:sym<//>"  :subid("327_1280467477.44751") :method
+.annotate 'line', 447
+    $P1258 = self."!PREFIX__!subrule"("O", "//")
+    new $P1259, "ResizablePMCArray"
+    push $P1259, $P1258
+    .return ($P1259)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<?? !!>"  :subid("320_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1265_tgt
-    .local int rx1265_pos
-    .local int rx1265_off
-    .local int rx1265_eos
-    .local int rx1265_rep
-    .local pmc rx1265_cur
-    (rx1265_cur, rx1265_pos, rx1265_tgt) = self."!cursor_start"()
-    rx1265_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
-    .lex unicode:"$\x{a2}", rx1265_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1265_eos, rx1265_tgt
-    gt rx1265_pos, rx1265_eos, rx1265_done
-    set rx1265_off, 0
-    lt rx1265_pos, 2, rx1265_start
-    sub rx1265_off, rx1265_pos, 1
-    substr rx1265_tgt, rx1265_tgt, rx1265_off
-  rx1265_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1269_done
-    goto rxscan1269_scan
-  rxscan1269_loop:
-    ($P10) = rx1265_cur."from"()
-    inc $P10
-    set rx1265_pos, $P10
-    ge rx1265_pos, rx1265_eos, rxscan1269_done
-  rxscan1269_scan:
-    set_addr $I10, rxscan1269_loop
-    rx1265_cur."!mark_push"(0, rx1265_pos, $I10)
-  rxscan1269_done:
-.annotate 'line', 536
+.sub "infix:sym<?? !!>"  :subid("328_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1263_tgt
+    .local int rx1263_pos
+    .local int rx1263_off
+    .local int rx1263_eos
+    .local int rx1263_rep
+    .local pmc rx1263_cur
+    (rx1263_cur, rx1263_pos, rx1263_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1263_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
+    $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:
+.annotate 'line', 540
   # rx literal  "??"
-    add $I11, rx1265_pos, 2
-    gt $I11, rx1265_eos, rx1265_fail
-    sub $I11, rx1265_pos, rx1265_off
-    substr $S10, rx1265_tgt, $I11, 2
-    ne $S10, "??", rx1265_fail
-    add rx1265_pos, 2
-.annotate 'line', 537
+    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
+.annotate 'line', 541
   # rx subrule "ws" subtype=method negate=
-    rx1265_cur."!cursor_pos"(rx1265_pos)
-    $P10 = rx1265_cur."ws"()
-    unless $P10, rx1265_fail
-    rx1265_pos = $P10."pos"()
-.annotate 'line', 538
+    rx1263_cur."!cursor_pos"(rx1263_pos)
+    $P10 = rx1263_cur."ws"()
+    unless $P10, rx1263_fail
+    rx1263_pos = $P10."pos"()
+.annotate 'line', 542
   # rx subrule "EXPR" subtype=capture negate=
-    rx1265_cur."!cursor_pos"(rx1265_pos)
-    $P10 = rx1265_cur."EXPR"("i=")
-    unless $P10, rx1265_fail
-    rx1265_cur."!mark_push"(0, -1, 0, $P10)
+    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")
-    rx1265_pos = $P10."pos"()
-.annotate 'line', 539
+    rx1263_pos = $P10."pos"()
+.annotate 'line', 543
   # rx literal  "!!"
-    add $I11, rx1265_pos, 2
-    gt $I11, rx1265_eos, rx1265_fail
-    sub $I11, rx1265_pos, rx1265_off
-    substr $S10, rx1265_tgt, $I11, 2
-    ne $S10, "!!", rx1265_fail
-    add rx1265_pos, 2
-.annotate 'line', 540
+    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
+.annotate 'line', 544
   # rx subrule "O" subtype=capture negate=
-    rx1265_cur."!cursor_pos"(rx1265_pos)
-    $P10 = rx1265_cur."O"("%conditional, :reducecheck<ternary>, :pasttype<if>")
-    unless $P10, rx1265_fail
-    rx1265_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1265_pos = $P10."pos"()
-.annotate 'line', 535
+    rx1263_pos = $P10."pos"()
+.annotate 'line', 539
   # rx pass
-    rx1265_cur."!cursor_pass"(rx1265_pos, "infix:sym<?? !!>")
-    rx1265_cur."!cursor_debug"("PASS  ", "infix:sym<?? !!>", " at pos=", rx1265_pos)
-    .return (rx1265_cur)
-  rx1265_fail:
-.annotate 'line', 446
-    (rx1265_rep, rx1265_pos, $I10, $P10) = rx1265_cur."!mark_fail"(0)
-    lt rx1265_pos, -1, rx1265_done
-    eq rx1265_pos, -1, rx1265_fail
+    rx1263_cur."!cursor_pass"(rx1263_pos, "infix:sym<?? !!>")
+    rx1263_cur."!cursor_debug"("PASS  ", "infix:sym<?? !!>", " at pos=", rx1263_pos)
+    .return (rx1263_cur)
+  rx1263_restart:
+.annotate 'line', 447
+    rx1263_cur."!cursor_debug"("NEXT ", "infix:sym<?? !!>")
+  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
-  rx1265_done:
-    rx1265_cur."!cursor_fail"()
-    rx1265_cur."!cursor_debug"("FAIL  ", "infix:sym<?? !!>")
-    .return (rx1265_cur)
+  rx1263_done:
+    rx1263_cur."!cursor_fail"()
+    rx1263_cur."!cursor_debug"("FAIL  ", "infix:sym<?? !!>")
+    .return (rx1263_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<?? !!>"  :subid("321_1277356913.9538") :method
-.annotate 'line', 446
-    $P1267 = self."!PREFIX__!subrule"("ws", "??")
-    new $P1268, "ResizablePMCArray"
-    push $P1268, $P1267
-    .return ($P1268)
+.sub "!PREFIX__infix:sym<?? !!>"  :subid("329_1280467477.44751") :method
+.annotate 'line', 447
+    $P1265 = self."!PREFIX__!subrule"("ws", "??")
+    new $P1266, "ResizablePMCArray"
+    push $P1266, $P1265
+    .return ($P1266)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=>"  :subid("322_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1271_tgt
-    .local int rx1271_pos
-    .local int rx1271_off
-    .local int rx1271_eos
-    .local int rx1271_rep
-    .local pmc rx1271_cur
-    (rx1271_cur, rx1271_pos, rx1271_tgt) = self."!cursor_start"()
-    rx1271_cur."!cursor_debug"("START ", "infix:sym<=>")
-    .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:
-    $I10 = self.'from'()
-    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', 544
+.sub "infix:sym<=>"  :subid("330_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1269_tgt
+    .local int rx1269_pos
+    .local int rx1269_off
+    .local int rx1269_eos
+    .local int rx1269_rep
+    .local pmc rx1269_cur
+    (rx1269_cur, rx1269_pos, rx1269_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1269_cur."!cursor_debug"("START ", "infix:sym<=>")
+    $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:
+.annotate 'line', 548
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1276_fail
-    rx1271_cur."!mark_push"(0, rx1271_pos, $I10)
+    set_addr $I10, rxcap_1274_fail
+    rx1269_cur."!mark_push"(0, rx1269_pos, $I10)
   # rx literal  "="
-    add $I11, rx1271_pos, 1
-    gt $I11, rx1271_eos, rx1271_fail
-    sub $I11, rx1271_pos, rx1271_off
-    substr $S10, rx1271_tgt, $I11, 1
-    ne $S10, "=", rx1271_fail
-    add rx1271_pos, 1
-    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)
+    add $I11, rx1269_pos, 1
+    gt $I11, rx1269_eos, rx1269_fail
+    sub $I11, rx1269_pos, rx1269_off
+    substr $S10, rx1269_tgt, $I11, 1
+    ne $S10, "=", rx1269_fail
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1276_done
-  rxcap_1276_fail:
-    goto rx1271_fail
-  rxcap_1276_done:
+    goto rxcap_1274_done
+  rxcap_1274_fail:
+    goto rx1269_fail
+  rxcap_1274_done:
   # rx subrule "panic" subtype=method negate=
-    rx1271_cur."!cursor_pos"(rx1271_pos)
-    $P10 = rx1271_cur."panic"("Assignment (\"=\") not supported in NQP, use \":=\" instead")
-    unless $P10, rx1271_fail
-    rx1271_pos = $P10."pos"()
-.annotate 'line', 543
+    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"()
+.annotate 'line', 547
   # rx pass
-    rx1271_cur."!cursor_pass"(rx1271_pos, "infix:sym<=>")
-    rx1271_cur."!cursor_debug"("PASS  ", "infix:sym<=>", " at pos=", rx1271_pos)
-    .return (rx1271_cur)
-  rx1271_fail:
-.annotate 'line', 446
-    (rx1271_rep, rx1271_pos, $I10, $P10) = rx1271_cur."!mark_fail"(0)
-    lt rx1271_pos, -1, rx1271_done
-    eq rx1271_pos, -1, rx1271_fail
+    rx1269_cur."!cursor_pass"(rx1269_pos, "infix:sym<=>")
+    rx1269_cur."!cursor_debug"("PASS  ", "infix:sym<=>", " at pos=", rx1269_pos)
+    .return (rx1269_cur)
+  rx1269_restart:
+.annotate 'line', 447
+    rx1269_cur."!cursor_debug"("NEXT ", "infix:sym<=>")
+  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
-  rx1271_done:
-    rx1271_cur."!cursor_fail"()
-    rx1271_cur."!cursor_debug"("FAIL  ", "infix:sym<=>")
-    .return (rx1271_cur)
+  rx1269_done:
+    rx1269_cur."!cursor_fail"()
+    rx1269_cur."!cursor_debug"("FAIL  ", "infix:sym<=>")
+    .return (rx1269_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=>"  :subid("323_1277356913.9538") :method
-.annotate 'line', 446
-    $P1273 = self."!PREFIX__!subrule"("panic", "=")
-    new $P1274, "ResizablePMCArray"
-    push $P1274, $P1273
-    .return ($P1274)
+.sub "!PREFIX__infix:sym<=>"  :subid("331_1280467477.44751") :method
+.annotate 'line', 447
+    $P1271 = self."!PREFIX__!subrule"("panic", "=")
+    new $P1272, "ResizablePMCArray"
+    push $P1272, $P1271
+    .return ($P1272)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<:=>"  :subid("324_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1278_tgt
-    .local int rx1278_pos
-    .local int rx1278_off
-    .local int rx1278_eos
-    .local int rx1278_rep
-    .local pmc rx1278_cur
-    (rx1278_cur, rx1278_pos, rx1278_tgt) = self."!cursor_start"()
-    rx1278_cur."!cursor_debug"("START ", "infix:sym<:=>")
-    .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:
-    $I10 = self.'from'()
-    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', 546
+.sub "infix:sym<:=>"  :subid("332_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1276_tgt
+    .local int rx1276_pos
+    .local int rx1276_off
+    .local int rx1276_eos
+    .local int rx1276_rep
+    .local pmc rx1276_cur
+    (rx1276_cur, rx1276_pos, rx1276_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1276_cur."!cursor_debug"("START ", "infix:sym<:=>")
+    $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:
+.annotate 'line', 550
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1283_fail
-    rx1278_cur."!mark_push"(0, rx1278_pos, $I10)
+    set_addr $I10, rxcap_1281_fail
+    rx1276_cur."!mark_push"(0, rx1276_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)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1283_done
-  rxcap_1283_fail:
-    goto rx1278_fail
-  rxcap_1283_done:
+    goto rxcap_1281_done
+  rxcap_1281_fail:
+    goto rx1276_fail
+  rxcap_1281_done:
   # rx subrule "O" subtype=capture negate=
-    rx1278_cur."!cursor_pos"(rx1278_pos)
-    $P10 = rx1278_cur."O"("%assignment, :pasttype<bind>")
-    unless $P10, rx1278_fail
-    rx1278_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1278_pos = $P10."pos"()
+    rx1276_pos = $P10."pos"()
   # rx pass
-    rx1278_cur."!cursor_pass"(rx1278_pos, "infix:sym<:=>")
-    rx1278_cur."!cursor_debug"("PASS  ", "infix:sym<:=>", " at pos=", rx1278_pos)
-    .return (rx1278_cur)
-  rx1278_fail:
-.annotate 'line', 446
-    (rx1278_rep, rx1278_pos, $I10, $P10) = rx1278_cur."!mark_fail"(0)
-    lt rx1278_pos, -1, rx1278_done
-    eq rx1278_pos, -1, rx1278_fail
+    rx1276_cur."!cursor_pass"(rx1276_pos, "infix:sym<:=>")
+    rx1276_cur."!cursor_debug"("PASS  ", "infix:sym<:=>", " at pos=", rx1276_pos)
+    .return (rx1276_cur)
+  rx1276_restart:
+.annotate 'line', 447
+    rx1276_cur."!cursor_debug"("NEXT ", "infix:sym<:=>")
+  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
-  rx1278_done:
-    rx1278_cur."!cursor_fail"()
-    rx1278_cur."!cursor_debug"("FAIL  ", "infix:sym<:=>")
-    .return (rx1278_cur)
+  rx1276_done:
+    rx1276_cur."!cursor_fail"()
+    rx1276_cur."!cursor_debug"("FAIL  ", "infix:sym<:=>")
+    .return (rx1276_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<:=>"  :subid("325_1277356913.9538") :method
-.annotate 'line', 446
-    $P1280 = self."!PREFIX__!subrule"("O", ":=")
-    new $P1281, "ResizablePMCArray"
-    push $P1281, $P1280
-    .return ($P1281)
+.sub "!PREFIX__infix:sym<:=>"  :subid("333_1280467477.44751") :method
+.annotate 'line', 447
+    $P1278 = self."!PREFIX__!subrule"("O", ":=")
+    new $P1279, "ResizablePMCArray"
+    push $P1279, $P1278
+    .return ($P1279)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<::=>"  :subid("326_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1285_tgt
-    .local int rx1285_pos
-    .local int rx1285_off
-    .local int rx1285_eos
-    .local int rx1285_rep
-    .local pmc rx1285_cur
-    (rx1285_cur, rx1285_pos, rx1285_tgt) = self."!cursor_start"()
-    rx1285_cur."!cursor_debug"("START ", "infix:sym<::=>")
-    .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:
-    $I10 = self.'from'()
-    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', 547
+.sub "infix:sym<::=>"  :subid("334_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1283_tgt
+    .local int rx1283_pos
+    .local int rx1283_off
+    .local int rx1283_eos
+    .local int rx1283_rep
+    .local pmc rx1283_cur
+    (rx1283_cur, rx1283_pos, rx1283_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1283_cur."!cursor_debug"("START ", "infix:sym<::=>")
+    $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:
+.annotate 'line', 551
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1290_fail
-    rx1285_cur."!mark_push"(0, rx1285_pos, $I10)
+    set_addr $I10, rxcap_1288_fail
+    rx1283_cur."!mark_push"(0, rx1283_pos, $I10)
   # rx literal  "::="
-    add $I11, rx1285_pos, 3
-    gt $I11, rx1285_eos, rx1285_fail
-    sub $I11, rx1285_pos, rx1285_off
-    substr $S10, rx1285_tgt, $I11, 3
-    ne $S10, "::=", rx1285_fail
-    add rx1285_pos, 3
-    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)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1290_done
-  rxcap_1290_fail:
-    goto rx1285_fail
-  rxcap_1290_done:
+    goto rxcap_1288_done
+  rxcap_1288_fail:
+    goto rx1283_fail
+  rxcap_1288_done:
   # rx subrule "O" subtype=capture negate=
-    rx1285_cur."!cursor_pos"(rx1285_pos)
-    $P10 = rx1285_cur."O"("%assignment, :pasttype<bind>")
-    unless $P10, rx1285_fail
-    rx1285_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1285_pos = $P10."pos"()
+    rx1283_pos = $P10."pos"()
   # rx pass
-    rx1285_cur."!cursor_pass"(rx1285_pos, "infix:sym<::=>")
-    rx1285_cur."!cursor_debug"("PASS  ", "infix:sym<::=>", " at pos=", rx1285_pos)
-    .return (rx1285_cur)
-  rx1285_fail:
-.annotate 'line', 446
-    (rx1285_rep, rx1285_pos, $I10, $P10) = rx1285_cur."!mark_fail"(0)
-    lt rx1285_pos, -1, rx1285_done
-    eq rx1285_pos, -1, rx1285_fail
+    rx1283_cur."!cursor_pass"(rx1283_pos, "infix:sym<::=>")
+    rx1283_cur."!cursor_debug"("PASS  ", "infix:sym<::=>", " at pos=", rx1283_pos)
+    .return (rx1283_cur)
+  rx1283_restart:
+.annotate 'line', 447
+    rx1283_cur."!cursor_debug"("NEXT ", "infix:sym<::=>")
+  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
-  rx1285_done:
-    rx1285_cur."!cursor_fail"()
-    rx1285_cur."!cursor_debug"("FAIL  ", "infix:sym<::=>")
-    .return (rx1285_cur)
+  rx1283_done:
+    rx1283_cur."!cursor_fail"()
+    rx1283_cur."!cursor_debug"("FAIL  ", "infix:sym<::=>")
+    .return (rx1283_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<::=>"  :subid("327_1277356913.9538") :method
-.annotate 'line', 446
-    $P1287 = self."!PREFIX__!subrule"("O", "::=")
-    new $P1288, "ResizablePMCArray"
-    push $P1288, $P1287
-    .return ($P1288)
+.sub "!PREFIX__infix:sym<::=>"  :subid("335_1280467477.44751") :method
+.annotate 'line', 447
+    $P1285 = self."!PREFIX__!subrule"("O", "::=")
+    new $P1286, "ResizablePMCArray"
+    push $P1286, $P1285
+    .return ($P1286)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<,>"  :subid("328_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1292_tgt
-    .local int rx1292_pos
-    .local int rx1292_off
-    .local int rx1292_eos
-    .local int rx1292_rep
-    .local pmc rx1292_cur
-    (rx1292_cur, rx1292_pos, rx1292_tgt) = self."!cursor_start"()
-    rx1292_cur."!cursor_debug"("START ", "infix:sym<,>")
-    .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:
-    $I10 = self.'from'()
-    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', 549
+.sub "infix:sym<,>"  :subid("336_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1290_tgt
+    .local int rx1290_pos
+    .local int rx1290_off
+    .local int rx1290_eos
+    .local int rx1290_rep
+    .local pmc rx1290_cur
+    (rx1290_cur, rx1290_pos, rx1290_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1290_cur."!cursor_debug"("START ", "infix:sym<,>")
+    $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:
+.annotate 'line', 553
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1297_fail
-    rx1292_cur."!mark_push"(0, rx1292_pos, $I10)
+    set_addr $I10, rxcap_1295_fail
+    rx1290_cur."!mark_push"(0, rx1290_pos, $I10)
   # rx literal  ","
-    add $I11, rx1292_pos, 1
-    gt $I11, rx1292_eos, rx1292_fail
-    sub $I11, rx1292_pos, rx1292_off
-    substr $S10, rx1292_tgt, $I11, 1
-    ne $S10, ",", rx1292_fail
-    add rx1292_pos, 1
-    set_addr $I10, rxcap_1297_fail
-    ($I12, $I11) = rx1292_cur."!mark_peek"($I10)
-    rx1292_cur."!cursor_pos"($I11)
-    ($P10) = rx1292_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1292_pos, "")
-    rx1292_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1290_pos, 1
+    gt $I11, rx1290_eos, rx1290_fail
+    sub $I11, rx1290_pos, rx1290_off
+    substr $S10, rx1290_tgt, $I11, 1
+    ne $S10, ",", rx1290_fail
+    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_1297_done
-  rxcap_1297_fail:
-    goto rx1292_fail
-  rxcap_1297_done:
+    goto rxcap_1295_done
+  rxcap_1295_fail:
+    goto rx1290_fail
+  rxcap_1295_done:
   # rx subrule "O" subtype=capture negate=
-    rx1292_cur."!cursor_pos"(rx1292_pos)
-    $P10 = rx1292_cur."O"("%comma, :pasttype<list>")
-    unless $P10, rx1292_fail
-    rx1292_cur."!mark_push"(0, -1, 0, $P10)
+    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")
-    rx1292_pos = $P10."pos"()
+    rx1290_pos = $P10."pos"()
   # rx pass
-    rx1292_cur."!cursor_pass"(rx1292_pos, "infix:sym<,>")
-    rx1292_cur."!cursor_debug"("PASS  ", "infix:sym<,>", " at pos=", rx1292_pos)
-    .return (rx1292_cur)
-  rx1292_fail:
-.annotate 'line', 446
-    (rx1292_rep, rx1292_pos, $I10, $P10) = rx1292_cur."!mark_fail"(0)
-    lt rx1292_pos, -1, rx1292_done
-    eq rx1292_pos, -1, rx1292_fail
+    rx1290_cur."!cursor_pass"(rx1290_pos, "infix:sym<,>")
+    rx1290_cur."!cursor_debug"("PASS  ", "infix:sym<,>", " at pos=", rx1290_pos)
+    .return (rx1290_cur)
+  rx1290_restart:
+.annotate 'line', 447
+    rx1290_cur."!cursor_debug"("NEXT ", "infix:sym<,>")
+  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
-  rx1292_done:
-    rx1292_cur."!cursor_fail"()
-    rx1292_cur."!cursor_debug"("FAIL  ", "infix:sym<,>")
-    .return (rx1292_cur)
+  rx1290_done:
+    rx1290_cur."!cursor_fail"()
+    rx1290_cur."!cursor_debug"("FAIL  ", "infix:sym<,>")
+    .return (rx1290_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<,>"  :subid("329_1277356913.9538") :method
-.annotate 'line', 446
-    $P1294 = self."!PREFIX__!subrule"("O", ",")
-    new $P1295, "ResizablePMCArray"
-    push $P1295, $P1294
-    .return ($P1295)
+.sub "!PREFIX__infix:sym<,>"  :subid("337_1280467477.44751") :method
+.annotate 'line', 447
+    $P1292 = self."!PREFIX__!subrule"("O", ",")
+    new $P1293, "ResizablePMCArray"
+    push $P1293, $P1292
+    .return ($P1293)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<return>"  :subid("330_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1299_tgt
-    .local int rx1299_pos
-    .local int rx1299_off
-    .local int rx1299_eos
-    .local int rx1299_rep
-    .local pmc rx1299_cur
-    (rx1299_cur, rx1299_pos, rx1299_tgt) = self."!cursor_start"()
-    rx1299_cur."!cursor_debug"("START ", "prefix:sym<return>")
-    .lex unicode:"$\x{a2}", rx1299_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1299_eos, rx1299_tgt
-    gt rx1299_pos, rx1299_eos, rx1299_done
-    set rx1299_off, 0
-    lt rx1299_pos, 2, rx1299_start
-    sub rx1299_off, rx1299_pos, 1
-    substr rx1299_tgt, rx1299_tgt, rx1299_off
-  rx1299_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1302_done
-    goto rxscan1302_scan
-  rxscan1302_loop:
-    ($P10) = rx1299_cur."from"()
-    inc $P10
-    set rx1299_pos, $P10
-    ge rx1299_pos, rx1299_eos, rxscan1302_done
-  rxscan1302_scan:
-    set_addr $I10, rxscan1302_loop
-    rx1299_cur."!mark_push"(0, rx1299_pos, $I10)
-  rxscan1302_done:
-.annotate 'line', 551
+.sub "prefix:sym<return>"  :subid("338_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1297_tgt
+    .local int rx1297_pos
+    .local int rx1297_off
+    .local int rx1297_eos
+    .local int rx1297_rep
+    .local pmc rx1297_cur
+    (rx1297_cur, rx1297_pos, rx1297_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1297_cur."!cursor_debug"("START ", "prefix:sym<return>")
+    $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:
+.annotate 'line', 555
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1303_fail
-    rx1299_cur."!mark_push"(0, rx1299_pos, $I10)
+    set_addr $I10, rxcap_1301_fail
+    rx1297_cur."!mark_push"(0, rx1297_pos, $I10)
   # rx literal  "return"
-    add $I11, rx1299_pos, 6
-    gt $I11, rx1299_eos, rx1299_fail
-    sub $I11, rx1299_pos, rx1299_off
-    substr $S10, rx1299_tgt, $I11, 6
-    ne $S10, "return", rx1299_fail
-    add rx1299_pos, 6
-    set_addr $I10, rxcap_1303_fail
-    ($I12, $I11) = rx1299_cur."!mark_peek"($I10)
-    rx1299_cur."!cursor_pos"($I11)
-    ($P10) = rx1299_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1299_pos, "")
-    rx1299_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1303_done
-  rxcap_1303_fail:
-    goto rx1299_fail
-  rxcap_1303_done:
+    goto rxcap_1301_done
+  rxcap_1301_fail:
+    goto rx1297_fail
+  rxcap_1301_done:
   # rx charclass s
-    ge rx1299_pos, rx1299_eos, rx1299_fail
-    sub $I10, rx1299_pos, rx1299_off
-    is_cclass $I11, 32, rx1299_tgt, $I10
-    unless $I11, rx1299_fail
-    inc rx1299_pos
+    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
   # rx subrule "O" subtype=capture negate=
-    rx1299_cur."!cursor_pos"(rx1299_pos)
-    $P10 = rx1299_cur."O"("%list_prefix, :pasttype<return>")
-    unless $P10, rx1299_fail
-    rx1299_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("O")
-    rx1299_pos = $P10."pos"()
+    rx1297_pos = $P10."pos"()
   # rx pass
-    rx1299_cur."!cursor_pass"(rx1299_pos, "prefix:sym<return>")
-    rx1299_cur."!cursor_debug"("PASS  ", "prefix:sym<return>", " at pos=", rx1299_pos)
-    .return (rx1299_cur)
-  rx1299_fail:
-.annotate 'line', 446
-    (rx1299_rep, rx1299_pos, $I10, $P10) = rx1299_cur."!mark_fail"(0)
-    lt rx1299_pos, -1, rx1299_done
-    eq rx1299_pos, -1, rx1299_fail
+    rx1297_cur."!cursor_pass"(rx1297_pos, "prefix:sym<return>")
+    rx1297_cur."!cursor_debug"("PASS  ", "prefix:sym<return>", " at pos=", rx1297_pos)
+    .return (rx1297_cur)
+  rx1297_restart:
+.annotate 'line', 447
+    rx1297_cur."!cursor_debug"("NEXT ", "prefix:sym<return>")
+  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
-  rx1299_done:
-    rx1299_cur."!cursor_fail"()
-    rx1299_cur."!cursor_debug"("FAIL  ", "prefix:sym<return>")
-    .return (rx1299_cur)
+  rx1297_done:
+    rx1297_cur."!cursor_fail"()
+    rx1297_cur."!cursor_debug"("FAIL  ", "prefix:sym<return>")
+    .return (rx1297_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<return>"  :subid("331_1277356913.9538") :method
-.annotate 'line', 446
-    new $P1301, "ResizablePMCArray"
-    push $P1301, "return"
-    .return ($P1301)
+.sub "!PREFIX__prefix:sym<return>"  :subid("339_1280467477.44751") :method
+.annotate 'line', 447
+    new $P1299, "ResizablePMCArray"
+    push $P1299, "return"
+    .return ($P1299)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<make>"  :subid("332_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1305_tgt
-    .local int rx1305_pos
-    .local int rx1305_off
-    .local int rx1305_eos
-    .local int rx1305_rep
-    .local pmc rx1305_cur
-    (rx1305_cur, rx1305_pos, rx1305_tgt) = self."!cursor_start"()
-    rx1305_cur."!cursor_debug"("START ", "prefix:sym<make>")
-    .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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1308_done
-    goto rxscan1308_scan
-  rxscan1308_loop:
-    ($P10) = rx1305_cur."from"()
-    inc $P10
-    set rx1305_pos, $P10
-    ge rx1305_pos, rx1305_eos, rxscan1308_done
-  rxscan1308_scan:
-    set_addr $I10, rxscan1308_loop
-    rx1305_cur."!mark_push"(0, rx1305_pos, $I10)
-  rxscan1308_done:
-.annotate 'line', 552
+.sub "prefix:sym<make>"  :subid("340_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1303_tgt
+    .local int rx1303_pos
+    .local int rx1303_off
+    .local int rx1303_eos
+    .local int rx1303_rep
+    .local pmc rx1303_cur
+    (rx1303_cur, rx1303_pos, rx1303_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1303_cur."!cursor_debug"("START ", "prefix:sym<make>")
+    $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:
+.annotate 'line', 556
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1309_fail
-    rx1305_cur."!mark_push"(0, rx1305_pos, $I10)
+    set_addr $I10, rxcap_1307_fail
+    rx1303_cur."!mark_push"(0, rx1303_pos, $I10)
   # rx literal  "make"
-    add $I11, rx1305_pos, 4
-    gt $I11, rx1305_eos, rx1305_fail
-    sub $I11, rx1305_pos, rx1305_off
-    substr $S10, rx1305_tgt, $I11, 4
-    ne $S10, "make", rx1305_fail
-    add rx1305_pos, 4
-    set_addr $I10, rxcap_1309_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)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1309_done
-  rxcap_1309_fail:
-    goto rx1305_fail
-  rxcap_1309_done:
+    goto rxcap_1307_done
+  rxcap_1307_fail:
+    goto rx1303_fail
+  rxcap_1307_done:
   # rx charclass s
-    ge rx1305_pos, rx1305_eos, rx1305_fail
-    sub $I10, rx1305_pos, rx1305_off
-    is_cclass $I11, 32, rx1305_tgt, $I10
-    unless $I11, rx1305_fail
-    inc rx1305_pos
+    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
   # rx subrule "O" subtype=capture negate=
-    rx1305_cur."!cursor_pos"(rx1305_pos)
-    $P10 = rx1305_cur."O"("%list_prefix")
-    unless $P10, rx1305_fail
-    rx1305_cur."!mark_push"(0, -1, 0, $P10)
+    rx1303_cur."!cursor_pos"(rx1303_pos)
+    $P10 = rx1303_cur."O"("%list_prefix")
+    unless $P10, rx1303_fail
+    rx1303_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1305_pos = $P10."pos"()
+    rx1303_pos = $P10."pos"()
   # rx pass
-    rx1305_cur."!cursor_pass"(rx1305_pos, "prefix:sym<make>")
-    rx1305_cur."!cursor_debug"("PASS  ", "prefix:sym<make>", " at pos=", rx1305_pos)
-    .return (rx1305_cur)
-  rx1305_fail:
-.annotate 'line', 446
-    (rx1305_rep, rx1305_pos, $I10, $P10) = rx1305_cur."!mark_fail"(0)
-    lt rx1305_pos, -1, rx1305_done
-    eq rx1305_pos, -1, rx1305_fail
+    rx1303_cur."!cursor_pass"(rx1303_pos, "prefix:sym<make>")
+    rx1303_cur."!cursor_debug"("PASS  ", "prefix:sym<make>", " at pos=", rx1303_pos)
+    .return (rx1303_cur)
+  rx1303_restart:
+.annotate 'line', 447
+    rx1303_cur."!cursor_debug"("NEXT ", "prefix:sym<make>")
+  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
-  rx1305_done:
-    rx1305_cur."!cursor_fail"()
-    rx1305_cur."!cursor_debug"("FAIL  ", "prefix:sym<make>")
-    .return (rx1305_cur)
+  rx1303_done:
+    rx1303_cur."!cursor_fail"()
+    rx1303_cur."!cursor_debug"("FAIL  ", "prefix:sym<make>")
+    .return (rx1303_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<make>"  :subid("333_1277356913.9538") :method
-.annotate 'line', 446
-    new $P1307, "ResizablePMCArray"
-    push $P1307, "make"
-    .return ($P1307)
+.sub "!PREFIX__prefix:sym<make>"  :subid("341_1280467477.44751") :method
+.annotate 'line', 447
+    new $P1305, "ResizablePMCArray"
+    push $P1305, "make"
+    .return ($P1305)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<last>"  :subid("334_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1311_tgt
-    .local int rx1311_pos
-    .local int rx1311_off
-    .local int rx1311_eos
-    .local int rx1311_rep
-    .local pmc rx1311_cur
-    (rx1311_cur, rx1311_pos, rx1311_tgt) = self."!cursor_start"()
-    rx1311_cur."!cursor_debug"("START ", "term:sym<last>")
-    .lex unicode:"$\x{a2}", rx1311_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1311_eos, rx1311_tgt
-    gt rx1311_pos, rx1311_eos, rx1311_done
-    set rx1311_off, 0
-    lt rx1311_pos, 2, rx1311_start
-    sub rx1311_off, rx1311_pos, 1
-    substr rx1311_tgt, rx1311_tgt, rx1311_off
-  rx1311_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1314_done
-    goto rxscan1314_scan
-  rxscan1314_loop:
-    ($P10) = rx1311_cur."from"()
-    inc $P10
-    set rx1311_pos, $P10
-    ge rx1311_pos, rx1311_eos, rxscan1314_done
-  rxscan1314_scan:
-    set_addr $I10, rxscan1314_loop
-    rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
-  rxscan1314_done:
-.annotate 'line', 553
+.sub "term:sym<last>"  :subid("342_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1309_tgt
+    .local int rx1309_pos
+    .local int rx1309_off
+    .local int rx1309_eos
+    .local int rx1309_rep
+    .local pmc rx1309_cur
+    (rx1309_cur, rx1309_pos, rx1309_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1309_cur."!cursor_debug"("START ", "term:sym<last>")
+    $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:
+.annotate 'line', 557
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1315_fail
-    rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
+    set_addr $I10, rxcap_1313_fail
+    rx1309_cur."!mark_push"(0, rx1309_pos, $I10)
   # rx literal  "last"
-    add $I11, rx1311_pos, 4
-    gt $I11, rx1311_eos, rx1311_fail
-    sub $I11, rx1311_pos, rx1311_off
-    substr $S10, rx1311_tgt, $I11, 4
-    ne $S10, "last", rx1311_fail
-    add rx1311_pos, 4
-    set_addr $I10, rxcap_1315_fail
-    ($I12, $I11) = rx1311_cur."!mark_peek"($I10)
-    rx1311_cur."!cursor_pos"($I11)
-    ($P10) = rx1311_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1311_pos, "")
-    rx1311_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1315_done
-  rxcap_1315_fail:
-    goto rx1311_fail
-  rxcap_1315_done:
-  # rx pass
-    rx1311_cur."!cursor_pass"(rx1311_pos, "term:sym<last>")
-    rx1311_cur."!cursor_debug"("PASS  ", "term:sym<last>", " at pos=", rx1311_pos)
-    .return (rx1311_cur)
-  rx1311_fail:
-.annotate 'line', 446
-    (rx1311_rep, rx1311_pos, $I10, $P10) = rx1311_cur."!mark_fail"(0)
-    lt rx1311_pos, -1, rx1311_done
-    eq rx1311_pos, -1, rx1311_fail
+    goto rxcap_1313_done
+  rxcap_1313_fail:
+    goto rx1309_fail
+  rxcap_1313_done:
+  # rx pass
+    rx1309_cur."!cursor_pass"(rx1309_pos, "term:sym<last>")
+    rx1309_cur."!cursor_debug"("PASS  ", "term:sym<last>", " at pos=", rx1309_pos)
+    .return (rx1309_cur)
+  rx1309_restart:
+.annotate 'line', 447
+    rx1309_cur."!cursor_debug"("NEXT ", "term:sym<last>")
+  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
-  rx1311_done:
-    rx1311_cur."!cursor_fail"()
-    rx1311_cur."!cursor_debug"("FAIL  ", "term:sym<last>")
-    .return (rx1311_cur)
+  rx1309_done:
+    rx1309_cur."!cursor_fail"()
+    rx1309_cur."!cursor_debug"("FAIL  ", "term:sym<last>")
+    .return (rx1309_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<last>"  :subid("335_1277356913.9538") :method
-.annotate 'line', 446
-    new $P1313, "ResizablePMCArray"
-    push $P1313, "last"
-    .return ($P1313)
+.sub "!PREFIX__term:sym<last>"  :subid("343_1280467477.44751") :method
+.annotate 'line', 447
+    new $P1311, "ResizablePMCArray"
+    push $P1311, "last"
+    .return ($P1311)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<next>"  :subid("336_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1317_tgt
-    .local int rx1317_pos
-    .local int rx1317_off
-    .local int rx1317_eos
-    .local int rx1317_rep
-    .local pmc rx1317_cur
-    (rx1317_cur, rx1317_pos, rx1317_tgt) = self."!cursor_start"()
-    rx1317_cur."!cursor_debug"("START ", "term:sym<next>")
-    .lex unicode:"$\x{a2}", rx1317_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1317_eos, rx1317_tgt
-    gt rx1317_pos, rx1317_eos, rx1317_done
-    set rx1317_off, 0
-    lt rx1317_pos, 2, rx1317_start
-    sub rx1317_off, rx1317_pos, 1
-    substr rx1317_tgt, rx1317_tgt, rx1317_off
-  rx1317_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1320_done
-    goto rxscan1320_scan
-  rxscan1320_loop:
-    ($P10) = rx1317_cur."from"()
-    inc $P10
-    set rx1317_pos, $P10
-    ge rx1317_pos, rx1317_eos, rxscan1320_done
-  rxscan1320_scan:
-    set_addr $I10, rxscan1320_loop
-    rx1317_cur."!mark_push"(0, rx1317_pos, $I10)
-  rxscan1320_done:
-.annotate 'line', 554
+.sub "term:sym<next>"  :subid("344_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1315_tgt
+    .local int rx1315_pos
+    .local int rx1315_off
+    .local int rx1315_eos
+    .local int rx1315_rep
+    .local pmc rx1315_cur
+    (rx1315_cur, rx1315_pos, rx1315_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1315_cur."!cursor_debug"("START ", "term:sym<next>")
+    $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:
+.annotate 'line', 558
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1321_fail
-    rx1317_cur."!mark_push"(0, rx1317_pos, $I10)
+    set_addr $I10, rxcap_1319_fail
+    rx1315_cur."!mark_push"(0, rx1315_pos, $I10)
   # rx literal  "next"
-    add $I11, rx1317_pos, 4
-    gt $I11, rx1317_eos, rx1317_fail
-    sub $I11, rx1317_pos, rx1317_off
-    substr $S10, rx1317_tgt, $I11, 4
-    ne $S10, "next", rx1317_fail
-    add rx1317_pos, 4
-    set_addr $I10, rxcap_1321_fail
-    ($I12, $I11) = rx1317_cur."!mark_peek"($I10)
-    rx1317_cur."!cursor_pos"($I11)
-    ($P10) = rx1317_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1317_pos, "")
-    rx1317_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1321_done
-  rxcap_1321_fail:
-    goto rx1317_fail
-  rxcap_1321_done:
-  # rx pass
-    rx1317_cur."!cursor_pass"(rx1317_pos, "term:sym<next>")
-    rx1317_cur."!cursor_debug"("PASS  ", "term:sym<next>", " at pos=", rx1317_pos)
-    .return (rx1317_cur)
-  rx1317_fail:
-.annotate 'line', 446
-    (rx1317_rep, rx1317_pos, $I10, $P10) = rx1317_cur."!mark_fail"(0)
-    lt rx1317_pos, -1, rx1317_done
-    eq rx1317_pos, -1, rx1317_fail
+    goto rxcap_1319_done
+  rxcap_1319_fail:
+    goto rx1315_fail
+  rxcap_1319_done:
+  # rx pass
+    rx1315_cur."!cursor_pass"(rx1315_pos, "term:sym<next>")
+    rx1315_cur."!cursor_debug"("PASS  ", "term:sym<next>", " at pos=", rx1315_pos)
+    .return (rx1315_cur)
+  rx1315_restart:
+.annotate 'line', 447
+    rx1315_cur."!cursor_debug"("NEXT ", "term:sym<next>")
+  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
-  rx1317_done:
-    rx1317_cur."!cursor_fail"()
-    rx1317_cur."!cursor_debug"("FAIL  ", "term:sym<next>")
-    .return (rx1317_cur)
+  rx1315_done:
+    rx1315_cur."!cursor_fail"()
+    rx1315_cur."!cursor_debug"("FAIL  ", "term:sym<next>")
+    .return (rx1315_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<next>"  :subid("337_1277356913.9538") :method
-.annotate 'line', 446
-    new $P1319, "ResizablePMCArray"
-    push $P1319, "next"
-    .return ($P1319)
+.sub "!PREFIX__term:sym<next>"  :subid("345_1280467477.44751") :method
+.annotate 'line', 447
+    new $P1317, "ResizablePMCArray"
+    push $P1317, "next"
+    .return ($P1317)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<redo>"  :subid("338_1277356913.9538") :method :outer("11_1277356913.9538")
-.annotate 'line', 446
-    .local string rx1323_tgt
-    .local int rx1323_pos
-    .local int rx1323_off
-    .local int rx1323_eos
-    .local int rx1323_rep
-    .local pmc rx1323_cur
-    (rx1323_cur, rx1323_pos, rx1323_tgt) = self."!cursor_start"()
-    rx1323_cur."!cursor_debug"("START ", "term:sym<redo>")
-    .lex unicode:"$\x{a2}", rx1323_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1323_eos, rx1323_tgt
-    gt rx1323_pos, rx1323_eos, rx1323_done
-    set rx1323_off, 0
-    lt rx1323_pos, 2, rx1323_start
-    sub rx1323_off, rx1323_pos, 1
-    substr rx1323_tgt, rx1323_tgt, rx1323_off
-  rx1323_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1326_done
-    goto rxscan1326_scan
-  rxscan1326_loop:
-    ($P10) = rx1323_cur."from"()
-    inc $P10
-    set rx1323_pos, $P10
-    ge rx1323_pos, rx1323_eos, rxscan1326_done
-  rxscan1326_scan:
-    set_addr $I10, rxscan1326_loop
-    rx1323_cur."!mark_push"(0, rx1323_pos, $I10)
-  rxscan1326_done:
-.annotate 'line', 555
+.sub "term:sym<redo>"  :subid("346_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+    .local string rx1321_tgt
+    .local int rx1321_pos
+    .local int rx1321_off
+    .local int rx1321_eos
+    .local int rx1321_rep
+    .local pmc rx1321_cur
+    (rx1321_cur, rx1321_pos, rx1321_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1321_cur."!cursor_debug"("START ", "term:sym<redo>")
+    $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:
+.annotate 'line', 559
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1327_fail
-    rx1323_cur."!mark_push"(0, rx1323_pos, $I10)
+    set_addr $I10, rxcap_1325_fail
+    rx1321_cur."!mark_push"(0, rx1321_pos, $I10)
   # rx literal  "redo"
-    add $I11, rx1323_pos, 4
-    gt $I11, rx1323_eos, rx1323_fail
-    sub $I11, rx1323_pos, rx1323_off
-    substr $S10, rx1323_tgt, $I11, 4
-    ne $S10, "redo", rx1323_fail
-    add rx1323_pos, 4
-    set_addr $I10, rxcap_1327_fail
-    ($I12, $I11) = rx1323_cur."!mark_peek"($I10)
-    rx1323_cur."!cursor_pos"($I11)
-    ($P10) = rx1323_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1323_pos, "")
-    rx1323_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_1327_done
-  rxcap_1327_fail:
-    goto rx1323_fail
-  rxcap_1327_done:
-  # rx pass
-    rx1323_cur."!cursor_pass"(rx1323_pos, "term:sym<redo>")
-    rx1323_cur."!cursor_debug"("PASS  ", "term:sym<redo>", " at pos=", rx1323_pos)
-    .return (rx1323_cur)
-  rx1323_fail:
-.annotate 'line', 446
-    (rx1323_rep, rx1323_pos, $I10, $P10) = rx1323_cur."!mark_fail"(0)
-    lt rx1323_pos, -1, rx1323_done
-    eq rx1323_pos, -1, rx1323_fail
+    goto rxcap_1325_done
+  rxcap_1325_fail:
+    goto rx1321_fail
+  rxcap_1325_done:
+  # rx pass
+    rx1321_cur."!cursor_pass"(rx1321_pos, "term:sym<redo>")
+    rx1321_cur."!cursor_debug"("PASS  ", "term:sym<redo>", " at pos=", rx1321_pos)
+    .return (rx1321_cur)
+  rx1321_restart:
+.annotate 'line', 447
+    rx1321_cur."!cursor_debug"("NEXT ", "term:sym<redo>")
+  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
-  rx1323_done:
-    rx1323_cur."!cursor_fail"()
-    rx1323_cur."!cursor_debug"("FAIL  ", "term:sym<redo>")
-    .return (rx1323_cur)
+  rx1321_done:
+    rx1321_cur."!cursor_fail"()
+    rx1321_cur."!cursor_debug"("FAIL  ", "term:sym<redo>")
+    .return (rx1321_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<redo>"  :subid("339_1277356913.9538") :method
-.annotate 'line', 446
-    new $P1325, "ResizablePMCArray"
-    push $P1325, "redo"
-    .return ($P1325)
+.sub "!PREFIX__term:sym<redo>"  :subid("347_1280467477.44751") :method
+.annotate 'line', 447
+    new $P1323, "ResizablePMCArray"
+    push $P1323, "redo"
+    .return ($P1323)
 .end
 
 
 .namespace ["NQP";"Grammar"]
 .include "except_types.pasm"
-.sub "smartmatch"  :subid("340_1277356913.9538") :method :outer("11_1277356913.9538")
-    .param pmc param_1331
-.annotate 'line', 557
-    new $P1330, 'ExceptionHandler'
-    set_addr $P1330, control_1329
-    $P1330."handle_types"(.CONTROL_RETURN)
-    push_eh $P1330
+.sub "smartmatch"  :subid("348_1280467477.44751") :method :outer("11_1280467477.44751")
+    .param pmc param_1329
+.annotate 'line', 561
+    new $P1328, 'ExceptionHandler'
+    set_addr $P1328, control_1327
+    $P1328."handle_types"(.CONTROL_RETURN)
+    push_eh $P1328
     .lex "self", self
-    .lex "$/", param_1331
-.annotate 'line', 559
+    .lex "$/", param_1329
+.annotate 'line', 563
+    new $P1330, "Undef"
+    .lex "$t", $P1330
+    find_lex $P1331, "$/"
+    unless_null $P1331, vivify_384
+    $P1331 = root_new ['parrot';'ResizablePMCArray']
+  vivify_384:
+    set $P1332, $P1331[0]
+    unless_null $P1332, vivify_385
     new $P1332, "Undef"
-    .lex "$t", $P1332
+  vivify_385:
+    store_lex "$t", $P1332
     find_lex $P1333, "$/"
-    unless_null $P1333, vivify_376
+    unless_null $P1333, vivify_386
     $P1333 = root_new ['parrot';'ResizablePMCArray']
-  vivify_376:
-    set $P1334, $P1333[0]
-    unless_null $P1334, vivify_377
+  vivify_386:
+    set $P1334, $P1333[1]
+    unless_null $P1334, vivify_387
     new $P1334, "Undef"
-  vivify_377:
-    store_lex "$t", $P1334
+  vivify_387:
     find_lex $P1335, "$/"
-    unless_null $P1335, vivify_378
+    unless_null $P1335, vivify_388
     $P1335 = root_new ['parrot';'ResizablePMCArray']
-  vivify_378:
-    set $P1336, $P1335[1]
-    unless_null $P1336, vivify_379
-    new $P1336, "Undef"
-  vivify_379:
+    store_lex "$/", $P1335
+  vivify_388:
+    set $P1335[0], $P1334
+    find_lex $P1336, "$t"
     find_lex $P1337, "$/"
-    unless_null $P1337, vivify_380
+    unless_null $P1337, vivify_389
     $P1337 = root_new ['parrot';'ResizablePMCArray']
     store_lex "$/", $P1337
-  vivify_380:
-    set $P1337[0], $P1336
-    find_lex $P1338, "$t"
-    find_lex $P1339, "$/"
-    unless_null $P1339, vivify_381
-    $P1339 = root_new ['parrot';'ResizablePMCArray']
-    store_lex "$/", $P1339
-  vivify_381:
-    set $P1339[1], $P1338
-.annotate 'line', 557
-    .return ($P1338)
-  control_1329:
+  vivify_389:
+    set $P1337[1], $P1336
+.annotate 'line', 561
+    .return ($P1336)
+  control_1327:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1340, exception, "payload"
-    .return ($P1340)
+    getattribute $P1338, exception, "payload"
+    .return ($P1338)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1341"  :subid("341_1277356913.9538") :outer("11_1277356913.9538")
-.annotate 'line', 563
-    .const 'Sub' $P1399 = "360_1277356913.9538" 
-    capture_lex $P1399
-    .const 'Sub' $P1394 = "358_1277356913.9538" 
-    capture_lex $P1394
-    .const 'Sub' $P1381 = "355_1277356913.9538" 
-    capture_lex $P1381
-    .const 'Sub' $P1371 = "352_1277356913.9538" 
-    capture_lex $P1371
-    .const 'Sub' $P1366 = "350_1277356913.9538" 
-    capture_lex $P1366
-    .const 'Sub' $P1357 = "347_1277356913.9538" 
-    capture_lex $P1357
-    .const 'Sub' $P1352 = "345_1277356913.9538" 
-    capture_lex $P1352
-    .const 'Sub' $P1343 = "342_1277356913.9538" 
-    capture_lex $P1343
-    .const 'Sub' $P1399 = "360_1277356913.9538" 
-    capture_lex $P1399
-    .return ($P1399)
+.sub "_block1339"  :subid("349_1280467477.44751") :outer("11_1280467477.44751")
+.annotate 'line', 567
+    .const 'Sub' $P1396 = "368_1280467477.44751" 
+    capture_lex $P1396
+    .const 'Sub' $P1391 = "366_1280467477.44751" 
+    capture_lex $P1391
+    .const 'Sub' $P1379 = "363_1280467477.44751" 
+    capture_lex $P1379
+    .const 'Sub' $P1369 = "360_1280467477.44751" 
+    capture_lex $P1369
+    .const 'Sub' $P1364 = "358_1280467477.44751" 
+    capture_lex $P1364
+    .const 'Sub' $P1355 = "355_1280467477.44751" 
+    capture_lex $P1355
+    .const 'Sub' $P1350 = "353_1280467477.44751" 
+    capture_lex $P1350
+    .const 'Sub' $P1341 = "350_1280467477.44751" 
+    capture_lex $P1341
+    .const 'Sub' $P1396 = "368_1280467477.44751" 
+    capture_lex $P1396
+    .return ($P1396)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<:my>"  :subid("342_1277356913.9538") :method :outer("341_1277356913.9538")
-.annotate 'line', 563
-    .const 'Sub' $P1349 = "344_1277356913.9538" 
-    capture_lex $P1349
-    .local string rx1344_tgt
-    .local int rx1344_pos
-    .local int rx1344_off
-    .local int rx1344_eos
-    .local int rx1344_rep
-    .local pmc rx1344_cur
-    (rx1344_cur, rx1344_pos, rx1344_tgt) = self."!cursor_start"()
-    rx1344_cur."!cursor_debug"("START ", "metachar:sym<:my>")
-    .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:
-    $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
+.sub "metachar:sym<:my>"  :subid("350_1280467477.44751") :method :outer("349_1280467477.44751")
+.annotate 'line', 567
+    .const 'Sub' $P1347 = "352_1280467477.44751" 
+    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
+    (rx1342_cur, rx1342_pos, rx1342_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1342_cur."!cursor_debug"("START ", "metachar:sym<:my>")
+    $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:
+.annotate 'line', 569
   # rx literal  ":"
-    add $I11, rx1344_pos, 1
-    gt $I11, rx1344_eos, rx1344_fail
-    sub $I11, rx1344_pos, rx1344_off
-    substr $S10, rx1344_tgt, $I11, 1
-    ne $S10, ":", rx1344_fail
-    add rx1344_pos, 1
+    add $I11, rx1342_pos, 1
+    gt $I11, rx1342_eos, rx1342_fail
+    sub $I11, rx1342_pos, rx1342_off
+    substr $S10, rx1342_tgt, $I11, 1
+    ne $S10, ":", rx1342_fail
+    add rx1342_pos, 1
   # rx subrule "before" subtype=zerowidth negate=
-    rx1344_cur."!cursor_pos"(rx1344_pos)
-    .const 'Sub' $P1349 = "344_1277356913.9538" 
-    capture_lex $P1349
-    $P10 = rx1344_cur."before"($P1349)
-    unless $P10, rx1344_fail
+    rx1342_cur."!cursor_pos"(rx1342_pos)
+    .const 'Sub' $P1347 = "352_1280467477.44751" 
+    capture_lex $P1347
+    $P10 = rx1342_cur."before"($P1347)
+    unless $P10, rx1342_fail
   # rx subrule "LANG" subtype=capture negate=
-    rx1344_cur."!cursor_pos"(rx1344_pos)
-    $P10 = rx1344_cur."LANG"("MAIN", "statement")
-    unless $P10, rx1344_fail
-    rx1344_cur."!mark_push"(0, -1, 0, $P10)
+    rx1342_cur."!cursor_pos"(rx1342_pos)
+    $P10 = rx1342_cur."LANG"("MAIN", "statement")
+    unless $P10, rx1342_fail
+    rx1342_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement")
-    rx1344_pos = $P10."pos"()
+    rx1342_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx1344_cur."!cursor_pos"(rx1344_pos)
-    $P10 = rx1344_cur."ws"()
-    unless $P10, rx1344_fail
-    rx1344_pos = $P10."pos"()
+    rx1342_cur."!cursor_pos"(rx1342_pos)
+    $P10 = rx1342_cur."ws"()
+    unless $P10, rx1342_fail
+    rx1342_pos = $P10."pos"()
   # rx literal  ";"
-    add $I11, rx1344_pos, 1
-    gt $I11, rx1344_eos, rx1344_fail
-    sub $I11, rx1344_pos, rx1344_off
-    substr $S10, rx1344_tgt, $I11, 1
-    ne $S10, ";", rx1344_fail
-    add rx1344_pos, 1
-.annotate 'line', 564
+    add $I11, rx1342_pos, 1
+    gt $I11, rx1342_eos, rx1342_fail
+    sub $I11, rx1342_pos, rx1342_off
+    substr $S10, rx1342_tgt, $I11, 1
+    ne $S10, ";", rx1342_fail
+    add rx1342_pos, 1
+.annotate 'line', 568
   # rx pass
-    rx1344_cur."!cursor_pass"(rx1344_pos, "metachar:sym<:my>")
-    rx1344_cur."!cursor_debug"("PASS  ", "metachar:sym<:my>", " at pos=", rx1344_pos)
-    .return (rx1344_cur)
-  rx1344_fail:
-.annotate 'line', 563
-    (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"()
-    rx1344_cur."!cursor_debug"("FAIL  ", "metachar:sym<:my>")
-    .return (rx1344_cur)
+    rx1342_cur."!cursor_pass"(rx1342_pos, "metachar:sym<:my>")
+    rx1342_cur."!cursor_debug"("PASS  ", "metachar:sym<:my>", " at pos=", rx1342_pos)
+    .return (rx1342_cur)
+  rx1342_restart:
+.annotate 'line', 567
+    rx1342_cur."!cursor_debug"("NEXT ", "metachar:sym<:my>")
+  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"()
+    rx1342_cur."!cursor_debug"("FAIL  ", "metachar:sym<:my>")
+    .return (rx1342_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<:my>"  :subid("343_1277356913.9538") :method
-.annotate 'line', 563
-    new $P1346, "ResizablePMCArray"
-    push $P1346, ":"
-    .return ($P1346)
+.sub "!PREFIX__metachar:sym<:my>"  :subid("351_1280467477.44751") :method
+.annotate 'line', 567
+    new $P1344, "ResizablePMCArray"
+    push $P1344, ":"
+    .return ($P1344)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1348"  :anon :subid("344_1277356913.9538") :method :outer("342_1277356913.9538")
-.annotate 'line', 565
-    .local string rx1350_tgt
-    .local int rx1350_pos
-    .local int rx1350_off
-    .local int rx1350_eos
-    .local int rx1350_rep
-    .local pmc rx1350_cur
-    (rx1350_cur, rx1350_pos, rx1350_tgt) = self."!cursor_start"()
-    rx1350_cur."!cursor_debug"("START ", "")
-    .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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1351_done
-    goto rxscan1351_scan
-  rxscan1351_loop:
-    ($P10) = rx1350_cur."from"()
-    inc $P10
-    set rx1350_pos, $P10
-    ge rx1350_pos, rx1350_eos, rxscan1351_done
-  rxscan1351_scan:
-    set_addr $I10, rxscan1351_loop
-    rx1350_cur."!mark_push"(0, rx1350_pos, $I10)
-  rxscan1351_done:
+.sub "_block1346"  :anon :subid("352_1280467477.44751") :method :outer("350_1280467477.44751")
+.annotate 'line', 569
+    .local string rx1348_tgt
+    .local int rx1348_pos
+    .local int rx1348_off
+    .local int rx1348_eos
+    .local int rx1348_rep
+    .local pmc rx1348_cur
+    (rx1348_cur, rx1348_pos, rx1348_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1348_cur."!cursor_debug"("START ", "")
+    $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:
   # rx literal  "my"
-    add $I11, rx1350_pos, 2
-    gt $I11, rx1350_eos, rx1350_fail
-    sub $I11, rx1350_pos, rx1350_off
-    substr $S10, rx1350_tgt, $I11, 2
-    ne $S10, "my", rx1350_fail
-    add rx1350_pos, 2
-  # rx pass
-    rx1350_cur."!cursor_pass"(rx1350_pos, "")
-    rx1350_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1350_pos)
-    .return (rx1350_cur)
-  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"()
-    rx1350_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx1350_cur)
+    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, "")
+    rx1348_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1348_pos)
+    .return (rx1348_cur)
+  rx1348_restart:
+    rx1348_cur."!cursor_debug"("NEXT ", "")
+  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"()
+    rx1348_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1348_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<{ }>"  :subid("345_1277356913.9538") :method :outer("341_1277356913.9538")
-.annotate 'line', 563
-    .local string rx1353_tgt
-    .local int rx1353_pos
-    .local int rx1353_off
-    .local int rx1353_eos
-    .local int rx1353_rep
-    .local pmc rx1353_cur
-    (rx1353_cur, rx1353_pos, rx1353_tgt) = self."!cursor_start"()
-    rx1353_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
-    .lex unicode:"$\x{a2}", rx1353_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1353_eos, rx1353_tgt
-    gt rx1353_pos, rx1353_eos, rx1353_done
-    set rx1353_off, 0
-    lt rx1353_pos, 2, rx1353_start
-    sub rx1353_off, rx1353_pos, 1
-    substr rx1353_tgt, rx1353_tgt, rx1353_off
-  rx1353_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1356_done
-    goto rxscan1356_scan
-  rxscan1356_loop:
-    ($P10) = rx1353_cur."from"()
-    inc $P10
-    set rx1353_pos, $P10
-    ge rx1353_pos, rx1353_eos, rxscan1356_done
-  rxscan1356_scan:
-    set_addr $I10, rxscan1356_loop
-    rx1353_cur."!mark_push"(0, rx1353_pos, $I10)
-  rxscan1356_done:
-.annotate 'line', 569
+.sub "metachar:sym<{ }>"  :subid("353_1280467477.44751") :method :outer("349_1280467477.44751")
+.annotate 'line', 567
+    .local string rx1351_tgt
+    .local int rx1351_pos
+    .local int rx1351_off
+    .local int rx1351_eos
+    .local int rx1351_rep
+    .local pmc rx1351_cur
+    (rx1351_cur, rx1351_pos, rx1351_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1351_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
+    $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:
+.annotate 'line', 573
   # rx enumcharlist negate=0 zerowidth
-    ge rx1353_pos, rx1353_eos, rx1353_fail
-    sub $I10, rx1353_pos, rx1353_off
-    substr $S10, rx1353_tgt, $I10, 1
+    ge rx1351_pos, rx1351_eos, rx1351_fail
+    sub $I10, rx1351_pos, rx1351_off
+    substr $S10, rx1351_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx1353_fail
+    lt $I11, 0, rx1351_fail
   # rx subrule "codeblock" subtype=capture negate=
-    rx1353_cur."!cursor_pos"(rx1353_pos)
-    $P10 = rx1353_cur."codeblock"()
-    unless $P10, rx1353_fail
-    rx1353_cur."!mark_push"(0, -1, 0, $P10)
+    rx1351_cur."!cursor_pos"(rx1351_pos)
+    $P10 = rx1351_cur."codeblock"()
+    unless $P10, rx1351_fail
+    rx1351_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("codeblock")
-    rx1353_pos = $P10."pos"()
-.annotate 'line', 568
+    rx1351_pos = $P10."pos"()
+.annotate 'line', 572
   # rx pass
-    rx1353_cur."!cursor_pass"(rx1353_pos, "metachar:sym<{ }>")
-    rx1353_cur."!cursor_debug"("PASS  ", "metachar:sym<{ }>", " at pos=", rx1353_pos)
-    .return (rx1353_cur)
-  rx1353_fail:
-.annotate 'line', 563
-    (rx1353_rep, rx1353_pos, $I10, $P10) = rx1353_cur."!mark_fail"(0)
-    lt rx1353_pos, -1, rx1353_done
-    eq rx1353_pos, -1, rx1353_fail
-    jump $I10
-  rx1353_done:
-    rx1353_cur."!cursor_fail"()
-    rx1353_cur."!cursor_debug"("FAIL  ", "metachar:sym<{ }>")
-    .return (rx1353_cur)
+    rx1351_cur."!cursor_pass"(rx1351_pos, "metachar:sym<{ }>")
+    rx1351_cur."!cursor_debug"("PASS  ", "metachar:sym<{ }>", " at pos=", rx1351_pos)
+    .return (rx1351_cur)
+  rx1351_restart:
+.annotate 'line', 567
+    rx1351_cur."!cursor_debug"("NEXT ", "metachar:sym<{ }>")
+  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"()
+    rx1351_cur."!cursor_debug"("FAIL  ", "metachar:sym<{ }>")
+    .return (rx1351_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<{ }>"  :subid("346_1277356913.9538") :method
-.annotate 'line', 563
-    new $P1355, "ResizablePMCArray"
-    push $P1355, "{"
-    .return ($P1355)
+.sub "!PREFIX__metachar:sym<{ }>"  :subid("354_1280467477.44751") :method
+.annotate 'line', 567
+    new $P1353, "ResizablePMCArray"
+    push $P1353, "{"
+    .return ($P1353)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<nqpvar>"  :subid("347_1277356913.9538") :method :outer("341_1277356913.9538")
-.annotate 'line', 563
-    .const 'Sub' $P1363 = "349_1277356913.9538" 
-    capture_lex $P1363
-    .local string rx1358_tgt
-    .local int rx1358_pos
-    .local int rx1358_off
-    .local int rx1358_eos
-    .local int rx1358_rep
-    .local pmc rx1358_cur
-    (rx1358_cur, rx1358_pos, rx1358_tgt) = self."!cursor_start"()
-    rx1358_cur."!cursor_debug"("START ", "metachar:sym<nqpvar>")
-    .lex unicode:"$\x{a2}", rx1358_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1358_eos, rx1358_tgt
-    gt rx1358_pos, rx1358_eos, rx1358_done
-    set rx1358_off, 0
-    lt rx1358_pos, 2, rx1358_start
-    sub rx1358_off, rx1358_pos, 1
-    substr rx1358_tgt, rx1358_tgt, rx1358_off
-  rx1358_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1361_done
-    goto rxscan1361_scan
-  rxscan1361_loop:
-    ($P10) = rx1358_cur."from"()
-    inc $P10
-    set rx1358_pos, $P10
-    ge rx1358_pos, rx1358_eos, rxscan1361_done
-  rxscan1361_scan:
-    set_addr $I10, rxscan1361_loop
-    rx1358_cur."!mark_push"(0, rx1358_pos, $I10)
-  rxscan1361_done:
-.annotate 'line', 573
+.sub "metachar:sym<nqpvar>"  :subid("355_1280467477.44751") :method :outer("349_1280467477.44751")
+.annotate 'line', 567
+    .const 'Sub' $P1361 = "357_1280467477.44751" 
+    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
+    (rx1356_cur, rx1356_pos, rx1356_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1356_cur."!cursor_debug"("START ", "metachar:sym<nqpvar>")
+    $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:
+.annotate 'line', 577
   # rx enumcharlist negate=0 zerowidth
-    ge rx1358_pos, rx1358_eos, rx1358_fail
-    sub $I10, rx1358_pos, rx1358_off
-    substr $S10, rx1358_tgt, $I10, 1
+    ge rx1356_pos, rx1356_eos, rx1356_fail
+    sub $I10, rx1356_pos, rx1356_off
+    substr $S10, rx1356_tgt, $I10, 1
     index $I11, "$@", $S10
-    lt $I11, 0, rx1358_fail
+    lt $I11, 0, rx1356_fail
   # rx subrule "before" subtype=zerowidth negate=
-    rx1358_cur."!cursor_pos"(rx1358_pos)
-    .const 'Sub' $P1363 = "349_1277356913.9538" 
-    capture_lex $P1363
-    $P10 = rx1358_cur."before"($P1363)
-    unless $P10, rx1358_fail
+    rx1356_cur."!cursor_pos"(rx1356_pos)
+    .const 'Sub' $P1361 = "357_1280467477.44751" 
+    capture_lex $P1361
+    $P10 = rx1356_cur."before"($P1361)
+    unless $P10, rx1356_fail
   # rx subrule "LANG" subtype=capture negate=
-    rx1358_cur."!cursor_pos"(rx1358_pos)
-    $P10 = rx1358_cur."LANG"("MAIN", "variable")
-    unless $P10, rx1358_fail
-    rx1358_cur."!mark_push"(0, -1, 0, $P10)
+    rx1356_cur."!cursor_pos"(rx1356_pos)
+    $P10 = rx1356_cur."LANG"("MAIN", "variable")
+    unless $P10, rx1356_fail
+    rx1356_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("var")
-    rx1358_pos = $P10."pos"()
-.annotate 'line', 572
+    rx1356_pos = $P10."pos"()
+.annotate 'line', 576
   # rx pass
-    rx1358_cur."!cursor_pass"(rx1358_pos, "metachar:sym<nqpvar>")
-    rx1358_cur."!cursor_debug"("PASS  ", "metachar:sym<nqpvar>", " at pos=", rx1358_pos)
-    .return (rx1358_cur)
-  rx1358_fail:
-.annotate 'line', 563
-    (rx1358_rep, rx1358_pos, $I10, $P10) = rx1358_cur."!mark_fail"(0)
-    lt rx1358_pos, -1, rx1358_done
-    eq rx1358_pos, -1, rx1358_fail
-    jump $I10
-  rx1358_done:
-    rx1358_cur."!cursor_fail"()
-    rx1358_cur."!cursor_debug"("FAIL  ", "metachar:sym<nqpvar>")
-    .return (rx1358_cur)
+    rx1356_cur."!cursor_pass"(rx1356_pos, "metachar:sym<nqpvar>")
+    rx1356_cur."!cursor_debug"("PASS  ", "metachar:sym<nqpvar>", " at pos=", rx1356_pos)
+    .return (rx1356_cur)
+  rx1356_restart:
+.annotate 'line', 567
+    rx1356_cur."!cursor_debug"("NEXT ", "metachar:sym<nqpvar>")
+  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"()
+    rx1356_cur."!cursor_debug"("FAIL  ", "metachar:sym<nqpvar>")
+    .return (rx1356_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<nqpvar>"  :subid("348_1277356913.9538") :method
-.annotate 'line', 563
-    new $P1360, "ResizablePMCArray"
-    push $P1360, "$"
-    push $P1360, "@"
-    .return ($P1360)
+.sub "!PREFIX__metachar:sym<nqpvar>"  :subid("356_1280467477.44751") :method
+.annotate 'line', 567
+    new $P1358, "ResizablePMCArray"
+    push $P1358, "$"
+    push $P1358, "@"
+    .return ($P1358)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1362"  :anon :subid("349_1277356913.9538") :method :outer("347_1277356913.9538")
-.annotate 'line', 573
-    .local string rx1364_tgt
-    .local int rx1364_pos
-    .local int rx1364_off
-    .local int rx1364_eos
-    .local int rx1364_rep
-    .local pmc rx1364_cur
-    (rx1364_cur, rx1364_pos, rx1364_tgt) = self."!cursor_start"()
-    rx1364_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx1364_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1364_eos, rx1364_tgt
-    gt rx1364_pos, rx1364_eos, rx1364_done
-    set rx1364_off, 0
-    lt rx1364_pos, 2, rx1364_start
-    sub rx1364_off, rx1364_pos, 1
-    substr rx1364_tgt, rx1364_tgt, rx1364_off
-  rx1364_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1365_done
-    goto rxscan1365_scan
-  rxscan1365_loop:
-    ($P10) = rx1364_cur."from"()
-    inc $P10
-    set rx1364_pos, $P10
-    ge rx1364_pos, rx1364_eos, rxscan1365_done
-  rxscan1365_scan:
-    set_addr $I10, rxscan1365_loop
-    rx1364_cur."!mark_push"(0, rx1364_pos, $I10)
-  rxscan1365_done:
+.sub "_block1360"  :anon :subid("357_1280467477.44751") :method :outer("355_1280467477.44751")
+.annotate 'line', 577
+    .local string rx1362_tgt
+    .local int rx1362_pos
+    .local int rx1362_off
+    .local int rx1362_eos
+    .local int rx1362_rep
+    .local pmc rx1362_cur
+    (rx1362_cur, rx1362_pos, rx1362_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1362_cur."!cursor_debug"("START ", "")
+    $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:
   # rx charclass .
-    ge rx1364_pos, rx1364_eos, rx1364_fail
-    inc rx1364_pos
+    ge rx1362_pos, rx1362_eos, rx1362_fail
+    inc rx1362_pos
   # rx charclass w
-    ge rx1364_pos, rx1364_eos, rx1364_fail
-    sub $I10, rx1364_pos, rx1364_off
-    is_cclass $I11, 8192, rx1364_tgt, $I10
-    unless $I11, rx1364_fail
-    inc rx1364_pos
-  # rx pass
-    rx1364_cur."!cursor_pass"(rx1364_pos, "")
-    rx1364_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1364_pos)
-    .return (rx1364_cur)
-  rx1364_fail:
-    (rx1364_rep, rx1364_pos, $I10, $P10) = rx1364_cur."!mark_fail"(0)
-    lt rx1364_pos, -1, rx1364_done
-    eq rx1364_pos, -1, rx1364_fail
-    jump $I10
-  rx1364_done:
-    rx1364_cur."!cursor_fail"()
-    rx1364_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx1364_cur)
+    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, "")
+    rx1362_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1362_pos)
+    .return (rx1362_cur)
+  rx1362_restart:
+    rx1362_cur."!cursor_debug"("NEXT ", "")
+  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"()
+    rx1362_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1362_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<{ }>"  :subid("350_1277356913.9538") :method :outer("341_1277356913.9538")
-.annotate 'line', 563
-    .local string rx1367_tgt
-    .local int rx1367_pos
-    .local int rx1367_off
-    .local int rx1367_eos
-    .local int rx1367_rep
-    .local pmc rx1367_cur
-    (rx1367_cur, rx1367_pos, rx1367_tgt) = self."!cursor_start"()
-    rx1367_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
-    .lex unicode:"$\x{a2}", rx1367_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1367_eos, rx1367_tgt
-    gt rx1367_pos, rx1367_eos, rx1367_done
-    set rx1367_off, 0
-    lt rx1367_pos, 2, rx1367_start
-    sub rx1367_off, rx1367_pos, 1
-    substr rx1367_tgt, rx1367_tgt, rx1367_off
-  rx1367_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1370_done
-    goto rxscan1370_scan
-  rxscan1370_loop:
-    ($P10) = rx1367_cur."from"()
-    inc $P10
-    set rx1367_pos, $P10
-    ge rx1367_pos, rx1367_eos, rxscan1370_done
-  rxscan1370_scan:
-    set_addr $I10, rxscan1370_loop
-    rx1367_cur."!mark_push"(0, rx1367_pos, $I10)
-  rxscan1370_done:
-.annotate 'line', 577
+.sub "assertion:sym<{ }>"  :subid("358_1280467477.44751") :method :outer("349_1280467477.44751")
+.annotate 'line', 567
+    .local string rx1365_tgt
+    .local int rx1365_pos
+    .local int rx1365_off
+    .local int rx1365_eos
+    .local int rx1365_rep
+    .local pmc rx1365_cur
+    (rx1365_cur, rx1365_pos, rx1365_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1365_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
+    $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:
+.annotate 'line', 581
   # rx enumcharlist negate=0 zerowidth
-    ge rx1367_pos, rx1367_eos, rx1367_fail
-    sub $I10, rx1367_pos, rx1367_off
-    substr $S10, rx1367_tgt, $I10, 1
+    ge rx1365_pos, rx1365_eos, rx1365_fail
+    sub $I10, rx1365_pos, rx1365_off
+    substr $S10, rx1365_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx1367_fail
+    lt $I11, 0, rx1365_fail
   # rx subrule "codeblock" subtype=capture negate=
-    rx1367_cur."!cursor_pos"(rx1367_pos)
-    $P10 = rx1367_cur."codeblock"()
-    unless $P10, rx1367_fail
-    rx1367_cur."!mark_push"(0, -1, 0, $P10)
+    rx1365_cur."!cursor_pos"(rx1365_pos)
+    $P10 = rx1365_cur."codeblock"()
+    unless $P10, rx1365_fail
+    rx1365_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("codeblock")
-    rx1367_pos = $P10."pos"()
-.annotate 'line', 576
+    rx1365_pos = $P10."pos"()
+.annotate 'line', 580
   # rx pass
-    rx1367_cur."!cursor_pass"(rx1367_pos, "assertion:sym<{ }>")
-    rx1367_cur."!cursor_debug"("PASS  ", "assertion:sym<{ }>", " at pos=", rx1367_pos)
-    .return (rx1367_cur)
-  rx1367_fail:
-.annotate 'line', 563
-    (rx1367_rep, rx1367_pos, $I10, $P10) = rx1367_cur."!mark_fail"(0)
-    lt rx1367_pos, -1, rx1367_done
-    eq rx1367_pos, -1, rx1367_fail
-    jump $I10
-  rx1367_done:
-    rx1367_cur."!cursor_fail"()
-    rx1367_cur."!cursor_debug"("FAIL  ", "assertion:sym<{ }>")
-    .return (rx1367_cur)
+    rx1365_cur."!cursor_pass"(rx1365_pos, "assertion:sym<{ }>")
+    rx1365_cur."!cursor_debug"("PASS  ", "assertion:sym<{ }>", " at pos=", rx1365_pos)
+    .return (rx1365_cur)
+  rx1365_restart:
+.annotate 'line', 567
+    rx1365_cur."!cursor_debug"("NEXT ", "assertion:sym<{ }>")
+  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"()
+    rx1365_cur."!cursor_debug"("FAIL  ", "assertion:sym<{ }>")
+    .return (rx1365_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<{ }>"  :subid("351_1277356913.9538") :method
-.annotate 'line', 563
-    new $P1369, "ResizablePMCArray"
-    push $P1369, "{"
-    .return ($P1369)
+.sub "!PREFIX__assertion:sym<{ }>"  :subid("359_1280467477.44751") :method
+.annotate 'line', 567
+    new $P1367, "ResizablePMCArray"
+    push $P1367, "{"
+    .return ($P1367)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<?{ }>"  :subid("352_1277356913.9538") :method :outer("341_1277356913.9538")
-.annotate 'line', 563
-    .const 'Sub' $P1377 = "354_1277356913.9538" 
-    capture_lex $P1377
-    .local string rx1372_tgt
-    .local int rx1372_pos
-    .local int rx1372_off
-    .local int rx1372_eos
-    .local int rx1372_rep
-    .local pmc rx1372_cur
-    (rx1372_cur, rx1372_pos, rx1372_tgt) = self."!cursor_start"()
-    rx1372_cur."!cursor_debug"("START ", "assertion:sym<?{ }>")
-    .lex unicode:"$\x{a2}", rx1372_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1372_eos, rx1372_tgt
-    gt rx1372_pos, rx1372_eos, rx1372_done
-    set rx1372_off, 0
-    lt rx1372_pos, 2, rx1372_start
-    sub rx1372_off, rx1372_pos, 1
-    substr rx1372_tgt, rx1372_tgt, rx1372_off
-  rx1372_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1375_done
-    goto rxscan1375_scan
-  rxscan1375_loop:
-    ($P10) = rx1372_cur."from"()
-    inc $P10
-    set rx1372_pos, $P10
-    ge rx1372_pos, rx1372_eos, rxscan1375_done
-  rxscan1375_scan:
-    set_addr $I10, rxscan1375_loop
-    rx1372_cur."!mark_push"(0, rx1372_pos, $I10)
-  rxscan1375_done:
-.annotate 'line', 581
+.sub "assertion:sym<?{ }>"  :subid("360_1280467477.44751") :method :outer("349_1280467477.44751")
+.annotate 'line', 567
+    .const 'Sub' $P1375 = "362_1280467477.44751" 
+    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
+    (rx1370_cur, rx1370_pos, rx1370_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1370_cur."!cursor_debug"("START ", "assertion:sym<?{ }>")
+    $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:
+.annotate 'line', 585
   # rx subcapture "zw"
-    set_addr $I10, rxcap_1380_fail
-    rx1372_cur."!mark_push"(0, rx1372_pos, $I10)
+    set_addr $I10, rxcap_1378_fail
+    rx1370_cur."!mark_push"(0, rx1370_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx1372_pos, rx1372_eos, rx1372_fail
-    sub $I10, rx1372_pos, rx1372_off
-    substr $S10, rx1372_tgt, $I10, 1
+    ge rx1370_pos, rx1370_eos, rx1370_fail
+    sub $I10, rx1370_pos, rx1370_off
+    substr $S10, rx1370_tgt, $I10, 1
     index $I11, "?!", $S10
-    lt $I11, 0, rx1372_fail
-    inc rx1372_pos
+    lt $I11, 0, rx1370_fail
+    inc rx1370_pos
   # rx subrule "before" subtype=zerowidth negate=
-    rx1372_cur."!cursor_pos"(rx1372_pos)
-    .const 'Sub' $P1377 = "354_1277356913.9538" 
-    capture_lex $P1377
-    $P10 = rx1372_cur."before"($P1377)
-    unless $P10, rx1372_fail
-    set_addr $I10, rxcap_1380_fail
-    ($I12, $I11) = rx1372_cur."!mark_peek"($I10)
-    rx1372_cur."!cursor_pos"($I11)
-    ($P10) = rx1372_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1372_pos, "")
-    rx1372_cur."!mark_push"(0, -1, 0, $P10)
+    rx1370_cur."!cursor_pos"(rx1370_pos)
+    .const 'Sub' $P1375 = "362_1280467477.44751" 
+    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)
     $P10."!cursor_names"("zw")
-    goto rxcap_1380_done
-  rxcap_1380_fail:
-    goto rx1372_fail
-  rxcap_1380_done:
+    goto rxcap_1378_done
+  rxcap_1378_fail:
+    goto rx1370_fail
+  rxcap_1378_done:
   # rx subrule "codeblock" subtype=capture negate=
-    rx1372_cur."!cursor_pos"(rx1372_pos)
-    $P10 = rx1372_cur."codeblock"()
-    unless $P10, rx1372_fail
-    rx1372_cur."!mark_push"(0, -1, 0, $P10)
+    rx1370_cur."!cursor_pos"(rx1370_pos)
+    $P10 = rx1370_cur."codeblock"()
+    unless $P10, rx1370_fail
+    rx1370_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("codeblock")
-    rx1372_pos = $P10."pos"()
-.annotate 'line', 580
+    rx1370_pos = $P10."pos"()
+.annotate 'line', 584
   # rx pass
-    rx1372_cur."!cursor_pass"(rx1372_pos, "assertion:sym<?{ }>")
-    rx1372_cur."!cursor_debug"("PASS  ", "assertion:sym<?{ }>", " at pos=", rx1372_pos)
-    .return (rx1372_cur)
-  rx1372_fail:
-.annotate 'line', 563
-    (rx1372_rep, rx1372_pos, $I10, $P10) = rx1372_cur."!mark_fail"(0)
-    lt rx1372_pos, -1, rx1372_done
-    eq rx1372_pos, -1, rx1372_fail
-    jump $I10
-  rx1372_done:
-    rx1372_cur."!cursor_fail"()
-    rx1372_cur."!cursor_debug"("FAIL  ", "assertion:sym<?{ }>")
-    .return (rx1372_cur)
+    rx1370_cur."!cursor_pass"(rx1370_pos, "assertion:sym<?{ }>")
+    rx1370_cur."!cursor_debug"("PASS  ", "assertion:sym<?{ }>", " at pos=", rx1370_pos)
+    .return (rx1370_cur)
+  rx1370_restart:
+.annotate 'line', 567
+    rx1370_cur."!cursor_debug"("NEXT ", "assertion:sym<?{ }>")
+  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"()
+    rx1370_cur."!cursor_debug"("FAIL  ", "assertion:sym<?{ }>")
+    .return (rx1370_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<?{ }>"  :subid("353_1277356913.9538") :method
-.annotate 'line', 563
-    new $P1374, "ResizablePMCArray"
-    push $P1374, "!"
-    push $P1374, "?"
-    .return ($P1374)
+.sub "!PREFIX__assertion:sym<?{ }>"  :subid("361_1280467477.44751") :method
+.annotate 'line', 567
+    new $P1372, "ResizablePMCArray"
+    push $P1372, "!"
+    push $P1372, "?"
+    .return ($P1372)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1376"  :anon :subid("354_1277356913.9538") :method :outer("352_1277356913.9538")
-.annotate 'line', 581
-    .local string rx1378_tgt
-    .local int rx1378_pos
-    .local int rx1378_off
-    .local int rx1378_eos
-    .local int rx1378_rep
-    .local pmc rx1378_cur
-    (rx1378_cur, rx1378_pos, rx1378_tgt) = self."!cursor_start"()
-    rx1378_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx1378_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1378_eos, rx1378_tgt
-    gt rx1378_pos, rx1378_eos, rx1378_done
-    set rx1378_off, 0
-    lt rx1378_pos, 2, rx1378_start
-    sub rx1378_off, rx1378_pos, 1
-    substr rx1378_tgt, rx1378_tgt, rx1378_off
-  rx1378_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1379_done
-    goto rxscan1379_scan
-  rxscan1379_loop:
-    ($P10) = rx1378_cur."from"()
-    inc $P10
-    set rx1378_pos, $P10
-    ge rx1378_pos, rx1378_eos, rxscan1379_done
-  rxscan1379_scan:
-    set_addr $I10, rxscan1379_loop
-    rx1378_cur."!mark_push"(0, rx1378_pos, $I10)
-  rxscan1379_done:
+.sub "_block1374"  :anon :subid("362_1280467477.44751") :method :outer("360_1280467477.44751")
+.annotate 'line', 585
+    .local string rx1376_tgt
+    .local int rx1376_pos
+    .local int rx1376_off
+    .local int rx1376_eos
+    .local int rx1376_rep
+    .local pmc rx1376_cur
+    (rx1376_cur, rx1376_pos, rx1376_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1376_cur."!cursor_debug"("START ", "")
+    $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:
   # rx literal  "{"
-    add $I11, rx1378_pos, 1
-    gt $I11, rx1378_eos, rx1378_fail
-    sub $I11, rx1378_pos, rx1378_off
-    substr $S10, rx1378_tgt, $I11, 1
-    ne $S10, "{", rx1378_fail
-    add rx1378_pos, 1
-  # rx pass
-    rx1378_cur."!cursor_pass"(rx1378_pos, "")
-    rx1378_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1378_pos)
-    .return (rx1378_cur)
-  rx1378_fail:
-    (rx1378_rep, rx1378_pos, $I10, $P10) = rx1378_cur."!mark_fail"(0)
-    lt rx1378_pos, -1, rx1378_done
-    eq rx1378_pos, -1, rx1378_fail
-    jump $I10
-  rx1378_done:
-    rx1378_cur."!cursor_fail"()
-    rx1378_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx1378_cur)
+    add $I11, rx1376_pos, 1
+    gt $I11, rx1376_eos, rx1376_fail
+    sub $I11, rx1376_pos, rx1376_off
+    substr $S10, rx1376_tgt, $I11, 1
+    ne $S10, "{", rx1376_fail
+    add rx1376_pos, 1
+  # rx pass
+    rx1376_cur."!cursor_pass"(rx1376_pos, "")
+    rx1376_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1376_pos)
+    .return (rx1376_cur)
+  rx1376_restart:
+    rx1376_cur."!cursor_debug"("NEXT ", "")
+  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"()
+    rx1376_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1376_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<name>"  :subid("355_1277356913.9538") :method :outer("341_1277356913.9538")
-.annotate 'line', 563
-    .const 'Sub' $P1390 = "357_1277356913.9538" 
-    capture_lex $P1390
-    .local string rx1382_tgt
-    .local int rx1382_pos
-    .local int rx1382_off
-    .local int rx1382_eos
-    .local int rx1382_rep
-    .local pmc rx1382_cur
-    (rx1382_cur, rx1382_pos, rx1382_tgt) = self."!cursor_start"()
-    rx1382_cur."!cursor_debug"("START ", "assertion:sym<name>")
-    rx1382_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
-    .lex unicode:"$\x{a2}", rx1382_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1382_eos, rx1382_tgt
-    gt rx1382_pos, rx1382_eos, rx1382_done
-    set rx1382_off, 0
-    lt rx1382_pos, 2, rx1382_start
-    sub rx1382_off, rx1382_pos, 1
-    substr rx1382_tgt, rx1382_tgt, rx1382_off
-  rx1382_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1386_done
-    goto rxscan1386_scan
-  rxscan1386_loop:
-    ($P10) = rx1382_cur."from"()
-    inc $P10
-    set rx1382_pos, $P10
-    ge rx1382_pos, rx1382_eos, rxscan1386_done
-  rxscan1386_scan:
-    set_addr $I10, rxscan1386_loop
-    rx1382_cur."!mark_push"(0, rx1382_pos, $I10)
-  rxscan1386_done:
-.annotate 'line', 585
+.sub "assertion:sym<name>"  :subid("363_1280467477.44751") :method :outer("349_1280467477.44751")
+.annotate 'line', 567
+    .const 'Sub' $P1388 = "365_1280467477.44751" 
+    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
+    (rx1380_cur, rx1380_pos, rx1380_tgt, $I10) = self."!cursor_start"()
+    rx1380_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
+    .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
+    rx1380_cur."!cursor_debug"("START ", "assertion:sym<name>")
+    $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:
+.annotate 'line', 589
   # rx subrule "identifier" subtype=capture negate=
-    rx1382_cur."!cursor_pos"(rx1382_pos)
-    $P10 = rx1382_cur."identifier"()
-    unless $P10, rx1382_fail
-    rx1382_cur."!mark_push"(0, -1, 0, $P10)
+    rx1380_cur."!cursor_pos"(rx1380_pos)
+    $P10 = rx1380_cur."identifier"()
+    unless $P10, rx1380_fail
+    rx1380_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("longname")
-    rx1382_pos = $P10."pos"()
-.annotate 'line', 592
-  # rx rxquantr1387 ** 0..1
-    set_addr $I1393, rxquantr1387_done
-    rx1382_cur."!mark_push"(0, rx1382_pos, $I1393)
-  rxquantr1387_loop:
-  alt1388_0:
-.annotate 'line', 586
-    set_addr $I10, alt1388_1
-    rx1382_cur."!mark_push"(0, rx1382_pos, $I10)
-.annotate 'line', 587
+    rx1380_pos = $P10."pos"()
+.annotate 'line', 596
+  # rx rxquantr1385 ** 0..1
+    set_addr $I10, rxquantr1385_done
+    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+  rxquantr1385_loop:
+  alt1386_0:
+.annotate 'line', 590
+    set_addr $I10, alt1386_1
+    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+.annotate 'line', 591
   # rx subrule "before" subtype=zerowidth negate=
-    rx1382_cur."!cursor_pos"(rx1382_pos)
-    .const 'Sub' $P1390 = "357_1277356913.9538" 
-    capture_lex $P1390
-    $P10 = rx1382_cur."before"($P1390)
-    unless $P10, rx1382_fail
-    goto alt1388_end
-  alt1388_1:
-    set_addr $I10, alt1388_2
-    rx1382_cur."!mark_push"(0, rx1382_pos, $I10)
-.annotate 'line', 588
+    rx1380_cur."!cursor_pos"(rx1380_pos)
+    .const 'Sub' $P1388 = "365_1280467477.44751" 
+    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)
+.annotate 'line', 592
   # rx literal  "="
-    add $I11, rx1382_pos, 1
-    gt $I11, rx1382_eos, rx1382_fail
-    sub $I11, rx1382_pos, rx1382_off
-    substr $S10, rx1382_tgt, $I11, 1
-    ne $S10, "=", rx1382_fail
-    add rx1382_pos, 1
+    add $I11, rx1380_pos, 1
+    gt $I11, rx1380_eos, rx1380_fail
+    sub $I11, rx1380_pos, rx1380_off
+    substr $S10, rx1380_tgt, $I11, 1
+    ne $S10, "=", rx1380_fail
+    add rx1380_pos, 1
   # rx subrule "assertion" subtype=capture negate=
-    rx1382_cur."!cursor_pos"(rx1382_pos)
-    $P10 = rx1382_cur."assertion"()
-    unless $P10, rx1382_fail
-    rx1382_cur."!mark_push"(0, -1, 0, $P10)
+    rx1380_cur."!cursor_pos"(rx1380_pos)
+    $P10 = rx1380_cur."assertion"()
+    unless $P10, rx1380_fail
+    rx1380_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx1382_pos = $P10."pos"()
-    goto alt1388_end
-  alt1388_2:
-    set_addr $I10, alt1388_3
-    rx1382_cur."!mark_push"(0, rx1382_pos, $I10)
-.annotate 'line', 589
+    rx1380_pos = $P10."pos"()
+    goto alt1386_end
+  alt1386_2:
+    set_addr $I10, alt1386_3
+    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+.annotate 'line', 593
   # rx literal  ":"
-    add $I11, rx1382_pos, 1
-    gt $I11, rx1382_eos, rx1382_fail
-    sub $I11, rx1382_pos, rx1382_off
-    substr $S10, rx1382_tgt, $I11, 1
-    ne $S10, ":", rx1382_fail
-    add rx1382_pos, 1
+    add $I11, rx1380_pos, 1
+    gt $I11, rx1380_eos, rx1380_fail
+    sub $I11, rx1380_pos, rx1380_off
+    substr $S10, rx1380_tgt, $I11, 1
+    ne $S10, ":", rx1380_fail
+    add rx1380_pos, 1
   # rx subrule "arglist" subtype=capture negate=
-    rx1382_cur."!cursor_pos"(rx1382_pos)
-    $P10 = rx1382_cur."arglist"()
-    unless $P10, rx1382_fail
-    rx1382_cur."!mark_push"(0, -1, 0, $P10)
+    rx1380_cur."!cursor_pos"(rx1380_pos)
+    $P10 = rx1380_cur."arglist"()
+    unless $P10, rx1380_fail
+    rx1380_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx1382_pos = $P10."pos"()
-    goto alt1388_end
-  alt1388_3:
-    set_addr $I10, alt1388_4
-    rx1382_cur."!mark_push"(0, rx1382_pos, $I10)
-.annotate 'line', 590
+    rx1380_pos = $P10."pos"()
+    goto alt1386_end
+  alt1386_3:
+    set_addr $I10, alt1386_4
+    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+.annotate 'line', 594
   # rx literal  "("
-    add $I11, rx1382_pos, 1
-    gt $I11, rx1382_eos, rx1382_fail
-    sub $I11, rx1382_pos, rx1382_off
-    substr $S10, rx1382_tgt, $I11, 1
-    ne $S10, "(", rx1382_fail
-    add rx1382_pos, 1
+    add $I11, rx1380_pos, 1
+    gt $I11, rx1380_eos, rx1380_fail
+    sub $I11, rx1380_pos, rx1380_off
+    substr $S10, rx1380_tgt, $I11, 1
+    ne $S10, "(", rx1380_fail
+    add rx1380_pos, 1
   # rx subrule "LANG" subtype=capture negate=
-    rx1382_cur."!cursor_pos"(rx1382_pos)
-    $P10 = rx1382_cur."LANG"("MAIN", "arglist")
-    unless $P10, rx1382_fail
-    rx1382_cur."!mark_push"(0, -1, 0, $P10)
+    rx1380_cur."!cursor_pos"(rx1380_pos)
+    $P10 = rx1380_cur."LANG"("MAIN", "arglist")
+    unless $P10, rx1380_fail
+    rx1380_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx1382_pos = $P10."pos"()
+    rx1380_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx1382_pos, 1
-    gt $I11, rx1382_eos, rx1382_fail
-    sub $I11, rx1382_pos, rx1382_off
-    substr $S10, rx1382_tgt, $I11, 1
-    ne $S10, ")", rx1382_fail
-    add rx1382_pos, 1
-    goto alt1388_end
-  alt1388_4:
-.annotate 'line', 591
+    add $I11, rx1380_pos, 1
+    gt $I11, rx1380_eos, rx1380_fail
+    sub $I11, rx1380_pos, rx1380_off
+    substr $S10, rx1380_tgt, $I11, 1
+    ne $S10, ")", rx1380_fail
+    add rx1380_pos, 1
+    goto alt1386_end
+  alt1386_4:
+.annotate 'line', 595
   # rx subrule "normspace" subtype=method negate=
-    rx1382_cur."!cursor_pos"(rx1382_pos)
-    $P10 = rx1382_cur."normspace"()
-    unless $P10, rx1382_fail
-    rx1382_pos = $P10."pos"()
+    rx1380_cur."!cursor_pos"(rx1380_pos)
+    $P10 = rx1380_cur."normspace"()
+    unless $P10, rx1380_fail
+    rx1380_pos = $P10."pos"()
   # rx subrule "nibbler" subtype=capture negate=
-    rx1382_cur."!cursor_pos"(rx1382_pos)
-    $P10 = rx1382_cur."nibbler"()
-    unless $P10, rx1382_fail
-    rx1382_cur."!mark_push"(0, -1, 0, $P10)
+    rx1380_cur."!cursor_pos"(rx1380_pos)
+    $P10 = rx1380_cur."nibbler"()
+    unless $P10, rx1380_fail
+    rx1380_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("nibbler")
-    rx1382_pos = $P10."pos"()
-  alt1388_end:
-.annotate 'line', 592
-    (rx1382_rep) = rx1382_cur."!mark_commit"($I1393)
-  rxquantr1387_done:
-.annotate 'line', 584
+    rx1380_pos = $P10."pos"()
+  alt1386_end:
+.annotate 'line', 596
+    set_addr $I10, rxquantr1385_done
+    (rx1380_rep) = rx1380_cur."!mark_commit"($I10)
+  rxquantr1385_done:
+.annotate 'line', 588
   # rx pass
-    rx1382_cur."!cursor_pass"(rx1382_pos, "assertion:sym<name>")
-    rx1382_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx1382_pos)
-    .return (rx1382_cur)
-  rx1382_fail:
-.annotate 'line', 563
-    (rx1382_rep, rx1382_pos, $I10, $P10) = rx1382_cur."!mark_fail"(0)
-    lt rx1382_pos, -1, rx1382_done
-    eq rx1382_pos, -1, rx1382_fail
-    jump $I10
-  rx1382_done:
-    rx1382_cur."!cursor_fail"()
-    rx1382_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
-    .return (rx1382_cur)
+    rx1380_cur."!cursor_pass"(rx1380_pos, "assertion:sym<name>")
+    rx1380_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx1380_pos)
+    .return (rx1380_cur)
+  rx1380_restart:
+.annotate 'line', 567
+    rx1380_cur."!cursor_debug"("NEXT ", "assertion:sym<name>")
+  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"()
+    rx1380_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
+    .return (rx1380_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("356_1277356913.9538") :method
-.annotate 'line', 563
-    $P1384 = self."!PREFIX__!subrule"("identifier", "")
-    new $P1385, "ResizablePMCArray"
-    push $P1385, $P1384
-    .return ($P1385)
+.sub "!PREFIX__assertion:sym<name>"  :subid("364_1280467477.44751") :method
+.annotate 'line', 567
+    $P1382 = self."!PREFIX__!subrule"("identifier", "")
+    new $P1383, "ResizablePMCArray"
+    push $P1383, $P1382
+    .return ($P1383)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1389"  :anon :subid("357_1277356913.9538") :method :outer("355_1277356913.9538")
-.annotate 'line', 587
-    .local string rx1391_tgt
-    .local int rx1391_pos
-    .local int rx1391_off
-    .local int rx1391_eos
-    .local int rx1391_rep
-    .local pmc rx1391_cur
-    (rx1391_cur, rx1391_pos, rx1391_tgt) = self."!cursor_start"()
-    rx1391_cur."!cursor_debug"("START ", "")
-    .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:
-    $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:
+.sub "_block1387"  :anon :subid("365_1280467477.44751") :method :outer("363_1280467477.44751")
+.annotate 'line', 591
+    .local string rx1389_tgt
+    .local int rx1389_pos
+    .local int rx1389_off
+    .local int rx1389_eos
+    .local int rx1389_rep
+    .local pmc rx1389_cur
+    (rx1389_cur, rx1389_pos, rx1389_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1389_cur."!cursor_debug"("START ", "")
+    $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:
   # rx literal  ">"
-    add $I11, rx1391_pos, 1
-    gt $I11, rx1391_eos, rx1391_fail
-    sub $I11, rx1391_pos, rx1391_off
-    substr $S10, rx1391_tgt, $I11, 1
-    ne $S10, ">", rx1391_fail
-    add rx1391_pos, 1
-  # rx pass
-    rx1391_cur."!cursor_pass"(rx1391_pos, "")
-    rx1391_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1391_pos)
-    .return (rx1391_cur)
-  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"()
-    rx1391_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx1391_cur)
+    add $I11, rx1389_pos, 1
+    gt $I11, rx1389_eos, rx1389_fail
+    sub $I11, rx1389_pos, rx1389_off
+    substr $S10, rx1389_tgt, $I11, 1
+    ne $S10, ">", rx1389_fail
+    add rx1389_pos, 1
+  # rx pass
+    rx1389_cur."!cursor_pass"(rx1389_pos, "")
+    rx1389_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1389_pos)
+    .return (rx1389_cur)
+  rx1389_restart:
+    rx1389_cur."!cursor_debug"("NEXT ", "")
+  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"()
+    rx1389_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1389_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<var>"  :subid("358_1277356913.9538") :method :outer("341_1277356913.9538")
-.annotate 'line', 563
-    .local string rx1395_tgt
-    .local int rx1395_pos
-    .local int rx1395_off
-    .local int rx1395_eos
-    .local int rx1395_rep
-    .local pmc rx1395_cur
-    (rx1395_cur, rx1395_pos, rx1395_tgt) = self."!cursor_start"()
-    rx1395_cur."!cursor_debug"("START ", "assertion:sym<var>")
-    .lex unicode:"$\x{a2}", rx1395_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1395_eos, rx1395_tgt
-    gt rx1395_pos, rx1395_eos, rx1395_done
-    set rx1395_off, 0
-    lt rx1395_pos, 2, rx1395_start
-    sub rx1395_off, rx1395_pos, 1
-    substr rx1395_tgt, rx1395_tgt, rx1395_off
-  rx1395_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1398_done
-    goto rxscan1398_scan
-  rxscan1398_loop:
-    ($P10) = rx1395_cur."from"()
-    inc $P10
-    set rx1395_pos, $P10
-    ge rx1395_pos, rx1395_eos, rxscan1398_done
-  rxscan1398_scan:
-    set_addr $I10, rxscan1398_loop
-    rx1395_cur."!mark_push"(0, rx1395_pos, $I10)
-  rxscan1398_done:
-.annotate 'line', 596
+.sub "assertion:sym<var>"  :subid("366_1280467477.44751") :method :outer("349_1280467477.44751")
+.annotate 'line', 567
+    .local string rx1392_tgt
+    .local int rx1392_pos
+    .local int rx1392_off
+    .local int rx1392_eos
+    .local int rx1392_rep
+    .local pmc rx1392_cur
+    (rx1392_cur, rx1392_pos, rx1392_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1392_cur."!cursor_debug"("START ", "assertion:sym<var>")
+    $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:
+.annotate 'line', 600
   # rx enumcharlist negate=0 zerowidth
-    ge rx1395_pos, rx1395_eos, rx1395_fail
-    sub $I10, rx1395_pos, rx1395_off
-    substr $S10, rx1395_tgt, $I10, 1
+    ge rx1392_pos, rx1392_eos, rx1392_fail
+    sub $I10, rx1392_pos, rx1392_off
+    substr $S10, rx1392_tgt, $I10, 1
     index $I11, "$@", $S10
-    lt $I11, 0, rx1395_fail
+    lt $I11, 0, rx1392_fail
   # rx subrule "LANG" subtype=capture negate=
-    rx1395_cur."!cursor_pos"(rx1395_pos)
-    $P10 = rx1395_cur."LANG"("MAIN", "variable")
-    unless $P10, rx1395_fail
-    rx1395_cur."!mark_push"(0, -1, 0, $P10)
+    rx1392_cur."!cursor_pos"(rx1392_pos)
+    $P10 = rx1392_cur."LANG"("MAIN", "variable")
+    unless $P10, rx1392_fail
+    rx1392_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("var")
-    rx1395_pos = $P10."pos"()
-.annotate 'line', 595
+    rx1392_pos = $P10."pos"()
+.annotate 'line', 599
   # rx pass
-    rx1395_cur."!cursor_pass"(rx1395_pos, "assertion:sym<var>")
-    rx1395_cur."!cursor_debug"("PASS  ", "assertion:sym<var>", " at pos=", rx1395_pos)
-    .return (rx1395_cur)
-  rx1395_fail:
-.annotate 'line', 563
-    (rx1395_rep, rx1395_pos, $I10, $P10) = rx1395_cur."!mark_fail"(0)
-    lt rx1395_pos, -1, rx1395_done
-    eq rx1395_pos, -1, rx1395_fail
-    jump $I10
-  rx1395_done:
-    rx1395_cur."!cursor_fail"()
-    rx1395_cur."!cursor_debug"("FAIL  ", "assertion:sym<var>")
-    .return (rx1395_cur)
+    rx1392_cur."!cursor_pass"(rx1392_pos, "assertion:sym<var>")
+    rx1392_cur."!cursor_debug"("PASS  ", "assertion:sym<var>", " at pos=", rx1392_pos)
+    .return (rx1392_cur)
+  rx1392_restart:
+.annotate 'line', 567
+    rx1392_cur."!cursor_debug"("NEXT ", "assertion:sym<var>")
+  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"()
+    rx1392_cur."!cursor_debug"("FAIL  ", "assertion:sym<var>")
+    .return (rx1392_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<var>"  :subid("359_1277356913.9538") :method
-.annotate 'line', 563
-    new $P1397, "ResizablePMCArray"
-    push $P1397, "$"
-    push $P1397, "@"
-    .return ($P1397)
+.sub "!PREFIX__assertion:sym<var>"  :subid("367_1280467477.44751") :method
+.annotate 'line', 567
+    new $P1394, "ResizablePMCArray"
+    push $P1394, "$"
+    push $P1394, "@"
+    .return ($P1394)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "codeblock"  :subid("360_1277356913.9538") :method :outer("341_1277356913.9538")
-.annotate 'line', 563
-    .local string rx1400_tgt
-    .local int rx1400_pos
-    .local int rx1400_off
-    .local int rx1400_eos
-    .local int rx1400_rep
-    .local pmc rx1400_cur
-    (rx1400_cur, rx1400_pos, rx1400_tgt) = self."!cursor_start"()
-    rx1400_cur."!cursor_debug"("START ", "codeblock")
-    .lex unicode:"$\x{a2}", rx1400_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1400_eos, rx1400_tgt
-    gt rx1400_pos, rx1400_eos, rx1400_done
-    set rx1400_off, 0
-    lt rx1400_pos, 2, rx1400_start
-    sub rx1400_off, rx1400_pos, 1
-    substr rx1400_tgt, rx1400_tgt, rx1400_off
-  rx1400_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1404_done
-    goto rxscan1404_scan
-  rxscan1404_loop:
-    ($P10) = rx1400_cur."from"()
-    inc $P10
-    set rx1400_pos, $P10
-    ge rx1400_pos, rx1400_eos, rxscan1404_done
-  rxscan1404_scan:
-    set_addr $I10, rxscan1404_loop
-    rx1400_cur."!mark_push"(0, rx1400_pos, $I10)
-  rxscan1404_done:
-.annotate 'line', 600
+.sub "codeblock"  :subid("368_1280467477.44751") :method :outer("349_1280467477.44751")
+.annotate 'line', 567
+    .local string rx1397_tgt
+    .local int rx1397_pos
+    .local int rx1397_off
+    .local int rx1397_eos
+    .local int rx1397_rep
+    .local pmc rx1397_cur
+    (rx1397_cur, rx1397_pos, rx1397_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx1397_cur."!cursor_debug"("START ", "codeblock")
+    $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:
+.annotate 'line', 604
   # rx subrule "LANG" subtype=capture negate=
-    rx1400_cur."!cursor_pos"(rx1400_pos)
-    $P10 = rx1400_cur."LANG"("MAIN", "pblock")
-    unless $P10, rx1400_fail
-    rx1400_cur."!mark_push"(0, -1, 0, $P10)
+    rx1397_cur."!cursor_pos"(rx1397_pos)
+    $P10 = rx1397_cur."LANG"("MAIN", "pblock")
+    unless $P10, rx1397_fail
+    rx1397_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx1400_pos = $P10."pos"()
-.annotate 'line', 599
+    rx1397_pos = $P10."pos"()
+.annotate 'line', 603
   # rx pass
-    rx1400_cur."!cursor_pass"(rx1400_pos, "codeblock")
-    rx1400_cur."!cursor_debug"("PASS  ", "codeblock", " at pos=", rx1400_pos)
-    .return (rx1400_cur)
-  rx1400_fail:
-.annotate 'line', 563
-    (rx1400_rep, rx1400_pos, $I10, $P10) = rx1400_cur."!mark_fail"(0)
-    lt rx1400_pos, -1, rx1400_done
-    eq rx1400_pos, -1, rx1400_fail
-    jump $I10
-  rx1400_done:
-    rx1400_cur."!cursor_fail"()
-    rx1400_cur."!cursor_debug"("FAIL  ", "codeblock")
-    .return (rx1400_cur)
+    rx1397_cur."!cursor_pass"(rx1397_pos, "codeblock")
+    rx1397_cur."!cursor_debug"("PASS  ", "codeblock", " at pos=", rx1397_pos)
+    .return (rx1397_cur)
+  rx1397_restart:
+.annotate 'line', 567
+    rx1397_cur."!cursor_debug"("NEXT ", "codeblock")
+  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"()
+    rx1397_cur."!cursor_debug"("FAIL  ", "codeblock")
+    .return (rx1397_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__codeblock"  :subid("361_1277356913.9538") :method
-.annotate 'line', 563
-    $P1402 = self."!PREFIX__!subrule"("LANG", "")
-    new $P1403, "ResizablePMCArray"
-    push $P1403, $P1402
-    .return ($P1403)
+.sub "!PREFIX__codeblock"  :subid("369_1280467477.44751") :method
+.annotate 'line', 567
+    $P1399 = self."!PREFIX__!subrule"("LANG", "")
+    new $P1400, "ResizablePMCArray"
+    push $P1400, $P1399
+    .return ($P1400)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block1406" :load :anon :subid("362_1277356913.9538")
+.sub "_block1403" :load :anon :subid("370_1280467477.44751")
 .annotate 'line', 4
-    .const 'Sub' $P1408 = "11_1277356913.9538" 
-    $P1409 = $P1408()
-    .return ($P1409)
+    .const 'Sub' $P1405 = "11_1280467477.44751" 
+    $P1406 = $P1405()
+    .return ($P1406)
 .end
 
 
 .namespace []
-.sub "_block1427" :load :anon :subid("363_1277356913.9538")
+.sub "_block1424" :load :anon :subid("371_1280467477.44751")
 .annotate 'line', 1
-    .const 'Sub' $P1429 = "10_1277356913.9538" 
-    $P1430 = $P1429()
-    .return ($P1430)
+    .const 'Sub' $P1426 = "10_1280467477.44751" 
+    $P1427 = $P1426()
+    .return ($P1427)
 .end
 
 ### .include 'gen/nqp-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1277356919.52295")
+.sub "_block11"  :anon :subid("10_1280467483.70067")
 .annotate 'line', 0
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     capture_lex $P14
@@ -17453,237 +18509,237 @@
 .annotate 'line', 3
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     capture_lex $P14
-    $P2424 = $P14()
+    $P2452 = $P14()
 .annotate 'line', 1
-    .return ($P2424)
-    .const 'Sub' $P2426 = "143_1277356919.52295" 
-    .return ($P2426)
+    .return ($P2452)
+    .const 'Sub' $P2454 = "143_1280467483.70067" 
+    .return ($P2454)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post144") :outer("10_1277356919.52295")
+.sub "" :load :init :subid("post144") :outer("10_1280467483.70067")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1277356919.52295" 
+    .const 'Sub' $P12 = "10_1280467483.70067" 
     .local pmc block
     set block, $P12
-    $P2429 = get_root_global ["parrot"], "P6metaclass"
-    $P2429."new_class"("NQP::Actions", "HLL::Actions" :named("parent"))
+    $P2457 = get_root_global ["parrot"], "P6metaclass"
+    $P2457."new_class"("NQP::Actions", "HLL::Actions" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block13"  :subid("11_1277356919.52295") :outer("10_1277356919.52295")
+.sub "_block13"  :subid("11_1280467483.70067") :outer("10_1280467483.70067")
 .annotate 'line', 3
-    .const 'Sub' $P2420 = "142_1277356919.52295" 
-    capture_lex $P2420
-    get_hll_global $P2303, ["NQP";"RegexActions"], "_block2302" 
-    capture_lex $P2303
-    .const 'Sub' $P2292 = "132_1277356919.52295" 
-    capture_lex $P2292
-    .const 'Sub' $P2285 = "131_1277356919.52295" 
-    capture_lex $P2285
-    .const 'Sub' $P2278 = "130_1277356919.52295" 
-    capture_lex $P2278
-    .const 'Sub' $P2271 = "129_1277356919.52295" 
-    capture_lex $P2271
-    .const 'Sub' $P2258 = "128_1277356919.52295" 
-    capture_lex $P2258
-    .const 'Sub' $P2248 = "127_1277356919.52295" 
-    capture_lex $P2248
-    .const 'Sub' $P2238 = "126_1277356919.52295" 
-    capture_lex $P2238
-    .const 'Sub' $P2228 = "125_1277356919.52295" 
-    capture_lex $P2228
-    .const 'Sub' $P2221 = "124_1277356919.52295" 
-    capture_lex $P2221
-    .const 'Sub' $P2207 = "123_1277356919.52295" 
-    capture_lex $P2207
-    .const 'Sub' $P2197 = "122_1277356919.52295" 
-    capture_lex $P2197
-    .const 'Sub' $P2160 = "121_1277356919.52295" 
-    capture_lex $P2160
-    .const 'Sub' $P2146 = "120_1277356919.52295" 
-    capture_lex $P2146
-    .const 'Sub' $P2136 = "119_1277356919.52295" 
-    capture_lex $P2136
-    .const 'Sub' $P2126 = "118_1277356919.52295" 
-    capture_lex $P2126
-    .const 'Sub' $P2116 = "117_1277356919.52295" 
-    capture_lex $P2116
-    .const 'Sub' $P2106 = "116_1277356919.52295" 
-    capture_lex $P2106
-    .const 'Sub' $P2096 = "115_1277356919.52295" 
+    .const 'Sub' $P2448 = "142_1280467483.70067" 
+    capture_lex $P2448
+    get_hll_global $P2331, ["NQP";"RegexActions"], "_block2330" 
+    capture_lex $P2331
+    .const 'Sub' $P2320 = "132_1280467483.70067" 
+    capture_lex $P2320
+    .const 'Sub' $P2313 = "131_1280467483.70067" 
+    capture_lex $P2313
+    .const 'Sub' $P2306 = "130_1280467483.70067" 
+    capture_lex $P2306
+    .const 'Sub' $P2299 = "129_1280467483.70067" 
+    capture_lex $P2299
+    .const 'Sub' $P2286 = "128_1280467483.70067" 
+    capture_lex $P2286
+    .const 'Sub' $P2276 = "127_1280467483.70067" 
+    capture_lex $P2276
+    .const 'Sub' $P2266 = "126_1280467483.70067" 
+    capture_lex $P2266
+    .const 'Sub' $P2256 = "125_1280467483.70067" 
+    capture_lex $P2256
+    .const 'Sub' $P2249 = "124_1280467483.70067" 
+    capture_lex $P2249
+    .const 'Sub' $P2235 = "123_1280467483.70067" 
+    capture_lex $P2235
+    .const 'Sub' $P2225 = "122_1280467483.70067" 
+    capture_lex $P2225
+    .const 'Sub' $P2188 = "121_1280467483.70067" 
+    capture_lex $P2188
+    .const 'Sub' $P2174 = "120_1280467483.70067" 
+    capture_lex $P2174
+    .const 'Sub' $P2164 = "119_1280467483.70067" 
+    capture_lex $P2164
+    .const 'Sub' $P2154 = "118_1280467483.70067" 
+    capture_lex $P2154
+    .const 'Sub' $P2144 = "117_1280467483.70067" 
+    capture_lex $P2144
+    .const 'Sub' $P2134 = "116_1280467483.70067" 
+    capture_lex $P2134
+    .const 'Sub' $P2124 = "115_1280467483.70067" 
+    capture_lex $P2124
+    .const 'Sub' $P2096 = "114_1280467483.70067" 
     capture_lex $P2096
-    .const 'Sub' $P2068 = "114_1277356919.52295" 
-    capture_lex $P2068
-    .const 'Sub' $P2051 = "113_1277356919.52295" 
-    capture_lex $P2051
-    .const 'Sub' $P2041 = "112_1277356919.52295" 
-    capture_lex $P2041
-    .const 'Sub' $P2028 = "111_1277356919.52295" 
-    capture_lex $P2028
-    .const 'Sub' $P2015 = "110_1277356919.52295" 
-    capture_lex $P2015
-    .const 'Sub' $P2002 = "109_1277356919.52295" 
-    capture_lex $P2002
-    .const 'Sub' $P1992 = "108_1277356919.52295" 
-    capture_lex $P1992
-    .const 'Sub' $P1963 = "107_1277356919.52295" 
-    capture_lex $P1963
-    .const 'Sub' $P1939 = "106_1277356919.52295" 
-    capture_lex $P1939
-    .const 'Sub' $P1929 = "105_1277356919.52295" 
-    capture_lex $P1929
-    .const 'Sub' $P1919 = "104_1277356919.52295" 
-    capture_lex $P1919
-    .const 'Sub' $P1892 = "103_1277356919.52295" 
+    .const 'Sub' $P2079 = "113_1280467483.70067" 
+    capture_lex $P2079
+    .const 'Sub' $P2069 = "112_1280467483.70067" 
+    capture_lex $P2069
+    .const 'Sub' $P2056 = "111_1280467483.70067" 
+    capture_lex $P2056
+    .const 'Sub' $P2043 = "110_1280467483.70067" 
+    capture_lex $P2043
+    .const 'Sub' $P2030 = "109_1280467483.70067" 
+    capture_lex $P2030
+    .const 'Sub' $P2020 = "108_1280467483.70067" 
+    capture_lex $P2020
+    .const 'Sub' $P1991 = "107_1280467483.70067" 
+    capture_lex $P1991
+    .const 'Sub' $P1967 = "106_1280467483.70067" 
+    capture_lex $P1967
+    .const 'Sub' $P1957 = "105_1280467483.70067" 
+    capture_lex $P1957
+    .const 'Sub' $P1947 = "104_1280467483.70067" 
+    capture_lex $P1947
+    .const 'Sub' $P1920 = "103_1280467483.70067" 
+    capture_lex $P1920
+    .const 'Sub' $P1902 = "102_1280467483.70067" 
+    capture_lex $P1902
+    .const 'Sub' $P1892 = "101_1280467483.70067" 
     capture_lex $P1892
-    .const 'Sub' $P1874 = "102_1277356919.52295" 
-    capture_lex $P1874
-    .const 'Sub' $P1864 = "101_1277356919.52295" 
-    capture_lex $P1864
-    .const 'Sub' $P1760 = "98_1277356919.52295" 
-    capture_lex $P1760
-    .const 'Sub' $P1750 = "97_1277356919.52295" 
-    capture_lex $P1750
-    .const 'Sub' $P1721 = "96_1277356919.52295" 
-    capture_lex $P1721
-    .const 'Sub' $P1679 = "95_1277356919.52295" 
-    capture_lex $P1679
-    .const 'Sub' $P1663 = "94_1277356919.52295" 
-    capture_lex $P1663
-    .const 'Sub' $P1654 = "93_1277356919.52295" 
-    capture_lex $P1654
-    .const 'Sub' $P1622 = "92_1277356919.52295" 
-    capture_lex $P1622
-    .const 'Sub' $P1523 = "89_1277356919.52295" 
-    capture_lex $P1523
-    .const 'Sub' $P1506 = "88_1277356919.52295" 
-    capture_lex $P1506
-    .const 'Sub' $P1486 = "87_1277356919.52295" 
-    capture_lex $P1486
-    .const 'Sub' $P1374 = "84_1277356919.52295" 
-    capture_lex $P1374
-    .const 'Sub' $P1317 = "80_1277356919.52295" 
-    capture_lex $P1317
-    .const 'Sub' $P1277 = "78_1277356919.52295" 
-    capture_lex $P1277
-    .const 'Sub' $P1227 = "76_1277356919.52295" 
-    capture_lex $P1227
-    .const 'Sub' $P1217 = "75_1277356919.52295" 
-    capture_lex $P1217
-    .const 'Sub' $P1207 = "74_1277356919.52295" 
-    capture_lex $P1207
-    .const 'Sub' $P1136 = "72_1277356919.52295" 
-    capture_lex $P1136
-    .const 'Sub' $P1126 = "71_1277356919.52295" 
-    capture_lex $P1126
-    .const 'Sub' $P1109 = "70_1277356919.52295" 
-    capture_lex $P1109
-    .const 'Sub' $P1092 = "69_1277356919.52295" 
-    capture_lex $P1092
-    .const 'Sub' $P1075 = "68_1277356919.52295" 
-    capture_lex $P1075
-    .const 'Sub' $P1065 = "67_1277356919.52295" 
-    capture_lex $P1065
-    .const 'Sub' $P1055 = "66_1277356919.52295" 
-    capture_lex $P1055
-    .const 'Sub' $P1045 = "65_1277356919.52295" 
-    capture_lex $P1045
-    .const 'Sub' $P1021 = "64_1277356919.52295" 
-    capture_lex $P1021
-    .const 'Sub' $P968 = "63_1277356919.52295" 
-    capture_lex $P968
-    .const 'Sub' $P958 = "62_1277356919.52295" 
-    capture_lex $P958
-    .const 'Sub' $P869 = "60_1277356919.52295" 
-    capture_lex $P869
-    .const 'Sub' $P843 = "59_1277356919.52295" 
-    capture_lex $P843
-    .const 'Sub' $P827 = "58_1277356919.52295" 
-    capture_lex $P827
-    .const 'Sub' $P817 = "57_1277356919.52295" 
-    capture_lex $P817
-    .const 'Sub' $P807 = "56_1277356919.52295" 
-    capture_lex $P807
-    .const 'Sub' $P797 = "55_1277356919.52295" 
-    capture_lex $P797
-    .const 'Sub' $P787 = "54_1277356919.52295" 
-    capture_lex $P787
-    .const 'Sub' $P777 = "53_1277356919.52295" 
-    capture_lex $P777
-    .const 'Sub' $P767 = "52_1277356919.52295" 
-    capture_lex $P767
-    .const 'Sub' $P757 = "51_1277356919.52295" 
-    capture_lex $P757
-    .const 'Sub' $P747 = "50_1277356919.52295" 
-    capture_lex $P747
-    .const 'Sub' $P737 = "49_1277356919.52295" 
-    capture_lex $P737
-    .const 'Sub' $P727 = "48_1277356919.52295" 
-    capture_lex $P727
-    .const 'Sub' $P717 = "47_1277356919.52295" 
-    capture_lex $P717
-    .const 'Sub' $P707 = "46_1277356919.52295" 
-    capture_lex $P707
-    .const 'Sub' $P697 = "45_1277356919.52295" 
-    capture_lex $P697
-    .const 'Sub' $P679 = "44_1277356919.52295" 
-    capture_lex $P679
-    .const 'Sub' $P644 = "43_1277356919.52295" 
-    capture_lex $P644
-    .const 'Sub' $P628 = "42_1277356919.52295" 
-    capture_lex $P628
-    .const 'Sub' $P607 = "41_1277356919.52295" 
-    capture_lex $P607
-    .const 'Sub' $P587 = "40_1277356919.52295" 
-    capture_lex $P587
-    .const 'Sub' $P574 = "39_1277356919.52295" 
-    capture_lex $P574
-    .const 'Sub' $P548 = "38_1277356919.52295" 
-    capture_lex $P548
-    .const 'Sub' $P512 = "37_1277356919.52295" 
-    capture_lex $P512
-    .const 'Sub' $P495 = "36_1277356919.52295" 
-    capture_lex $P495
-    .const 'Sub' $P481 = "35_1277356919.52295" 
-    capture_lex $P481
-    .const 'Sub' $P428 = "33_1277356919.52295" 
-    capture_lex $P428
-    .const 'Sub' $P417 = "32_1277356919.52295" 
-    capture_lex $P417
-    .const 'Sub' $P404 = "31_1277356919.52295" 
-    capture_lex $P404
-    .const 'Sub' $P384 = "30_1277356919.52295" 
-    capture_lex $P384
-    .const 'Sub' $P374 = "29_1277356919.52295" 
-    capture_lex $P374
-    .const 'Sub' $P364 = "28_1277356919.52295" 
-    capture_lex $P364
-    .const 'Sub' $P348 = "27_1277356919.52295" 
-    capture_lex $P348
-    .const 'Sub' $P288 = "25_1277356919.52295" 
+    .const 'Sub' $P1788 = "98_1280467483.70067" 
+    capture_lex $P1788
+    .const 'Sub' $P1778 = "97_1280467483.70067" 
+    capture_lex $P1778
+    .const 'Sub' $P1749 = "96_1280467483.70067" 
+    capture_lex $P1749
+    .const 'Sub' $P1707 = "95_1280467483.70067" 
+    capture_lex $P1707
+    .const 'Sub' $P1691 = "94_1280467483.70067" 
+    capture_lex $P1691
+    .const 'Sub' $P1682 = "93_1280467483.70067" 
+    capture_lex $P1682
+    .const 'Sub' $P1650 = "92_1280467483.70067" 
+    capture_lex $P1650
+    .const 'Sub' $P1551 = "89_1280467483.70067" 
+    capture_lex $P1551
+    .const 'Sub' $P1534 = "88_1280467483.70067" 
+    capture_lex $P1534
+    .const 'Sub' $P1514 = "87_1280467483.70067" 
+    capture_lex $P1514
+    .const 'Sub' $P1402 = "84_1280467483.70067" 
+    capture_lex $P1402
+    .const 'Sub' $P1345 = "80_1280467483.70067" 
+    capture_lex $P1345
+    .const 'Sub' $P1300 = "78_1280467483.70067" 
+    capture_lex $P1300
+    .const 'Sub' $P1250 = "76_1280467483.70067" 
+    capture_lex $P1250
+    .const 'Sub' $P1240 = "75_1280467483.70067" 
+    capture_lex $P1240
+    .const 'Sub' $P1230 = "74_1280467483.70067" 
+    capture_lex $P1230
+    .const 'Sub' $P1159 = "72_1280467483.70067" 
+    capture_lex $P1159
+    .const 'Sub' $P1149 = "71_1280467483.70067" 
+    capture_lex $P1149
+    .const 'Sub' $P1132 = "70_1280467483.70067" 
+    capture_lex $P1132
+    .const 'Sub' $P1115 = "69_1280467483.70067" 
+    capture_lex $P1115
+    .const 'Sub' $P1098 = "68_1280467483.70067" 
+    capture_lex $P1098
+    .const 'Sub' $P1088 = "67_1280467483.70067" 
+    capture_lex $P1088
+    .const 'Sub' $P1078 = "66_1280467483.70067" 
+    capture_lex $P1078
+    .const 'Sub' $P1068 = "65_1280467483.70067" 
+    capture_lex $P1068
+    .const 'Sub' $P1044 = "64_1280467483.70067" 
+    capture_lex $P1044
+    .const 'Sub' $P991 = "63_1280467483.70067" 
+    capture_lex $P991
+    .const 'Sub' $P981 = "62_1280467483.70067" 
+    capture_lex $P981
+    .const 'Sub' $P892 = "60_1280467483.70067" 
+    capture_lex $P892
+    .const 'Sub' $P866 = "59_1280467483.70067" 
+    capture_lex $P866
+    .const 'Sub' $P850 = "58_1280467483.70067" 
+    capture_lex $P850
+    .const 'Sub' $P840 = "57_1280467483.70067" 
+    capture_lex $P840
+    .const 'Sub' $P830 = "56_1280467483.70067" 
+    capture_lex $P830
+    .const 'Sub' $P820 = "55_1280467483.70067" 
+    capture_lex $P820
+    .const 'Sub' $P810 = "54_1280467483.70067" 
+    capture_lex $P810
+    .const 'Sub' $P800 = "53_1280467483.70067" 
+    capture_lex $P800
+    .const 'Sub' $P790 = "52_1280467483.70067" 
+    capture_lex $P790
+    .const 'Sub' $P780 = "51_1280467483.70067" 
+    capture_lex $P780
+    .const 'Sub' $P770 = "50_1280467483.70067" 
+    capture_lex $P770
+    .const 'Sub' $P760 = "49_1280467483.70067" 
+    capture_lex $P760
+    .const 'Sub' $P750 = "48_1280467483.70067" 
+    capture_lex $P750
+    .const 'Sub' $P740 = "47_1280467483.70067" 
+    capture_lex $P740
+    .const 'Sub' $P730 = "46_1280467483.70067" 
+    capture_lex $P730
+    .const 'Sub' $P720 = "45_1280467483.70067" 
+    capture_lex $P720
+    .const 'Sub' $P702 = "44_1280467483.70067" 
+    capture_lex $P702
+    .const 'Sub' $P667 = "43_1280467483.70067" 
+    capture_lex $P667
+    .const 'Sub' $P651 = "42_1280467483.70067" 
+    capture_lex $P651
+    .const 'Sub' $P630 = "41_1280467483.70067" 
+    capture_lex $P630
+    .const 'Sub' $P610 = "40_1280467483.70067" 
+    capture_lex $P610
+    .const 'Sub' $P597 = "39_1280467483.70067" 
+    capture_lex $P597
+    .const 'Sub' $P571 = "38_1280467483.70067" 
+    capture_lex $P571
+    .const 'Sub' $P535 = "37_1280467483.70067" 
+    capture_lex $P535
+    .const 'Sub' $P518 = "36_1280467483.70067" 
+    capture_lex $P518
+    .const 'Sub' $P504 = "35_1280467483.70067" 
+    capture_lex $P504
+    .const 'Sub' $P451 = "33_1280467483.70067" 
+    capture_lex $P451
+    .const 'Sub' $P440 = "32_1280467483.70067" 
+    capture_lex $P440
+    .const 'Sub' $P427 = "31_1280467483.70067" 
+    capture_lex $P427
+    .const 'Sub' $P407 = "30_1280467483.70067" 
+    capture_lex $P407
+    .const 'Sub' $P397 = "29_1280467483.70067" 
+    capture_lex $P397
+    .const 'Sub' $P387 = "28_1280467483.70067" 
+    capture_lex $P387
+    .const 'Sub' $P371 = "27_1280467483.70067" 
+    capture_lex $P371
+    .const 'Sub' $P288 = "25_1280467483.70067" 
     capture_lex $P288
-    .const 'Sub' $P245 = "23_1277356919.52295" 
+    .const 'Sub' $P245 = "23_1280467483.70067" 
     capture_lex $P245
-    .const 'Sub' $P213 = "22_1277356919.52295" 
+    .const 'Sub' $P213 = "22_1280467483.70067" 
     capture_lex $P213
-    .const 'Sub' $P180 = "21_1277356919.52295" 
+    .const 'Sub' $P180 = "21_1280467483.70067" 
     capture_lex $P180
-    .const 'Sub' $P170 = "20_1277356919.52295" 
+    .const 'Sub' $P170 = "20_1280467483.70067" 
     capture_lex $P170
-    .const 'Sub' $P151 = "19_1277356919.52295" 
+    .const 'Sub' $P151 = "19_1280467483.70067" 
     capture_lex $P151
-    .const 'Sub' $P100 = "18_1277356919.52295" 
+    .const 'Sub' $P100 = "18_1280467483.70067" 
     capture_lex $P100
-    .const 'Sub' $P84 = "17_1277356919.52295" 
+    .const 'Sub' $P84 = "17_1280467483.70067" 
     capture_lex $P84
-    .const 'Sub' $P63 = "16_1277356919.52295" 
+    .const 'Sub' $P63 = "16_1280467483.70067" 
     capture_lex $P63
-    .const 'Sub' $P27 = "13_1277356919.52295" 
+    .const 'Sub' $P27 = "13_1280467483.70067" 
     capture_lex $P27
-    .const 'Sub' $P16 = "12_1277356919.52295" 
+    .const 'Sub' $P16 = "12_1280467483.70067" 
     capture_lex $P16
     get_global $P15, "@BLOCK"
     unless_null $P15, vivify_147
@@ -17691,27 +18747,27 @@
     set_global "@BLOCK", $P15
   vivify_147:
 .annotate 'line', 9
-    .const 'Sub' $P16 = "12_1277356919.52295" 
+    .const 'Sub' $P16 = "12_1280467483.70067" 
     newclosure $P26, $P16
     .lex "xblock_immediate", $P26
 .annotate 'line', 14
-    .const 'Sub' $P27 = "13_1277356919.52295" 
+    .const 'Sub' $P27 = "13_1280467483.70067" 
     newclosure $P62, $P27
     .lex "block_immediate", $P62
 .annotate 'line', 24
-    .const 'Sub' $P63 = "16_1277356919.52295" 
+    .const 'Sub' $P63 = "16_1280467483.70067" 
     newclosure $P83, $P63
     .lex "vivitype", $P83
 .annotate 'line', 43
-    .const 'Sub' $P84 = "17_1277356919.52295" 
+    .const 'Sub' $P84 = "17_1280467483.70067" 
     newclosure $P99, $P84
     .lex "colonpair_str", $P99
-.annotate 'line', 213
-    .const 'Sub' $P100 = "18_1277356919.52295" 
+.annotate 'line', 223
+    .const 'Sub' $P100 = "18_1280467483.70067" 
     newclosure $P150, $P100
     .lex "push_block_handler", $P150
-.annotate 'line', 822
-    .const 'Sub' $P151 = "19_1277356919.52295" 
+.annotate 'line', 835
+    .const 'Sub' $P151 = "19_1280467483.70067" 
     newclosure $P165, $P151
     .lex "control", $P165
 .annotate 'line', 3
@@ -17728,54 +18784,54 @@
     find_lex $P169, "vivitype"
 .annotate 'line', 35
     find_lex $P212, "colonpair_str"
-.annotate 'line', 206
-    find_lex $P627, "push_block_handler"
-.annotate 'line', 813
-    find_lex $P2270, "control"
-.annotate 'line', 840
-    get_hll_global $P2303, ["NQP";"RegexActions"], "_block2302" 
-    capture_lex $P2303
-    $P2414 = $P2303()
+.annotate 'line', 216
+    find_lex $P650, "push_block_handler"
+.annotate 'line', 826
+    find_lex $P2298, "control"
+.annotate 'line', 853
+    get_hll_global $P2331, ["NQP";"RegexActions"], "_block2330" 
+    capture_lex $P2331
+    $P2442 = $P2331()
 .annotate 'line', 3
-    .return ($P2414)
-    .const 'Sub' $P2416 = "141_1277356919.52295" 
-    .return ($P2416)
+    .return ($P2442)
+    .const 'Sub' $P2444 = "141_1280467483.70067" 
+    .return ($P2444)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "" :load :init :subid("post145") :outer("11_1277356919.52295")
+.sub "" :load :init :subid("post145") :outer("11_1280467483.70067")
 .annotate 'line', 3
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     .local pmc block
     set block, $P14
 .annotate 'line', 5
-    .const 'Sub' $P2420 = "142_1277356919.52295" 
-    capture_lex $P2420
-    $P2420()
-    $P2423 = get_root_global ["parrot"], "P6metaclass"
-    $P2423."new_class"("NQP::RegexActions", "Regex::P6Regex::Actions" :named("parent"))
+    .const 'Sub' $P2448 = "142_1280467483.70067" 
+    capture_lex $P2448
+    $P2448()
+    $P2451 = get_root_global ["parrot"], "P6metaclass"
+    $P2451."new_class"("NQP::RegexActions", "Regex::P6Regex::Actions" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2419"  :anon :subid("142_1277356919.52295") :outer("11_1277356919.52295")
+.sub "_block2447"  :anon :subid("142_1280467483.70067") :outer("11_1280467483.70067")
 .annotate 'line', 6
-    get_global $P2421, "@BLOCK"
-    unless_null $P2421, vivify_146
-    $P2421 = root_new ['parrot';'ResizablePMCArray']
-    set_global "@BLOCK", $P2421
+    get_global $P2449, "@BLOCK"
+    unless_null $P2449, vivify_146
+    $P2449 = root_new ['parrot';'ResizablePMCArray']
+    set_global "@BLOCK", $P2449
   vivify_146:
- $P2422 = new ['ResizablePMCArray'] 
-    set_global "@BLOCK", $P2422
+ $P2450 = new ['ResizablePMCArray'] 
+    set_global "@BLOCK", $P2450
 .annotate 'line', 5
-    .return ($P2422)
+    .return ($P2450)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "xblock_immediate"  :subid("12_1277356919.52295") :outer("11_1277356919.52295")
+.sub "xblock_immediate"  :subid("12_1280467483.70067") :outer("11_1280467483.70067")
     .param pmc param_19
 .annotate 'line', 9
     new $P18, 'ExceptionHandler'
@@ -17812,10 +18868,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "block_immediate"  :subid("13_1277356919.52295") :outer("11_1277356919.52295")
+.sub "block_immediate"  :subid("13_1280467483.70067") :outer("11_1280467483.70067")
     .param pmc param_30
 .annotate 'line', 14
-    .const 'Sub' $P40 = "14_1277356919.52295" 
+    .const 'Sub' $P40 = "14_1280467483.70067" 
     capture_lex $P40
     new $P29, 'ExceptionHandler'
     set_addr $P29, control_28
@@ -17837,7 +18893,7 @@
     set $P33, $P38
   unless_34_end:
     if $P33, unless_32_end
-    .const 'Sub' $P40 = "14_1277356919.52295" 
+    .const 'Sub' $P40 = "14_1280467483.70067" 
     capture_lex $P40
     $P40()
   unless_32_end:
@@ -17854,9 +18910,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block39"  :anon :subid("14_1277356919.52295") :outer("13_1277356919.52295")
+.sub "_block39"  :anon :subid("14_1280467483.70067") :outer("13_1280467483.70067")
 .annotate 'line', 16
-    .const 'Sub' $P51 = "15_1277356919.52295" 
+    .const 'Sub' $P51 = "15_1280467483.70067" 
     capture_lex $P51
 .annotate 'line', 17
     new $P41, "Undef"
@@ -17879,7 +18935,7 @@
     unless $P45, loop56_done
     shift $P49, $P45
   loop56_redo:
-    .const 'Sub' $P51 = "15_1277356919.52295" 
+    .const 'Sub' $P51 = "15_1280467483.70067" 
     capture_lex $P51
     $P51($P49)
   loop56_next:
@@ -17902,7 +18958,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block50"  :anon :subid("15_1277356919.52295") :outer("14_1277356919.52295")
+.sub "_block50"  :anon :subid("15_1280467483.70067") :outer("14_1280467483.70067")
     .param pmc param_52
 .annotate 'line', 18
     .lex "$_", param_52
@@ -17915,7 +18971,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "vivitype"  :subid("16_1277356919.52295") :outer("11_1277356919.52295")
+.sub "vivitype"  :subid("16_1280467483.70067") :outer("11_1280467483.70067")
     .param pmc param_66
 .annotate 'line', 24
     new $P65, 'ExceptionHandler'
@@ -17964,7 +19020,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "colonpair_str"  :subid("17_1277356919.52295") :outer("11_1277356919.52295")
+.sub "colonpair_str"  :subid("17_1280467483.70067") :outer("11_1280467483.70067")
     .param pmc param_87
 .annotate 'line', 43
     new $P86, 'ExceptionHandler'
@@ -18003,17 +19059,17 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "push_block_handler"  :subid("18_1277356919.52295") :outer("11_1277356919.52295")
+.sub "push_block_handler"  :subid("18_1280467483.70067") :outer("11_1280467483.70067")
     .param pmc param_103
     .param pmc param_104
-.annotate 'line', 213
+.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', 214
+.annotate 'line', 224
     get_global $P106, "@BLOCK"
     unless_null $P106, vivify_152
     $P106 = root_new ['parrot';'ResizablePMCArray']
@@ -18024,7 +19080,7 @@
   vivify_153:
     $P108 = $P107."handlers"()
     if $P108, unless_105_end
-.annotate 'line', 215
+.annotate 'line', 225
     get_global $P109, "@BLOCK"
     unless_null $P109, vivify_154
     $P109 = root_new ['parrot';'ResizablePMCArray']
@@ -18036,42 +19092,42 @@
     new $P111, "ResizablePMCArray"
     $P110."handlers"($P111)
   unless_105_end:
-.annotate 'line', 217
+.annotate 'line', 227
     find_lex $P113, "$block"
     $P114 = $P113."arity"()
     if $P114, unless_112_end
-.annotate 'line', 218
+.annotate 'line', 228
     find_lex $P115, "$block"
-.annotate 'line', 219
+.annotate 'line', 229
     get_hll_global $P116, ["PAST"], "Op"
-.annotate 'line', 220
+.annotate 'line', 230
     get_hll_global $P117, ["PAST"], "Var"
     $P118 = $P117."new"("lexical" :named("scope"), "$!" :named("name"), 1 :named("isdecl"))
-.annotate 'line', 221
+.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', 219
+.annotate 'line', 229
     $P115."unshift"($P121)
-.annotate 'line', 224
+.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', 225
+.annotate 'line', 235
     find_lex $P125, "$block"
     $P125."symbol"("$_", "lexical" :named("scope"))
-.annotate 'line', 226
+.annotate 'line', 236
     find_lex $P126, "$block"
     $P126."symbol"("$!", "lexical" :named("scope"))
-.annotate 'line', 227
+.annotate 'line', 237
     find_lex $P127, "$block"
     $P127."arity"(1)
   unless_112_end:
-.annotate 'line', 229
+.annotate 'line', 239
     find_lex $P128, "$block"
     $P128."blocktype"("declaration")
-.annotate 'line', 230
+.annotate 'line', 240
     get_global $P129, "@BLOCK"
     unless_null $P129, vivify_156
     $P129 = root_new ['parrot';'ResizablePMCArray']
@@ -18081,35 +19137,35 @@
     new $P130, "Undef"
   vivify_157:
     $P131 = $P130."handlers"()
-.annotate 'line', 231
+.annotate 'line', 241
     get_hll_global $P132, ["PAST"], "Control"
     find_lex $P133, "$/"
-.annotate 'line', 233
+.annotate 'line', 243
     get_hll_global $P134, ["PAST"], "Stmts"
-.annotate 'line', 234
+.annotate 'line', 244
     get_hll_global $P135, ["PAST"], "Op"
     find_lex $P136, "$block"
-.annotate 'line', 236
+.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', 238
+.annotate 'line', 248
     get_hll_global $P140, ["PAST"], "Op"
-.annotate 'line', 239
+.annotate 'line', 249
     get_hll_global $P141, ["PAST"], "Var"
-.annotate 'line', 240
+.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', 239
+.annotate 'line', 249
     $P145 = $P140."new"($P144, 1, "bind" :named("pasttype"))
-.annotate 'line', 238
+.annotate 'line', 248
     $P146 = $P134."new"($P139, $P145)
-.annotate 'line', 233
+.annotate 'line', 243
     $P147 = $P132."new"($P146, $P133 :named("node"))
-.annotate 'line', 231
+.annotate 'line', 241
     $P148 = $P131."unshift"($P147)
-.annotate 'line', 213
+.annotate 'line', 223
     .return ($P148)
   control_101:
     .local pmc exception 
@@ -18121,28 +19177,28 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "control"  :subid("19_1277356919.52295") :outer("11_1277356919.52295")
+.sub "control"  :subid("19_1280467483.70067") :outer("11_1280467483.70067")
     .param pmc param_154
     .param pmc param_155
-.annotate 'line', 822
+.annotate 'line', 835
     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', 823
+.annotate 'line', 836
     find_lex $P156, "$/"
     get_hll_global $P157, ["PAST"], "Op"
     find_lex $P158, "$/"
-.annotate 'line', 827
+.annotate 'line', 840
     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', 823
+.annotate 'line', 836
     $P163 = $P156."!make"($P162)
-.annotate 'line', 822
+.annotate 'line', 835
     .return ($P163)
   control_152:
     .local pmc exception 
@@ -18154,7 +19210,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("20_1277356919.52295") :method :outer("11_1277356919.52295")
+.sub "TOP"  :subid("20_1280467483.70067") :method :outer("11_1280467483.70067")
     .param pmc param_173
 .annotate 'line', 33
     new $P172, 'ExceptionHandler'
@@ -18185,7 +19241,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "deflongname"  :subid("21_1277356919.52295") :method :outer("11_1277356919.52295")
+.sub "deflongname"  :subid("21_1280467483.70067") :method :outer("11_1280467483.70067")
     .param pmc param_183
 .annotate 'line', 35
     new $P182, 'ExceptionHandler'
@@ -18275,7 +19331,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "comp_unit"  :subid("22_1277356919.52295") :method :outer("11_1277356919.52295")
+.sub "comp_unit"  :subid("22_1280467483.70067") :method :outer("11_1280467483.70067")
     .param pmc param_216
 .annotate 'line', 49
     new $P215, 'ExceptionHandler'
@@ -18350,10 +19406,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statementlist"  :subid("23_1277356919.52295") :method :outer("11_1277356919.52295")
+.sub "statementlist"  :subid("23_1280467483.70067") :method :outer("11_1280467483.70067")
     .param pmc param_248
 .annotate 'line', 76
-    .const 'Sub' $P262 = "24_1277356919.52295" 
+    .const 'Sub' $P262 = "24_1280467483.70067" 
     capture_lex $P262
     new $P247, 'ExceptionHandler'
     set_addr $P247, control_246
@@ -18398,7 +19454,7 @@
     unless $P256, loop281_done
     shift $P260, $P256
   loop281_redo:
-    .const 'Sub' $P262 = "24_1277356919.52295" 
+    .const 'Sub' $P262 = "24_1280467483.70067" 
     capture_lex $P262
     $P262($P260)
   loop281_next:
@@ -18428,7 +19484,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block261"  :anon :subid("24_1277356919.52295") :outer("23_1277356919.52295")
+.sub "_block261"  :anon :subid("24_1280467483.70067") :outer("23_1280467483.70067")
     .param pmc param_264
 .annotate 'line', 80
     new $P263, "Undef"
@@ -18483,12 +19539,12 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement"  :subid("25_1277356919.52295") :method :outer("11_1277356919.52295")
+.sub "statement"  :subid("25_1280467483.70067") :method :outer("11_1280467483.70067")
     .param pmc param_291
     .param pmc param_292 :optional
     .param int has_param_292 :opt_flag
 .annotate 'line', 89
-    .const 'Sub' $P300 = "26_1277356919.52295" 
+    .const 'Sub' $P300 = "26_1280467483.70067" 
     capture_lex $P300
     new $P290, 'ExceptionHandler'
     set_addr $P290, control_289
@@ -18516,57 +19572,57 @@
     new $P298, "Undef"
   vivify_185:
     if $P298, if_296
-.annotate 'line', 102
-    find_lex $P338, "$/"
-    unless_null $P338, vivify_186
-    $P338 = root_new ['parrot';'Hash']
+.annotate 'line', 112
+    find_lex $P361, "$/"
+    unless_null $P361, vivify_186
+    $P361 = root_new ['parrot';'Hash']
   vivify_186:
-    set $P339, $P338["statement_control"]
-    unless_null $P339, vivify_187
-    new $P339, "Undef"
+    set $P362, $P361["statement_control"]
+    unless_null $P362, vivify_187
+    new $P362, "Undef"
   vivify_187:
-    if $P339, if_337
-.annotate 'line', 103
-    new $P343, "Integer"
-    assign $P343, 0
-    store_lex "$past", $P343
-    goto if_337_end
-  if_337:
-.annotate 'line', 102
-    find_lex $P340, "$/"
-    unless_null $P340, vivify_188
-    $P340 = root_new ['parrot';'Hash']
+    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
+    $P363 = root_new ['parrot';'Hash']
   vivify_188:
-    set $P341, $P340["statement_control"]
-    unless_null $P341, vivify_189
-    new $P341, "Undef"
+    set $P364, $P363["statement_control"]
+    unless_null $P364, vivify_189
+    new $P364, "Undef"
   vivify_189:
-    $P342 = $P341."ast"()
-    store_lex "$past", $P342
-  if_337_end:
+    $P365 = $P364."ast"()
+    store_lex "$past", $P365
+  if_360_end:
     goto if_296_end
   if_296:
 .annotate 'line', 91
-    .const 'Sub' $P300 = "26_1277356919.52295" 
+    .const 'Sub' $P300 = "26_1280467483.70067" 
     capture_lex $P300
     $P300()
   if_296_end:
-.annotate 'line', 104
-    find_lex $P344, "$/"
-    find_lex $P345, "$past"
-    $P346 = $P344."!make"($P345)
+.annotate 'line', 114
+    find_lex $P367, "$/"
+    find_lex $P368, "$past"
+    $P369 = $P367."!make"($P368)
 .annotate 'line', 89
-    .return ($P346)
+    .return ($P369)
   control_289:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P347, exception, "payload"
-    .return ($P347)
+    getattribute $P370, exception, "payload"
+    .return ($P370)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block299"  :anon :subid("26_1277356919.52295") :outer("25_1277356919.52295")
+.sub "_block299"  :anon :subid("26_1280467483.70067") :outer("25_1280467483.70067")
 .annotate 'line', 92
     new $P301, "Undef"
     .lex "$mc", $P301
@@ -18647,31 +19703,90 @@
     goto if_325_end
   if_325:
 .annotate 'line', 99
-    get_hll_global $P327, ["PAST"], "Op"
-    find_lex $P328, "$ml"
-    unless_null $P328, vivify_202
-    $P328 = root_new ['parrot';'Hash']
+    find_lex $P329, "$ml"
+    unless_null $P329, vivify_202
+    $P329 = root_new ['parrot';'Hash']
   vivify_202:
-    set $P329, $P328["cond"]
-    unless_null $P329, vivify_203
-    new $P329, "Undef"
+    set $P330, $P329["sym"]
+    unless_null $P330, vivify_203
+    new $P330, "Undef"
   vivify_203:
-    $P330 = $P329."ast"()
-    find_lex $P331, "$past"
-    find_lex $P332, "$ml"
-    unless_null $P332, vivify_204
-    $P332 = root_new ['parrot';'Hash']
+    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
+    $P351 = root_new ['parrot';'Hash']
   vivify_204:
-    set $P333, $P332["sym"]
-    unless_null $P333, vivify_205
-    new $P333, "Undef"
+    set $P352, $P351["cond"]
+    unless_null $P352, vivify_205
+    new $P352, "Undef"
   vivify_205:
-    set $S334, $P333
-    find_lex $P335, "$/"
-    $P336 = $P327."new"($P330, $P331, $S334 :named("pasttype"), $P335 :named("node"))
-    store_lex "$past", $P336
+    $P353 = $P352."ast"()
+    find_lex $P354, "$past"
+    find_lex $P355, "$ml"
+    unless_null $P355, vivify_206
+    $P355 = root_new ['parrot';'Hash']
+  vivify_206:
+    set $P356, $P355["sym"]
+    unless_null $P356, vivify_207
+    new $P356, "Undef"
+  vivify_207:
+    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
+    $P341 = root_new ['parrot';'Hash']
+  vivify_208:
+    set $P342, $P341["cond"]
+    unless_null $P342, vivify_209
+    new $P342, "Undef"
+  vivify_209:
+    $P343 = $P342."ast"()
+    find_lex $P344, "$past"
+    find_lex $P345, "$ml"
+    unless_null $P345, vivify_210
+    $P345 = root_new ['parrot';'Hash']
+  vivify_210:
+    set $P346, $P345["sym"]
+    unless_null $P346, vivify_211
+    new $P346, "Undef"
+  vivify_211:
+    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, $P336
+    set $P324, $P327
   if_325_end:
 .annotate 'line', 91
     .return ($P324)
@@ -18680,3033 +19795,2966 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "xblock"  :subid("27_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_351
-.annotate 'line', 107
-    new $P350, 'ExceptionHandler'
-    set_addr $P350, control_349
-    $P350."handle_types"(.CONTROL_RETURN)
-    push_eh $P350
-    .lex "self", self
-    .lex "$/", param_351
-.annotate 'line', 108
-    find_lex $P352, "$/"
-    get_hll_global $P353, ["PAST"], "Op"
-    find_lex $P354, "$/"
-    unless_null $P354, vivify_206
-    $P354 = root_new ['parrot';'Hash']
-  vivify_206:
-    set $P355, $P354["EXPR"]
-    unless_null $P355, vivify_207
-    new $P355, "Undef"
-  vivify_207:
-    $P356 = $P355."ast"()
-    find_lex $P357, "$/"
-    unless_null $P357, vivify_208
-    $P357 = root_new ['parrot';'Hash']
-  vivify_208:
-    set $P358, $P357["pblock"]
-    unless_null $P358, vivify_209
-    new $P358, "Undef"
-  vivify_209:
-    $P359 = $P358."ast"()
-    find_lex $P360, "$/"
-    $P361 = $P353."new"($P356, $P359, "if" :named("pasttype"), $P360 :named("node"))
-    $P362 = $P352."!make"($P361)
-.annotate 'line', 107
-    .return ($P362)
-  control_349:
+.sub "xblock"  :subid("27_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_374
+.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
+    $P377 = root_new ['parrot';'Hash']
+  vivify_212:
+    set $P378, $P377["EXPR"]
+    unless_null $P378, vivify_213
+    new $P378, "Undef"
+  vivify_213:
+    $P379 = $P378."ast"()
+    find_lex $P380, "$/"
+    unless_null $P380, vivify_214
+    $P380 = root_new ['parrot';'Hash']
+  vivify_214:
+    set $P381, $P380["pblock"]
+    unless_null $P381, vivify_215
+    new $P381, "Undef"
+  vivify_215:
+    $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 
     .get_results (exception) 
-    getattribute $P363, exception, "payload"
-    .return ($P363)
+    getattribute $P386, exception, "payload"
+    .return ($P386)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "pblock"  :subid("28_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_367
-.annotate 'line', 111
-    new $P366, 'ExceptionHandler'
-    set_addr $P366, control_365
-    $P366."handle_types"(.CONTROL_RETURN)
-    push_eh $P366
+.sub "pblock"  :subid("28_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_390
+.annotate 'line', 121
+    new $P389, 'ExceptionHandler'
+    set_addr $P389, control_388
+    $P389."handle_types"(.CONTROL_RETURN)
+    push_eh $P389
     .lex "self", self
-    .lex "$/", param_367
-.annotate 'line', 112
-    find_lex $P368, "$/"
-    find_lex $P369, "$/"
-    unless_null $P369, vivify_210
-    $P369 = root_new ['parrot';'Hash']
-  vivify_210:
-    set $P370, $P369["blockoid"]
-    unless_null $P370, vivify_211
-    new $P370, "Undef"
-  vivify_211:
-    $P371 = $P370."ast"()
-    $P372 = $P368."!make"($P371)
-.annotate 'line', 111
-    .return ($P372)
-  control_365:
+    .lex "$/", param_390
+.annotate 'line', 122
+    find_lex $P391, "$/"
+    find_lex $P392, "$/"
+    unless_null $P392, vivify_216
+    $P392 = root_new ['parrot';'Hash']
+  vivify_216:
+    set $P393, $P392["blockoid"]
+    unless_null $P393, vivify_217
+    new $P393, "Undef"
+  vivify_217:
+    $P394 = $P393."ast"()
+    $P395 = $P391."!make"($P394)
+.annotate 'line', 121
+    .return ($P395)
+  control_388:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P373, exception, "payload"
-    .return ($P373)
+    getattribute $P396, exception, "payload"
+    .return ($P396)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "block"  :subid("29_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_377
-.annotate 'line', 115
-    new $P376, 'ExceptionHandler'
-    set_addr $P376, control_375
-    $P376."handle_types"(.CONTROL_RETURN)
-    push_eh $P376
+.sub "block"  :subid("29_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_400
+.annotate 'line', 125
+    new $P399, 'ExceptionHandler'
+    set_addr $P399, control_398
+    $P399."handle_types"(.CONTROL_RETURN)
+    push_eh $P399
     .lex "self", self
-    .lex "$/", param_377
-.annotate 'line', 116
-    find_lex $P378, "$/"
-    find_lex $P379, "$/"
-    unless_null $P379, vivify_212
-    $P379 = root_new ['parrot';'Hash']
-  vivify_212:
-    set $P380, $P379["blockoid"]
-    unless_null $P380, vivify_213
-    new $P380, "Undef"
-  vivify_213:
-    $P381 = $P380."ast"()
-    $P382 = $P378."!make"($P381)
-.annotate 'line', 115
-    .return ($P382)
-  control_375:
+    .lex "$/", param_400
+.annotate 'line', 126
+    find_lex $P401, "$/"
+    find_lex $P402, "$/"
+    unless_null $P402, vivify_218
+    $P402 = root_new ['parrot';'Hash']
+  vivify_218:
+    set $P403, $P402["blockoid"]
+    unless_null $P403, vivify_219
+    new $P403, "Undef"
+  vivify_219:
+    $P404 = $P403."ast"()
+    $P405 = $P401."!make"($P404)
+.annotate 'line', 125
+    .return ($P405)
+  control_398:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P383, exception, "payload"
-    .return ($P383)
+    getattribute $P406, exception, "payload"
+    .return ($P406)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "blockoid"  :subid("30_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_387
-.annotate 'line', 119
-    new $P386, 'ExceptionHandler'
-    set_addr $P386, control_385
-    $P386."handle_types"(.CONTROL_RETURN)
-    push_eh $P386
+.sub "blockoid"  :subid("30_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_410
+.annotate 'line', 129
+    new $P409, 'ExceptionHandler'
+    set_addr $P409, control_408
+    $P409."handle_types"(.CONTROL_RETURN)
+    push_eh $P409
     .lex "self", self
-    .lex "$/", param_387
-.annotate 'line', 120
-    new $P388, "Undef"
-    .lex "$past", $P388
-.annotate 'line', 121
-    new $P389, "Undef"
-    .lex "$BLOCK", $P389
-.annotate 'line', 120
-    find_lex $P390, "$/"
-    unless_null $P390, vivify_214
-    $P390 = root_new ['parrot';'Hash']
-  vivify_214:
-    set $P391, $P390["statementlist"]
-    unless_null $P391, vivify_215
-    new $P391, "Undef"
-  vivify_215:
-    $P392 = $P391."ast"()
-    store_lex "$past", $P392
-.annotate 'line', 121
-    get_global $P393, "@BLOCK"
-    $P394 = $P393."shift"()
-    store_lex "$BLOCK", $P394
-.annotate 'line', 122
-    find_lex $P395, "$BLOCK"
-    find_lex $P396, "$past"
-    $P395."push"($P396)
-.annotate 'line', 123
-    find_lex $P397, "$BLOCK"
-    find_lex $P398, "$/"
-    $P397."node"($P398)
-.annotate 'line', 124
-    find_lex $P399, "$BLOCK"
-    $P399."closure"(1)
-.annotate 'line', 125
-    find_lex $P400, "$/"
-    find_lex $P401, "$BLOCK"
-    $P402 = $P400."!make"($P401)
-.annotate 'line', 119
-    .return ($P402)
-  control_385:
+    .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
+    $P413 = root_new ['parrot';'Hash']
+  vivify_220:
+    set $P414, $P413["statementlist"]
+    unless_null $P414, vivify_221
+    new $P414, "Undef"
+  vivify_221:
+    $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 
     .get_results (exception) 
-    getattribute $P403, exception, "payload"
-    .return ($P403)
+    getattribute $P426, exception, "payload"
+    .return ($P426)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "newpad"  :subid("31_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_407
-.annotate 'line', 128
-    new $P406, 'ExceptionHandler'
-    set_addr $P406, control_405
-    $P406."handle_types"(.CONTROL_RETURN)
-    push_eh $P406
+.sub "newpad"  :subid("31_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_430
+.annotate 'line', 138
+    new $P429, 'ExceptionHandler'
+    set_addr $P429, control_428
+    $P429."handle_types"(.CONTROL_RETURN)
+    push_eh $P429
     .lex "self", self
-    .lex "$/", param_407
-.annotate 'line', 129
-    get_global $P408, "@BLOCK"
-    unless_null $P408, vivify_216
-    $P408 = root_new ['parrot';'ResizablePMCArray']
-    set_global "@BLOCK", $P408
-  vivify_216:
-.annotate 'line', 128
-    get_global $P409, "@BLOCK"
-.annotate 'line', 130
-    get_global $P410, "@BLOCK"
-    get_hll_global $P411, ["PAST"], "Block"
-    get_hll_global $P412, ["PAST"], "Stmts"
-    $P413 = $P412."new"()
-    $P414 = $P411."new"($P413)
-    $P415 = $P410."unshift"($P414)
-.annotate 'line', 128
-    .return ($P415)
-  control_405:
+    .lex "$/", param_430
+.annotate 'line', 139
+    get_global $P431, "@BLOCK"
+    unless_null $P431, vivify_222
+    $P431 = root_new ['parrot';'ResizablePMCArray']
+    set_global "@BLOCK", $P431
+  vivify_222:
+.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 
     .get_results (exception) 
-    getattribute $P416, exception, "payload"
-    .return ($P416)
+    getattribute $P439, exception, "payload"
+    .return ($P439)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "outerctx"  :subid("32_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_420
-.annotate 'line', 133
-    new $P419, 'ExceptionHandler'
-    set_addr $P419, control_418
-    $P419."handle_types"(.CONTROL_RETURN)
-    push_eh $P419
+.sub "outerctx"  :subid("32_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_443
+.annotate 'line', 143
+    new $P442, 'ExceptionHandler'
+    set_addr $P442, control_441
+    $P442."handle_types"(.CONTROL_RETURN)
+    push_eh $P442
     .lex "self", self
-    .lex "$/", param_420
-.annotate 'line', 134
-    get_global $P421, "@BLOCK"
-    unless_null $P421, vivify_217
-    $P421 = root_new ['parrot';'ResizablePMCArray']
-    set_global "@BLOCK", $P421
-  vivify_217:
-.annotate 'line', 133
-    get_global $P422, "@BLOCK"
-.annotate 'line', 135
-    find_lex $P423, "self"
-    get_global $P424, "@BLOCK"
-    unless_null $P424, vivify_218
-    $P424 = root_new ['parrot';'ResizablePMCArray']
-  vivify_218:
-    set $P425, $P424[0]
-    unless_null $P425, vivify_219
-    new $P425, "Undef"
-  vivify_219:
-    $P426 = $P423."SET_BLOCK_OUTER_CTX"($P425)
-.annotate 'line', 133
-    .return ($P426)
-  control_418:
+    .lex "$/", param_443
+.annotate 'line', 144
+    get_global $P444, "@BLOCK"
+    unless_null $P444, vivify_223
+    $P444 = root_new ['parrot';'ResizablePMCArray']
+    set_global "@BLOCK", $P444
+  vivify_223:
+.annotate 'line', 143
+    get_global $P445, "@BLOCK"
+.annotate 'line', 145
+    find_lex $P446, "self"
+    get_global $P447, "@BLOCK"
+    unless_null $P447, vivify_224
+    $P447 = root_new ['parrot';'ResizablePMCArray']
+  vivify_224:
+    set $P448, $P447[0]
+    unless_null $P448, vivify_225
+    new $P448, "Undef"
+  vivify_225:
+    $P449 = $P446."SET_BLOCK_OUTER_CTX"($P448)
+.annotate 'line', 143
+    .return ($P449)
+  control_441:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P427, exception, "payload"
-    .return ($P427)
+    getattribute $P450, exception, "payload"
+    .return ($P450)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<if>"  :subid("33_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_431
-.annotate 'line', 140
-    .const 'Sub' $P459 = "34_1277356919.52295" 
-    capture_lex $P459
-    new $P430, 'ExceptionHandler'
-    set_addr $P430, control_429
-    $P430."handle_types"(.CONTROL_RETURN)
-    push_eh $P430
+.sub "statement_control:sym<if>"  :subid("33_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_454
+.annotate 'line', 150
+    .const 'Sub' $P482 = "34_1280467483.70067" 
+    capture_lex $P482
+    new $P453, 'ExceptionHandler'
+    set_addr $P453, control_452
+    $P453."handle_types"(.CONTROL_RETURN)
+    push_eh $P453
     .lex "self", self
-    .lex "$/", param_431
-.annotate 'line', 141
-    new $P432, "Undef"
-    .lex "$count", $P432
-.annotate 'line', 142
-    new $P433, "Undef"
-    .lex "$past", $P433
-.annotate 'line', 141
-    find_lex $P434, "$/"
-    unless_null $P434, vivify_220
-    $P434 = root_new ['parrot';'Hash']
-  vivify_220:
-    set $P435, $P434["xblock"]
-    unless_null $P435, vivify_221
-    new $P435, "Undef"
-  vivify_221:
-    set $N436, $P435
-    new $P437, 'Float'
-    set $P437, $N436
-    sub $P438, $P437, 1
-    store_lex "$count", $P438
-.annotate 'line', 142
-    find_lex $P439, "$count"
-    set $I440, $P439
-    find_lex $P441, "$/"
-    unless_null $P441, vivify_222
-    $P441 = root_new ['parrot';'Hash']
-  vivify_222:
-    set $P442, $P441["xblock"]
-    unless_null $P442, vivify_223
-    $P442 = root_new ['parrot';'ResizablePMCArray']
-  vivify_223:
-    set $P443, $P442[$I440]
-    unless_null $P443, vivify_224
-    new $P443, "Undef"
-  vivify_224:
-    $P444 = $P443."ast"()
-    $P445 = "xblock_immediate"($P444)
-    store_lex "$past", $P445
-.annotate 'line', 143
-    find_lex $P447, "$/"
-    unless_null $P447, vivify_225
-    $P447 = root_new ['parrot';'Hash']
-  vivify_225:
-    set $P448, $P447["else"]
-    unless_null $P448, vivify_226
-    new $P448, "Undef"
+    .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
+    $P457 = root_new ['parrot';'Hash']
   vivify_226:
-    unless $P448, if_446_end
-.annotate 'line', 144
-    find_lex $P449, "$past"
-    find_lex $P450, "$/"
-    unless_null $P450, vivify_227
-    $P450 = root_new ['parrot';'Hash']
+    set $P458, $P457["xblock"]
+    unless_null $P458, vivify_227
+    new $P458, "Undef"
   vivify_227:
-    set $P451, $P450["else"]
-    unless_null $P451, vivify_228
-    $P451 = root_new ['parrot';'ResizablePMCArray']
+    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
+    $P464 = root_new ['parrot';'Hash']
   vivify_228:
-    set $P452, $P451[0]
-    unless_null $P452, vivify_229
-    new $P452, "Undef"
+    set $P465, $P464["xblock"]
+    unless_null $P465, vivify_229
+    $P465 = root_new ['parrot';'ResizablePMCArray']
   vivify_229:
-    $P453 = $P452."ast"()
-    $P454 = "block_immediate"($P453)
-    $P449."push"($P454)
-  if_446_end:
-.annotate 'line', 147
-    new $P475, 'ExceptionHandler'
-    set_addr $P475, loop474_handler
-    $P475."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P475
-  loop474_test:
-    find_lex $P455, "$count"
-    set $N456, $P455
-    isgt $I457, $N456, 0.0
-    unless $I457, loop474_done
-  loop474_redo:
-    .const 'Sub' $P459 = "34_1277356919.52295" 
-    capture_lex $P459
-    $P459()
-  loop474_next:
-    goto loop474_test
-  loop474_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P476, exception, 'type'
-    eq $P476, .CONTROL_LOOP_NEXT, loop474_next
-    eq $P476, .CONTROL_LOOP_REDO, loop474_redo
-  loop474_done:
-    pop_eh 
-.annotate 'line', 153
-    find_lex $P477, "$/"
-    find_lex $P478, "$past"
-    $P479 = $P477."!make"($P478)
-.annotate 'line', 140
-    .return ($P479)
-  control_429:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P480, exception, "payload"
-    .return ($P480)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "_block458"  :anon :subid("34_1277356919.52295") :outer("33_1277356919.52295")
-.annotate 'line', 149
-    new $P460, "Undef"
-    .lex "$else", $P460
-.annotate 'line', 147
-    find_lex $P461, "$count"
-    clone $P462, $P461
-    dec $P461
-.annotate 'line', 149
-    find_lex $P463, "$past"
-    store_lex "$else", $P463
-.annotate 'line', 150
-    find_lex $P464, "$count"
-    set $I465, $P464
-    find_lex $P466, "$/"
+    set $P466, $P465[$I463]
     unless_null $P466, vivify_230
-    $P466 = root_new ['parrot';'Hash']
+    new $P466, "Undef"
   vivify_230:
-    set $P467, $P466["xblock"]
-    unless_null $P467, vivify_231
-    $P467 = root_new ['parrot';'ResizablePMCArray']
+    $P467 = $P466."ast"()
+    $P468 = "xblock_immediate"($P467)
+    store_lex "$past", $P468
+.annotate 'line', 153
+    find_lex $P470, "$/"
+    unless_null $P470, vivify_231
+    $P470 = root_new ['parrot';'Hash']
   vivify_231:
-    set $P468, $P467[$I465]
-    unless_null $P468, vivify_232
-    new $P468, "Undef"
+    set $P471, $P470["else"]
+    unless_null $P471, vivify_232
+    new $P471, "Undef"
   vivify_232:
-    $P469 = $P468."ast"()
-    $P470 = "xblock_immediate"($P469)
-    store_lex "$past", $P470
-.annotate 'line', 151
-    find_lex $P471, "$past"
-    find_lex $P472, "$else"
-    $P473 = $P471."push"($P472)
-.annotate 'line', 147
-    .return ($P473)
+    unless $P471, if_469_end
+.annotate 'line', 154
+    find_lex $P472, "$past"
+    find_lex $P473, "$/"
+    unless_null $P473, vivify_233
+    $P473 = root_new ['parrot';'Hash']
+  vivify_233:
+    set $P474, $P473["else"]
+    unless_null $P474, vivify_234
+    $P474 = root_new ['parrot';'ResizablePMCArray']
+  vivify_234:
+    set $P475, $P474[0]
+    unless_null $P475, vivify_235
+    new $P475, "Undef"
+  vivify_235:
+    $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)
+    push_eh $P498
+  loop497_test:
+    find_lex $P478, "$count"
+    set $N479, $P478
+    isgt $I480, $N479, 0.0
+    unless $I480, loop497_done
+  loop497_redo:
+    .const 'Sub' $P482 = "34_1280467483.70067" 
+    capture_lex $P482
+    $P482()
+  loop497_next:
+    goto loop497_test
+  loop497_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P499, exception, 'type'
+    eq $P499, .CONTROL_LOOP_NEXT, loop497_next
+    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 
+    .get_results (exception) 
+    getattribute $P503, exception, "payload"
+    .return ($P503)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "statement_control:sym<unless>"  :subid("35_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_484
-.annotate 'line', 156
-    new $P483, 'ExceptionHandler'
-    set_addr $P483, control_482
-    $P483."handle_types"(.CONTROL_RETURN)
-    push_eh $P483
-    .lex "self", self
-    .lex "$/", param_484
+.sub "_block481"  :anon :subid("34_1280467483.70067") :outer("33_1280467483.70067")
+.annotate 'line', 159
+    new $P483, "Undef"
+    .lex "$else", $P483
 .annotate 'line', 157
-    new $P485, "Undef"
-    .lex "$past", $P485
-    find_lex $P486, "$/"
-    unless_null $P486, vivify_233
-    $P486 = root_new ['parrot';'Hash']
-  vivify_233:
-    set $P487, $P486["xblock"]
-    unless_null $P487, vivify_234
-    new $P487, "Undef"
-  vivify_234:
-    $P488 = $P487."ast"()
-    $P489 = "xblock_immediate"($P488)
-    store_lex "$past", $P489
-.annotate 'line', 158
-    find_lex $P490, "$past"
-    $P490."pasttype"("unless")
+    find_lex $P484, "$count"
+    clone $P485, $P484
+    dec $P484
 .annotate 'line', 159
-    find_lex $P491, "$/"
-    find_lex $P492, "$past"
-    $P493 = $P491."!make"($P492)
-.annotate 'line', 156
-    .return ($P493)
-  control_482:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P494, exception, "payload"
-    .return ($P494)
+    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
+    $P489 = root_new ['parrot';'Hash']
+  vivify_236:
+    set $P490, $P489["xblock"]
+    unless_null $P490, vivify_237
+    $P490 = root_new ['parrot';'ResizablePMCArray']
+  vivify_237:
+    set $P491, $P490[$I488]
+    unless_null $P491, vivify_238
+    new $P491, "Undef"
+  vivify_238:
+    $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<while>"  :subid("36_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_498
-.annotate 'line', 162
-    new $P497, 'ExceptionHandler'
-    set_addr $P497, control_496
-    $P497."handle_types"(.CONTROL_RETURN)
-    push_eh $P497
+.sub "statement_control:sym<unless>"  :subid("35_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_507
+.annotate 'line', 166
+    new $P506, 'ExceptionHandler'
+    set_addr $P506, control_505
+    $P506."handle_types"(.CONTROL_RETURN)
+    push_eh $P506
     .lex "self", self
-    .lex "$/", param_498
-.annotate 'line', 163
-    new $P499, "Undef"
-    .lex "$past", $P499
-    find_lex $P500, "$/"
-    unless_null $P500, vivify_235
-    $P500 = root_new ['parrot';'Hash']
-  vivify_235:
-    set $P501, $P500["xblock"]
-    unless_null $P501, vivify_236
-    new $P501, "Undef"
-  vivify_236:
-    $P502 = $P501."ast"()
-    $P503 = "xblock_immediate"($P502)
-    store_lex "$past", $P503
-.annotate 'line', 164
-    find_lex $P504, "$past"
-    find_lex $P505, "$/"
-    unless_null $P505, vivify_237
-    $P505 = root_new ['parrot';'Hash']
-  vivify_237:
-    set $P506, $P505["sym"]
-    unless_null $P506, vivify_238
-    new $P506, "Undef"
-  vivify_238:
-    set $S507, $P506
-    $P504."pasttype"($S507)
-.annotate 'line', 165
-    find_lex $P508, "$/"
-    find_lex $P509, "$past"
-    $P510 = $P508."!make"($P509)
-.annotate 'line', 162
-    .return ($P510)
-  control_496:
+    .lex "$/", param_507
+.annotate 'line', 167
+    new $P508, "Undef"
+    .lex "$past", $P508
+    find_lex $P509, "$/"
+    unless_null $P509, vivify_239
+    $P509 = root_new ['parrot';'Hash']
+  vivify_239:
+    set $P510, $P509["xblock"]
+    unless_null $P510, vivify_240
+    new $P510, "Undef"
+  vivify_240:
+    $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 
     .get_results (exception) 
-    getattribute $P511, exception, "payload"
-    .return ($P511)
+    getattribute $P517, exception, "payload"
+    .return ($P517)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<repeat>"  :subid("37_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_515
-.annotate 'line', 168
-    new $P514, 'ExceptionHandler'
-    set_addr $P514, control_513
-    $P514."handle_types"(.CONTROL_RETURN)
-    push_eh $P514
+.sub "statement_control:sym<while>"  :subid("36_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_521
+.annotate 'line', 172
+    new $P520, 'ExceptionHandler'
+    set_addr $P520, control_519
+    $P520."handle_types"(.CONTROL_RETURN)
+    push_eh $P520
     .lex "self", self
-    .lex "$/", param_515
-.annotate 'line', 169
-    new $P516, "Undef"
-    .lex "$pasttype", $P516
-.annotate 'line', 170
-    new $P517, "Undef"
-    .lex "$past", $P517
-.annotate 'line', 169
-    new $P518, "String"
-    assign $P518, "repeat_"
-    find_lex $P519, "$/"
-    unless_null $P519, vivify_239
-    $P519 = root_new ['parrot';'Hash']
-  vivify_239:
-    set $P520, $P519["wu"]
-    unless_null $P520, vivify_240
-    new $P520, "Undef"
-  vivify_240:
-    set $S521, $P520
-    concat $P522, $P518, $S521
-    store_lex "$pasttype", $P522
-    find_lex $P523, "$past"
-.annotate 'line', 171
-    find_lex $P525, "$/"
-    unless_null $P525, vivify_241
-    $P525 = root_new ['parrot';'Hash']
+    .lex "$/", param_521
+.annotate 'line', 173
+    new $P522, "Undef"
+    .lex "$past", $P522
+    find_lex $P523, "$/"
+    unless_null $P523, vivify_241
+    $P523 = root_new ['parrot';'Hash']
   vivify_241:
-    set $P526, $P525["xblock"]
-    unless_null $P526, vivify_242
-    new $P526, "Undef"
+    set $P524, $P523["xblock"]
+    unless_null $P524, vivify_242
+    new $P524, "Undef"
   vivify_242:
-    if $P526, if_524
-.annotate 'line', 176
-    get_hll_global $P533, ["PAST"], "Op"
-    find_lex $P534, "$/"
-    unless_null $P534, vivify_243
-    $P534 = root_new ['parrot';'Hash']
+    $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
+    $P528 = root_new ['parrot';'Hash']
   vivify_243:
-    set $P535, $P534["EXPR"]
-    unless_null $P535, vivify_244
-    new $P535, "Undef"
+    set $P529, $P528["sym"]
+    unless_null $P529, vivify_244
+    new $P529, "Undef"
   vivify_244:
-    $P536 = $P535."ast"()
-    find_lex $P537, "$/"
-    unless_null $P537, vivify_245
-    $P537 = root_new ['parrot';'Hash']
-  vivify_245:
-    set $P538, $P537["pblock"]
-    unless_null $P538, vivify_246
-    new $P538, "Undef"
-  vivify_246:
-    $P539 = $P538."ast"()
-    $P540 = "block_immediate"($P539)
-    find_lex $P541, "$pasttype"
-    find_lex $P542, "$/"
-    $P543 = $P533."new"($P536, $P540, $P541 :named("pasttype"), $P542 :named("node"))
-    store_lex "$past", $P543
+    set $S530, $P529
+    $P527."pasttype"($S530)
 .annotate 'line', 175
-    goto if_524_end
-  if_524:
+    find_lex $P531, "$/"
+    find_lex $P532, "$past"
+    $P533 = $P531."!make"($P532)
 .annotate 'line', 172
-    find_lex $P527, "$/"
-    unless_null $P527, vivify_247
-    $P527 = root_new ['parrot';'Hash']
-  vivify_247:
-    set $P528, $P527["xblock"]
-    unless_null $P528, vivify_248
-    new $P528, "Undef"
-  vivify_248:
-    $P529 = $P528."ast"()
-    $P530 = "xblock_immediate"($P529)
-    store_lex "$past", $P530
-.annotate 'line', 173
-    find_lex $P531, "$past"
-    find_lex $P532, "$pasttype"
-    $P531."pasttype"($P532)
-  if_524_end:
-.annotate 'line', 179
-    find_lex $P544, "$/"
-    find_lex $P545, "$past"
-    $P546 = $P544."!make"($P545)
-.annotate 'line', 168
-    .return ($P546)
-  control_513:
+    .return ($P533)
+  control_519:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P547, exception, "payload"
-    .return ($P547)
+    getattribute $P534, exception, "payload"
+    .return ($P534)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<for>"  :subid("38_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_551
-.annotate 'line', 182
-    new $P550, 'ExceptionHandler'
-    set_addr $P550, control_549
-    $P550."handle_types"(.CONTROL_RETURN)
-    push_eh $P550
+.sub "statement_control:sym<repeat>"  :subid("37_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_538
+.annotate 'line', 178
+    new $P537, 'ExceptionHandler'
+    set_addr $P537, control_536
+    $P537."handle_types"(.CONTROL_RETURN)
+    push_eh $P537
     .lex "self", self
-    .lex "$/", param_551
-.annotate 'line', 183
-    new $P552, "Undef"
-    .lex "$past", $P552
-.annotate 'line', 185
-    new $P553, "Undef"
-    .lex "$block", $P553
-.annotate 'line', 183
-    find_lex $P554, "$/"
-    unless_null $P554, vivify_249
-    $P554 = root_new ['parrot';'Hash']
+    .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
+    $P542 = root_new ['parrot';'Hash']
+  vivify_245:
+    set $P543, $P542["wu"]
+    unless_null $P543, vivify_246
+    new $P543, "Undef"
+  vivify_246:
+    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
+    $P548 = root_new ['parrot';'Hash']
+  vivify_247:
+    set $P549, $P548["xblock"]
+    unless_null $P549, vivify_248
+    new $P549, "Undef"
+  vivify_248:
+    if $P549, if_547
+.annotate 'line', 186
+    get_hll_global $P556, ["PAST"], "Op"
+    find_lex $P557, "$/"
+    unless_null $P557, vivify_249
+    $P557 = root_new ['parrot';'Hash']
   vivify_249:
-    set $P555, $P554["xblock"]
-    unless_null $P555, vivify_250
-    new $P555, "Undef"
+    set $P558, $P557["EXPR"]
+    unless_null $P558, vivify_250
+    new $P558, "Undef"
   vivify_250:
-    $P556 = $P555."ast"()
-    store_lex "$past", $P556
-.annotate 'line', 184
-    find_lex $P557, "$past"
-    $P557."pasttype"("for")
-.annotate 'line', 185
-    find_lex $P558, "$past"
-    unless_null $P558, vivify_251
-    $P558 = root_new ['parrot';'ResizablePMCArray']
+    $P559 = $P558."ast"()
+    find_lex $P560, "$/"
+    unless_null $P560, vivify_251
+    $P560 = root_new ['parrot';'Hash']
   vivify_251:
-    set $P559, $P558[1]
-    unless_null $P559, vivify_252
-    new $P559, "Undef"
+    set $P561, $P560["pblock"]
+    unless_null $P561, vivify_252
+    new $P561, "Undef"
   vivify_252:
-    store_lex "$block", $P559
-.annotate 'line', 186
-    find_lex $P561, "$block"
-    $P562 = $P561."arity"()
-    if $P562, unless_560_end
-.annotate 'line', 187
-    find_lex $P563, "$block"
-    unless_null $P563, vivify_253
-    $P563 = root_new ['parrot';'ResizablePMCArray']
+    $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
+    $P550 = root_new ['parrot';'Hash']
   vivify_253:
-    set $P564, $P563[0]
-    unless_null $P564, vivify_254
-    new $P564, "Undef"
+    set $P551, $P550["xblock"]
+    unless_null $P551, vivify_254
+    new $P551, "Undef"
   vivify_254:
-    get_hll_global $P565, ["PAST"], "Var"
-    $P566 = $P565."new"("$_" :named("name"), "parameter" :named("scope"))
-    $P564."push"($P566)
-.annotate 'line', 188
-    find_lex $P567, "$block"
-    $P567."symbol"("$_", "lexical" :named("scope"))
+    $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 $P568, "$block"
-    $P568."arity"(1)
-  unless_560_end:
-.annotate 'line', 191
-    find_lex $P569, "$block"
-    $P569."blocktype"("immediate")
-.annotate 'line', 192
-    find_lex $P570, "$/"
-    find_lex $P571, "$past"
-    $P572 = $P570."!make"($P571)
-.annotate 'line', 182
-    .return ($P572)
-  control_549:
+    find_lex $P567, "$/"
+    find_lex $P568, "$past"
+    $P569 = $P567."!make"($P568)
+.annotate 'line', 178
+    .return ($P569)
+  control_536:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P573, exception, "payload"
-    .return ($P573)
+    getattribute $P570, exception, "payload"
+    .return ($P570)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<return>"  :subid("39_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_577
-.annotate 'line', 195
-    new $P576, 'ExceptionHandler'
-    set_addr $P576, control_575
-    $P576."handle_types"(.CONTROL_RETURN)
-    push_eh $P576
+.sub "statement_control:sym<for>"  :subid("38_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_574
+.annotate 'line', 192
+    new $P573, 'ExceptionHandler'
+    set_addr $P573, control_572
+    $P573."handle_types"(.CONTROL_RETURN)
+    push_eh $P573
     .lex "self", self
-    .lex "$/", param_577
-.annotate 'line', 196
-    find_lex $P578, "$/"
-    get_hll_global $P579, ["PAST"], "Op"
-    find_lex $P580, "$/"
-    unless_null $P580, vivify_255
-    $P580 = root_new ['parrot';'Hash']
+    .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
+    $P577 = root_new ['parrot';'Hash']
   vivify_255:
-    set $P581, $P580["EXPR"]
-    unless_null $P581, vivify_256
-    new $P581, "Undef"
+    set $P578, $P577["xblock"]
+    unless_null $P578, vivify_256
+    new $P578, "Undef"
   vivify_256:
-    $P582 = $P581."ast"()
-    find_lex $P583, "$/"
-    $P584 = $P579."new"($P582, "return" :named("pasttype"), $P583 :named("node"))
-    $P585 = $P578."!make"($P584)
+    $P579 = $P578."ast"()
+    store_lex "$past", $P579
+.annotate 'line', 194
+    find_lex $P580, "$past"
+    $P580."pasttype"("for")
 .annotate 'line', 195
-    .return ($P585)
-  control_575:
+    find_lex $P581, "$past"
+    unless_null $P581, vivify_257
+    $P581 = root_new ['parrot';'ResizablePMCArray']
+  vivify_257:
+    set $P582, $P581[1]
+    unless_null $P582, vivify_258
+    new $P582, "Undef"
+  vivify_258:
+    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
+    $P586 = root_new ['parrot';'ResizablePMCArray']
+  vivify_259:
+    set $P587, $P586[0]
+    unless_null $P587, vivify_260
+    new $P587, "Undef"
+  vivify_260:
+    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 
     .get_results (exception) 
-    getattribute $P586, exception, "payload"
-    .return ($P586)
+    getattribute $P596, exception, "payload"
+    .return ($P596)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<CATCH>"  :subid("40_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_590
-.annotate 'line', 199
-    new $P589, 'ExceptionHandler'
-    set_addr $P589, control_588
-    $P589."handle_types"(.CONTROL_RETURN)
-    push_eh $P589
-    .lex "self", self
-    .lex "$/", param_590
-.annotate 'line', 200
-    new $P591, "Undef"
-    .lex "$block", $P591
-    find_lex $P592, "$/"
-    unless_null $P592, vivify_257
-    $P592 = root_new ['parrot';'Hash']
-  vivify_257:
-    set $P593, $P592["block"]
-    unless_null $P593, vivify_258
-    new $P593, "Undef"
-  vivify_258:
-    $P594 = $P593."ast"()
-    store_lex "$block", $P594
-.annotate 'line', 201
-    find_lex $P595, "$/"
-    find_lex $P596, "$block"
-    "push_block_handler"($P595, $P596)
-.annotate 'line', 202
-    get_global $P597, "@BLOCK"
-    unless_null $P597, vivify_259
-    $P597 = root_new ['parrot';'ResizablePMCArray']
-  vivify_259:
-    set $P598, $P597[0]
-    unless_null $P598, vivify_260
-    new $P598, "Undef"
-  vivify_260:
-    $P599 = $P598."handlers"()
-    set $P600, $P599[0]
-    unless_null $P600, vivify_261
-    new $P600, "Undef"
-  vivify_261:
-    $P600."handle_types_except"("CONTROL")
-.annotate 'line', 203
+.sub "statement_control:sym<return>"  :subid("39_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_600
+.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"], "Stmts"
+    get_hll_global $P602, ["PAST"], "Op"
     find_lex $P603, "$/"
-    $P604 = $P602."new"($P603 :named("node"))
-    $P605 = $P601."!make"($P604)
-.annotate 'line', 199
-    .return ($P605)
-  control_588:
+    unless_null $P603, vivify_261
+    $P603 = root_new ['parrot';'Hash']
+  vivify_261:
+    set $P604, $P603["EXPR"]
+    unless_null $P604, vivify_262
+    new $P604, "Undef"
+  vivify_262:
+    $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 
     .get_results (exception) 
-    getattribute $P606, exception, "payload"
-    .return ($P606)
+    getattribute $P609, exception, "payload"
+    .return ($P609)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<CONTROL>"  :subid("41_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_610
-.annotate 'line', 206
-    new $P609, 'ExceptionHandler'
-    set_addr $P609, control_608
-    $P609."handle_types"(.CONTROL_RETURN)
-    push_eh $P609
+.sub "statement_control:sym<CATCH>"  :subid("40_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_613
+.annotate 'line', 209
+    new $P612, 'ExceptionHandler'
+    set_addr $P612, control_611
+    $P612."handle_types"(.CONTROL_RETURN)
+    push_eh $P612
     .lex "self", self
-    .lex "$/", param_610
-.annotate 'line', 207
-    new $P611, "Undef"
-    .lex "$block", $P611
-    find_lex $P612, "$/"
-    unless_null $P612, vivify_262
-    $P612 = root_new ['parrot';'Hash']
-  vivify_262:
-    set $P613, $P612["block"]
-    unless_null $P613, vivify_263
-    new $P613, "Undef"
-  vivify_263:
-    $P614 = $P613."ast"()
-    store_lex "$block", $P614
-.annotate 'line', 208
+    .lex "$/", param_613
+.annotate 'line', 210
+    new $P614, "Undef"
+    .lex "$block", $P614
     find_lex $P615, "$/"
-    find_lex $P616, "$block"
-    "push_block_handler"($P615, $P616)
-.annotate 'line', 209
-    get_global $P617, "@BLOCK"
-    unless_null $P617, vivify_264
-    $P617 = root_new ['parrot';'ResizablePMCArray']
+    unless_null $P615, vivify_263
+    $P615 = root_new ['parrot';'Hash']
+  vivify_263:
+    set $P616, $P615["block"]
+    unless_null $P616, vivify_264
+    new $P616, "Undef"
   vivify_264:
-    set $P618, $P617[0]
-    unless_null $P618, vivify_265
-    new $P618, "Undef"
+    $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
+    $P620 = root_new ['parrot';'ResizablePMCArray']
   vivify_265:
-    $P619 = $P618."handlers"()
-    set $P620, $P619[0]
-    unless_null $P620, vivify_266
-    new $P620, "Undef"
+    set $P621, $P620[0]
+    unless_null $P621, vivify_266
+    new $P621, "Undef"
   vivify_266:
-    $P620."handle_types"("CONTROL")
-.annotate 'line', 210
-    find_lex $P621, "$/"
-    get_hll_global $P622, ["PAST"], "Stmts"
-    find_lex $P623, "$/"
-    $P624 = $P622."new"($P623 :named("node"))
-    $P625 = $P621."!make"($P624)
-.annotate 'line', 206
-    .return ($P625)
-  control_608:
+    $P622 = $P621."handlers"()
+    set $P623, $P622[0]
+    unless_null $P623, vivify_267
+    new $P623, "Undef"
+  vivify_267:
+    $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 
     .get_results (exception) 
-    getattribute $P626, exception, "payload"
-    .return ($P626)
+    getattribute $P629, exception, "payload"
+    .return ($P629)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_prefix:sym<INIT>"  :subid("42_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_631
-.annotate 'line', 250
-    new $P630, 'ExceptionHandler'
-    set_addr $P630, control_629
-    $P630."handle_types"(.CONTROL_RETURN)
-    push_eh $P630
+.sub "statement_control:sym<CONTROL>"  :subid("41_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_633
+.annotate 'line', 216
+    new $P632, 'ExceptionHandler'
+    set_addr $P632, control_631
+    $P632."handle_types"(.CONTROL_RETURN)
+    push_eh $P632
     .lex "self", self
-    .lex "$/", param_631
-.annotate 'line', 251
-    get_global $P632, "@BLOCK"
-    unless_null $P632, vivify_267
-    $P632 = root_new ['parrot';'ResizablePMCArray']
-  vivify_267:
-    set $P633, $P632[0]
-    unless_null $P633, vivify_268
-    new $P633, "Undef"
-  vivify_268:
-    $P634 = $P633."loadinit"()
+    .lex "$/", param_633
+.annotate 'line', 217
+    new $P634, "Undef"
+    .lex "$block", $P634
     find_lex $P635, "$/"
-    unless_null $P635, vivify_269
+    unless_null $P635, vivify_268
     $P635 = root_new ['parrot';'Hash']
-  vivify_269:
-    set $P636, $P635["blorst"]
-    unless_null $P636, vivify_270
+  vivify_268:
+    set $P636, $P635["block"]
+    unless_null $P636, vivify_269
     new $P636, "Undef"
-  vivify_270:
+  vivify_269:
     $P637 = $P636."ast"()
-    $P634."push"($P637)
-.annotate 'line', 252
+    store_lex "$block", $P637
+.annotate 'line', 218
     find_lex $P638, "$/"
-    get_hll_global $P639, ["PAST"], "Stmts"
-    find_lex $P640, "$/"
-    $P641 = $P639."new"($P640 :named("node"))
-    $P642 = $P638."!make"($P641)
-.annotate 'line', 250
-    .return ($P642)
-  control_629:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P643, exception, "payload"
-    .return ($P643)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "statement_prefix:sym<try>"  :subid("43_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_647
-.annotate 'line', 255
-    new $P646, 'ExceptionHandler'
-    set_addr $P646, control_645
-    $P646."handle_types"(.CONTROL_RETURN)
-    push_eh $P646
-    .lex "self", self
-    .lex "$/", param_647
-.annotate 'line', 256
-    new $P648, "Undef"
-    .lex "$past", $P648
-    find_lex $P649, "$/"
-    unless_null $P649, vivify_271
-    $P649 = root_new ['parrot';'Hash']
+    find_lex $P639, "$block"
+    "push_block_handler"($P638, $P639)
+.annotate 'line', 219
+    get_global $P640, "@BLOCK"
+    unless_null $P640, vivify_270
+    $P640 = root_new ['parrot';'ResizablePMCArray']
+  vivify_270:
+    set $P641, $P640[0]
+    unless_null $P641, vivify_271
+    new $P641, "Undef"
   vivify_271:
-    set $P650, $P649["blorst"]
-    unless_null $P650, vivify_272
-    new $P650, "Undef"
+    $P642 = $P641."handlers"()
+    set $P643, $P642[0]
+    unless_null $P643, vivify_272
+    new $P643, "Undef"
   vivify_272:
-    $P651 = $P650."ast"()
-    store_lex "$past", $P651
-.annotate 'line', 257
-    find_lex $P653, "$past"
-    $S654 = $P653."WHAT"()
-    isne $I655, $S654, "PAST::Block()"
-    unless $I655, if_652_end
-.annotate 'line', 258
-    get_hll_global $P656, ["PAST"], "Block"
-    find_lex $P657, "$past"
-    find_lex $P658, "$/"
-    $P659 = $P656."new"($P657, "immediate" :named("blocktype"), $P658 :named("node"))
-    store_lex "$past", $P659
-  if_652_end:
-.annotate 'line', 260
-    find_lex $P661, "$past"
-    $P662 = $P661."handlers"()
-    if $P662, unless_660_end
-.annotate 'line', 261
-    find_lex $P663, "$past"
-    get_hll_global $P664, ["PAST"], "Control"
-.annotate 'line', 263
-    get_hll_global $P665, ["PAST"], "Stmts"
-.annotate 'line', 264
-    get_hll_global $P666, ["PAST"], "Op"
-.annotate 'line', 265
-    get_hll_global $P667, ["PAST"], "Var"
-.annotate 'line', 266
-    get_hll_global $P668, ["PAST"], "Var"
-    $P669 = $P668."new"("register" :named("scope"), "exception" :named("name"))
-    $P670 = $P667."new"($P669, "handled", "keyed" :named("scope"))
-.annotate 'line', 265
-    $P671 = $P666."new"($P670, 1, "bind" :named("pasttype"))
-.annotate 'line', 264
-    $P672 = $P665."new"($P671)
-.annotate 'line', 263
-    $P673 = $P664."new"($P672, "CONTROL" :named("handle_types_except"))
-.annotate 'line', 261
-    new $P674, "ResizablePMCArray"
-    push $P674, $P673
-    $P663."handlers"($P674)
-  unless_660_end:
-.annotate 'line', 275
-    find_lex $P675, "$/"
-    find_lex $P676, "$past"
-    $P677 = $P675."!make"($P676)
-.annotate 'line', 255
-    .return ($P677)
-  control_645:
+    $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 
     .get_results (exception) 
-    getattribute $P678, exception, "payload"
-    .return ($P678)
+    getattribute $P649, exception, "payload"
+    .return ($P649)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "blorst"  :subid("44_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_682
-.annotate 'line', 278
-    new $P681, 'ExceptionHandler'
-    set_addr $P681, control_680
-    $P681."handle_types"(.CONTROL_RETURN)
-    push_eh $P681
+.sub "statement_prefix:sym<INIT>"  :subid("42_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_654
+.annotate 'line', 260
+    new $P653, 'ExceptionHandler'
+    set_addr $P653, control_652
+    $P653."handle_types"(.CONTROL_RETURN)
+    push_eh $P653
     .lex "self", self
-    .lex "$/", param_682
-.annotate 'line', 279
-    find_lex $P683, "$/"
-.annotate 'line', 280
-    find_lex $P686, "$/"
-    unless_null $P686, vivify_273
-    $P686 = root_new ['parrot';'Hash']
+    .lex "$/", param_654
+.annotate 'line', 261
+    get_global $P655, "@BLOCK"
+    unless_null $P655, vivify_273
+    $P655 = root_new ['parrot';'ResizablePMCArray']
   vivify_273:
-    set $P687, $P686["block"]
-    unless_null $P687, vivify_274
-    new $P687, "Undef"
+    set $P656, $P655[0]
+    unless_null $P656, vivify_274
+    new $P656, "Undef"
   vivify_274:
-    if $P687, if_685
-.annotate 'line', 281
-    find_lex $P692, "$/"
-    unless_null $P692, vivify_275
-    $P692 = root_new ['parrot';'Hash']
+    $P657 = $P656."loadinit"()
+    find_lex $P658, "$/"
+    unless_null $P658, vivify_275
+    $P658 = root_new ['parrot';'Hash']
   vivify_275:
-    set $P693, $P692["statement"]
-    unless_null $P693, vivify_276
-    new $P693, "Undef"
+    set $P659, $P658["blorst"]
+    unless_null $P659, vivify_276
+    new $P659, "Undef"
   vivify_276:
-    $P694 = $P693."ast"()
-    set $P684, $P694
-.annotate 'line', 280
-    goto if_685_end
-  if_685:
-    find_lex $P688, "$/"
-    unless_null $P688, vivify_277
-    $P688 = root_new ['parrot';'Hash']
-  vivify_277:
-    set $P689, $P688["block"]
-    unless_null $P689, vivify_278
-    new $P689, "Undef"
-  vivify_278:
-    $P690 = $P689."ast"()
-    $P691 = "block_immediate"($P690)
-    set $P684, $P691
-  if_685_end:
-    $P695 = $P683."!make"($P684)
-.annotate 'line', 278
-    .return ($P695)
-  control_680:
+    $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 
     .get_results (exception) 
-    getattribute $P696, exception, "payload"
-    .return ($P696)
+    getattribute $P666, exception, "payload"
+    .return ($P666)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_cond:sym<if>"  :subid("45_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_700
-.annotate 'line', 286
-    new $P699, 'ExceptionHandler'
-    set_addr $P699, control_698
-    $P699."handle_types"(.CONTROL_RETURN)
-    push_eh $P699
-    .lex "self", self
-    .lex "$/", param_700
-    find_lex $P701, "$/"
-    find_lex $P702, "$/"
-    unless_null $P702, vivify_279
-    $P702 = root_new ['parrot';'Hash']
-  vivify_279:
-    set $P703, $P702["cond"]
-    unless_null $P703, vivify_280
-    new $P703, "Undef"
-  vivify_280:
-    $P704 = $P703."ast"()
-    $P705 = $P701."!make"($P704)
-    .return ($P705)
-  control_698:
+.sub "statement_prefix:sym<try>"  :subid("43_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_670
+.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
+    $P672 = root_new ['parrot';'Hash']
+  vivify_277:
+    set $P673, $P672["blorst"]
+    unless_null $P673, vivify_278
+    new $P673, "Undef"
+  vivify_278:
+    $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 
     .get_results (exception) 
-    getattribute $P706, exception, "payload"
-    .return ($P706)
+    getattribute $P701, exception, "payload"
+    .return ($P701)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_cond:sym<unless>"  :subid("46_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_710
-.annotate 'line', 287
-    new $P709, 'ExceptionHandler'
-    set_addr $P709, control_708
-    $P709."handle_types"(.CONTROL_RETURN)
-    push_eh $P709
+.sub "blorst"  :subid("44_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_705
+.annotate 'line', 288
+    new $P704, 'ExceptionHandler'
+    set_addr $P704, control_703
+    $P704."handle_types"(.CONTROL_RETURN)
+    push_eh $P704
     .lex "self", self
-    .lex "$/", param_710
-    find_lex $P711, "$/"
-    find_lex $P712, "$/"
-    unless_null $P712, vivify_281
-    $P712 = root_new ['parrot';'Hash']
+    .lex "$/", param_705
+.annotate 'line', 289
+    find_lex $P706, "$/"
+.annotate 'line', 290
+    find_lex $P709, "$/"
+    unless_null $P709, vivify_279
+    $P709 = root_new ['parrot';'Hash']
+  vivify_279:
+    set $P710, $P709["block"]
+    unless_null $P710, vivify_280
+    new $P710, "Undef"
+  vivify_280:
+    if $P710, if_708
+.annotate 'line', 291
+    find_lex $P715, "$/"
+    unless_null $P715, vivify_281
+    $P715 = root_new ['parrot';'Hash']
   vivify_281:
-    set $P713, $P712["cond"]
-    unless_null $P713, vivify_282
-    new $P713, "Undef"
+    set $P716, $P715["statement"]
+    unless_null $P716, vivify_282
+    new $P716, "Undef"
   vivify_282:
-    $P714 = $P713."ast"()
-    $P715 = $P711."!make"($P714)
-    .return ($P715)
-  control_708:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P716, exception, "payload"
-    .return ($P716)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "statement_mod_loop:sym<while>"  :subid("47_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_720
-.annotate 'line', 289
-    new $P719, 'ExceptionHandler'
-    set_addr $P719, control_718
-    $P719."handle_types"(.CONTROL_RETURN)
-    push_eh $P719
-    .lex "self", self
-    .lex "$/", param_720
-    find_lex $P721, "$/"
-    find_lex $P722, "$/"
-    unless_null $P722, vivify_283
-    $P722 = root_new ['parrot';'Hash']
+    $P717 = $P716."ast"()
+    set $P707, $P717
+.annotate 'line', 290
+    goto if_708_end
+  if_708:
+    find_lex $P711, "$/"
+    unless_null $P711, vivify_283
+    $P711 = root_new ['parrot';'Hash']
   vivify_283:
-    set $P723, $P722["cond"]
-    unless_null $P723, vivify_284
-    new $P723, "Undef"
+    set $P712, $P711["block"]
+    unless_null $P712, vivify_284
+    new $P712, "Undef"
   vivify_284:
-    $P724 = $P723."ast"()
-    $P725 = $P721."!make"($P724)
-    .return ($P725)
-  control_718:
+    $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 
     .get_results (exception) 
-    getattribute $P726, exception, "payload"
-    .return ($P726)
+    getattribute $P719, exception, "payload"
+    .return ($P719)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_loop:sym<until>"  :subid("48_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_730
-.annotate 'line', 290
-    new $P729, 'ExceptionHandler'
-    set_addr $P729, control_728
-    $P729."handle_types"(.CONTROL_RETURN)
-    push_eh $P729
-    .lex "self", self
-    .lex "$/", param_730
-    find_lex $P731, "$/"
-    find_lex $P732, "$/"
-    unless_null $P732, vivify_285
-    $P732 = root_new ['parrot';'Hash']
+.sub "statement_mod_cond:sym<if>"  :subid("45_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_723
+.annotate 'line', 296
+    new $P722, 'ExceptionHandler'
+    set_addr $P722, control_721
+    $P722."handle_types"(.CONTROL_RETURN)
+    push_eh $P722
+    .lex "self", self
+    .lex "$/", param_723
+    find_lex $P724, "$/"
+    find_lex $P725, "$/"
+    unless_null $P725, vivify_285
+    $P725 = root_new ['parrot';'Hash']
   vivify_285:
-    set $P733, $P732["cond"]
-    unless_null $P733, vivify_286
-    new $P733, "Undef"
+    set $P726, $P725["cond"]
+    unless_null $P726, vivify_286
+    new $P726, "Undef"
   vivify_286:
-    $P734 = $P733."ast"()
-    $P735 = $P731."!make"($P734)
-    .return ($P735)
-  control_728:
+    $P727 = $P726."ast"()
+    $P728 = $P724."!make"($P727)
+    .return ($P728)
+  control_721:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P736, exception, "payload"
-    .return ($P736)
+    getattribute $P729, exception, "payload"
+    .return ($P729)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<fatarrow>"  :subid("49_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_740
-.annotate 'line', 294
-    new $P739, 'ExceptionHandler'
-    set_addr $P739, control_738
-    $P739."handle_types"(.CONTROL_RETURN)
-    push_eh $P739
-    .lex "self", self
-    .lex "$/", param_740
-    find_lex $P741, "$/"
-    find_lex $P742, "$/"
-    unless_null $P742, vivify_287
-    $P742 = root_new ['parrot';'Hash']
+.sub "statement_mod_cond:sym<unless>"  :subid("46_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_733
+.annotate 'line', 297
+    new $P732, 'ExceptionHandler'
+    set_addr $P732, control_731
+    $P732."handle_types"(.CONTROL_RETURN)
+    push_eh $P732
+    .lex "self", self
+    .lex "$/", param_733
+    find_lex $P734, "$/"
+    find_lex $P735, "$/"
+    unless_null $P735, vivify_287
+    $P735 = root_new ['parrot';'Hash']
   vivify_287:
-    set $P743, $P742["fatarrow"]
-    unless_null $P743, vivify_288
-    new $P743, "Undef"
+    set $P736, $P735["cond"]
+    unless_null $P736, vivify_288
+    new $P736, "Undef"
   vivify_288:
-    $P744 = $P743."ast"()
-    $P745 = $P741."!make"($P744)
-    .return ($P745)
-  control_738:
+    $P737 = $P736."ast"()
+    $P738 = $P734."!make"($P737)
+    .return ($P738)
+  control_731:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P746, exception, "payload"
-    .return ($P746)
+    getattribute $P739, exception, "payload"
+    .return ($P739)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<colonpair>"  :subid("50_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_750
-.annotate 'line', 295
-    new $P749, 'ExceptionHandler'
-    set_addr $P749, control_748
-    $P749."handle_types"(.CONTROL_RETURN)
-    push_eh $P749
-    .lex "self", self
-    .lex "$/", param_750
-    find_lex $P751, "$/"
-    find_lex $P752, "$/"
-    unless_null $P752, vivify_289
-    $P752 = root_new ['parrot';'Hash']
+.sub "statement_mod_loop:sym<while>"  :subid("47_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_743
+.annotate 'line', 299
+    new $P742, 'ExceptionHandler'
+    set_addr $P742, control_741
+    $P742."handle_types"(.CONTROL_RETURN)
+    push_eh $P742
+    .lex "self", self
+    .lex "$/", param_743
+    find_lex $P744, "$/"
+    find_lex $P745, "$/"
+    unless_null $P745, vivify_289
+    $P745 = root_new ['parrot';'Hash']
   vivify_289:
-    set $P753, $P752["colonpair"]
-    unless_null $P753, vivify_290
-    new $P753, "Undef"
+    set $P746, $P745["cond"]
+    unless_null $P746, vivify_290
+    new $P746, "Undef"
   vivify_290:
-    $P754 = $P753."ast"()
-    $P755 = $P751."!make"($P754)
-    .return ($P755)
-  control_748:
+    $P747 = $P746."ast"()
+    $P748 = $P744."!make"($P747)
+    .return ($P748)
+  control_741:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P756, exception, "payload"
-    .return ($P756)
+    getattribute $P749, exception, "payload"
+    .return ($P749)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<variable>"  :subid("51_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_760
-.annotate 'line', 296
-    new $P759, 'ExceptionHandler'
-    set_addr $P759, control_758
-    $P759."handle_types"(.CONTROL_RETURN)
-    push_eh $P759
-    .lex "self", self
-    .lex "$/", param_760
-    find_lex $P761, "$/"
-    find_lex $P762, "$/"
-    unless_null $P762, vivify_291
-    $P762 = root_new ['parrot';'Hash']
+.sub "statement_mod_loop:sym<until>"  :subid("48_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_753
+.annotate 'line', 300
+    new $P752, 'ExceptionHandler'
+    set_addr $P752, control_751
+    $P752."handle_types"(.CONTROL_RETURN)
+    push_eh $P752
+    .lex "self", self
+    .lex "$/", param_753
+    find_lex $P754, "$/"
+    find_lex $P755, "$/"
+    unless_null $P755, vivify_291
+    $P755 = root_new ['parrot';'Hash']
   vivify_291:
-    set $P763, $P762["variable"]
-    unless_null $P763, vivify_292
-    new $P763, "Undef"
+    set $P756, $P755["cond"]
+    unless_null $P756, vivify_292
+    new $P756, "Undef"
   vivify_292:
-    $P764 = $P763."ast"()
-    $P765 = $P761."!make"($P764)
-    .return ($P765)
-  control_758:
+    $P757 = $P756."ast"()
+    $P758 = $P754."!make"($P757)
+    .return ($P758)
+  control_751:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P766, exception, "payload"
-    .return ($P766)
+    getattribute $P759, exception, "payload"
+    .return ($P759)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<package_declarator>"  :subid("52_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_770
-.annotate 'line', 297
-    new $P769, 'ExceptionHandler'
-    set_addr $P769, control_768
-    $P769."handle_types"(.CONTROL_RETURN)
-    push_eh $P769
-    .lex "self", self
-    .lex "$/", param_770
-    find_lex $P771, "$/"
-    find_lex $P772, "$/"
-    unless_null $P772, vivify_293
-    $P772 = root_new ['parrot';'Hash']
+.sub "term:sym<fatarrow>"  :subid("49_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_763
+.annotate 'line', 304
+    new $P762, 'ExceptionHandler'
+    set_addr $P762, control_761
+    $P762."handle_types"(.CONTROL_RETURN)
+    push_eh $P762
+    .lex "self", self
+    .lex "$/", param_763
+    find_lex $P764, "$/"
+    find_lex $P765, "$/"
+    unless_null $P765, vivify_293
+    $P765 = root_new ['parrot';'Hash']
   vivify_293:
-    set $P773, $P772["package_declarator"]
-    unless_null $P773, vivify_294
-    new $P773, "Undef"
+    set $P766, $P765["fatarrow"]
+    unless_null $P766, vivify_294
+    new $P766, "Undef"
   vivify_294:
-    $P774 = $P773."ast"()
-    $P775 = $P771."!make"($P774)
-    .return ($P775)
-  control_768:
+    $P767 = $P766."ast"()
+    $P768 = $P764."!make"($P767)
+    .return ($P768)
+  control_761:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P776, exception, "payload"
-    .return ($P776)
+    getattribute $P769, exception, "payload"
+    .return ($P769)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<scope_declarator>"  :subid("53_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_780
-.annotate 'line', 298
-    new $P779, 'ExceptionHandler'
-    set_addr $P779, control_778
-    $P779."handle_types"(.CONTROL_RETURN)
-    push_eh $P779
-    .lex "self", self
-    .lex "$/", param_780
-    find_lex $P781, "$/"
-    find_lex $P782, "$/"
-    unless_null $P782, vivify_295
-    $P782 = root_new ['parrot';'Hash']
+.sub "term:sym<colonpair>"  :subid("50_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_773
+.annotate 'line', 305
+    new $P772, 'ExceptionHandler'
+    set_addr $P772, control_771
+    $P772."handle_types"(.CONTROL_RETURN)
+    push_eh $P772
+    .lex "self", self
+    .lex "$/", param_773
+    find_lex $P774, "$/"
+    find_lex $P775, "$/"
+    unless_null $P775, vivify_295
+    $P775 = root_new ['parrot';'Hash']
   vivify_295:
-    set $P783, $P782["scope_declarator"]
-    unless_null $P783, vivify_296
-    new $P783, "Undef"
+    set $P776, $P775["colonpair"]
+    unless_null $P776, vivify_296
+    new $P776, "Undef"
   vivify_296:
-    $P784 = $P783."ast"()
-    $P785 = $P781."!make"($P784)
-    .return ($P785)
-  control_778:
+    $P777 = $P776."ast"()
+    $P778 = $P774."!make"($P777)
+    .return ($P778)
+  control_771:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P786, exception, "payload"
-    .return ($P786)
+    getattribute $P779, exception, "payload"
+    .return ($P779)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<routine_declarator>"  :subid("54_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_790
-.annotate 'line', 299
-    new $P789, 'ExceptionHandler'
-    set_addr $P789, control_788
-    $P789."handle_types"(.CONTROL_RETURN)
-    push_eh $P789
-    .lex "self", self
-    .lex "$/", param_790
-    find_lex $P791, "$/"
-    find_lex $P792, "$/"
-    unless_null $P792, vivify_297
-    $P792 = root_new ['parrot';'Hash']
+.sub "term:sym<variable>"  :subid("51_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_783
+.annotate 'line', 306
+    new $P782, 'ExceptionHandler'
+    set_addr $P782, control_781
+    $P782."handle_types"(.CONTROL_RETURN)
+    push_eh $P782
+    .lex "self", self
+    .lex "$/", param_783
+    find_lex $P784, "$/"
+    find_lex $P785, "$/"
+    unless_null $P785, vivify_297
+    $P785 = root_new ['parrot';'Hash']
   vivify_297:
-    set $P793, $P792["routine_declarator"]
-    unless_null $P793, vivify_298
-    new $P793, "Undef"
+    set $P786, $P785["variable"]
+    unless_null $P786, vivify_298
+    new $P786, "Undef"
   vivify_298:
-    $P794 = $P793."ast"()
-    $P795 = $P791."!make"($P794)
-    .return ($P795)
-  control_788:
+    $P787 = $P786."ast"()
+    $P788 = $P784."!make"($P787)
+    .return ($P788)
+  control_781:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P796, exception, "payload"
-    .return ($P796)
+    getattribute $P789, exception, "payload"
+    .return ($P789)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<regex_declarator>"  :subid("55_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_800
-.annotate 'line', 300
-    new $P799, 'ExceptionHandler'
-    set_addr $P799, control_798
-    $P799."handle_types"(.CONTROL_RETURN)
-    push_eh $P799
-    .lex "self", self
-    .lex "$/", param_800
-    find_lex $P801, "$/"
-    find_lex $P802, "$/"
-    unless_null $P802, vivify_299
-    $P802 = root_new ['parrot';'Hash']
+.sub "term:sym<package_declarator>"  :subid("52_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_793
+.annotate 'line', 307
+    new $P792, 'ExceptionHandler'
+    set_addr $P792, control_791
+    $P792."handle_types"(.CONTROL_RETURN)
+    push_eh $P792
+    .lex "self", self
+    .lex "$/", param_793
+    find_lex $P794, "$/"
+    find_lex $P795, "$/"
+    unless_null $P795, vivify_299
+    $P795 = root_new ['parrot';'Hash']
   vivify_299:
-    set $P803, $P802["regex_declarator"]
-    unless_null $P803, vivify_300
-    new $P803, "Undef"
+    set $P796, $P795["package_declarator"]
+    unless_null $P796, vivify_300
+    new $P796, "Undef"
   vivify_300:
-    $P804 = $P803."ast"()
-    $P805 = $P801."!make"($P804)
-    .return ($P805)
-  control_798:
+    $P797 = $P796."ast"()
+    $P798 = $P794."!make"($P797)
+    .return ($P798)
+  control_791:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P806, exception, "payload"
-    .return ($P806)
+    getattribute $P799, exception, "payload"
+    .return ($P799)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<statement_prefix>"  :subid("56_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_810
-.annotate 'line', 301
-    new $P809, 'ExceptionHandler'
-    set_addr $P809, control_808
-    $P809."handle_types"(.CONTROL_RETURN)
-    push_eh $P809
-    .lex "self", self
-    .lex "$/", param_810
-    find_lex $P811, "$/"
-    find_lex $P812, "$/"
-    unless_null $P812, vivify_301
-    $P812 = root_new ['parrot';'Hash']
+.sub "term:sym<scope_declarator>"  :subid("53_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_803
+.annotate 'line', 308
+    new $P802, 'ExceptionHandler'
+    set_addr $P802, control_801
+    $P802."handle_types"(.CONTROL_RETURN)
+    push_eh $P802
+    .lex "self", self
+    .lex "$/", param_803
+    find_lex $P804, "$/"
+    find_lex $P805, "$/"
+    unless_null $P805, vivify_301
+    $P805 = root_new ['parrot';'Hash']
   vivify_301:
-    set $P813, $P812["statement_prefix"]
-    unless_null $P813, vivify_302
-    new $P813, "Undef"
+    set $P806, $P805["scope_declarator"]
+    unless_null $P806, vivify_302
+    new $P806, "Undef"
   vivify_302:
-    $P814 = $P813."ast"()
-    $P815 = $P811."!make"($P814)
-    .return ($P815)
-  control_808:
+    $P807 = $P806."ast"()
+    $P808 = $P804."!make"($P807)
+    .return ($P808)
+  control_801:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P816, exception, "payload"
-    .return ($P816)
+    getattribute $P809, exception, "payload"
+    .return ($P809)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<lambda>"  :subid("57_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_820
-.annotate 'line', 302
-    new $P819, 'ExceptionHandler'
-    set_addr $P819, control_818
-    $P819."handle_types"(.CONTROL_RETURN)
-    push_eh $P819
+.sub "term:sym<routine_declarator>"  :subid("54_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_813
+.annotate 'line', 309
+    new $P812, 'ExceptionHandler'
+    set_addr $P812, control_811
+    $P812."handle_types"(.CONTROL_RETURN)
+    push_eh $P812
     .lex "self", self
-    .lex "$/", param_820
-    find_lex $P821, "$/"
-    find_lex $P822, "$/"
-    unless_null $P822, vivify_303
-    $P822 = root_new ['parrot';'Hash']
+    .lex "$/", param_813
+    find_lex $P814, "$/"
+    find_lex $P815, "$/"
+    unless_null $P815, vivify_303
+    $P815 = root_new ['parrot';'Hash']
   vivify_303:
-    set $P823, $P822["pblock"]
-    unless_null $P823, vivify_304
-    new $P823, "Undef"
+    set $P816, $P815["routine_declarator"]
+    unless_null $P816, vivify_304
+    new $P816, "Undef"
   vivify_304:
-    $P824 = $P823."ast"()
-    $P825 = $P821."!make"($P824)
-    .return ($P825)
-  control_818:
+    $P817 = $P816."ast"()
+    $P818 = $P814."!make"($P817)
+    .return ($P818)
+  control_811:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P826, exception, "payload"
-    .return ($P826)
+    getattribute $P819, exception, "payload"
+    .return ($P819)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "fatarrow"  :subid("58_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_830
-.annotate 'line', 304
-    new $P829, 'ExceptionHandler'
-    set_addr $P829, control_828
-    $P829."handle_types"(.CONTROL_RETURN)
-    push_eh $P829
-    .lex "self", self
-    .lex "$/", param_830
-.annotate 'line', 305
-    new $P831, "Undef"
-    .lex "$past", $P831
-    find_lex $P832, "$/"
-    unless_null $P832, vivify_305
-    $P832 = root_new ['parrot';'Hash']
+.sub "term:sym<regex_declarator>"  :subid("55_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_823
+.annotate 'line', 310
+    new $P822, 'ExceptionHandler'
+    set_addr $P822, control_821
+    $P822."handle_types"(.CONTROL_RETURN)
+    push_eh $P822
+    .lex "self", self
+    .lex "$/", param_823
+    find_lex $P824, "$/"
+    find_lex $P825, "$/"
+    unless_null $P825, vivify_305
+    $P825 = root_new ['parrot';'Hash']
   vivify_305:
-    set $P833, $P832["val"]
-    unless_null $P833, vivify_306
-    new $P833, "Undef"
+    set $P826, $P825["regex_declarator"]
+    unless_null $P826, vivify_306
+    new $P826, "Undef"
   vivify_306:
-    $P834 = $P833."ast"()
-    store_lex "$past", $P834
-.annotate 'line', 306
-    find_lex $P835, "$past"
-    find_lex $P836, "$/"
-    unless_null $P836, vivify_307
-    $P836 = root_new ['parrot';'Hash']
+    $P827 = $P826."ast"()
+    $P828 = $P824."!make"($P827)
+    .return ($P828)
+  control_821:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P829, exception, "payload"
+    .return ($P829)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "term:sym<statement_prefix>"  :subid("56_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_833
+.annotate 'line', 311
+    new $P832, 'ExceptionHandler'
+    set_addr $P832, control_831
+    $P832."handle_types"(.CONTROL_RETURN)
+    push_eh $P832
+    .lex "self", self
+    .lex "$/", param_833
+    find_lex $P834, "$/"
+    find_lex $P835, "$/"
+    unless_null $P835, vivify_307
+    $P835 = root_new ['parrot';'Hash']
   vivify_307:
-    set $P837, $P836["key"]
-    unless_null $P837, vivify_308
-    new $P837, "Undef"
+    set $P836, $P835["statement_prefix"]
+    unless_null $P836, vivify_308
+    new $P836, "Undef"
   vivify_308:
-    $P838 = $P837."Str"()
-    $P835."named"($P838)
-.annotate 'line', 307
-    find_lex $P839, "$/"
-    find_lex $P840, "$past"
-    $P841 = $P839."!make"($P840)
-.annotate 'line', 304
-    .return ($P841)
-  control_828:
+    $P837 = $P836."ast"()
+    $P838 = $P834."!make"($P837)
+    .return ($P838)
+  control_831:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P842, exception, "payload"
-    .return ($P842)
+    getattribute $P839, exception, "payload"
+    .return ($P839)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "colonpair"  :subid("59_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_846
-.annotate 'line', 310
-    new $P845, 'ExceptionHandler'
-    set_addr $P845, control_844
-    $P845."handle_types"(.CONTROL_RETURN)
-    push_eh $P845
-    .lex "self", self
-    .lex "$/", param_846
-.annotate 'line', 311
-    new $P847, "Undef"
-    .lex "$past", $P847
+.sub "term:sym<lambda>"  :subid("57_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_843
 .annotate 'line', 312
-    find_lex $P850, "$/"
-    unless_null $P850, vivify_309
-    $P850 = root_new ['parrot';'Hash']
+    new $P842, 'ExceptionHandler'
+    set_addr $P842, control_841
+    $P842."handle_types"(.CONTROL_RETURN)
+    push_eh $P842
+    .lex "self", self
+    .lex "$/", param_843
+    find_lex $P844, "$/"
+    find_lex $P845, "$/"
+    unless_null $P845, vivify_309
+    $P845 = root_new ['parrot';'Hash']
   vivify_309:
-    set $P851, $P850["circumfix"]
-    unless_null $P851, vivify_310
-    new $P851, "Undef"
+    set $P846, $P845["pblock"]
+    unless_null $P846, vivify_310
+    new $P846, "Undef"
   vivify_310:
-    if $P851, if_849
-.annotate 'line', 313
-    get_hll_global $P856, ["PAST"], "Val"
-    find_lex $P857, "$/"
-    unless_null $P857, vivify_311
-    $P857 = root_new ['parrot';'Hash']
+    $P847 = $P846."ast"()
+    $P848 = $P844."!make"($P847)
+    .return ($P848)
+  control_841:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P849, exception, "payload"
+    .return ($P849)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "fatarrow"  :subid("58_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_853
+.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
+    $P855 = root_new ['parrot';'Hash']
   vivify_311:
-    set $P858, $P857["not"]
-    unless_null $P858, vivify_312
-    new $P858, "Undef"
+    set $P856, $P855["val"]
+    unless_null $P856, vivify_312
+    new $P856, "Undef"
   vivify_312:
-    isfalse $I859, $P858
-    $P860 = $P856."new"($I859 :named("value"))
-    set $P848, $P860
-.annotate 'line', 312
-    goto if_849_end
-  if_849:
-    find_lex $P852, "$/"
-    unless_null $P852, vivify_313
-    $P852 = root_new ['parrot';'Hash']
+    $P857 = $P856."ast"()
+    store_lex "$past", $P857
+.annotate 'line', 316
+    find_lex $P858, "$past"
+    find_lex $P859, "$/"
+    unless_null $P859, vivify_313
+    $P859 = root_new ['parrot';'Hash']
   vivify_313:
-    set $P853, $P852["circumfix"]
-    unless_null $P853, vivify_314
-    $P853 = root_new ['parrot';'ResizablePMCArray']
+    set $P860, $P859["key"]
+    unless_null $P860, vivify_314
+    new $P860, "Undef"
   vivify_314:
-    set $P854, $P853[0]
-    unless_null $P854, vivify_315
-    new $P854, "Undef"
-  vivify_315:
-    $P855 = $P854."ast"()
-    set $P848, $P855
-  if_849_end:
-    store_lex "$past", $P848
-.annotate 'line', 314
-    find_lex $P861, "$past"
+    $P861 = $P860."Str"()
+    $P858."named"($P861)
+.annotate 'line', 317
     find_lex $P862, "$/"
-    unless_null $P862, vivify_316
-    $P862 = root_new ['parrot';'Hash']
-  vivify_316:
-    set $P863, $P862["identifier"]
-    unless_null $P863, vivify_317
-    new $P863, "Undef"
-  vivify_317:
-    set $S864, $P863
-    $P861."named"($S864)
-.annotate 'line', 315
-    find_lex $P865, "$/"
-    find_lex $P866, "$past"
-    $P867 = $P865."!make"($P866)
-.annotate 'line', 310
-    .return ($P867)
-  control_844:
+    find_lex $P863, "$past"
+    $P864 = $P862."!make"($P863)
+.annotate 'line', 314
+    .return ($P864)
+  control_851:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P868, exception, "payload"
-    .return ($P868)
+    getattribute $P865, exception, "payload"
+    .return ($P865)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "variable"  :subid("60_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_872
-.annotate 'line', 318
-    .const 'Sub' $P885 = "61_1277356919.52295" 
-    capture_lex $P885
-    new $P871, 'ExceptionHandler'
-    set_addr $P871, control_870
-    $P871."handle_types"(.CONTROL_RETURN)
-    push_eh $P871
-    .lex "self", self
-    .lex "$/", param_872
-.annotate 'line', 319
-    new $P873, "Undef"
-    .lex "$past", $P873
-.annotate 'line', 318
-    find_lex $P874, "$past"
+.sub "colonpair"  :subid("59_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_869
 .annotate 'line', 320
-    find_lex $P876, "$/"
-    unless_null $P876, vivify_318
-    $P876 = root_new ['parrot';'Hash']
+    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
+    $P873 = root_new ['parrot';'Hash']
+  vivify_315:
+    set $P874, $P873["circumfix"]
+    unless_null $P874, vivify_316
+    new $P874, "Undef"
+  vivify_316:
+    if $P874, if_872
+.annotate 'line', 323
+    get_hll_global $P879, ["PAST"], "Val"
+    find_lex $P880, "$/"
+    unless_null $P880, vivify_317
+    $P880 = root_new ['parrot';'Hash']
+  vivify_317:
+    set $P881, $P880["not"]
+    unless_null $P881, vivify_318
+    new $P881, "Undef"
   vivify_318:
-    set $P877, $P876["postcircumfix"]
-    unless_null $P877, vivify_319
-    new $P877, "Undef"
+    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
+    $P875 = root_new ['parrot';'Hash']
   vivify_319:
-    if $P877, if_875
+    set $P876, $P875["circumfix"]
+    unless_null $P876, vivify_320
+    $P876 = root_new ['parrot';'ResizablePMCArray']
+  vivify_320:
+    set $P877, $P876[0]
+    unless_null $P877, vivify_321
+    new $P877, "Undef"
+  vivify_321:
+    $P878 = $P877."ast"()
+    set $P871, $P878
+  if_872_end:
+    store_lex "$past", $P871
 .annotate 'line', 324
-    .const 'Sub' $P885 = "61_1277356919.52295" 
-    capture_lex $P885
-    $P885()
-    goto if_875_end
-  if_875:
-.annotate 'line', 321
-    find_lex $P878, "$/"
-    unless_null $P878, vivify_336
-    $P878 = root_new ['parrot';'Hash']
-  vivify_336:
-    set $P879, $P878["postcircumfix"]
-    unless_null $P879, vivify_337
-    new $P879, "Undef"
-  vivify_337:
-    $P880 = $P879."ast"()
-    store_lex "$past", $P880
-.annotate 'line', 322
-    find_lex $P881, "$past"
-    get_hll_global $P882, ["PAST"], "Var"
-    $P883 = $P882."new"("$/" :named("name"))
-    $P881."unshift"($P883)
-  if_875_end:
-.annotate 'line', 353
-    find_lex $P954, "$/"
-    find_lex $P955, "$past"
-    $P956 = $P954."!make"($P955)
-.annotate 'line', 318
-    .return ($P956)
-  control_870:
+    find_lex $P884, "$past"
+    find_lex $P885, "$/"
+    unless_null $P885, vivify_322
+    $P885 = root_new ['parrot';'Hash']
+  vivify_322:
+    set $P886, $P885["identifier"]
+    unless_null $P886, vivify_323
+    new $P886, "Undef"
+  vivify_323:
+    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 
     .get_results (exception) 
-    getattribute $P957, exception, "payload"
-    .return ($P957)
+    getattribute $P891, exception, "payload"
+    .return ($P891)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block884"  :anon :subid("61_1277356919.52295") :outer("60_1277356919.52295")
-.annotate 'line', 325
-    $P886 = root_new ['parrot';'ResizablePMCArray']
-    .lex "@name", $P886
-    get_hll_global $P887, ["NQP"], "Compiler"
-    find_lex $P888, "$/"
-    set $S889, $P888
-    $P890 = $P887."parse_name"($S889)
-    store_lex "@name", $P890
-.annotate 'line', 326
-    get_hll_global $P891, ["PAST"], "Var"
-    find_lex $P892, "@name"
-    $P893 = $P892."pop"()
-    set $S894, $P893
-    $P895 = $P891."new"($S894 :named("name"))
-    store_lex "$past", $P895
-.annotate 'line', 327
-    find_lex $P897, "@name"
-    unless $P897, if_896_end
+.include "except_types.pasm"
+.sub "variable"  :subid("60_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_895
 .annotate 'line', 328
-    find_lex $P899, "@name"
-    unless_null $P899, vivify_320
-    $P899 = root_new ['parrot';'ResizablePMCArray']
-  vivify_320:
-    set $P900, $P899[0]
-    unless_null $P900, vivify_321
-    new $P900, "Undef"
-  vivify_321:
-    set $S901, $P900
-    iseq $I902, $S901, "GLOBAL"
-    unless $I902, if_898_end
-    find_lex $P903, "@name"
-    $P903."shift"()
-  if_898_end:
+    .const 'Sub' $P908 = "61_1280467483.70067" 
+    capture_lex $P908
+    new $P894, 'ExceptionHandler'
+    set_addr $P894, control_893
+    $P894."handle_types"(.CONTROL_RETURN)
+    push_eh $P894
+    .lex "self", self
+    .lex "$/", param_895
 .annotate 'line', 329
-    find_lex $P904, "$past"
-    find_lex $P905, "@name"
-    $P904."namespace"($P905)
+    new $P896, "Undef"
+    .lex "$past", $P896
+.annotate 'line', 328
+    find_lex $P897, "$past"
 .annotate 'line', 330
-    find_lex $P906, "$past"
-    $P906."scope"("package")
-.annotate 'line', 331
-    find_lex $P907, "$past"
-    find_lex $P908, "$/"
-    unless_null $P908, vivify_322
-    $P908 = root_new ['parrot';'Hash']
-  vivify_322:
-    set $P909, $P908["sigil"]
-    unless_null $P909, vivify_323
-    new $P909, "Undef"
-  vivify_323:
-    $P910 = "vivitype"($P909)
-    $P907."viviself"($P910)
-.annotate 'line', 332
-    find_lex $P911, "$past"
-    $P911."lvalue"(1)
-  if_896_end:
-.annotate 'line', 334
-    find_lex $P914, "$/"
-    unless_null $P914, vivify_324
-    $P914 = root_new ['parrot';'Hash']
+    find_lex $P899, "$/"
+    unless_null $P899, vivify_324
+    $P899 = root_new ['parrot';'Hash']
   vivify_324:
-    set $P915, $P914["twigil"]
-    unless_null $P915, vivify_325
-    $P915 = root_new ['parrot';'ResizablePMCArray']
+    set $P900, $P899["postcircumfix"]
+    unless_null $P900, vivify_325
+    new $P900, "Undef"
   vivify_325:
-    set $P916, $P915[0]
-    unless_null $P916, vivify_326
-    new $P916, "Undef"
-  vivify_326:
+    if $P900, if_898
+.annotate 'line', 334
+    .const 'Sub' $P908 = "61_1280467483.70067" 
+    capture_lex $P908
+    $P908()
+    goto if_898_end
+  if_898:
+.annotate 'line', 331
+    find_lex $P901, "$/"
+    unless_null $P901, vivify_342
+    $P901 = root_new ['parrot';'Hash']
+  vivify_342:
+    set $P902, $P901["postcircumfix"]
+    unless_null $P902, vivify_343
+    new $P902, "Undef"
+  vivify_343:
+    $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 
+    .get_results (exception) 
+    getattribute $P980, exception, "payload"
+    .return ($P980)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block907"  :anon :subid("61_1280467483.70067") :outer("60_1280467483.70067")
+.annotate 'line', 335
+    $P909 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@name", $P909
+    get_hll_global $P910, ["NQP"], "Compiler"
+    find_lex $P911, "$/"
+    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
-    iseq $I918, $S917, "*"
-    if $I918, if_913
-.annotate 'line', 347
-    find_lex $P940, "$/"
-    unless_null $P940, vivify_327
-    $P940 = root_new ['parrot';'Hash']
+    $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
+    $P922 = root_new ['parrot';'ResizablePMCArray']
+  vivify_326:
+    set $P923, $P922[0]
+    unless_null $P923, vivify_327
+    new $P923, "Undef"
   vivify_327:
-    set $P941, $P940["twigil"]
-    unless_null $P941, vivify_328
-    $P941 = root_new ['parrot';'ResizablePMCArray']
+    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
+    $P931 = root_new ['parrot';'Hash']
   vivify_328:
-    set $P942, $P941[0]
-    unless_null $P942, vivify_329
-    new $P942, "Undef"
+    set $P932, $P931["sigil"]
+    unless_null $P932, vivify_329
+    new $P932, "Undef"
   vivify_329:
-    set $S943, $P942
-    iseq $I944, $S943, "!"
-    if $I944, if_939
-    new $P938, 'Integer'
-    set $P938, $I944
-    goto if_939_end
-  if_939:
-.annotate 'line', 348
-    find_lex $P945, "$past"
-    get_hll_global $P946, ["PAST"], "Var"
-    $P947 = $P946."new"("self" :named("name"))
-    $P945."push"($P947)
-.annotate 'line', 349
-    find_lex $P948, "$past"
-    $P948."scope"("attribute")
-.annotate 'line', 350
-    find_lex $P949, "$past"
-    find_lex $P950, "$/"
-    unless_null $P950, vivify_330
-    $P950 = root_new ['parrot';'Hash']
+    $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
+    $P937 = root_new ['parrot';'Hash']
   vivify_330:
-    set $P951, $P950["sigil"]
-    unless_null $P951, vivify_331
-    new $P951, "Undef"
+    set $P938, $P937["twigil"]
+    unless_null $P938, vivify_331
+    $P938 = root_new ['parrot';'ResizablePMCArray']
   vivify_331:
-    $P952 = "vivitype"($P951)
-    $P953 = $P949."viviself"($P952)
-.annotate 'line', 347
-    set $P938, $P953
-  if_939_end:
-    set $P912, $P938
-.annotate 'line', 334
-    goto if_913_end
-  if_913:
-.annotate 'line', 335
-    find_lex $P919, "$past"
-    $P919."scope"("contextual")
-.annotate 'line', 336
-    find_lex $P920, "$past"
-.annotate 'line', 337
-    get_hll_global $P921, ["PAST"], "Var"
-.annotate 'line', 339
-    find_lex $P922, "$/"
-    unless_null $P922, vivify_332
-    $P922 = root_new ['parrot';'Hash']
+    set $P939, $P938[0]
+    unless_null $P939, vivify_332
+    new $P939, "Undef"
   vivify_332:
-    set $P923, $P922["sigil"]
-    unless_null $P923, vivify_333
-    new $P923, "Undef"
+    set $S940, $P939
+    iseq $I941, $S940, "*"
+    if $I941, if_936
+.annotate 'line', 357
+    find_lex $P963, "$/"
+    unless_null $P963, vivify_333
+    $P963 = root_new ['parrot';'Hash']
   vivify_333:
-    set $S924, $P923
-    new $P925, 'String'
-    set $P925, $S924
-    find_lex $P926, "$/"
-    unless_null $P926, vivify_334
-    $P926 = root_new ['parrot';'Hash']
+    set $P964, $P963["twigil"]
+    unless_null $P964, vivify_334
+    $P964 = root_new ['parrot';'ResizablePMCArray']
   vivify_334:
-    set $P927, $P926["desigilname"]
-    unless_null $P927, vivify_335
-    new $P927, "Undef"
+    set $P965, $P964[0]
+    unless_null $P965, vivify_335
+    new $P965, "Undef"
   vivify_335:
-    concat $P928, $P925, $P927
-.annotate 'line', 341
-    get_hll_global $P929, ["PAST"], "Op"
-    new $P930, "String"
-    assign $P930, "Contextual "
-    find_lex $P931, "$/"
-    set $S932, $P931
-    concat $P933, $P930, $S932
-    concat $P934, $P933, " not found"
-    $P935 = $P929."new"($P934, "die" :named("pirop"))
-    $P936 = $P921."new"("package" :named("scope"), "" :named("namespace"), $P928 :named("name"), $P935 :named("viviself"))
-.annotate 'line', 337
-    $P937 = $P920."viviself"($P936)
+    set $S966, $P965
+    iseq $I967, $S966, "!"
+    if $I967, if_962
+    new $P961, 'Integer'
+    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
+    $P973 = root_new ['parrot';'Hash']
+  vivify_336:
+    set $P974, $P973["sigil"]
+    unless_null $P974, vivify_337
+    new $P974, "Undef"
+  vivify_337:
+    $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
+    $P945 = root_new ['parrot';'Hash']
+  vivify_338:
+    set $P946, $P945["sigil"]
+    unless_null $P946, vivify_339
+    new $P946, "Undef"
+  vivify_339:
+    set $S947, $P946
+    new $P948, 'String'
+    set $P948, $S947
+    find_lex $P949, "$/"
+    unless_null $P949, vivify_340
+    $P949 = root_new ['parrot';'Hash']
+  vivify_340:
+    set $P950, $P949["desigilname"]
+    unless_null $P950, vivify_341
+    new $P950, "Undef"
+  vivify_341:
+    concat $P951, $P948, $P950
+.annotate 'line', 351
+    get_hll_global $P952, ["PAST"], "Op"
+    new $P953, "String"
+    assign $P953, "Contextual "
+    find_lex $P954, "$/"
+    set $S955, $P954
+    concat $P956, $P953, $S955
+    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
-    set $P912, $P937
-  if_913_end:
-.annotate 'line', 324
-    .return ($P912)
+    .return ($P935)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "package_declarator:sym<module>"  :subid("62_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_961
-.annotate 'line', 356
-    new $P960, 'ExceptionHandler'
-    set_addr $P960, control_959
-    $P960."handle_types"(.CONTROL_RETURN)
-    push_eh $P960
+.sub "package_declarator:sym<module>"  :subid("62_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_984
+.annotate 'line', 366
+    new $P983, 'ExceptionHandler'
+    set_addr $P983, control_982
+    $P983."handle_types"(.CONTROL_RETURN)
+    push_eh $P983
     .lex "self", self
-    .lex "$/", param_961
-    find_lex $P962, "$/"
-    find_lex $P963, "$/"
-    unless_null $P963, vivify_338
-    $P963 = root_new ['parrot';'Hash']
-  vivify_338:
-    set $P964, $P963["package_def"]
-    unless_null $P964, vivify_339
-    new $P964, "Undef"
-  vivify_339:
-    $P965 = $P964."ast"()
-    $P966 = $P962."!make"($P965)
-    .return ($P966)
-  control_959:
+    .lex "$/", param_984
+    find_lex $P985, "$/"
+    find_lex $P986, "$/"
+    unless_null $P986, vivify_344
+    $P986 = root_new ['parrot';'Hash']
+  vivify_344:
+    set $P987, $P986["package_def"]
+    unless_null $P987, vivify_345
+    new $P987, "Undef"
+  vivify_345:
+    $P988 = $P987."ast"()
+    $P989 = $P985."!make"($P988)
+    .return ($P989)
+  control_982:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P967, exception, "payload"
-    .return ($P967)
+    getattribute $P990, exception, "payload"
+    .return ($P990)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "package_declarator:sym<class>"  :subid("63_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_971
-.annotate 'line', 357
-    new $P970, 'ExceptionHandler'
-    set_addr $P970, control_969
-    $P970."handle_types"(.CONTROL_RETURN)
-    push_eh $P970
+.sub "package_declarator:sym<class>"  :subid("63_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_994
+.annotate 'line', 367
+    new $P993, 'ExceptionHandler'
+    set_addr $P993, control_992
+    $P993."handle_types"(.CONTROL_RETURN)
+    push_eh $P993
     .lex "self", self
-    .lex "$/", param_971
-.annotate 'line', 358
-    new $P972, "Undef"
-    .lex "$past", $P972
-.annotate 'line', 359
-    new $P973, "Undef"
-    .lex "$classinit", $P973
+    .lex "$/", param_994
 .annotate 'line', 368
-    new $P974, "Undef"
-    .lex "$parent", $P974
-.annotate 'line', 358
-    find_lex $P975, "$/"
-    unless_null $P975, vivify_340
-    $P975 = root_new ['parrot';'Hash']
-  vivify_340:
-    set $P976, $P975["package_def"]
-    unless_null $P976, vivify_341
-    new $P976, "Undef"
-  vivify_341:
-    $P977 = $P976."ast"()
-    store_lex "$past", $P977
-.annotate 'line', 360
-    get_hll_global $P978, ["PAST"], "Op"
-.annotate 'line', 361
-    get_hll_global $P979, ["PAST"], "Op"
-    $P980 = $P979."new"("    %r = get_root_global [\"parrot\"], \"P6metaclass\"" :named("inline"))
-.annotate 'line', 364
-    find_lex $P981, "$/"
-    unless_null $P981, vivify_342
-    $P981 = root_new ['parrot';'Hash']
-  vivify_342:
-    set $P982, $P981["package_def"]
-    unless_null $P982, vivify_343
-    $P982 = root_new ['parrot';'Hash']
-  vivify_343:
-    set $P983, $P982["name"]
-    unless_null $P983, vivify_344
-    new $P983, "Undef"
-  vivify_344:
-    set $S984, $P983
-    $P985 = $P978."new"($P980, $S984, "new_class" :named("name"), "callmethod" :named("pasttype"))
-.annotate 'line', 360
-    store_lex "$classinit", $P985
+    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 $P988, "$/"
-    unless_null $P988, vivify_345
-    $P988 = root_new ['parrot';'Hash']
-  vivify_345:
-    set $P989, $P988["package_def"]
-    unless_null $P989, vivify_346
-    $P989 = root_new ['parrot';'Hash']
+    find_lex $P998, "$/"
+    unless_null $P998, vivify_346
+    $P998 = root_new ['parrot';'Hash']
   vivify_346:
-    set $P990, $P989["parent"]
-    unless_null $P990, vivify_347
-    $P990 = root_new ['parrot';'ResizablePMCArray']
+    set $P999, $P998["package_def"]
+    unless_null $P999, vivify_347
+    new $P999, "Undef"
   vivify_347:
-    set $P991, $P990[0]
-    unless_null $P991, vivify_348
-    new $P991, "Undef"
+    $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
+    $P1004 = root_new ['parrot';'Hash']
   vivify_348:
-    set $S992, $P991
-    unless $S992, unless_987
-    new $P986, 'String'
-    set $P986, $S992
-    goto unless_987_end
-  unless_987:
-.annotate 'line', 369
-    find_lex $P995, "$/"
-    unless_null $P995, vivify_349
-    $P995 = root_new ['parrot';'Hash']
+    set $P1005, $P1004["package_def"]
+    unless_null $P1005, vivify_349
+    $P1005 = root_new ['parrot';'Hash']
   vivify_349:
-    set $P996, $P995["sym"]
-    unless_null $P996, vivify_350
-    new $P996, "Undef"
+    set $P1006, $P1005["name"]
+    unless_null $P1006, vivify_350
+    new $P1006, "Undef"
   vivify_350:
-    set $S997, $P996
-    iseq $I998, $S997, "grammar"
-    if $I998, if_994
-    new $P1000, "String"
-    assign $P1000, ""
-    set $P993, $P1000
-    goto if_994_end
-  if_994:
-    new $P999, "String"
-    assign $P999, "Regex::Cursor"
-    set $P993, $P999
-  if_994_end:
-    set $P986, $P993
-  unless_987_end:
-    store_lex "$parent", $P986
+    set $S1007, $P1006
+    $P1008 = $P1001."new"($P1003, $S1007, "new_class" :named("name"), "callmethod" :named("pasttype"))
 .annotate 'line', 370
-    find_lex $P1002, "$parent"
-    unless $P1002, if_1001_end
-.annotate 'line', 371
-    find_lex $P1003, "$classinit"
-    get_hll_global $P1004, ["PAST"], "Val"
-    find_lex $P1005, "$parent"
-    $P1006 = $P1004."new"($P1005 :named("value"), "parent" :named("named"))
-    $P1003."push"($P1006)
-  if_1001_end:
-.annotate 'line', 373
-    find_lex $P1008, "$past"
-    unless_null $P1008, vivify_351
-    $P1008 = root_new ['parrot';'Hash']
+    store_lex "$classinit", $P1008
+.annotate 'line', 378
+    find_lex $P1011, "$/"
+    unless_null $P1011, vivify_351
+    $P1011 = root_new ['parrot';'Hash']
   vivify_351:
-    set $P1009, $P1008["attributes"]
-    unless_null $P1009, vivify_352
-    new $P1009, "Undef"
+    set $P1012, $P1011["package_def"]
+    unless_null $P1012, vivify_352
+    $P1012 = root_new ['parrot';'Hash']
   vivify_352:
-    unless $P1009, if_1007_end
-.annotate 'line', 374
-    find_lex $P1010, "$classinit"
-    find_lex $P1011, "$past"
-    unless_null $P1011, vivify_353
-    $P1011 = root_new ['parrot';'Hash']
-  vivify_353:
-    set $P1012, $P1011["attributes"]
-    unless_null $P1012, vivify_354
-    new $P1012, "Undef"
-  vivify_354:
-    $P1010."push"($P1012)
-  if_1007_end:
-.annotate 'line', 376
-    get_global $P1013, "@BLOCK"
-    unless_null $P1013, vivify_355
+    set $P1013, $P1012["parent"]
+    unless_null $P1013, vivify_353
     $P1013 = root_new ['parrot';'ResizablePMCArray']
-  vivify_355:
+  vivify_353:
     set $P1014, $P1013[0]
-    unless_null $P1014, vivify_356
+    unless_null $P1014, vivify_354
     new $P1014, "Undef"
+  vivify_354:
+    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
+    $P1018 = root_new ['parrot';'Hash']
+  vivify_355:
+    set $P1019, $P1018["sym"]
+    unless_null $P1019, vivify_356
+    new $P1019, "Undef"
   vivify_356:
-    $P1015 = $P1014."loadinit"()
-    find_lex $P1016, "$classinit"
-    $P1015."push"($P1016)
-.annotate 'line', 377
-    find_lex $P1017, "$/"
-    find_lex $P1018, "$past"
-    $P1019 = $P1017."!make"($P1018)
-.annotate 'line', 357
-    .return ($P1019)
-  control_969:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1020, exception, "payload"
-    .return ($P1020)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "package_def"  :subid("64_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1024
+    set $S1020, $P1019
+    iseq $I1021, $S1020, "grammar"
+    if $I1021, if_1017
+    new $P1023, "String"
+    assign $P1023, ""
+    set $P1016, $P1023
+    goto if_1017_end
+  if_1017:
+    new $P1022, "String"
+    assign $P1022, "Regex::Cursor"
+    set $P1016, $P1022
+  if_1017_end:
+    set $P1009, $P1016
+  unless_1010_end:
+    store_lex "$parent", $P1009
 .annotate 'line', 380
-    new $P1023, 'ExceptionHandler'
-    set_addr $P1023, control_1022
-    $P1023."handle_types"(.CONTROL_RETURN)
-    push_eh $P1023
-    .lex "self", self
-    .lex "$/", param_1024
+    find_lex $P1025, "$parent"
+    unless $P1025, if_1024_end
 .annotate 'line', 381
-    new $P1025, "Undef"
-    .lex "$past", $P1025
-    find_lex $P1028, "$/"
-    unless_null $P1028, vivify_357
-    $P1028 = root_new ['parrot';'Hash']
+    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
+    $P1031 = root_new ['parrot';'Hash']
   vivify_357:
-    set $P1029, $P1028["block"]
-    unless_null $P1029, vivify_358
-    new $P1029, "Undef"
+    set $P1032, $P1031["attributes"]
+    unless_null $P1032, vivify_358
+    new $P1032, "Undef"
   vivify_358:
-    if $P1029, if_1027
-    find_lex $P1033, "$/"
-    unless_null $P1033, vivify_359
-    $P1033 = root_new ['parrot';'Hash']
+    unless $P1032, if_1030_end
+.annotate 'line', 384
+    find_lex $P1033, "$classinit"
+    find_lex $P1034, "$past"
+    unless_null $P1034, vivify_359
+    $P1034 = root_new ['parrot';'Hash']
   vivify_359:
-    set $P1034, $P1033["comp_unit"]
-    unless_null $P1034, vivify_360
-    new $P1034, "Undef"
+    set $P1035, $P1034["attributes"]
+    unless_null $P1035, vivify_360
+    new $P1035, "Undef"
   vivify_360:
-    $P1035 = $P1034."ast"()
-    set $P1026, $P1035
-    goto if_1027_end
-  if_1027:
-    find_lex $P1030, "$/"
-    unless_null $P1030, vivify_361
-    $P1030 = root_new ['parrot';'Hash']
+    $P1033."push"($P1035)
+  if_1030_end:
+.annotate 'line', 386
+    get_global $P1036, "@BLOCK"
+    unless_null $P1036, vivify_361
+    $P1036 = root_new ['parrot';'ResizablePMCArray']
   vivify_361:
-    set $P1031, $P1030["block"]
-    unless_null $P1031, vivify_362
-    new $P1031, "Undef"
+    set $P1037, $P1036[0]
+    unless_null $P1037, vivify_362
+    new $P1037, "Undef"
   vivify_362:
-    $P1032 = $P1031."ast"()
-    set $P1026, $P1032
-  if_1027_end:
-    store_lex "$past", $P1026
-.annotate 'line', 382
-    find_lex $P1036, "$past"
-    find_lex $P1037, "$/"
-    unless_null $P1037, vivify_363
-    $P1037 = root_new ['parrot';'Hash']
-  vivify_363:
-    set $P1038, $P1037["name"]
-    unless_null $P1038, vivify_364
-    $P1038 = root_new ['parrot';'Hash']
-  vivify_364:
-    set $P1039, $P1038["identifier"]
-    unless_null $P1039, vivify_365
-    new $P1039, "Undef"
-  vivify_365:
-    $P1036."namespace"($P1039)
-.annotate 'line', 383
-    find_lex $P1040, "$past"
-    $P1040."blocktype"("immediate")
-.annotate 'line', 384
-    find_lex $P1041, "$/"
-    find_lex $P1042, "$past"
-    $P1043 = $P1041."!make"($P1042)
-.annotate 'line', 380
-    .return ($P1043)
-  control_1022:
+    $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 
     .get_results (exception) 
-    getattribute $P1044, exception, "payload"
-    .return ($P1044)
+    getattribute $P1043, exception, "payload"
+    .return ($P1043)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scope_declarator:sym<my>"  :subid("65_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1048
-.annotate 'line', 387
-    new $P1047, 'ExceptionHandler'
-    set_addr $P1047, control_1046
-    $P1047."handle_types"(.CONTROL_RETURN)
-    push_eh $P1047
-    .lex "self", self
-    .lex "$/", param_1048
-    find_lex $P1049, "$/"
-    find_lex $P1050, "$/"
-    unless_null $P1050, vivify_366
-    $P1050 = root_new ['parrot';'Hash']
-  vivify_366:
-    set $P1051, $P1050["scoped"]
-    unless_null $P1051, vivify_367
-    new $P1051, "Undef"
-  vivify_367:
-    $P1052 = $P1051."ast"()
-    $P1053 = $P1049."!make"($P1052)
-    .return ($P1053)
-  control_1046:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1054, exception, "payload"
-    .return ($P1054)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "scope_declarator:sym<our>"  :subid("66_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1058
-.annotate 'line', 388
-    new $P1057, 'ExceptionHandler'
-    set_addr $P1057, control_1056
-    $P1057."handle_types"(.CONTROL_RETURN)
-    push_eh $P1057
+.sub "package_def"  :subid("64_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1047
+.annotate 'line', 390
+    new $P1046, 'ExceptionHandler'
+    set_addr $P1046, control_1045
+    $P1046."handle_types"(.CONTROL_RETURN)
+    push_eh $P1046
     .lex "self", self
-    .lex "$/", param_1058
-    find_lex $P1059, "$/"
+    .lex "$/", param_1047
+.annotate 'line', 391
+    new $P1048, "Undef"
+    .lex "$past", $P1048
+    find_lex $P1051, "$/"
+    unless_null $P1051, vivify_363
+    $P1051 = root_new ['parrot';'Hash']
+  vivify_363:
+    set $P1052, $P1051["block"]
+    unless_null $P1052, vivify_364
+    new $P1052, "Undef"
+  vivify_364:
+    if $P1052, if_1050
+    find_lex $P1056, "$/"
+    unless_null $P1056, vivify_365
+    $P1056 = root_new ['parrot';'Hash']
+  vivify_365:
+    set $P1057, $P1056["comp_unit"]
+    unless_null $P1057, vivify_366
+    new $P1057, "Undef"
+  vivify_366:
+    $P1058 = $P1057."ast"()
+    set $P1049, $P1058
+    goto if_1050_end
+  if_1050:
+    find_lex $P1053, "$/"
+    unless_null $P1053, vivify_367
+    $P1053 = root_new ['parrot';'Hash']
+  vivify_367:
+    set $P1054, $P1053["block"]
+    unless_null $P1054, vivify_368
+    new $P1054, "Undef"
+  vivify_368:
+    $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_368
+    unless_null $P1060, vivify_369
     $P1060 = root_new ['parrot';'Hash']
-  vivify_368:
-    set $P1061, $P1060["scoped"]
-    unless_null $P1061, vivify_369
-    new $P1061, "Undef"
   vivify_369:
-    $P1062 = $P1061."ast"()
-    $P1063 = $P1059."!make"($P1062)
-    .return ($P1063)
-  control_1056:
+    set $P1061, $P1060["name"]
+    unless_null $P1061, vivify_370
+    $P1061 = root_new ['parrot';'Hash']
+  vivify_370:
+    set $P1062, $P1061["identifier"]
+    unless_null $P1062, vivify_371
+    new $P1062, "Undef"
+  vivify_371:
+    $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 
     .get_results (exception) 
-    getattribute $P1064, exception, "payload"
-    .return ($P1064)
+    getattribute $P1067, exception, "payload"
+    .return ($P1067)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scope_declarator:sym<has>"  :subid("67_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1068
-.annotate 'line', 389
-    new $P1067, 'ExceptionHandler'
-    set_addr $P1067, control_1066
-    $P1067."handle_types"(.CONTROL_RETURN)
-    push_eh $P1067
-    .lex "self", self
-    .lex "$/", param_1068
-    find_lex $P1069, "$/"
-    find_lex $P1070, "$/"
-    unless_null $P1070, vivify_370
-    $P1070 = root_new ['parrot';'Hash']
-  vivify_370:
-    set $P1071, $P1070["scoped"]
-    unless_null $P1071, vivify_371
-    new $P1071, "Undef"
-  vivify_371:
-    $P1072 = $P1071."ast"()
-    $P1073 = $P1069."!make"($P1072)
-    .return ($P1073)
-  control_1066:
+.sub "scope_declarator:sym<my>"  :subid("65_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1071
+.annotate 'line', 397
+    new $P1070, 'ExceptionHandler'
+    set_addr $P1070, control_1069
+    $P1070."handle_types"(.CONTROL_RETURN)
+    push_eh $P1070
+    .lex "self", self
+    .lex "$/", param_1071
+    find_lex $P1072, "$/"
+    find_lex $P1073, "$/"
+    unless_null $P1073, vivify_372
+    $P1073 = root_new ['parrot';'Hash']
+  vivify_372:
+    set $P1074, $P1073["scoped"]
+    unless_null $P1074, vivify_373
+    new $P1074, "Undef"
+  vivify_373:
+    $P1075 = $P1074."ast"()
+    $P1076 = $P1072."!make"($P1075)
+    .return ($P1076)
+  control_1069:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1074, exception, "payload"
-    .return ($P1074)
+    getattribute $P1077, exception, "payload"
+    .return ($P1077)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scoped"  :subid("68_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1078
-.annotate 'line', 391
-    new $P1077, 'ExceptionHandler'
-    set_addr $P1077, control_1076
-    $P1077."handle_types"(.CONTROL_RETURN)
-    push_eh $P1077
+.sub "scope_declarator:sym<our>"  :subid("66_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1081
+.annotate 'line', 398
+    new $P1080, 'ExceptionHandler'
+    set_addr $P1080, control_1079
+    $P1080."handle_types"(.CONTROL_RETURN)
+    push_eh $P1080
     .lex "self", self
-    .lex "$/", param_1078
-.annotate 'line', 392
-    find_lex $P1079, "$/"
-.annotate 'line', 393
+    .lex "$/", param_1081
     find_lex $P1082, "$/"
-    unless_null $P1082, vivify_372
-    $P1082 = root_new ['parrot';'Hash']
-  vivify_372:
-    set $P1083, $P1082["declarator"]
-    unless_null $P1083, vivify_373
-    new $P1083, "Undef"
-  vivify_373:
-    if $P1083, if_1081
-.annotate 'line', 394
-    find_lex $P1087, "$/"
-    unless_null $P1087, vivify_374
-    $P1087 = root_new ['parrot';'Hash']
+    find_lex $P1083, "$/"
+    unless_null $P1083, vivify_374
+    $P1083 = root_new ['parrot';'Hash']
   vivify_374:
-    set $P1088, $P1087["multi_declarator"]
-    unless_null $P1088, vivify_375
-    new $P1088, "Undef"
+    set $P1084, $P1083["scoped"]
+    unless_null $P1084, vivify_375
+    new $P1084, "Undef"
   vivify_375:
-    $P1089 = $P1088."ast"()
-    set $P1080, $P1089
-.annotate 'line', 393
-    goto if_1081_end
-  if_1081:
-    find_lex $P1084, "$/"
-    unless_null $P1084, vivify_376
-    $P1084 = root_new ['parrot';'Hash']
+    $P1085 = $P1084."ast"()
+    $P1086 = $P1082."!make"($P1085)
+    .return ($P1086)
+  control_1079:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1087, exception, "payload"
+    .return ($P1087)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "scope_declarator:sym<has>"  :subid("67_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1091
+.annotate 'line', 399
+    new $P1090, 'ExceptionHandler'
+    set_addr $P1090, control_1089
+    $P1090."handle_types"(.CONTROL_RETURN)
+    push_eh $P1090
+    .lex "self", self
+    .lex "$/", param_1091
+    find_lex $P1092, "$/"
+    find_lex $P1093, "$/"
+    unless_null $P1093, vivify_376
+    $P1093 = root_new ['parrot';'Hash']
   vivify_376:
-    set $P1085, $P1084["declarator"]
-    unless_null $P1085, vivify_377
-    new $P1085, "Undef"
+    set $P1094, $P1093["scoped"]
+    unless_null $P1094, vivify_377
+    new $P1094, "Undef"
   vivify_377:
-    $P1086 = $P1085."ast"()
-    set $P1080, $P1086
-  if_1081_end:
-    $P1090 = $P1079."!make"($P1080)
-.annotate 'line', 391
-    .return ($P1090)
-  control_1076:
+    $P1095 = $P1094."ast"()
+    $P1096 = $P1092."!make"($P1095)
+    .return ($P1096)
+  control_1089:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1091, exception, "payload"
-    .return ($P1091)
+    getattribute $P1097, exception, "payload"
+    .return ($P1097)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "declarator"  :subid("69_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1095
-.annotate 'line', 397
-    new $P1094, 'ExceptionHandler'
-    set_addr $P1094, control_1093
-    $P1094."handle_types"(.CONTROL_RETURN)
-    push_eh $P1094
+.sub "scoped"  :subid("68_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1101
+.annotate 'line', 401
+    new $P1100, 'ExceptionHandler'
+    set_addr $P1100, control_1099
+    $P1100."handle_types"(.CONTROL_RETURN)
+    push_eh $P1100
     .lex "self", self
-    .lex "$/", param_1095
-.annotate 'line', 398
-    find_lex $P1096, "$/"
-.annotate 'line', 399
-    find_lex $P1099, "$/"
-    unless_null $P1099, vivify_378
-    $P1099 = root_new ['parrot';'Hash']
+    .lex "$/", param_1101
+.annotate 'line', 402
+    find_lex $P1102, "$/"
+.annotate 'line', 403
+    find_lex $P1105, "$/"
+    unless_null $P1105, vivify_378
+    $P1105 = root_new ['parrot';'Hash']
   vivify_378:
-    set $P1100, $P1099["routine_declarator"]
-    unless_null $P1100, vivify_379
-    new $P1100, "Undef"
+    set $P1106, $P1105["declarator"]
+    unless_null $P1106, vivify_379
+    new $P1106, "Undef"
   vivify_379:
-    if $P1100, if_1098
-.annotate 'line', 400
-    find_lex $P1104, "$/"
-    unless_null $P1104, vivify_380
-    $P1104 = root_new ['parrot';'Hash']
+    if $P1106, if_1104
+.annotate 'line', 404
+    find_lex $P1110, "$/"
+    unless_null $P1110, vivify_380
+    $P1110 = root_new ['parrot';'Hash']
   vivify_380:
-    set $P1105, $P1104["variable_declarator"]
-    unless_null $P1105, vivify_381
-    new $P1105, "Undef"
+    set $P1111, $P1110["multi_declarator"]
+    unless_null $P1111, vivify_381
+    new $P1111, "Undef"
   vivify_381:
-    $P1106 = $P1105."ast"()
-    set $P1097, $P1106
-.annotate 'line', 399
-    goto if_1098_end
-  if_1098:
-    find_lex $P1101, "$/"
-    unless_null $P1101, vivify_382
-    $P1101 = root_new ['parrot';'Hash']
+    $P1112 = $P1111."ast"()
+    set $P1103, $P1112
+.annotate 'line', 403
+    goto if_1104_end
+  if_1104:
+    find_lex $P1107, "$/"
+    unless_null $P1107, vivify_382
+    $P1107 = root_new ['parrot';'Hash']
   vivify_382:
-    set $P1102, $P1101["routine_declarator"]
-    unless_null $P1102, vivify_383
-    new $P1102, "Undef"
+    set $P1108, $P1107["declarator"]
+    unless_null $P1108, vivify_383
+    new $P1108, "Undef"
   vivify_383:
-    $P1103 = $P1102."ast"()
-    set $P1097, $P1103
-  if_1098_end:
-    $P1107 = $P1096."!make"($P1097)
-.annotate 'line', 397
-    .return ($P1107)
-  control_1093:
+    $P1109 = $P1108."ast"()
+    set $P1103, $P1109
+  if_1104_end:
+    $P1113 = $P1102."!make"($P1103)
+.annotate 'line', 401
+    .return ($P1113)
+  control_1099:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1108, exception, "payload"
-    .return ($P1108)
+    getattribute $P1114, exception, "payload"
+    .return ($P1114)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "multi_declarator:sym<multi>"  :subid("70_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1112
-.annotate 'line', 403
-    new $P1111, 'ExceptionHandler'
-    set_addr $P1111, control_1110
-    $P1111."handle_types"(.CONTROL_RETURN)
-    push_eh $P1111
-    .lex "self", self
-    .lex "$/", param_1112
-    find_lex $P1113, "$/"
-    find_lex $P1116, "$/"
-    unless_null $P1116, vivify_384
-    $P1116 = root_new ['parrot';'Hash']
+.sub "declarator"  :subid("69_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1118
+.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
+    $P1122 = root_new ['parrot';'Hash']
   vivify_384:
-    set $P1117, $P1116["declarator"]
-    unless_null $P1117, vivify_385
-    new $P1117, "Undef"
+    set $P1123, $P1122["routine_declarator"]
+    unless_null $P1123, vivify_385
+    new $P1123, "Undef"
   vivify_385:
-    if $P1117, if_1115
-    find_lex $P1121, "$/"
-    unless_null $P1121, vivify_386
-    $P1121 = root_new ['parrot';'Hash']
+    if $P1123, if_1121
+.annotate 'line', 410
+    find_lex $P1127, "$/"
+    unless_null $P1127, vivify_386
+    $P1127 = root_new ['parrot';'Hash']
   vivify_386:
-    set $P1122, $P1121["routine_def"]
-    unless_null $P1122, vivify_387
-    new $P1122, "Undef"
+    set $P1128, $P1127["variable_declarator"]
+    unless_null $P1128, vivify_387
+    new $P1128, "Undef"
   vivify_387:
-    $P1123 = $P1122."ast"()
-    set $P1114, $P1123
-    goto if_1115_end
-  if_1115:
-    find_lex $P1118, "$/"
-    unless_null $P1118, vivify_388
-    $P1118 = root_new ['parrot';'Hash']
+    $P1129 = $P1128."ast"()
+    set $P1120, $P1129
+.annotate 'line', 409
+    goto if_1121_end
+  if_1121:
+    find_lex $P1124, "$/"
+    unless_null $P1124, vivify_388
+    $P1124 = root_new ['parrot';'Hash']
   vivify_388:
-    set $P1119, $P1118["declarator"]
-    unless_null $P1119, vivify_389
-    new $P1119, "Undef"
+    set $P1125, $P1124["routine_declarator"]
+    unless_null $P1125, vivify_389
+    new $P1125, "Undef"
   vivify_389:
-    $P1120 = $P1119."ast"()
-    set $P1114, $P1120
-  if_1115_end:
-    $P1124 = $P1113."!make"($P1114)
-    .return ($P1124)
-  control_1110:
+    $P1126 = $P1125."ast"()
+    set $P1120, $P1126
+  if_1121_end:
+    $P1130 = $P1119."!make"($P1120)
+.annotate 'line', 407
+    .return ($P1130)
+  control_1116:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1125, exception, "payload"
-    .return ($P1125)
+    getattribute $P1131, exception, "payload"
+    .return ($P1131)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "multi_declarator:sym<null>"  :subid("71_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1129
-.annotate 'line', 404
-    new $P1128, 'ExceptionHandler'
-    set_addr $P1128, control_1127
-    $P1128."handle_types"(.CONTROL_RETURN)
-    push_eh $P1128
-    .lex "self", self
-    .lex "$/", param_1129
-    find_lex $P1130, "$/"
-    find_lex $P1131, "$/"
-    unless_null $P1131, vivify_390
-    $P1131 = root_new ['parrot';'Hash']
+.sub "multi_declarator:sym<multi>"  :subid("70_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1135
+.annotate 'line', 413
+    new $P1134, 'ExceptionHandler'
+    set_addr $P1134, control_1133
+    $P1134."handle_types"(.CONTROL_RETURN)
+    push_eh $P1134
+    .lex "self", self
+    .lex "$/", param_1135
+    find_lex $P1136, "$/"
+    find_lex $P1139, "$/"
+    unless_null $P1139, vivify_390
+    $P1139 = root_new ['parrot';'Hash']
   vivify_390:
-    set $P1132, $P1131["declarator"]
-    unless_null $P1132, vivify_391
-    new $P1132, "Undef"
-  vivify_391:
-    $P1133 = $P1132."ast"()
-    $P1134 = $P1130."!make"($P1133)
-    .return ($P1134)
-  control_1127:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1135, exception, "payload"
-    .return ($P1135)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "variable_declarator"  :subid("72_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1139
-.annotate 'line', 407
-    .const 'Sub' $P1179 = "73_1277356919.52295" 
-    capture_lex $P1179
-    new $P1138, 'ExceptionHandler'
-    set_addr $P1138, control_1137
-    $P1138."handle_types"(.CONTROL_RETURN)
-    push_eh $P1138
-    .lex "self", self
-    .lex "$/", param_1139
-.annotate 'line', 408
+    set $P1140, $P1139["declarator"]
+    unless_null $P1140, vivify_391
     new $P1140, "Undef"
-    .lex "$past", $P1140
-.annotate 'line', 409
-    new $P1141, "Undef"
-    .lex "$sigil", $P1141
-.annotate 'line', 410
-    new $P1142, "Undef"
-    .lex "$name", $P1142
-.annotate 'line', 411
-    new $P1143, "Undef"
-    .lex "$BLOCK", $P1143
-.annotate 'line', 408
+  vivify_391:
+    if $P1140, if_1138
     find_lex $P1144, "$/"
     unless_null $P1144, vivify_392
     $P1144 = root_new ['parrot';'Hash']
   vivify_392:
-    set $P1145, $P1144["variable"]
+    set $P1145, $P1144["routine_def"]
     unless_null $P1145, vivify_393
     new $P1145, "Undef"
   vivify_393:
     $P1146 = $P1145."ast"()
-    store_lex "$past", $P1146
-.annotate 'line', 409
-    find_lex $P1147, "$/"
-    unless_null $P1147, vivify_394
-    $P1147 = root_new ['parrot';'Hash']
+    set $P1137, $P1146
+    goto if_1138_end
+  if_1138:
+    find_lex $P1141, "$/"
+    unless_null $P1141, vivify_394
+    $P1141 = root_new ['parrot';'Hash']
   vivify_394:
-    set $P1148, $P1147["variable"]
-    unless_null $P1148, vivify_395
-    $P1148 = root_new ['parrot';'Hash']
+    set $P1142, $P1141["declarator"]
+    unless_null $P1142, vivify_395
+    new $P1142, "Undef"
   vivify_395:
-    set $P1149, $P1148["sigil"]
-    unless_null $P1149, vivify_396
-    new $P1149, "Undef"
+    $P1143 = $P1142."ast"()
+    set $P1137, $P1143
+  if_1138_end:
+    $P1147 = $P1136."!make"($P1137)
+    .return ($P1147)
+  control_1133:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1148, exception, "payload"
+    .return ($P1148)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "multi_declarator:sym<null>"  :subid("71_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1152
+.annotate 'line', 414
+    new $P1151, 'ExceptionHandler'
+    set_addr $P1151, control_1150
+    $P1151."handle_types"(.CONTROL_RETURN)
+    push_eh $P1151
+    .lex "self", self
+    .lex "$/", param_1152
+    find_lex $P1153, "$/"
+    find_lex $P1154, "$/"
+    unless_null $P1154, vivify_396
+    $P1154 = root_new ['parrot';'Hash']
   vivify_396:
-    store_lex "$sigil", $P1149
-.annotate 'line', 410
-    find_lex $P1150, "$past"
-    $P1151 = $P1150."name"()
-    store_lex "$name", $P1151
-.annotate 'line', 411
-    get_global $P1152, "@BLOCK"
-    unless_null $P1152, vivify_397
-    $P1152 = root_new ['parrot';'ResizablePMCArray']
+    set $P1155, $P1154["declarator"]
+    unless_null $P1155, vivify_397
+    new $P1155, "Undef"
   vivify_397:
-    set $P1153, $P1152[0]
-    unless_null $P1153, vivify_398
-    new $P1153, "Undef"
-  vivify_398:
-    store_lex "$BLOCK", $P1153
-.annotate 'line', 412
-    find_lex $P1155, "$BLOCK"
-    find_lex $P1156, "$name"
-    $P1157 = $P1155."symbol"($P1156)
-    unless $P1157, if_1154_end
-.annotate 'line', 413
-    find_lex $P1158, "$/"
-    $P1159 = $P1158."CURSOR"()
-    find_lex $P1160, "$name"
-    $P1159."panic"("Redeclaration of symbol ", $P1160)
-  if_1154_end:
-.annotate 'line', 415
-    find_dynamic_lex $P1162, "$*SCOPE"
-    unless_null $P1162, vivify_399
-    get_hll_global $P1162, "$SCOPE"
-    unless_null $P1162, vivify_400
-    die "Contextual $*SCOPE not found"
-  vivify_400:
-  vivify_399:
-    set $S1163, $P1162
-    iseq $I1164, $S1163, "has"
-    if $I1164, if_1161
-.annotate 'line', 424
-    .const 'Sub' $P1179 = "73_1277356919.52295" 
-    capture_lex $P1179
-    $P1179()
-    goto if_1161_end
-  if_1161:
-.annotate 'line', 416
-    find_lex $P1165, "$BLOCK"
-    find_lex $P1166, "$name"
-    $P1165."symbol"($P1166, "attribute" :named("scope"))
-.annotate 'line', 417
-    find_lex $P1168, "$BLOCK"
-    unless_null $P1168, vivify_405
-    $P1168 = root_new ['parrot';'Hash']
-  vivify_405:
-    set $P1169, $P1168["attributes"]
-    unless_null $P1169, vivify_406
-    new $P1169, "Undef"
-  vivify_406:
-    if $P1169, unless_1167_end
-.annotate 'line', 419
-    get_hll_global $P1170, ["PAST"], "Op"
-    $P1171 = $P1170."new"("list" :named("pasttype"), "attr" :named("named"))
-    find_lex $P1172, "$BLOCK"
-    unless_null $P1172, vivify_407
-    $P1172 = root_new ['parrot';'Hash']
-    store_lex "$BLOCK", $P1172
-  vivify_407:
-    set $P1172["attributes"], $P1171
-  unless_1167_end:
-.annotate 'line', 421
-    find_lex $P1173, "$BLOCK"
-    unless_null $P1173, vivify_408
-    $P1173 = root_new ['parrot';'Hash']
-  vivify_408:
-    set $P1174, $P1173["attributes"]
-    unless_null $P1174, vivify_409
-    new $P1174, "Undef"
-  vivify_409:
-    find_lex $P1175, "$name"
-    $P1174."push"($P1175)
-.annotate 'line', 422
-    get_hll_global $P1176, ["PAST"], "Stmts"
-    $P1177 = $P1176."new"()
-    store_lex "$past", $P1177
-  if_1161_end:
-.annotate 'line', 432
-    find_lex $P1203, "$/"
-    find_lex $P1204, "$past"
-    $P1205 = $P1203."!make"($P1204)
-.annotate 'line', 407
-    .return ($P1205)
-  control_1137:
+    $P1156 = $P1155."ast"()
+    $P1157 = $P1153."!make"($P1156)
+    .return ($P1157)
+  control_1150:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1206, exception, "payload"
-    .return ($P1206)
+    getattribute $P1158, exception, "payload"
+    .return ($P1158)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1178"  :anon :subid("73_1277356919.52295") :outer("72_1277356919.52295")
-.annotate 'line', 425
-    new $P1180, "Undef"
-    .lex "$scope", $P1180
-.annotate 'line', 426
-    new $P1181, "Undef"
-    .lex "$decl", $P1181
+.include "except_types.pasm"
+.sub "variable_declarator"  :subid("72_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1162
+.annotate 'line', 417
+    .const 'Sub' $P1202 = "73_1280467483.70067" 
+    capture_lex $P1202
+    new $P1161, 'ExceptionHandler'
+    set_addr $P1161, control_1160
+    $P1161."handle_types"(.CONTROL_RETURN)
+    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
+    $P1167 = root_new ['parrot';'Hash']
+  vivify_398:
+    set $P1168, $P1167["variable"]
+    unless_null $P1168, vivify_399
+    new $P1168, "Undef"
+  vivify_399:
+    $P1169 = $P1168."ast"()
+    store_lex "$past", $P1169
+.annotate 'line', 419
+    find_lex $P1170, "$/"
+    unless_null $P1170, vivify_400
+    $P1170 = root_new ['parrot';'Hash']
+  vivify_400:
+    set $P1171, $P1170["variable"]
+    unless_null $P1171, vivify_401
+    $P1171 = root_new ['parrot';'Hash']
+  vivify_401:
+    set $P1172, $P1171["sigil"]
+    unless_null $P1172, vivify_402
+    new $P1172, "Undef"
+  vivify_402:
+    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
+    $P1175 = root_new ['parrot';'ResizablePMCArray']
+  vivify_403:
+    set $P1176, $P1175[0]
+    unless_null $P1176, vivify_404
+    new $P1176, "Undef"
+  vivify_404:
+    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 $P1184, "$*SCOPE"
-    unless_null $P1184, vivify_401
-    get_hll_global $P1184, "$SCOPE"
-    unless_null $P1184, vivify_402
+    find_dynamic_lex $P1185, "$*SCOPE"
+    unless_null $P1185, vivify_405
+    get_hll_global $P1185, "$SCOPE"
+    unless_null $P1185, vivify_406
     die "Contextual $*SCOPE not found"
-  vivify_402:
-  vivify_401:
-    set $S1185, $P1184
-    iseq $I1186, $S1185, "our"
-    if $I1186, if_1183
-    new $P1188, "String"
-    assign $P1188, "lexical"
-    set $P1182, $P1188
-    goto if_1183_end
-  if_1183:
-    new $P1187, "String"
-    assign $P1187, "package"
-    set $P1182, $P1187
-  if_1183_end:
-    store_lex "$scope", $P1182
+  vivify_406:
+  vivify_405:
+    set $S1186, $P1185
+    iseq $I1187, $S1186, "has"
+    if $I1187, if_1184
+.annotate 'line', 434
+    .const 'Sub' $P1202 = "73_1280467483.70067" 
+    capture_lex $P1202
+    $P1202()
+    goto if_1184_end
+  if_1184:
 .annotate 'line', 426
-    get_hll_global $P1189, ["PAST"], "Var"
-    find_lex $P1190, "$name"
-    find_lex $P1191, "$scope"
+    find_lex $P1188, "$BLOCK"
+    find_lex $P1189, "$name"
+    $P1188."symbol"($P1189, "attribute" :named("scope"))
 .annotate 'line', 427
-    find_lex $P1192, "$sigil"
-    $P1193 = "vivitype"($P1192)
-    find_lex $P1194, "$/"
-    $P1195 = $P1189."new"($P1190 :named("name"), $P1191 :named("scope"), 1 :named("isdecl"), 1 :named("lvalue"), $P1193 :named("viviself"), $P1194 :named("node"))
-.annotate 'line', 426
-    store_lex "$decl", $P1195
+    find_lex $P1191, "$BLOCK"
+    unless_null $P1191, vivify_411
+    $P1191 = root_new ['parrot';'Hash']
+  vivify_411:
+    set $P1192, $P1191["attributes"]
+    unless_null $P1192, vivify_412
+    new $P1192, "Undef"
+  vivify_412:
+    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
+    $P1195 = root_new ['parrot';'Hash']
+    store_lex "$BLOCK", $P1195
+  vivify_413:
+    set $P1195["attributes"], $P1194
+  unless_1190_end:
+.annotate 'line', 431
     find_lex $P1196, "$BLOCK"
-    find_lex $P1197, "$name"
-    find_lex $P1198, "$scope"
-    $P1196."symbol"($P1197, $P1198 :named("scope"))
-.annotate 'line', 430
-    find_lex $P1199, "$BLOCK"
-    unless_null $P1199, vivify_403
-    $P1199 = root_new ['parrot';'ResizablePMCArray']
-  vivify_403:
-    set $P1200, $P1199[0]
-    unless_null $P1200, vivify_404
-    new $P1200, "Undef"
-  vivify_404:
-    find_lex $P1201, "$decl"
-    $P1202 = $P1200."push"($P1201)
-.annotate 'line', 424
-    .return ($P1202)
+    unless_null $P1196, vivify_414
+    $P1196 = root_new ['parrot';'Hash']
+  vivify_414:
+    set $P1197, $P1196["attributes"]
+    unless_null $P1197, vivify_415
+    new $P1197, "Undef"
+  vivify_415:
+    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 
+    .get_results (exception) 
+    getattribute $P1229, exception, "payload"
+    .return ($P1229)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "routine_declarator:sym<sub>"  :subid("74_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1210
+.sub "_block1201"  :anon :subid("73_1280467483.70067") :outer("72_1280467483.70067")
+.annotate 'line', 435
+    new $P1203, "Undef"
+    .lex "$scope", $P1203
+.annotate 'line', 436
+    new $P1204, "Undef"
+    .lex "$decl", $P1204
 .annotate 'line', 435
-    new $P1209, 'ExceptionHandler'
-    set_addr $P1209, control_1208
-    $P1209."handle_types"(.CONTROL_RETURN)
-    push_eh $P1209
-    .lex "self", self
-    .lex "$/", param_1210
-    find_lex $P1211, "$/"
-    find_lex $P1212, "$/"
-    unless_null $P1212, vivify_410
-    $P1212 = root_new ['parrot';'Hash']
+    find_dynamic_lex $P1207, "$*SCOPE"
+    unless_null $P1207, vivify_407
+    get_hll_global $P1207, "$SCOPE"
+    unless_null $P1207, vivify_408
+    die "Contextual $*SCOPE not found"
+  vivify_408:
+  vivify_407:
+    set $S1208, $P1207
+    iseq $I1209, $S1208, "our"
+    if $I1209, if_1206
+    new $P1211, "String"
+    assign $P1211, "lexical"
+    set $P1205, $P1211
+    goto if_1206_end
+  if_1206:
+    new $P1210, "String"
+    assign $P1210, "package"
+    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
+    $P1222 = root_new ['parrot';'ResizablePMCArray']
+  vivify_409:
+    set $P1223, $P1222[0]
+    unless_null $P1223, vivify_410
+    new $P1223, "Undef"
   vivify_410:
-    set $P1213, $P1212["routine_def"]
-    unless_null $P1213, vivify_411
-    new $P1213, "Undef"
-  vivify_411:
-    $P1214 = $P1213."ast"()
-    $P1215 = $P1211."!make"($P1214)
-    .return ($P1215)
-  control_1208:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1216, exception, "payload"
-    .return ($P1216)
+    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<method>"  :subid("75_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1220
-.annotate 'line', 436
-    new $P1219, 'ExceptionHandler'
-    set_addr $P1219, control_1218
-    $P1219."handle_types"(.CONTROL_RETURN)
-    push_eh $P1219
-    .lex "self", self
-    .lex "$/", param_1220
-    find_lex $P1221, "$/"
-    find_lex $P1222, "$/"
-    unless_null $P1222, vivify_412
-    $P1222 = root_new ['parrot';'Hash']
-  vivify_412:
-    set $P1223, $P1222["method_def"]
-    unless_null $P1223, vivify_413
-    new $P1223, "Undef"
-  vivify_413:
-    $P1224 = $P1223."ast"()
-    $P1225 = $P1221."!make"($P1224)
-    .return ($P1225)
-  control_1218:
+.sub "routine_declarator:sym<sub>"  :subid("74_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1233
+.annotate 'line', 445
+    new $P1232, 'ExceptionHandler'
+    set_addr $P1232, control_1231
+    $P1232."handle_types"(.CONTROL_RETURN)
+    push_eh $P1232
+    .lex "self", self
+    .lex "$/", param_1233
+    find_lex $P1234, "$/"
+    find_lex $P1235, "$/"
+    unless_null $P1235, vivify_416
+    $P1235 = root_new ['parrot';'Hash']
+  vivify_416:
+    set $P1236, $P1235["routine_def"]
+    unless_null $P1236, vivify_417
+    new $P1236, "Undef"
+  vivify_417:
+    $P1237 = $P1236."ast"()
+    $P1238 = $P1234."!make"($P1237)
+    .return ($P1238)
+  control_1231:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1226, exception, "payload"
-    .return ($P1226)
+    getattribute $P1239, exception, "payload"
+    .return ($P1239)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "routine_def"  :subid("76_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1230
-.annotate 'line', 438
-    .const 'Sub' $P1241 = "77_1277356919.52295" 
-    capture_lex $P1241
-    new $P1229, 'ExceptionHandler'
-    set_addr $P1229, control_1228
-    $P1229."handle_types"(.CONTROL_RETURN)
-    push_eh $P1229
+.sub "routine_declarator:sym<method>"  :subid("75_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1243
+.annotate 'line', 446
+    new $P1242, 'ExceptionHandler'
+    set_addr $P1242, control_1241
+    $P1242."handle_types"(.CONTROL_RETURN)
+    push_eh $P1242
     .lex "self", self
-    .lex "$/", param_1230
-.annotate 'line', 439
-    new $P1231, "Undef"
-    .lex "$past", $P1231
-    find_lex $P1232, "$/"
-    unless_null $P1232, vivify_414
-    $P1232 = root_new ['parrot';'Hash']
-  vivify_414:
-    set $P1233, $P1232["blockoid"]
-    unless_null $P1233, vivify_415
-    new $P1233, "Undef"
-  vivify_415:
-    $P1234 = $P1233."ast"()
-    store_lex "$past", $P1234
-.annotate 'line', 440
-    find_lex $P1235, "$past"
-    $P1235."blocktype"("declaration")
-.annotate 'line', 441
-    find_lex $P1236, "$past"
-    $P1236."control"("return_pir")
-.annotate 'line', 442
-    find_lex $P1238, "$/"
-    unless_null $P1238, vivify_416
-    $P1238 = root_new ['parrot';'Hash']
-  vivify_416:
-    set $P1239, $P1238["deflongname"]
-    unless_null $P1239, vivify_417
-    new $P1239, "Undef"
-  vivify_417:
-    unless $P1239, if_1237_end
-    .const 'Sub' $P1241 = "77_1277356919.52295" 
-    capture_lex $P1241
-    $P1241()
-  if_1237_end:
-.annotate 'line', 452
-    find_lex $P1273, "$/"
-    find_lex $P1274, "$past"
-    $P1275 = $P1273."!make"($P1274)
-.annotate 'line', 438
-    .return ($P1275)
-  control_1228:
+    .lex "$/", param_1243
+    find_lex $P1244, "$/"
+    find_lex $P1245, "$/"
+    unless_null $P1245, vivify_418
+    $P1245 = root_new ['parrot';'Hash']
+  vivify_418:
+    set $P1246, $P1245["method_def"]
+    unless_null $P1246, vivify_419
+    new $P1246, "Undef"
+  vivify_419:
+    $P1247 = $P1246."ast"()
+    $P1248 = $P1244."!make"($P1247)
+    .return ($P1248)
+  control_1241:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1276, exception, "payload"
-    .return ($P1276)
+    getattribute $P1249, exception, "payload"
+    .return ($P1249)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1240"  :anon :subid("77_1277356919.52295") :outer("76_1277356919.52295")
-.annotate 'line', 443
-    new $P1242, "Undef"
-    .lex "$name", $P1242
-    find_lex $P1243, "$/"
-    unless_null $P1243, vivify_418
-    $P1243 = root_new ['parrot';'Hash']
-  vivify_418:
-    set $P1244, $P1243["sigil"]
-    unless_null $P1244, vivify_419
-    $P1244 = root_new ['parrot';'ResizablePMCArray']
-  vivify_419:
-    set $P1245, $P1244[0]
-    unless_null $P1245, vivify_420
-    new $P1245, "Undef"
+.include "except_types.pasm"
+.sub "routine_def"  :subid("76_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1253
+.annotate 'line', 448
+    .const 'Sub' $P1264 = "77_1280467483.70067" 
+    capture_lex $P1264
+    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 $S1246, $P1245
-    new $P1247, 'String'
-    set $P1247, $S1246
-    find_lex $P1248, "$/"
-    unless_null $P1248, vivify_421
-    $P1248 = root_new ['parrot';'Hash']
+    set $P1256, $P1255["blockoid"]
+    unless_null $P1256, vivify_421
+    new $P1256, "Undef"
   vivify_421:
-    set $P1249, $P1248["deflongname"]
-    unless_null $P1249, vivify_422
-    $P1249 = root_new ['parrot';'ResizablePMCArray']
+    $P1257 = $P1256."ast"()
+    store_lex "$past", $P1257
+.annotate 'line', 450
+    find_lex $P1258, "$past"
+    $P1258."blocktype"("declaration")
+.annotate 'line', 451
+    find_lex $P1259, "$past"
+    $P1259."control"("return_pir")
+.annotate 'line', 452
+    find_lex $P1261, "$/"
+    unless_null $P1261, vivify_422
+    $P1261 = root_new ['parrot';'Hash']
   vivify_422:
-    set $P1250, $P1249[0]
-    unless_null $P1250, vivify_423
-    new $P1250, "Undef"
+    set $P1262, $P1261["deflongname"]
+    unless_null $P1262, vivify_423
+    new $P1262, "Undef"
   vivify_423:
-    $S1251 = $P1250."ast"()
-    concat $P1252, $P1247, $S1251
-    store_lex "$name", $P1252
-.annotate 'line', 444
-    find_lex $P1253, "$past"
-    find_lex $P1254, "$name"
-    $P1253."name"($P1254)
-.annotate 'line', 445
-    find_dynamic_lex $P1257, "$*SCOPE"
-    unless_null $P1257, vivify_424
-    get_hll_global $P1257, "$SCOPE"
-    unless_null $P1257, vivify_425
-    die "Contextual $*SCOPE not found"
-  vivify_425:
+    unless $P1262, if_1260_end
+    .const 'Sub' $P1264 = "77_1280467483.70067" 
+    capture_lex $P1264
+    $P1264()
+  if_1260_end:
+.annotate 'line', 462
+    find_lex $P1296, "$/"
+    find_lex $P1297, "$past"
+    $P1298 = $P1296."!make"($P1297)
+.annotate 'line', 448
+    .return ($P1298)
+  control_1251:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1299, exception, "payload"
+    .return ($P1299)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1263"  :anon :subid("77_1280467483.70067") :outer("76_1280467483.70067")
+.annotate 'line', 453
+    new $P1265, "Undef"
+    .lex "$name", $P1265
+    find_lex $P1266, "$/"
+    unless_null $P1266, vivify_424
+    $P1266 = root_new ['parrot';'Hash']
   vivify_424:
-    set $S1258, $P1257
-    isne $I1259, $S1258, "our"
-    if $I1259, if_1256
-    new $P1255, 'Integer'
-    set $P1255, $I1259
-    goto if_1256_end
-  if_1256:
-.annotate 'line', 446
-    get_global $P1260, "@BLOCK"
-    unless_null $P1260, vivify_426
-    $P1260 = root_new ['parrot';'ResizablePMCArray']
+    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 $P1261, $P1260[0]
-    unless_null $P1261, vivify_427
-    $P1261 = root_new ['parrot';'ResizablePMCArray']
+    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 $P1262, $P1261[0]
-    unless_null $P1262, vivify_428
-    new $P1262, "Undef"
+    set $P1272, $P1271["deflongname"]
+    unless_null $P1272, vivify_428
+    $P1272 = root_new ['parrot';'ResizablePMCArray']
   vivify_428:
-    get_hll_global $P1263, ["PAST"], "Var"
-    find_lex $P1264, "$name"
-    find_lex $P1265, "$past"
-    $P1266 = $P1263."new"($P1264 :named("name"), 1 :named("isdecl"), $P1265 :named("viviself"), "lexical" :named("scope"))
-    $P1262."push"($P1266)
-.annotate 'line', 448
-    get_global $P1267, "@BLOCK"
-    unless_null $P1267, vivify_429
-    $P1267 = root_new ['parrot';'ResizablePMCArray']
+    set $P1273, $P1272[0]
+    unless_null $P1273, vivify_429
+    new $P1273, "Undef"
   vivify_429:
-    set $P1268, $P1267[0]
-    unless_null $P1268, vivify_430
-    new $P1268, "Undef"
+    $S1274 = $P1273."ast"()
+    concat $P1275, $P1270, $S1274
+    store_lex "$name", $P1275
+.annotate 'line', 454
+    find_lex $P1276, "$past"
+    find_lex $P1277, "$name"
+    $P1276."name"($P1277)
+.annotate 'line', 455
+    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:
   vivify_430:
-    find_lex $P1269, "$name"
-    $P1268."symbol"($P1269, "lexical" :named("scope"))
-.annotate 'line', 449
-    get_hll_global $P1270, ["PAST"], "Var"
-    find_lex $P1271, "$name"
-    $P1272 = $P1270."new"($P1271 :named("name"))
-    store_lex "$past", $P1272
-.annotate 'line', 445
-    set $P1255, $P1272
-  if_1256_end:
-.annotate 'line', 442
-    .return ($P1255)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "method_def"  :subid("78_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1280
+    set $S1281, $P1280
+    isne $I1282, $S1281, "our"
+    if $I1282, if_1279
+    new $P1278, 'Integer'
+    set $P1278, $I1282
+    goto if_1279_end
+  if_1279:
 .annotate 'line', 456
-    .const 'Sub' $P1296 = "79_1277356919.52295" 
-    capture_lex $P1296
-    new $P1279, 'ExceptionHandler'
-    set_addr $P1279, control_1278
-    $P1279."handle_types"(.CONTROL_RETURN)
-    push_eh $P1279
-    .lex "self", self
-    .lex "$/", param_1280
-.annotate 'line', 457
-    new $P1281, "Undef"
-    .lex "$past", $P1281
-    find_lex $P1282, "$/"
-    unless_null $P1282, vivify_431
-    $P1282 = root_new ['parrot';'Hash']
-  vivify_431:
-    set $P1283, $P1282["blockoid"]
+    get_global $P1283, "@BLOCK"
     unless_null $P1283, vivify_432
-    new $P1283, "Undef"
+    $P1283 = root_new ['parrot';'ResizablePMCArray']
   vivify_432:
-    $P1284 = $P1283."ast"()
-    store_lex "$past", $P1284
-.annotate 'line', 458
-    find_lex $P1285, "$past"
-    $P1285."blocktype"("method")
-.annotate 'line', 459
-    find_lex $P1286, "$past"
-    $P1286."control"("return_pir")
-.annotate 'line', 460
-    find_lex $P1287, "$past"
-    unless_null $P1287, vivify_433
-    $P1287 = root_new ['parrot';'ResizablePMCArray']
+    set $P1284, $P1283[0]
+    unless_null $P1284, vivify_433
+    $P1284 = root_new ['parrot';'ResizablePMCArray']
   vivify_433:
-    set $P1288, $P1287[0]
-    unless_null $P1288, vivify_434
-    new $P1288, "Undef"
+    set $P1285, $P1284[0]
+    unless_null $P1285, vivify_434
+    new $P1285, "Undef"
   vivify_434:
-    get_hll_global $P1289, ["PAST"], "Op"
-    $P1290 = $P1289."new"("    .lex \"self\", self" :named("inline"))
-    $P1288."unshift"($P1290)
-.annotate 'line', 461
-    find_lex $P1291, "$past"
-    $P1291."symbol"("self", "lexical" :named("scope"))
-.annotate 'line', 462
-    find_lex $P1293, "$/"
-    unless_null $P1293, vivify_435
-    $P1293 = root_new ['parrot';'Hash']
+    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)
+.annotate 'line', 458
+    get_global $P1290, "@BLOCK"
+    unless_null $P1290, vivify_435
+    $P1290 = root_new ['parrot';'ResizablePMCArray']
   vivify_435:
-    set $P1294, $P1293["deflongname"]
-    unless_null $P1294, vivify_436
-    new $P1294, "Undef"
+    set $P1291, $P1290[0]
+    unless_null $P1291, vivify_436
+    new $P1291, "Undef"
   vivify_436:
-    unless $P1294, if_1292_end
-    .const 'Sub' $P1296 = "79_1277356919.52295" 
-    capture_lex $P1296
-    $P1296()
-  if_1292_end:
-.annotate 'line', 466
-    find_dynamic_lex $P1308, "$*MULTINESS"
-    unless_null $P1308, vivify_440
-    get_hll_global $P1308, "$MULTINESS"
-    unless_null $P1308, vivify_441
-    die "Contextual $*MULTINESS not found"
-  vivify_441:
-  vivify_440:
-    set $S1309, $P1308
-    iseq $I1310, $S1309, "multi"
-    unless $I1310, if_1307_end
-    find_lex $P1311, "$past"
-    $P1312 = $P1311."multi"()
-    $P1312."unshift"("_")
-  if_1307_end:
-.annotate 'line', 467
-    find_lex $P1313, "$/"
-    find_lex $P1314, "$past"
-    $P1315 = $P1313."!make"($P1314)
-.annotate 'line', 456
-    .return ($P1315)
-  control_1278:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1316, exception, "payload"
-    .return ($P1316)
+    find_lex $P1292, "$name"
+    $P1291."symbol"($P1292, "lexical" :named("scope"))
+.annotate 'line', 459
+    get_hll_global $P1293, ["PAST"], "Var"
+    find_lex $P1294, "$name"
+    $P1295 = $P1293."new"($P1294 :named("name"))
+    store_lex "$past", $P1295
+.annotate 'line', 455
+    set $P1278, $P1295
+  if_1279_end:
+.annotate 'line', 452
+    .return ($P1278)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1295"  :anon :subid("79_1277356919.52295") :outer("78_1277356919.52295")
-.annotate 'line', 463
-    new $P1297, "Undef"
-    .lex "$name", $P1297
-    find_lex $P1298, "$/"
-    unless_null $P1298, vivify_437
-    $P1298 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "method_def"  :subid("78_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1303
+.annotate 'line', 466
+    .const 'Sub' $P1324 = "79_1280467483.70067" 
+    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
+.annotate 'line', 467
+    new $P1304, "Undef"
+    .lex "$past", $P1304
+    find_lex $P1305, "$/"
+    unless_null $P1305, vivify_437
+    $P1305 = root_new ['parrot';'Hash']
   vivify_437:
-    set $P1299, $P1298["deflongname"]
-    unless_null $P1299, vivify_438
-    $P1299 = root_new ['parrot';'ResizablePMCArray']
+    set $P1306, $P1305["blockoid"]
+    unless_null $P1306, vivify_438
+    new $P1306, "Undef"
   vivify_438:
-    set $P1300, $P1299[0]
-    unless_null $P1300, vivify_439
-    new $P1300, "Undef"
+    $P1307 = $P1306."ast"()
+    store_lex "$past", $P1307
+.annotate 'line', 468
+    find_lex $P1308, "$past"
+    $P1308."blocktype"("method")
+.annotate 'line', 469
+    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:
   vivify_439:
-    $P1301 = $P1300."ast"()
-    set $S1302, $P1301
-    new $P1303, 'String'
-    set $P1303, $S1302
-    store_lex "$name", $P1303
-.annotate 'line', 464
-    find_lex $P1304, "$past"
-    find_lex $P1305, "$name"
-    $P1306 = $P1304."name"($P1305)
-.annotate 'line', 462
-    .return ($P1306)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "signature"  :subid("80_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1320
-.annotate 'line', 471
-    .const 'Sub' $P1346 = "82_1277356919.52295" 
-    capture_lex $P1346
-    .const 'Sub' $P1331 = "81_1277356919.52295" 
-    capture_lex $P1331
-    new $P1319, 'ExceptionHandler'
-    set_addr $P1319, control_1318
-    $P1319."handle_types"(.CONTROL_RETURN)
-    push_eh $P1319
-    .lex "self", self
-    .lex "$/", param_1320
+    set $S1311, $P1310
+    iseq $I1312, $S1311, "our"
+    unless $I1312, if_1309_end
+.annotate 'line', 470
+    find_lex $P1313, "$past"
+    $P1313."pirflags"(":nsentry")
+  if_1309_end:
 .annotate 'line', 472
-    new $P1321, "Undef"
-    .lex "$BLOCKINIT", $P1321
-    get_global $P1322, "@BLOCK"
-    unless_null $P1322, vivify_442
-    $P1322 = root_new ['parrot';'ResizablePMCArray']
+    find_lex $P1314, "$past"
+    $P1314."control"("return_pir")
+.annotate 'line', 473
+    find_lex $P1315, "$past"
+    unless_null $P1315, vivify_441
+    $P1315 = root_new ['parrot';'ResizablePMCArray']
+  vivify_441:
+    set $P1316, $P1315[0]
+    unless_null $P1316, vivify_442
+    new $P1316, "Undef"
   vivify_442:
-    set $P1323, $P1322[0]
-    unless_null $P1323, vivify_443
-    $P1323 = root_new ['parrot';'ResizablePMCArray']
+    get_hll_global $P1317, ["PAST"], "Op"
+    $P1318 = $P1317."new"("    .lex \"self\", self" :named("inline"))
+    $P1316."unshift"($P1318)
+.annotate 'line', 474
+    find_lex $P1319, "$past"
+    $P1319."symbol"("self", "lexical" :named("scope"))
+.annotate 'line', 475
+    find_lex $P1321, "$/"
+    unless_null $P1321, vivify_443
+    $P1321 = root_new ['parrot';'Hash']
   vivify_443:
-    set $P1324, $P1323[0]
-    unless_null $P1324, vivify_444
-    new $P1324, "Undef"
+    set $P1322, $P1321["deflongname"]
+    unless_null $P1322, vivify_444
+    new $P1322, "Undef"
   vivify_444:
-    store_lex "$BLOCKINIT", $P1324
-.annotate 'line', 474
-    find_lex $P1326, "$/"
-    unless_null $P1326, vivify_445
-    $P1326 = root_new ['parrot';'Hash']
-  vivify_445:
-    set $P1327, $P1326["parameter"]
-    unless_null $P1327, vivify_446
-    new $P1327, "Undef"
-  vivify_446:
-    defined $I1328, $P1327
-    unless $I1328, for_undef_447
-    iter $P1325, $P1327
-    new $P1338, 'ExceptionHandler'
-    set_addr $P1338, loop1337_handler
-    $P1338."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P1338
-  loop1337_test:
-    unless $P1325, loop1337_done
-    shift $P1329, $P1325
-  loop1337_redo:
-    .const 'Sub' $P1331 = "81_1277356919.52295" 
-    capture_lex $P1331
-    $P1331($P1329)
-  loop1337_next:
-    goto loop1337_test
-  loop1337_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1339, exception, 'type'
-    eq $P1339, .CONTROL_LOOP_NEXT, loop1337_next
-    eq $P1339, .CONTROL_LOOP_REDO, loop1337_redo
-  loop1337_done:
-    pop_eh 
-  for_undef_447:
-.annotate 'line', 477
-    find_dynamic_lex $P1342, "$*MULTINESS"
-    unless_null $P1342, vivify_448
-    get_hll_global $P1342, "$MULTINESS"
-    unless_null $P1342, vivify_449
+    unless $P1322, if_1320_end
+    .const 'Sub' $P1324 = "79_1280467483.70067" 
+    capture_lex $P1324
+    $P1324()
+  if_1320_end:
+.annotate 'line', 479
+    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 $S1343, $P1342
-    iseq $I1344, $S1343, "multi"
-    if $I1344, if_1341
-    new $P1340, 'Integer'
-    set $P1340, $I1344
-    goto if_1341_end
-  if_1341:
-    .const 'Sub' $P1346 = "82_1277356919.52295" 
-    capture_lex $P1346
-    $P1372 = $P1346()
-    set $P1340, $P1372
-  if_1341_end:
-.annotate 'line', 471
-    .return ($P1340)
-  control_1318:
+    set $S1337, $P1336
+    iseq $I1338, $S1337, "multi"
+    unless $I1338, if_1335_end
+    find_lex $P1339, "$past"
+    $P1340 = $P1339."multi"()
+    $P1340."unshift"("_")
+  if_1335_end:
+.annotate 'line', 480
+    find_lex $P1341, "$/"
+    find_lex $P1342, "$past"
+    $P1343 = $P1341."!make"($P1342)
+.annotate 'line', 466
+    .return ($P1343)
+  control_1301:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1373, exception, "payload"
-    .return ($P1373)
+    getattribute $P1344, exception, "payload"
+    .return ($P1344)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1330"  :anon :subid("81_1277356919.52295") :outer("80_1277356919.52295")
-    .param pmc param_1332
-.annotate 'line', 474
-    .lex "$_", param_1332
-    find_lex $P1333, "$BLOCKINIT"
-    find_lex $P1334, "$_"
-    $P1335 = $P1334."ast"()
-    $P1336 = $P1333."push"($P1335)
-    .return ($P1336)
+.sub "_block1323"  :anon :subid("79_1280467483.70067") :outer("78_1280467483.70067")
+.annotate 'line', 476
+    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
+.annotate 'line', 477
+    find_lex $P1332, "$past"
+    find_lex $P1333, "$name"
+    $P1334 = $P1332."name"($P1333)
+.annotate 'line', 475
+    .return ($P1334)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1345"  :anon :subid("82_1277356919.52295") :outer("80_1277356919.52295")
-.annotate 'line', 477
-    .const 'Sub' $P1355 = "83_1277356919.52295" 
-    capture_lex $P1355
-.annotate 'line', 478
-    $P1347 = root_new ['parrot';'ResizablePMCArray']
-    .lex "@params", $P1347
-.annotate 'line', 477
-    find_lex $P1348, "@params"
-.annotate 'line', 479
-    find_lex $P1350, "$BLOCKINIT"
-    $P1351 = $P1350."list"()
-    defined $I1352, $P1351
-    unless $I1352, for_undef_450
-    iter $P1349, $P1351
+.sub "signature"  :subid("80_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1348
+.annotate 'line', 484
+    .const 'Sub' $P1374 = "82_1280467483.70067" 
+    capture_lex $P1374
+    .const 'Sub' $P1359 = "81_1280467483.70067" 
+    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
+.annotate 'line', 485
+    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"
+  vivify_452:
+    store_lex "$BLOCKINIT", $P1352
+.annotate 'line', 487
+    find_lex $P1354, "$/"
+    unless_null $P1354, vivify_453
+    $P1354 = root_new ['parrot';'Hash']
+  vivify_453:
+    set $P1355, $P1354["parameter"]
+    unless_null $P1355, vivify_454
+    new $P1355, "Undef"
+  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 $P1349, loop1365_done
-    shift $P1353, $P1349
+    unless $P1353, loop1365_done
+    shift $P1357, $P1353
   loop1365_redo:
-    .const 'Sub' $P1355 = "83_1277356919.52295" 
-    capture_lex $P1355
-    $P1355($P1353)
+    .const 'Sub' $P1359 = "81_1280467483.70067" 
+    capture_lex $P1359
+    $P1359($P1357)
   loop1365_next:
     goto loop1365_test
   loop1365_handler:
@@ -21717,1540 +22765,1443 @@
     eq $P1367, .CONTROL_LOOP_REDO, loop1365_redo
   loop1365_done:
     pop_eh 
-  for_undef_450:
-.annotate 'line', 482
-    get_global $P1368, "@BLOCK"
-    unless_null $P1368, vivify_451
-    $P1368 = root_new ['parrot';'ResizablePMCArray']
-  vivify_451:
-    set $P1369, $P1368[0]
-    unless_null $P1369, vivify_452
-    new $P1369, "Undef"
-  vivify_452:
-    find_lex $P1370, "@params"
-    $P1371 = $P1369."multi"($P1370)
-.annotate 'line', 477
-    .return ($P1371)
+  for_undef_455:
+.annotate 'line', 490
+    find_dynamic_lex $P1370, "$*MULTINESS"
+    unless_null $P1370, vivify_456
+    get_hll_global $P1370, "$MULTINESS"
+    unless_null $P1370, vivify_457
+    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_1280467483.70067" 
+    capture_lex $P1374
+    $P1400 = $P1374()
+    set $P1368, $P1400
+  if_1369_end:
+.annotate 'line', 484
+    .return ($P1368)
+  control_1346:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1401, exception, "payload"
+    .return ($P1401)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1354"  :anon :subid("83_1277356919.52295") :outer("82_1277356919.52295")
-    .param pmc param_1356
-.annotate 'line', 479
-    .lex "$_", param_1356
-.annotate 'line', 480
-    find_lex $P1357, "@params"
-    find_lex $P1359, "$_"
-    $P1360 = $P1359."multitype"()
-    set $P1358, $P1360
-    defined $I1362, $P1358
-    if $I1362, default_1361
-    new $P1363, "String"
-    assign $P1363, "_"
-    set $P1358, $P1363
-  default_1361:
-    $P1364 = $P1357."push"($P1358)
-.annotate 'line', 479
+.sub "_block1358"  :anon :subid("81_1280467483.70067") :outer("80_1280467483.70067")
+    .param pmc param_1360
+.annotate 'line', 487
+    .lex "$_", param_1360
+    find_lex $P1361, "$BLOCKINIT"
+    find_lex $P1362, "$_"
+    $P1363 = $P1362."ast"()
+    $P1364 = $P1361."push"($P1363)
     .return ($P1364)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "parameter"  :subid("84_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1377
-.annotate 'line', 486
-    .const 'Sub' $P1458 = "85_1277356919.52295" 
-    capture_lex $P1458
-    new $P1376, 'ExceptionHandler'
-    set_addr $P1376, control_1375
-    $P1376."handle_types"(.CONTROL_RETURN)
-    push_eh $P1376
-    .lex "self", self
-    .lex "$/", param_1377
-.annotate 'line', 487
-    new $P1378, "Undef"
-    .lex "$quant", $P1378
-.annotate 'line', 488
-    new $P1379, "Undef"
-    .lex "$past", $P1379
-.annotate 'line', 487
-    find_lex $P1380, "$/"
-    unless_null $P1380, vivify_453
-    $P1380 = root_new ['parrot';'Hash']
-  vivify_453:
-    set $P1381, $P1380["quant"]
-    unless_null $P1381, vivify_454
-    new $P1381, "Undef"
-  vivify_454:
-    store_lex "$quant", $P1381
-    find_lex $P1382, "$past"
-.annotate 'line', 489
-    find_lex $P1384, "$/"
-    unless_null $P1384, vivify_455
-    $P1384 = root_new ['parrot';'Hash']
-  vivify_455:
-    set $P1385, $P1384["named_param"]
-    unless_null $P1385, vivify_456
-    new $P1385, "Undef"
-  vivify_456:
-    if $P1385, if_1383
-.annotate 'line', 496
-    find_lex $P1399, "$/"
-    unless_null $P1399, vivify_457
-    $P1399 = root_new ['parrot';'Hash']
-  vivify_457:
-    set $P1400, $P1399["param_var"]
-    unless_null $P1400, vivify_458
-    new $P1400, "Undef"
-  vivify_458:
-    $P1401 = $P1400."ast"()
-    store_lex "$past", $P1401
-.annotate 'line', 497
-    find_lex $P1403, "$quant"
-    set $S1404, $P1403
-    iseq $I1405, $S1404, "*"
-    if $I1405, if_1402
-.annotate 'line', 501
-    find_lex $P1414, "$quant"
-    set $S1415, $P1414
-    iseq $I1416, $S1415, "?"
-    unless $I1416, if_1413_end
-.annotate 'line', 502
-    find_lex $P1417, "$past"
-    find_lex $P1418, "$/"
-    unless_null $P1418, vivify_459
-    $P1418 = root_new ['parrot';'Hash']
+.sub "_block1373"  :anon :subid("82_1280467483.70067") :outer("80_1280467483.70067")
+.annotate 'line', 490
+    .const 'Sub' $P1383 = "83_1280467483.70067" 
+    capture_lex $P1383
+.annotate 'line', 491
+    $P1375 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@params", $P1375
+.annotate 'line', 490
+    find_lex $P1376, "@params"
+.annotate 'line', 492
+    find_lex $P1378, "$BLOCKINIT"
+    $P1379 = $P1378."list"()
+    defined $I1380, $P1379
+    unless $I1380, for_undef_458
+    iter $P1377, $P1379
+    new $P1394, 'ExceptionHandler'
+    set_addr $P1394, loop1393_handler
+    $P1394."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1394
+  loop1393_test:
+    unless $P1377, loop1393_done
+    shift $P1381, $P1377
+  loop1393_redo:
+    .const 'Sub' $P1383 = "83_1280467483.70067" 
+    capture_lex $P1383
+    $P1383($P1381)
+  loop1393_next:
+    goto loop1393_test
+  loop1393_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1395, exception, 'type'
+    eq $P1395, .CONTROL_LOOP_NEXT, loop1393_next
+    eq $P1395, .CONTROL_LOOP_REDO, loop1393_redo
+  loop1393_done:
+    pop_eh 
+  for_undef_458:
+.annotate 'line', 495
+    get_global $P1396, "@BLOCK"
+    unless_null $P1396, vivify_459
+    $P1396 = root_new ['parrot';'ResizablePMCArray']
   vivify_459:
-    set $P1419, $P1418["param_var"]
-    unless_null $P1419, vivify_460
-    $P1419 = root_new ['parrot';'Hash']
+    set $P1397, $P1396[0]
+    unless_null $P1397, vivify_460
+    new $P1397, "Undef"
   vivify_460:
-    set $P1420, $P1419["sigil"]
-    unless_null $P1420, vivify_461
-    new $P1420, "Undef"
-  vivify_461:
-    $P1421 = "vivitype"($P1420)
-    $P1417."viviself"($P1421)
-  if_1413_end:
-.annotate 'line', 501
-    goto if_1402_end
-  if_1402:
-.annotate 'line', 498
-    find_lex $P1406, "$past"
-    $P1406."slurpy"(1)
+    find_lex $P1398, "@params"
+    $P1399 = $P1397."multi"($P1398)
+.annotate 'line', 490
+    .return ($P1399)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1382"  :anon :subid("83_1280467483.70067") :outer("82_1280467483.70067")
+    .param pmc param_1384
+.annotate 'line', 492
+    .lex "$_", param_1384
+.annotate 'line', 493
+    find_lex $P1385, "@params"
+    find_lex $P1387, "$_"
+    $P1388 = $P1387."multitype"()
+    set $P1386, $P1388
+    defined $I1390, $P1386
+    if $I1390, default_1389
+    new $P1391, "String"
+    assign $P1391, "_"
+    set $P1386, $P1391
+  default_1389:
+    $P1392 = $P1385."push"($P1386)
+.annotate 'line', 492
+    .return ($P1392)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "parameter"  :subid("84_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1405
 .annotate 'line', 499
-    find_lex $P1407, "$past"
+    .const 'Sub' $P1486 = "85_1280467483.70067" 
+    capture_lex $P1486
+    new $P1404, 'ExceptionHandler'
+    set_addr $P1404, control_1403
+    $P1404."handle_types"(.CONTROL_RETURN)
+    push_eh $P1404
+    .lex "self", self
+    .lex "$/", param_1405
+.annotate 'line', 500
+    new $P1406, "Undef"
+    .lex "$quant", $P1406
+.annotate 'line', 501
+    new $P1407, "Undef"
+    .lex "$past", $P1407
+.annotate 'line', 500
     find_lex $P1408, "$/"
-    unless_null $P1408, vivify_462
+    unless_null $P1408, vivify_461
     $P1408 = root_new ['parrot';'Hash']
+  vivify_461:
+    set $P1409, $P1408["quant"]
+    unless_null $P1409, vivify_462
+    new $P1409, "Undef"
   vivify_462:
-    set $P1409, $P1408["param_var"]
-    unless_null $P1409, vivify_463
-    $P1409 = root_new ['parrot';'Hash']
+    store_lex "$quant", $P1409
+    find_lex $P1410, "$past"
+.annotate 'line', 502
+    find_lex $P1412, "$/"
+    unless_null $P1412, vivify_463
+    $P1412 = root_new ['parrot';'Hash']
   vivify_463:
-    set $P1410, $P1409["sigil"]
-    unless_null $P1410, vivify_464
-    new $P1410, "Undef"
+    set $P1413, $P1412["named_param"]
+    unless_null $P1413, vivify_464
+    new $P1413, "Undef"
   vivify_464:
-    set $S1411, $P1410
-    iseq $I1412, $S1411, "%"
-    $P1407."named"($I1412)
-  if_1402_end:
-.annotate 'line', 495
-    goto if_1383_end
-  if_1383:
-.annotate 'line', 490
-    find_lex $P1386, "$/"
-    unless_null $P1386, vivify_465
-    $P1386 = root_new ['parrot';'Hash']
+    if $P1413, if_1411
+.annotate 'line', 509
+    find_lex $P1427, "$/"
+    unless_null $P1427, vivify_465
+    $P1427 = root_new ['parrot';'Hash']
   vivify_465:
-    set $P1387, $P1386["named_param"]
-    unless_null $P1387, vivify_466
-    new $P1387, "Undef"
+    set $P1428, $P1427["param_var"]
+    unless_null $P1428, vivify_466
+    new $P1428, "Undef"
   vivify_466:
-    $P1388 = $P1387."ast"()
-    store_lex "$past", $P1388
-.annotate 'line', 491
-    find_lex $P1390, "$quant"
-    set $S1391, $P1390
-    isne $I1392, $S1391, "!"
-    unless $I1392, if_1389_end
-.annotate 'line', 492
-    find_lex $P1393, "$past"
-    find_lex $P1394, "$/"
-    unless_null $P1394, vivify_467
-    $P1394 = root_new ['parrot';'Hash']
+    $P1429 = $P1428."ast"()
+    store_lex "$past", $P1429
+.annotate 'line', 510
+    find_lex $P1431, "$quant"
+    set $S1432, $P1431
+    iseq $I1433, $S1432, "*"
+    if $I1433, if_1430
+.annotate 'line', 514
+    find_lex $P1442, "$quant"
+    set $S1443, $P1442
+    iseq $I1444, $S1443, "?"
+    unless $I1444, if_1441_end
+.annotate 'line', 515
+    find_lex $P1445, "$past"
+    find_lex $P1446, "$/"
+    unless_null $P1446, vivify_467
+    $P1446 = root_new ['parrot';'Hash']
   vivify_467:
-    set $P1395, $P1394["named_param"]
-    unless_null $P1395, vivify_468
-    $P1395 = root_new ['parrot';'Hash']
+    set $P1447, $P1446["param_var"]
+    unless_null $P1447, vivify_468
+    $P1447 = root_new ['parrot';'Hash']
   vivify_468:
-    set $P1396, $P1395["param_var"]
-    unless_null $P1396, vivify_469
-    $P1396 = root_new ['parrot';'Hash']
+    set $P1448, $P1447["sigil"]
+    unless_null $P1448, vivify_469
+    new $P1448, "Undef"
   vivify_469:
-    set $P1397, $P1396["sigil"]
-    unless_null $P1397, vivify_470
-    new $P1397, "Undef"
+    $P1449 = "vivitype"($P1448)
+    $P1445."viviself"($P1449)
+  if_1441_end:
+.annotate 'line', 514
+    goto if_1430_end
+  if_1430:
+.annotate 'line', 511
+    find_lex $P1434, "$past"
+    $P1434."slurpy"(1)
+.annotate 'line', 512
+    find_lex $P1435, "$past"
+    find_lex $P1436, "$/"
+    unless_null $P1436, vivify_470
+    $P1436 = root_new ['parrot';'Hash']
   vivify_470:
-    $P1398 = "vivitype"($P1397)
-    $P1393."viviself"($P1398)
-  if_1389_end:
-  if_1383_end:
-.annotate 'line', 505
-    find_lex $P1423, "$/"
-    unless_null $P1423, vivify_471
-    $P1423 = root_new ['parrot';'Hash']
+    set $P1437, $P1436["param_var"]
+    unless_null $P1437, vivify_471
+    $P1437 = root_new ['parrot';'Hash']
   vivify_471:
-    set $P1424, $P1423["default_value"]
-    unless_null $P1424, vivify_472
-    new $P1424, "Undef"
+    set $P1438, $P1437["sigil"]
+    unless_null $P1438, vivify_472
+    new $P1438, "Undef"
   vivify_472:
-    unless $P1424, if_1422_end
-.annotate 'line', 506
-    find_lex $P1426, "$quant"
-    set $S1427, $P1426
-    iseq $I1428, $S1427, "*"
-    unless $I1428, if_1425_end
-.annotate 'line', 507
-    find_lex $P1429, "$/"
-    $P1430 = $P1429."CURSOR"()
-    $P1430."panic"("Can't put default on slurpy parameter")
-  if_1425_end:
-.annotate 'line', 509
-    find_lex $P1432, "$quant"
-    set $S1433, $P1432
-    iseq $I1434, $S1433, "!"
-    unless $I1434, if_1431_end
-.annotate 'line', 510
-    find_lex $P1435, "$/"
-    $P1436 = $P1435."CURSOR"()
-    $P1436."panic"("Can't put default on required parameter")
-  if_1431_end:
-.annotate 'line', 512
-    find_lex $P1437, "$past"
-    find_lex $P1438, "$/"
-    unless_null $P1438, vivify_473
-    $P1438 = root_new ['parrot';'Hash']
+    set $S1439, $P1438
+    iseq $I1440, $S1439, "%"
+    $P1435."named"($I1440)
+  if_1430_end:
+.annotate 'line', 508
+    goto if_1411_end
+  if_1411:
+.annotate 'line', 503
+    find_lex $P1414, "$/"
+    unless_null $P1414, vivify_473
+    $P1414 = root_new ['parrot';'Hash']
   vivify_473:
-    set $P1439, $P1438["default_value"]
-    unless_null $P1439, vivify_474
-    $P1439 = root_new ['parrot';'ResizablePMCArray']
+    set $P1415, $P1414["named_param"]
+    unless_null $P1415, vivify_474
+    new $P1415, "Undef"
   vivify_474:
-    set $P1440, $P1439[0]
-    unless_null $P1440, vivify_475
-    $P1440 = root_new ['parrot';'Hash']
+    $P1416 = $P1415."ast"()
+    store_lex "$past", $P1416
+.annotate 'line', 504
+    find_lex $P1418, "$quant"
+    set $S1419, $P1418
+    isne $I1420, $S1419, "!"
+    unless $I1420, if_1417_end
+.annotate 'line', 505
+    find_lex $P1421, "$past"
+    find_lex $P1422, "$/"
+    unless_null $P1422, vivify_475
+    $P1422 = root_new ['parrot';'Hash']
   vivify_475:
-    set $P1441, $P1440["EXPR"]
-    unless_null $P1441, vivify_476
-    new $P1441, "Undef"
+    set $P1423, $P1422["named_param"]
+    unless_null $P1423, vivify_476
+    $P1423 = root_new ['parrot';'Hash']
   vivify_476:
-    $P1442 = $P1441."ast"()
-    $P1437."viviself"($P1442)
-  if_1422_end:
-.annotate 'line', 514
-    find_lex $P1444, "$past"
-    $P1445 = $P1444."viviself"()
-    if $P1445, unless_1443_end
-    get_global $P1446, "@BLOCK"
-    unless_null $P1446, vivify_477
-    $P1446 = root_new ['parrot';'ResizablePMCArray']
+    set $P1424, $P1423["param_var"]
+    unless_null $P1424, vivify_477
+    $P1424 = root_new ['parrot';'Hash']
   vivify_477:
-    set $P1447, $P1446[0]
-    unless_null $P1447, vivify_478
-    new $P1447, "Undef"
+    set $P1425, $P1424["sigil"]
+    unless_null $P1425, vivify_478
+    new $P1425, "Undef"
   vivify_478:
-    get_global $P1448, "@BLOCK"
-    unless_null $P1448, vivify_479
-    $P1448 = root_new ['parrot';'ResizablePMCArray']
+    $P1426 = "vivitype"($P1425)
+    $P1421."viviself"($P1426)
+  if_1417_end:
+  if_1411_end:
+.annotate 'line', 518
+    find_lex $P1451, "$/"
+    unless_null $P1451, vivify_479
+    $P1451 = root_new ['parrot';'Hash']
   vivify_479:
-    set $P1449, $P1448[0]
-    unless_null $P1449, vivify_480
-    new $P1449, "Undef"
+    set $P1452, $P1451["default_value"]
+    unless_null $P1452, vivify_480
+    new $P1452, "Undef"
   vivify_480:
-    $P1450 = $P1449."arity"()
-    set $N1451, $P1450
-    new $P1452, 'Float'
-    set $P1452, $N1451
-    add $P1453, $P1452, 1
-    $P1447."arity"($P1453)
-  unless_1443_end:
-.annotate 'line', 517
-    find_lex $P1455, "$/"
-    unless_null $P1455, vivify_481
-    $P1455 = root_new ['parrot';'Hash']
+    unless $P1452, if_1450_end
+.annotate 'line', 519
+    find_lex $P1454, "$quant"
+    set $S1455, $P1454
+    iseq $I1456, $S1455, "*"
+    unless $I1456, if_1453_end
+.annotate 'line', 520
+    find_lex $P1457, "$/"
+    $P1458 = $P1457."CURSOR"()
+    $P1458."panic"("Can't put default on slurpy parameter")
+  if_1453_end:
+.annotate 'line', 522
+    find_lex $P1460, "$quant"
+    set $S1461, $P1460
+    iseq $I1462, $S1461, "!"
+    unless $I1462, if_1459_end
+.annotate 'line', 523
+    find_lex $P1463, "$/"
+    $P1464 = $P1463."CURSOR"()
+    $P1464."panic"("Can't put default on required parameter")
+  if_1459_end:
+.annotate 'line', 525
+    find_lex $P1465, "$past"
+    find_lex $P1466, "$/"
+    unless_null $P1466, vivify_481
+    $P1466 = root_new ['parrot';'Hash']
   vivify_481:
-    set $P1456, $P1455["typename"]
-    unless_null $P1456, vivify_482
-    new $P1456, "Undef"
+    set $P1467, $P1466["default_value"]
+    unless_null $P1467, vivify_482
+    $P1467 = root_new ['parrot';'ResizablePMCArray']
   vivify_482:
-    unless $P1456, if_1454_end
-    .const 'Sub' $P1458 = "85_1277356919.52295" 
-    capture_lex $P1458
-    $P1458()
-  if_1454_end:
-.annotate 'line', 523
-    find_lex $P1482, "$/"
-    find_lex $P1483, "$past"
-    $P1484 = $P1482."!make"($P1483)
-.annotate 'line', 486
-    .return ($P1484)
-  control_1375:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1485, exception, "payload"
-    .return ($P1485)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "_block1457"  :anon :subid("85_1277356919.52295") :outer("84_1277356919.52295")
-.annotate 'line', 517
-    .const 'Sub' $P1470 = "86_1277356919.52295" 
-    capture_lex $P1470
-.annotate 'line', 518
-    $P1459 = root_new ['parrot';'ResizablePMCArray']
-    .lex "@multitype", $P1459
-.annotate 'line', 517
-    find_lex $P1460, "@multitype"
-.annotate 'line', 519
-    find_lex $P1462, "$/"
-    unless_null $P1462, vivify_483
-    $P1462 = root_new ['parrot';'Hash']
+    set $P1468, $P1467[0]
+    unless_null $P1468, vivify_483
+    $P1468 = root_new ['parrot';'Hash']
   vivify_483:
-    set $P1463, $P1462["typename"]
-    unless_null $P1463, vivify_484
-    $P1463 = root_new ['parrot';'ResizablePMCArray']
+    set $P1469, $P1468["EXPR"]
+    unless_null $P1469, vivify_484
+    new $P1469, "Undef"
   vivify_484:
-    set $P1464, $P1463[0]
-    unless_null $P1464, vivify_485
-    $P1464 = root_new ['parrot';'Hash']
+    $P1470 = $P1469."ast"()
+    $P1465."viviself"($P1470)
+  if_1450_end:
+.annotate 'line', 527
+    find_lex $P1472, "$past"
+    $P1473 = $P1472."viviself"()
+    if $P1473, unless_1471_end
+    get_global $P1474, "@BLOCK"
+    unless_null $P1474, vivify_485
+    $P1474 = root_new ['parrot';'ResizablePMCArray']
   vivify_485:
-    set $P1465, $P1464["name"]
-    unless_null $P1465, vivify_486
-    $P1465 = root_new ['parrot';'Hash']
+    set $P1475, $P1474[0]
+    unless_null $P1475, vivify_486
+    new $P1475, "Undef"
   vivify_486:
-    set $P1466, $P1465["identifier"]
-    unless_null $P1466, vivify_487
-    new $P1466, "Undef"
+    get_global $P1476, "@BLOCK"
+    unless_null $P1476, vivify_487
+    $P1476 = root_new ['parrot';'ResizablePMCArray']
   vivify_487:
-    defined $I1467, $P1466
-    unless $I1467, for_undef_488
-    iter $P1461, $P1466
-    new $P1477, 'ExceptionHandler'
-    set_addr $P1477, loop1476_handler
-    $P1477."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P1477
-  loop1476_test:
-    unless $P1461, loop1476_done
-    shift $P1468, $P1461
-  loop1476_redo:
-    .const 'Sub' $P1470 = "86_1277356919.52295" 
-    capture_lex $P1470
-    $P1470($P1468)
-  loop1476_next:
-    goto loop1476_test
-  loop1476_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1478, exception, 'type'
-    eq $P1478, .CONTROL_LOOP_NEXT, loop1476_next
-    eq $P1478, .CONTROL_LOOP_REDO, loop1476_redo
-  loop1476_done:
-    pop_eh 
-  for_undef_488:
-.annotate 'line', 520
-    find_lex $P1479, "$past"
-    find_lex $P1480, "@multitype"
-    $P1481 = $P1479."multitype"($P1480)
-.annotate 'line', 517
-    .return ($P1481)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "_block1469"  :anon :subid("86_1277356919.52295") :outer("85_1277356919.52295")
-    .param pmc param_1471
-.annotate 'line', 519
-    .lex "$_", param_1471
-    find_lex $P1472, "@multitype"
-    find_lex $P1473, "$_"
-    set $S1474, $P1473
-    $P1475 = $P1472."push"($S1474)
-    .return ($P1475)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "param_var"  :subid("87_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1489
-.annotate 'line', 526
-    new $P1488, 'ExceptionHandler'
-    set_addr $P1488, control_1487
-    $P1488."handle_types"(.CONTROL_RETURN)
-    push_eh $P1488
-    .lex "self", self
-    .lex "$/", param_1489
-.annotate 'line', 527
-    new $P1490, "Undef"
-    .lex "$name", $P1490
-.annotate 'line', 528
-    new $P1491, "Undef"
-    .lex "$past", $P1491
-.annotate 'line', 527
-    find_lex $P1492, "$/"
-    set $S1493, $P1492
-    new $P1494, 'String'
-    set $P1494, $S1493
-    store_lex "$name", $P1494
-.annotate 'line', 528
-    get_hll_global $P1495, ["PAST"], "Var"
-    find_lex $P1496, "$name"
-    find_lex $P1497, "$/"
-    $P1498 = $P1495."new"($P1496 :named("name"), "parameter" :named("scope"), 1 :named("isdecl"), $P1497 :named("node"))
-    store_lex "$past", $P1498
+    set $P1477, $P1476[0]
+    unless_null $P1477, vivify_488
+    new $P1477, "Undef"
+  vivify_488:
+    $P1478 = $P1477."arity"()
+    set $N1479, $P1478
+    new $P1480, 'Float'
+    set $P1480, $N1479
+    add $P1481, $P1480, 1
+    $P1475."arity"($P1481)
+  unless_1471_end:
 .annotate 'line', 530
-    get_global $P1499, "@BLOCK"
-    unless_null $P1499, vivify_489
-    $P1499 = root_new ['parrot';'ResizablePMCArray']
+    find_lex $P1483, "$/"
+    unless_null $P1483, vivify_489
+    $P1483 = root_new ['parrot';'Hash']
   vivify_489:
-    set $P1500, $P1499[0]
-    unless_null $P1500, vivify_490
-    new $P1500, "Undef"
+    set $P1484, $P1483["typename"]
+    unless_null $P1484, vivify_490
+    new $P1484, "Undef"
   vivify_490:
-    find_lex $P1501, "$name"
-    $P1500."symbol"($P1501, "lexical" :named("scope"))
-.annotate 'line', 531
-    find_lex $P1502, "$/"
-    find_lex $P1503, "$past"
-    $P1504 = $P1502."!make"($P1503)
-.annotate 'line', 526
-    .return ($P1504)
-  control_1487:
+    unless $P1484, if_1482_end
+    .const 'Sub' $P1486 = "85_1280467483.70067" 
+    capture_lex $P1486
+    $P1486()
+  if_1482_end:
+.annotate 'line', 536
+    find_lex $P1510, "$/"
+    find_lex $P1511, "$past"
+    $P1512 = $P1510."!make"($P1511)
+.annotate 'line', 499
+    .return ($P1512)
+  control_1403:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1505, exception, "payload"
-    .return ($P1505)
+    getattribute $P1513, exception, "payload"
+    .return ($P1513)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "named_param"  :subid("88_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1509
-.annotate 'line', 534
-    new $P1508, 'ExceptionHandler'
-    set_addr $P1508, control_1507
-    $P1508."handle_types"(.CONTROL_RETURN)
-    push_eh $P1508
-    .lex "self", self
-    .lex "$/", param_1509
-.annotate 'line', 535
-    new $P1510, "Undef"
-    .lex "$past", $P1510
-    find_lex $P1511, "$/"
-    unless_null $P1511, vivify_491
-    $P1511 = root_new ['parrot';'Hash']
+.sub "_block1485"  :anon :subid("85_1280467483.70067") :outer("84_1280467483.70067")
+.annotate 'line', 530
+    .const 'Sub' $P1498 = "86_1280467483.70067" 
+    capture_lex $P1498
+.annotate 'line', 531
+    $P1487 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@multitype", $P1487
+.annotate 'line', 530
+    find_lex $P1488, "@multitype"
+.annotate 'line', 532
+    find_lex $P1490, "$/"
+    unless_null $P1490, vivify_491
+    $P1490 = root_new ['parrot';'Hash']
   vivify_491:
-    set $P1512, $P1511["param_var"]
-    unless_null $P1512, vivify_492
-    new $P1512, "Undef"
+    set $P1491, $P1490["typename"]
+    unless_null $P1491, vivify_492
+    $P1491 = root_new ['parrot';'ResizablePMCArray']
   vivify_492:
-    $P1513 = $P1512."ast"()
-    store_lex "$past", $P1513
-.annotate 'line', 536
-    find_lex $P1514, "$past"
-    find_lex $P1515, "$/"
-    unless_null $P1515, vivify_493
-    $P1515 = root_new ['parrot';'Hash']
+    set $P1492, $P1491[0]
+    unless_null $P1492, vivify_493
+    $P1492 = root_new ['parrot';'Hash']
   vivify_493:
-    set $P1516, $P1515["param_var"]
-    unless_null $P1516, vivify_494
-    $P1516 = root_new ['parrot';'Hash']
+    set $P1493, $P1492["name"]
+    unless_null $P1493, vivify_494
+    $P1493 = root_new ['parrot';'Hash']
   vivify_494:
-    set $P1517, $P1516["name"]
-    unless_null $P1517, vivify_495
-    new $P1517, "Undef"
+    set $P1494, $P1493["identifier"]
+    unless_null $P1494, vivify_495
+    new $P1494, "Undef"
   vivify_495:
-    set $S1518, $P1517
-    $P1514."named"($S1518)
-.annotate 'line', 537
-    find_lex $P1519, "$/"
-    find_lex $P1520, "$past"
-    $P1521 = $P1519."!make"($P1520)
-.annotate 'line', 534
-    .return ($P1521)
-  control_1507:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1522, exception, "payload"
-    .return ($P1522)
+    defined $I1495, $P1494
+    unless $I1495, for_undef_496
+    iter $P1489, $P1494
+    new $P1505, 'ExceptionHandler'
+    set_addr $P1505, loop1504_handler
+    $P1505."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1505
+  loop1504_test:
+    unless $P1489, loop1504_done
+    shift $P1496, $P1489
+  loop1504_redo:
+    .const 'Sub' $P1498 = "86_1280467483.70067" 
+    capture_lex $P1498
+    $P1498($P1496)
+  loop1504_next:
+    goto loop1504_test
+  loop1504_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1506, exception, 'type'
+    eq $P1506, .CONTROL_LOOP_NEXT, loop1504_next
+    eq $P1506, .CONTROL_LOOP_REDO, loop1504_redo
+  loop1504_done:
+    pop_eh 
+  for_undef_496:
+.annotate 'line', 533
+    find_lex $P1507, "$past"
+    find_lex $P1508, "@multitype"
+    $P1509 = $P1507."multitype"($P1508)
+.annotate 'line', 530
+    .return ($P1509)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1497"  :anon :subid("86_1280467483.70067") :outer("85_1280467483.70067")
+    .param pmc param_1499
+.annotate 'line', 532
+    .lex "$_", param_1499
+    find_lex $P1500, "@multitype"
+    find_lex $P1501, "$_"
+    set $S1502, $P1501
+    $P1503 = $P1500."push"($S1502)
+    .return ($P1503)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "regex_declarator"  :subid("89_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1526
-    .param pmc param_1527 :optional
-    .param int has_param_1527 :opt_flag
-.annotate 'line', 540
-    .const 'Sub' $P1597 = "91_1277356919.52295" 
-    capture_lex $P1597
-    .const 'Sub' $P1569 = "90_1277356919.52295" 
-    capture_lex $P1569
-    new $P1525, 'ExceptionHandler'
-    set_addr $P1525, control_1524
-    $P1525."handle_types"(.CONTROL_RETURN)
-    push_eh $P1525
+.sub "param_var"  :subid("87_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1517
+.annotate 'line', 539
+    new $P1516, 'ExceptionHandler'
+    set_addr $P1516, control_1515
+    $P1516."handle_types"(.CONTROL_RETURN)
+    push_eh $P1516
     .lex "self", self
-    .lex "$/", param_1526
-    if has_param_1527, optparam_496
-    new $P1528, "Undef"
-    set param_1527, $P1528
-  optparam_496:
-    .lex "$key", param_1527
+    .lex "$/", param_1517
+.annotate 'line', 540
+    new $P1518, "Undef"
+    .lex "$name", $P1518
 .annotate 'line', 541
-    $P1529 = root_new ['parrot';'ResizablePMCArray']
-    .lex "@MODIFIERS", $P1529
-.annotate 'line', 544
-    new $P1530, "Undef"
-    .lex "$name", $P1530
-.annotate 'line', 545
-    new $P1531, "Undef"
-    .lex "$past", $P1531
+    new $P1519, "Undef"
+    .lex "$past", $P1519
+.annotate 'line', 540
+    find_lex $P1520, "$/"
+    set $S1521, $P1520
+    new $P1522, 'String'
+    set $P1522, $S1521
+    store_lex "$name", $P1522
 .annotate 'line', 541
-
-        $P1532 = get_hll_global ['Regex';'P6Regex';'Actions'], '@MODIFIERS'
-    
-    store_lex "@MODIFIERS", $P1532
-.annotate 'line', 544
-    find_lex $P1533, "$/"
-    unless_null $P1533, vivify_497
-    $P1533 = root_new ['parrot';'Hash']
+    get_hll_global $P1523, ["PAST"], "Var"
+    find_lex $P1524, "$name"
+    find_lex $P1525, "$/"
+    $P1526 = $P1523."new"($P1524 :named("name"), "parameter" :named("scope"), 1 :named("isdecl"), $P1525 :named("node"))
+    store_lex "$past", $P1526
+.annotate 'line', 543
+    get_global $P1527, "@BLOCK"
+    unless_null $P1527, vivify_497
+    $P1527 = root_new ['parrot';'ResizablePMCArray']
   vivify_497:
-    set $P1534, $P1533["deflongname"]
-    unless_null $P1534, vivify_498
-    new $P1534, "Undef"
+    set $P1528, $P1527[0]
+    unless_null $P1528, vivify_498
+    new $P1528, "Undef"
   vivify_498:
-    $P1535 = $P1534."ast"()
-    set $S1536, $P1535
-    new $P1537, 'String'
-    set $P1537, $S1536
-    store_lex "$name", $P1537
-    find_lex $P1538, "$past"
-.annotate 'line', 546
-    find_lex $P1540, "$/"
-    unless_null $P1540, vivify_499
-    $P1540 = root_new ['parrot';'Hash']
-  vivify_499:
-    set $P1541, $P1540["proto"]
-    unless_null $P1541, vivify_500
-    new $P1541, "Undef"
-  vivify_500:
-    if $P1541, if_1539
-.annotate 'line', 573
-    find_lex $P1565, "$key"
-    set $S1566, $P1565
-    iseq $I1567, $S1566, "open"
-    if $I1567, if_1564
-.annotate 'line', 586
-    .const 'Sub' $P1597 = "91_1277356919.52295" 
-    capture_lex $P1597
-    $P1597()
-    goto if_1564_end
-  if_1564:
-.annotate 'line', 573
-    .const 'Sub' $P1569 = "90_1277356919.52295" 
-    capture_lex $P1569
-    $P1569()
-  if_1564_end:
-    goto if_1539_end
-  if_1539:
-.annotate 'line', 548
-    get_hll_global $P1542, ["PAST"], "Stmts"
-.annotate 'line', 549
-    get_hll_global $P1543, ["PAST"], "Block"
-    find_lex $P1544, "$name"
-.annotate 'line', 550
-    get_hll_global $P1545, ["PAST"], "Op"
-.annotate 'line', 551
-    get_hll_global $P1546, ["PAST"], "Var"
-    $P1547 = $P1546."new"("self" :named("name"), "register" :named("scope"))
-    find_lex $P1548, "$name"
-    $P1549 = $P1545."new"($P1547, $P1548, "!protoregex" :named("name"), "callmethod" :named("pasttype"))
-.annotate 'line', 550
-    find_lex $P1550, "$/"
-    $P1551 = $P1543."new"($P1549, $P1544 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1550 :named("node"))
-.annotate 'line', 560
-    get_hll_global $P1552, ["PAST"], "Block"
-    new $P1553, "String"
-    assign $P1553, "!PREFIX__"
-    find_lex $P1554, "$name"
-    concat $P1555, $P1553, $P1554
-.annotate 'line', 561
-    get_hll_global $P1556, ["PAST"], "Op"
-.annotate 'line', 562
-    get_hll_global $P1557, ["PAST"], "Var"
-    $P1558 = $P1557."new"("self" :named("name"), "register" :named("scope"))
-    find_lex $P1559, "$name"
-    $P1560 = $P1556."new"($P1558, $P1559, "!PREFIX__!protoregex" :named("name"), "callmethod" :named("pasttype"))
-.annotate 'line', 561
-    find_lex $P1561, "$/"
-    $P1562 = $P1552."new"($P1560, $P1555 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1561 :named("node"))
-.annotate 'line', 560
-    $P1563 = $P1542."new"($P1551, $P1562)
-.annotate 'line', 548
-    store_lex "$past", $P1563
-  if_1539_end:
-.annotate 'line', 600
-    find_lex $P1618, "$/"
-    find_lex $P1619, "$past"
-    $P1620 = $P1618."!make"($P1619)
-.annotate 'line', 540
-    .return ($P1620)
-  control_1524:
+    find_lex $P1529, "$name"
+    $P1528."symbol"($P1529, "lexical" :named("scope"))
+.annotate 'line', 544
+    find_lex $P1530, "$/"
+    find_lex $P1531, "$past"
+    $P1532 = $P1530."!make"($P1531)
+.annotate 'line', 539
+    .return ($P1532)
+  control_1515:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1621, exception, "payload"
-    .return ($P1621)
+    getattribute $P1533, exception, "payload"
+    .return ($P1533)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1596"  :anon :subid("91_1277356919.52295") :outer("89_1277356919.52295")
-.annotate 'line', 587
-    new $P1598, "Undef"
-    .lex "$regex", $P1598
-.annotate 'line', 588
-    get_hll_global $P1599, ["Regex";"P6Regex";"Actions"], "buildsub"
-    find_lex $P1600, "$/"
-    unless_null $P1600, vivify_501
-    $P1600 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "named_param"  :subid("88_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1537
+.annotate 'line', 547
+    new $P1536, 'ExceptionHandler'
+    set_addr $P1536, control_1535
+    $P1536."handle_types"(.CONTROL_RETURN)
+    push_eh $P1536
+    .lex "self", self
+    .lex "$/", param_1537
+.annotate 'line', 548
+    new $P1538, "Undef"
+    .lex "$past", $P1538
+    find_lex $P1539, "$/"
+    unless_null $P1539, vivify_499
+    $P1539 = root_new ['parrot';'Hash']
+  vivify_499:
+    set $P1540, $P1539["param_var"]
+    unless_null $P1540, vivify_500
+    new $P1540, "Undef"
+  vivify_500:
+    $P1541 = $P1540."ast"()
+    store_lex "$past", $P1541
+.annotate 'line', 549
+    find_lex $P1542, "$past"
+    find_lex $P1543, "$/"
+    unless_null $P1543, vivify_501
+    $P1543 = root_new ['parrot';'Hash']
   vivify_501:
-    set $P1601, $P1600["p6regex"]
-    unless_null $P1601, vivify_502
-    new $P1601, "Undef"
+    set $P1544, $P1543["param_var"]
+    unless_null $P1544, vivify_502
+    $P1544 = root_new ['parrot';'Hash']
   vivify_502:
-    $P1602 = $P1601."ast"()
-    get_global $P1603, "@BLOCK"
-    $P1604 = $P1603."shift"()
-    $P1605 = $P1599($P1602, $P1604)
-    store_lex "$regex", $P1605
-.annotate 'line', 589
-    find_lex $P1606, "$regex"
-    find_lex $P1607, "$name"
-    $P1606."name"($P1607)
-.annotate 'line', 591
-    get_hll_global $P1608, ["PAST"], "Op"
-.annotate 'line', 593
-    get_hll_global $P1609, ["PAST"], "Var"
-    new $P1610, "ResizablePMCArray"
-    push $P1610, "Regex"
-    $P1611 = $P1609."new"("Method" :named("name"), $P1610 :named("namespace"), "package" :named("scope"))
-    find_lex $P1612, "$regex"
-    $P1613 = $P1608."new"($P1611, $P1612, "callmethod" :named("pasttype"), "new" :named("name"))
-.annotate 'line', 591
-    store_lex "$past", $P1613
-.annotate 'line', 597
-    find_lex $P1614, "$regex"
-    find_lex $P1615, "$past"
-    unless_null $P1615, vivify_503
-    $P1615 = root_new ['parrot';'Hash']
-    store_lex "$past", $P1615
+    set $P1545, $P1544["name"]
+    unless_null $P1545, vivify_503
+    new $P1545, "Undef"
   vivify_503:
-    set $P1615["sink"], $P1614
-.annotate 'line', 598
-    find_lex $P1616, "@MODIFIERS"
-    $P1617 = $P1616."shift"()
-.annotate 'line', 586
-    .return ($P1617)
+    set $S1546, $P1545
+    $P1542."named"($S1546)
+.annotate 'line', 550
+    find_lex $P1547, "$/"
+    find_lex $P1548, "$past"
+    $P1549 = $P1547."!make"($P1548)
+.annotate 'line', 547
+    .return ($P1549)
+  control_1535:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1550, exception, "payload"
+    .return ($P1550)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1568"  :anon :subid("90_1277356919.52295") :outer("89_1277356919.52295")
-.annotate 'line', 574
-    $P1570 = root_new ['parrot';'Hash']
-    .lex "%h", $P1570
-.annotate 'line', 573
-    find_lex $P1571, "%h"
-.annotate 'line', 575
-    find_lex $P1573, "$/"
-    unless_null $P1573, vivify_504
-    $P1573 = root_new ['parrot';'Hash']
-  vivify_504:
-    set $P1574, $P1573["sym"]
-    unless_null $P1574, vivify_505
-    new $P1574, "Undef"
+.sub "regex_declarator"  :subid("89_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1554
+    .param pmc param_1555 :optional
+    .param int has_param_1555 :opt_flag
+.annotate 'line', 553
+    .const 'Sub' $P1625 = "91_1280467483.70067" 
+    capture_lex $P1625
+    .const 'Sub' $P1597 = "90_1280467483.70067" 
+    capture_lex $P1597
+    new $P1553, 'ExceptionHandler'
+    set_addr $P1553, control_1552
+    $P1553."handle_types"(.CONTROL_RETURN)
+    push_eh $P1553
+    .lex "self", self
+    .lex "$/", param_1554
+    if has_param_1555, optparam_504
+    new $P1556, "Undef"
+    set param_1555, $P1556
+  optparam_504:
+    .lex "$key", param_1555
+.annotate 'line', 554
+    $P1557 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@MODIFIERS", $P1557
+.annotate 'line', 557
+    new $P1558, "Undef"
+    .lex "$name", $P1558
+.annotate 'line', 558
+    new $P1559, "Undef"
+    .lex "$past", $P1559
+.annotate 'line', 554
+
+        $P1560 = get_hll_global ['Regex';'P6Regex';'Actions'], '@MODIFIERS'
+    
+    store_lex "@MODIFIERS", $P1560
+.annotate 'line', 557
+    find_lex $P1561, "$/"
+    unless_null $P1561, vivify_505
+    $P1561 = root_new ['parrot';'Hash']
   vivify_505:
-    set $S1575, $P1574
-    iseq $I1576, $S1575, "token"
-    unless $I1576, if_1572_end
-    new $P1577, "Integer"
-    assign $P1577, 1
-    find_lex $P1578, "%h"
-    unless_null $P1578, vivify_506
-    $P1578 = root_new ['parrot';'Hash']
-    store_lex "%h", $P1578
+    set $P1562, $P1561["deflongname"]
+    unless_null $P1562, vivify_506
+    new $P1562, "Undef"
   vivify_506:
-    set $P1578["r"], $P1577
-  if_1572_end:
-.annotate 'line', 576
-    find_lex $P1580, "$/"
-    unless_null $P1580, vivify_507
-    $P1580 = root_new ['parrot';'Hash']
+    $P1563 = $P1562."ast"()
+    set $S1564, $P1563
+    new $P1565, 'String'
+    set $P1565, $S1564
+    store_lex "$name", $P1565
+    find_lex $P1566, "$past"
+.annotate 'line', 559
+    find_lex $P1568, "$/"
+    unless_null $P1568, vivify_507
+    $P1568 = root_new ['parrot';'Hash']
   vivify_507:
-    set $P1581, $P1580["sym"]
-    unless_null $P1581, vivify_508
-    new $P1581, "Undef"
+    set $P1569, $P1568["proto"]
+    unless_null $P1569, vivify_508
+    new $P1569, "Undef"
   vivify_508:
-    set $S1582, $P1581
-    iseq $I1583, $S1582, "rule"
-    unless $I1583, if_1579_end
-    new $P1584, "Integer"
-    assign $P1584, 1
-    find_lex $P1585, "%h"
-    unless_null $P1585, vivify_509
-    $P1585 = root_new ['parrot';'Hash']
-    store_lex "%h", $P1585
+    if $P1569, if_1567
+.annotate 'line', 586
+    find_lex $P1593, "$key"
+    set $S1594, $P1593
+    iseq $I1595, $S1594, "open"
+    if $I1595, if_1592
+.annotate 'line', 599
+    .const 'Sub' $P1625 = "91_1280467483.70067" 
+    capture_lex $P1625
+    $P1625()
+    goto if_1592_end
+  if_1592:
+.annotate 'line', 586
+    .const 'Sub' $P1597 = "90_1280467483.70067" 
+    capture_lex $P1597
+    $P1597()
+  if_1592_end:
+    goto if_1567_end
+  if_1567:
+.annotate 'line', 561
+    get_hll_global $P1570, ["PAST"], "Stmts"
+.annotate 'line', 562
+    get_hll_global $P1571, ["PAST"], "Block"
+    find_lex $P1572, "$name"
+.annotate 'line', 563
+    get_hll_global $P1573, ["PAST"], "Op"
+.annotate 'line', 564
+    get_hll_global $P1574, ["PAST"], "Var"
+    $P1575 = $P1574."new"("self" :named("name"), "register" :named("scope"))
+    find_lex $P1576, "$name"
+    $P1577 = $P1573."new"($P1575, $P1576, "!protoregex" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 563
+    find_lex $P1578, "$/"
+    $P1579 = $P1571."new"($P1577, $P1572 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1578 :named("node"))
+.annotate 'line', 573
+    get_hll_global $P1580, ["PAST"], "Block"
+    new $P1581, "String"
+    assign $P1581, "!PREFIX__"
+    find_lex $P1582, "$name"
+    concat $P1583, $P1581, $P1582
+.annotate 'line', 574
+    get_hll_global $P1584, ["PAST"], "Op"
+.annotate 'line', 575
+    get_hll_global $P1585, ["PAST"], "Var"
+    $P1586 = $P1585."new"("self" :named("name"), "register" :named("scope"))
+    find_lex $P1587, "$name"
+    $P1588 = $P1584."new"($P1586, $P1587, "!PREFIX__!protoregex" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 574
+    find_lex $P1589, "$/"
+    $P1590 = $P1580."new"($P1588, $P1583 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1589 :named("node"))
+.annotate 'line', 573
+    $P1591 = $P1570."new"($P1579, $P1590)
+.annotate 'line', 561
+    store_lex "$past", $P1591
+  if_1567_end:
+.annotate 'line', 613
+    find_lex $P1646, "$/"
+    find_lex $P1647, "$past"
+    $P1648 = $P1646."!make"($P1647)
+.annotate 'line', 553
+    .return ($P1648)
+  control_1552:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1649, exception, "payload"
+    .return ($P1649)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1624"  :anon :subid("91_1280467483.70067") :outer("89_1280467483.70067")
+.annotate 'line', 600
+    new $P1626, "Undef"
+    .lex "$regex", $P1626
+.annotate 'line', 601
+    get_hll_global $P1627, ["Regex";"P6Regex";"Actions"], "buildsub"
+    find_lex $P1628, "$/"
+    unless_null $P1628, vivify_509
+    $P1628 = root_new ['parrot';'Hash']
   vivify_509:
-    set $P1585["r"], $P1584
-    new $P1586, "Integer"
-    assign $P1586, 1
-    find_lex $P1587, "%h"
-    unless_null $P1587, vivify_510
-    $P1587 = root_new ['parrot';'Hash']
-    store_lex "%h", $P1587
+    set $P1629, $P1628["p6regex"]
+    unless_null $P1629, vivify_510
+    new $P1629, "Undef"
   vivify_510:
-    set $P1587["s"], $P1586
-  if_1579_end:
-.annotate 'line', 577
-    find_lex $P1588, "@MODIFIERS"
-    find_lex $P1589, "%h"
-    $P1588."unshift"($P1589)
-.annotate 'line', 578
-
-            $P0 = find_lex '$name'
-            set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
-        
-.annotate 'line', 582
-    get_global $P1590, "@BLOCK"
-    unless_null $P1590, vivify_511
-    $P1590 = root_new ['parrot';'ResizablePMCArray']
+    $P1630 = $P1629."ast"()
+    get_global $P1631, "@BLOCK"
+    $P1632 = $P1631."shift"()
+    $P1633 = $P1627($P1630, $P1632)
+    store_lex "$regex", $P1633
+.annotate 'line', 602
+    find_lex $P1634, "$regex"
+    find_lex $P1635, "$name"
+    $P1634."name"($P1635)
+.annotate 'line', 604
+    get_hll_global $P1636, ["PAST"], "Op"
+.annotate 'line', 606
+    get_hll_global $P1637, ["PAST"], "Var"
+    new $P1638, "ResizablePMCArray"
+    push $P1638, "Regex"
+    $P1639 = $P1637."new"("Method" :named("name"), $P1638 :named("namespace"), "package" :named("scope"))
+    find_lex $P1640, "$regex"
+    $P1641 = $P1636."new"($P1639, $P1640, "callmethod" :named("pasttype"), "new" :named("name"))
+.annotate 'line', 604
+    store_lex "$past", $P1641
+.annotate 'line', 610
+    find_lex $P1642, "$regex"
+    find_lex $P1643, "$past"
+    unless_null $P1643, vivify_511
+    $P1643 = root_new ['parrot';'Hash']
+    store_lex "$past", $P1643
   vivify_511:
-    set $P1591, $P1590[0]
-    unless_null $P1591, vivify_512
-    new $P1591, "Undef"
-  vivify_512:
-    $P1591."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
-.annotate 'line', 583
-    get_global $P1592, "@BLOCK"
-    unless_null $P1592, vivify_513
-    $P1592 = root_new ['parrot';'ResizablePMCArray']
-  vivify_513:
-    set $P1593, $P1592[0]
-    unless_null $P1593, vivify_514
-    new $P1593, "Undef"
-  vivify_514:
-    $P1593."symbol"("$/", "lexical" :named("scope"))
-.annotate 'line', 584
-    new $P1594, "Exception"
-    set $P1594['type'], .CONTROL_RETURN
-    new $P1595, "Integer"
-    assign $P1595, 0
-    setattribute $P1594, 'payload', $P1595
-    throw $P1594
-.annotate 'line', 573
-    .return ()
+    set $P1643["sink"], $P1642
+.annotate 'line', 611
+    find_lex $P1644, "@MODIFIERS"
+    $P1645 = $P1644."shift"()
+.annotate 'line', 599
+    .return ($P1645)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "dotty"  :subid("92_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1625
-.annotate 'line', 604
-    new $P1624, 'ExceptionHandler'
-    set_addr $P1624, control_1623
-    $P1624."handle_types"(.CONTROL_RETURN)
-    push_eh $P1624
-    .lex "self", self
-    .lex "$/", param_1625
-.annotate 'line', 605
-    new $P1626, "Undef"
-    .lex "$past", $P1626
-    find_lex $P1629, "$/"
-    unless_null $P1629, vivify_515
-    $P1629 = root_new ['parrot';'Hash']
+.sub "_block1596"  :anon :subid("90_1280467483.70067") :outer("89_1280467483.70067")
+.annotate 'line', 587
+    $P1598 = root_new ['parrot';'Hash']
+    .lex "%h", $P1598
+.annotate 'line', 586
+    find_lex $P1599, "%h"
+.annotate 'line', 588
+    find_lex $P1601, "$/"
+    unless_null $P1601, vivify_512
+    $P1601 = root_new ['parrot';'Hash']
+  vivify_512:
+    set $P1602, $P1601["sym"]
+    unless_null $P1602, vivify_513
+    new $P1602, "Undef"
+  vivify_513:
+    set $S1603, $P1602
+    iseq $I1604, $S1603, "token"
+    unless $I1604, if_1600_end
+    new $P1605, "Integer"
+    assign $P1605, 1
+    find_lex $P1606, "%h"
+    unless_null $P1606, vivify_514
+    $P1606 = root_new ['parrot';'Hash']
+    store_lex "%h", $P1606
+  vivify_514:
+    set $P1606["r"], $P1605
+  if_1600_end:
+.annotate 'line', 589
+    find_lex $P1608, "$/"
+    unless_null $P1608, vivify_515
+    $P1608 = root_new ['parrot';'Hash']
   vivify_515:
-    set $P1630, $P1629["args"]
-    unless_null $P1630, vivify_516
-    new $P1630, "Undef"
+    set $P1609, $P1608["sym"]
+    unless_null $P1609, vivify_516
+    new $P1609, "Undef"
   vivify_516:
-    if $P1630, if_1628
-    get_hll_global $P1635, ["PAST"], "Op"
-    find_lex $P1636, "$/"
-    $P1637 = $P1635."new"($P1636 :named("node"))
-    set $P1627, $P1637
-    goto if_1628_end
-  if_1628:
-    find_lex $P1631, "$/"
-    unless_null $P1631, vivify_517
-    $P1631 = root_new ['parrot';'Hash']
+    set $S1610, $P1609
+    iseq $I1611, $S1610, "rule"
+    unless $I1611, if_1607_end
+    new $P1612, "Integer"
+    assign $P1612, 1
+    find_lex $P1613, "%h"
+    unless_null $P1613, vivify_517
+    $P1613 = root_new ['parrot';'Hash']
+    store_lex "%h", $P1613
   vivify_517:
-    set $P1632, $P1631["args"]
-    unless_null $P1632, vivify_518
-    $P1632 = root_new ['parrot';'ResizablePMCArray']
+    set $P1613["r"], $P1612
+    new $P1614, "Integer"
+    assign $P1614, 1
+    find_lex $P1615, "%h"
+    unless_null $P1615, vivify_518
+    $P1615 = root_new ['parrot';'Hash']
+    store_lex "%h", $P1615
   vivify_518:
-    set $P1633, $P1632[0]
-    unless_null $P1633, vivify_519
-    new $P1633, "Undef"
+    set $P1615["s"], $P1614
+  if_1607_end:
+.annotate 'line', 590
+    find_lex $P1616, "@MODIFIERS"
+    find_lex $P1617, "%h"
+    $P1616."unshift"($P1617)
+.annotate 'line', 591
+
+            $P0 = find_lex '$name'
+            set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
+        
+.annotate 'line', 595
+    get_global $P1618, "@BLOCK"
+    unless_null $P1618, vivify_519
+    $P1618 = root_new ['parrot';'ResizablePMCArray']
   vivify_519:
-    $P1634 = $P1633."ast"()
-    set $P1627, $P1634
-  if_1628_end:
-    store_lex "$past", $P1627
-.annotate 'line', 606
-    find_lex $P1638, "$past"
-    find_lex $P1641, "$/"
-    unless_null $P1641, vivify_520
-    $P1641 = root_new ['parrot';'Hash']
+    set $P1619, $P1618[0]
+    unless_null $P1619, vivify_520
+    new $P1619, "Undef"
   vivify_520:
-    set $P1642, $P1641["quote"]
-    unless_null $P1642, vivify_521
-    new $P1642, "Undef"
+    $P1619."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
+.annotate 'line', 596
+    get_global $P1620, "@BLOCK"
+    unless_null $P1620, vivify_521
+    $P1620 = root_new ['parrot';'ResizablePMCArray']
   vivify_521:
-    if $P1642, if_1640
-    find_lex $P1646, "$/"
-    unless_null $P1646, vivify_522
-    $P1646 = root_new ['parrot';'Hash']
+    set $P1621, $P1620[0]
+    unless_null $P1621, vivify_522
+    new $P1621, "Undef"
   vivify_522:
-    set $P1647, $P1646["longname"]
-    unless_null $P1647, vivify_523
-    new $P1647, "Undef"
-  vivify_523:
-    set $S1648, $P1647
-    new $P1639, 'String'
-    set $P1639, $S1648
-    goto if_1640_end
-  if_1640:
-    find_lex $P1643, "$/"
-    unless_null $P1643, vivify_524
-    $P1643 = root_new ['parrot';'Hash']
-  vivify_524:
-    set $P1644, $P1643["quote"]
-    unless_null $P1644, vivify_525
-    new $P1644, "Undef"
-  vivify_525:
-    $P1645 = $P1644."ast"()
-    set $P1639, $P1645
-  if_1640_end:
-    $P1638."name"($P1639)
-.annotate 'line', 607
-    find_lex $P1649, "$past"
-    $P1649."pasttype"("callmethod")
-.annotate 'line', 608
-    find_lex $P1650, "$/"
-    find_lex $P1651, "$past"
-    $P1652 = $P1650."!make"($P1651)
-.annotate 'line', 604
-    .return ($P1652)
-  control_1623:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1653, exception, "payload"
-    .return ($P1653)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "term:sym<self>"  :subid("93_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1657
-.annotate 'line', 613
-    new $P1656, 'ExceptionHandler'
-    set_addr $P1656, control_1655
-    $P1656."handle_types"(.CONTROL_RETURN)
-    push_eh $P1656
-    .lex "self", self
-    .lex "$/", param_1657
-.annotate 'line', 614
-    find_lex $P1658, "$/"
-    get_hll_global $P1659, ["PAST"], "Var"
-    $P1660 = $P1659."new"("self" :named("name"))
-    $P1661 = $P1658."!make"($P1660)
-.annotate 'line', 613
-    .return ($P1661)
-  control_1655:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1662, exception, "payload"
-    .return ($P1662)
+    $P1621."symbol"("$/", "lexical" :named("scope"))
+.annotate 'line', 597
+    new $P1622, "Exception"
+    set $P1622['type'], .CONTROL_RETURN
+    new $P1623, "Integer"
+    assign $P1623, 0
+    setattribute $P1622, 'payload', $P1623
+    throw $P1622
+.annotate 'line', 586
+    .return ()
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<identifier>"  :subid("94_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1666
+.sub "dotty"  :subid("92_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1653
 .annotate 'line', 617
-    new $P1665, 'ExceptionHandler'
-    set_addr $P1665, control_1664
-    $P1665."handle_types"(.CONTROL_RETURN)
-    push_eh $P1665
+    new $P1652, 'ExceptionHandler'
+    set_addr $P1652, control_1651
+    $P1652."handle_types"(.CONTROL_RETURN)
+    push_eh $P1652
     .lex "self", self
-    .lex "$/", param_1666
+    .lex "$/", param_1653
 .annotate 'line', 618
-    new $P1667, "Undef"
-    .lex "$past", $P1667
-    find_lex $P1668, "$/"
-    unless_null $P1668, vivify_526
-    $P1668 = root_new ['parrot';'Hash']
+    new $P1654, "Undef"
+    .lex "$past", $P1654
+    find_lex $P1657, "$/"
+    unless_null $P1657, vivify_523
+    $P1657 = root_new ['parrot';'Hash']
+  vivify_523:
+    set $P1658, $P1657["args"]
+    unless_null $P1658, vivify_524
+    new $P1658, "Undef"
+  vivify_524:
+    if $P1658, if_1656
+    get_hll_global $P1663, ["PAST"], "Op"
+    find_lex $P1664, "$/"
+    $P1665 = $P1663."new"($P1664 :named("node"))
+    set $P1655, $P1665
+    goto if_1656_end
+  if_1656:
+    find_lex $P1659, "$/"
+    unless_null $P1659, vivify_525
+    $P1659 = root_new ['parrot';'Hash']
+  vivify_525:
+    set $P1660, $P1659["args"]
+    unless_null $P1660, vivify_526
+    $P1660 = root_new ['parrot';'ResizablePMCArray']
   vivify_526:
-    set $P1669, $P1668["args"]
-    unless_null $P1669, vivify_527
-    new $P1669, "Undef"
+    set $P1661, $P1660[0]
+    unless_null $P1661, vivify_527
+    new $P1661, "Undef"
   vivify_527:
-    $P1670 = $P1669."ast"()
-    store_lex "$past", $P1670
+    $P1662 = $P1661."ast"()
+    set $P1655, $P1662
+  if_1656_end:
+    store_lex "$past", $P1655
 .annotate 'line', 619
-    find_lex $P1671, "$past"
-    find_lex $P1672, "$/"
-    unless_null $P1672, vivify_528
-    $P1672 = root_new ['parrot';'Hash']
+    find_lex $P1666, "$past"
+    find_lex $P1669, "$/"
+    unless_null $P1669, vivify_528
+    $P1669 = root_new ['parrot';'Hash']
   vivify_528:
-    set $P1673, $P1672["deflongname"]
-    unless_null $P1673, vivify_529
-    new $P1673, "Undef"
+    set $P1670, $P1669["quote"]
+    unless_null $P1670, vivify_529
+    new $P1670, "Undef"
   vivify_529:
-    set $S1674, $P1673
-    $P1671."name"($S1674)
+    if $P1670, if_1668
+    find_lex $P1674, "$/"
+    unless_null $P1674, vivify_530
+    $P1674 = root_new ['parrot';'Hash']
+  vivify_530:
+    set $P1675, $P1674["longname"]
+    unless_null $P1675, vivify_531
+    new $P1675, "Undef"
+  vivify_531:
+    set $S1676, $P1675
+    new $P1667, 'String'
+    set $P1667, $S1676
+    goto if_1668_end
+  if_1668:
+    find_lex $P1671, "$/"
+    unless_null $P1671, vivify_532
+    $P1671 = root_new ['parrot';'Hash']
+  vivify_532:
+    set $P1672, $P1671["quote"]
+    unless_null $P1672, vivify_533
+    new $P1672, "Undef"
+  vivify_533:
+    $P1673 = $P1672."ast"()
+    set $P1667, $P1673
+  if_1668_end:
+    $P1666."name"($P1667)
 .annotate 'line', 620
-    find_lex $P1675, "$/"
-    find_lex $P1676, "$past"
-    $P1677 = $P1675."!make"($P1676)
+    find_lex $P1677, "$past"
+    $P1677."pasttype"("callmethod")
+.annotate 'line', 621
+    find_lex $P1678, "$/"
+    find_lex $P1679, "$past"
+    $P1680 = $P1678."!make"($P1679)
 .annotate 'line', 617
-    .return ($P1677)
-  control_1664:
+    .return ($P1680)
+  control_1651:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1678, exception, "payload"
-    .return ($P1678)
+    getattribute $P1681, exception, "payload"
+    .return ($P1681)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<name>"  :subid("95_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1682
-.annotate 'line', 623
-    new $P1681, 'ExceptionHandler'
-    set_addr $P1681, control_1680
-    $P1681."handle_types"(.CONTROL_RETURN)
-    push_eh $P1681
+.sub "term:sym<self>"  :subid("93_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1685
+.annotate 'line', 626
+    new $P1684, 'ExceptionHandler'
+    set_addr $P1684, control_1683
+    $P1684."handle_types"(.CONTROL_RETURN)
+    push_eh $P1684
     .lex "self", self
-    .lex "$/", param_1682
-.annotate 'line', 624
-    $P1683 = root_new ['parrot';'ResizablePMCArray']
-    .lex "@ns", $P1683
-.annotate 'line', 625
-    new $P1684, "Undef"
-    .lex "$name", $P1684
+    .lex "$/", param_1685
 .annotate 'line', 627
-    new $P1685, "Undef"
-    .lex "$var", $P1685
-.annotate 'line', 629
-    new $P1686, "Undef"
-    .lex "$past", $P1686
-.annotate 'line', 624
-    find_lex $P1687, "$/"
-    unless_null $P1687, vivify_530
-    $P1687 = root_new ['parrot';'Hash']
-  vivify_530:
-    set $P1688, $P1687["name"]
-    unless_null $P1688, vivify_531
-    $P1688 = root_new ['parrot';'Hash']
-  vivify_531:
-    set $P1689, $P1688["identifier"]
-    unless_null $P1689, vivify_532
-    new $P1689, "Undef"
-  vivify_532:
-    clone $P1690, $P1689
-    store_lex "@ns", $P1690
-.annotate 'line', 625
-    find_lex $P1691, "@ns"
-    $P1692 = $P1691."pop"()
-    store_lex "$name", $P1692
+    find_lex $P1686, "$/"
+    get_hll_global $P1687, ["PAST"], "Var"
+    $P1688 = $P1687."new"("self" :named("name"))
+    $P1689 = $P1686."!make"($P1688)
 .annotate 'line', 626
-    find_lex $P1696, "@ns"
-    if $P1696, if_1695
-    set $P1694, $P1696
-    goto if_1695_end
-  if_1695:
-    find_lex $P1697, "@ns"
-    unless_null $P1697, vivify_533
-    $P1697 = root_new ['parrot';'ResizablePMCArray']
-  vivify_533:
-    set $P1698, $P1697[0]
-    unless_null $P1698, vivify_534
-    new $P1698, "Undef"
-  vivify_534:
-    set $S1699, $P1698
-    iseq $I1700, $S1699, "GLOBAL"
-    new $P1694, 'Integer'
-    set $P1694, $I1700
-  if_1695_end:
-    unless $P1694, if_1693_end
-    find_lex $P1701, "@ns"
-    $P1701."shift"()
-  if_1693_end:
-.annotate 'line', 628
-    get_hll_global $P1702, ["PAST"], "Var"
-    find_lex $P1703, "$name"
-    set $S1704, $P1703
-    find_lex $P1705, "@ns"
-    $P1706 = $P1702."new"($S1704 :named("name"), $P1705 :named("namespace"), "package" :named("scope"))
-    store_lex "$var", $P1706
-.annotate 'line', 629
-    find_lex $P1707, "$var"
-    store_lex "$past", $P1707
+    .return ($P1689)
+  control_1683:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1690, exception, "payload"
+    .return ($P1690)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "term:sym<identifier>"  :subid("94_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1694
 .annotate 'line', 630
-    find_lex $P1709, "$/"
-    unless_null $P1709, vivify_535
-    $P1709 = root_new ['parrot';'Hash']
+    new $P1693, 'ExceptionHandler'
+    set_addr $P1693, control_1692
+    $P1693."handle_types"(.CONTROL_RETURN)
+    push_eh $P1693
+    .lex "self", self
+    .lex "$/", param_1694
+.annotate 'line', 631
+    new $P1695, "Undef"
+    .lex "$past", $P1695
+    find_lex $P1696, "$/"
+    unless_null $P1696, vivify_534
+    $P1696 = root_new ['parrot';'Hash']
+  vivify_534:
+    set $P1697, $P1696["args"]
+    unless_null $P1697, vivify_535
+    new $P1697, "Undef"
   vivify_535:
-    set $P1710, $P1709["args"]
-    unless_null $P1710, vivify_536
-    new $P1710, "Undef"
+    $P1698 = $P1697."ast"()
+    store_lex "$past", $P1698
+.annotate 'line', 632
+    find_lex $P1699, "$past"
+    find_lex $P1700, "$/"
+    unless_null $P1700, vivify_536
+    $P1700 = root_new ['parrot';'Hash']
   vivify_536:
-    unless $P1710, if_1708_end
-.annotate 'line', 631
-    find_lex $P1711, "$/"
-    unless_null $P1711, vivify_537
-    $P1711 = root_new ['parrot';'Hash']
+    set $P1701, $P1700["deflongname"]
+    unless_null $P1701, vivify_537
+    new $P1701, "Undef"
   vivify_537:
-    set $P1712, $P1711["args"]
-    unless_null $P1712, vivify_538
-    $P1712 = root_new ['parrot';'ResizablePMCArray']
-  vivify_538:
-    set $P1713, $P1712[0]
-    unless_null $P1713, vivify_539
-    new $P1713, "Undef"
-  vivify_539:
-    $P1714 = $P1713."ast"()
-    store_lex "$past", $P1714
-.annotate 'line', 632
-    find_lex $P1715, "$past"
-    find_lex $P1716, "$var"
-    $P1715."unshift"($P1716)
-  if_1708_end:
-.annotate 'line', 634
-    find_lex $P1717, "$/"
-    find_lex $P1718, "$past"
-    $P1719 = $P1717."!make"($P1718)
-.annotate 'line', 623
-    .return ($P1719)
-  control_1680:
+    set $S1702, $P1701
+    $P1699."name"($S1702)
+.annotate 'line', 633
+    find_lex $P1703, "$/"
+    find_lex $P1704, "$past"
+    $P1705 = $P1703."!make"($P1704)
+.annotate 'line', 630
+    .return ($P1705)
+  control_1692:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1720, exception, "payload"
-    .return ($P1720)
+    getattribute $P1706, exception, "payload"
+    .return ($P1706)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<pir::op>"  :subid("96_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1724
-.annotate 'line', 637
-    new $P1723, 'ExceptionHandler'
-    set_addr $P1723, control_1722
-    $P1723."handle_types"(.CONTROL_RETURN)
-    push_eh $P1723
+.sub "term:sym<name>"  :subid("95_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1710
+.annotate 'line', 636
+    new $P1709, 'ExceptionHandler'
+    set_addr $P1709, control_1708
+    $P1709."handle_types"(.CONTROL_RETURN)
+    push_eh $P1709
     .lex "self", self
-    .lex "$/", param_1724
-.annotate 'line', 638
-    new $P1725, "Undef"
-    .lex "$past", $P1725
-.annotate 'line', 639
-    new $P1726, "Undef"
-    .lex "$pirop", $P1726
+    .lex "$/", param_1710
+.annotate 'line', 637
+    $P1711 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@ns", $P1711
 .annotate 'line', 638
-    find_lex $P1729, "$/"
-    unless_null $P1729, vivify_540
-    $P1729 = root_new ['parrot';'Hash']
+    new $P1712, "Undef"
+    .lex "$name", $P1712
+.annotate 'line', 640
+    new $P1713, "Undef"
+    .lex "$var", $P1713
+.annotate 'line', 642
+    new $P1714, "Undef"
+    .lex "$past", $P1714
+.annotate 'line', 637
+    find_lex $P1715, "$/"
+    unless_null $P1715, vivify_538
+    $P1715 = root_new ['parrot';'Hash']
+  vivify_538:
+    set $P1716, $P1715["name"]
+    unless_null $P1716, vivify_539
+    $P1716 = root_new ['parrot';'Hash']
+  vivify_539:
+    set $P1717, $P1716["identifier"]
+    unless_null $P1717, vivify_540
+    new $P1717, "Undef"
   vivify_540:
-    set $P1730, $P1729["args"]
-    unless_null $P1730, vivify_541
-    new $P1730, "Undef"
+    clone $P1718, $P1717
+    store_lex "@ns", $P1718
+.annotate 'line', 638
+    find_lex $P1719, "@ns"
+    $P1720 = $P1719."pop"()
+    store_lex "$name", $P1720
+.annotate 'line', 639
+    find_lex $P1724, "@ns"
+    if $P1724, if_1723
+    set $P1722, $P1724
+    goto if_1723_end
+  if_1723:
+    find_lex $P1725, "@ns"
+    unless_null $P1725, vivify_541
+    $P1725 = root_new ['parrot';'ResizablePMCArray']
   vivify_541:
-    if $P1730, if_1728
-    get_hll_global $P1735, ["PAST"], "Op"
-    find_lex $P1736, "$/"
-    $P1737 = $P1735."new"($P1736 :named("node"))
-    set $P1727, $P1737
-    goto if_1728_end
-  if_1728:
-    find_lex $P1731, "$/"
-    unless_null $P1731, vivify_542
-    $P1731 = root_new ['parrot';'Hash']
+    set $P1726, $P1725[0]
+    unless_null $P1726, vivify_542
+    new $P1726, "Undef"
   vivify_542:
-    set $P1732, $P1731["args"]
-    unless_null $P1732, vivify_543
-    $P1732 = root_new ['parrot';'ResizablePMCArray']
+    set $S1727, $P1726
+    iseq $I1728, $S1727, "GLOBAL"
+    new $P1722, 'Integer'
+    set $P1722, $I1728
+  if_1723_end:
+    unless $P1722, if_1721_end
+    find_lex $P1729, "@ns"
+    $P1729."shift"()
+  if_1721_end:
+.annotate 'line', 641
+    get_hll_global $P1730, ["PAST"], "Var"
+    find_lex $P1731, "$name"
+    set $S1732, $P1731
+    find_lex $P1733, "@ns"
+    $P1734 = $P1730."new"($S1732 :named("name"), $P1733 :named("namespace"), "package" :named("scope"))
+    store_lex "$var", $P1734
+.annotate 'line', 642
+    find_lex $P1735, "$var"
+    store_lex "$past", $P1735
+.annotate 'line', 643
+    find_lex $P1737, "$/"
+    unless_null $P1737, vivify_543
+    $P1737 = root_new ['parrot';'Hash']
   vivify_543:
-    set $P1733, $P1732[0]
-    unless_null $P1733, vivify_544
-    new $P1733, "Undef"
+    set $P1738, $P1737["args"]
+    unless_null $P1738, vivify_544
+    new $P1738, "Undef"
   vivify_544:
-    $P1734 = $P1733."ast"()
-    set $P1727, $P1734
-  if_1728_end:
-    store_lex "$past", $P1727
-.annotate 'line', 639
-    find_lex $P1738, "$/"
-    unless_null $P1738, vivify_545
-    $P1738 = root_new ['parrot';'Hash']
+    unless $P1738, if_1736_end
+.annotate 'line', 644
+    find_lex $P1739, "$/"
+    unless_null $P1739, vivify_545
+    $P1739 = root_new ['parrot';'Hash']
   vivify_545:
-    set $P1739, $P1738["op"]
-    unless_null $P1739, vivify_546
-    new $P1739, "Undef"
+    set $P1740, $P1739["args"]
+    unless_null $P1740, vivify_546
+    $P1740 = root_new ['parrot';'ResizablePMCArray']
   vivify_546:
-    set $S1740, $P1739
-    new $P1741, 'String'
-    set $P1741, $S1740
-    store_lex "$pirop", $P1741
-.annotate 'line', 640
+    set $P1741, $P1740[0]
+    unless_null $P1741, vivify_547
+    new $P1741, "Undef"
+  vivify_547:
+    $P1742 = $P1741."ast"()
+    store_lex "$past", $P1742
+.annotate 'line', 645
+    find_lex $P1743, "$past"
+    find_lex $P1744, "$var"
+    $P1743."unshift"($P1744)
+  if_1736_end:
+.annotate 'line', 647
+    find_lex $P1745, "$/"
+    find_lex $P1746, "$past"
+    $P1747 = $P1745."!make"($P1746)
+.annotate 'line', 636
+    .return ($P1747)
+  control_1708:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1748, exception, "payload"
+    .return ($P1748)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "term:sym<pir::op>"  :subid("96_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1752
+.annotate 'line', 650
+    new $P1751, 'ExceptionHandler'
+    set_addr $P1751, control_1750
+    $P1751."handle_types"(.CONTROL_RETURN)
+    push_eh $P1751
+    .lex "self", self
+    .lex "$/", param_1752
+.annotate 'line', 651
+    new $P1753, "Undef"
+    .lex "$past", $P1753
+.annotate 'line', 652
+    new $P1754, "Undef"
+    .lex "$pirop", $P1754
+.annotate 'line', 651
+    find_lex $P1757, "$/"
+    unless_null $P1757, vivify_548
+    $P1757 = root_new ['parrot';'Hash']
+  vivify_548:
+    set $P1758, $P1757["args"]
+    unless_null $P1758, vivify_549
+    new $P1758, "Undef"
+  vivify_549:
+    if $P1758, if_1756
+    get_hll_global $P1763, ["PAST"], "Op"
+    find_lex $P1764, "$/"
+    $P1765 = $P1763."new"($P1764 :named("node"))
+    set $P1755, $P1765
+    goto if_1756_end
+  if_1756:
+    find_lex $P1759, "$/"
+    unless_null $P1759, vivify_550
+    $P1759 = root_new ['parrot';'Hash']
+  vivify_550:
+    set $P1760, $P1759["args"]
+    unless_null $P1760, vivify_551
+    $P1760 = root_new ['parrot';'ResizablePMCArray']
+  vivify_551:
+    set $P1761, $P1760[0]
+    unless_null $P1761, vivify_552
+    new $P1761, "Undef"
+  vivify_552:
+    $P1762 = $P1761."ast"()
+    set $P1755, $P1762
+  if_1756_end:
+    store_lex "$past", $P1755
+.annotate 'line', 652
+    find_lex $P1766, "$/"
+    unless_null $P1766, vivify_553
+    $P1766 = root_new ['parrot';'Hash']
+  vivify_553:
+    set $P1767, $P1766["op"]
+    unless_null $P1767, vivify_554
+    new $P1767, "Undef"
+  vivify_554:
+    set $S1768, $P1767
+    new $P1769, 'String'
+    set $P1769, $S1768
+    store_lex "$pirop", $P1769
+.annotate 'line', 653
 
         $P0 = find_lex '$pirop'
         $S0 = $P0
         $P0 = split '__', $S0
         $S0 = join ' ', $P0
-        $P1742 = box $S0
+        $P1770 = box $S0
     
-    store_lex "$pirop", $P1742
-.annotate 'line', 647
-    find_lex $P1743, "$past"
-    find_lex $P1744, "$pirop"
-    $P1743."pirop"($P1744)
-.annotate 'line', 648
-    find_lex $P1745, "$past"
-    $P1745."pasttype"("pirop")
-.annotate 'line', 649
-    find_lex $P1746, "$/"
-    find_lex $P1747, "$past"
-    $P1748 = $P1746."!make"($P1747)
-.annotate 'line', 637
-    .return ($P1748)
-  control_1722:
+    store_lex "$pirop", $P1770
+.annotate 'line', 660
+    find_lex $P1771, "$past"
+    find_lex $P1772, "$pirop"
+    $P1771."pirop"($P1772)
+.annotate 'line', 661
+    find_lex $P1773, "$past"
+    $P1773."pasttype"("pirop")
+.annotate 'line', 662
+    find_lex $P1774, "$/"
+    find_lex $P1775, "$past"
+    $P1776 = $P1774."!make"($P1775)
+.annotate 'line', 650
+    .return ($P1776)
+  control_1750:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1749, exception, "payload"
-    .return ($P1749)
+    getattribute $P1777, exception, "payload"
+    .return ($P1777)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "args"  :subid("97_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1753
-.annotate 'line', 652
-    new $P1752, 'ExceptionHandler'
-    set_addr $P1752, control_1751
-    $P1752."handle_types"(.CONTROL_RETURN)
-    push_eh $P1752
-    .lex "self", self
-    .lex "$/", param_1753
-    find_lex $P1754, "$/"
-    find_lex $P1755, "$/"
-    unless_null $P1755, vivify_547
-    $P1755 = root_new ['parrot';'Hash']
-  vivify_547:
-    set $P1756, $P1755["arglist"]
-    unless_null $P1756, vivify_548
-    new $P1756, "Undef"
-  vivify_548:
-    $P1757 = $P1756."ast"()
-    $P1758 = $P1754."!make"($P1757)
-    .return ($P1758)
-  control_1751:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1759, exception, "payload"
-    .return ($P1759)
+.sub "args"  :subid("97_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1781
+.annotate 'line', 665
+    new $P1780, 'ExceptionHandler'
+    set_addr $P1780, control_1779
+    $P1780."handle_types"(.CONTROL_RETURN)
+    push_eh $P1780
+    .lex "self", self
+    .lex "$/", param_1781
+    find_lex $P1782, "$/"
+    find_lex $P1783, "$/"
+    unless_null $P1783, vivify_555
+    $P1783 = root_new ['parrot';'Hash']
+  vivify_555:
+    set $P1784, $P1783["arglist"]
+    unless_null $P1784, vivify_556
+    new $P1784, "Undef"
+  vivify_556:
+    $P1785 = $P1784."ast"()
+    $P1786 = $P1782."!make"($P1785)
+    .return ($P1786)
+  control_1779:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1787, exception, "payload"
+    .return ($P1787)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "arglist"  :subid("98_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1763
-.annotate 'line', 654
-    .const 'Sub' $P1774 = "99_1277356919.52295" 
-    capture_lex $P1774
-    new $P1762, 'ExceptionHandler'
-    set_addr $P1762, control_1761
-    $P1762."handle_types"(.CONTROL_RETURN)
-    push_eh $P1762
-    .lex "self", self
-    .lex "$/", param_1763
-.annotate 'line', 655
-    new $P1764, "Undef"
-    .lex "$past", $P1764
-.annotate 'line', 663
-    new $P1765, "Undef"
-    .lex "$i", $P1765
-.annotate 'line', 664
-    new $P1766, "Undef"
-    .lex "$n", $P1766
-.annotate 'line', 655
-    get_hll_global $P1767, ["PAST"], "Op"
-    find_lex $P1768, "$/"
-    $P1769 = $P1767."new"("call" :named("pasttype"), $P1768 :named("node"))
-    store_lex "$past", $P1769
-.annotate 'line', 656
-    find_lex $P1771, "$/"
-    unless_null $P1771, vivify_549
-    $P1771 = root_new ['parrot';'Hash']
-  vivify_549:
-    set $P1772, $P1771["EXPR"]
-    unless_null $P1772, vivify_550
-    new $P1772, "Undef"
-  vivify_550:
-    unless $P1772, if_1770_end
-    .const 'Sub' $P1774 = "99_1277356919.52295" 
-    capture_lex $P1774
-    $P1774()
-  if_1770_end:
-.annotate 'line', 663
-    new $P1806, "Integer"
-    assign $P1806, 0
-    store_lex "$i", $P1806
-.annotate 'line', 664
-    find_lex $P1807, "$past"
-    $P1808 = $P1807."list"()
-    set $N1809, $P1808
-    new $P1810, 'Float'
-    set $P1810, $N1809
-    store_lex "$n", $P1810
-.annotate 'line', 665
-    new $P1858, 'ExceptionHandler'
-    set_addr $P1858, loop1857_handler
-    $P1858."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P1858
-  loop1857_test:
-    find_lex $P1811, "$i"
-    set $N1812, $P1811
-    find_lex $P1813, "$n"
-    set $N1814, $P1813
-    islt $I1815, $N1812, $N1814
-    unless $I1815, loop1857_done
-  loop1857_redo:
-.annotate 'line', 666
-    find_lex $P1817, "$i"
-    set $I1818, $P1817
-    find_lex $P1819, "$past"
-    unless_null $P1819, vivify_554
-    $P1819 = root_new ['parrot';'ResizablePMCArray']
-  vivify_554:
-    set $P1820, $P1819[$I1818]
-    unless_null $P1820, vivify_555
-    new $P1820, "Undef"
-  vivify_555:
-    $S1821 = $P1820."name"()
-    iseq $I1822, $S1821, "&prefix:<|>"
-    unless $I1822, if_1816_end
+.sub "arglist"  :subid("98_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1791
 .annotate 'line', 667
-    find_lex $P1823, "$i"
-    set $I1824, $P1823
-    find_lex $P1825, "$past"
-    unless_null $P1825, vivify_556
-    $P1825 = root_new ['parrot';'ResizablePMCArray']
-  vivify_556:
-    set $P1826, $P1825[$I1824]
-    unless_null $P1826, vivify_557
-    $P1826 = root_new ['parrot';'ResizablePMCArray']
-  vivify_557:
-    set $P1827, $P1826[0]
-    unless_null $P1827, vivify_558
-    new $P1827, "Undef"
-  vivify_558:
-    find_lex $P1828, "$i"
-    set $I1829, $P1828
-    find_lex $P1830, "$past"
-    unless_null $P1830, vivify_559
-    $P1830 = root_new ['parrot';'ResizablePMCArray']
-    store_lex "$past", $P1830
-  vivify_559:
-    set $P1830[$I1829], $P1827
+    .const 'Sub' $P1802 = "99_1280467483.70067" 
+    capture_lex $P1802
+    new $P1790, 'ExceptionHandler'
+    set_addr $P1790, control_1789
+    $P1790."handle_types"(.CONTROL_RETURN)
+    push_eh $P1790
+    .lex "self", self
+    .lex "$/", param_1791
 .annotate 'line', 668
-    find_lex $P1831, "$i"
-    set $I1832, $P1831
-    find_lex $P1833, "$past"
-    unless_null $P1833, vivify_560
-    $P1833 = root_new ['parrot';'ResizablePMCArray']
-  vivify_560:
-    set $P1834, $P1833[$I1832]
-    unless_null $P1834, vivify_561
-    new $P1834, "Undef"
-  vivify_561:
-    $P1834."flat"(1)
+    new $P1792, "Undef"
+    .lex "$past", $P1792
+.annotate 'line', 676
+    new $P1793, "Undef"
+    .lex "$i", $P1793
+.annotate 'line', 677
+    new $P1794, "Undef"
+    .lex "$n", $P1794
+.annotate 'line', 668
+    get_hll_global $P1795, ["PAST"], "Op"
+    find_lex $P1796, "$/"
+    $P1797 = $P1795."new"("call" :named("pasttype"), $P1796 :named("node"))
+    store_lex "$past", $P1797
 .annotate 'line', 669
-    find_lex $P1838, "$i"
-    set $I1839, $P1838
-    find_lex $P1840, "$past"
-    unless_null $P1840, vivify_562
-    $P1840 = root_new ['parrot';'ResizablePMCArray']
+    find_lex $P1799, "$/"
+    unless_null $P1799, vivify_557
+    $P1799 = root_new ['parrot';'Hash']
+  vivify_557:
+    set $P1800, $P1799["EXPR"]
+    unless_null $P1800, vivify_558
+    new $P1800, "Undef"
+  vivify_558:
+    unless $P1800, if_1798_end
+    .const 'Sub' $P1802 = "99_1280467483.70067" 
+    capture_lex $P1802
+    $P1802()
+  if_1798_end:
+.annotate 'line', 676
+    new $P1834, "Integer"
+    assign $P1834, 0
+    store_lex "$i", $P1834
+.annotate 'line', 677
+    find_lex $P1835, "$past"
+    $P1836 = $P1835."list"()
+    set $N1837, $P1836
+    new $P1838, 'Float'
+    set $P1838, $N1837
+    store_lex "$n", $P1838
+.annotate 'line', 678
+    new $P1886, 'ExceptionHandler'
+    set_addr $P1886, loop1885_handler
+    $P1886."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1886
+  loop1885_test:
+    find_lex $P1839, "$i"
+    set $N1840, $P1839
+    find_lex $P1841, "$n"
+    set $N1842, $P1841
+    islt $I1843, $N1840, $N1842
+    unless $I1843, loop1885_done
+  loop1885_redo:
+.annotate 'line', 679
+    find_lex $P1845, "$i"
+    set $I1846, $P1845
+    find_lex $P1847, "$past"
+    unless_null $P1847, vivify_562
+    $P1847 = root_new ['parrot';'ResizablePMCArray']
   vivify_562:
-    set $P1841, $P1840[$I1839]
-    unless_null $P1841, vivify_563
-    new $P1841, "Undef"
+    set $P1848, $P1847[$I1846]
+    unless_null $P1848, vivify_563
+    new $P1848, "Undef"
   vivify_563:
-    get_hll_global $P1842, ["PAST"], "Val"
-    $P1843 = $P1841."isa"($P1842)
-    if $P1843, if_1837
-    set $P1836, $P1843
-    goto if_1837_end
-  if_1837:
-.annotate 'line', 670
-    find_lex $P1844, "$i"
-    set $I1845, $P1844
-    find_lex $P1846, "$past"
-    unless_null $P1846, vivify_564
-    $P1846 = root_new ['parrot';'ResizablePMCArray']
-  vivify_564:
-    set $P1847, $P1846[$I1845]
-    unless_null $P1847, vivify_565
-    new $P1847, "Undef"
-  vivify_565:
-    $S1848 = $P1847."name"()
-    substr $S1849, $S1848, 0, 1
-    iseq $I1850, $S1849, "%"
-    new $P1836, 'Integer'
-    set $P1836, $I1850
-  if_1837_end:
-    unless $P1836, if_1835_end
-.annotate 'line', 671
+    $S1849 = $P1848."name"()
+    iseq $I1850, $S1849, "&prefix:<|>"
+    unless $I1850, if_1844_end
+.annotate 'line', 680
     find_lex $P1851, "$i"
     set $I1852, $P1851
     find_lex $P1853, "$past"
-    unless_null $P1853, vivify_566
+    unless_null $P1853, vivify_564
     $P1853 = root_new ['parrot';'ResizablePMCArray']
-  vivify_566:
+  vivify_564:
     set $P1854, $P1853[$I1852]
-    unless_null $P1854, vivify_567
-    new $P1854, "Undef"
+    unless_null $P1854, vivify_565
+    $P1854 = root_new ['parrot';'ResizablePMCArray']
+  vivify_565:
+    set $P1855, $P1854[0]
+    unless_null $P1855, vivify_566
+    new $P1855, "Undef"
+  vivify_566:
+    find_lex $P1856, "$i"
+    set $I1857, $P1856
+    find_lex $P1858, "$past"
+    unless_null $P1858, vivify_567
+    $P1858 = root_new ['parrot';'ResizablePMCArray']
+    store_lex "$past", $P1858
   vivify_567:
-    $P1854."named"(1)
-  if_1835_end:
-  if_1816_end:
-.annotate 'line', 666
-    find_lex $P1855, "$i"
-    clone $P1856, $P1855
-    inc $P1855
-  loop1857_next:
-.annotate 'line', 665
-    goto loop1857_test
-  loop1857_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1859, exception, 'type'
-    eq $P1859, .CONTROL_LOOP_NEXT, loop1857_next
-    eq $P1859, .CONTROL_LOOP_REDO, loop1857_redo
-  loop1857_done:
-    pop_eh 
-.annotate 'line', 676
-    find_lex $P1860, "$/"
+    set $P1858[$I1857], $P1855
+.annotate 'line', 681
+    find_lex $P1859, "$i"
+    set $I1860, $P1859
     find_lex $P1861, "$past"
-    $P1862 = $P1860."!make"($P1861)
-.annotate 'line', 654
-    .return ($P1862)
-  control_1761:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1863, exception, "payload"
-    .return ($P1863)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "_block1773"  :anon :subid("99_1277356919.52295") :outer("98_1277356919.52295")
-.annotate 'line', 656
-    .const 'Sub' $P1795 = "100_1277356919.52295" 
-    capture_lex $P1795
-.annotate 'line', 657
-    new $P1775, "Undef"
-    .lex "$expr", $P1775
-    find_lex $P1776, "$/"
-    unless_null $P1776, vivify_551
-    $P1776 = root_new ['parrot';'Hash']
-  vivify_551:
-    set $P1777, $P1776["EXPR"]
-    unless_null $P1777, vivify_552
-    new $P1777, "Undef"
-  vivify_552:
-    $P1778 = $P1777."ast"()
-    store_lex "$expr", $P1778
-.annotate 'line', 658
-    find_lex $P1783, "$expr"
-    $S1784 = $P1783."name"()
-    iseq $I1785, $S1784, "&infix:<,>"
-    if $I1785, if_1782
-    new $P1781, 'Integer'
-    set $P1781, $I1785
-    goto if_1782_end
-  if_1782:
-    find_lex $P1786, "$expr"
-    $P1787 = $P1786."named"()
-    isfalse $I1788, $P1787
-    new $P1781, 'Integer'
-    set $P1781, $I1788
-  if_1782_end:
-    if $P1781, if_1780
-.annotate 'line', 661
-    find_lex $P1803, "$past"
-    find_lex $P1804, "$expr"
-    $P1805 = $P1803."push"($P1804)
-    set $P1779, $P1805
-.annotate 'line', 658
-    goto if_1780_end
-  if_1780:
-.annotate 'line', 659
-    find_lex $P1790, "$expr"
-    $P1791 = $P1790."list"()
-    defined $I1792, $P1791
-    unless $I1792, for_undef_553
-    iter $P1789, $P1791
-    new $P1801, 'ExceptionHandler'
-    set_addr $P1801, loop1800_handler
-    $P1801."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P1801
-  loop1800_test:
-    unless $P1789, loop1800_done
-    shift $P1793, $P1789
-  loop1800_redo:
-    .const 'Sub' $P1795 = "100_1277356919.52295" 
-    capture_lex $P1795
-    $P1795($P1793)
-  loop1800_next:
-    goto loop1800_test
-  loop1800_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1802, exception, 'type'
-    eq $P1802, .CONTROL_LOOP_NEXT, loop1800_next
-    eq $P1802, .CONTROL_LOOP_REDO, loop1800_redo
-  loop1800_done:
-    pop_eh 
-  for_undef_553:
-.annotate 'line', 658
-    set $P1779, $P1789
-  if_1780_end:
-.annotate 'line', 656
-    .return ($P1779)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "_block1794"  :anon :subid("100_1277356919.52295") :outer("99_1277356919.52295")
-    .param pmc param_1796
-.annotate 'line', 659
-    .lex "$_", param_1796
-    find_lex $P1797, "$past"
-    find_lex $P1798, "$_"
-    $P1799 = $P1797."push"($P1798)
-    .return ($P1799)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "term:sym<value>"  :subid("101_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1867
-.annotate 'line', 680
-    new $P1866, 'ExceptionHandler'
-    set_addr $P1866, control_1865
-    $P1866."handle_types"(.CONTROL_RETURN)
-    push_eh $P1866
-    .lex "self", self
-    .lex "$/", param_1867
-    find_lex $P1868, "$/"
-    find_lex $P1869, "$/"
-    unless_null $P1869, vivify_568
-    $P1869 = root_new ['parrot';'Hash']
+    unless_null $P1861, vivify_568
+    $P1861 = root_new ['parrot';'ResizablePMCArray']
   vivify_568:
-    set $P1870, $P1869["value"]
-    unless_null $P1870, vivify_569
-    new $P1870, "Undef"
+    set $P1862, $P1861[$I1860]
+    unless_null $P1862, vivify_569
+    new $P1862, "Undef"
   vivify_569:
-    $P1871 = $P1870."ast"()
-    $P1872 = $P1868."!make"($P1871)
-    .return ($P1872)
-  control_1865:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1873, exception, "payload"
-    .return ($P1873)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "circumfix:sym<( )>"  :subid("102_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1877
+    $P1862."flat"(1)
 .annotate 'line', 682
-    new $P1876, 'ExceptionHandler'
-    set_addr $P1876, control_1875
-    $P1876."handle_types"(.CONTROL_RETURN)
-    push_eh $P1876
-    .lex "self", self
-    .lex "$/", param_1877
-.annotate 'line', 683
-    find_lex $P1878, "$/"
-.annotate 'line', 684
-    find_lex $P1881, "$/"
-    unless_null $P1881, vivify_570
-    $P1881 = root_new ['parrot';'Hash']
+    find_lex $P1866, "$i"
+    set $I1867, $P1866
+    find_lex $P1868, "$past"
+    unless_null $P1868, vivify_570
+    $P1868 = root_new ['parrot';'ResizablePMCArray']
   vivify_570:
-    set $P1882, $P1881["EXPR"]
-    unless_null $P1882, vivify_571
-    new $P1882, "Undef"
+    set $P1869, $P1868[$I1867]
+    unless_null $P1869, vivify_571
+    new $P1869, "Undef"
   vivify_571:
-    if $P1882, if_1880
-.annotate 'line', 685
-    get_hll_global $P1887, ["PAST"], "Op"
-    find_lex $P1888, "$/"
-    $P1889 = $P1887."new"("list" :named("pasttype"), $P1888 :named("node"))
-    set $P1879, $P1889
-.annotate 'line', 684
-    goto if_1880_end
-  if_1880:
-    find_lex $P1883, "$/"
-    unless_null $P1883, vivify_572
-    $P1883 = root_new ['parrot';'Hash']
+    get_hll_global $P1870, ["PAST"], "Val"
+    $P1871 = $P1869."isa"($P1870)
+    if $P1871, if_1865
+    set $P1864, $P1871
+    goto if_1865_end
+  if_1865:
+.annotate 'line', 683
+    find_lex $P1872, "$i"
+    set $I1873, $P1872
+    find_lex $P1874, "$past"
+    unless_null $P1874, vivify_572
+    $P1874 = root_new ['parrot';'ResizablePMCArray']
   vivify_572:
-    set $P1884, $P1883["EXPR"]
-    unless_null $P1884, vivify_573
-    $P1884 = root_new ['parrot';'ResizablePMCArray']
+    set $P1875, $P1874[$I1873]
+    unless_null $P1875, vivify_573
+    new $P1875, "Undef"
   vivify_573:
-    set $P1885, $P1884[0]
-    unless_null $P1885, vivify_574
-    new $P1885, "Undef"
+    $S1876 = $P1875."name"()
+    substr $S1877, $S1876, 0, 1
+    iseq $I1878, $S1877, "%"
+    new $P1864, 'Integer'
+    set $P1864, $I1878
+  if_1865_end:
+    unless $P1864, if_1863_end
+.annotate 'line', 684
+    find_lex $P1879, "$i"
+    set $I1880, $P1879
+    find_lex $P1881, "$past"
+    unless_null $P1881, vivify_574
+    $P1881 = root_new ['parrot';'ResizablePMCArray']
   vivify_574:
-    $P1886 = $P1885."ast"()
-    set $P1879, $P1886
-  if_1880_end:
-    $P1890 = $P1878."!make"($P1879)
-.annotate 'line', 682
+    set $P1882, $P1881[$I1880]
+    unless_null $P1882, vivify_575
+    new $P1882, "Undef"
+  vivify_575:
+    $P1882."named"(1)
+  if_1863_end:
+  if_1844_end:
+.annotate 'line', 679
+    find_lex $P1883, "$i"
+    clone $P1884, $P1883
+    inc $P1883
+  loop1885_next:
+.annotate 'line', 678
+    goto loop1885_test
+  loop1885_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1887, exception, 'type'
+    eq $P1887, .CONTROL_LOOP_NEXT, loop1885_next
+    eq $P1887, .CONTROL_LOOP_REDO, loop1885_redo
+  loop1885_done:
+    pop_eh 
+.annotate 'line', 689
+    find_lex $P1888, "$/"
+    find_lex $P1889, "$past"
+    $P1890 = $P1888."!make"($P1889)
+.annotate 'line', 667
     .return ($P1890)
-  control_1875:
+  control_1789:
     .local pmc exception 
     .get_results (exception) 
     getattribute $P1891, exception, "payload"
@@ -23260,608 +24211,708 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<[ ]>"  :subid("103_1277356919.52295") :method :outer("11_1277356919.52295")
+.sub "_block1801"  :anon :subid("99_1280467483.70067") :outer("98_1280467483.70067")
+.annotate 'line', 669
+    .const 'Sub' $P1823 = "100_1280467483.70067" 
+    capture_lex $P1823
+.annotate 'line', 670
+    new $P1803, "Undef"
+    .lex "$expr", $P1803
+    find_lex $P1804, "$/"
+    unless_null $P1804, vivify_559
+    $P1804 = root_new ['parrot';'Hash']
+  vivify_559:
+    set $P1805, $P1804["EXPR"]
+    unless_null $P1805, vivify_560
+    new $P1805, "Undef"
+  vivify_560:
+    $P1806 = $P1805."ast"()
+    store_lex "$expr", $P1806
+.annotate 'line', 671
+    find_lex $P1811, "$expr"
+    $S1812 = $P1811."name"()
+    iseq $I1813, $S1812, "&infix:<,>"
+    if $I1813, if_1810
+    new $P1809, 'Integer'
+    set $P1809, $I1813
+    goto if_1810_end
+  if_1810:
+    find_lex $P1814, "$expr"
+    $P1815 = $P1814."named"()
+    isfalse $I1816, $P1815
+    new $P1809, 'Integer'
+    set $P1809, $I1816
+  if_1810_end:
+    if $P1809, if_1808
+.annotate 'line', 674
+    find_lex $P1831, "$past"
+    find_lex $P1832, "$expr"
+    $P1833 = $P1831."push"($P1832)
+    set $P1807, $P1833
+.annotate 'line', 671
+    goto if_1808_end
+  if_1808:
+.annotate 'line', 672
+    find_lex $P1818, "$expr"
+    $P1819 = $P1818."list"()
+    defined $I1820, $P1819
+    unless $I1820, for_undef_561
+    iter $P1817, $P1819
+    new $P1829, 'ExceptionHandler'
+    set_addr $P1829, loop1828_handler
+    $P1829."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1829
+  loop1828_test:
+    unless $P1817, loop1828_done
+    shift $P1821, $P1817
+  loop1828_redo:
+    .const 'Sub' $P1823 = "100_1280467483.70067" 
+    capture_lex $P1823
+    $P1823($P1821)
+  loop1828_next:
+    goto loop1828_test
+  loop1828_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1830, exception, 'type'
+    eq $P1830, .CONTROL_LOOP_NEXT, loop1828_next
+    eq $P1830, .CONTROL_LOOP_REDO, loop1828_redo
+  loop1828_done:
+    pop_eh 
+  for_undef_561:
+.annotate 'line', 671
+    set $P1807, $P1817
+  if_1808_end:
+.annotate 'line', 669
+    .return ($P1807)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1822"  :anon :subid("100_1280467483.70067") :outer("99_1280467483.70067")
+    .param pmc param_1824
+.annotate 'line', 672
+    .lex "$_", param_1824
+    find_lex $P1825, "$past"
+    find_lex $P1826, "$_"
+    $P1827 = $P1825."push"($P1826)
+    .return ($P1827)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "term:sym<value>"  :subid("101_1280467483.70067") :method :outer("11_1280467483.70067")
     .param pmc param_1895
-.annotate 'line', 688
+.annotate 'line', 693
     new $P1894, 'ExceptionHandler'
     set_addr $P1894, control_1893
     $P1894."handle_types"(.CONTROL_RETURN)
     push_eh $P1894
     .lex "self", self
     .lex "$/", param_1895
-.annotate 'line', 689
-    new $P1896, "Undef"
-    .lex "$past", $P1896
-.annotate 'line', 688
-    find_lex $P1897, "$past"
-.annotate 'line', 690
-    find_lex $P1899, "$/"
-    unless_null $P1899, vivify_575
-    $P1899 = root_new ['parrot';'Hash']
-  vivify_575:
-    set $P1900, $P1899["EXPR"]
-    unless_null $P1900, vivify_576
-    new $P1900, "Undef"
+    find_lex $P1896, "$/"
+    find_lex $P1897, "$/"
+    unless_null $P1897, vivify_576
+    $P1897 = root_new ['parrot';'Hash']
   vivify_576:
-    if $P1900, if_1898
-.annotate 'line', 697
-    get_hll_global $P1912, ["PAST"], "Op"
-    $P1913 = $P1912."new"("list" :named("pasttype"))
-    store_lex "$past", $P1913
-.annotate 'line', 696
-    goto if_1898_end
-  if_1898:
-.annotate 'line', 691
-    find_lex $P1901, "$/"
-    unless_null $P1901, vivify_577
-    $P1901 = root_new ['parrot';'Hash']
+    set $P1898, $P1897["value"]
+    unless_null $P1898, vivify_577
+    new $P1898, "Undef"
   vivify_577:
-    set $P1902, $P1901["EXPR"]
-    unless_null $P1902, vivify_578
-    $P1902 = root_new ['parrot';'ResizablePMCArray']
-  vivify_578:
-    set $P1903, $P1902[0]
-    unless_null $P1903, vivify_579
-    new $P1903, "Undef"
-  vivify_579:
-    $P1904 = $P1903."ast"()
-    store_lex "$past", $P1904
-.annotate 'line', 692
-    find_lex $P1906, "$past"
-    $S1907 = $P1906."name"()
-    isne $I1908, $S1907, "&infix:<,>"
-    unless $I1908, if_1905_end
-.annotate 'line', 693
-    get_hll_global $P1909, ["PAST"], "Op"
-    find_lex $P1910, "$past"
-    $P1911 = $P1909."new"($P1910, "list" :named("pasttype"))
-    store_lex "$past", $P1911
-  if_1905_end:
-  if_1898_end:
-.annotate 'line', 699
-    find_lex $P1914, "$past"
-    $P1914."name"("&circumfix:<[ ]>")
-.annotate 'line', 700
-    find_lex $P1915, "$/"
-    find_lex $P1916, "$past"
-    $P1917 = $P1915."!make"($P1916)
-.annotate 'line', 688
-    .return ($P1917)
+    $P1899 = $P1898."ast"()
+    $P1900 = $P1896."!make"($P1899)
+    .return ($P1900)
   control_1893:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1918, exception, "payload"
-    .return ($P1918)
+    getattribute $P1901, exception, "payload"
+    .return ($P1901)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<ang>"  :subid("104_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1922
-.annotate 'line', 703
-    new $P1921, 'ExceptionHandler'
-    set_addr $P1921, control_1920
-    $P1921."handle_types"(.CONTROL_RETURN)
-    push_eh $P1921
-    .lex "self", self
-    .lex "$/", param_1922
-    find_lex $P1923, "$/"
-    find_lex $P1924, "$/"
-    unless_null $P1924, vivify_580
-    $P1924 = root_new ['parrot';'Hash']
+.sub "circumfix:sym<( )>"  :subid("102_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1905
+.annotate 'line', 695
+    new $P1904, 'ExceptionHandler'
+    set_addr $P1904, control_1903
+    $P1904."handle_types"(.CONTROL_RETURN)
+    push_eh $P1904
+    .lex "self", self
+    .lex "$/", param_1905
+.annotate 'line', 696
+    find_lex $P1906, "$/"
+.annotate 'line', 697
+    find_lex $P1909, "$/"
+    unless_null $P1909, vivify_578
+    $P1909 = root_new ['parrot';'Hash']
+  vivify_578:
+    set $P1910, $P1909["EXPR"]
+    unless_null $P1910, vivify_579
+    new $P1910, "Undef"
+  vivify_579:
+    if $P1910, if_1908
+.annotate 'line', 698
+    get_hll_global $P1915, ["PAST"], "Op"
+    find_lex $P1916, "$/"
+    $P1917 = $P1915."new"("list" :named("pasttype"), $P1916 :named("node"))
+    set $P1907, $P1917
+.annotate 'line', 697
+    goto if_1908_end
+  if_1908:
+    find_lex $P1911, "$/"
+    unless_null $P1911, vivify_580
+    $P1911 = root_new ['parrot';'Hash']
   vivify_580:
-    set $P1925, $P1924["quote_EXPR"]
-    unless_null $P1925, vivify_581
-    new $P1925, "Undef"
+    set $P1912, $P1911["EXPR"]
+    unless_null $P1912, vivify_581
+    $P1912 = root_new ['parrot';'ResizablePMCArray']
   vivify_581:
-    $P1926 = $P1925."ast"()
-    $P1927 = $P1923."!make"($P1926)
-    .return ($P1927)
-  control_1920:
+    set $P1913, $P1912[0]
+    unless_null $P1913, vivify_582
+    new $P1913, "Undef"
+  vivify_582:
+    $P1914 = $P1913."ast"()
+    set $P1907, $P1914
+  if_1908_end:
+    $P1918 = $P1906."!make"($P1907)
+.annotate 'line', 695
+    .return ($P1918)
+  control_1903:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1928, exception, "payload"
-    .return ($P1928)
+    getattribute $P1919, exception, "payload"
+    .return ($P1919)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("105_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1932
-.annotate 'line', 704
-    new $P1931, 'ExceptionHandler'
-    set_addr $P1931, control_1930
-    $P1931."handle_types"(.CONTROL_RETURN)
-    push_eh $P1931
-    .lex "self", self
-    .lex "$/", param_1932
-    find_lex $P1933, "$/"
-    find_lex $P1934, "$/"
-    unless_null $P1934, vivify_582
-    $P1934 = root_new ['parrot';'Hash']
-  vivify_582:
-    set $P1935, $P1934["quote_EXPR"]
-    unless_null $P1935, vivify_583
-    new $P1935, "Undef"
+.sub "circumfix:sym<[ ]>"  :subid("103_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1923
+.annotate 'line', 701
+    new $P1922, 'ExceptionHandler'
+    set_addr $P1922, control_1921
+    $P1922."handle_types"(.CONTROL_RETURN)
+    push_eh $P1922
+    .lex "self", self
+    .lex "$/", param_1923
+.annotate 'line', 702
+    new $P1924, "Undef"
+    .lex "$past", $P1924
+.annotate 'line', 701
+    find_lex $P1925, "$past"
+.annotate 'line', 703
+    find_lex $P1927, "$/"
+    unless_null $P1927, vivify_583
+    $P1927 = root_new ['parrot';'Hash']
   vivify_583:
-    $P1936 = $P1935."ast"()
-    $P1937 = $P1933."!make"($P1936)
-    .return ($P1937)
-  control_1930:
+    set $P1928, $P1927["EXPR"]
+    unless_null $P1928, vivify_584
+    new $P1928, "Undef"
+  vivify_584:
+    if $P1928, if_1926
+.annotate 'line', 710
+    get_hll_global $P1940, ["PAST"], "Op"
+    $P1941 = $P1940."new"("list" :named("pasttype"))
+    store_lex "$past", $P1941
+.annotate 'line', 709
+    goto if_1926_end
+  if_1926:
+.annotate 'line', 704
+    find_lex $P1929, "$/"
+    unless_null $P1929, vivify_585
+    $P1929 = root_new ['parrot';'Hash']
+  vivify_585:
+    set $P1930, $P1929["EXPR"]
+    unless_null $P1930, vivify_586
+    $P1930 = root_new ['parrot';'ResizablePMCArray']
+  vivify_586:
+    set $P1931, $P1930[0]
+    unless_null $P1931, vivify_587
+    new $P1931, "Undef"
+  vivify_587:
+    $P1932 = $P1931."ast"()
+    store_lex "$past", $P1932
+.annotate 'line', 705
+    find_lex $P1934, "$past"
+    $S1935 = $P1934."name"()
+    isne $I1936, $S1935, "&infix:<,>"
+    unless $I1936, if_1933_end
+.annotate 'line', 706
+    get_hll_global $P1937, ["PAST"], "Op"
+    find_lex $P1938, "$past"
+    $P1939 = $P1937."new"($P1938, "list" :named("pasttype"))
+    store_lex "$past", $P1939
+  if_1933_end:
+  if_1926_end:
+.annotate 'line', 712
+    find_lex $P1942, "$past"
+    $P1942."name"("&circumfix:<[ ]>")
+.annotate 'line', 713
+    find_lex $P1943, "$/"
+    find_lex $P1944, "$past"
+    $P1945 = $P1943."!make"($P1944)
+.annotate 'line', 701
+    .return ($P1945)
+  control_1921:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1938, exception, "payload"
-    .return ($P1938)
+    getattribute $P1946, exception, "payload"
+    .return ($P1946)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<{ }>"  :subid("106_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1942
-.annotate 'line', 706
-    new $P1941, 'ExceptionHandler'
-    set_addr $P1941, control_1940
-    $P1941."handle_types"(.CONTROL_RETURN)
-    push_eh $P1941
-    .lex "self", self
-    .lex "$/", param_1942
-.annotate 'line', 707
-    new $P1943, "Undef"
-    .lex "$past", $P1943
-    find_lex $P1946, "$/"
-    unless_null $P1946, vivify_584
-    $P1946 = root_new ['parrot';'Hash']
-  vivify_584:
-    set $P1947, $P1946["pblock"]
-    unless_null $P1947, vivify_585
-    $P1947 = root_new ['parrot';'Hash']
-  vivify_585:
-    set $P1948, $P1947["blockoid"]
-    unless_null $P1948, vivify_586
-    $P1948 = root_new ['parrot';'Hash']
-  vivify_586:
-    set $P1949, $P1948["statementlist"]
-    unless_null $P1949, vivify_587
-    $P1949 = root_new ['parrot';'Hash']
-  vivify_587:
-    set $P1950, $P1949["statement"]
-    unless_null $P1950, vivify_588
-    new $P1950, "Undef"
+.sub "circumfix:sym<ang>"  :subid("104_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1950
+.annotate 'line', 716
+    new $P1949, 'ExceptionHandler'
+    set_addr $P1949, control_1948
+    $P1949."handle_types"(.CONTROL_RETURN)
+    push_eh $P1949
+    .lex "self", self
+    .lex "$/", param_1950
+    find_lex $P1951, "$/"
+    find_lex $P1952, "$/"
+    unless_null $P1952, vivify_588
+    $P1952 = root_new ['parrot';'Hash']
   vivify_588:
-    set $N1951, $P1950
-    isgt $I1952, $N1951, 0.0
-    if $I1952, if_1945
-.annotate 'line', 709
-    $P1956 = "vivitype"("%")
-    set $P1944, $P1956
-.annotate 'line', 707
-    goto if_1945_end
-  if_1945:
-.annotate 'line', 708
-    find_lex $P1953, "$/"
+    set $P1953, $P1952["quote_EXPR"]
     unless_null $P1953, vivify_589
-    $P1953 = root_new ['parrot';'Hash']
+    new $P1953, "Undef"
   vivify_589:
-    set $P1954, $P1953["pblock"]
-    unless_null $P1954, vivify_590
-    new $P1954, "Undef"
-  vivify_590:
-    $P1955 = $P1954."ast"()
-    set $P1944, $P1955
-  if_1945_end:
-    store_lex "$past", $P1944
-.annotate 'line', 710
-    new $P1957, "Integer"
-    assign $P1957, 1
-    find_lex $P1958, "$past"
-    unless_null $P1958, vivify_591
-    $P1958 = root_new ['parrot';'Hash']
-    store_lex "$past", $P1958
-  vivify_591:
-    set $P1958["bareblock"], $P1957
-.annotate 'line', 711
-    find_lex $P1959, "$/"
-    find_lex $P1960, "$past"
-    $P1961 = $P1959."!make"($P1960)
-.annotate 'line', 706
-    .return ($P1961)
-  control_1940:
+    $P1954 = $P1953."ast"()
+    $P1955 = $P1951."!make"($P1954)
+    .return ($P1955)
+  control_1948:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1962, exception, "payload"
-    .return ($P1962)
+    getattribute $P1956, exception, "payload"
+    .return ($P1956)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<sigil>"  :subid("107_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1966
-.annotate 'line', 714
-    new $P1965, 'ExceptionHandler'
-    set_addr $P1965, control_1964
-    $P1965."handle_types"(.CONTROL_RETURN)
-    push_eh $P1965
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("105_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1960
+.annotate 'line', 717
+    new $P1959, 'ExceptionHandler'
+    set_addr $P1959, control_1958
+    $P1959."handle_types"(.CONTROL_RETURN)
+    push_eh $P1959
     .lex "self", self
-    .lex "$/", param_1966
-.annotate 'line', 715
-    new $P1967, "Undef"
-    .lex "$name", $P1967
-    find_lex $P1970, "$/"
-    unless_null $P1970, vivify_592
-    $P1970 = root_new ['parrot';'Hash']
-  vivify_592:
-    set $P1971, $P1970["sigil"]
-    unless_null $P1971, vivify_593
-    new $P1971, "Undef"
-  vivify_593:
-    set $S1972, $P1971
-    iseq $I1973, $S1972, "@"
-    if $I1973, if_1969
-.annotate 'line', 716
-    find_lex $P1977, "$/"
-    unless_null $P1977, vivify_594
-    $P1977 = root_new ['parrot';'Hash']
-  vivify_594:
-    set $P1978, $P1977["sigil"]
-    unless_null $P1978, vivify_595
-    new $P1978, "Undef"
-  vivify_595:
-    set $S1979, $P1978
-    iseq $I1980, $S1979, "%"
-    if $I1980, if_1976
-    new $P1982, "String"
-    assign $P1982, "item"
-    set $P1975, $P1982
-    goto if_1976_end
-  if_1976:
-    new $P1981, "String"
-    assign $P1981, "hash"
-    set $P1975, $P1981
-  if_1976_end:
-    set $P1968, $P1975
-.annotate 'line', 715
-    goto if_1969_end
-  if_1969:
-    new $P1974, "String"
-    assign $P1974, "list"
-    set $P1968, $P1974
-  if_1969_end:
-    store_lex "$name", $P1968
-.annotate 'line', 718
-    find_lex $P1983, "$/"
-    get_hll_global $P1984, ["PAST"], "Op"
-    find_lex $P1985, "$name"
-    find_lex $P1986, "$/"
-    unless_null $P1986, vivify_596
-    $P1986 = root_new ['parrot';'Hash']
-  vivify_596:
-    set $P1987, $P1986["semilist"]
-    unless_null $P1987, vivify_597
-    new $P1987, "Undef"
-  vivify_597:
-    $P1988 = $P1987."ast"()
-    $P1989 = $P1984."new"($P1988, "callmethod" :named("pasttype"), $P1985 :named("name"))
-    $P1990 = $P1983."!make"($P1989)
-.annotate 'line', 714
-    .return ($P1990)
-  control_1964:
+    .lex "$/", param_1960
+    find_lex $P1961, "$/"
+    find_lex $P1962, "$/"
+    unless_null $P1962, vivify_590
+    $P1962 = root_new ['parrot';'Hash']
+  vivify_590:
+    set $P1963, $P1962["quote_EXPR"]
+    unless_null $P1963, vivify_591
+    new $P1963, "Undef"
+  vivify_591:
+    $P1964 = $P1963."ast"()
+    $P1965 = $P1961."!make"($P1964)
+    .return ($P1965)
+  control_1958:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1991, exception, "payload"
-    .return ($P1991)
+    getattribute $P1966, exception, "payload"
+    .return ($P1966)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "semilist"  :subid("108_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_1995
+.sub "circumfix:sym<{ }>"  :subid("106_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1970
+.annotate 'line', 719
+    new $P1969, 'ExceptionHandler'
+    set_addr $P1969, control_1968
+    $P1969."handle_types"(.CONTROL_RETURN)
+    push_eh $P1969
+    .lex "self", self
+    .lex "$/", param_1970
+.annotate 'line', 720
+    new $P1971, "Undef"
+    .lex "$past", $P1971
+    find_lex $P1974, "$/"
+    unless_null $P1974, vivify_592
+    $P1974 = root_new ['parrot';'Hash']
+  vivify_592:
+    set $P1975, $P1974["pblock"]
+    unless_null $P1975, vivify_593
+    $P1975 = root_new ['parrot';'Hash']
+  vivify_593:
+    set $P1976, $P1975["blockoid"]
+    unless_null $P1976, vivify_594
+    $P1976 = root_new ['parrot';'Hash']
+  vivify_594:
+    set $P1977, $P1976["statementlist"]
+    unless_null $P1977, vivify_595
+    $P1977 = root_new ['parrot';'Hash']
+  vivify_595:
+    set $P1978, $P1977["statement"]
+    unless_null $P1978, vivify_596
+    new $P1978, "Undef"
+  vivify_596:
+    set $N1979, $P1978
+    isgt $I1980, $N1979, 0.0
+    if $I1980, if_1973
+.annotate 'line', 722
+    $P1984 = "vivitype"("%")
+    set $P1972, $P1984
+.annotate 'line', 720
+    goto if_1973_end
+  if_1973:
 .annotate 'line', 721
-    new $P1994, 'ExceptionHandler'
-    set_addr $P1994, control_1993
-    $P1994."handle_types"(.CONTROL_RETURN)
-    push_eh $P1994
-    .lex "self", self
-    .lex "$/", param_1995
-    find_lex $P1996, "$/"
-    find_lex $P1997, "$/"
-    unless_null $P1997, vivify_598
-    $P1997 = root_new ['parrot';'Hash']
+    find_lex $P1981, "$/"
+    unless_null $P1981, vivify_597
+    $P1981 = root_new ['parrot';'Hash']
+  vivify_597:
+    set $P1982, $P1981["pblock"]
+    unless_null $P1982, vivify_598
+    new $P1982, "Undef"
   vivify_598:
-    set $P1998, $P1997["statement"]
-    unless_null $P1998, vivify_599
-    new $P1998, "Undef"
+    $P1983 = $P1982."ast"()
+    set $P1972, $P1983
+  if_1973_end:
+    store_lex "$past", $P1972
+.annotate 'line', 723
+    new $P1985, "Integer"
+    assign $P1985, 1
+    find_lex $P1986, "$past"
+    unless_null $P1986, vivify_599
+    $P1986 = root_new ['parrot';'Hash']
+    store_lex "$past", $P1986
   vivify_599:
-    $P1999 = $P1998."ast"()
-    $P2000 = $P1996."!make"($P1999)
-    .return ($P2000)
-  control_1993:
+    set $P1986["bareblock"], $P1985
+.annotate 'line', 724
+    find_lex $P1987, "$/"
+    find_lex $P1988, "$past"
+    $P1989 = $P1987."!make"($P1988)
+.annotate 'line', 719
+    .return ($P1989)
+  control_1968:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2001, exception, "payload"
-    .return ($P2001)
+    getattribute $P1990, exception, "payload"
+    .return ($P1990)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<[ ]>"  :subid("109_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2005
-.annotate 'line', 723
-    new $P2004, 'ExceptionHandler'
-    set_addr $P2004, control_2003
-    $P2004."handle_types"(.CONTROL_RETURN)
-    push_eh $P2004
-    .lex "self", self
-    .lex "$/", param_2005
-.annotate 'line', 724
-    find_lex $P2006, "$/"
-    get_hll_global $P2007, ["PAST"], "Var"
-    find_lex $P2008, "$/"
-    unless_null $P2008, vivify_600
-    $P2008 = root_new ['parrot';'Hash']
+.sub "circumfix:sym<sigil>"  :subid("107_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_1994
+.annotate 'line', 727
+    new $P1993, 'ExceptionHandler'
+    set_addr $P1993, control_1992
+    $P1993."handle_types"(.CONTROL_RETURN)
+    push_eh $P1993
+    .lex "self", self
+    .lex "$/", param_1994
+.annotate 'line', 728
+    new $P1995, "Undef"
+    .lex "$name", $P1995
+    find_lex $P1998, "$/"
+    unless_null $P1998, vivify_600
+    $P1998 = root_new ['parrot';'Hash']
   vivify_600:
-    set $P2009, $P2008["EXPR"]
-    unless_null $P2009, vivify_601
-    new $P2009, "Undef"
+    set $P1999, $P1998["sigil"]
+    unless_null $P1999, vivify_601
+    new $P1999, "Undef"
   vivify_601:
-    $P2010 = $P2009."ast"()
-.annotate 'line', 726
-    $P2011 = "vivitype"("@")
-    $P2012 = $P2007."new"($P2010, "keyed_int" :named("scope"), "Undef" :named("viviself"), $P2011 :named("vivibase"))
-.annotate 'line', 724
-    $P2013 = $P2006."!make"($P2012)
-.annotate 'line', 723
-    .return ($P2013)
-  control_2003:
+    set $S2000, $P1999
+    iseq $I2001, $S2000, "@"
+    if $I2001, if_1997
+.annotate 'line', 729
+    find_lex $P2005, "$/"
+    unless_null $P2005, vivify_602
+    $P2005 = root_new ['parrot';'Hash']
+  vivify_602:
+    set $P2006, $P2005["sigil"]
+    unless_null $P2006, vivify_603
+    new $P2006, "Undef"
+  vivify_603:
+    set $S2007, $P2006
+    iseq $I2008, $S2007, "%"
+    if $I2008, if_2004
+    new $P2010, "String"
+    assign $P2010, "item"
+    set $P2003, $P2010
+    goto if_2004_end
+  if_2004:
+    new $P2009, "String"
+    assign $P2009, "hash"
+    set $P2003, $P2009
+  if_2004_end:
+    set $P1996, $P2003
+.annotate 'line', 728
+    goto if_1997_end
+  if_1997:
+    new $P2002, "String"
+    assign $P2002, "list"
+    set $P1996, $P2002
+  if_1997_end:
+    store_lex "$name", $P1996
+.annotate 'line', 731
+    find_lex $P2011, "$/"
+    get_hll_global $P2012, ["PAST"], "Op"
+    find_lex $P2013, "$name"
+    find_lex $P2014, "$/"
+    unless_null $P2014, vivify_604
+    $P2014 = root_new ['parrot';'Hash']
+  vivify_604:
+    set $P2015, $P2014["semilist"]
+    unless_null $P2015, vivify_605
+    new $P2015, "Undef"
+  vivify_605:
+    $P2016 = $P2015."ast"()
+    $P2017 = $P2012."new"($P2016, "callmethod" :named("pasttype"), $P2013 :named("name"))
+    $P2018 = $P2011."!make"($P2017)
+.annotate 'line', 727
+    .return ($P2018)
+  control_1992:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2014, exception, "payload"
-    .return ($P2014)
+    getattribute $P2019, exception, "payload"
+    .return ($P2019)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<{ }>"  :subid("110_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2018
-.annotate 'line', 729
-    new $P2017, 'ExceptionHandler'
-    set_addr $P2017, control_2016
-    $P2017."handle_types"(.CONTROL_RETURN)
-    push_eh $P2017
-    .lex "self", self
-    .lex "$/", param_2018
-.annotate 'line', 730
-    find_lex $P2019, "$/"
-    get_hll_global $P2020, ["PAST"], "Var"
-    find_lex $P2021, "$/"
-    unless_null $P2021, vivify_602
-    $P2021 = root_new ['parrot';'Hash']
-  vivify_602:
-    set $P2022, $P2021["EXPR"]
-    unless_null $P2022, vivify_603
-    new $P2022, "Undef"
-  vivify_603:
-    $P2023 = $P2022."ast"()
-.annotate 'line', 732
-    $P2024 = "vivitype"("%")
-    $P2025 = $P2020."new"($P2023, "keyed" :named("scope"), "Undef" :named("viviself"), $P2024 :named("vivibase"))
-.annotate 'line', 730
-    $P2026 = $P2019."!make"($P2025)
-.annotate 'line', 729
-    .return ($P2026)
-  control_2016:
+.sub "semilist"  :subid("108_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2023
+.annotate 'line', 734
+    new $P2022, 'ExceptionHandler'
+    set_addr $P2022, control_2021
+    $P2022."handle_types"(.CONTROL_RETURN)
+    push_eh $P2022
+    .lex "self", self
+    .lex "$/", param_2023
+    find_lex $P2024, "$/"
+    find_lex $P2025, "$/"
+    unless_null $P2025, vivify_606
+    $P2025 = root_new ['parrot';'Hash']
+  vivify_606:
+    set $P2026, $P2025["statement"]
+    unless_null $P2026, vivify_607
+    new $P2026, "Undef"
+  vivify_607:
+    $P2027 = $P2026."ast"()
+    $P2028 = $P2024."!make"($P2027)
+    .return ($P2028)
+  control_2021:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2027, exception, "payload"
-    .return ($P2027)
+    getattribute $P2029, exception, "payload"
+    .return ($P2029)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<ang>"  :subid("111_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2031
-.annotate 'line', 735
-    new $P2030, 'ExceptionHandler'
-    set_addr $P2030, control_2029
-    $P2030."handle_types"(.CONTROL_RETURN)
-    push_eh $P2030
-    .lex "self", self
-    .lex "$/", param_2031
+.sub "postcircumfix:sym<[ ]>"  :subid("109_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2033
 .annotate 'line', 736
-    find_lex $P2032, "$/"
-    get_hll_global $P2033, ["PAST"], "Var"
+    new $P2032, 'ExceptionHandler'
+    set_addr $P2032, control_2031
+    $P2032."handle_types"(.CONTROL_RETURN)
+    push_eh $P2032
+    .lex "self", self
+    .lex "$/", param_2033
+.annotate 'line', 737
     find_lex $P2034, "$/"
-    unless_null $P2034, vivify_604
-    $P2034 = root_new ['parrot';'Hash']
-  vivify_604:
-    set $P2035, $P2034["quote_EXPR"]
-    unless_null $P2035, vivify_605
-    new $P2035, "Undef"
-  vivify_605:
-    $P2036 = $P2035."ast"()
-.annotate 'line', 738
-    $P2037 = "vivitype"("%")
-    $P2038 = $P2033."new"($P2036, "keyed" :named("scope"), "Undef" :named("viviself"), $P2037 :named("vivibase"))
+    get_hll_global $P2035, ["PAST"], "Var"
+    find_lex $P2036, "$/"
+    unless_null $P2036, vivify_608
+    $P2036 = root_new ['parrot';'Hash']
+  vivify_608:
+    set $P2037, $P2036["EXPR"]
+    unless_null $P2037, vivify_609
+    new $P2037, "Undef"
+  vivify_609:
+    $P2038 = $P2037."ast"()
+.annotate 'line', 739
+    $P2039 = "vivitype"("@")
+    $P2040 = $P2035."new"($P2038, "keyed_int" :named("scope"), "Undef" :named("viviself"), $P2039 :named("vivibase"))
+.annotate 'line', 737
+    $P2041 = $P2034."!make"($P2040)
 .annotate 'line', 736
-    $P2039 = $P2032."!make"($P2038)
-.annotate 'line', 735
-    .return ($P2039)
-  control_2029:
+    .return ($P2041)
+  control_2031:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2040, exception, "payload"
-    .return ($P2040)
+    getattribute $P2042, exception, "payload"
+    .return ($P2042)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<( )>"  :subid("112_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2044
-.annotate 'line', 741
-    new $P2043, 'ExceptionHandler'
-    set_addr $P2043, control_2042
-    $P2043."handle_types"(.CONTROL_RETURN)
-    push_eh $P2043
-    .lex "self", self
-    .lex "$/", param_2044
+.sub "postcircumfix:sym<{ }>"  :subid("110_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2046
 .annotate 'line', 742
-    find_lex $P2045, "$/"
-    find_lex $P2046, "$/"
-    unless_null $P2046, vivify_606
-    $P2046 = root_new ['parrot';'Hash']
-  vivify_606:
-    set $P2047, $P2046["arglist"]
-    unless_null $P2047, vivify_607
-    new $P2047, "Undef"
-  vivify_607:
-    $P2048 = $P2047."ast"()
-    $P2049 = $P2045."!make"($P2048)
-.annotate 'line', 741
-    .return ($P2049)
-  control_2042:
+    new $P2045, 'ExceptionHandler'
+    set_addr $P2045, control_2044
+    $P2045."handle_types"(.CONTROL_RETURN)
+    push_eh $P2045
+    .lex "self", self
+    .lex "$/", param_2046
+.annotate 'line', 743
+    find_lex $P2047, "$/"
+    get_hll_global $P2048, ["PAST"], "Var"
+    find_lex $P2049, "$/"
+    unless_null $P2049, vivify_610
+    $P2049 = root_new ['parrot';'Hash']
+  vivify_610:
+    set $P2050, $P2049["EXPR"]
+    unless_null $P2050, vivify_611
+    new $P2050, "Undef"
+  vivify_611:
+    $P2051 = $P2050."ast"()
+.annotate 'line', 745
+    $P2052 = "vivitype"("%")
+    $P2053 = $P2048."new"($P2051, "keyed" :named("scope"), "Undef" :named("viviself"), $P2052 :named("vivibase"))
+.annotate 'line', 743
+    $P2054 = $P2047."!make"($P2053)
+.annotate 'line', 742
+    .return ($P2054)
+  control_2044:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2050, exception, "payload"
-    .return ($P2050)
+    getattribute $P2055, exception, "payload"
+    .return ($P2055)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "value"  :subid("113_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2054
-.annotate 'line', 745
-    new $P2053, 'ExceptionHandler'
-    set_addr $P2053, control_2052
-    $P2053."handle_types"(.CONTROL_RETURN)
-    push_eh $P2053
-    .lex "self", self
-    .lex "$/", param_2054
-.annotate 'line', 746
-    find_lex $P2055, "$/"
-    find_lex $P2058, "$/"
-    unless_null $P2058, vivify_608
-    $P2058 = root_new ['parrot';'Hash']
-  vivify_608:
-    set $P2059, $P2058["quote"]
-    unless_null $P2059, vivify_609
-    new $P2059, "Undef"
-  vivify_609:
-    if $P2059, if_2057
-    find_lex $P2063, "$/"
-    unless_null $P2063, vivify_610
-    $P2063 = root_new ['parrot';'Hash']
-  vivify_610:
-    set $P2064, $P2063["number"]
-    unless_null $P2064, vivify_611
-    new $P2064, "Undef"
-  vivify_611:
-    $P2065 = $P2064."ast"()
-    set $P2056, $P2065
-    goto if_2057_end
-  if_2057:
+.sub "postcircumfix:sym<ang>"  :subid("111_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2059
+.annotate 'line', 748
+    new $P2058, 'ExceptionHandler'
+    set_addr $P2058, control_2057
+    $P2058."handle_types"(.CONTROL_RETURN)
+    push_eh $P2058
+    .lex "self", self
+    .lex "$/", param_2059
+.annotate 'line', 749
     find_lex $P2060, "$/"
-    unless_null $P2060, vivify_612
-    $P2060 = root_new ['parrot';'Hash']
+    get_hll_global $P2061, ["PAST"], "Var"
+    find_lex $P2062, "$/"
+    unless_null $P2062, vivify_612
+    $P2062 = root_new ['parrot';'Hash']
   vivify_612:
-    set $P2061, $P2060["quote"]
-    unless_null $P2061, vivify_613
-    new $P2061, "Undef"
+    set $P2063, $P2062["quote_EXPR"]
+    unless_null $P2063, vivify_613
+    new $P2063, "Undef"
   vivify_613:
-    $P2062 = $P2061."ast"()
-    set $P2056, $P2062
-  if_2057_end:
-    $P2066 = $P2055."!make"($P2056)
-.annotate 'line', 745
-    .return ($P2066)
-  control_2052:
+    $P2064 = $P2063."ast"()
+.annotate 'line', 751
+    $P2065 = "vivitype"("%")
+    $P2066 = $P2061."new"($P2064, "keyed" :named("scope"), "Undef" :named("viviself"), $P2065 :named("vivibase"))
+.annotate 'line', 749
+    $P2067 = $P2060."!make"($P2066)
+.annotate 'line', 748
+    .return ($P2067)
+  control_2057:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2067, exception, "payload"
-    .return ($P2067)
+    getattribute $P2068, exception, "payload"
+    .return ($P2068)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "number"  :subid("114_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2071
-.annotate 'line', 749
-    new $P2070, 'ExceptionHandler'
-    set_addr $P2070, control_2069
-    $P2070."handle_types"(.CONTROL_RETURN)
-    push_eh $P2070
-    .lex "self", self
-    .lex "$/", param_2071
-.annotate 'line', 750
-    new $P2072, "Undef"
-    .lex "$value", $P2072
-    find_lex $P2075, "$/"
-    unless_null $P2075, vivify_614
-    $P2075 = root_new ['parrot';'Hash']
+.sub "postcircumfix:sym<( )>"  :subid("112_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2072
+.annotate 'line', 754
+    new $P2071, 'ExceptionHandler'
+    set_addr $P2071, control_2070
+    $P2071."handle_types"(.CONTROL_RETURN)
+    push_eh $P2071
+    .lex "self", self
+    .lex "$/", param_2072
+.annotate 'line', 755
+    find_lex $P2073, "$/"
+    find_lex $P2074, "$/"
+    unless_null $P2074, vivify_614
+    $P2074 = root_new ['parrot';'Hash']
   vivify_614:
-    set $P2076, $P2075["dec_number"]
-    unless_null $P2076, vivify_615
-    new $P2076, "Undef"
+    set $P2075, $P2074["arglist"]
+    unless_null $P2075, vivify_615
+    new $P2075, "Undef"
   vivify_615:
-    if $P2076, if_2074
-    find_lex $P2080, "$/"
-    unless_null $P2080, vivify_616
-    $P2080 = root_new ['parrot';'Hash']
+    $P2076 = $P2075."ast"()
+    $P2077 = $P2073."!make"($P2076)
+.annotate 'line', 754
+    .return ($P2077)
+  control_2070:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2078, exception, "payload"
+    .return ($P2078)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "value"  :subid("113_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2082
+.annotate 'line', 758
+    new $P2081, 'ExceptionHandler'
+    set_addr $P2081, control_2080
+    $P2081."handle_types"(.CONTROL_RETURN)
+    push_eh $P2081
+    .lex "self", self
+    .lex "$/", param_2082
+.annotate 'line', 759
+    find_lex $P2083, "$/"
+    find_lex $P2086, "$/"
+    unless_null $P2086, vivify_616
+    $P2086 = root_new ['parrot';'Hash']
   vivify_616:
-    set $P2081, $P2080["integer"]
-    unless_null $P2081, vivify_617
-    new $P2081, "Undef"
+    set $P2087, $P2086["quote"]
+    unless_null $P2087, vivify_617
+    new $P2087, "Undef"
   vivify_617:
-    $P2082 = $P2081."ast"()
-    set $P2073, $P2082
-    goto if_2074_end
-  if_2074:
-    find_lex $P2077, "$/"
-    unless_null $P2077, vivify_618
-    $P2077 = root_new ['parrot';'Hash']
+    if $P2087, if_2085
+    find_lex $P2091, "$/"
+    unless_null $P2091, vivify_618
+    $P2091 = root_new ['parrot';'Hash']
   vivify_618:
-    set $P2078, $P2077["dec_number"]
-    unless_null $P2078, vivify_619
-    new $P2078, "Undef"
+    set $P2092, $P2091["number"]
+    unless_null $P2092, vivify_619
+    new $P2092, "Undef"
   vivify_619:
-    $P2079 = $P2078."ast"()
-    set $P2073, $P2079
-  if_2074_end:
-    store_lex "$value", $P2073
-.annotate 'line', 751
-    find_lex $P2084, "$/"
-    unless_null $P2084, vivify_620
-    $P2084 = root_new ['parrot';'Hash']
+    $P2093 = $P2092."ast"()
+    set $P2084, $P2093
+    goto if_2085_end
+  if_2085:
+    find_lex $P2088, "$/"
+    unless_null $P2088, vivify_620
+    $P2088 = root_new ['parrot';'Hash']
   vivify_620:
-    set $P2085, $P2084["sign"]
-    unless_null $P2085, vivify_621
-    new $P2085, "Undef"
+    set $P2089, $P2088["quote"]
+    unless_null $P2089, vivify_621
+    new $P2089, "Undef"
   vivify_621:
-    set $S2086, $P2085
-    iseq $I2087, $S2086, "-"
-    unless $I2087, if_2083_end
-    find_lex $P2088, "$value"
-    neg $P2089, $P2088
-    store_lex "$value", $P2089
-  if_2083_end:
-.annotate 'line', 752
-    find_lex $P2090, "$/"
-    get_hll_global $P2091, ["PAST"], "Val"
-    find_lex $P2092, "$value"
-    $P2093 = $P2091."new"($P2092 :named("value"))
-    $P2094 = $P2090."!make"($P2093)
-.annotate 'line', 749
+    $P2090 = $P2089."ast"()
+    set $P2084, $P2090
+  if_2085_end:
+    $P2094 = $P2083."!make"($P2084)
+.annotate 'line', 758
     .return ($P2094)
-  control_2069:
+  control_2080:
     .local pmc exception 
     .get_results (exception) 
     getattribute $P2095, exception, "payload"
@@ -23871,953 +24922,1032 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<apos>"  :subid("115_1277356919.52295") :method :outer("11_1277356919.52295")
+.sub "number"  :subid("114_1280467483.70067") :method :outer("11_1280467483.70067")
     .param pmc param_2099
-.annotate 'line', 755
+.annotate 'line', 762
     new $P2098, 'ExceptionHandler'
     set_addr $P2098, control_2097
     $P2098."handle_types"(.CONTROL_RETURN)
     push_eh $P2098
     .lex "self", self
     .lex "$/", param_2099
-    find_lex $P2100, "$/"
-    find_lex $P2101, "$/"
-    unless_null $P2101, vivify_622
-    $P2101 = root_new ['parrot';'Hash']
+.annotate 'line', 763
+    new $P2100, "Undef"
+    .lex "$value", $P2100
+    find_lex $P2103, "$/"
+    unless_null $P2103, vivify_622
+    $P2103 = root_new ['parrot';'Hash']
   vivify_622:
-    set $P2102, $P2101["quote_EXPR"]
-    unless_null $P2102, vivify_623
-    new $P2102, "Undef"
+    set $P2104, $P2103["dec_number"]
+    unless_null $P2104, vivify_623
+    new $P2104, "Undef"
   vivify_623:
-    $P2103 = $P2102."ast"()
-    $P2104 = $P2100."!make"($P2103)
-    .return ($P2104)
+    if $P2104, if_2102
+    find_lex $P2108, "$/"
+    unless_null $P2108, vivify_624
+    $P2108 = root_new ['parrot';'Hash']
+  vivify_624:
+    set $P2109, $P2108["integer"]
+    unless_null $P2109, vivify_625
+    new $P2109, "Undef"
+  vivify_625:
+    $P2110 = $P2109."ast"()
+    set $P2101, $P2110
+    goto if_2102_end
+  if_2102:
+    find_lex $P2105, "$/"
+    unless_null $P2105, vivify_626
+    $P2105 = root_new ['parrot';'Hash']
+  vivify_626:
+    set $P2106, $P2105["dec_number"]
+    unless_null $P2106, vivify_627
+    new $P2106, "Undef"
+  vivify_627:
+    $P2107 = $P2106."ast"()
+    set $P2101, $P2107
+  if_2102_end:
+    store_lex "$value", $P2101
+.annotate 'line', 764
+    find_lex $P2112, "$/"
+    unless_null $P2112, vivify_628
+    $P2112 = root_new ['parrot';'Hash']
+  vivify_628:
+    set $P2113, $P2112["sign"]
+    unless_null $P2113, vivify_629
+    new $P2113, "Undef"
+  vivify_629:
+    set $S2114, $P2113
+    iseq $I2115, $S2114, "-"
+    unless $I2115, if_2111_end
+    find_lex $P2116, "$value"
+    neg $P2117, $P2116
+    store_lex "$value", $P2117
+  if_2111_end:
+.annotate 'line', 765
+    find_lex $P2118, "$/"
+    get_hll_global $P2119, ["PAST"], "Val"
+    find_lex $P2120, "$value"
+    $P2121 = $P2119."new"($P2120 :named("value"))
+    $P2122 = $P2118."!make"($P2121)
+.annotate 'line', 762
+    .return ($P2122)
   control_2097:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2105, exception, "payload"
-    .return ($P2105)
+    getattribute $P2123, exception, "payload"
+    .return ($P2123)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<dblq>"  :subid("116_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2109
-.annotate 'line', 756
-    new $P2108, 'ExceptionHandler'
-    set_addr $P2108, control_2107
-    $P2108."handle_types"(.CONTROL_RETURN)
-    push_eh $P2108
-    .lex "self", self
-    .lex "$/", param_2109
-    find_lex $P2110, "$/"
-    find_lex $P2111, "$/"
-    unless_null $P2111, vivify_624
-    $P2111 = root_new ['parrot';'Hash']
-  vivify_624:
-    set $P2112, $P2111["quote_EXPR"]
-    unless_null $P2112, vivify_625
-    new $P2112, "Undef"
-  vivify_625:
-    $P2113 = $P2112."ast"()
-    $P2114 = $P2110."!make"($P2113)
-    .return ($P2114)
-  control_2107:
+.sub "quote:sym<apos>"  :subid("115_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2127
+.annotate 'line', 768
+    new $P2126, 'ExceptionHandler'
+    set_addr $P2126, control_2125
+    $P2126."handle_types"(.CONTROL_RETURN)
+    push_eh $P2126
+    .lex "self", self
+    .lex "$/", param_2127
+    find_lex $P2128, "$/"
+    find_lex $P2129, "$/"
+    unless_null $P2129, vivify_630
+    $P2129 = root_new ['parrot';'Hash']
+  vivify_630:
+    set $P2130, $P2129["quote_EXPR"]
+    unless_null $P2130, vivify_631
+    new $P2130, "Undef"
+  vivify_631:
+    $P2131 = $P2130."ast"()
+    $P2132 = $P2128."!make"($P2131)
+    .return ($P2132)
+  control_2125:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2115, exception, "payload"
-    .return ($P2115)
+    getattribute $P2133, exception, "payload"
+    .return ($P2133)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<qq>"  :subid("117_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2119
-.annotate 'line', 757
-    new $P2118, 'ExceptionHandler'
-    set_addr $P2118, control_2117
-    $P2118."handle_types"(.CONTROL_RETURN)
-    push_eh $P2118
+.sub "quote:sym<dblq>"  :subid("116_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2137
+.annotate 'line', 769
+    new $P2136, 'ExceptionHandler'
+    set_addr $P2136, control_2135
+    $P2136."handle_types"(.CONTROL_RETURN)
+    push_eh $P2136
     .lex "self", self
-    .lex "$/", param_2119
-    find_lex $P2120, "$/"
-    find_lex $P2121, "$/"
-    unless_null $P2121, vivify_626
-    $P2121 = root_new ['parrot';'Hash']
-  vivify_626:
-    set $P2122, $P2121["quote_EXPR"]
-    unless_null $P2122, vivify_627
-    new $P2122, "Undef"
-  vivify_627:
-    $P2123 = $P2122."ast"()
-    $P2124 = $P2120."!make"($P2123)
-    .return ($P2124)
-  control_2117:
+    .lex "$/", param_2137
+    find_lex $P2138, "$/"
+    find_lex $P2139, "$/"
+    unless_null $P2139, vivify_632
+    $P2139 = root_new ['parrot';'Hash']
+  vivify_632:
+    set $P2140, $P2139["quote_EXPR"]
+    unless_null $P2140, vivify_633
+    new $P2140, "Undef"
+  vivify_633:
+    $P2141 = $P2140."ast"()
+    $P2142 = $P2138."!make"($P2141)
+    .return ($P2142)
+  control_2135:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2125, exception, "payload"
-    .return ($P2125)
+    getattribute $P2143, exception, "payload"
+    .return ($P2143)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<q>"  :subid("118_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2129
-.annotate 'line', 758
-    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_628
-    $P2131 = root_new ['parrot';'Hash']
-  vivify_628:
-    set $P2132, $P2131["quote_EXPR"]
-    unless_null $P2132, vivify_629
-    new $P2132, "Undef"
-  vivify_629:
-    $P2133 = $P2132."ast"()
-    $P2134 = $P2130."!make"($P2133)
-    .return ($P2134)
-  control_2127:
+.sub "quote:sym<qq>"  :subid("117_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2147
+.annotate 'line', 770
+    new $P2146, 'ExceptionHandler'
+    set_addr $P2146, control_2145
+    $P2146."handle_types"(.CONTROL_RETURN)
+    push_eh $P2146
+    .lex "self", self
+    .lex "$/", param_2147
+    find_lex $P2148, "$/"
+    find_lex $P2149, "$/"
+    unless_null $P2149, vivify_634
+    $P2149 = root_new ['parrot';'Hash']
+  vivify_634:
+    set $P2150, $P2149["quote_EXPR"]
+    unless_null $P2150, vivify_635
+    new $P2150, "Undef"
+  vivify_635:
+    $P2151 = $P2150."ast"()
+    $P2152 = $P2148."!make"($P2151)
+    .return ($P2152)
+  control_2145:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2135, exception, "payload"
-    .return ($P2135)
+    getattribute $P2153, exception, "payload"
+    .return ($P2153)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<Q>"  :subid("119_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2139
-.annotate 'line', 759
-    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<q>"  :subid("118_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2157
+.annotate 'line', 771
+    new $P2156, 'ExceptionHandler'
+    set_addr $P2156, control_2155
+    $P2156."handle_types"(.CONTROL_RETURN)
+    push_eh $P2156
+    .lex "self", self
+    .lex "$/", param_2157
+    find_lex $P2158, "$/"
+    find_lex $P2159, "$/"
+    unless_null $P2159, vivify_636
+    $P2159 = root_new ['parrot';'Hash']
+  vivify_636:
+    set $P2160, $P2159["quote_EXPR"]
+    unless_null $P2160, vivify_637
+    new $P2160, "Undef"
+  vivify_637:
+    $P2161 = $P2160."ast"()
+    $P2162 = $P2158."!make"($P2161)
+    .return ($P2162)
+  control_2155:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2145, exception, "payload"
-    .return ($P2145)
+    getattribute $P2163, exception, "payload"
+    .return ($P2163)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<Q:PIR>"  :subid("120_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2149
-.annotate 'line', 760
-    new $P2148, 'ExceptionHandler'
-    set_addr $P2148, control_2147
-    $P2148."handle_types"(.CONTROL_RETURN)
-    push_eh $P2148
-    .lex "self", self
-    .lex "$/", param_2149
-.annotate 'line', 761
-    find_lex $P2150, "$/"
-    get_hll_global $P2151, ["PAST"], "Op"
-    find_lex $P2152, "$/"
-    unless_null $P2152, vivify_632
-    $P2152 = root_new ['parrot';'Hash']
-  vivify_632:
-    set $P2153, $P2152["quote_EXPR"]
-    unless_null $P2153, vivify_633
-    new $P2153, "Undef"
-  vivify_633:
-    $P2154 = $P2153."ast"()
-    $P2155 = $P2154."value"()
-    find_lex $P2156, "$/"
-    $P2157 = $P2151."new"($P2155 :named("inline"), "inline" :named("pasttype"), $P2156 :named("node"))
-    $P2158 = $P2150."!make"($P2157)
-.annotate 'line', 760
-    .return ($P2158)
-  control_2147:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P2159, exception, "payload"
-    .return ($P2159)
+.sub "quote:sym<Q>"  :subid("119_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2167
+.annotate 'line', 772
+    new $P2166, 'ExceptionHandler'
+    set_addr $P2166, control_2165
+    $P2166."handle_types"(.CONTROL_RETURN)
+    push_eh $P2166
+    .lex "self", self
+    .lex "$/", param_2167
+    find_lex $P2168, "$/"
+    find_lex $P2169, "$/"
+    unless_null $P2169, vivify_638
+    $P2169 = root_new ['parrot';'Hash']
+  vivify_638:
+    set $P2170, $P2169["quote_EXPR"]
+    unless_null $P2170, vivify_639
+    new $P2170, "Undef"
+  vivify_639:
+    $P2171 = $P2170."ast"()
+    $P2172 = $P2168."!make"($P2171)
+    .return ($P2172)
+  control_2165:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2173, exception, "payload"
+    .return ($P2173)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym</ />"  :subid("121_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2163
-    .param pmc param_2164 :optional
-    .param int has_param_2164 :opt_flag
-.annotate 'line', 766
-    new $P2162, 'ExceptionHandler'
-    set_addr $P2162, control_2161
-    $P2162."handle_types"(.CONTROL_RETURN)
-    push_eh $P2162
-    .lex "self", self
-    .lex "$/", param_2163
-    if has_param_2164, optparam_634
-    new $P2165, "Undef"
-    set param_2164, $P2165
-  optparam_634:
-    .lex "$key", param_2164
-.annotate 'line', 776
-    new $P2166, "Undef"
-    .lex "$regex", $P2166
-.annotate 'line', 778
-    new $P2167, "Undef"
-    .lex "$past", $P2167
-.annotate 'line', 767
-    find_lex $P2169, "$key"
-    set $S2170, $P2169
-    iseq $I2171, $S2170, "open"
-    unless $I2171, if_2168_end
-.annotate 'line', 768
-
-            null $P0
-            set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
-        
-.annotate 'line', 772
-    get_global $P2172, "@BLOCK"
-    unless_null $P2172, vivify_635
-    $P2172 = root_new ['parrot';'ResizablePMCArray']
-  vivify_635:
-    set $P2173, $P2172[0]
-    unless_null $P2173, vivify_636
-    new $P2173, "Undef"
-  vivify_636:
-    $P2173."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
+.sub "quote:sym<Q:PIR>"  :subid("120_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2177
 .annotate 'line', 773
-    get_global $P2174, "@BLOCK"
-    unless_null $P2174, vivify_637
-    $P2174 = root_new ['parrot';'ResizablePMCArray']
-  vivify_637:
-    set $P2175, $P2174[0]
-    unless_null $P2175, vivify_638
-    new $P2175, "Undef"
-  vivify_638:
-    $P2175."symbol"("$/", "lexical" :named("scope"))
+    new $P2176, 'ExceptionHandler'
+    set_addr $P2176, control_2175
+    $P2176."handle_types"(.CONTROL_RETURN)
+    push_eh $P2176
+    .lex "self", self
+    .lex "$/", param_2177
 .annotate 'line', 774
-    new $P2176, "Exception"
-    set $P2176['type'], .CONTROL_RETURN
-    new $P2177, "Integer"
-    assign $P2177, 0
-    setattribute $P2176, 'payload', $P2177
-    throw $P2176
-  if_2168_end:
-.annotate 'line', 777
-    get_hll_global $P2178, ["Regex";"P6Regex";"Actions"], "buildsub"
-    find_lex $P2179, "$/"
-    unless_null $P2179, vivify_639
-    $P2179 = root_new ['parrot';'Hash']
-  vivify_639:
-    set $P2180, $P2179["p6regex"]
+    find_lex $P2178, "$/"
+    get_hll_global $P2179, ["PAST"], "Op"
+    find_lex $P2180, "$/"
     unless_null $P2180, vivify_640
-    new $P2180, "Undef"
+    $P2180 = root_new ['parrot';'Hash']
   vivify_640:
-    $P2181 = $P2180."ast"()
-    get_global $P2182, "@BLOCK"
-    $P2183 = $P2182."shift"()
-    $P2184 = $P2178($P2181, $P2183)
-    store_lex "$regex", $P2184
-.annotate 'line', 779
-    get_hll_global $P2185, ["PAST"], "Op"
-.annotate 'line', 781
-    get_hll_global $P2186, ["PAST"], "Var"
-    new $P2187, "ResizablePMCArray"
-    push $P2187, "Regex"
-    $P2188 = $P2186."new"("Regex" :named("name"), $P2187 :named("namespace"), "package" :named("scope"))
-    find_lex $P2189, "$regex"
-    $P2190 = $P2185."new"($P2188, $P2189, "callmethod" :named("pasttype"), "new" :named("name"))
-.annotate 'line', 779
-    store_lex "$past", $P2190
-.annotate 'line', 785
-    find_lex $P2191, "$regex"
-    find_lex $P2192, "$past"
-    unless_null $P2192, vivify_641
-    $P2192 = root_new ['parrot';'Hash']
-    store_lex "$past", $P2192
+    set $P2181, $P2180["quote_EXPR"]
+    unless_null $P2181, vivify_641
+    new $P2181, "Undef"
   vivify_641:
-    set $P2192["sink"], $P2191
-.annotate 'line', 786
-    find_lex $P2193, "$/"
-    find_lex $P2194, "$past"
-    $P2195 = $P2193."!make"($P2194)
-.annotate 'line', 766
-    .return ($P2195)
-  control_2161:
+    $P2182 = $P2181."ast"()
+    $P2183 = $P2182."value"()
+    find_lex $P2184, "$/"
+    $P2185 = $P2179."new"($P2183 :named("inline"), "inline" :named("pasttype"), $P2184 :named("node"))
+    $P2186 = $P2178."!make"($P2185)
+.annotate 'line', 773
+    .return ($P2186)
+  control_2175:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2196, exception, "payload"
-    .return ($P2196)
+    getattribute $P2187, exception, "payload"
+    .return ($P2187)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<$>"  :subid("122_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2200
+.sub "quote:sym</ />"  :subid("121_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2191
+    .param pmc param_2192 :optional
+    .param int has_param_2192 :opt_flag
+.annotate 'line', 779
+    new $P2190, 'ExceptionHandler'
+    set_addr $P2190, control_2189
+    $P2190."handle_types"(.CONTROL_RETURN)
+    push_eh $P2190
+    .lex "self", self
+    .lex "$/", param_2191
+    if has_param_2192, optparam_642
+    new $P2193, "Undef"
+    set param_2192, $P2193
+  optparam_642:
+    .lex "$key", param_2192
 .annotate 'line', 789
-    new $P2199, 'ExceptionHandler'
-    set_addr $P2199, control_2198
-    $P2199."handle_types"(.CONTROL_RETURN)
-    push_eh $P2199
-    .lex "self", self
-    .lex "$/", param_2200
-    find_lex $P2201, "$/"
-    find_lex $P2202, "$/"
-    unless_null $P2202, vivify_642
-    $P2202 = root_new ['parrot';'Hash']
-  vivify_642:
-    set $P2203, $P2202["variable"]
-    unless_null $P2203, vivify_643
-    new $P2203, "Undef"
-  vivify_643:
-    $P2204 = $P2203."ast"()
-    $P2205 = $P2201."!make"($P2204)
-    .return ($P2205)
-  control_2198:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P2206, exception, "payload"
-    .return ($P2206)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "quote_escape:sym<{ }>"  :subid("123_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2210
-.annotate 'line', 790
-    new $P2209, 'ExceptionHandler'
-    set_addr $P2209, control_2208
-    $P2209."handle_types"(.CONTROL_RETURN)
-    push_eh $P2209
-    .lex "self", self
-    .lex "$/", param_2210
+    new $P2194, "Undef"
+    .lex "$regex", $P2194
 .annotate 'line', 791
-    find_lex $P2211, "$/"
-    get_hll_global $P2212, ["PAST"], "Op"
-.annotate 'line', 792
-    find_lex $P2213, "$/"
-    unless_null $P2213, vivify_644
-    $P2213 = root_new ['parrot';'Hash']
+    new $P2195, "Undef"
+    .lex "$past", $P2195
+.annotate 'line', 780
+    find_lex $P2197, "$key"
+    set $S2198, $P2197
+    iseq $I2199, $S2198, "open"
+    unless $I2199, if_2196_end
+.annotate 'line', 781
+
+            null $P0
+            set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
+        
+.annotate 'line', 785
+    get_global $P2200, "@BLOCK"
+    unless_null $P2200, vivify_643
+    $P2200 = root_new ['parrot';'ResizablePMCArray']
+  vivify_643:
+    set $P2201, $P2200[0]
+    unless_null $P2201, vivify_644
+    new $P2201, "Undef"
   vivify_644:
-    set $P2214, $P2213["block"]
-    unless_null $P2214, vivify_645
-    new $P2214, "Undef"
+    $P2201."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
+.annotate 'line', 786
+    get_global $P2202, "@BLOCK"
+    unless_null $P2202, vivify_645
+    $P2202 = root_new ['parrot';'ResizablePMCArray']
   vivify_645:
-    $P2215 = $P2214."ast"()
-    $P2216 = "block_immediate"($P2215)
-    find_lex $P2217, "$/"
-    $P2218 = $P2212."new"($P2216, "set S*" :named("pirop"), $P2217 :named("node"))
-.annotate 'line', 791
-    $P2219 = $P2211."!make"($P2218)
+    set $P2203, $P2202[0]
+    unless_null $P2203, vivify_646
+    new $P2203, "Undef"
+  vivify_646:
+    $P2203."symbol"("$/", "lexical" :named("scope"))
+.annotate 'line', 787
+    new $P2204, "Exception"
+    set $P2204['type'], .CONTROL_RETURN
+    new $P2205, "Integer"
+    assign $P2205, 0
+    setattribute $P2204, 'payload', $P2205
+    throw $P2204
+  if_2196_end:
 .annotate 'line', 790
-    .return ($P2219)
-  control_2208:
+    get_hll_global $P2206, ["Regex";"P6Regex";"Actions"], "buildsub"
+    find_lex $P2207, "$/"
+    unless_null $P2207, vivify_647
+    $P2207 = root_new ['parrot';'Hash']
+  vivify_647:
+    set $P2208, $P2207["p6regex"]
+    unless_null $P2208, vivify_648
+    new $P2208, "Undef"
+  vivify_648:
+    $P2209 = $P2208."ast"()
+    get_global $P2210, "@BLOCK"
+    $P2211 = $P2210."shift"()
+    $P2212 = $P2206($P2209, $P2211)
+    store_lex "$regex", $P2212
+.annotate 'line', 792
+    get_hll_global $P2213, ["PAST"], "Op"
+.annotate 'line', 794
+    get_hll_global $P2214, ["PAST"], "Var"
+    new $P2215, "ResizablePMCArray"
+    push $P2215, "Regex"
+    $P2216 = $P2214."new"("Regex" :named("name"), $P2215 :named("namespace"), "package" :named("scope"))
+    find_lex $P2217, "$regex"
+    $P2218 = $P2213."new"($P2216, $P2217, "callmethod" :named("pasttype"), "new" :named("name"))
+.annotate 'line', 792
+    store_lex "$past", $P2218
+.annotate 'line', 798
+    find_lex $P2219, "$regex"
+    find_lex $P2220, "$past"
+    unless_null $P2220, vivify_649
+    $P2220 = root_new ['parrot';'Hash']
+    store_lex "$past", $P2220
+  vivify_649:
+    set $P2220["sink"], $P2219
+.annotate 'line', 799
+    find_lex $P2221, "$/"
+    find_lex $P2222, "$past"
+    $P2223 = $P2221."!make"($P2222)
+.annotate 'line', 779
+    .return ($P2223)
+  control_2189:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2220, exception, "payload"
-    .return ($P2220)
+    getattribute $P2224, exception, "payload"
+    .return ($P2224)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<esc>"  :subid("124_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2224
-.annotate 'line', 795
-    new $P2223, 'ExceptionHandler'
-    set_addr $P2223, control_2222
-    $P2223."handle_types"(.CONTROL_RETURN)
-    push_eh $P2223
-    .lex "self", self
-    .lex "$/", param_2224
-    find_lex $P2225, "$/"
-    $P2226 = $P2225."!make"("\e")
-    .return ($P2226)
-  control_2222:
+.sub "quote_escape:sym<$>"  :subid("122_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2228
+.annotate 'line', 802
+    new $P2227, 'ExceptionHandler'
+    set_addr $P2227, control_2226
+    $P2227."handle_types"(.CONTROL_RETURN)
+    push_eh $P2227
+    .lex "self", self
+    .lex "$/", param_2228
+    find_lex $P2229, "$/"
+    find_lex $P2230, "$/"
+    unless_null $P2230, vivify_650
+    $P2230 = root_new ['parrot';'Hash']
+  vivify_650:
+    set $P2231, $P2230["variable"]
+    unless_null $P2231, vivify_651
+    new $P2231, "Undef"
+  vivify_651:
+    $P2232 = $P2231."ast"()
+    $P2233 = $P2229."!make"($P2232)
+    .return ($P2233)
+  control_2226:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2227, exception, "payload"
-    .return ($P2227)
+    getattribute $P2234, exception, "payload"
+    .return ($P2234)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postfix:sym<.>"  :subid("125_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2231
-.annotate 'line', 799
-    new $P2230, 'ExceptionHandler'
-    set_addr $P2230, control_2229
-    $P2230."handle_types"(.CONTROL_RETURN)
-    push_eh $P2230
-    .lex "self", self
-    .lex "$/", param_2231
-    find_lex $P2232, "$/"
-    find_lex $P2233, "$/"
-    unless_null $P2233, vivify_646
-    $P2233 = root_new ['parrot';'Hash']
-  vivify_646:
-    set $P2234, $P2233["dotty"]
-    unless_null $P2234, vivify_647
-    new $P2234, "Undef"
-  vivify_647:
-    $P2235 = $P2234."ast"()
-    $P2236 = $P2232."!make"($P2235)
-    .return ($P2236)
-  control_2229:
+.sub "quote_escape:sym<{ }>"  :subid("123_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2238
+.annotate 'line', 803
+    new $P2237, 'ExceptionHandler'
+    set_addr $P2237, control_2236
+    $P2237."handle_types"(.CONTROL_RETURN)
+    push_eh $P2237
+    .lex "self", self
+    .lex "$/", param_2238
+.annotate 'line', 804
+    find_lex $P2239, "$/"
+    get_hll_global $P2240, ["PAST"], "Op"
+.annotate 'line', 805
+    find_lex $P2241, "$/"
+    unless_null $P2241, vivify_652
+    $P2241 = root_new ['parrot';'Hash']
+  vivify_652:
+    set $P2242, $P2241["block"]
+    unless_null $P2242, vivify_653
+    new $P2242, "Undef"
+  vivify_653:
+    $P2243 = $P2242."ast"()
+    $P2244 = "block_immediate"($P2243)
+    find_lex $P2245, "$/"
+    $P2246 = $P2240."new"($P2244, "set S*" :named("pirop"), $P2245 :named("node"))
+.annotate 'line', 804
+    $P2247 = $P2239."!make"($P2246)
+.annotate 'line', 803
+    .return ($P2247)
+  control_2236:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2237, exception, "payload"
-    .return ($P2237)
+    getattribute $P2248, exception, "payload"
+    .return ($P2248)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postfix:sym<++>"  :subid("126_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2241
-.annotate 'line', 801
-    new $P2240, 'ExceptionHandler'
-    set_addr $P2240, control_2239
-    $P2240."handle_types"(.CONTROL_RETURN)
-    push_eh $P2240
+.sub "quote_escape:sym<esc>"  :subid("124_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2252
+.annotate 'line', 808
+    new $P2251, 'ExceptionHandler'
+    set_addr $P2251, control_2250
+    $P2251."handle_types"(.CONTROL_RETURN)
+    push_eh $P2251
     .lex "self", self
-    .lex "$/", param_2241
-.annotate 'line', 802
-    find_lex $P2242, "$/"
-    get_hll_global $P2243, ["PAST"], "Op"
-.annotate 'line', 803
-    new $P2244, "ResizablePMCArray"
-    push $P2244, "    clone %r, %0"
-    push $P2244, "    inc %0"
-    $P2245 = $P2243."new"("postfix:<++>" :named("name"), $P2244 :named("inline"), "inline" :named("pasttype"))
-.annotate 'line', 802
-    $P2246 = $P2242."!make"($P2245)
-.annotate 'line', 801
-    .return ($P2246)
-  control_2239:
+    .lex "$/", param_2252
+    find_lex $P2253, "$/"
+    $P2254 = $P2253."!make"("\e")
+    .return ($P2254)
+  control_2250:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2247, exception, "payload"
-    .return ($P2247)
+    getattribute $P2255, exception, "payload"
+    .return ($P2255)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postfix:sym<-->"  :subid("127_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2251
-.annotate 'line', 807
-    new $P2250, 'ExceptionHandler'
-    set_addr $P2250, control_2249
-    $P2250."handle_types"(.CONTROL_RETURN)
-    push_eh $P2250
+.sub "postfix:sym<.>"  :subid("125_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2259
+.annotate 'line', 812
+    new $P2258, 'ExceptionHandler'
+    set_addr $P2258, control_2257
+    $P2258."handle_types"(.CONTROL_RETURN)
+    push_eh $P2258
     .lex "self", self
-    .lex "$/", param_2251
-.annotate 'line', 808
-    find_lex $P2252, "$/"
-    get_hll_global $P2253, ["PAST"], "Op"
-.annotate 'line', 809
-    new $P2254, "ResizablePMCArray"
-    push $P2254, "    clone %r, %0"
-    push $P2254, "    dec %0"
-    $P2255 = $P2253."new"("postfix:<-->" :named("name"), $P2254 :named("inline"), "inline" :named("pasttype"))
-.annotate 'line', 808
-    $P2256 = $P2252."!make"($P2255)
-.annotate 'line', 807
-    .return ($P2256)
-  control_2249:
+    .lex "$/", param_2259
+    find_lex $P2260, "$/"
+    find_lex $P2261, "$/"
+    unless_null $P2261, vivify_654
+    $P2261 = root_new ['parrot';'Hash']
+  vivify_654:
+    set $P2262, $P2261["dotty"]
+    unless_null $P2262, vivify_655
+    new $P2262, "Undef"
+  vivify_655:
+    $P2263 = $P2262."ast"()
+    $P2264 = $P2260."!make"($P2263)
+    .return ($P2264)
+  control_2257:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2257, exception, "payload"
-    .return ($P2257)
+    getattribute $P2265, exception, "payload"
+    .return ($P2265)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "prefix:sym<make>"  :subid("128_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2261
-.annotate 'line', 813
-    new $P2260, 'ExceptionHandler'
-    set_addr $P2260, control_2259
-    $P2260."handle_types"(.CONTROL_RETURN)
-    push_eh $P2260
-    .lex "self", self
-    .lex "$/", param_2261
+.sub "postfix:sym<++>"  :subid("126_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2269
 .annotate 'line', 814
-    find_lex $P2262, "$/"
-    get_hll_global $P2263, ["PAST"], "Op"
+    new $P2268, 'ExceptionHandler'
+    set_addr $P2268, control_2267
+    $P2268."handle_types"(.CONTROL_RETURN)
+    push_eh $P2268
+    .lex "self", self
+    .lex "$/", param_2269
+.annotate 'line', 815
+    find_lex $P2270, "$/"
+    get_hll_global $P2271, ["PAST"], "Op"
+.annotate 'line', 816
+    new $P2272, "ResizablePMCArray"
+    push $P2272, "    clone %r, %0"
+    push $P2272, "    inc %0"
+    $P2273 = $P2271."new"("postfix:<++>" :named("name"), $P2272 :named("inline"), "inline" :named("pasttype"))
 .annotate 'line', 815
-    get_hll_global $P2264, ["PAST"], "Var"
-    $P2265 = $P2264."new"("$/" :named("name"), "contextual" :named("scope"))
-    find_lex $P2266, "$/"
-    $P2267 = $P2263."new"($P2265, "callmethod" :named("pasttype"), "!make" :named("name"), $P2266 :named("node"))
+    $P2274 = $P2270."!make"($P2273)
 .annotate 'line', 814
-    $P2268 = $P2262."!make"($P2267)
-.annotate 'line', 813
-    .return ($P2268)
-  control_2259:
+    .return ($P2274)
+  control_2267:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2269, exception, "payload"
-    .return ($P2269)
+    getattribute $P2275, exception, "payload"
+    .return ($P2275)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<next>"  :subid("129_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2274
-.annotate 'line', 831
-    new $P2273, 'ExceptionHandler'
-    set_addr $P2273, control_2272
-    $P2273."handle_types"(.CONTROL_RETURN)
-    push_eh $P2273
+.sub "postfix:sym<-->"  :subid("127_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2279
+.annotate 'line', 820
+    new $P2278, 'ExceptionHandler'
+    set_addr $P2278, control_2277
+    $P2278."handle_types"(.CONTROL_RETURN)
+    push_eh $P2278
     .lex "self", self
-    .lex "$/", param_2274
-    find_lex $P2275, "$/"
-    $P2276 = "control"($P2275, "CONTROL_LOOP_NEXT")
-    .return ($P2276)
-  control_2272:
+    .lex "$/", param_2279
+.annotate 'line', 821
+    find_lex $P2280, "$/"
+    get_hll_global $P2281, ["PAST"], "Op"
+.annotate 'line', 822
+    new $P2282, "ResizablePMCArray"
+    push $P2282, "    clone %r, %0"
+    push $P2282, "    dec %0"
+    $P2283 = $P2281."new"("postfix:<-->" :named("name"), $P2282 :named("inline"), "inline" :named("pasttype"))
+.annotate 'line', 821
+    $P2284 = $P2280."!make"($P2283)
+.annotate 'line', 820
+    .return ($P2284)
+  control_2277:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2277, exception, "payload"
-    .return ($P2277)
+    getattribute $P2285, exception, "payload"
+    .return ($P2285)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<last>"  :subid("130_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2281
-.annotate 'line', 832
-    new $P2280, 'ExceptionHandler'
-    set_addr $P2280, control_2279
-    $P2280."handle_types"(.CONTROL_RETURN)
-    push_eh $P2280
+.sub "prefix:sym<make>"  :subid("128_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2289
+.annotate 'line', 826
+    new $P2288, 'ExceptionHandler'
+    set_addr $P2288, control_2287
+    $P2288."handle_types"(.CONTROL_RETURN)
+    push_eh $P2288
     .lex "self", self
-    .lex "$/", param_2281
-    find_lex $P2282, "$/"
-    $P2283 = "control"($P2282, "CONTROL_LOOP_LAST")
-    .return ($P2283)
-  control_2279:
+    .lex "$/", param_2289
+.annotate 'line', 827
+    find_lex $P2290, "$/"
+    get_hll_global $P2291, ["PAST"], "Op"
+.annotate 'line', 828
+    get_hll_global $P2292, ["PAST"], "Var"
+    $P2293 = $P2292."new"("$/" :named("name"), "contextual" :named("scope"))
+    find_lex $P2294, "$/"
+    $P2295 = $P2291."new"($P2293, "callmethod" :named("pasttype"), "!make" :named("name"), $P2294 :named("node"))
+.annotate 'line', 827
+    $P2296 = $P2290."!make"($P2295)
+.annotate 'line', 826
+    .return ($P2296)
+  control_2287:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2284, exception, "payload"
-    .return ($P2284)
+    getattribute $P2297, exception, "payload"
+    .return ($P2297)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<redo>"  :subid("131_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2288
-.annotate 'line', 833
-    new $P2287, 'ExceptionHandler'
-    set_addr $P2287, control_2286
-    $P2287."handle_types"(.CONTROL_RETURN)
-    push_eh $P2287
+.sub "term:sym<next>"  :subid("129_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2302
+.annotate 'line', 844
+    new $P2301, 'ExceptionHandler'
+    set_addr $P2301, control_2300
+    $P2301."handle_types"(.CONTROL_RETURN)
+    push_eh $P2301
     .lex "self", self
-    .lex "$/", param_2288
-    find_lex $P2289, "$/"
-    $P2290 = "control"($P2289, "CONTROL_LOOP_REDO")
-    .return ($P2290)
-  control_2286:
+    .lex "$/", param_2302
+    find_lex $P2303, "$/"
+    $P2304 = "control"($P2303, "CONTROL_LOOP_NEXT")
+    .return ($P2304)
+  control_2300:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2291, exception, "payload"
-    .return ($P2291)
+    getattribute $P2305, exception, "payload"
+    .return ($P2305)
 .end
 
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "infix:sym<~~>"  :subid("132_1277356919.52295") :method :outer("11_1277356919.52295")
-    .param pmc param_2295
-.annotate 'line', 835
-    new $P2294, 'ExceptionHandler'
-    set_addr $P2294, control_2293
-    $P2294."handle_types"(.CONTROL_RETURN)
-    push_eh $P2294
+.sub "term:sym<last>"  :subid("130_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2309
+.annotate 'line', 845
+    new $P2308, 'ExceptionHandler'
+    set_addr $P2308, control_2307
+    $P2308."handle_types"(.CONTROL_RETURN)
+    push_eh $P2308
     .lex "self", self
-    .lex "$/", param_2295
-.annotate 'line', 836
-    find_lex $P2296, "$/"
-    get_hll_global $P2297, ["PAST"], "Op"
-    find_lex $P2298, "$/"
-    $P2299 = $P2297."new"("callmethod" :named("pasttype"), "ACCEPTS" :named("name"), $P2298 :named("node"))
-    $P2300 = $P2296."!make"($P2299)
-.annotate 'line', 835
-    .return ($P2300)
-  control_2293:
+    .lex "$/", param_2309
+    find_lex $P2310, "$/"
+    $P2311 = "control"($P2310, "CONTROL_LOOP_LAST")
+    .return ($P2311)
+  control_2307:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2301, exception, "payload"
-    .return ($P2301)
-.end
-
-
-.namespace ["NQP";"RegexActions"]
-.sub "_block2302"  :subid("133_1277356919.52295") :outer("11_1277356919.52295")
-.annotate 'line', 840
-    .const 'Sub' $P2388 = "140_1277356919.52295" 
-    capture_lex $P2388
-    .const 'Sub' $P2375 = "139_1277356919.52295" 
-    capture_lex $P2375
-    .const 'Sub' $P2358 = "138_1277356919.52295" 
-    capture_lex $P2358
-    .const 'Sub' $P2345 = "137_1277356919.52295" 
-    capture_lex $P2345
-    .const 'Sub' $P2332 = "136_1277356919.52295" 
-    capture_lex $P2332
-    .const 'Sub' $P2319 = "135_1277356919.52295" 
-    capture_lex $P2319
-    .const 'Sub' $P2304 = "134_1277356919.52295" 
-    capture_lex $P2304
-.annotate 'line', 874
-    .const 'Sub' $P2388 = "140_1277356919.52295" 
-    newclosure $P2413, $P2388
-.annotate 'line', 840
-    .return ($P2413)
+    getattribute $P2312, exception, "payload"
+    .return ($P2312)
 .end
 
 
-.namespace ["NQP";"RegexActions"]
+.namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<:my>"  :subid("134_1277356919.52295") :method :outer("133_1277356919.52295")
-    .param pmc param_2307
-.annotate 'line', 842
-    new $P2306, 'ExceptionHandler'
-    set_addr $P2306, control_2305
-    $P2306."handle_types"(.CONTROL_RETURN)
-    push_eh $P2306
-    .lex "self", self
-    .lex "$/", param_2307
-.annotate 'line', 843
-    new $P2308, "Undef"
-    .lex "$past", $P2308
-    find_lex $P2309, "$/"
-    unless_null $P2309, vivify_648
-    $P2309 = root_new ['parrot';'Hash']
-  vivify_648:
-    set $P2310, $P2309["statement"]
-    unless_null $P2310, vivify_649
-    new $P2310, "Undef"
-  vivify_649:
-    $P2311 = $P2310."ast"()
-    store_lex "$past", $P2311
-.annotate 'line', 844
-    find_lex $P2312, "$/"
-    get_hll_global $P2313, ["PAST"], "Regex"
-    find_lex $P2314, "$past"
-    find_lex $P2315, "$/"
-    $P2316 = $P2313."new"($P2314, "pastnode" :named("pasttype"), "declarative" :named("subtype"), $P2315 :named("node"))
-    $P2317 = $P2312."!make"($P2316)
-.annotate 'line', 842
-    .return ($P2317)
-  control_2305:
+.sub "term:sym<redo>"  :subid("131_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2316
+.annotate 'line', 846
+    new $P2315, 'ExceptionHandler'
+    set_addr $P2315, control_2314
+    $P2315."handle_types"(.CONTROL_RETURN)
+    push_eh $P2315
+    .lex "self", self
+    .lex "$/", param_2316
+    find_lex $P2317, "$/"
+    $P2318 = "control"($P2317, "CONTROL_LOOP_REDO")
+    .return ($P2318)
+  control_2314:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2318, exception, "payload"
-    .return ($P2318)
+    getattribute $P2319, exception, "payload"
+    .return ($P2319)
 .end
 
 
-.namespace ["NQP";"RegexActions"]
+.namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<{ }>"  :subid("135_1277356919.52295") :method :outer("133_1277356919.52295")
-    .param pmc param_2322
+.sub "infix:sym<~~>"  :subid("132_1280467483.70067") :method :outer("11_1280467483.70067")
+    .param pmc param_2323
 .annotate 'line', 848
-    new $P2321, 'ExceptionHandler'
-    set_addr $P2321, control_2320
-    $P2321."handle_types"(.CONTROL_RETURN)
-    push_eh $P2321
+    new $P2322, 'ExceptionHandler'
+    set_addr $P2322, control_2321
+    $P2322."handle_types"(.CONTROL_RETURN)
+    push_eh $P2322
     .lex "self", self
-    .lex "$/", param_2322
+    .lex "$/", param_2323
 .annotate 'line', 849
-    find_lex $P2323, "$/"
-    get_hll_global $P2324, ["PAST"], "Regex"
-    find_lex $P2325, "$/"
-    unless_null $P2325, vivify_650
-    $P2325 = root_new ['parrot';'Hash']
-  vivify_650:
-    set $P2326, $P2325["codeblock"]
-    unless_null $P2326, vivify_651
-    new $P2326, "Undef"
-  vivify_651:
-    $P2327 = $P2326."ast"()
-    find_lex $P2328, "$/"
-    $P2329 = $P2324."new"($P2327, "pastnode" :named("pasttype"), $P2328 :named("node"))
-    $P2330 = $P2323."!make"($P2329)
+    find_lex $P2324, "$/"
+    get_hll_global $P2325, ["PAST"], "Op"
+    find_lex $P2326, "$/"
+    $P2327 = $P2325."new"("callmethod" :named("pasttype"), "ACCEPTS" :named("name"), $P2326 :named("node"))
+    $P2328 = $P2324."!make"($P2327)
 .annotate 'line', 848
-    .return ($P2330)
-  control_2320:
+    .return ($P2328)
+  control_2321:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2331, exception, "payload"
-    .return ($P2331)
+    getattribute $P2329, exception, "payload"
+    .return ($P2329)
+.end
+
+
+.namespace ["NQP";"RegexActions"]
+.sub "_block2330"  :subid("133_1280467483.70067") :outer("11_1280467483.70067")
+.annotate 'line', 853
+    .const 'Sub' $P2416 = "140_1280467483.70067" 
+    capture_lex $P2416
+    .const 'Sub' $P2403 = "139_1280467483.70067" 
+    capture_lex $P2403
+    .const 'Sub' $P2386 = "138_1280467483.70067" 
+    capture_lex $P2386
+    .const 'Sub' $P2373 = "137_1280467483.70067" 
+    capture_lex $P2373
+    .const 'Sub' $P2360 = "136_1280467483.70067" 
+    capture_lex $P2360
+    .const 'Sub' $P2347 = "135_1280467483.70067" 
+    capture_lex $P2347
+    .const 'Sub' $P2332 = "134_1280467483.70067" 
+    capture_lex $P2332
+.annotate 'line', 887
+    .const 'Sub' $P2416 = "140_1280467483.70067" 
+    newclosure $P2441, $P2416
+.annotate 'line', 853
+    .return ($P2441)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "metachar:sym<nqpvar>"  :subid("136_1277356919.52295") :method :outer("133_1277356919.52295")
+.sub "metachar:sym<:my>"  :subid("134_1280467483.70067") :method :outer("133_1280467483.70067")
     .param pmc param_2335
-.annotate 'line', 853
+.annotate 'line', 855
     new $P2334, 'ExceptionHandler'
     set_addr $P2334, control_2333
     $P2334."handle_types"(.CONTROL_RETURN)
     push_eh $P2334
     .lex "self", self
     .lex "$/", param_2335
-.annotate 'line', 854
-    find_lex $P2336, "$/"
-    get_hll_global $P2337, ["PAST"], "Regex"
-    find_lex $P2338, "$/"
-    unless_null $P2338, vivify_652
-    $P2338 = root_new ['parrot';'Hash']
-  vivify_652:
-    set $P2339, $P2338["var"]
-    unless_null $P2339, vivify_653
-    new $P2339, "Undef"
-  vivify_653:
-    $P2340 = $P2339."ast"()
-    find_lex $P2341, "$/"
-    $P2342 = $P2337."new"("!INTERPOLATE", $P2340, "subrule" :named("pasttype"), "method" :named("subtype"), $P2341 :named("node"))
-    $P2343 = $P2336."!make"($P2342)
-.annotate 'line', 853
-    .return ($P2343)
+.annotate 'line', 856
+    new $P2336, "Undef"
+    .lex "$past", $P2336
+    find_lex $P2337, "$/"
+    unless_null $P2337, vivify_656
+    $P2337 = root_new ['parrot';'Hash']
+  vivify_656:
+    set $P2338, $P2337["statement"]
+    unless_null $P2338, vivify_657
+    new $P2338, "Undef"
+  vivify_657:
+    $P2339 = $P2338."ast"()
+    store_lex "$past", $P2339
+.annotate 'line', 857
+    find_lex $P2340, "$/"
+    get_hll_global $P2341, ["PAST"], "Regex"
+    find_lex $P2342, "$past"
+    find_lex $P2343, "$/"
+    $P2344 = $P2341."new"($P2342, "pastnode" :named("pasttype"), "declarative" :named("subtype"), $P2343 :named("node"))
+    $P2345 = $P2340."!make"($P2344)
+.annotate 'line', 855
+    .return ($P2345)
   control_2333:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2344, exception, "payload"
-    .return ($P2344)
+    getattribute $P2346, exception, "payload"
+    .return ($P2346)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "assertion:sym<{ }>"  :subid("137_1277356919.52295") :method :outer("133_1277356919.52295")
-    .param pmc param_2348
-.annotate 'line', 858
-    new $P2347, 'ExceptionHandler'
-    set_addr $P2347, control_2346
-    $P2347."handle_types"(.CONTROL_RETURN)
-    push_eh $P2347
-    .lex "self", self
-    .lex "$/", param_2348
-.annotate 'line', 859
-    find_lex $P2349, "$/"
-    get_hll_global $P2350, ["PAST"], "Regex"
+.sub "metachar:sym<{ }>"  :subid("135_1280467483.70067") :method :outer("133_1280467483.70067")
+    .param pmc param_2350
+.annotate 'line', 861
+    new $P2349, 'ExceptionHandler'
+    set_addr $P2349, control_2348
+    $P2349."handle_types"(.CONTROL_RETURN)
+    push_eh $P2349
+    .lex "self", self
+    .lex "$/", param_2350
+.annotate 'line', 862
     find_lex $P2351, "$/"
-    unless_null $P2351, vivify_654
-    $P2351 = root_new ['parrot';'Hash']
-  vivify_654:
-    set $P2352, $P2351["codeblock"]
-    unless_null $P2352, vivify_655
-    new $P2352, "Undef"
-  vivify_655:
-    $P2353 = $P2352."ast"()
-    find_lex $P2354, "$/"
-    $P2355 = $P2350."new"("!INTERPOLATE_REGEX", $P2353, "subrule" :named("pasttype"), "method" :named("subtype"), $P2354 :named("node"))
-    $P2356 = $P2349."!make"($P2355)
-.annotate 'line', 858
-    .return ($P2356)
-  control_2346:
+    get_hll_global $P2352, ["PAST"], "Regex"
+    find_lex $P2353, "$/"
+    unless_null $P2353, vivify_658
+    $P2353 = root_new ['parrot';'Hash']
+  vivify_658:
+    set $P2354, $P2353["codeblock"]
+    unless_null $P2354, vivify_659
+    new $P2354, "Undef"
+  vivify_659:
+    $P2355 = $P2354."ast"()
+    find_lex $P2356, "$/"
+    $P2357 = $P2352."new"($P2355, "pastnode" :named("pasttype"), $P2356 :named("node"))
+    $P2358 = $P2351."!make"($P2357)
+.annotate 'line', 861
+    .return ($P2358)
+  control_2348:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2357, exception, "payload"
-    .return ($P2357)
+    getattribute $P2359, exception, "payload"
+    .return ($P2359)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "assertion:sym<?{ }>"  :subid("138_1277356919.52295") :method :outer("133_1277356919.52295")
-    .param pmc param_2361
-.annotate 'line', 863
-    new $P2360, 'ExceptionHandler'
-    set_addr $P2360, control_2359
-    $P2360."handle_types"(.CONTROL_RETURN)
-    push_eh $P2360
-    .lex "self", self
-    .lex "$/", param_2361
-.annotate 'line', 864
-    find_lex $P2362, "$/"
-    get_hll_global $P2363, ["PAST"], "Regex"
+.sub "metachar:sym<nqpvar>"  :subid("136_1280467483.70067") :method :outer("133_1280467483.70067")
+    .param pmc param_2363
+.annotate 'line', 866
+    new $P2362, 'ExceptionHandler'
+    set_addr $P2362, control_2361
+    $P2362."handle_types"(.CONTROL_RETURN)
+    push_eh $P2362
+    .lex "self", self
+    .lex "$/", param_2363
+.annotate 'line', 867
     find_lex $P2364, "$/"
-    unless_null $P2364, vivify_656
-    $P2364 = root_new ['parrot';'Hash']
-  vivify_656:
-    set $P2365, $P2364["codeblock"]
-    unless_null $P2365, vivify_657
-    new $P2365, "Undef"
-  vivify_657:
-    $P2366 = $P2365."ast"()
-.annotate 'line', 865
-    find_lex $P2367, "$/"
-    unless_null $P2367, vivify_658
-    $P2367 = root_new ['parrot';'Hash']
-  vivify_658:
-    set $P2368, $P2367["zw"]
-    unless_null $P2368, vivify_659
-    new $P2368, "Undef"
-  vivify_659:
-    set $S2369, $P2368
-    iseq $I2370, $S2369, "!"
-    find_lex $P2371, "$/"
-    $P2372 = $P2363."new"($P2366, "zerowidth" :named("subtype"), $I2370 :named("negate"), "pastnode" :named("pasttype"), $P2371 :named("node"))
-.annotate 'line', 864
-    $P2373 = $P2362."!make"($P2372)
-.annotate 'line', 863
-    .return ($P2373)
-  control_2359:
+    get_hll_global $P2365, ["PAST"], "Regex"
+    find_lex $P2366, "$/"
+    unless_null $P2366, vivify_660
+    $P2366 = root_new ['parrot';'Hash']
+  vivify_660:
+    set $P2367, $P2366["var"]
+    unless_null $P2367, vivify_661
+    new $P2367, "Undef"
+  vivify_661:
+    $P2368 = $P2367."ast"()
+    find_lex $P2369, "$/"
+    $P2370 = $P2365."new"("!INTERPOLATE", $P2368, "subrule" :named("pasttype"), "method" :named("subtype"), $P2369 :named("node"))
+    $P2371 = $P2364."!make"($P2370)
+.annotate 'line', 866
+    .return ($P2371)
+  control_2361:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2374, exception, "payload"
-    .return ($P2374)
+    getattribute $P2372, exception, "payload"
+    .return ($P2372)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "assertion:sym<var>"  :subid("139_1277356919.52295") :method :outer("133_1277356919.52295")
-    .param pmc param_2378
-.annotate 'line', 869
-    new $P2377, 'ExceptionHandler'
-    set_addr $P2377, control_2376
-    $P2377."handle_types"(.CONTROL_RETURN)
-    push_eh $P2377
-    .lex "self", self
-    .lex "$/", param_2378
-.annotate 'line', 870
+.sub "assertion:sym<{ }>"  :subid("137_1280467483.70067") :method :outer("133_1280467483.70067")
+    .param pmc param_2376
+.annotate 'line', 871
+    new $P2375, 'ExceptionHandler'
+    set_addr $P2375, control_2374
+    $P2375."handle_types"(.CONTROL_RETURN)
+    push_eh $P2375
+    .lex "self", self
+    .lex "$/", param_2376
+.annotate 'line', 872
+    find_lex $P2377, "$/"
+    get_hll_global $P2378, ["PAST"], "Regex"
     find_lex $P2379, "$/"
-    get_hll_global $P2380, ["PAST"], "Regex"
-    find_lex $P2381, "$/"
-    unless_null $P2381, vivify_660
-    $P2381 = root_new ['parrot';'Hash']
-  vivify_660:
-    set $P2382, $P2381["var"]
-    unless_null $P2382, vivify_661
-    new $P2382, "Undef"
-  vivify_661:
-    $P2383 = $P2382."ast"()
-    find_lex $P2384, "$/"
-    $P2385 = $P2380."new"("!INTERPOLATE_REGEX", $P2383, "subrule" :named("pasttype"), "method" :named("subtype"), $P2384 :named("node"))
-    $P2386 = $P2379."!make"($P2385)
-.annotate 'line', 869
-    .return ($P2386)
-  control_2376:
+    unless_null $P2379, vivify_662
+    $P2379 = root_new ['parrot';'Hash']
+  vivify_662:
+    set $P2380, $P2379["codeblock"]
+    unless_null $P2380, vivify_663
+    new $P2380, "Undef"
+  vivify_663:
+    $P2381 = $P2380."ast"()
+    find_lex $P2382, "$/"
+    $P2383 = $P2378."new"("!INTERPOLATE_REGEX", $P2381, "subrule" :named("pasttype"), "method" :named("subtype"), $P2382 :named("node"))
+    $P2384 = $P2377."!make"($P2383)
+.annotate 'line', 871
+    .return ($P2384)
+  control_2374:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2387, exception, "payload"
-    .return ($P2387)
+    getattribute $P2385, exception, "payload"
+    .return ($P2385)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "codeblock"  :subid("140_1277356919.52295") :method :outer("133_1277356919.52295")
-    .param pmc param_2391
-.annotate 'line', 874
-    new $P2390, 'ExceptionHandler'
-    set_addr $P2390, control_2389
-    $P2390."handle_types"(.CONTROL_RETURN)
-    push_eh $P2390
-    .lex "self", self
-    .lex "$/", param_2391
-.annotate 'line', 875
-    new $P2392, "Undef"
-    .lex "$block", $P2392
+.sub "assertion:sym<?{ }>"  :subid("138_1280467483.70067") :method :outer("133_1280467483.70067")
+    .param pmc param_2389
+.annotate 'line', 876
+    new $P2388, 'ExceptionHandler'
+    set_addr $P2388, control_2387
+    $P2388."handle_types"(.CONTROL_RETURN)
+    push_eh $P2388
+    .lex "self", self
+    .lex "$/", param_2389
 .annotate 'line', 877
+    find_lex $P2390, "$/"
+    get_hll_global $P2391, ["PAST"], "Regex"
+    find_lex $P2392, "$/"
+    unless_null $P2392, vivify_664
+    $P2392 = root_new ['parrot';'Hash']
+  vivify_664:
+    set $P2393, $P2392["codeblock"]
+    unless_null $P2393, vivify_665
     new $P2393, "Undef"
-    .lex "$past", $P2393
-.annotate 'line', 875
-    find_lex $P2394, "$/"
-    unless_null $P2394, vivify_662
-    $P2394 = root_new ['parrot';'Hash']
-  vivify_662:
-    set $P2395, $P2394["block"]
-    unless_null $P2395, vivify_663
-    new $P2395, "Undef"
-  vivify_663:
-    $P2396 = $P2395."ast"()
-    store_lex "$block", $P2396
-.annotate 'line', 876
-    find_lex $P2397, "$block"
-    $P2397."blocktype"("immediate")
+  vivify_665:
+    $P2394 = $P2393."ast"()
 .annotate 'line', 878
-    get_hll_global $P2398, ["PAST"], "Stmts"
-.annotate 'line', 879
-    get_hll_global $P2399, ["PAST"], "Op"
-.annotate 'line', 880
-    get_hll_global $P2400, ["PAST"], "Var"
-    $P2401 = $P2400."new"("$/" :named("name"))
-.annotate 'line', 881
-    get_hll_global $P2402, ["PAST"], "Op"
+    find_lex $P2395, "$/"
+    unless_null $P2395, vivify_666
+    $P2395 = root_new ['parrot';'Hash']
+  vivify_666:
+    set $P2396, $P2395["zw"]
+    unless_null $P2396, vivify_667
+    new $P2396, "Undef"
+  vivify_667:
+    set $S2397, $P2396
+    iseq $I2398, $S2397, "!"
+    find_lex $P2399, "$/"
+    $P2400 = $P2391."new"($P2394, "zerowidth" :named("subtype"), $I2398 :named("negate"), "pastnode" :named("pasttype"), $P2399 :named("node"))
+.annotate 'line', 877
+    $P2401 = $P2390."!make"($P2400)
+.annotate 'line', 876
+    .return ($P2401)
+  control_2387:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2402, exception, "payload"
+    .return ($P2402)
+.end
+
+
+.namespace ["NQP";"RegexActions"]
+.include "except_types.pasm"
+.sub "assertion:sym<var>"  :subid("139_1280467483.70067") :method :outer("133_1280467483.70067")
+    .param pmc param_2406
 .annotate 'line', 882
-    get_hll_global $P2403, ["PAST"], "Var"
-    $P2404 = $P2403."new"(unicode:"$\x{a2}" :named("name"))
-    $P2405 = $P2402."new"($P2404, "MATCH" :named("name"), "callmethod" :named("pasttype"))
-.annotate 'line', 881
-    $P2406 = $P2399."new"($P2401, $P2405, "bind" :named("pasttype"))
-.annotate 'line', 879
-    find_lex $P2407, "$block"
-    $P2408 = $P2398."new"($P2406, $P2407)
-.annotate 'line', 878
-    store_lex "$past", $P2408
-.annotate 'line', 890
+    new $P2405, 'ExceptionHandler'
+    set_addr $P2405, control_2404
+    $P2405."handle_types"(.CONTROL_RETURN)
+    push_eh $P2405
+    .lex "self", self
+    .lex "$/", param_2406
+.annotate 'line', 883
+    find_lex $P2407, "$/"
+    get_hll_global $P2408, ["PAST"], "Regex"
     find_lex $P2409, "$/"
-    find_lex $P2410, "$past"
-    $P2411 = $P2409."!make"($P2410)
-.annotate 'line', 874
-    .return ($P2411)
-  control_2389:
+    unless_null $P2409, vivify_668
+    $P2409 = root_new ['parrot';'Hash']
+  vivify_668:
+    set $P2410, $P2409["var"]
+    unless_null $P2410, vivify_669
+    new $P2410, "Undef"
+  vivify_669:
+    $P2411 = $P2410."ast"()
+    find_lex $P2412, "$/"
+    $P2413 = $P2408."new"("!INTERPOLATE_REGEX", $P2411, "subrule" :named("pasttype"), "method" :named("subtype"), $P2412 :named("node"))
+    $P2414 = $P2407."!make"($P2413)
+.annotate 'line', 882
+    .return ($P2414)
+  control_2404:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2415, exception, "payload"
+    .return ($P2415)
+.end
+
+
+.namespace ["NQP";"RegexActions"]
+.include "except_types.pasm"
+.sub "codeblock"  :subid("140_1280467483.70067") :method :outer("133_1280467483.70067")
+    .param pmc param_2419
+.annotate 'line', 887
+    new $P2418, 'ExceptionHandler'
+    set_addr $P2418, control_2417
+    $P2418."handle_types"(.CONTROL_RETURN)
+    push_eh $P2418
+    .lex "self", self
+    .lex "$/", param_2419
+.annotate 'line', 888
+    new $P2420, "Undef"
+    .lex "$block", $P2420
+.annotate 'line', 890
+    new $P2421, "Undef"
+    .lex "$past", $P2421
+.annotate 'line', 888
+    find_lex $P2422, "$/"
+    unless_null $P2422, vivify_670
+    $P2422 = root_new ['parrot';'Hash']
+  vivify_670:
+    set $P2423, $P2422["block"]
+    unless_null $P2423, vivify_671
+    new $P2423, "Undef"
+  vivify_671:
+    $P2424 = $P2423."ast"()
+    store_lex "$block", $P2424
+.annotate 'line', 889
+    find_lex $P2425, "$block"
+    $P2425."blocktype"("immediate")
+.annotate 'line', 891
+    get_hll_global $P2426, ["PAST"], "Stmts"
+.annotate 'line', 892
+    get_hll_global $P2427, ["PAST"], "Op"
+.annotate 'line', 893
+    get_hll_global $P2428, ["PAST"], "Var"
+    $P2429 = $P2428."new"("$/" :named("name"))
+.annotate 'line', 894
+    get_hll_global $P2430, ["PAST"], "Op"
+.annotate 'line', 895
+    get_hll_global $P2431, ["PAST"], "Var"
+    $P2432 = $P2431."new"(unicode:"$\x{a2}" :named("name"))
+    $P2433 = $P2430."new"($P2432, "MATCH" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 894
+    $P2434 = $P2427."new"($P2429, $P2433, "bind" :named("pasttype"))
+.annotate 'line', 892
+    find_lex $P2435, "$block"
+    $P2436 = $P2426."new"($P2434, $P2435)
+.annotate 'line', 891
+    store_lex "$past", $P2436
+.annotate 'line', 903
+    find_lex $P2437, "$/"
+    find_lex $P2438, "$past"
+    $P2439 = $P2437."!make"($P2438)
+.annotate 'line', 887
+    .return ($P2439)
+  control_2417:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2412, exception, "payload"
-    .return ($P2412)
+    getattribute $P2440, exception, "payload"
+    .return ($P2440)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2415" :load :anon :subid("141_1277356919.52295")
+.sub "_block2443" :load :anon :subid("141_1280467483.70067")
 .annotate 'line', 3
-    .const 'Sub' $P2417 = "11_1277356919.52295" 
-    $P2418 = $P2417()
-    .return ($P2418)
+    .const 'Sub' $P2445 = "11_1280467483.70067" 
+    $P2446 = $P2445()
+    .return ($P2446)
 .end
 
 
 .namespace []
-.sub "_block2425" :load :anon :subid("143_1277356919.52295")
+.sub "_block2453" :load :anon :subid("143_1280467483.70067")
 .annotate 'line', 1
-    .const 'Sub' $P2427 = "10_1277356919.52295" 
-    $P2428 = $P2427()
-    .return ($P2428)
+    .const 'Sub' $P2455 = "10_1280467483.70067" 
+    $P2456 = $P2455()
+    .return ($P2456)
 .end
 
 ### .include 'src/cheats/nqp-builtins.pir'

Modified: branches/dynop_mapping/ext/nqp-rx/src/stage0/P6Regex-s0.pir
==============================================================================
--- branches/dynop_mapping/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Tue Aug  3 02:53:14 2010	(r48260)
@@ -16,7 +16,7 @@
 ### .include 'gen/p6regex-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1277356887.58177")
+.sub "_block11"  :anon :subid("10_1280467470.54449")
 .annotate 'line', 0
     get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" 
     capture_lex $P14
@@ -30,153 +30,153 @@
 .annotate 'line', 3
     get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" 
     capture_lex $P14
-    $P596 = $P14()
+    $P572 = $P14()
 .annotate 'line', 1
-    .return ($P596)
-    .const 'Sub' $P598 = "161_1277356887.58177" 
-    .return ($P598)
+    .return ($P572)
+    .const 'Sub' $P574 = "161_1280467470.54449" 
+    .return ($P574)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post162") :outer("10_1277356887.58177")
+.sub "" :load :init :subid("post162") :outer("10_1280467470.54449")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1277356887.58177" 
+    .const 'Sub' $P12 = "10_1280467470.54449" 
     .local pmc block
     set block, $P12
-    $P601 = get_root_global ["parrot"], "P6metaclass"
-    $P601."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent"))
+    $P577 = get_root_global ["parrot"], "P6metaclass"
+    $P577."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent"))
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block13"  :subid("11_1277356887.58177") :outer("10_1277356887.58177")
+.sub "_block13"  :subid("11_1280467470.54449") :outer("10_1280467470.54449")
 .annotate 'line', 3
-    .const 'Sub' $P584 = "158_1277356887.58177" 
-    capture_lex $P584
-    .const 'Sub' $P576 = "156_1277356887.58177" 
-    capture_lex $P576
-    .const 'Sub' $P568 = "154_1277356887.58177" 
-    capture_lex $P568
-    .const 'Sub' $P547 = "149_1277356887.58177" 
+    .const 'Sub' $P561 = "158_1280467470.54449" 
+    capture_lex $P561
+    .const 'Sub' $P554 = "156_1280467470.54449" 
+    capture_lex $P554
+    .const 'Sub' $P547 = "154_1280467470.54449" 
     capture_lex $P547
-    .const 'Sub' $P512 = "143_1277356887.58177" 
-    capture_lex $P512
-    .const 'Sub' $P500 = "140_1277356887.58177" 
-    capture_lex $P500
-    .const 'Sub' $P487 = "137_1277356887.58177" 
-    capture_lex $P487
-    .const 'Sub' $P481 = "135_1277356887.58177" 
+    .const 'Sub' $P527 = "149_1280467470.54449" 
+    capture_lex $P527
+    .const 'Sub' $P493 = "143_1280467470.54449" 
+    capture_lex $P493
+    .const 'Sub' $P481 = "140_1280467470.54449" 
     capture_lex $P481
-    .const 'Sub' $P470 = "132_1277356887.58177" 
-    capture_lex $P470
-    .const 'Sub' $P459 = "129_1277356887.58177" 
-    capture_lex $P459
-    .const 'Sub' $P450 = "125_1277356887.58177" 
-    capture_lex $P450
-    .const 'Sub' $P444 = "123_1277356887.58177" 
-    capture_lex $P444
-    .const 'Sub' $P438 = "121_1277356887.58177" 
-    capture_lex $P438
-    .const 'Sub' $P432 = "119_1277356887.58177" 
+    .const 'Sub' $P469 = "137_1280467470.54449" 
+    capture_lex $P469
+    .const 'Sub' $P463 = "135_1280467470.54449" 
+    capture_lex $P463
+    .const 'Sub' $P452 = "132_1280467470.54449" 
+    capture_lex $P452
+    .const 'Sub' $P441 = "129_1280467470.54449" 
+    capture_lex $P441
+    .const 'Sub' $P432 = "125_1280467470.54449" 
     capture_lex $P432
-    .const 'Sub' $P426 = "117_1277356887.58177" 
+    .const 'Sub' $P426 = "123_1280467470.54449" 
     capture_lex $P426
-    .const 'Sub' $P418 = "115_1277356887.58177" 
-    capture_lex $P418
-    .const 'Sub' $P407 = "113_1277356887.58177" 
-    capture_lex $P407
-    .const 'Sub' $P396 = "111_1277356887.58177" 
-    capture_lex $P396
-    .const 'Sub' $P390 = "109_1277356887.58177" 
-    capture_lex $P390
-    .const 'Sub' $P384 = "107_1277356887.58177" 
-    capture_lex $P384
-    .const 'Sub' $P378 = "105_1277356887.58177" 
+    .const 'Sub' $P420 = "121_1280467470.54449" 
+    capture_lex $P420
+    .const 'Sub' $P414 = "119_1280467470.54449" 
+    capture_lex $P414
+    .const 'Sub' $P408 = "117_1280467470.54449" 
+    capture_lex $P408
+    .const 'Sub' $P400 = "115_1280467470.54449" 
+    capture_lex $P400
+    .const 'Sub' $P389 = "113_1280467470.54449" 
+    capture_lex $P389
+    .const 'Sub' $P378 = "111_1280467470.54449" 
     capture_lex $P378
-    .const 'Sub' $P372 = "103_1277356887.58177" 
+    .const 'Sub' $P372 = "109_1280467470.54449" 
     capture_lex $P372
-    .const 'Sub' $P366 = "101_1277356887.58177" 
+    .const 'Sub' $P366 = "107_1280467470.54449" 
     capture_lex $P366
-    .const 'Sub' $P360 = "99_1277356887.58177" 
+    .const 'Sub' $P360 = "105_1280467470.54449" 
     capture_lex $P360
-    .const 'Sub' $P354 = "97_1277356887.58177" 
+    .const 'Sub' $P354 = "103_1280467470.54449" 
     capture_lex $P354
-    .const 'Sub' $P348 = "95_1277356887.58177" 
+    .const 'Sub' $P348 = "101_1280467470.54449" 
     capture_lex $P348
-    .const 'Sub' $P336 = "91_1277356887.58177" 
+    .const 'Sub' $P342 = "99_1280467470.54449" 
+    capture_lex $P342
+    .const 'Sub' $P336 = "97_1280467470.54449" 
     capture_lex $P336
-    .const 'Sub' $P324 = "89_1277356887.58177" 
-    capture_lex $P324
-    .const 'Sub' $P317 = "87_1277356887.58177" 
-    capture_lex $P317
-    .const 'Sub' $P300 = "85_1277356887.58177" 
-    capture_lex $P300
-    .const 'Sub' $P293 = "83_1277356887.58177" 
-    capture_lex $P293
-    .const 'Sub' $P287 = "81_1277356887.58177" 
-    capture_lex $P287
-    .const 'Sub' $P281 = "79_1277356887.58177" 
-    capture_lex $P281
-    .const 'Sub' $P274 = "77_1277356887.58177" 
-    capture_lex $P274
-    .const 'Sub' $P267 = "75_1277356887.58177" 
-    capture_lex $P267
-    .const 'Sub' $P260 = "73_1277356887.58177" 
-    capture_lex $P260
-    .const 'Sub' $P253 = "71_1277356887.58177" 
-    capture_lex $P253
-    .const 'Sub' $P247 = "69_1277356887.58177" 
-    capture_lex $P247
-    .const 'Sub' $P241 = "67_1277356887.58177" 
-    capture_lex $P241
-    .const 'Sub' $P235 = "65_1277356887.58177" 
-    capture_lex $P235
-    .const 'Sub' $P229 = "63_1277356887.58177" 
-    capture_lex $P229
-    .const 'Sub' $P223 = "61_1277356887.58177" 
-    capture_lex $P223
-    .const 'Sub' $P218 = "59_1277356887.58177" 
+    .const 'Sub' $P330 = "95_1280467470.54449" 
+    capture_lex $P330
+    .const 'Sub' $P318 = "91_1280467470.54449" 
+    capture_lex $P318
+    .const 'Sub' $P308 = "89_1280467470.54449" 
+    capture_lex $P308
+    .const 'Sub' $P301 = "87_1280467470.54449" 
+    capture_lex $P301
+    .const 'Sub' $P289 = "85_1280467470.54449" 
+    capture_lex $P289
+    .const 'Sub' $P282 = "83_1280467470.54449" 
+    capture_lex $P282
+    .const 'Sub' $P276 = "81_1280467470.54449" 
+    capture_lex $P276
+    .const 'Sub' $P270 = "79_1280467470.54449" 
+    capture_lex $P270
+    .const 'Sub' $P263 = "77_1280467470.54449" 
+    capture_lex $P263
+    .const 'Sub' $P256 = "75_1280467470.54449" 
+    capture_lex $P256
+    .const 'Sub' $P249 = "73_1280467470.54449" 
+    capture_lex $P249
+    .const 'Sub' $P242 = "71_1280467470.54449" 
+    capture_lex $P242
+    .const 'Sub' $P236 = "69_1280467470.54449" 
+    capture_lex $P236
+    .const 'Sub' $P230 = "67_1280467470.54449" 
+    capture_lex $P230
+    .const 'Sub' $P224 = "65_1280467470.54449" 
+    capture_lex $P224
+    .const 'Sub' $P218 = "63_1280467470.54449" 
     capture_lex $P218
-    .const 'Sub' $P213 = "57_1277356887.58177" 
-    capture_lex $P213
-    .const 'Sub' $P207 = "55_1277356887.58177" 
+    .const 'Sub' $P212 = "61_1280467470.54449" 
+    capture_lex $P212
+    .const 'Sub' $P207 = "59_1280467470.54449" 
     capture_lex $P207
-    .const 'Sub' $P201 = "53_1277356887.58177" 
-    capture_lex $P201
-    .const 'Sub' $P195 = "51_1277356887.58177" 
-    capture_lex $P195
-    .const 'Sub' $P179 = "46_1277356887.58177" 
-    capture_lex $P179
-    .const 'Sub' $P163 = "44_1277356887.58177" 
-    capture_lex $P163
-    .const 'Sub' $P156 = "42_1277356887.58177" 
-    capture_lex $P156
-    .const 'Sub' $P149 = "40_1277356887.58177" 
-    capture_lex $P149
-    .const 'Sub' $P142 = "38_1277356887.58177" 
-    capture_lex $P142
-    .const 'Sub' $P123 = "33_1277356887.58177" 
-    capture_lex $P123
-    .const 'Sub' $P110 = "30_1277356887.58177" 
-    capture_lex $P110
-    .const 'Sub' $P103 = "28_1277356887.58177" 
-    capture_lex $P103
-    .const 'Sub' $P91 = "26_1277356887.58177" 
-    capture_lex $P91
-    .const 'Sub' $P84 = "24_1277356887.58177" 
-    capture_lex $P84
-    .const 'Sub' $P71 = "22_1277356887.58177" 
-    capture_lex $P71
-    .const 'Sub' $P64 = "20_1277356887.58177" 
-    capture_lex $P64
-    .const 'Sub' $P56 = "18_1277356887.58177" 
-    capture_lex $P56
-    .const 'Sub' $P46 = "15_1277356887.58177" 
-    capture_lex $P46
-    .const 'Sub' $P38 = "13_1277356887.58177" 
-    capture_lex $P38
-    .const 'Sub' $P15 = "12_1277356887.58177" 
+    .const 'Sub' $P202 = "57_1280467470.54449" 
+    capture_lex $P202
+    .const 'Sub' $P196 = "55_1280467470.54449" 
+    capture_lex $P196
+    .const 'Sub' $P190 = "53_1280467470.54449" 
+    capture_lex $P190
+    .const 'Sub' $P184 = "51_1280467470.54449" 
+    capture_lex $P184
+    .const 'Sub' $P169 = "46_1280467470.54449" 
+    capture_lex $P169
+    .const 'Sub' $P154 = "44_1280467470.54449" 
+    capture_lex $P154
+    .const 'Sub' $P147 = "42_1280467470.54449" 
+    capture_lex $P147
+    .const 'Sub' $P140 = "40_1280467470.54449" 
+    capture_lex $P140
+    .const 'Sub' $P133 = "38_1280467470.54449" 
+    capture_lex $P133
+    .const 'Sub' $P116 = "33_1280467470.54449" 
+    capture_lex $P116
+    .const 'Sub' $P104 = "30_1280467470.54449" 
+    capture_lex $P104
+    .const 'Sub' $P97 = "28_1280467470.54449" 
+    capture_lex $P97
+    .const 'Sub' $P87 = "26_1280467470.54449" 
+    capture_lex $P87
+    .const 'Sub' $P80 = "24_1280467470.54449" 
+    capture_lex $P80
+    .const 'Sub' $P68 = "22_1280467470.54449" 
+    capture_lex $P68
+    .const 'Sub' $P61 = "20_1280467470.54449" 
+    capture_lex $P61
+    .const 'Sub' $P54 = "18_1280467470.54449" 
+    capture_lex $P54
+    .const 'Sub' $P44 = "15_1280467470.54449" 
+    capture_lex $P44
+    .const 'Sub' $P37 = "13_1280467470.54449" 
+    capture_lex $P37
+    .const 'Sub' $P15 = "12_1280467470.54449" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -184,17 +184,17 @@
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
-    .const 'Sub' $P584 = "158_1277356887.58177" 
-    capture_lex $P584
-    .return ($P584)
-    .const 'Sub' $P593 = "160_1277356887.58177" 
-    .return ($P593)
+    .const 'Sub' $P561 = "158_1280467470.54449" 
+    capture_lex $P561
+    .return ($P561)
+    .const 'Sub' $P569 = "160_1280467470.54449" 
+    .return ($P569)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
 .include "except_types.pasm"
-.sub "obs"  :subid("12_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "obs"  :subid("12_1280467470.54449") :method :outer("11_1280467470.54449")
     .param pmc param_18
     .param pmc param_19
     .param pmc param_20 :optional
@@ -216,7 +216,7 @@
 .annotate 'line', 4
     find_lex $P22, "self"
     new $P23, "String"
-    assign $P23, "Obsolete use of "
+    assign $P23, "Unsupported use of "
     find_lex $P24, "$old"
     set $S25, $P24
     concat $P26, $P23, $S25
@@ -229,2092 +229,2352 @@
     find_lex $P32, "$new"
     set $S33, $P32
     concat $P34, $P31, $S33
-    concat $P35, $P34, " instead"
-    $P36 = $P22."panic"($P35)
+    $P35 = $P22."panic"($P34)
 .annotate 'line', 3
-    .return ($P36)
+    .return ($P35)
   control_16:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P37, exception, "payload"
-    .return ($P37)
+    getattribute $P36, exception, "payload"
+    .return ($P36)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "ws"  :subid("13_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "ws"  :subid("13_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx39_tgt
-    .local int rx39_pos
-    .local int rx39_off
-    .local int rx39_eos
-    .local int rx39_rep
-    .local pmc rx39_cur
-    (rx39_cur, rx39_pos, rx39_tgt) = self."!cursor_start"()
-    rx39_cur."!cursor_debug"("START ", "ws")
-    .lex unicode:"$\x{a2}", rx39_cur
-    .local pmc match
-    .lex "$/", match
-    length rx39_eos, rx39_tgt
-    gt rx39_pos, rx39_eos, rx39_done
-    set rx39_off, 0
-    lt rx39_pos, 2, rx39_start
-    sub rx39_off, rx39_pos, 1
-    substr rx39_tgt, rx39_tgt, rx39_off
-  rx39_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan42_done
-    goto rxscan42_scan
-  rxscan42_loop:
-    ($P10) = rx39_cur."from"()
-    inc $P10
-    set rx39_pos, $P10
-    ge rx39_pos, rx39_eos, rxscan42_done
-  rxscan42_scan:
-    set_addr $I10, rxscan42_loop
-    rx39_cur."!mark_push"(0, rx39_pos, $I10)
-  rxscan42_done:
+    .local string rx38_tgt
+    .local int rx38_pos
+    .local int rx38_off
+    .local int rx38_eos
+    .local int rx38_rep
+    .local pmc rx38_cur
+    (rx38_cur, rx38_pos, rx38_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx38_cur
+    .local pmc match
+    .lex "$/", match
+    length rx38_eos, rx38_tgt
+    gt rx38_pos, rx38_eos, rx38_done
+    set rx38_off, 0
+    lt rx38_pos, 2, rx38_start
+    sub rx38_off, rx38_pos, 1
+    substr rx38_tgt, rx38_tgt, rx38_off
+  rx38_start:
+    eq $I10, 1, rx38_restart
+    rx38_cur."!cursor_debug"("START ", "ws")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan41_done
+    goto rxscan41_scan
+  rxscan41_loop:
+    ($P10) = rx38_cur."from"()
+    inc $P10
+    set rx38_pos, $P10
+    ge rx38_pos, rx38_eos, rxscan41_done
+  rxscan41_scan:
+    set_addr $I10, rxscan41_loop
+    rx38_cur."!mark_push"(0, rx38_pos, $I10)
+  rxscan41_done:
 .annotate 'line', 8
-  # rx rxquantr43 ** 0..*
-    set_addr $I45, rxquantr43_done
-    rx39_cur."!mark_push"(0, rx39_pos, $I45)
-  rxquantr43_loop:
-  alt44_0:
-    set_addr $I10, alt44_1
-    rx39_cur."!mark_push"(0, rx39_pos, $I10)
+  # rx rxquantr42 ** 0..*
+    set_addr $I10, rxquantr42_done
+    rx38_cur."!mark_push"(0, rx38_pos, $I10)
+  rxquantr42_loop:
+  alt43_0:
+    set_addr $I10, alt43_1
+    rx38_cur."!mark_push"(0, rx38_pos, $I10)
   # rx charclass_q s r 1..-1
-    sub $I10, rx39_pos, rx39_off
-    find_not_cclass $I11, 32, rx39_tgt, $I10, rx39_eos
+    sub $I10, rx38_pos, rx38_off
+    find_not_cclass $I11, 32, rx38_tgt, $I10, rx38_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx39_fail
-    add rx39_pos, rx39_off, $I11
-    goto alt44_end
-  alt44_1:
+    lt $I11, $I12, rx38_fail
+    add rx38_pos, rx38_off, $I11
+    goto alt43_end
+  alt43_1:
   # rx literal  "#"
-    add $I11, rx39_pos, 1
-    gt $I11, rx39_eos, rx39_fail
-    sub $I11, rx39_pos, rx39_off
-    substr $S10, rx39_tgt, $I11, 1
-    ne $S10, "#", rx39_fail
-    add rx39_pos, 1
+    add $I11, rx38_pos, 1
+    gt $I11, rx38_eos, rx38_fail
+    sub $I11, rx38_pos, rx38_off
+    substr $S10, rx38_tgt, $I11, 1
+    ne $S10, "#", rx38_fail
+    add rx38_pos, 1
   # rx charclass_q N r 0..-1
-    sub $I10, rx39_pos, rx39_off
-    find_cclass $I11, 4096, rx39_tgt, $I10, rx39_eos
-    add rx39_pos, rx39_off, $I11
-  alt44_end:
-    (rx39_rep) = rx39_cur."!mark_commit"($I45)
-    rx39_cur."!mark_push"(rx39_rep, rx39_pos, $I45)
-    goto rxquantr43_loop
-  rxquantr43_done:
+    sub $I10, rx38_pos, rx38_off
+    find_cclass $I11, 4096, rx38_tgt, $I10, rx38_eos
+    add rx38_pos, rx38_off, $I11
+  alt43_end:
+    set_addr $I10, rxquantr42_done
+    (rx38_rep) = rx38_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr42_done
+    rx38_cur."!mark_push"(rx38_rep, rx38_pos, $I10)
+    goto rxquantr42_loop
+  rxquantr42_done:
   # rx pass
-    rx39_cur."!cursor_pass"(rx39_pos, "ws")
-    rx39_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx39_pos)
-    .return (rx39_cur)
-  rx39_fail:
+    rx38_cur."!cursor_pass"(rx38_pos, "ws")
+    rx38_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx38_pos)
+    .return (rx38_cur)
+  rx38_restart:
 .annotate 'line', 3
-    (rx39_rep, rx39_pos, $I10, $P10) = rx39_cur."!mark_fail"(0)
-    lt rx39_pos, -1, rx39_done
-    eq rx39_pos, -1, rx39_fail
+    rx38_cur."!cursor_debug"("NEXT ", "ws")
+  rx38_fail:
+    (rx38_rep, rx38_pos, $I10, $P10) = rx38_cur."!mark_fail"(0)
+    lt rx38_pos, -1, rx38_done
+    eq rx38_pos, -1, rx38_fail
     jump $I10
-  rx39_done:
-    rx39_cur."!cursor_fail"()
-    rx39_cur."!cursor_debug"("FAIL  ", "ws")
-    .return (rx39_cur)
+  rx38_done:
+    rx38_cur."!cursor_fail"()
+    rx38_cur."!cursor_debug"("FAIL  ", "ws")
+    .return (rx38_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__ws"  :subid("14_1277356887.58177") :method
+.sub "!PREFIX__ws"  :subid("14_1280467470.54449") :method
 .annotate 'line', 3
-    new $P41, "ResizablePMCArray"
-    push $P41, ""
-    .return ($P41)
+    new $P40, "ResizablePMCArray"
+    push $P40, ""
+    .return ($P40)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "normspace"  :subid("15_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "normspace"  :subid("15_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .const 'Sub' $P52 = "17_1277356887.58177" 
-    capture_lex $P52
-    .local string rx47_tgt
-    .local int rx47_pos
-    .local int rx47_off
-    .local int rx47_eos
-    .local int rx47_rep
-    .local pmc rx47_cur
-    (rx47_cur, rx47_pos, rx47_tgt) = self."!cursor_start"()
-    rx47_cur."!cursor_debug"("START ", "normspace")
-    .lex unicode:"$\x{a2}", rx47_cur
-    .local pmc match
-    .lex "$/", match
-    length rx47_eos, rx47_tgt
-    gt rx47_pos, rx47_eos, rx47_done
-    set rx47_off, 0
-    lt rx47_pos, 2, rx47_start
-    sub rx47_off, rx47_pos, 1
-    substr rx47_tgt, rx47_tgt, rx47_off
-  rx47_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan50_done
-    goto rxscan50_scan
-  rxscan50_loop:
-    ($P10) = rx47_cur."from"()
-    inc $P10
-    set rx47_pos, $P10
-    ge rx47_pos, rx47_eos, rxscan50_done
-  rxscan50_scan:
-    set_addr $I10, rxscan50_loop
-    rx47_cur."!mark_push"(0, rx47_pos, $I10)
-  rxscan50_done:
+    .const 'Sub' $P50 = "17_1280467470.54449" 
+    capture_lex $P50
+    .local string rx45_tgt
+    .local int rx45_pos
+    .local int rx45_off
+    .local int rx45_eos
+    .local int rx45_rep
+    .local pmc rx45_cur
+    (rx45_cur, rx45_pos, rx45_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx45_cur
+    .local pmc match
+    .lex "$/", match
+    length rx45_eos, rx45_tgt
+    gt rx45_pos, rx45_eos, rx45_done
+    set rx45_off, 0
+    lt rx45_pos, 2, rx45_start
+    sub rx45_off, rx45_pos, 1
+    substr rx45_tgt, rx45_tgt, rx45_off
+  rx45_start:
+    eq $I10, 1, rx45_restart
+    rx45_cur."!cursor_debug"("START ", "normspace")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan48_done
+    goto rxscan48_scan
+  rxscan48_loop:
+    ($P10) = rx45_cur."from"()
+    inc $P10
+    set rx45_pos, $P10
+    ge rx45_pos, rx45_eos, rxscan48_done
+  rxscan48_scan:
+    set_addr $I10, rxscan48_loop
+    rx45_cur."!mark_push"(0, rx45_pos, $I10)
+  rxscan48_done:
 .annotate 'line', 10
   # rx subrule "before" subtype=zerowidth negate=
-    rx47_cur."!cursor_pos"(rx47_pos)
-    .const 'Sub' $P52 = "17_1277356887.58177" 
-    capture_lex $P52
-    $P10 = rx47_cur."before"($P52)
-    unless $P10, rx47_fail
+    rx45_cur."!cursor_pos"(rx45_pos)
+    .const 'Sub' $P50 = "17_1280467470.54449" 
+    capture_lex $P50
+    $P10 = rx45_cur."before"($P50)
+    unless $P10, rx45_fail
   # rx subrule "ws" subtype=method negate=
-    rx47_cur."!cursor_pos"(rx47_pos)
-    $P10 = rx47_cur."ws"()
-    unless $P10, rx47_fail
-    rx47_pos = $P10."pos"()
+    rx45_cur."!cursor_pos"(rx45_pos)
+    $P10 = rx45_cur."ws"()
+    unless $P10, rx45_fail
+    rx45_pos = $P10."pos"()
   # rx pass
-    rx47_cur."!cursor_pass"(rx47_pos, "normspace")
-    rx47_cur."!cursor_debug"("PASS  ", "normspace", " at pos=", rx47_pos)
-    .return (rx47_cur)
-  rx47_fail:
+    rx45_cur."!cursor_pass"(rx45_pos, "normspace")
+    rx45_cur."!cursor_debug"("PASS  ", "normspace", " at pos=", rx45_pos)
+    .return (rx45_cur)
+  rx45_restart:
 .annotate 'line', 3
-    (rx47_rep, rx47_pos, $I10, $P10) = rx47_cur."!mark_fail"(0)
-    lt rx47_pos, -1, rx47_done
-    eq rx47_pos, -1, rx47_fail
+    rx45_cur."!cursor_debug"("NEXT ", "normspace")
+  rx45_fail:
+    (rx45_rep, rx45_pos, $I10, $P10) = rx45_cur."!mark_fail"(0)
+    lt rx45_pos, -1, rx45_done
+    eq rx45_pos, -1, rx45_fail
     jump $I10
-  rx47_done:
-    rx47_cur."!cursor_fail"()
-    rx47_cur."!cursor_debug"("FAIL  ", "normspace")
-    .return (rx47_cur)
+  rx45_done:
+    rx45_cur."!cursor_fail"()
+    rx45_cur."!cursor_debug"("FAIL  ", "normspace")
+    .return (rx45_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__normspace"  :subid("16_1277356887.58177") :method
+.sub "!PREFIX__normspace"  :subid("16_1280467470.54449") :method
 .annotate 'line', 3
-    new $P49, "ResizablePMCArray"
-    push $P49, ""
-    .return ($P49)
+    new $P47, "ResizablePMCArray"
+    push $P47, ""
+    .return ($P47)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block51"  :anon :subid("17_1277356887.58177") :method :outer("15_1277356887.58177")
+.sub "_block49"  :anon :subid("17_1280467470.54449") :method :outer("15_1280467470.54449")
 .annotate 'line', 10
-    .local string rx53_tgt
-    .local int rx53_pos
-    .local int rx53_off
-    .local int rx53_eos
-    .local int rx53_rep
-    .local pmc rx53_cur
-    (rx53_cur, rx53_pos, rx53_tgt) = self."!cursor_start"()
-    rx53_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx53_cur
-    .local pmc match
-    .lex "$/", match
-    length rx53_eos, rx53_tgt
-    gt rx53_pos, rx53_eos, rx53_done
-    set rx53_off, 0
-    lt rx53_pos, 2, rx53_start
-    sub rx53_off, rx53_pos, 1
-    substr rx53_tgt, rx53_tgt, rx53_off
-  rx53_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan54_done
-    goto rxscan54_scan
-  rxscan54_loop:
-    ($P10) = rx53_cur."from"()
-    inc $P10
-    set rx53_pos, $P10
-    ge rx53_pos, rx53_eos, rxscan54_done
-  rxscan54_scan:
-    set_addr $I10, rxscan54_loop
-    rx53_cur."!mark_push"(0, rx53_pos, $I10)
-  rxscan54_done:
-  alt55_0:
-    set_addr $I10, alt55_1
-    rx53_cur."!mark_push"(0, rx53_pos, $I10)
+    .local string rx51_tgt
+    .local int rx51_pos
+    .local int rx51_off
+    .local int rx51_eos
+    .local int rx51_rep
+    .local pmc rx51_cur
+    (rx51_cur, rx51_pos, rx51_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx51_cur
+    .local pmc match
+    .lex "$/", match
+    length rx51_eos, rx51_tgt
+    gt rx51_pos, rx51_eos, rx51_done
+    set rx51_off, 0
+    lt rx51_pos, 2, rx51_start
+    sub rx51_off, rx51_pos, 1
+    substr rx51_tgt, rx51_tgt, rx51_off
+  rx51_start:
+    eq $I10, 1, rx51_restart
+    rx51_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan52_done
+    goto rxscan52_scan
+  rxscan52_loop:
+    ($P10) = rx51_cur."from"()
+    inc $P10
+    set rx51_pos, $P10
+    ge rx51_pos, rx51_eos, rxscan52_done
+  rxscan52_scan:
+    set_addr $I10, rxscan52_loop
+    rx51_cur."!mark_push"(0, rx51_pos, $I10)
+  rxscan52_done:
+  alt53_0:
+    set_addr $I10, alt53_1
+    rx51_cur."!mark_push"(0, rx51_pos, $I10)
   # rx charclass s
-    ge rx53_pos, rx53_eos, rx53_fail
-    sub $I10, rx53_pos, rx53_off
-    is_cclass $I11, 32, rx53_tgt, $I10
-    unless $I11, rx53_fail
-    inc rx53_pos
-    goto alt55_end
-  alt55_1:
+    ge rx51_pos, rx51_eos, rx51_fail
+    sub $I10, rx51_pos, rx51_off
+    is_cclass $I11, 32, rx51_tgt, $I10
+    unless $I11, rx51_fail
+    inc rx51_pos
+    goto alt53_end
+  alt53_1:
   # rx literal  "#"
-    add $I11, rx53_pos, 1
-    gt $I11, rx53_eos, rx53_fail
-    sub $I11, rx53_pos, rx53_off
-    substr $S10, rx53_tgt, $I11, 1
-    ne $S10, "#", rx53_fail
-    add rx53_pos, 1
-  alt55_end:
-  # rx pass
-    rx53_cur."!cursor_pass"(rx53_pos, "")
-    rx53_cur."!cursor_debug"("PASS  ", "", " at pos=", rx53_pos)
-    .return (rx53_cur)
-  rx53_fail:
-    (rx53_rep, rx53_pos, $I10, $P10) = rx53_cur."!mark_fail"(0)
-    lt rx53_pos, -1, rx53_done
-    eq rx53_pos, -1, rx53_fail
-    jump $I10
-  rx53_done:
-    rx53_cur."!cursor_fail"()
-    rx53_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx53_cur)
+    add $I11, rx51_pos, 1
+    gt $I11, rx51_eos, rx51_fail
+    sub $I11, rx51_pos, rx51_off
+    substr $S10, rx51_tgt, $I11, 1
+    ne $S10, "#", rx51_fail
+    add rx51_pos, 1
+  alt53_end:
+  # rx pass
+    rx51_cur."!cursor_pass"(rx51_pos, "")
+    rx51_cur."!cursor_debug"("PASS  ", "", " at pos=", rx51_pos)
+    .return (rx51_cur)
+  rx51_restart:
+    rx51_cur."!cursor_debug"("NEXT ", "")
+  rx51_fail:
+    (rx51_rep, rx51_pos, $I10, $P10) = rx51_cur."!mark_fail"(0)
+    lt rx51_pos, -1, rx51_done
+    eq rx51_pos, -1, rx51_fail
+    jump $I10
+  rx51_done:
+    rx51_cur."!cursor_fail"()
+    rx51_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx51_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "identifier"  :subid("18_1277356887.58177") :method :outer("11_1277356887.58177")
-.annotate 'line', 3
-    .local string rx57_tgt
-    .local int rx57_pos
-    .local int rx57_off
-    .local int rx57_eos
-    .local int rx57_rep
-    .local pmc rx57_cur
-    (rx57_cur, rx57_pos, rx57_tgt) = self."!cursor_start"()
-    rx57_cur."!cursor_debug"("START ", "identifier")
-    .lex unicode:"$\x{a2}", rx57_cur
-    .local pmc match
-    .lex "$/", match
-    length rx57_eos, rx57_tgt
-    gt rx57_pos, rx57_eos, rx57_done
-    set rx57_off, 0
-    lt rx57_pos, 2, rx57_start
-    sub rx57_off, rx57_pos, 1
-    substr rx57_tgt, rx57_tgt, rx57_off
-  rx57_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan61_done
-    goto rxscan61_scan
-  rxscan61_loop:
-    ($P10) = rx57_cur."from"()
-    inc $P10
-    set rx57_pos, $P10
-    ge rx57_pos, rx57_eos, rxscan61_done
-  rxscan61_scan:
-    set_addr $I10, rxscan61_loop
-    rx57_cur."!mark_push"(0, rx57_pos, $I10)
-  rxscan61_done:
+.sub "identifier"  :subid("18_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+    .local string rx55_tgt
+    .local int rx55_pos
+    .local int rx55_off
+    .local int rx55_eos
+    .local int rx55_rep
+    .local pmc rx55_cur
+    (rx55_cur, rx55_pos, rx55_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx55_cur
+    .local pmc match
+    .lex "$/", match
+    length rx55_eos, rx55_tgt
+    gt rx55_pos, rx55_eos, rx55_done
+    set rx55_off, 0
+    lt rx55_pos, 2, rx55_start
+    sub rx55_off, rx55_pos, 1
+    substr rx55_tgt, rx55_tgt, rx55_off
+  rx55_start:
+    eq $I10, 1, rx55_restart
+    rx55_cur."!cursor_debug"("START ", "identifier")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan59_done
+    goto rxscan59_scan
+  rxscan59_loop:
+    ($P10) = rx55_cur."from"()
+    inc $P10
+    set rx55_pos, $P10
+    ge rx55_pos, rx55_eos, rxscan59_done
+  rxscan59_scan:
+    set_addr $I10, rxscan59_loop
+    rx55_cur."!mark_push"(0, rx55_pos, $I10)
+  rxscan59_done:
 .annotate 'line', 12
   # rx subrule "ident" subtype=method negate=
-    rx57_cur."!cursor_pos"(rx57_pos)
-    $P10 = rx57_cur."ident"()
-    unless $P10, rx57_fail
-    rx57_pos = $P10."pos"()
-  # rx rxquantr62 ** 0..*
-    set_addr $I63, rxquantr62_done
-    rx57_cur."!mark_push"(0, rx57_pos, $I63)
-  rxquantr62_loop:
+    rx55_cur."!cursor_pos"(rx55_pos)
+    $P10 = rx55_cur."ident"()
+    unless $P10, rx55_fail
+    rx55_pos = $P10."pos"()
+  # rx rxquantr60 ** 0..*
+    set_addr $I10, rxquantr60_done
+    rx55_cur."!mark_push"(0, rx55_pos, $I10)
+  rxquantr60_loop:
   # rx enumcharlist negate=0 
-    ge rx57_pos, rx57_eos, rx57_fail
-    sub $I10, rx57_pos, rx57_off
-    substr $S10, rx57_tgt, $I10, 1
+    ge rx55_pos, rx55_eos, rx55_fail
+    sub $I10, rx55_pos, rx55_off
+    substr $S10, rx55_tgt, $I10, 1
     index $I11, "-'", $S10
-    lt $I11, 0, rx57_fail
-    inc rx57_pos
+    lt $I11, 0, rx55_fail
+    inc rx55_pos
   # rx subrule "ident" subtype=method negate=
-    rx57_cur."!cursor_pos"(rx57_pos)
-    $P10 = rx57_cur."ident"()
-    unless $P10, rx57_fail
-    rx57_pos = $P10."pos"()
-    (rx57_rep) = rx57_cur."!mark_commit"($I63)
-    rx57_cur."!mark_push"(rx57_rep, rx57_pos, $I63)
-    goto rxquantr62_loop
-  rxquantr62_done:
-  # rx pass
-    rx57_cur."!cursor_pass"(rx57_pos, "identifier")
-    rx57_cur."!cursor_debug"("PASS  ", "identifier", " at pos=", rx57_pos)
-    .return (rx57_cur)
-  rx57_fail:
-.annotate 'line', 3
-    (rx57_rep, rx57_pos, $I10, $P10) = rx57_cur."!mark_fail"(0)
-    lt rx57_pos, -1, rx57_done
-    eq rx57_pos, -1, rx57_fail
-    jump $I10
-  rx57_done:
-    rx57_cur."!cursor_fail"()
-    rx57_cur."!cursor_debug"("FAIL  ", "identifier")
-    .return (rx57_cur)
+    rx55_cur."!cursor_pos"(rx55_pos)
+    $P10 = rx55_cur."ident"()
+    unless $P10, rx55_fail
+    rx55_pos = $P10."pos"()
+    set_addr $I10, rxquantr60_done
+    (rx55_rep) = rx55_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr60_done
+    rx55_cur."!mark_push"(rx55_rep, rx55_pos, $I10)
+    goto rxquantr60_loop
+  rxquantr60_done:
+  # rx pass
+    rx55_cur."!cursor_pass"(rx55_pos, "identifier")
+    rx55_cur."!cursor_debug"("PASS  ", "identifier", " at pos=", rx55_pos)
+    .return (rx55_cur)
+  rx55_restart:
+.annotate 'line', 3
+    rx55_cur."!cursor_debug"("NEXT ", "identifier")
+  rx55_fail:
+    (rx55_rep, rx55_pos, $I10, $P10) = rx55_cur."!mark_fail"(0)
+    lt rx55_pos, -1, rx55_done
+    eq rx55_pos, -1, rx55_fail
+    jump $I10
+  rx55_done:
+    rx55_cur."!cursor_fail"()
+    rx55_cur."!cursor_debug"("FAIL  ", "identifier")
+    .return (rx55_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("19_1277356887.58177") :method
-.annotate 'line', 3
-    $P59 = self."!PREFIX__!subrule"("ident", "")
-    new $P60, "ResizablePMCArray"
-    push $P60, $P59
-    .return ($P60)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arg"  :subid("20_1277356887.58177") :method :outer("11_1277356887.58177")
-.annotate 'line', 3
-    .local string rx65_tgt
-    .local int rx65_pos
-    .local int rx65_off
-    .local int rx65_eos
-    .local int rx65_rep
-    .local pmc rx65_cur
-    (rx65_cur, rx65_pos, rx65_tgt) = self."!cursor_start"()
-    rx65_cur."!cursor_debug"("START ", "arg")
-    .lex unicode:"$\x{a2}", rx65_cur
-    .local pmc match
-    .lex "$/", match
-    length rx65_eos, rx65_tgt
-    gt rx65_pos, rx65_eos, rx65_done
-    set rx65_off, 0
-    lt rx65_pos, 2, rx65_start
-    sub rx65_off, rx65_pos, 1
-    substr rx65_tgt, rx65_tgt, rx65_off
-  rx65_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan68_done
-    goto rxscan68_scan
-  rxscan68_loop:
-    ($P10) = rx65_cur."from"()
-    inc $P10
-    set rx65_pos, $P10
-    ge rx65_pos, rx65_eos, rxscan68_done
-  rxscan68_scan:
-    set_addr $I10, rxscan68_loop
-    rx65_cur."!mark_push"(0, rx65_pos, $I10)
-  rxscan68_done:
-  alt69_0:
+.sub "!PREFIX__identifier"  :subid("19_1280467470.54449") :method
+.annotate 'line', 3
+    $P57 = self."!PREFIX__!subrule"("ident", "")
+    new $P58, "ResizablePMCArray"
+    push $P58, $P57
+    .return ($P58)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "arg"  :subid("20_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+    .local string rx62_tgt
+    .local int rx62_pos
+    .local int rx62_off
+    .local int rx62_eos
+    .local int rx62_rep
+    .local pmc rx62_cur
+    (rx62_cur, rx62_pos, rx62_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx62_cur
+    .local pmc match
+    .lex "$/", match
+    length rx62_eos, rx62_tgt
+    gt rx62_pos, rx62_eos, rx62_done
+    set rx62_off, 0
+    lt rx62_pos, 2, rx62_start
+    sub rx62_off, rx62_pos, 1
+    substr rx62_tgt, rx62_tgt, rx62_off
+  rx62_start:
+    eq $I10, 1, rx62_restart
+    rx62_cur."!cursor_debug"("START ", "arg")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan65_done
+    goto rxscan65_scan
+  rxscan65_loop:
+    ($P10) = rx62_cur."from"()
+    inc $P10
+    set rx62_pos, $P10
+    ge rx62_pos, rx62_eos, rxscan65_done
+  rxscan65_scan:
+    set_addr $I10, rxscan65_loop
+    rx62_cur."!mark_push"(0, rx62_pos, $I10)
+  rxscan65_done:
+  alt66_0:
 .annotate 'line', 15
-    set_addr $I10, alt69_1
-    rx65_cur."!mark_push"(0, rx65_pos, $I10)
+    set_addr $I10, alt66_1
+    rx62_cur."!mark_push"(0, rx62_pos, $I10)
 .annotate 'line', 16
   # rx enumcharlist negate=0 zerowidth
-    ge rx65_pos, rx65_eos, rx65_fail
-    sub $I10, rx65_pos, rx65_off
-    substr $S10, rx65_tgt, $I10, 1
+    ge rx62_pos, rx62_eos, rx62_fail
+    sub $I10, rx62_pos, rx62_off
+    substr $S10, rx62_tgt, $I10, 1
     index $I11, "'", $S10
-    lt $I11, 0, rx65_fail
+    lt $I11, 0, rx62_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx65_cur."!cursor_pos"(rx65_pos)
-    $P10 = rx65_cur."quote_EXPR"(":q")
-    unless $P10, rx65_fail
-    rx65_cur."!mark_push"(0, -1, 0, $P10)
+    rx62_cur."!cursor_pos"(rx62_pos)
+    $P10 = rx62_cur."quote_EXPR"(":q")
+    unless $P10, rx62_fail
+    rx62_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx65_pos = $P10."pos"()
-    goto alt69_end
-  alt69_1:
-    set_addr $I10, alt69_2
-    rx65_cur."!mark_push"(0, rx65_pos, $I10)
+    rx62_pos = $P10."pos"()
+    goto alt66_end
+  alt66_1:
+    set_addr $I10, alt66_2
+    rx62_cur."!mark_push"(0, rx62_pos, $I10)
 .annotate 'line', 17
   # rx enumcharlist negate=0 zerowidth
-    ge rx65_pos, rx65_eos, rx65_fail
-    sub $I10, rx65_pos, rx65_off
-    substr $S10, rx65_tgt, $I10, 1
+    ge rx62_pos, rx62_eos, rx62_fail
+    sub $I10, rx62_pos, rx62_off
+    substr $S10, rx62_tgt, $I10, 1
     index $I11, "\"", $S10
-    lt $I11, 0, rx65_fail
+    lt $I11, 0, rx62_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx65_cur."!cursor_pos"(rx65_pos)
-    $P10 = rx65_cur."quote_EXPR"(":qq")
-    unless $P10, rx65_fail
-    rx65_cur."!mark_push"(0, -1, 0, $P10)
+    rx62_cur."!cursor_pos"(rx62_pos)
+    $P10 = rx62_cur."quote_EXPR"(":qq")
+    unless $P10, rx62_fail
+    rx62_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx65_pos = $P10."pos"()
-    goto alt69_end
-  alt69_2:
+    rx62_pos = $P10."pos"()
+    goto alt66_end
+  alt66_2:
 .annotate 'line', 18
   # rx subcapture "val"
-    set_addr $I10, rxcap_70_fail
-    rx65_cur."!mark_push"(0, rx65_pos, $I10)
+    set_addr $I10, rxcap_67_fail
+    rx62_cur."!mark_push"(0, rx62_pos, $I10)
   # rx charclass_q d r 1..-1
-    sub $I10, rx65_pos, rx65_off
-    find_not_cclass $I11, 8, rx65_tgt, $I10, rx65_eos
+    sub $I10, rx62_pos, rx62_off
+    find_not_cclass $I11, 8, rx62_tgt, $I10, rx62_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx65_fail
-    add rx65_pos, rx65_off, $I11
-    set_addr $I10, rxcap_70_fail
-    ($I12, $I11) = rx65_cur."!mark_peek"($I10)
-    rx65_cur."!cursor_pos"($I11)
-    ($P10) = rx65_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx65_pos, "")
-    rx65_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx62_fail
+    add rx62_pos, rx62_off, $I11
+    set_addr $I10, rxcap_67_fail
+    ($I12, $I11) = rx62_cur."!mark_peek"($I10)
+    rx62_cur."!cursor_pos"($I11)
+    ($P10) = rx62_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx62_pos, "")
+    rx62_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("val")
-    goto rxcap_70_done
-  rxcap_70_fail:
-    goto rx65_fail
-  rxcap_70_done:
-  alt69_end:
+    goto rxcap_67_done
+  rxcap_67_fail:
+    goto rx62_fail
+  rxcap_67_done:
+  alt66_end:
 .annotate 'line', 14
   # rx pass
-    rx65_cur."!cursor_pass"(rx65_pos, "arg")
-    rx65_cur."!cursor_debug"("PASS  ", "arg", " at pos=", rx65_pos)
-    .return (rx65_cur)
-  rx65_fail:
+    rx62_cur."!cursor_pass"(rx62_pos, "arg")
+    rx62_cur."!cursor_debug"("PASS  ", "arg", " at pos=", rx62_pos)
+    .return (rx62_cur)
+  rx62_restart:
 .annotate 'line', 3
-    (rx65_rep, rx65_pos, $I10, $P10) = rx65_cur."!mark_fail"(0)
-    lt rx65_pos, -1, rx65_done
-    eq rx65_pos, -1, rx65_fail
+    rx62_cur."!cursor_debug"("NEXT ", "arg")
+  rx62_fail:
+    (rx62_rep, rx62_pos, $I10, $P10) = rx62_cur."!mark_fail"(0)
+    lt rx62_pos, -1, rx62_done
+    eq rx62_pos, -1, rx62_fail
     jump $I10
-  rx65_done:
-    rx65_cur."!cursor_fail"()
-    rx65_cur."!cursor_debug"("FAIL  ", "arg")
-    .return (rx65_cur)
+  rx62_done:
+    rx62_cur."!cursor_fail"()
+    rx62_cur."!cursor_debug"("FAIL  ", "arg")
+    .return (rx62_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arg"  :subid("21_1277356887.58177") :method
+.sub "!PREFIX__arg"  :subid("21_1280467470.54449") :method
 .annotate 'line', 3
-    new $P67, "ResizablePMCArray"
-    push $P67, ""
-    push $P67, "\""
-    push $P67, "'"
-    .return ($P67)
+    new $P64, "ResizablePMCArray"
+    push $P64, ""
+    push $P64, "\""
+    push $P64, "'"
+    .return ($P64)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arglist"  :subid("22_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "arglist"  :subid("22_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx72_tgt
-    .local int rx72_pos
-    .local int rx72_off
-    .local int rx72_eos
-    .local int rx72_rep
-    .local pmc rx72_cur
-    (rx72_cur, rx72_pos, rx72_tgt) = self."!cursor_start"()
-    rx72_cur."!cursor_debug"("START ", "arglist")
-    rx72_cur."!cursor_caparray"("arg")
-    .lex unicode:"$\x{a2}", rx72_cur
+    .local string rx69_tgt
+    .local int rx69_pos
+    .local int rx69_off
+    .local int rx69_eos
+    .local int rx69_rep
+    .local pmc rx69_cur
+    (rx69_cur, rx69_pos, rx69_tgt, $I10) = self."!cursor_start"()
+    rx69_cur."!cursor_caparray"("arg")
+    .lex unicode:"$\x{a2}", rx69_cur
     .local pmc match
     .lex "$/", match
-    length rx72_eos, rx72_tgt
-    gt rx72_pos, rx72_eos, rx72_done
-    set rx72_off, 0
-    lt rx72_pos, 2, rx72_start
-    sub rx72_off, rx72_pos, 1
-    substr rx72_tgt, rx72_tgt, rx72_off
-  rx72_start:
+    length rx69_eos, rx69_tgt
+    gt rx69_pos, rx69_eos, rx69_done
+    set rx69_off, 0
+    lt rx69_pos, 2, rx69_start
+    sub rx69_off, rx69_pos, 1
+    substr rx69_tgt, rx69_tgt, rx69_off
+  rx69_start:
+    eq $I10, 1, rx69_restart
+    rx69_cur."!cursor_debug"("START ", "arglist")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan76_done
-    goto rxscan76_scan
-  rxscan76_loop:
-    ($P10) = rx72_cur."from"()
+    ne $I10, -1, rxscan73_done
+    goto rxscan73_scan
+  rxscan73_loop:
+    ($P10) = rx69_cur."from"()
     inc $P10
-    set rx72_pos, $P10
-    ge rx72_pos, rx72_eos, rxscan76_done
-  rxscan76_scan:
-    set_addr $I10, rxscan76_loop
-    rx72_cur."!mark_push"(0, rx72_pos, $I10)
-  rxscan76_done:
+    set rx69_pos, $P10
+    ge rx69_pos, rx69_eos, rxscan73_done
+  rxscan73_scan:
+    set_addr $I10, rxscan73_loop
+    rx69_cur."!mark_push"(0, rx69_pos, $I10)
+  rxscan73_done:
 .annotate 'line', 22
   # rx subrule "ws" subtype=method negate=
-    rx72_cur."!cursor_pos"(rx72_pos)
-    $P10 = rx72_cur."ws"()
-    unless $P10, rx72_fail
-    rx72_pos = $P10."pos"()
+    rx69_cur."!cursor_pos"(rx69_pos)
+    $P10 = rx69_cur."ws"()
+    unless $P10, rx69_fail
+    rx69_pos = $P10."pos"()
   # rx subrule "arg" subtype=capture negate=
-    rx72_cur."!cursor_pos"(rx72_pos)
-    $P10 = rx72_cur."arg"()
-    unless $P10, rx72_fail
-    rx72_cur."!mark_push"(0, -1, 0, $P10)
+    rx69_cur."!cursor_pos"(rx69_pos)
+    $P10 = rx69_cur."arg"()
+    unless $P10, rx69_fail
+    rx69_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arg")
-    rx72_pos = $P10."pos"()
+    rx69_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx72_cur."!cursor_pos"(rx72_pos)
-    $P10 = rx72_cur."ws"()
-    unless $P10, rx72_fail
-    rx72_pos = $P10."pos"()
-  # rx rxquantr79 ** 0..*
-    set_addr $I82, rxquantr79_done
-    rx72_cur."!mark_push"(0, rx72_pos, $I82)
-  rxquantr79_loop:
+    rx69_cur."!cursor_pos"(rx69_pos)
+    $P10 = rx69_cur."ws"()
+    unless $P10, rx69_fail
+    rx69_pos = $P10."pos"()
+  # rx rxquantr76 ** 0..*
+    set_addr $I10, rxquantr76_done
+    rx69_cur."!mark_push"(0, rx69_pos, $I10)
+  rxquantr76_loop:
   # rx subrule "ws" subtype=method negate=
-    rx72_cur."!cursor_pos"(rx72_pos)
-    $P10 = rx72_cur."ws"()
-    unless $P10, rx72_fail
-    rx72_pos = $P10."pos"()
+    rx69_cur."!cursor_pos"(rx69_pos)
+    $P10 = rx69_cur."ws"()
+    unless $P10, rx69_fail
+    rx69_pos = $P10."pos"()
   # rx literal  ","
-    add $I11, rx72_pos, 1
-    gt $I11, rx72_eos, rx72_fail
-    sub $I11, rx72_pos, rx72_off
-    substr $S10, rx72_tgt, $I11, 1
-    ne $S10, ",", rx72_fail
-    add rx72_pos, 1
+    add $I11, rx69_pos, 1
+    gt $I11, rx69_eos, rx69_fail
+    sub $I11, rx69_pos, rx69_off
+    substr $S10, rx69_tgt, $I11, 1
+    ne $S10, ",", rx69_fail
+    add rx69_pos, 1
   # rx subrule "ws" subtype=method negate=
-    rx72_cur."!cursor_pos"(rx72_pos)
-    $P10 = rx72_cur."ws"()
-    unless $P10, rx72_fail
-    rx72_pos = $P10."pos"()
+    rx69_cur."!cursor_pos"(rx69_pos)
+    $P10 = rx69_cur."ws"()
+    unless $P10, rx69_fail
+    rx69_pos = $P10."pos"()
   # rx subrule "arg" subtype=capture negate=
-    rx72_cur."!cursor_pos"(rx72_pos)
-    $P10 = rx72_cur."arg"()
-    unless $P10, rx72_fail
-    rx72_cur."!mark_push"(0, -1, 0, $P10)
+    rx69_cur."!cursor_pos"(rx69_pos)
+    $P10 = rx69_cur."arg"()
+    unless $P10, rx69_fail
+    rx69_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arg")
-    rx72_pos = $P10."pos"()
-    (rx72_rep) = rx72_cur."!mark_commit"($I82)
-    rx72_cur."!mark_push"(rx72_rep, rx72_pos, $I82)
-    goto rxquantr79_loop
-  rxquantr79_done:
+    rx69_pos = $P10."pos"()
+    set_addr $I10, rxquantr76_done
+    (rx69_rep) = rx69_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr76_done
+    rx69_cur."!mark_push"(rx69_rep, rx69_pos, $I10)
+    goto rxquantr76_loop
+  rxquantr76_done:
   # rx subrule "ws" subtype=method negate=
-    rx72_cur."!cursor_pos"(rx72_pos)
-    $P10 = rx72_cur."ws"()
-    unless $P10, rx72_fail
-    rx72_pos = $P10."pos"()
+    rx69_cur."!cursor_pos"(rx69_pos)
+    $P10 = rx69_cur."ws"()
+    unless $P10, rx69_fail
+    rx69_pos = $P10."pos"()
   # rx pass
-    rx72_cur."!cursor_pass"(rx72_pos, "arglist")
-    rx72_cur."!cursor_debug"("PASS  ", "arglist", " at pos=", rx72_pos)
-    .return (rx72_cur)
-  rx72_fail:
+    rx69_cur."!cursor_pass"(rx69_pos, "arglist")
+    rx69_cur."!cursor_debug"("PASS  ", "arglist", " at pos=", rx69_pos)
+    .return (rx69_cur)
+  rx69_restart:
 .annotate 'line', 3
-    (rx72_rep, rx72_pos, $I10, $P10) = rx72_cur."!mark_fail"(0)
-    lt rx72_pos, -1, rx72_done
-    eq rx72_pos, -1, rx72_fail
+    rx69_cur."!cursor_debug"("NEXT ", "arglist")
+  rx69_fail:
+    (rx69_rep, rx69_pos, $I10, $P10) = rx69_cur."!mark_fail"(0)
+    lt rx69_pos, -1, rx69_done
+    eq rx69_pos, -1, rx69_fail
     jump $I10
-  rx72_done:
-    rx72_cur."!cursor_fail"()
-    rx72_cur."!cursor_debug"("FAIL  ", "arglist")
-    .return (rx72_cur)
+  rx69_done:
+    rx69_cur."!cursor_fail"()
+    rx69_cur."!cursor_debug"("FAIL  ", "arglist")
+    .return (rx69_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("23_1277356887.58177") :method
+.sub "!PREFIX__arglist"  :subid("23_1280467470.54449") :method
 .annotate 'line', 3
-    $P74 = self."!PREFIX__!subrule"("ws", "")
-    new $P75, "ResizablePMCArray"
-    push $P75, $P74
-    .return ($P75)
+    $P71 = self."!PREFIX__!subrule"("ws", "")
+    new $P72, "ResizablePMCArray"
+    push $P72, $P71
+    .return ($P72)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "TOP"  :subid("24_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "TOP"  :subid("24_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx85_tgt
-    .local int rx85_pos
-    .local int rx85_off
-    .local int rx85_eos
-    .local int rx85_rep
-    .local pmc rx85_cur
-    (rx85_cur, rx85_pos, rx85_tgt) = self."!cursor_start"()
-    rx85_cur."!cursor_debug"("START ", "TOP")
-    .lex unicode:"$\x{a2}", rx85_cur
+    .local string rx81_tgt
+    .local int rx81_pos
+    .local int rx81_off
+    .local int rx81_eos
+    .local int rx81_rep
+    .local pmc rx81_cur
+    (rx81_cur, rx81_pos, rx81_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx81_cur
     .local pmc match
     .lex "$/", match
-    length rx85_eos, rx85_tgt
-    gt rx85_pos, rx85_eos, rx85_done
-    set rx85_off, 0
-    lt rx85_pos, 2, rx85_start
-    sub rx85_off, rx85_pos, 1
-    substr rx85_tgt, rx85_tgt, rx85_off
-  rx85_start:
+    length rx81_eos, rx81_tgt
+    gt rx81_pos, rx81_eos, rx81_done
+    set rx81_off, 0
+    lt rx81_pos, 2, rx81_start
+    sub rx81_off, rx81_pos, 1
+    substr rx81_tgt, rx81_tgt, rx81_off
+  rx81_start:
+    eq $I10, 1, rx81_restart
+    rx81_cur."!cursor_debug"("START ", "TOP")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan89_done
-    goto rxscan89_scan
-  rxscan89_loop:
-    ($P10) = rx85_cur."from"()
+    ne $I10, -1, rxscan85_done
+    goto rxscan85_scan
+  rxscan85_loop:
+    ($P10) = rx81_cur."from"()
     inc $P10
-    set rx85_pos, $P10
-    ge rx85_pos, rx85_eos, rxscan89_done
-  rxscan89_scan:
-    set_addr $I10, rxscan89_loop
-    rx85_cur."!mark_push"(0, rx85_pos, $I10)
-  rxscan89_done:
+    set rx81_pos, $P10
+    ge rx81_pos, rx81_eos, rxscan85_done
+  rxscan85_scan:
+    set_addr $I10, rxscan85_loop
+    rx81_cur."!mark_push"(0, rx81_pos, $I10)
+  rxscan85_done:
 .annotate 'line', 25
   # rx subrule "nibbler" subtype=capture negate=
-    rx85_cur."!cursor_pos"(rx85_pos)
-    $P10 = rx85_cur."nibbler"()
-    unless $P10, rx85_fail
-    rx85_cur."!mark_push"(0, -1, 0, $P10)
+    rx81_cur."!cursor_pos"(rx81_pos)
+    $P10 = rx81_cur."nibbler"()
+    unless $P10, rx81_fail
+    rx81_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("nibbler")
-    rx85_pos = $P10."pos"()
-  alt90_0:
+    rx81_pos = $P10."pos"()
+  alt86_0:
 .annotate 'line', 26
-    set_addr $I10, alt90_1
-    rx85_cur."!mark_push"(0, rx85_pos, $I10)
+    set_addr $I10, alt86_1
+    rx81_cur."!mark_push"(0, rx81_pos, $I10)
   # rxanchor eos
-    ne rx85_pos, rx85_eos, rx85_fail
-    goto alt90_end
-  alt90_1:
+    ne rx81_pos, rx81_eos, rx81_fail
+    goto alt86_end
+  alt86_1:
   # rx subrule "panic" subtype=method negate=
-    rx85_cur."!cursor_pos"(rx85_pos)
-    $P10 = rx85_cur."panic"("Confused")
-    unless $P10, rx85_fail
-    rx85_pos = $P10."pos"()
-  alt90_end:
+    rx81_cur."!cursor_pos"(rx81_pos)
+    $P10 = rx81_cur."panic"("Confused")
+    unless $P10, rx81_fail
+    rx81_pos = $P10."pos"()
+  alt86_end:
 .annotate 'line', 24
   # rx pass
-    rx85_cur."!cursor_pass"(rx85_pos, "TOP")
-    rx85_cur."!cursor_debug"("PASS  ", "TOP", " at pos=", rx85_pos)
-    .return (rx85_cur)
-  rx85_fail:
+    rx81_cur."!cursor_pass"(rx81_pos, "TOP")
+    rx81_cur."!cursor_debug"("PASS  ", "TOP", " at pos=", rx81_pos)
+    .return (rx81_cur)
+  rx81_restart:
 .annotate 'line', 3
-    (rx85_rep, rx85_pos, $I10, $P10) = rx85_cur."!mark_fail"(0)
-    lt rx85_pos, -1, rx85_done
-    eq rx85_pos, -1, rx85_fail
+    rx81_cur."!cursor_debug"("NEXT ", "TOP")
+  rx81_fail:
+    (rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0)
+    lt rx81_pos, -1, rx81_done
+    eq rx81_pos, -1, rx81_fail
     jump $I10
-  rx85_done:
-    rx85_cur."!cursor_fail"()
-    rx85_cur."!cursor_debug"("FAIL  ", "TOP")
-    .return (rx85_cur)
+  rx81_done:
+    rx81_cur."!cursor_fail"()
+    rx81_cur."!cursor_debug"("FAIL  ", "TOP")
+    .return (rx81_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__TOP"  :subid("25_1277356887.58177") :method
+.sub "!PREFIX__TOP"  :subid("25_1280467470.54449") :method
 .annotate 'line', 3
-    $P87 = self."!PREFIX__!subrule"("nibbler", "")
-    new $P88, "ResizablePMCArray"
-    push $P88, $P87
-    .return ($P88)
+    $P83 = self."!PREFIX__!subrule"("nibbler", "")
+    new $P84, "ResizablePMCArray"
+    push $P84, $P83
+    .return ($P84)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "nibbler"  :subid("26_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "nibbler"  :subid("26_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx92_tgt
-    .local int rx92_pos
-    .local int rx92_off
-    .local int rx92_eos
-    .local int rx92_rep
-    .local pmc rx92_cur
-    (rx92_cur, rx92_pos, rx92_tgt) = self."!cursor_start"()
-    rx92_cur."!cursor_debug"("START ", "nibbler")
-    rx92_cur."!cursor_caparray"("termish")
-    .lex unicode:"$\x{a2}", rx92_cur
+    .local string rx88_tgt
+    .local int rx88_pos
+    .local int rx88_off
+    .local int rx88_eos
+    .local int rx88_rep
+    .local pmc rx88_cur
+    (rx88_cur, rx88_pos, rx88_tgt, $I10) = self."!cursor_start"()
+    rx88_cur."!cursor_caparray"("termish")
+    .lex unicode:"$\x{a2}", rx88_cur
     .local pmc match
     .lex "$/", match
-    length rx92_eos, rx92_tgt
-    gt rx92_pos, rx92_eos, rx92_done
-    set rx92_off, 0
-    lt rx92_pos, 2, rx92_start
-    sub rx92_off, rx92_pos, 1
-    substr rx92_tgt, rx92_tgt, rx92_off
-  rx92_start:
+    length rx88_eos, rx88_tgt
+    gt rx88_pos, rx88_eos, rx88_done
+    set rx88_off, 0
+    lt rx88_pos, 2, rx88_start
+    sub rx88_off, rx88_pos, 1
+    substr rx88_tgt, rx88_tgt, rx88_off
+  rx88_start:
+    eq $I10, 1, rx88_restart
+    rx88_cur."!cursor_debug"("START ", "nibbler")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan95_done
-    goto rxscan95_scan
-  rxscan95_loop:
-    ($P10) = rx92_cur."from"()
+    ne $I10, -1, rxscan91_done
+    goto rxscan91_scan
+  rxscan91_loop:
+    ($P10) = rx88_cur."from"()
     inc $P10
-    set rx92_pos, $P10
-    ge rx92_pos, rx92_eos, rxscan95_done
-  rxscan95_scan:
-    set_addr $I10, rxscan95_loop
-    rx92_cur."!mark_push"(0, rx92_pos, $I10)
-  rxscan95_done:
+    set rx88_pos, $P10
+    ge rx88_pos, rx88_eos, rxscan91_done
+  rxscan91_scan:
+    set_addr $I10, rxscan91_loop
+    rx88_cur."!mark_push"(0, rx88_pos, $I10)
+  rxscan91_done:
 .annotate 'line', 30
   # rx reduce name="nibbler" key="open"
-    rx92_cur."!cursor_pos"(rx92_pos)
-    rx92_cur."!reduce"("nibbler", "open")
+    rx88_cur."!cursor_pos"(rx88_pos)
+    rx88_cur."!reduce"("nibbler", "open")
 .annotate 'line', 31
-  # rx rxquantr96 ** 0..1
-    set_addr $I98, rxquantr96_done
-    rx92_cur."!mark_push"(0, rx92_pos, $I98)
-  rxquantr96_loop:
+  # rx rxquantr92 ** 0..1
+    set_addr $I10, rxquantr92_done
+    rx88_cur."!mark_push"(0, rx88_pos, $I10)
+  rxquantr92_loop:
   # rx subrule "ws" subtype=method negate=
-    rx92_cur."!cursor_pos"(rx92_pos)
-    $P10 = rx92_cur."ws"()
-    unless $P10, rx92_fail
-    rx92_pos = $P10."pos"()
-  alt97_0:
-    set_addr $I10, alt97_1
-    rx92_cur."!mark_push"(0, rx92_pos, $I10)
+    rx88_cur."!cursor_pos"(rx88_pos)
+    $P10 = rx88_cur."ws"()
+    unless $P10, rx88_fail
+    rx88_pos = $P10."pos"()
+  alt93_0:
+    set_addr $I10, alt93_1
+    rx88_cur."!mark_push"(0, rx88_pos, $I10)
   # rx literal  "||"
-    add $I11, rx92_pos, 2
-    gt $I11, rx92_eos, rx92_fail
-    sub $I11, rx92_pos, rx92_off
-    substr $S10, rx92_tgt, $I11, 2
-    ne $S10, "||", rx92_fail
-    add rx92_pos, 2
-    goto alt97_end
-  alt97_1:
-    set_addr $I10, alt97_2
-    rx92_cur."!mark_push"(0, rx92_pos, $I10)
+    add $I11, rx88_pos, 2
+    gt $I11, rx88_eos, rx88_fail
+    sub $I11, rx88_pos, rx88_off
+    substr $S10, rx88_tgt, $I11, 2
+    ne $S10, "||", rx88_fail
+    add rx88_pos, 2
+    goto alt93_end
+  alt93_1:
+    set_addr $I10, alt93_2
+    rx88_cur."!mark_push"(0, rx88_pos, $I10)
   # rx literal  "|"
-    add $I11, rx92_pos, 1
-    gt $I11, rx92_eos, rx92_fail
-    sub $I11, rx92_pos, rx92_off
-    substr $S10, rx92_tgt, $I11, 1
-    ne $S10, "|", rx92_fail
-    add rx92_pos, 1
-    goto alt97_end
-  alt97_2:
-    set_addr $I10, alt97_3
-    rx92_cur."!mark_push"(0, rx92_pos, $I10)
+    add $I11, rx88_pos, 1
+    gt $I11, rx88_eos, rx88_fail
+    sub $I11, rx88_pos, rx88_off
+    substr $S10, rx88_tgt, $I11, 1
+    ne $S10, "|", rx88_fail
+    add rx88_pos, 1
+    goto alt93_end
+  alt93_2:
+    set_addr $I10, alt93_3
+    rx88_cur."!mark_push"(0, rx88_pos, $I10)
   # rx literal  "&&"
-    add $I11, rx92_pos, 2
-    gt $I11, rx92_eos, rx92_fail
-    sub $I11, rx92_pos, rx92_off
-    substr $S10, rx92_tgt, $I11, 2
-    ne $S10, "&&", rx92_fail
-    add rx92_pos, 2
-    goto alt97_end
-  alt97_3:
+    add $I11, rx88_pos, 2
+    gt $I11, rx88_eos, rx88_fail
+    sub $I11, rx88_pos, rx88_off
+    substr $S10, rx88_tgt, $I11, 2
+    ne $S10, "&&", rx88_fail
+    add rx88_pos, 2
+    goto alt93_end
+  alt93_3:
   # rx literal  "&"
-    add $I11, rx92_pos, 1
-    gt $I11, rx92_eos, rx92_fail
-    sub $I11, rx92_pos, rx92_off
-    substr $S10, rx92_tgt, $I11, 1
-    ne $S10, "&", rx92_fail
-    add rx92_pos, 1
-  alt97_end:
-    (rx92_rep) = rx92_cur."!mark_commit"($I98)
-  rxquantr96_done:
+    add $I11, rx88_pos, 1
+    gt $I11, rx88_eos, rx88_fail
+    sub $I11, rx88_pos, rx88_off
+    substr $S10, rx88_tgt, $I11, 1
+    ne $S10, "&", rx88_fail
+    add rx88_pos, 1
+  alt93_end:
+    set_addr $I10, rxquantr92_done
+    (rx88_rep) = rx88_cur."!mark_commit"($I10)
+  rxquantr92_done:
 .annotate 'line', 32
   # rx subrule "termish" subtype=capture negate=
-    rx92_cur."!cursor_pos"(rx92_pos)
-    $P10 = rx92_cur."termish"()
-    unless $P10, rx92_fail
-    rx92_cur."!mark_push"(0, -1, 0, $P10)
+    rx88_cur."!cursor_pos"(rx88_pos)
+    $P10 = rx88_cur."termish"()
+    unless $P10, rx88_fail
+    rx88_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("termish")
-    rx92_pos = $P10."pos"()
+    rx88_pos = $P10."pos"()
 .annotate 'line', 35
-  # rx rxquantr99 ** 0..*
-    set_addr $I102, rxquantr99_done
-    rx92_cur."!mark_push"(0, rx92_pos, $I102)
-  rxquantr99_loop:
-  alt100_0:
+  # 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, alt100_1
-    rx92_cur."!mark_push"(0, rx92_pos, $I10)
+    set_addr $I10, alt95_1
+    rx88_cur."!mark_push"(0, rx88_pos, $I10)
   # rx literal  "||"
-    add $I11, rx92_pos, 2
-    gt $I11, rx92_eos, rx92_fail
-    sub $I11, rx92_pos, rx92_off
-    substr $S10, rx92_tgt, $I11, 2
-    ne $S10, "||", rx92_fail
-    add rx92_pos, 2
-    goto alt100_end
-  alt100_1:
+    add $I11, rx88_pos, 2
+    gt $I11, rx88_eos, rx88_fail
+    sub $I11, rx88_pos, rx88_off
+    substr $S10, rx88_tgt, $I11, 2
+    ne $S10, "||", rx88_fail
+    add rx88_pos, 2
+    goto alt95_end
+  alt95_1:
   # rx literal  "|"
-    add $I11, rx92_pos, 1
-    gt $I11, rx92_eos, rx92_fail
-    sub $I11, rx92_pos, rx92_off
-    substr $S10, rx92_tgt, $I11, 1
-    ne $S10, "|", rx92_fail
-    add rx92_pos, 1
-  alt100_end:
-  alt101_0:
+    add $I11, rx88_pos, 1
+    gt $I11, rx88_eos, rx88_fail
+    sub $I11, rx88_pos, rx88_off
+    substr $S10, rx88_tgt, $I11, 1
+    ne $S10, "|", rx88_fail
+    add rx88_pos, 1
+  alt95_end:
+  alt96_0:
 .annotate 'line', 34
-    set_addr $I10, alt101_1
-    rx92_cur."!mark_push"(0, rx92_pos, $I10)
+    set_addr $I10, alt96_1
+    rx88_cur."!mark_push"(0, rx88_pos, $I10)
   # rx subrule "termish" subtype=capture negate=
-    rx92_cur."!cursor_pos"(rx92_pos)
-    $P10 = rx92_cur."termish"()
-    unless $P10, rx92_fail
-    rx92_cur."!mark_push"(0, -1, 0, $P10)
+    rx88_cur."!cursor_pos"(rx88_pos)
+    $P10 = rx88_cur."termish"()
+    unless $P10, rx88_fail
+    rx88_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("termish")
-    rx92_pos = $P10."pos"()
-    goto alt101_end
-  alt101_1:
+    rx88_pos = $P10."pos"()
+    goto alt96_end
+  alt96_1:
   # rx subrule "panic" subtype=method negate=
-    rx92_cur."!cursor_pos"(rx92_pos)
-    $P10 = rx92_cur."panic"("Null pattern not allowed")
-    unless $P10, rx92_fail
-    rx92_pos = $P10."pos"()
-  alt101_end:
+    rx88_cur."!cursor_pos"(rx88_pos)
+    $P10 = rx88_cur."panic"("Null pattern not allowed")
+    unless $P10, rx88_fail
+    rx88_pos = $P10."pos"()
+  alt96_end:
 .annotate 'line', 35
-    (rx92_rep) = rx92_cur."!mark_commit"($I102)
-    rx92_cur."!mark_push"(rx92_rep, rx92_pos, $I102)
-    goto rxquantr99_loop
-  rxquantr99_done:
+    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
-    rx92_cur."!cursor_pass"(rx92_pos, "nibbler")
-    rx92_cur."!cursor_debug"("PASS  ", "nibbler", " at pos=", rx92_pos)
-    .return (rx92_cur)
-  rx92_fail:
+    rx88_cur."!cursor_pass"(rx88_pos, "nibbler")
+    rx88_cur."!cursor_debug"("PASS  ", "nibbler", " at pos=", rx88_pos)
+    .return (rx88_cur)
+  rx88_restart:
 .annotate 'line', 3
-    (rx92_rep, rx92_pos, $I10, $P10) = rx92_cur."!mark_fail"(0)
-    lt rx92_pos, -1, rx92_done
-    eq rx92_pos, -1, rx92_fail
+    rx88_cur."!cursor_debug"("NEXT ", "nibbler")
+  rx88_fail:
+    (rx88_rep, rx88_pos, $I10, $P10) = rx88_cur."!mark_fail"(0)
+    lt rx88_pos, -1, rx88_done
+    eq rx88_pos, -1, rx88_fail
     jump $I10
-  rx92_done:
-    rx92_cur."!cursor_fail"()
-    rx92_cur."!cursor_debug"("FAIL  ", "nibbler")
-    .return (rx92_cur)
+  rx88_done:
+    rx88_cur."!cursor_fail"()
+    rx88_cur."!cursor_debug"("FAIL  ", "nibbler")
+    .return (rx88_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__nibbler"  :subid("27_1277356887.58177") :method
+.sub "!PREFIX__nibbler"  :subid("27_1280467470.54449") :method
 .annotate 'line', 3
-    new $P94, "ResizablePMCArray"
-    push $P94, ""
-    .return ($P94)
+    new $P90, "ResizablePMCArray"
+    push $P90, ""
+    .return ($P90)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termish"  :subid("28_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "termish"  :subid("28_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx104_tgt
-    .local int rx104_pos
-    .local int rx104_off
-    .local int rx104_eos
-    .local int rx104_rep
-    .local pmc rx104_cur
-    (rx104_cur, rx104_pos, rx104_tgt) = self."!cursor_start"()
-    rx104_cur."!cursor_debug"("START ", "termish")
-    rx104_cur."!cursor_caparray"("noun")
-    .lex unicode:"$\x{a2}", rx104_cur
-    .local pmc match
-    .lex "$/", match
-    length rx104_eos, rx104_tgt
-    gt rx104_pos, rx104_eos, rx104_done
-    set rx104_off, 0
-    lt rx104_pos, 2, rx104_start
-    sub rx104_off, rx104_pos, 1
-    substr rx104_tgt, rx104_tgt, rx104_off
-  rx104_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan107_done
-    goto rxscan107_scan
-  rxscan107_loop:
-    ($P10) = rx104_cur."from"()
-    inc $P10
-    set rx104_pos, $P10
-    ge rx104_pos, rx104_eos, rxscan107_done
-  rxscan107_scan:
-    set_addr $I10, rxscan107_loop
-    rx104_cur."!mark_push"(0, rx104_pos, $I10)
-  rxscan107_done:
+    .local string rx98_tgt
+    .local int rx98_pos
+    .local int rx98_off
+    .local int rx98_eos
+    .local int rx98_rep
+    .local pmc rx98_cur
+    (rx98_cur, rx98_pos, rx98_tgt, $I10) = self."!cursor_start"()
+    rx98_cur."!cursor_caparray"("noun")
+    .lex unicode:"$\x{a2}", rx98_cur
+    .local pmc match
+    .lex "$/", match
+    length rx98_eos, rx98_tgt
+    gt rx98_pos, rx98_eos, rx98_done
+    set rx98_off, 0
+    lt rx98_pos, 2, rx98_start
+    sub rx98_off, rx98_pos, 1
+    substr rx98_tgt, rx98_tgt, rx98_off
+  rx98_start:
+    eq $I10, 1, rx98_restart
+    rx98_cur."!cursor_debug"("START ", "termish")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan101_done
+    goto rxscan101_scan
+  rxscan101_loop:
+    ($P10) = rx98_cur."from"()
+    inc $P10
+    set rx98_pos, $P10
+    ge rx98_pos, rx98_eos, rxscan101_done
+  rxscan101_scan:
+    set_addr $I10, rxscan101_loop
+    rx98_cur."!mark_push"(0, rx98_pos, $I10)
+  rxscan101_done:
 .annotate 'line', 39
-  # rx rxquantr108 ** 1..*
-    set_addr $I109, rxquantr108_done
-    rx104_cur."!mark_push"(0, -1, $I109)
-  rxquantr108_loop:
+  # rx rxquantr102 ** 1..*
+    set_addr $I10, rxquantr102_done
+    rx98_cur."!mark_push"(0, -1, $I10)
+  rxquantr102_loop:
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx104_cur."!cursor_pos"(rx104_pos)
-    $P10 = rx104_cur."quantified_atom"()
-    unless $P10, rx104_fail
-    rx104_cur."!mark_push"(0, -1, 0, $P10)
+    rx98_cur."!cursor_pos"(rx98_pos)
+    $P10 = rx98_cur."quantified_atom"()
+    unless $P10, rx98_fail
+    goto rxsubrule103_pass
+  rxsubrule103_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx98_fail
+  rxsubrule103_pass:
+    set_addr $I10, rxsubrule103_back
+    rx98_cur."!mark_push"(0, rx98_pos, $I10, $P10)
     $P10."!cursor_names"("noun")
-    rx104_pos = $P10."pos"()
-    (rx104_rep) = rx104_cur."!mark_commit"($I109)
-    rx104_cur."!mark_push"(rx104_rep, rx104_pos, $I109)
-    goto rxquantr108_loop
-  rxquantr108_done:
+    rx98_pos = $P10."pos"()
+    set_addr $I10, rxquantr102_done
+    (rx98_rep) = rx98_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr102_done
+    rx98_cur."!mark_push"(rx98_rep, rx98_pos, $I10)
+    goto rxquantr102_loop
+  rxquantr102_done:
 .annotate 'line', 38
   # rx pass
-    rx104_cur."!cursor_pass"(rx104_pos, "termish")
-    rx104_cur."!cursor_debug"("PASS  ", "termish", " at pos=", rx104_pos)
-    .return (rx104_cur)
-  rx104_fail:
+    rx98_cur."!cursor_pass"(rx98_pos, "termish")
+    rx98_cur."!cursor_debug"("PASS  ", "termish", " at pos=", rx98_pos)
+    .return (rx98_cur)
+  rx98_restart:
 .annotate 'line', 3
-    (rx104_rep, rx104_pos, $I10, $P10) = rx104_cur."!mark_fail"(0)
-    lt rx104_pos, -1, rx104_done
-    eq rx104_pos, -1, rx104_fail
+    rx98_cur."!cursor_debug"("NEXT ", "termish")
+  rx98_fail:
+    (rx98_rep, rx98_pos, $I10, $P10) = rx98_cur."!mark_fail"(0)
+    lt rx98_pos, -1, rx98_done
+    eq rx98_pos, -1, rx98_fail
     jump $I10
-  rx104_done:
-    rx104_cur."!cursor_fail"()
-    rx104_cur."!cursor_debug"("FAIL  ", "termish")
-    .return (rx104_cur)
+  rx98_done:
+    rx98_cur."!cursor_fail"()
+    rx98_cur."!cursor_debug"("FAIL  ", "termish")
+    .return (rx98_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__termish"  :subid("29_1277356887.58177") :method
+.sub "!PREFIX__termish"  :subid("29_1280467470.54449") :method
 .annotate 'line', 3
-    new $P106, "ResizablePMCArray"
-    push $P106, ""
-    .return ($P106)
+    new $P100, "ResizablePMCArray"
+    push $P100, ""
+    .return ($P100)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantified_atom"  :subid("30_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "quantified_atom"  :subid("30_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .const 'Sub' $P119 = "32_1277356887.58177" 
-    capture_lex $P119
-    .local string rx111_tgt
-    .local int rx111_pos
-    .local int rx111_off
-    .local int rx111_eos
-    .local int rx111_rep
-    .local pmc rx111_cur
-    (rx111_cur, rx111_pos, rx111_tgt) = self."!cursor_start"()
-    rx111_cur."!cursor_debug"("START ", "quantified_atom")
-    rx111_cur."!cursor_caparray"("quantifier", "backmod")
-    .lex unicode:"$\x{a2}", rx111_cur
+    .const 'Sub' $P113 = "32_1280467470.54449" 
+    capture_lex $P113
+    .local string rx105_tgt
+    .local int rx105_pos
+    .local int rx105_off
+    .local int rx105_eos
+    .local int rx105_rep
+    .local pmc rx105_cur
+    (rx105_cur, rx105_pos, rx105_tgt, $I10) = self."!cursor_start"()
+    rx105_cur."!cursor_caparray"("quantifier", "backmod")
+    .lex unicode:"$\x{a2}", rx105_cur
     .local pmc match
     .lex "$/", match
-    length rx111_eos, rx111_tgt
-    gt rx111_pos, rx111_eos, rx111_done
-    set rx111_off, 0
-    lt rx111_pos, 2, rx111_start
-    sub rx111_off, rx111_pos, 1
-    substr rx111_tgt, rx111_tgt, rx111_off
-  rx111_start:
+    length rx105_eos, rx105_tgt
+    gt rx105_pos, rx105_eos, rx105_done
+    set rx105_off, 0
+    lt rx105_pos, 2, rx105_start
+    sub rx105_off, rx105_pos, 1
+    substr rx105_tgt, rx105_tgt, rx105_off
+  rx105_start:
+    eq $I10, 1, rx105_restart
+    rx105_cur."!cursor_debug"("START ", "quantified_atom")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan115_done
-    goto rxscan115_scan
-  rxscan115_loop:
-    ($P10) = rx111_cur."from"()
+    ne $I10, -1, rxscan109_done
+    goto rxscan109_scan
+  rxscan109_loop:
+    ($P10) = rx105_cur."from"()
     inc $P10
-    set rx111_pos, $P10
-    ge rx111_pos, rx111_eos, rxscan115_done
-  rxscan115_scan:
-    set_addr $I10, rxscan115_loop
-    rx111_cur."!mark_push"(0, rx111_pos, $I10)
-  rxscan115_done:
+    set rx105_pos, $P10
+    ge rx105_pos, rx105_eos, rxscan109_done
+  rxscan109_scan:
+    set_addr $I10, rxscan109_loop
+    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+  rxscan109_done:
 .annotate 'line', 43
   # rx subrule "atom" subtype=capture negate=
-    rx111_cur."!cursor_pos"(rx111_pos)
-    $P10 = rx111_cur."atom"()
-    unless $P10, rx111_fail
-    rx111_cur."!mark_push"(0, -1, 0, $P10)
+    rx105_cur."!cursor_pos"(rx105_pos)
+    $P10 = rx105_cur."atom"()
+    unless $P10, rx105_fail
+    rx105_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("atom")
-    rx111_pos = $P10."pos"()
-  # rx rxquantr116 ** 0..1
-    set_addr $I122, rxquantr116_done
-    rx111_cur."!mark_push"(0, rx111_pos, $I122)
-  rxquantr116_loop:
+    rx105_pos = $P10."pos"()
+  # rx rxquantr110 ** 0..1
+    set_addr $I10, rxquantr110_done
+    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+  rxquantr110_loop:
   # rx subrule "ws" subtype=method negate=
-    rx111_cur."!cursor_pos"(rx111_pos)
-    $P10 = rx111_cur."ws"()
-    unless $P10, rx111_fail
-    rx111_pos = $P10."pos"()
-  alt117_0:
-    set_addr $I10, alt117_1
-    rx111_cur."!mark_push"(0, rx111_pos, $I10)
+    rx105_cur."!cursor_pos"(rx105_pos)
+    $P10 = rx105_cur."ws"()
+    unless $P10, rx105_fail
+    rx105_pos = $P10."pos"()
+  alt111_0:
+    set_addr $I10, alt111_1
+    rx105_cur."!mark_push"(0, rx105_pos, $I10)
   # rx subrule "quantifier" subtype=capture negate=
-    rx111_cur."!cursor_pos"(rx111_pos)
-    $P10 = rx111_cur."quantifier"()
-    unless $P10, rx111_fail
-    rx111_cur."!mark_push"(0, -1, 0, $P10)
+    rx105_cur."!cursor_pos"(rx105_pos)
+    $P10 = rx105_cur."quantifier"()
+    unless $P10, rx105_fail
+    rx105_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quantifier")
-    rx111_pos = $P10."pos"()
-    goto alt117_end
-  alt117_1:
+    rx105_pos = $P10."pos"()
+    goto alt111_end
+  alt111_1:
   # rx subrule "before" subtype=zerowidth negate=
-    rx111_cur."!cursor_pos"(rx111_pos)
-    .const 'Sub' $P119 = "32_1277356887.58177" 
-    capture_lex $P119
-    $P10 = rx111_cur."before"($P119)
-    unless $P10, rx111_fail
+    rx105_cur."!cursor_pos"(rx105_pos)
+    .const 'Sub' $P113 = "32_1280467470.54449" 
+    capture_lex $P113
+    $P10 = rx105_cur."before"($P113)
+    unless $P10, rx105_fail
   # rx subrule "backmod" subtype=capture negate=
-    rx111_cur."!cursor_pos"(rx111_pos)
-    $P10 = rx111_cur."backmod"()
-    unless $P10, rx111_fail
-    rx111_cur."!mark_push"(0, -1, 0, $P10)
+    rx105_cur."!cursor_pos"(rx105_pos)
+    $P10 = rx105_cur."backmod"()
+    unless $P10, rx105_fail
+    rx105_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backmod")
-    rx111_pos = $P10."pos"()
+    rx105_pos = $P10."pos"()
   # rx subrule "alpha" subtype=zerowidth negate=1
-    rx111_cur."!cursor_pos"(rx111_pos)
-    $P10 = rx111_cur."alpha"()
-    if $P10, rx111_fail
-  alt117_end:
-    (rx111_rep) = rx111_cur."!mark_commit"($I122)
-  rxquantr116_done:
+    rx105_cur."!cursor_pos"(rx105_pos)
+    $P10 = rx105_cur."alpha"()
+    if $P10, rx105_fail
+  alt111_end:
+    set_addr $I10, rxquantr110_done
+    (rx105_rep) = rx105_cur."!mark_commit"($I10)
+  rxquantr110_done:
 .annotate 'line', 42
   # rx pass
-    rx111_cur."!cursor_pass"(rx111_pos, "quantified_atom")
-    rx111_cur."!cursor_debug"("PASS  ", "quantified_atom", " at pos=", rx111_pos)
-    .return (rx111_cur)
-  rx111_fail:
+    rx105_cur."!cursor_pass"(rx105_pos, "quantified_atom")
+    rx105_cur."!cursor_debug"("PASS  ", "quantified_atom", " at pos=", rx105_pos)
+    .return (rx105_cur)
+  rx105_restart:
 .annotate 'line', 3
-    (rx111_rep, rx111_pos, $I10, $P10) = rx111_cur."!mark_fail"(0)
-    lt rx111_pos, -1, rx111_done
-    eq rx111_pos, -1, rx111_fail
+    rx105_cur."!cursor_debug"("NEXT ", "quantified_atom")
+  rx105_fail:
+    (rx105_rep, rx105_pos, $I10, $P10) = rx105_cur."!mark_fail"(0)
+    lt rx105_pos, -1, rx105_done
+    eq rx105_pos, -1, rx105_fail
     jump $I10
-  rx111_done:
-    rx111_cur."!cursor_fail"()
-    rx111_cur."!cursor_debug"("FAIL  ", "quantified_atom")
-    .return (rx111_cur)
+  rx105_done:
+    rx105_cur."!cursor_fail"()
+    rx105_cur."!cursor_debug"("FAIL  ", "quantified_atom")
+    .return (rx105_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantified_atom"  :subid("31_1277356887.58177") :method
+.sub "!PREFIX__quantified_atom"  :subid("31_1280467470.54449") :method
 .annotate 'line', 3
-    $P113 = self."!PREFIX__!subrule"("atom", "")
-    new $P114, "ResizablePMCArray"
-    push $P114, $P113
-    .return ($P114)
+    $P107 = self."!PREFIX__!subrule"("atom", "")
+    new $P108, "ResizablePMCArray"
+    push $P108, $P107
+    .return ($P108)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block118"  :anon :subid("32_1277356887.58177") :method :outer("30_1277356887.58177")
+.sub "_block112"  :anon :subid("32_1280467470.54449") :method :outer("30_1280467470.54449")
 .annotate 'line', 43
-    .local string rx120_tgt
-    .local int rx120_pos
-    .local int rx120_off
-    .local int rx120_eos
-    .local int rx120_rep
-    .local pmc rx120_cur
-    (rx120_cur, rx120_pos, rx120_tgt) = self."!cursor_start"()
-    rx120_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx120_cur
-    .local pmc match
-    .lex "$/", match
-    length rx120_eos, rx120_tgt
-    gt rx120_pos, rx120_eos, rx120_done
-    set rx120_off, 0
-    lt rx120_pos, 2, rx120_start
-    sub rx120_off, rx120_pos, 1
-    substr rx120_tgt, rx120_tgt, rx120_off
-  rx120_start:
+    .local string rx114_tgt
+    .local int rx114_pos
+    .local int rx114_off
+    .local int rx114_eos
+    .local int rx114_rep
+    .local pmc rx114_cur
+    (rx114_cur, rx114_pos, rx114_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx114_cur
+    .local pmc match
+    .lex "$/", match
+    length rx114_eos, rx114_tgt
+    gt rx114_pos, rx114_eos, rx114_done
+    set rx114_off, 0
+    lt rx114_pos, 2, rx114_start
+    sub rx114_off, rx114_pos, 1
+    substr rx114_tgt, rx114_tgt, rx114_off
+  rx114_start:
+    eq $I10, 1, rx114_restart
+    rx114_cur."!cursor_debug"("START ", "")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan121_done
-    goto rxscan121_scan
-  rxscan121_loop:
-    ($P10) = rx120_cur."from"()
+    ne $I10, -1, rxscan115_done
+    goto rxscan115_scan
+  rxscan115_loop:
+    ($P10) = rx114_cur."from"()
     inc $P10
-    set rx120_pos, $P10
-    ge rx120_pos, rx120_eos, rxscan121_done
-  rxscan121_scan:
-    set_addr $I10, rxscan121_loop
-    rx120_cur."!mark_push"(0, rx120_pos, $I10)
-  rxscan121_done:
+    set rx114_pos, $P10
+    ge rx114_pos, rx114_eos, rxscan115_done
+  rxscan115_scan:
+    set_addr $I10, rxscan115_loop
+    rx114_cur."!mark_push"(0, rx114_pos, $I10)
+  rxscan115_done:
   # rx literal  ":"
-    add $I11, rx120_pos, 1
-    gt $I11, rx120_eos, rx120_fail
-    sub $I11, rx120_pos, rx120_off
-    substr $S10, rx120_tgt, $I11, 1
-    ne $S10, ":", rx120_fail
-    add rx120_pos, 1
-  # rx pass
-    rx120_cur."!cursor_pass"(rx120_pos, "")
-    rx120_cur."!cursor_debug"("PASS  ", "", " at pos=", rx120_pos)
-    .return (rx120_cur)
-  rx120_fail:
-    (rx120_rep, rx120_pos, $I10, $P10) = rx120_cur."!mark_fail"(0)
-    lt rx120_pos, -1, rx120_done
-    eq rx120_pos, -1, rx120_fail
-    jump $I10
-  rx120_done:
-    rx120_cur."!cursor_fail"()
-    rx120_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx120_cur)
+    add $I11, rx114_pos, 1
+    gt $I11, rx114_eos, rx114_fail
+    sub $I11, rx114_pos, rx114_off
+    substr $S10, rx114_tgt, $I11, 1
+    ne $S10, ":", rx114_fail
+    add rx114_pos, 1
+  # rx pass
+    rx114_cur."!cursor_pass"(rx114_pos, "")
+    rx114_cur."!cursor_debug"("PASS  ", "", " at pos=", rx114_pos)
+    .return (rx114_cur)
+  rx114_restart:
+    rx114_cur."!cursor_debug"("NEXT ", "")
+  rx114_fail:
+    (rx114_rep, rx114_pos, $I10, $P10) = rx114_cur."!mark_fail"(0)
+    lt rx114_pos, -1, rx114_done
+    eq rx114_pos, -1, rx114_fail
+    jump $I10
+  rx114_done:
+    rx114_cur."!cursor_fail"()
+    rx114_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx114_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "atom"  :subid("33_1277356887.58177") :method :outer("11_1277356887.58177")
-.annotate 'line', 3
-    .const 'Sub' $P134 = "35_1277356887.58177" 
-    capture_lex $P134
-    .local string rx124_tgt
-    .local int rx124_pos
-    .local int rx124_off
-    .local int rx124_eos
-    .local int rx124_rep
-    .local pmc rx124_cur
-    (rx124_cur, rx124_pos, rx124_tgt) = self."!cursor_start"()
-    rx124_cur."!cursor_debug"("START ", "atom")
-    .lex unicode:"$\x{a2}", rx124_cur
-    .local pmc match
-    .lex "$/", match
-    length rx124_eos, rx124_tgt
-    gt rx124_pos, rx124_eos, rx124_done
-    set rx124_off, 0
-    lt rx124_pos, 2, rx124_start
-    sub rx124_off, rx124_pos, 1
-    substr rx124_tgt, rx124_tgt, rx124_off
-  rx124_start:
+.sub "atom"  :subid("33_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+    .const 'Sub' $P126 = "35_1280467470.54449" 
+    capture_lex $P126
+    .local string rx117_tgt
+    .local int rx117_pos
+    .local int rx117_off
+    .local int rx117_eos
+    .local int rx117_rep
+    .local pmc rx117_cur
+    (rx117_cur, rx117_pos, rx117_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx117_cur
+    .local pmc match
+    .lex "$/", match
+    length rx117_eos, rx117_tgt
+    gt rx117_pos, rx117_eos, rx117_done
+    set rx117_off, 0
+    lt rx117_pos, 2, rx117_start
+    sub rx117_off, rx117_pos, 1
+    substr rx117_tgt, rx117_tgt, rx117_off
+  rx117_start:
+    eq $I10, 1, rx117_restart
+    rx117_cur."!cursor_debug"("START ", "atom")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan128_done
-    goto rxscan128_scan
-  rxscan128_loop:
-    ($P10) = rx124_cur."from"()
+    ne $I10, -1, rxscan121_done
+    goto rxscan121_scan
+  rxscan121_loop:
+    ($P10) = rx117_cur."from"()
     inc $P10
-    set rx124_pos, $P10
-    ge rx124_pos, rx124_eos, rxscan128_done
-  rxscan128_scan:
-    set_addr $I10, rxscan128_loop
-    rx124_cur."!mark_push"(0, rx124_pos, $I10)
-  rxscan128_done:
-  alt129_0:
+    set rx117_pos, $P10
+    ge rx117_pos, rx117_eos, rxscan121_done
+  rxscan121_scan:
+    set_addr $I10, rxscan121_loop
+    rx117_cur."!mark_push"(0, rx117_pos, $I10)
+  rxscan121_done:
+  alt122_0:
 .annotate 'line', 48
-    set_addr $I10, alt129_1
-    rx124_cur."!mark_push"(0, rx124_pos, $I10)
+    set_addr $I10, alt122_1
+    rx117_cur."!mark_push"(0, rx117_pos, $I10)
 .annotate 'line', 49
   # rx charclass w
-    ge rx124_pos, rx124_eos, rx124_fail
-    sub $I10, rx124_pos, rx124_off
-    is_cclass $I11, 8192, rx124_tgt, $I10
-    unless $I11, rx124_fail
-    inc rx124_pos
-  # rx rxquantr130 ** 0..1
-    set_addr $I137, rxquantr130_done
-    rx124_cur."!mark_push"(0, rx124_pos, $I137)
-  rxquantr130_loop:
-  # rx rxquantg131 ** 1..*
-    set_addr $I132, rxquantg131_done
-  rxquantg131_loop:
+    ge rx117_pos, rx117_eos, rx117_fail
+    sub $I10, rx117_pos, rx117_off
+    is_cclass $I11, 8192, rx117_tgt, $I10
+    unless $I11, rx117_fail
+    inc rx117_pos
+  # rx rxquantr123 ** 0..1
+    set_addr $I10, rxquantr123_done
+    rx117_cur."!mark_push"(0, rx117_pos, $I10)
+  rxquantr123_loop:
+  # rx rxquantg124 ** 1..*
+  rxquantg124_loop:
   # rx charclass w
-    ge rx124_pos, rx124_eos, rx124_fail
-    sub $I10, rx124_pos, rx124_off
-    is_cclass $I11, 8192, rx124_tgt, $I10
-    unless $I11, rx124_fail
-    inc rx124_pos
-    rx124_cur."!mark_push"(rx124_rep, rx124_pos, $I132)
-    goto rxquantg131_loop
-  rxquantg131_done:
+    ge rx117_pos, rx117_eos, rx117_fail
+    sub $I10, rx117_pos, rx117_off
+    is_cclass $I11, 8192, rx117_tgt, $I10
+    unless $I11, rx117_fail
+    inc rx117_pos
+    set_addr $I10, rxquantg124_done
+    rx117_cur."!mark_push"(rx117_rep, rx117_pos, $I10)
+    goto rxquantg124_loop
+  rxquantg124_done:
   # rx subrule "before" subtype=zerowidth negate=
-    rx124_cur."!cursor_pos"(rx124_pos)
-    .const 'Sub' $P134 = "35_1277356887.58177" 
-    capture_lex $P134
-    $P10 = rx124_cur."before"($P134)
-    unless $P10, rx124_fail
-    (rx124_rep) = rx124_cur."!mark_commit"($I137)
-  rxquantr130_done:
-    goto alt129_end
-  alt129_1:
+    rx117_cur."!cursor_pos"(rx117_pos)
+    .const 'Sub' $P126 = "35_1280467470.54449" 
+    capture_lex $P126
+    $P10 = rx117_cur."before"($P126)
+    unless $P10, rx117_fail
+    set_addr $I10, rxquantr123_done
+    (rx117_rep) = rx117_cur."!mark_commit"($I10)
+  rxquantr123_done:
+    goto alt122_end
+  alt122_1:
 .annotate 'line', 50
   # rx subrule "metachar" subtype=capture negate=
-    rx124_cur."!cursor_pos"(rx124_pos)
-    $P10 = rx124_cur."metachar"()
-    unless $P10, rx124_fail
-    rx124_cur."!mark_push"(0, -1, 0, $P10)
+    rx117_cur."!cursor_pos"(rx117_pos)
+    $P10 = rx117_cur."metachar"()
+    unless $P10, rx117_fail
+    rx117_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("metachar")
-    rx124_pos = $P10."pos"()
-  alt129_end:
+    rx117_pos = $P10."pos"()
+  alt122_end:
 .annotate 'line', 46
   # rx pass
-    rx124_cur."!cursor_pass"(rx124_pos, "atom")
-    rx124_cur."!cursor_debug"("PASS  ", "atom", " at pos=", rx124_pos)
-    .return (rx124_cur)
-  rx124_fail:
+    rx117_cur."!cursor_pass"(rx117_pos, "atom")
+    rx117_cur."!cursor_debug"("PASS  ", "atom", " at pos=", rx117_pos)
+    .return (rx117_cur)
+  rx117_restart:
 .annotate 'line', 3
-    (rx124_rep, rx124_pos, $I10, $P10) = rx124_cur."!mark_fail"(0)
-    lt rx124_pos, -1, rx124_done
-    eq rx124_pos, -1, rx124_fail
+    rx117_cur."!cursor_debug"("NEXT ", "atom")
+  rx117_fail:
+    (rx117_rep, rx117_pos, $I10, $P10) = rx117_cur."!mark_fail"(0)
+    lt rx117_pos, -1, rx117_done
+    eq rx117_pos, -1, rx117_fail
     jump $I10
-  rx124_done:
-    rx124_cur."!cursor_fail"()
-    rx124_cur."!cursor_debug"("FAIL  ", "atom")
-    .return (rx124_cur)
+  rx117_done:
+    rx117_cur."!cursor_fail"()
+    rx117_cur."!cursor_debug"("FAIL  ", "atom")
+    .return (rx117_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__atom"  :subid("34_1277356887.58177") :method
+.sub "!PREFIX__atom"  :subid("34_1280467470.54449") :method
 .annotate 'line', 3
-    $P126 = self."!PREFIX__!subrule"("metachar", "")
-    new $P127, "ResizablePMCArray"
-    push $P127, $P126
-    push $P127, ""
-    .return ($P127)
+    $P119 = self."!PREFIX__!subrule"("metachar", "")
+    new $P120, "ResizablePMCArray"
+    push $P120, $P119
+    push $P120, ""
+    .return ($P120)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block133"  :anon :subid("35_1277356887.58177") :method :outer("33_1277356887.58177")
+.sub "_block125"  :anon :subid("35_1280467470.54449") :method :outer("33_1280467470.54449")
 .annotate 'line', 49
-    .local string rx135_tgt
-    .local int rx135_pos
-    .local int rx135_off
-    .local int rx135_eos
-    .local int rx135_rep
-    .local pmc rx135_cur
-    (rx135_cur, rx135_pos, rx135_tgt) = self."!cursor_start"()
-    rx135_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx135_cur
-    .local pmc match
-    .lex "$/", match
-    length rx135_eos, rx135_tgt
-    gt rx135_pos, rx135_eos, rx135_done
-    set rx135_off, 0
-    lt rx135_pos, 2, rx135_start
-    sub rx135_off, rx135_pos, 1
-    substr rx135_tgt, rx135_tgt, rx135_off
-  rx135_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan136_done
-    goto rxscan136_scan
-  rxscan136_loop:
-    ($P10) = rx135_cur."from"()
-    inc $P10
-    set rx135_pos, $P10
-    ge rx135_pos, rx135_eos, rxscan136_done
-  rxscan136_scan:
-    set_addr $I10, rxscan136_loop
-    rx135_cur."!mark_push"(0, rx135_pos, $I10)
-  rxscan136_done:
+    .local string rx127_tgt
+    .local int rx127_pos
+    .local int rx127_off
+    .local int rx127_eos
+    .local int rx127_rep
+    .local pmc rx127_cur
+    (rx127_cur, rx127_pos, rx127_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx127_cur
+    .local pmc match
+    .lex "$/", match
+    length rx127_eos, rx127_tgt
+    gt rx127_pos, rx127_eos, rx127_done
+    set rx127_off, 0
+    lt rx127_pos, 2, rx127_start
+    sub rx127_off, rx127_pos, 1
+    substr rx127_tgt, rx127_tgt, rx127_off
+  rx127_start:
+    eq $I10, 1, rx127_restart
+    rx127_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan128_done
+    goto rxscan128_scan
+  rxscan128_loop:
+    ($P10) = rx127_cur."from"()
+    inc $P10
+    set rx127_pos, $P10
+    ge rx127_pos, rx127_eos, rxscan128_done
+  rxscan128_scan:
+    set_addr $I10, rxscan128_loop
+    rx127_cur."!mark_push"(0, rx127_pos, $I10)
+  rxscan128_done:
   # rx charclass w
-    ge rx135_pos, rx135_eos, rx135_fail
-    sub $I10, rx135_pos, rx135_off
-    is_cclass $I11, 8192, rx135_tgt, $I10
-    unless $I11, rx135_fail
-    inc rx135_pos
+    ge rx127_pos, rx127_eos, rx127_fail
+    sub $I10, rx127_pos, rx127_off
+    is_cclass $I11, 8192, rx127_tgt, $I10
+    unless $I11, rx127_fail
+    inc rx127_pos
   # rx pass
-    rx135_cur."!cursor_pass"(rx135_pos, "")
-    rx135_cur."!cursor_debug"("PASS  ", "", " at pos=", rx135_pos)
-    .return (rx135_cur)
-  rx135_fail:
-    (rx135_rep, rx135_pos, $I10, $P10) = rx135_cur."!mark_fail"(0)
-    lt rx135_pos, -1, rx135_done
-    eq rx135_pos, -1, rx135_fail
+    rx127_cur."!cursor_pass"(rx127_pos, "")
+    rx127_cur."!cursor_debug"("PASS  ", "", " at pos=", rx127_pos)
+    .return (rx127_cur)
+  rx127_restart:
+    rx127_cur."!cursor_debug"("NEXT ", "")
+  rx127_fail:
+    (rx127_rep, rx127_pos, $I10, $P10) = rx127_cur."!mark_fail"(0)
+    lt rx127_pos, -1, rx127_done
+    eq rx127_pos, -1, rx127_fail
     jump $I10
-  rx135_done:
-    rx135_cur."!cursor_fail"()
-    rx135_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx135_cur)
+  rx127_done:
+    rx127_cur."!cursor_fail"()
+    rx127_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx127_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier"  :subid("36_1277356887.58177") :method
+.sub "quantifier"  :subid("36_1280467470.54449") :method
 .annotate 'line', 54
-    $P139 = self."!protoregex"("quantifier")
-    .return ($P139)
+    $P130 = self."!protoregex"("quantifier")
+    .return ($P130)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier"  :subid("37_1277356887.58177") :method
+.sub "!PREFIX__quantifier"  :subid("37_1280467470.54449") :method
 .annotate 'line', 54
-    $P141 = self."!PREFIX__!protoregex"("quantifier")
-    .return ($P141)
+    $P132 = self."!PREFIX__!protoregex"("quantifier")
+    .return ($P132)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<*>"  :subid("38_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "quantifier:sym<*>"  :subid("38_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx143_tgt
-    .local int rx143_pos
-    .local int rx143_off
-    .local int rx143_eos
-    .local int rx143_rep
-    .local pmc rx143_cur
-    (rx143_cur, rx143_pos, rx143_tgt) = self."!cursor_start"()
-    rx143_cur."!cursor_debug"("START ", "quantifier:sym<*>")
-    .lex unicode:"$\x{a2}", rx143_cur
-    .local pmc match
-    .lex "$/", match
-    length rx143_eos, rx143_tgt
-    gt rx143_pos, rx143_eos, rx143_done
-    set rx143_off, 0
-    lt rx143_pos, 2, rx143_start
-    sub rx143_off, rx143_pos, 1
-    substr rx143_tgt, rx143_tgt, rx143_off
-  rx143_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan147_done
-    goto rxscan147_scan
-  rxscan147_loop:
-    ($P10) = rx143_cur."from"()
-    inc $P10
-    set rx143_pos, $P10
-    ge rx143_pos, rx143_eos, rxscan147_done
-  rxscan147_scan:
-    set_addr $I10, rxscan147_loop
-    rx143_cur."!mark_push"(0, rx143_pos, $I10)
-  rxscan147_done:
+    .local string rx134_tgt
+    .local int rx134_pos
+    .local int rx134_off
+    .local int rx134_eos
+    .local int rx134_rep
+    .local pmc rx134_cur
+    (rx134_cur, rx134_pos, rx134_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx134_cur
+    .local pmc match
+    .lex "$/", match
+    length rx134_eos, rx134_tgt
+    gt rx134_pos, rx134_eos, rx134_done
+    set rx134_off, 0
+    lt rx134_pos, 2, rx134_start
+    sub rx134_off, rx134_pos, 1
+    substr rx134_tgt, rx134_tgt, rx134_off
+  rx134_start:
+    eq $I10, 1, rx134_restart
+    rx134_cur."!cursor_debug"("START ", "quantifier:sym<*>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan138_done
+    goto rxscan138_scan
+  rxscan138_loop:
+    ($P10) = rx134_cur."from"()
+    inc $P10
+    set rx134_pos, $P10
+    ge rx134_pos, rx134_eos, rxscan138_done
+  rxscan138_scan:
+    set_addr $I10, rxscan138_loop
+    rx134_cur."!mark_push"(0, rx134_pos, $I10)
+  rxscan138_done:
 .annotate 'line', 55
   # rx subcapture "sym"
-    set_addr $I10, rxcap_148_fail
-    rx143_cur."!mark_push"(0, rx143_pos, $I10)
+    set_addr $I10, rxcap_139_fail
+    rx134_cur."!mark_push"(0, rx134_pos, $I10)
   # rx literal  "*"
-    add $I11, rx143_pos, 1
-    gt $I11, rx143_eos, rx143_fail
-    sub $I11, rx143_pos, rx143_off
-    substr $S10, rx143_tgt, $I11, 1
-    ne $S10, "*", rx143_fail
-    add rx143_pos, 1
-    set_addr $I10, rxcap_148_fail
-    ($I12, $I11) = rx143_cur."!mark_peek"($I10)
-    rx143_cur."!cursor_pos"($I11)
-    ($P10) = rx143_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx143_pos, "")
-    rx143_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx134_pos, 1
+    gt $I11, rx134_eos, rx134_fail
+    sub $I11, rx134_pos, rx134_off
+    substr $S10, rx134_tgt, $I11, 1
+    ne $S10, "*", rx134_fail
+    add rx134_pos, 1
+    set_addr $I10, rxcap_139_fail
+    ($I12, $I11) = rx134_cur."!mark_peek"($I10)
+    rx134_cur."!cursor_pos"($I11)
+    ($P10) = rx134_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx134_pos, "")
+    rx134_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_148_done
-  rxcap_148_fail:
-    goto rx143_fail
-  rxcap_148_done:
+    goto rxcap_139_done
+  rxcap_139_fail:
+    goto rx134_fail
+  rxcap_139_done:
   # rx subrule "backmod" subtype=capture negate=
-    rx143_cur."!cursor_pos"(rx143_pos)
-    $P10 = rx143_cur."backmod"()
-    unless $P10, rx143_fail
-    rx143_cur."!mark_push"(0, -1, 0, $P10)
+    rx134_cur."!cursor_pos"(rx134_pos)
+    $P10 = rx134_cur."backmod"()
+    unless $P10, rx134_fail
+    rx134_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backmod")
-    rx143_pos = $P10."pos"()
+    rx134_pos = $P10."pos"()
   # rx pass
-    rx143_cur."!cursor_pass"(rx143_pos, "quantifier:sym<*>")
-    rx143_cur."!cursor_debug"("PASS  ", "quantifier:sym<*>", " at pos=", rx143_pos)
-    .return (rx143_cur)
-  rx143_fail:
+    rx134_cur."!cursor_pass"(rx134_pos, "quantifier:sym<*>")
+    rx134_cur."!cursor_debug"("PASS  ", "quantifier:sym<*>", " at pos=", rx134_pos)
+    .return (rx134_cur)
+  rx134_restart:
 .annotate 'line', 3
-    (rx143_rep, rx143_pos, $I10, $P10) = rx143_cur."!mark_fail"(0)
-    lt rx143_pos, -1, rx143_done
-    eq rx143_pos, -1, rx143_fail
+    rx134_cur."!cursor_debug"("NEXT ", "quantifier:sym<*>")
+  rx134_fail:
+    (rx134_rep, rx134_pos, $I10, $P10) = rx134_cur."!mark_fail"(0)
+    lt rx134_pos, -1, rx134_done
+    eq rx134_pos, -1, rx134_fail
     jump $I10
-  rx143_done:
-    rx143_cur."!cursor_fail"()
-    rx143_cur."!cursor_debug"("FAIL  ", "quantifier:sym<*>")
-    .return (rx143_cur)
+  rx134_done:
+    rx134_cur."!cursor_fail"()
+    rx134_cur."!cursor_debug"("FAIL  ", "quantifier:sym<*>")
+    .return (rx134_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<*>"  :subid("39_1277356887.58177") :method
+.sub "!PREFIX__quantifier:sym<*>"  :subid("39_1280467470.54449") :method
 .annotate 'line', 3
-    $P145 = self."!PREFIX__!subrule"("backmod", "*")
-    new $P146, "ResizablePMCArray"
-    push $P146, $P145
-    .return ($P146)
+    $P136 = self."!PREFIX__!subrule"("backmod", "*")
+    new $P137, "ResizablePMCArray"
+    push $P137, $P136
+    .return ($P137)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<+>"  :subid("40_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "quantifier:sym<+>"  :subid("40_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx150_tgt
-    .local int rx150_pos
-    .local int rx150_off
-    .local int rx150_eos
-    .local int rx150_rep
-    .local pmc rx150_cur
-    (rx150_cur, rx150_pos, rx150_tgt) = self."!cursor_start"()
-    rx150_cur."!cursor_debug"("START ", "quantifier:sym<+>")
-    .lex unicode:"$\x{a2}", rx150_cur
+    .local string rx141_tgt
+    .local int rx141_pos
+    .local int rx141_off
+    .local int rx141_eos
+    .local int rx141_rep
+    .local pmc rx141_cur
+    (rx141_cur, rx141_pos, rx141_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx141_cur
     .local pmc match
     .lex "$/", match
-    length rx150_eos, rx150_tgt
-    gt rx150_pos, rx150_eos, rx150_done
-    set rx150_off, 0
-    lt rx150_pos, 2, rx150_start
-    sub rx150_off, rx150_pos, 1
-    substr rx150_tgt, rx150_tgt, rx150_off
-  rx150_start:
+    length rx141_eos, rx141_tgt
+    gt rx141_pos, rx141_eos, rx141_done
+    set rx141_off, 0
+    lt rx141_pos, 2, rx141_start
+    sub rx141_off, rx141_pos, 1
+    substr rx141_tgt, rx141_tgt, rx141_off
+  rx141_start:
+    eq $I10, 1, rx141_restart
+    rx141_cur."!cursor_debug"("START ", "quantifier:sym<+>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan154_done
-    goto rxscan154_scan
-  rxscan154_loop:
-    ($P10) = rx150_cur."from"()
+    ne $I10, -1, rxscan145_done
+    goto rxscan145_scan
+  rxscan145_loop:
+    ($P10) = rx141_cur."from"()
     inc $P10
-    set rx150_pos, $P10
-    ge rx150_pos, rx150_eos, rxscan154_done
-  rxscan154_scan:
-    set_addr $I10, rxscan154_loop
-    rx150_cur."!mark_push"(0, rx150_pos, $I10)
-  rxscan154_done:
+    set rx141_pos, $P10
+    ge rx141_pos, rx141_eos, rxscan145_done
+  rxscan145_scan:
+    set_addr $I10, rxscan145_loop
+    rx141_cur."!mark_push"(0, rx141_pos, $I10)
+  rxscan145_done:
 .annotate 'line', 56
   # rx subcapture "sym"
-    set_addr $I10, rxcap_155_fail
-    rx150_cur."!mark_push"(0, rx150_pos, $I10)
+    set_addr $I10, rxcap_146_fail
+    rx141_cur."!mark_push"(0, rx141_pos, $I10)
   # rx literal  "+"
-    add $I11, rx150_pos, 1
-    gt $I11, rx150_eos, rx150_fail
-    sub $I11, rx150_pos, rx150_off
-    substr $S10, rx150_tgt, $I11, 1
-    ne $S10, "+", rx150_fail
-    add rx150_pos, 1
-    set_addr $I10, rxcap_155_fail
-    ($I12, $I11) = rx150_cur."!mark_peek"($I10)
-    rx150_cur."!cursor_pos"($I11)
-    ($P10) = rx150_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx150_pos, "")
-    rx150_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx141_pos, 1
+    gt $I11, rx141_eos, rx141_fail
+    sub $I11, rx141_pos, rx141_off
+    substr $S10, rx141_tgt, $I11, 1
+    ne $S10, "+", rx141_fail
+    add rx141_pos, 1
+    set_addr $I10, rxcap_146_fail
+    ($I12, $I11) = rx141_cur."!mark_peek"($I10)
+    rx141_cur."!cursor_pos"($I11)
+    ($P10) = rx141_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx141_pos, "")
+    rx141_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_155_done
-  rxcap_155_fail:
-    goto rx150_fail
-  rxcap_155_done:
+    goto rxcap_146_done
+  rxcap_146_fail:
+    goto rx141_fail
+  rxcap_146_done:
   # rx subrule "backmod" subtype=capture negate=
-    rx150_cur."!cursor_pos"(rx150_pos)
-    $P10 = rx150_cur."backmod"()
-    unless $P10, rx150_fail
-    rx150_cur."!mark_push"(0, -1, 0, $P10)
+    rx141_cur."!cursor_pos"(rx141_pos)
+    $P10 = rx141_cur."backmod"()
+    unless $P10, rx141_fail
+    rx141_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backmod")
-    rx150_pos = $P10."pos"()
+    rx141_pos = $P10."pos"()
   # rx pass
-    rx150_cur."!cursor_pass"(rx150_pos, "quantifier:sym<+>")
-    rx150_cur."!cursor_debug"("PASS  ", "quantifier:sym<+>", " at pos=", rx150_pos)
-    .return (rx150_cur)
-  rx150_fail:
+    rx141_cur."!cursor_pass"(rx141_pos, "quantifier:sym<+>")
+    rx141_cur."!cursor_debug"("PASS  ", "quantifier:sym<+>", " at pos=", rx141_pos)
+    .return (rx141_cur)
+  rx141_restart:
 .annotate 'line', 3
-    (rx150_rep, rx150_pos, $I10, $P10) = rx150_cur."!mark_fail"(0)
-    lt rx150_pos, -1, rx150_done
-    eq rx150_pos, -1, rx150_fail
+    rx141_cur."!cursor_debug"("NEXT ", "quantifier:sym<+>")
+  rx141_fail:
+    (rx141_rep, rx141_pos, $I10, $P10) = rx141_cur."!mark_fail"(0)
+    lt rx141_pos, -1, rx141_done
+    eq rx141_pos, -1, rx141_fail
     jump $I10
-  rx150_done:
-    rx150_cur."!cursor_fail"()
-    rx150_cur."!cursor_debug"("FAIL  ", "quantifier:sym<+>")
-    .return (rx150_cur)
+  rx141_done:
+    rx141_cur."!cursor_fail"()
+    rx141_cur."!cursor_debug"("FAIL  ", "quantifier:sym<+>")
+    .return (rx141_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<+>"  :subid("41_1277356887.58177") :method
+.sub "!PREFIX__quantifier:sym<+>"  :subid("41_1280467470.54449") :method
 .annotate 'line', 3
-    $P152 = self."!PREFIX__!subrule"("backmod", "+")
-    new $P153, "ResizablePMCArray"
-    push $P153, $P152
-    .return ($P153)
+    $P143 = self."!PREFIX__!subrule"("backmod", "+")
+    new $P144, "ResizablePMCArray"
+    push $P144, $P143
+    .return ($P144)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<?>"  :subid("42_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "quantifier:sym<?>"  :subid("42_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx157_tgt
-    .local int rx157_pos
-    .local int rx157_off
-    .local int rx157_eos
-    .local int rx157_rep
-    .local pmc rx157_cur
-    (rx157_cur, rx157_pos, rx157_tgt) = self."!cursor_start"()
-    rx157_cur."!cursor_debug"("START ", "quantifier:sym<?>")
-    .lex unicode:"$\x{a2}", rx157_cur
+    .local string rx148_tgt
+    .local int rx148_pos
+    .local int rx148_off
+    .local int rx148_eos
+    .local int rx148_rep
+    .local pmc rx148_cur
+    (rx148_cur, rx148_pos, rx148_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx148_cur
     .local pmc match
     .lex "$/", match
-    length rx157_eos, rx157_tgt
-    gt rx157_pos, rx157_eos, rx157_done
-    set rx157_off, 0
-    lt rx157_pos, 2, rx157_start
-    sub rx157_off, rx157_pos, 1
-    substr rx157_tgt, rx157_tgt, rx157_off
-  rx157_start:
+    length rx148_eos, rx148_tgt
+    gt rx148_pos, rx148_eos, rx148_done
+    set rx148_off, 0
+    lt rx148_pos, 2, rx148_start
+    sub rx148_off, rx148_pos, 1
+    substr rx148_tgt, rx148_tgt, rx148_off
+  rx148_start:
+    eq $I10, 1, rx148_restart
+    rx148_cur."!cursor_debug"("START ", "quantifier:sym<?>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan161_done
-    goto rxscan161_scan
-  rxscan161_loop:
-    ($P10) = rx157_cur."from"()
+    ne $I10, -1, rxscan152_done
+    goto rxscan152_scan
+  rxscan152_loop:
+    ($P10) = rx148_cur."from"()
     inc $P10
-    set rx157_pos, $P10
-    ge rx157_pos, rx157_eos, rxscan161_done
-  rxscan161_scan:
-    set_addr $I10, rxscan161_loop
-    rx157_cur."!mark_push"(0, rx157_pos, $I10)
-  rxscan161_done:
+    set rx148_pos, $P10
+    ge rx148_pos, rx148_eos, rxscan152_done
+  rxscan152_scan:
+    set_addr $I10, rxscan152_loop
+    rx148_cur."!mark_push"(0, rx148_pos, $I10)
+  rxscan152_done:
 .annotate 'line', 57
   # rx subcapture "sym"
-    set_addr $I10, rxcap_162_fail
-    rx157_cur."!mark_push"(0, rx157_pos, $I10)
+    set_addr $I10, rxcap_153_fail
+    rx148_cur."!mark_push"(0, rx148_pos, $I10)
   # rx literal  "?"
-    add $I11, rx157_pos, 1
-    gt $I11, rx157_eos, rx157_fail
-    sub $I11, rx157_pos, rx157_off
-    substr $S10, rx157_tgt, $I11, 1
-    ne $S10, "?", rx157_fail
-    add rx157_pos, 1
-    set_addr $I10, rxcap_162_fail
-    ($I12, $I11) = rx157_cur."!mark_peek"($I10)
-    rx157_cur."!cursor_pos"($I11)
-    ($P10) = rx157_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx157_pos, "")
-    rx157_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx148_pos, 1
+    gt $I11, rx148_eos, rx148_fail
+    sub $I11, rx148_pos, rx148_off
+    substr $S10, rx148_tgt, $I11, 1
+    ne $S10, "?", rx148_fail
+    add rx148_pos, 1
+    set_addr $I10, rxcap_153_fail
+    ($I12, $I11) = rx148_cur."!mark_peek"($I10)
+    rx148_cur."!cursor_pos"($I11)
+    ($P10) = rx148_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx148_pos, "")
+    rx148_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_162_done
-  rxcap_162_fail:
-    goto rx157_fail
-  rxcap_162_done:
+    goto rxcap_153_done
+  rxcap_153_fail:
+    goto rx148_fail
+  rxcap_153_done:
   # rx subrule "backmod" subtype=capture negate=
-    rx157_cur."!cursor_pos"(rx157_pos)
-    $P10 = rx157_cur."backmod"()
-    unless $P10, rx157_fail
-    rx157_cur."!mark_push"(0, -1, 0, $P10)
+    rx148_cur."!cursor_pos"(rx148_pos)
+    $P10 = rx148_cur."backmod"()
+    unless $P10, rx148_fail
+    rx148_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backmod")
-    rx157_pos = $P10."pos"()
+    rx148_pos = $P10."pos"()
   # rx pass
-    rx157_cur."!cursor_pass"(rx157_pos, "quantifier:sym<?>")
-    rx157_cur."!cursor_debug"("PASS  ", "quantifier:sym<?>", " at pos=", rx157_pos)
-    .return (rx157_cur)
-  rx157_fail:
+    rx148_cur."!cursor_pass"(rx148_pos, "quantifier:sym<?>")
+    rx148_cur."!cursor_debug"("PASS  ", "quantifier:sym<?>", " at pos=", rx148_pos)
+    .return (rx148_cur)
+  rx148_restart:
 .annotate 'line', 3
-    (rx157_rep, rx157_pos, $I10, $P10) = rx157_cur."!mark_fail"(0)
-    lt rx157_pos, -1, rx157_done
-    eq rx157_pos, -1, rx157_fail
+    rx148_cur."!cursor_debug"("NEXT ", "quantifier:sym<?>")
+  rx148_fail:
+    (rx148_rep, rx148_pos, $I10, $P10) = rx148_cur."!mark_fail"(0)
+    lt rx148_pos, -1, rx148_done
+    eq rx148_pos, -1, rx148_fail
     jump $I10
-  rx157_done:
-    rx157_cur."!cursor_fail"()
-    rx157_cur."!cursor_debug"("FAIL  ", "quantifier:sym<?>")
-    .return (rx157_cur)
+  rx148_done:
+    rx148_cur."!cursor_fail"()
+    rx148_cur."!cursor_debug"("FAIL  ", "quantifier:sym<?>")
+    .return (rx148_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<?>"  :subid("43_1277356887.58177") :method
+.sub "!PREFIX__quantifier:sym<?>"  :subid("43_1280467470.54449") :method
 .annotate 'line', 3
-    $P159 = self."!PREFIX__!subrule"("backmod", "?")
-    new $P160, "ResizablePMCArray"
-    push $P160, $P159
-    .return ($P160)
+    $P150 = self."!PREFIX__!subrule"("backmod", "?")
+    new $P151, "ResizablePMCArray"
+    push $P151, $P150
+    .return ($P151)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<**>"  :subid("44_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "quantifier:sym<**>"  :subid("44_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx164_tgt
-    .local int rx164_pos
-    .local int rx164_off
-    .local int rx164_eos
-    .local int rx164_rep
-    .local pmc rx164_cur
-    (rx164_cur, rx164_pos, rx164_tgt) = self."!cursor_start"()
-    rx164_cur."!cursor_debug"("START ", "quantifier:sym<**>")
-    rx164_cur."!cursor_caparray"("max", "normspace")
-    .lex unicode:"$\x{a2}", rx164_cur
-    .local pmc match
-    .lex "$/", match
-    length rx164_eos, rx164_tgt
-    gt rx164_pos, rx164_eos, rx164_done
-    set rx164_off, 0
-    lt rx164_pos, 2, rx164_start
-    sub rx164_off, rx164_pos, 1
-    substr rx164_tgt, rx164_tgt, rx164_off
-  rx164_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan167_done
-    goto rxscan167_scan
-  rxscan167_loop:
-    ($P10) = rx164_cur."from"()
-    inc $P10
-    set rx164_pos, $P10
-    ge rx164_pos, rx164_eos, rxscan167_done
-  rxscan167_scan:
-    set_addr $I10, rxscan167_loop
-    rx164_cur."!mark_push"(0, rx164_pos, $I10)
-  rxscan167_done:
+    .local string rx155_tgt
+    .local int rx155_pos
+    .local int rx155_off
+    .local int rx155_eos
+    .local int rx155_rep
+    .local pmc rx155_cur
+    (rx155_cur, rx155_pos, rx155_tgt, $I10) = self."!cursor_start"()
+    rx155_cur."!cursor_caparray"("max", "normspace")
+    .lex unicode:"$\x{a2}", rx155_cur
+    .local pmc match
+    .lex "$/", match
+    length rx155_eos, rx155_tgt
+    gt rx155_pos, rx155_eos, rx155_done
+    set rx155_off, 0
+    lt rx155_pos, 2, rx155_start
+    sub rx155_off, rx155_pos, 1
+    substr rx155_tgt, rx155_tgt, rx155_off
+  rx155_start:
+    eq $I10, 1, rx155_restart
+    rx155_cur."!cursor_debug"("START ", "quantifier:sym<**>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan158_done
+    goto rxscan158_scan
+  rxscan158_loop:
+    ($P10) = rx155_cur."from"()
+    inc $P10
+    set rx155_pos, $P10
+    ge rx155_pos, rx155_eos, rxscan158_done
+  rxscan158_scan:
+    set_addr $I10, rxscan158_loop
+    rx155_cur."!mark_push"(0, rx155_pos, $I10)
+  rxscan158_done:
 .annotate 'line', 59
   # rx subcapture "sym"
-    set_addr $I10, rxcap_168_fail
-    rx164_cur."!mark_push"(0, rx164_pos, $I10)
+    set_addr $I10, rxcap_159_fail
+    rx155_cur."!mark_push"(0, rx155_pos, $I10)
   # 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
-    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)
+    add $I11, rx155_pos, 2
+    gt $I11, rx155_eos, rx155_fail
+    sub $I11, rx155_pos, rx155_off
+    substr $S10, rx155_tgt, $I11, 2
+    ne $S10, "**", rx155_fail
+    add rx155_pos, 2
+    set_addr $I10, rxcap_159_fail
+    ($I12, $I11) = rx155_cur."!mark_peek"($I10)
+    rx155_cur."!cursor_pos"($I11)
+    ($P10) = rx155_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx155_pos, "")
+    rx155_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 $I170, rxquantr169_done
-    rx164_cur."!mark_push"(0, rx164_pos, $I170)
-  rxquantr169_loop:
+    goto rxcap_159_done
+  rxcap_159_fail:
+    goto rx155_fail
+  rxcap_159_done:
+  # rx rxquantr160 ** 0..1
+    set_addr $I10, rxquantr160_done
+    rx155_cur."!mark_push"(0, rx155_pos, $I10)
+  rxquantr160_loop:
   # rx subrule "normspace" subtype=capture negate=
-    rx164_cur."!cursor_pos"(rx164_pos)
-    $P10 = rx164_cur."normspace"()
-    unless $P10, rx164_fail
-    rx164_cur."!mark_push"(0, -1, 0, $P10)
+    rx155_cur."!cursor_pos"(rx155_pos)
+    $P10 = rx155_cur."normspace"()
+    unless $P10, rx155_fail
+    goto rxsubrule161_pass
+  rxsubrule161_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx155_fail
+  rxsubrule161_pass:
+    set_addr $I10, rxsubrule161_back
+    rx155_cur."!mark_push"(0, rx155_pos, $I10, $P10)
     $P10."!cursor_names"("normspace")
-    rx164_pos = $P10."pos"()
-    (rx164_rep) = rx164_cur."!mark_commit"($I170)
-  rxquantr169_done:
+    rx155_pos = $P10."pos"()
+    set_addr $I10, rxquantr160_done
+    (rx155_rep) = rx155_cur."!mark_commit"($I10)
+  rxquantr160_done:
   # rx subrule "backmod" subtype=capture negate=
-    rx164_cur."!cursor_pos"(rx164_pos)
-    $P10 = rx164_cur."backmod"()
-    unless $P10, rx164_fail
-    rx164_cur."!mark_push"(0, -1, 0, $P10)
+    rx155_cur."!cursor_pos"(rx155_pos)
+    $P10 = rx155_cur."backmod"()
+    unless $P10, rx155_fail
+    rx155_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backmod")
-    rx164_pos = $P10."pos"()
-  # rx rxquantr171 ** 0..1
-    set_addr $I172, rxquantr171_done
-    rx164_cur."!mark_push"(0, rx164_pos, $I172)
-  rxquantr171_loop:
+    rx155_pos = $P10."pos"()
+  # rx rxquantr162 ** 0..1
+    set_addr $I10, rxquantr162_done
+    rx155_cur."!mark_push"(0, rx155_pos, $I10)
+  rxquantr162_loop:
   # rx subrule "normspace" subtype=capture negate=
-    rx164_cur."!cursor_pos"(rx164_pos)
-    $P10 = rx164_cur."normspace"()
-    unless $P10, rx164_fail
-    rx164_cur."!mark_push"(0, -1, 0, $P10)
+    rx155_cur."!cursor_pos"(rx155_pos)
+    $P10 = rx155_cur."normspace"()
+    unless $P10, rx155_fail
+    goto rxsubrule163_pass
+  rxsubrule163_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx155_fail
+  rxsubrule163_pass:
+    set_addr $I10, rxsubrule163_back
+    rx155_cur."!mark_push"(0, rx155_pos, $I10, $P10)
     $P10."!cursor_names"("normspace")
-    rx164_pos = $P10."pos"()
-    (rx164_rep) = rx164_cur."!mark_commit"($I172)
-  rxquantr171_done:
-  alt173_0:
+    rx155_pos = $P10."pos"()
+    set_addr $I10, rxquantr162_done
+    (rx155_rep) = rx155_cur."!mark_commit"($I10)
+  rxquantr162_done:
+  alt164_0:
 .annotate 'line', 60
-    set_addr $I10, alt173_1
-    rx164_cur."!mark_push"(0, rx164_pos, $I10)
+    set_addr $I10, alt164_1
+    rx155_cur."!mark_push"(0, rx155_pos, $I10)
 .annotate 'line', 61
   # rx subcapture "min"
-    set_addr $I10, rxcap_174_fail
-    rx164_cur."!mark_push"(0, rx164_pos, $I10)
+    set_addr $I10, rxcap_165_fail
+    rx155_cur."!mark_push"(0, rx155_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
+    sub $I10, rx155_pos, rx155_off
+    find_not_cclass $I11, 8, rx155_tgt, $I10, rx155_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)
+    lt $I11, $I12, rx155_fail
+    add rx155_pos, rx155_off, $I11
+    set_addr $I10, rxcap_165_fail
+    ($I12, $I11) = rx155_cur."!mark_peek"($I10)
+    rx155_cur."!cursor_pos"($I11)
+    ($P10) = rx155_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx155_pos, "")
+    rx155_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("min")
-    goto rxcap_174_done
-  rxcap_174_fail:
-    goto rx164_fail
-  rxcap_174_done:
+    goto rxcap_165_done
+  rxcap_165_fail:
+    goto rx155_fail
+  rxcap_165_done:
 .annotate 'line', 68
-  # rx rxquantr175 ** 0..1
-    set_addr $I178, rxquantr175_done
-    rx164_cur."!mark_push"(0, rx164_pos, $I178)
-  rxquantr175_loop:
+  # rx rxquantr166 ** 0..1
+    set_addr $I10, rxquantr166_done
+    rx155_cur."!mark_push"(0, rx155_pos, $I10)
+  rxquantr166_loop:
 .annotate 'line', 62
   # 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
+    add $I11, rx155_pos, 2
+    gt $I11, rx155_eos, rx155_fail
+    sub $I11, rx155_pos, rx155_off
+    substr $S10, rx155_tgt, $I11, 2
+    ne $S10, "..", rx155_fail
+    add rx155_pos, 2
 .annotate 'line', 63
   # 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)
+    set_addr $I10, rxcap_168_fail
+    rx155_cur."!mark_push"(0, rx155_pos, $I10)
+  alt167_0:
+    set_addr $I10, alt167_1
+    rx155_cur."!mark_push"(0, rx155_pos, $I10)
 .annotate 'line', 64
   # rx charclass_q d r 1..-1
-    sub $I10, rx164_pos, rx164_off
-    find_not_cclass $I11, 8, rx164_tgt, $I10, rx164_eos
+    sub $I10, rx155_pos, rx155_off
+    find_not_cclass $I11, 8, rx155_tgt, $I10, rx155_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)
+    lt $I11, $I12, rx155_fail
+    add rx155_pos, rx155_off, $I11
+    goto alt167_end
+  alt167_1:
+    set_addr $I10, alt167_2
+    rx155_cur."!mark_push"(0, rx155_pos, $I10)
 .annotate 'line', 65
   # rx literal  "*"
-    add $I11, rx164_pos, 1
-    gt $I11, rx164_eos, rx164_fail
-    sub $I11, rx164_pos, rx164_off
-    substr $S10, rx164_tgt, $I11, 1
-    ne $S10, "*", rx164_fail
-    add rx164_pos, 1
-    goto alt176_end
-  alt176_2:
+    add $I11, rx155_pos, 1
+    gt $I11, rx155_eos, rx155_fail
+    sub $I11, rx155_pos, rx155_off
+    substr $S10, rx155_tgt, $I11, 1
+    ne $S10, "*", rx155_fail
+    add rx155_pos, 1
+    goto alt167_end
+  alt167_2:
 .annotate 'line', 66
   # 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:
+    rx155_cur."!cursor_pos"(rx155_pos)
+    $P10 = rx155_cur."panic"("Only integers or '*' allowed as range quantifier endpoint")
+    unless $P10, rx155_fail
+    rx155_pos = $P10."pos"()
+  alt167_end:
 .annotate 'line', 63
-    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)
+    set_addr $I10, rxcap_168_fail
+    ($I12, $I11) = rx155_cur."!mark_peek"($I10)
+    rx155_cur."!cursor_pos"($I11)
+    ($P10) = rx155_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx155_pos, "")
+    rx155_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("max")
-    goto rxcap_177_done
-  rxcap_177_fail:
-    goto rx164_fail
-  rxcap_177_done:
+    goto rxcap_168_done
+  rxcap_168_fail:
+    goto rx155_fail
+  rxcap_168_done:
 .annotate 'line', 68
-    (rx164_rep) = rx164_cur."!mark_commit"($I178)
-  rxquantr175_done:
+    set_addr $I10, rxquantr166_done
+    (rx155_rep) = rx155_cur."!mark_commit"($I10)
+  rxquantr166_done:
 .annotate 'line', 61
-    goto alt173_end
-  alt173_1:
+    goto alt164_end
+  alt164_1:
 .annotate 'line', 69
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx164_cur."!cursor_pos"(rx164_pos)
-    $P10 = rx164_cur."quantified_atom"()
-    unless $P10, rx164_fail
-    rx164_cur."!mark_push"(0, -1, 0, $P10)
+    rx155_cur."!cursor_pos"(rx155_pos)
+    $P10 = rx155_cur."quantified_atom"()
+    unless $P10, rx155_fail
+    rx155_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quantified_atom")
-    rx164_pos = $P10."pos"()
-  alt173_end:
+    rx155_pos = $P10."pos"()
+  alt164_end:
 .annotate 'line', 58
   # rx pass
-    rx164_cur."!cursor_pass"(rx164_pos, "quantifier:sym<**>")
-    rx164_cur."!cursor_debug"("PASS  ", "quantifier:sym<**>", " at pos=", rx164_pos)
-    .return (rx164_cur)
-  rx164_fail:
+    rx155_cur."!cursor_pass"(rx155_pos, "quantifier:sym<**>")
+    rx155_cur."!cursor_debug"("PASS  ", "quantifier:sym<**>", " at pos=", rx155_pos)
+    .return (rx155_cur)
+  rx155_restart:
 .annotate 'line', 3
-    (rx164_rep, rx164_pos, $I10, $P10) = rx164_cur."!mark_fail"(0)
-    lt rx164_pos, -1, rx164_done
-    eq rx164_pos, -1, rx164_fail
+    rx155_cur."!cursor_debug"("NEXT ", "quantifier:sym<**>")
+  rx155_fail:
+    (rx155_rep, rx155_pos, $I10, $P10) = rx155_cur."!mark_fail"(0)
+    lt rx155_pos, -1, rx155_done
+    eq rx155_pos, -1, rx155_fail
     jump $I10
-  rx164_done:
-    rx164_cur."!cursor_fail"()
-    rx164_cur."!cursor_debug"("FAIL  ", "quantifier:sym<**>")
-    .return (rx164_cur)
+  rx155_done:
+    rx155_cur."!cursor_fail"()
+    rx155_cur."!cursor_debug"("FAIL  ", "quantifier:sym<**>")
+    .return (rx155_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<**>"  :subid("45_1277356887.58177") :method
+.sub "!PREFIX__quantifier:sym<**>"  :subid("45_1280467470.54449") :method
 .annotate 'line', 3
-    new $P166, "ResizablePMCArray"
-    push $P166, "**"
-    .return ($P166)
+    new $P157, "ResizablePMCArray"
+    push $P157, "**"
+    .return ($P157)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backmod"  :subid("46_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "backmod"  :subid("46_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .const 'Sub' $P188 = "48_1277356887.58177" 
-    capture_lex $P188
-    .local string rx180_tgt
-    .local int rx180_pos
-    .local int rx180_off
-    .local int rx180_eos
-    .local int rx180_rep
-    .local pmc rx180_cur
-    (rx180_cur, rx180_pos, rx180_tgt) = self."!cursor_start"()
-    rx180_cur."!cursor_debug"("START ", "backmod")
-    .lex unicode:"$\x{a2}", rx180_cur
+    .const 'Sub' $P177 = "48_1280467470.54449" 
+    capture_lex $P177
+    .local string rx170_tgt
+    .local int rx170_pos
+    .local int rx170_off
+    .local int rx170_eos
+    .local int rx170_rep
+    .local pmc rx170_cur
+    (rx170_cur, rx170_pos, rx170_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx170_cur
     .local pmc match
     .lex "$/", match
-    length rx180_eos, rx180_tgt
-    gt rx180_pos, rx180_eos, rx180_done
-    set rx180_off, 0
-    lt rx180_pos, 2, rx180_start
-    sub rx180_off, rx180_pos, 1
-    substr rx180_tgt, rx180_tgt, rx180_off
-  rx180_start:
+    length rx170_eos, rx170_tgt
+    gt rx170_pos, rx170_eos, rx170_done
+    set rx170_off, 0
+    lt rx170_pos, 2, rx170_start
+    sub rx170_off, rx170_pos, 1
+    substr rx170_tgt, rx170_tgt, rx170_off
+  rx170_start:
+    eq $I10, 1, rx170_restart
+    rx170_cur."!cursor_debug"("START ", "backmod")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan183_done
-    goto rxscan183_scan
-  rxscan183_loop:
-    ($P10) = rx180_cur."from"()
+    ne $I10, -1, rxscan173_done
+    goto rxscan173_scan
+  rxscan173_loop:
+    ($P10) = rx170_cur."from"()
     inc $P10
-    set rx180_pos, $P10
-    ge rx180_pos, rx180_eos, rxscan183_done
-  rxscan183_scan:
-    set_addr $I10, rxscan183_loop
-    rx180_cur."!mark_push"(0, rx180_pos, $I10)
-  rxscan183_done:
+    set rx170_pos, $P10
+    ge rx170_pos, rx170_eos, rxscan173_done
+  rxscan173_scan:
+    set_addr $I10, rxscan173_loop
+    rx170_cur."!mark_push"(0, rx170_pos, $I10)
+  rxscan173_done:
 .annotate 'line', 73
-  # rx rxquantr184 ** 0..1
-    set_addr $I185, rxquantr184_done
-    rx180_cur."!mark_push"(0, rx180_pos, $I185)
-  rxquantr184_loop:
+  # rx rxquantr174 ** 0..1
+    set_addr $I10, rxquantr174_done
+    rx170_cur."!mark_push"(0, rx170_pos, $I10)
+  rxquantr174_loop:
   # rx literal  ":"
-    add $I11, rx180_pos, 1
-    gt $I11, rx180_eos, rx180_fail
-    sub $I11, rx180_pos, rx180_off
-    substr $S10, rx180_tgt, $I11, 1
-    ne $S10, ":", rx180_fail
-    add rx180_pos, 1
-    (rx180_rep) = rx180_cur."!mark_commit"($I185)
-  rxquantr184_done:
-  alt186_0:
-    set_addr $I10, alt186_1
-    rx180_cur."!mark_push"(0, rx180_pos, $I10)
+    add $I11, rx170_pos, 1
+    gt $I11, rx170_eos, rx170_fail
+    sub $I11, rx170_pos, rx170_off
+    substr $S10, rx170_tgt, $I11, 1
+    ne $S10, ":", rx170_fail
+    add rx170_pos, 1
+    set_addr $I10, rxquantr174_done
+    (rx170_rep) = rx170_cur."!mark_commit"($I10)
+  rxquantr174_done:
+  alt175_0:
+    set_addr $I10, alt175_1
+    rx170_cur."!mark_push"(0, rx170_pos, $I10)
   # rx literal  "?"
-    add $I11, rx180_pos, 1
-    gt $I11, rx180_eos, rx180_fail
-    sub $I11, rx180_pos, rx180_off
-    substr $S10, rx180_tgt, $I11, 1
-    ne $S10, "?", rx180_fail
-    add rx180_pos, 1
-    goto alt186_end
-  alt186_1:
-    set_addr $I10, alt186_2
-    rx180_cur."!mark_push"(0, rx180_pos, $I10)
+    add $I11, rx170_pos, 1
+    gt $I11, rx170_eos, rx170_fail
+    sub $I11, rx170_pos, rx170_off
+    substr $S10, rx170_tgt, $I11, 1
+    ne $S10, "?", rx170_fail
+    add rx170_pos, 1
+    goto alt175_end
+  alt175_1:
+    set_addr $I10, alt175_2
+    rx170_cur."!mark_push"(0, rx170_pos, $I10)
   # rx literal  "!"
-    add $I11, rx180_pos, 1
-    gt $I11, rx180_eos, rx180_fail
-    sub $I11, rx180_pos, rx180_off
-    substr $S10, rx180_tgt, $I11, 1
-    ne $S10, "!", rx180_fail
-    add rx180_pos, 1
-    goto alt186_end
-  alt186_2:
+    add $I11, rx170_pos, 1
+    gt $I11, rx170_eos, rx170_fail
+    sub $I11, rx170_pos, rx170_off
+    substr $S10, rx170_tgt, $I11, 1
+    ne $S10, "!", rx170_fail
+    add rx170_pos, 1
+    goto alt175_end
+  alt175_2:
   # rx subrule "before" subtype=zerowidth negate=1
-    rx180_cur."!cursor_pos"(rx180_pos)
-    .const 'Sub' $P188 = "48_1277356887.58177" 
-    capture_lex $P188
-    $P10 = rx180_cur."before"($P188)
-    if $P10, rx180_fail
-  alt186_end:
+    rx170_cur."!cursor_pos"(rx170_pos)
+    .const 'Sub' $P177 = "48_1280467470.54449" 
+    capture_lex $P177
+    $P10 = rx170_cur."before"($P177)
+    if $P10, rx170_fail
+  alt175_end:
   # rx pass
-    rx180_cur."!cursor_pass"(rx180_pos, "backmod")
-    rx180_cur."!cursor_debug"("PASS  ", "backmod", " at pos=", rx180_pos)
-    .return (rx180_cur)
-  rx180_fail:
+    rx170_cur."!cursor_pass"(rx170_pos, "backmod")
+    rx170_cur."!cursor_debug"("PASS  ", "backmod", " at pos=", rx170_pos)
+    .return (rx170_cur)
+  rx170_restart:
 .annotate 'line', 3
-    (rx180_rep, rx180_pos, $I10, $P10) = rx180_cur."!mark_fail"(0)
-    lt rx180_pos, -1, rx180_done
-    eq rx180_pos, -1, rx180_fail
+    rx170_cur."!cursor_debug"("NEXT ", "backmod")
+  rx170_fail:
+    (rx170_rep, rx170_pos, $I10, $P10) = rx170_cur."!mark_fail"(0)
+    lt rx170_pos, -1, rx170_done
+    eq rx170_pos, -1, rx170_fail
     jump $I10
-  rx180_done:
-    rx180_cur."!cursor_fail"()
-    rx180_cur."!cursor_debug"("FAIL  ", "backmod")
-    .return (rx180_cur)
+  rx170_done:
+    rx170_cur."!cursor_fail"()
+    rx170_cur."!cursor_debug"("FAIL  ", "backmod")
+    .return (rx170_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backmod"  :subid("47_1277356887.58177") :method
+.sub "!PREFIX__backmod"  :subid("47_1280467470.54449") :method
 .annotate 'line', 3
-    new $P182, "ResizablePMCArray"
-    push $P182, ""
-    .return ($P182)
+    new $P172, "ResizablePMCArray"
+    push $P172, ""
+    .return ($P172)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block187"  :anon :subid("48_1277356887.58177") :method :outer("46_1277356887.58177")
+.sub "_block176"  :anon :subid("48_1280467470.54449") :method :outer("46_1280467470.54449")
 .annotate 'line', 73
-    .local string rx189_tgt
-    .local int rx189_pos
-    .local int rx189_off
-    .local int rx189_eos
-    .local int rx189_rep
-    .local pmc rx189_cur
-    (rx189_cur, rx189_pos, rx189_tgt) = self."!cursor_start"()
-    rx189_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx189_cur
-    .local pmc match
-    .lex "$/", match
-    length rx189_eos, rx189_tgt
-    gt rx189_pos, rx189_eos, rx189_done
-    set rx189_off, 0
-    lt rx189_pos, 2, rx189_start
-    sub rx189_off, rx189_pos, 1
-    substr rx189_tgt, rx189_tgt, rx189_off
-  rx189_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan190_done
-    goto rxscan190_scan
-  rxscan190_loop:
-    ($P10) = rx189_cur."from"()
-    inc $P10
-    set rx189_pos, $P10
-    ge rx189_pos, rx189_eos, rxscan190_done
-  rxscan190_scan:
-    set_addr $I10, rxscan190_loop
-    rx189_cur."!mark_push"(0, rx189_pos, $I10)
-  rxscan190_done:
+    .local string rx178_tgt
+    .local int rx178_pos
+    .local int rx178_off
+    .local int rx178_eos
+    .local int rx178_rep
+    .local pmc rx178_cur
+    (rx178_cur, rx178_pos, rx178_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx178_cur
+    .local pmc match
+    .lex "$/", match
+    length rx178_eos, rx178_tgt
+    gt rx178_pos, rx178_eos, rx178_done
+    set rx178_off, 0
+    lt rx178_pos, 2, rx178_start
+    sub rx178_off, rx178_pos, 1
+    substr rx178_tgt, rx178_tgt, rx178_off
+  rx178_start:
+    eq $I10, 1, rx178_restart
+    rx178_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan179_done
+    goto rxscan179_scan
+  rxscan179_loop:
+    ($P10) = rx178_cur."from"()
+    inc $P10
+    set rx178_pos, $P10
+    ge rx178_pos, rx178_eos, rxscan179_done
+  rxscan179_scan:
+    set_addr $I10, rxscan179_loop
+    rx178_cur."!mark_push"(0, rx178_pos, $I10)
+  rxscan179_done:
   # rx literal  ":"
-    add $I11, rx189_pos, 1
-    gt $I11, rx189_eos, rx189_fail
-    sub $I11, rx189_pos, rx189_off
-    substr $S10, rx189_tgt, $I11, 1
-    ne $S10, ":", rx189_fail
-    add rx189_pos, 1
+    add $I11, rx178_pos, 1
+    gt $I11, rx178_eos, rx178_fail
+    sub $I11, rx178_pos, rx178_off
+    substr $S10, rx178_tgt, $I11, 1
+    ne $S10, ":", rx178_fail
+    add rx178_pos, 1
   # rx pass
-    rx189_cur."!cursor_pass"(rx189_pos, "")
-    rx189_cur."!cursor_debug"("PASS  ", "", " at pos=", rx189_pos)
-    .return (rx189_cur)
-  rx189_fail:
-    (rx189_rep, rx189_pos, $I10, $P10) = rx189_cur."!mark_fail"(0)
-    lt rx189_pos, -1, rx189_done
-    eq rx189_pos, -1, rx189_fail
+    rx178_cur."!cursor_pass"(rx178_pos, "")
+    rx178_cur."!cursor_debug"("PASS  ", "", " at pos=", rx178_pos)
+    .return (rx178_cur)
+  rx178_restart:
+    rx178_cur."!cursor_debug"("NEXT ", "")
+  rx178_fail:
+    (rx178_rep, rx178_pos, $I10, $P10) = rx178_cur."!mark_fail"(0)
+    lt rx178_pos, -1, rx178_done
+    eq rx178_pos, -1, rx178_fail
     jump $I10
-  rx189_done:
-    rx189_cur."!cursor_fail"()
-    rx189_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx189_cur)
+  rx178_done:
+    rx178_cur."!cursor_fail"()
+    rx178_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx178_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar"  :subid("49_1277356887.58177") :method
+.sub "metachar"  :subid("49_1280467470.54449") :method
 .annotate 'line', 75
-    $P192 = self."!protoregex"("metachar")
-    .return ($P192)
+    $P181 = self."!protoregex"("metachar")
+    .return ($P181)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar"  :subid("50_1277356887.58177") :method
+.sub "!PREFIX__metachar"  :subid("50_1280467470.54449") :method
 .annotate 'line', 75
-    $P194 = self."!PREFIX__!protoregex"("metachar")
-    .return ($P194)
+    $P183 = self."!PREFIX__!protoregex"("metachar")
+    .return ($P183)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<ws>"  :subid("51_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<ws>"  :subid("51_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx196_tgt
-    .local int rx196_pos
-    .local int rx196_off
-    .local int rx196_eos
-    .local int rx196_rep
-    .local pmc rx196_cur
-    (rx196_cur, rx196_pos, rx196_tgt) = self."!cursor_start"()
-    rx196_cur."!cursor_debug"("START ", "metachar:sym<ws>")
-    .lex unicode:"$\x{a2}", rx196_cur
-    .local pmc match
-    .lex "$/", match
-    length rx196_eos, rx196_tgt
-    gt rx196_pos, rx196_eos, rx196_done
-    set rx196_off, 0
-    lt rx196_pos, 2, rx196_start
-    sub rx196_off, rx196_pos, 1
-    substr rx196_tgt, rx196_tgt, rx196_off
-  rx196_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan200_done
-    goto rxscan200_scan
-  rxscan200_loop:
-    ($P10) = rx196_cur."from"()
-    inc $P10
-    set rx196_pos, $P10
-    ge rx196_pos, rx196_eos, rxscan200_done
-  rxscan200_scan:
-    set_addr $I10, rxscan200_loop
-    rx196_cur."!mark_push"(0, rx196_pos, $I10)
-  rxscan200_done:
+    .local string rx185_tgt
+    .local int rx185_pos
+    .local int rx185_off
+    .local int rx185_eos
+    .local int rx185_rep
+    .local pmc rx185_cur
+    (rx185_cur, rx185_pos, rx185_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx185_cur
+    .local pmc match
+    .lex "$/", match
+    length rx185_eos, rx185_tgt
+    gt rx185_pos, rx185_eos, rx185_done
+    set rx185_off, 0
+    lt rx185_pos, 2, rx185_start
+    sub rx185_off, rx185_pos, 1
+    substr rx185_tgt, rx185_tgt, rx185_off
+  rx185_start:
+    eq $I10, 1, rx185_restart
+    rx185_cur."!cursor_debug"("START ", "metachar:sym<ws>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan189_done
+    goto rxscan189_scan
+  rxscan189_loop:
+    ($P10) = rx185_cur."from"()
+    inc $P10
+    set rx185_pos, $P10
+    ge rx185_pos, rx185_eos, rxscan189_done
+  rxscan189_scan:
+    set_addr $I10, rxscan189_loop
+    rx185_cur."!mark_push"(0, rx185_pos, $I10)
+  rxscan189_done:
 .annotate 'line', 76
   # rx subrule "normspace" subtype=method negate=
-    rx196_cur."!cursor_pos"(rx196_pos)
-    $P10 = rx196_cur."normspace"()
-    unless $P10, rx196_fail
-    rx196_pos = $P10."pos"()
+    rx185_cur."!cursor_pos"(rx185_pos)
+    $P10 = rx185_cur."normspace"()
+    unless $P10, rx185_fail
+    rx185_pos = $P10."pos"()
+  # rx pass
+    rx185_cur."!cursor_pass"(rx185_pos, "metachar:sym<ws>")
+    rx185_cur."!cursor_debug"("PASS  ", "metachar:sym<ws>", " at pos=", rx185_pos)
+    .return (rx185_cur)
+  rx185_restart:
+.annotate 'line', 3
+    rx185_cur."!cursor_debug"("NEXT ", "metachar:sym<ws>")
+  rx185_fail:
+    (rx185_rep, rx185_pos, $I10, $P10) = rx185_cur."!mark_fail"(0)
+    lt rx185_pos, -1, rx185_done
+    eq rx185_pos, -1, rx185_fail
+    jump $I10
+  rx185_done:
+    rx185_cur."!cursor_fail"()
+    rx185_cur."!cursor_debug"("FAIL  ", "metachar:sym<ws>")
+    .return (rx185_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__metachar:sym<ws>"  :subid("52_1280467470.54449") :method
+.annotate 'line', 3
+    $P187 = self."!PREFIX__!subrule"("normspace", "")
+    new $P188, "ResizablePMCArray"
+    push $P188, $P187
+    .return ($P188)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<[ ]>"  :subid("53_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+    .local string rx191_tgt
+    .local int rx191_pos
+    .local int rx191_off
+    .local int rx191_eos
+    .local int rx191_rep
+    .local pmc rx191_cur
+    (rx191_cur, rx191_pos, rx191_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx191_cur
+    .local pmc match
+    .lex "$/", match
+    length rx191_eos, rx191_tgt
+    gt rx191_pos, rx191_eos, rx191_done
+    set rx191_off, 0
+    lt rx191_pos, 2, rx191_start
+    sub rx191_off, rx191_pos, 1
+    substr rx191_tgt, rx191_tgt, rx191_off
+  rx191_start:
+    eq $I10, 1, rx191_restart
+    rx191_cur."!cursor_debug"("START ", "metachar:sym<[ ]>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan195_done
+    goto rxscan195_scan
+  rxscan195_loop:
+    ($P10) = rx191_cur."from"()
+    inc $P10
+    set rx191_pos, $P10
+    ge rx191_pos, rx191_eos, rxscan195_done
+  rxscan195_scan:
+    set_addr $I10, rxscan195_loop
+    rx191_cur."!mark_push"(0, rx191_pos, $I10)
+  rxscan195_done:
+.annotate 'line', 77
+  # rx literal  "["
+    add $I11, rx191_pos, 1
+    gt $I11, rx191_eos, rx191_fail
+    sub $I11, rx191_pos, rx191_off
+    substr $S10, rx191_tgt, $I11, 1
+    ne $S10, "[", rx191_fail
+    add rx191_pos, 1
+  # rx subrule "nibbler" subtype=capture negate=
+    rx191_cur."!cursor_pos"(rx191_pos)
+    $P10 = rx191_cur."nibbler"()
+    unless $P10, rx191_fail
+    rx191_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("nibbler")
+    rx191_pos = $P10."pos"()
+  # rx literal  "]"
+    add $I11, rx191_pos, 1
+    gt $I11, rx191_eos, rx191_fail
+    sub $I11, rx191_pos, rx191_off
+    substr $S10, rx191_tgt, $I11, 1
+    ne $S10, "]", rx191_fail
+    add rx191_pos, 1
+  # rx pass
+    rx191_cur."!cursor_pass"(rx191_pos, "metachar:sym<[ ]>")
+    rx191_cur."!cursor_debug"("PASS  ", "metachar:sym<[ ]>", " at pos=", rx191_pos)
+    .return (rx191_cur)
+  rx191_restart:
+.annotate 'line', 3
+    rx191_cur."!cursor_debug"("NEXT ", "metachar:sym<[ ]>")
+  rx191_fail:
+    (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0)
+    lt rx191_pos, -1, rx191_done
+    eq rx191_pos, -1, rx191_fail
+    jump $I10
+  rx191_done:
+    rx191_cur."!cursor_fail"()
+    rx191_cur."!cursor_debug"("FAIL  ", "metachar:sym<[ ]>")
+    .return (rx191_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__metachar:sym<[ ]>"  :subid("54_1280467470.54449") :method
+.annotate 'line', 3
+    $P193 = self."!PREFIX__!subrule"("nibbler", "[")
+    new $P194, "ResizablePMCArray"
+    push $P194, $P193
+    .return ($P194)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<( )>"  :subid("55_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+    .local string rx197_tgt
+    .local int rx197_pos
+    .local int rx197_off
+    .local int rx197_eos
+    .local int rx197_rep
+    .local pmc rx197_cur
+    (rx197_cur, rx197_pos, rx197_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx197_cur
+    .local pmc match
+    .lex "$/", match
+    length rx197_eos, rx197_tgt
+    gt rx197_pos, rx197_eos, rx197_done
+    set rx197_off, 0
+    lt rx197_pos, 2, rx197_start
+    sub rx197_off, rx197_pos, 1
+    substr rx197_tgt, rx197_tgt, rx197_off
+  rx197_start:
+    eq $I10, 1, rx197_restart
+    rx197_cur."!cursor_debug"("START ", "metachar:sym<( )>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan201_done
+    goto rxscan201_scan
+  rxscan201_loop:
+    ($P10) = rx197_cur."from"()
+    inc $P10
+    set rx197_pos, $P10
+    ge rx197_pos, rx197_eos, rxscan201_done
+  rxscan201_scan:
+    set_addr $I10, rxscan201_loop
+    rx197_cur."!mark_push"(0, rx197_pos, $I10)
+  rxscan201_done:
+.annotate 'line', 78
+  # rx literal  "("
+    add $I11, rx197_pos, 1
+    gt $I11, rx197_eos, rx197_fail
+    sub $I11, rx197_pos, rx197_off
+    substr $S10, rx197_tgt, $I11, 1
+    ne $S10, "(", rx197_fail
+    add rx197_pos, 1
+  # rx subrule "nibbler" subtype=capture negate=
+    rx197_cur."!cursor_pos"(rx197_pos)
+    $P10 = rx197_cur."nibbler"()
+    unless $P10, rx197_fail
+    rx197_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("nibbler")
+    rx197_pos = $P10."pos"()
+  # rx literal  ")"
+    add $I11, rx197_pos, 1
+    gt $I11, rx197_eos, rx197_fail
+    sub $I11, rx197_pos, rx197_off
+    substr $S10, rx197_tgt, $I11, 1
+    ne $S10, ")", rx197_fail
+    add rx197_pos, 1
   # rx pass
-    rx196_cur."!cursor_pass"(rx196_pos, "metachar:sym<ws>")
-    rx196_cur."!cursor_debug"("PASS  ", "metachar:sym<ws>", " at pos=", rx196_pos)
-    .return (rx196_cur)
-  rx196_fail:
+    rx197_cur."!cursor_pass"(rx197_pos, "metachar:sym<( )>")
+    rx197_cur."!cursor_debug"("PASS  ", "metachar:sym<( )>", " at pos=", rx197_pos)
+    .return (rx197_cur)
+  rx197_restart:
 .annotate 'line', 3
-    (rx196_rep, rx196_pos, $I10, $P10) = rx196_cur."!mark_fail"(0)
-    lt rx196_pos, -1, rx196_done
-    eq rx196_pos, -1, rx196_fail
+    rx197_cur."!cursor_debug"("NEXT ", "metachar:sym<( )>")
+  rx197_fail:
+    (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0)
+    lt rx197_pos, -1, rx197_done
+    eq rx197_pos, -1, rx197_fail
     jump $I10
-  rx196_done:
-    rx196_cur."!cursor_fail"()
-    rx196_cur."!cursor_debug"("FAIL  ", "metachar:sym<ws>")
-    .return (rx196_cur)
+  rx197_done:
+    rx197_cur."!cursor_fail"()
+    rx197_cur."!cursor_debug"("FAIL  ", "metachar:sym<( )>")
+    .return (rx197_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<ws>"  :subid("52_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<( )>"  :subid("56_1280467470.54449") :method
 .annotate 'line', 3
-    $P198 = self."!PREFIX__!subrule"("normspace", "")
-    new $P199, "ResizablePMCArray"
-    push $P199, $P198
-    .return ($P199)
+    $P199 = self."!PREFIX__!subrule"("nibbler", "(")
+    new $P200, "ResizablePMCArray"
+    push $P200, $P199
+    .return ($P200)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<[ ]>"  :subid("53_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<'>"  :subid("57_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx202_tgt
-    .local int rx202_pos
-    .local int rx202_off
-    .local int rx202_eos
-    .local int rx202_rep
-    .local pmc rx202_cur
-    (rx202_cur, rx202_pos, rx202_tgt) = self."!cursor_start"()
-    rx202_cur."!cursor_debug"("START ", "metachar:sym<[ ]>")
-    .lex unicode:"$\x{a2}", rx202_cur
+    .local string rx203_tgt
+    .local int rx203_pos
+    .local int rx203_off
+    .local int rx203_eos
+    .local int rx203_rep
+    .local pmc rx203_cur
+    (rx203_cur, rx203_pos, rx203_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx203_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:
+    length rx203_eos, rx203_tgt
+    gt rx203_pos, rx203_eos, rx203_done
+    set rx203_off, 0
+    lt rx203_pos, 2, rx203_start
+    sub rx203_off, rx203_pos, 1
+    substr rx203_tgt, rx203_tgt, rx203_off
+  rx203_start:
+    eq $I10, 1, rx203_restart
+    rx203_cur."!cursor_debug"("START ", "metachar:sym<'>")
     $I10 = self.'from'()
     ne $I10, -1, rxscan206_done
     goto rxscan206_scan
   rxscan206_loop:
-    ($P10) = rx202_cur."from"()
+    ($P10) = rx203_cur."from"()
     inc $P10
-    set rx202_pos, $P10
-    ge rx202_pos, rx202_eos, rxscan206_done
+    set rx203_pos, $P10
+    ge rx203_pos, rx203_eos, rxscan206_done
   rxscan206_scan:
     set_addr $I10, rxscan206_loop
-    rx202_cur."!mark_push"(0, rx202_pos, $I10)
+    rx203_cur."!mark_push"(0, rx203_pos, $I10)
   rxscan206_done:
-.annotate 'line', 77
-  # rx literal  "["
-    add $I11, rx202_pos, 1
-    gt $I11, rx202_eos, rx202_fail
-    sub $I11, rx202_pos, rx202_off
-    substr $S10, rx202_tgt, $I11, 1
-    ne $S10, "[", rx202_fail
-    add rx202_pos, 1
-  # rx subrule "nibbler" subtype=capture negate=
-    rx202_cur."!cursor_pos"(rx202_pos)
-    $P10 = rx202_cur."nibbler"()
-    unless $P10, rx202_fail
-    rx202_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("nibbler")
-    rx202_pos = $P10."pos"()
-  # rx literal  "]"
-    add $I11, rx202_pos, 1
-    gt $I11, rx202_eos, rx202_fail
-    sub $I11, rx202_pos, rx202_off
-    substr $S10, rx202_tgt, $I11, 1
-    ne $S10, "]", rx202_fail
-    add rx202_pos, 1
+.annotate 'line', 79
+  # rx enumcharlist negate=0 zerowidth
+    ge rx203_pos, rx203_eos, rx203_fail
+    sub $I10, rx203_pos, rx203_off
+    substr $S10, rx203_tgt, $I10, 1
+    index $I11, "'", $S10
+    lt $I11, 0, rx203_fail
+  # rx subrule "quote_EXPR" subtype=capture negate=
+    rx203_cur."!cursor_pos"(rx203_pos)
+    $P10 = rx203_cur."quote_EXPR"(":q")
+    unless $P10, rx203_fail
+    rx203_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("quote_EXPR")
+    rx203_pos = $P10."pos"()
   # rx pass
-    rx202_cur."!cursor_pass"(rx202_pos, "metachar:sym<[ ]>")
-    rx202_cur."!cursor_debug"("PASS  ", "metachar:sym<[ ]>", " at pos=", rx202_pos)
-    .return (rx202_cur)
-  rx202_fail:
+    rx203_cur."!cursor_pass"(rx203_pos, "metachar:sym<'>")
+    rx203_cur."!cursor_debug"("PASS  ", "metachar:sym<'>", " at pos=", rx203_pos)
+    .return (rx203_cur)
+  rx203_restart:
 .annotate 'line', 3
-    (rx202_rep, rx202_pos, $I10, $P10) = rx202_cur."!mark_fail"(0)
-    lt rx202_pos, -1, rx202_done
-    eq rx202_pos, -1, rx202_fail
+    rx203_cur."!cursor_debug"("NEXT ", "metachar:sym<'>")
+  rx203_fail:
+    (rx203_rep, rx203_pos, $I10, $P10) = rx203_cur."!mark_fail"(0)
+    lt rx203_pos, -1, rx203_done
+    eq rx203_pos, -1, rx203_fail
     jump $I10
-  rx202_done:
-    rx202_cur."!cursor_fail"()
-    rx202_cur."!cursor_debug"("FAIL  ", "metachar:sym<[ ]>")
-    .return (rx202_cur)
+  rx203_done:
+    rx203_cur."!cursor_fail"()
+    rx203_cur."!cursor_debug"("FAIL  ", "metachar:sym<'>")
+    .return (rx203_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<[ ]>"  :subid("54_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<'>"  :subid("58_1280467470.54449") :method
 .annotate 'line', 3
-    $P204 = self."!PREFIX__!subrule"("nibbler", "[")
     new $P205, "ResizablePMCArray"
-    push $P205, $P204
+    push $P205, "'"
     .return ($P205)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<( )>"  :subid("55_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<\">"  :subid("59_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
     .local string rx208_tgt
     .local int rx208_pos
@@ -2322,8 +2582,7 @@
     .local int rx208_eos
     .local int rx208_rep
     .local pmc rx208_cur
-    (rx208_cur, rx208_pos, rx208_tgt) = self."!cursor_start"()
-    rx208_cur."!cursor_debug"("START ", "metachar:sym<( )>")
+    (rx208_cur, rx208_pos, rx208_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx208_cur
     .local pmc match
     .lex "$/", match
@@ -2334,144 +2593,150 @@
     sub rx208_off, rx208_pos, 1
     substr rx208_tgt, rx208_tgt, rx208_off
   rx208_start:
+    eq $I10, 1, rx208_restart
+    rx208_cur."!cursor_debug"("START ", "metachar:sym<\">")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan212_done
-    goto rxscan212_scan
-  rxscan212_loop:
+    ne $I10, -1, rxscan211_done
+    goto rxscan211_scan
+  rxscan211_loop:
     ($P10) = rx208_cur."from"()
     inc $P10
     set rx208_pos, $P10
-    ge rx208_pos, rx208_eos, rxscan212_done
-  rxscan212_scan:
-    set_addr $I10, rxscan212_loop
+    ge rx208_pos, rx208_eos, rxscan211_done
+  rxscan211_scan:
+    set_addr $I10, rxscan211_loop
     rx208_cur."!mark_push"(0, rx208_pos, $I10)
-  rxscan212_done:
-.annotate 'line', 78
-  # rx literal  "("
-    add $I11, rx208_pos, 1
-    gt $I11, rx208_eos, rx208_fail
-    sub $I11, rx208_pos, rx208_off
-    substr $S10, rx208_tgt, $I11, 1
-    ne $S10, "(", rx208_fail
-    add rx208_pos, 1
-  # rx subrule "nibbler" subtype=capture negate=
+  rxscan211_done:
+.annotate 'line', 80
+  # rx enumcharlist negate=0 zerowidth
+    ge rx208_pos, rx208_eos, rx208_fail
+    sub $I10, rx208_pos, rx208_off
+    substr $S10, rx208_tgt, $I10, 1
+    index $I11, "\"", $S10
+    lt $I11, 0, rx208_fail
+  # rx subrule "quote_EXPR" subtype=capture negate=
     rx208_cur."!cursor_pos"(rx208_pos)
-    $P10 = rx208_cur."nibbler"()
+    $P10 = rx208_cur."quote_EXPR"(":qq")
     unless $P10, rx208_fail
     rx208_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("nibbler")
+    $P10."!cursor_names"("quote_EXPR")
     rx208_pos = $P10."pos"()
-  # rx literal  ")"
-    add $I11, rx208_pos, 1
-    gt $I11, rx208_eos, rx208_fail
-    sub $I11, rx208_pos, rx208_off
-    substr $S10, rx208_tgt, $I11, 1
-    ne $S10, ")", rx208_fail
-    add rx208_pos, 1
   # rx pass
-    rx208_cur."!cursor_pass"(rx208_pos, "metachar:sym<( )>")
-    rx208_cur."!cursor_debug"("PASS  ", "metachar:sym<( )>", " at pos=", rx208_pos)
+    rx208_cur."!cursor_pass"(rx208_pos, "metachar:sym<\">")
+    rx208_cur."!cursor_debug"("PASS  ", "metachar:sym<\">", " at pos=", rx208_pos)
     .return (rx208_cur)
-  rx208_fail:
+  rx208_restart:
 .annotate 'line', 3
+    rx208_cur."!cursor_debug"("NEXT ", "metachar:sym<\">")
+  rx208_fail:
     (rx208_rep, rx208_pos, $I10, $P10) = rx208_cur."!mark_fail"(0)
     lt rx208_pos, -1, rx208_done
     eq rx208_pos, -1, rx208_fail
     jump $I10
   rx208_done:
     rx208_cur."!cursor_fail"()
-    rx208_cur."!cursor_debug"("FAIL  ", "metachar:sym<( )>")
+    rx208_cur."!cursor_debug"("FAIL  ", "metachar:sym<\">")
     .return (rx208_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<( )>"  :subid("56_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<\">"  :subid("60_1280467470.54449") :method
 .annotate 'line', 3
-    $P210 = self."!PREFIX__!subrule"("nibbler", "(")
-    new $P211, "ResizablePMCArray"
-    push $P211, $P210
-    .return ($P211)
+    new $P210, "ResizablePMCArray"
+    push $P210, "\""
+    .return ($P210)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<'>"  :subid("57_1277356887.58177") :method :outer("11_1277356887.58177")
-.annotate 'line', 3
-    .local string rx214_tgt
-    .local int rx214_pos
-    .local int rx214_off
-    .local int rx214_eos
-    .local int rx214_rep
-    .local pmc rx214_cur
-    (rx214_cur, rx214_pos, rx214_tgt) = self."!cursor_start"()
-    rx214_cur."!cursor_debug"("START ", "metachar:sym<'>")
-    .lex unicode:"$\x{a2}", rx214_cur
-    .local pmc match
-    .lex "$/", match
-    length rx214_eos, rx214_tgt
-    gt rx214_pos, rx214_eos, rx214_done
-    set rx214_off, 0
-    lt rx214_pos, 2, rx214_start
-    sub rx214_off, rx214_pos, 1
-    substr rx214_tgt, rx214_tgt, rx214_off
-  rx214_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan217_done
-    goto rxscan217_scan
-  rxscan217_loop:
-    ($P10) = rx214_cur."from"()
-    inc $P10
-    set rx214_pos, $P10
-    ge rx214_pos, rx214_eos, rxscan217_done
-  rxscan217_scan:
-    set_addr $I10, rxscan217_loop
-    rx214_cur."!mark_push"(0, rx214_pos, $I10)
-  rxscan217_done:
-.annotate 'line', 79
-  # rx enumcharlist negate=0 zerowidth
-    ge rx214_pos, rx214_eos, rx214_fail
-    sub $I10, rx214_pos, rx214_off
-    substr $S10, rx214_tgt, $I10, 1
-    index $I11, "'", $S10
-    lt $I11, 0, rx214_fail
-  # rx subrule "quote_EXPR" subtype=capture negate=
-    rx214_cur."!cursor_pos"(rx214_pos)
-    $P10 = rx214_cur."quote_EXPR"(":q")
-    unless $P10, rx214_fail
-    rx214_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
-    rx214_pos = $P10."pos"()
+.sub "metachar:sym<.>"  :subid("61_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+    .local string rx213_tgt
+    .local int rx213_pos
+    .local int rx213_off
+    .local int rx213_eos
+    .local int rx213_rep
+    .local pmc rx213_cur
+    (rx213_cur, rx213_pos, rx213_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx213_cur
+    .local pmc match
+    .lex "$/", match
+    length rx213_eos, rx213_tgt
+    gt rx213_pos, rx213_eos, rx213_done
+    set rx213_off, 0
+    lt rx213_pos, 2, rx213_start
+    sub rx213_off, rx213_pos, 1
+    substr rx213_tgt, rx213_tgt, rx213_off
+  rx213_start:
+    eq $I10, 1, rx213_restart
+    rx213_cur."!cursor_debug"("START ", "metachar:sym<.>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan216_done
+    goto rxscan216_scan
+  rxscan216_loop:
+    ($P10) = rx213_cur."from"()
+    inc $P10
+    set rx213_pos, $P10
+    ge rx213_pos, rx213_eos, rxscan216_done
+  rxscan216_scan:
+    set_addr $I10, rxscan216_loop
+    rx213_cur."!mark_push"(0, rx213_pos, $I10)
+  rxscan216_done:
+.annotate 'line', 81
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_217_fail
+    rx213_cur."!mark_push"(0, rx213_pos, $I10)
+  # rx literal  "."
+    add $I11, rx213_pos, 1
+    gt $I11, rx213_eos, rx213_fail
+    sub $I11, rx213_pos, rx213_off
+    substr $S10, rx213_tgt, $I11, 1
+    ne $S10, ".", rx213_fail
+    add rx213_pos, 1
+    set_addr $I10, rxcap_217_fail
+    ($I12, $I11) = rx213_cur."!mark_peek"($I10)
+    rx213_cur."!cursor_pos"($I11)
+    ($P10) = rx213_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx213_pos, "")
+    rx213_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_217_done
+  rxcap_217_fail:
+    goto rx213_fail
+  rxcap_217_done:
   # rx pass
-    rx214_cur."!cursor_pass"(rx214_pos, "metachar:sym<'>")
-    rx214_cur."!cursor_debug"("PASS  ", "metachar:sym<'>", " at pos=", rx214_pos)
-    .return (rx214_cur)
-  rx214_fail:
+    rx213_cur."!cursor_pass"(rx213_pos, "metachar:sym<.>")
+    rx213_cur."!cursor_debug"("PASS  ", "metachar:sym<.>", " at pos=", rx213_pos)
+    .return (rx213_cur)
+  rx213_restart:
 .annotate 'line', 3
-    (rx214_rep, rx214_pos, $I10, $P10) = rx214_cur."!mark_fail"(0)
-    lt rx214_pos, -1, rx214_done
-    eq rx214_pos, -1, rx214_fail
+    rx213_cur."!cursor_debug"("NEXT ", "metachar:sym<.>")
+  rx213_fail:
+    (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0)
+    lt rx213_pos, -1, rx213_done
+    eq rx213_pos, -1, rx213_fail
     jump $I10
-  rx214_done:
-    rx214_cur."!cursor_fail"()
-    rx214_cur."!cursor_debug"("FAIL  ", "metachar:sym<'>")
-    .return (rx214_cur)
+  rx213_done:
+    rx213_cur."!cursor_fail"()
+    rx213_cur."!cursor_debug"("FAIL  ", "metachar:sym<.>")
+    .return (rx213_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<'>"  :subid("58_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<.>"  :subid("62_1280467470.54449") :method
 .annotate 'line', 3
-    new $P216, "ResizablePMCArray"
-    push $P216, "'"
-    .return ($P216)
+    new $P215, "ResizablePMCArray"
+    push $P215, "."
+    .return ($P215)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<\">"  :subid("59_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<^>"  :subid("63_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
     .local string rx219_tgt
     .local int rx219_pos
@@ -2479,8 +2744,7 @@
     .local int rx219_eos
     .local int rx219_rep
     .local pmc rx219_cur
-    (rx219_cur, rx219_pos, rx219_tgt) = self."!cursor_start"()
-    rx219_cur."!cursor_debug"("START ", "metachar:sym<\">")
+    (rx219_cur, rx219_pos, rx219_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx219_cur
     .local pmc match
     .lex "$/", match
@@ -2491,6 +2755,8 @@
     sub rx219_off, rx219_pos, 1
     substr rx219_tgt, rx219_tgt, rx219_off
   rx219_start:
+    eq $I10, 1, rx219_restart
+    rx219_cur."!cursor_debug"("START ", "metachar:sym<^>")
     $I10 = self.'from'()
     ne $I10, -1, rxscan222_done
     goto rxscan222_scan
@@ -2503,1538 +2769,1646 @@
     set_addr $I10, rxscan222_loop
     rx219_cur."!mark_push"(0, rx219_pos, $I10)
   rxscan222_done:
-.annotate 'line', 80
-  # rx enumcharlist negate=0 zerowidth
-    ge rx219_pos, rx219_eos, rx219_fail
-    sub $I10, rx219_pos, rx219_off
-    substr $S10, rx219_tgt, $I10, 1
-    index $I11, "\"", $S10
-    lt $I11, 0, rx219_fail
-  # rx subrule "quote_EXPR" subtype=capture negate=
-    rx219_cur."!cursor_pos"(rx219_pos)
-    $P10 = rx219_cur."quote_EXPR"(":qq")
-    unless $P10, rx219_fail
+.annotate 'line', 82
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_223_fail
+    rx219_cur."!mark_push"(0, rx219_pos, $I10)
+  # rx literal  "^"
+    add $I11, rx219_pos, 1
+    gt $I11, rx219_eos, rx219_fail
+    sub $I11, rx219_pos, rx219_off
+    substr $S10, rx219_tgt, $I11, 1
+    ne $S10, "^", rx219_fail
+    add rx219_pos, 1
+    set_addr $I10, rxcap_223_fail
+    ($I12, $I11) = rx219_cur."!mark_peek"($I10)
+    rx219_cur."!cursor_pos"($I11)
+    ($P10) = rx219_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx219_pos, "")
     rx219_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
-    rx219_pos = $P10."pos"()
+    $P10."!cursor_names"("sym")
+    goto rxcap_223_done
+  rxcap_223_fail:
+    goto rx219_fail
+  rxcap_223_done:
   # rx pass
-    rx219_cur."!cursor_pass"(rx219_pos, "metachar:sym<\">")
-    rx219_cur."!cursor_debug"("PASS  ", "metachar:sym<\">", " at pos=", rx219_pos)
+    rx219_cur."!cursor_pass"(rx219_pos, "metachar:sym<^>")
+    rx219_cur."!cursor_debug"("PASS  ", "metachar:sym<^>", " at pos=", rx219_pos)
     .return (rx219_cur)
-  rx219_fail:
+  rx219_restart:
 .annotate 'line', 3
+    rx219_cur."!cursor_debug"("NEXT ", "metachar:sym<^>")
+  rx219_fail:
     (rx219_rep, rx219_pos, $I10, $P10) = rx219_cur."!mark_fail"(0)
     lt rx219_pos, -1, rx219_done
     eq rx219_pos, -1, rx219_fail
     jump $I10
   rx219_done:
     rx219_cur."!cursor_fail"()
-    rx219_cur."!cursor_debug"("FAIL  ", "metachar:sym<\">")
+    rx219_cur."!cursor_debug"("FAIL  ", "metachar:sym<^>")
     .return (rx219_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<\">"  :subid("60_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<^>"  :subid("64_1280467470.54449") :method
 .annotate 'line', 3
     new $P221, "ResizablePMCArray"
-    push $P221, "\""
+    push $P221, "^"
     .return ($P221)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<.>"  :subid("61_1277356887.58177") :method :outer("11_1277356887.58177")
-.annotate 'line', 3
-    .local string rx224_tgt
-    .local int rx224_pos
-    .local int rx224_off
-    .local int rx224_eos
-    .local int rx224_rep
-    .local pmc rx224_cur
-    (rx224_cur, rx224_pos, rx224_tgt) = self."!cursor_start"()
-    rx224_cur."!cursor_debug"("START ", "metachar:sym<.>")
-    .lex unicode:"$\x{a2}", rx224_cur
-    .local pmc match
-    .lex "$/", match
-    length rx224_eos, rx224_tgt
-    gt rx224_pos, rx224_eos, rx224_done
-    set rx224_off, 0
-    lt rx224_pos, 2, rx224_start
-    sub rx224_off, rx224_pos, 1
-    substr rx224_tgt, rx224_tgt, rx224_off
-  rx224_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan227_done
-    goto rxscan227_scan
-  rxscan227_loop:
-    ($P10) = rx224_cur."from"()
-    inc $P10
-    set rx224_pos, $P10
-    ge rx224_pos, rx224_eos, rxscan227_done
-  rxscan227_scan:
-    set_addr $I10, rxscan227_loop
-    rx224_cur."!mark_push"(0, rx224_pos, $I10)
-  rxscan227_done:
-.annotate 'line', 81
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_228_fail
-    rx224_cur."!mark_push"(0, rx224_pos, $I10)
-  # rx literal  "."
-    add $I11, rx224_pos, 1
-    gt $I11, rx224_eos, rx224_fail
-    sub $I11, rx224_pos, rx224_off
-    substr $S10, rx224_tgt, $I11, 1
-    ne $S10, ".", rx224_fail
-    add rx224_pos, 1
-    set_addr $I10, rxcap_228_fail
-    ($I12, $I11) = rx224_cur."!mark_peek"($I10)
-    rx224_cur."!cursor_pos"($I11)
-    ($P10) = rx224_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx224_pos, "")
-    rx224_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_228_done
-  rxcap_228_fail:
-    goto rx224_fail
-  rxcap_228_done:
-  # rx pass
-    rx224_cur."!cursor_pass"(rx224_pos, "metachar:sym<.>")
-    rx224_cur."!cursor_debug"("PASS  ", "metachar:sym<.>", " at pos=", rx224_pos)
-    .return (rx224_cur)
-  rx224_fail:
-.annotate 'line', 3
-    (rx224_rep, rx224_pos, $I10, $P10) = rx224_cur."!mark_fail"(0)
-    lt rx224_pos, -1, rx224_done
-    eq rx224_pos, -1, rx224_fail
-    jump $I10
-  rx224_done:
-    rx224_cur."!cursor_fail"()
-    rx224_cur."!cursor_debug"("FAIL  ", "metachar:sym<.>")
-    .return (rx224_cur)
-    .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<.>"  :subid("62_1277356887.58177") :method
-.annotate 'line', 3
-    new $P226, "ResizablePMCArray"
-    push $P226, "."
-    .return ($P226)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^>"  :subid("63_1277356887.58177") :method :outer("11_1277356887.58177")
-.annotate 'line', 3
-    .local string rx230_tgt
-    .local int rx230_pos
-    .local int rx230_off
-    .local int rx230_eos
-    .local int rx230_rep
-    .local pmc rx230_cur
-    (rx230_cur, rx230_pos, rx230_tgt) = self."!cursor_start"()
-    rx230_cur."!cursor_debug"("START ", "metachar:sym<^>")
-    .lex unicode:"$\x{a2}", rx230_cur
-    .local pmc match
-    .lex "$/", match
-    length rx230_eos, rx230_tgt
-    gt rx230_pos, rx230_eos, rx230_done
-    set rx230_off, 0
-    lt rx230_pos, 2, rx230_start
-    sub rx230_off, rx230_pos, 1
-    substr rx230_tgt, rx230_tgt, rx230_off
-  rx230_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan233_done
-    goto rxscan233_scan
-  rxscan233_loop:
-    ($P10) = rx230_cur."from"()
-    inc $P10
-    set rx230_pos, $P10
-    ge rx230_pos, rx230_eos, rxscan233_done
-  rxscan233_scan:
-    set_addr $I10, rxscan233_loop
-    rx230_cur."!mark_push"(0, rx230_pos, $I10)
-  rxscan233_done:
-.annotate 'line', 82
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_234_fail
-    rx230_cur."!mark_push"(0, rx230_pos, $I10)
-  # rx literal  "^"
-    add $I11, rx230_pos, 1
-    gt $I11, rx230_eos, rx230_fail
-    sub $I11, rx230_pos, rx230_off
-    substr $S10, rx230_tgt, $I11, 1
-    ne $S10, "^", rx230_fail
-    add rx230_pos, 1
-    set_addr $I10, rxcap_234_fail
-    ($I12, $I11) = rx230_cur."!mark_peek"($I10)
-    rx230_cur."!cursor_pos"($I11)
-    ($P10) = rx230_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx230_pos, "")
-    rx230_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_234_done
-  rxcap_234_fail:
-    goto rx230_fail
-  rxcap_234_done:
-  # rx pass
-    rx230_cur."!cursor_pass"(rx230_pos, "metachar:sym<^>")
-    rx230_cur."!cursor_debug"("PASS  ", "metachar:sym<^>", " at pos=", rx230_pos)
-    .return (rx230_cur)
-  rx230_fail:
-.annotate 'line', 3
-    (rx230_rep, rx230_pos, $I10, $P10) = rx230_cur."!mark_fail"(0)
-    lt rx230_pos, -1, rx230_done
-    eq rx230_pos, -1, rx230_fail
-    jump $I10
-  rx230_done:
-    rx230_cur."!cursor_fail"()
-    rx230_cur."!cursor_debug"("FAIL  ", "metachar:sym<^>")
-    .return (rx230_cur)
-    .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^>"  :subid("64_1277356887.58177") :method
-.annotate 'line', 3
-    new $P232, "ResizablePMCArray"
-    push $P232, "^"
-    .return ($P232)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^^>"  :subid("65_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<^^>"  :subid("65_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx236_tgt
-    .local int rx236_pos
-    .local int rx236_off
-    .local int rx236_eos
-    .local int rx236_rep
-    .local pmc rx236_cur
-    (rx236_cur, rx236_pos, rx236_tgt) = self."!cursor_start"()
-    rx236_cur."!cursor_debug"("START ", "metachar:sym<^^>")
-    .lex unicode:"$\x{a2}", rx236_cur
-    .local pmc match
-    .lex "$/", match
-    length rx236_eos, rx236_tgt
-    gt rx236_pos, rx236_eos, rx236_done
-    set rx236_off, 0
-    lt rx236_pos, 2, rx236_start
-    sub rx236_off, rx236_pos, 1
-    substr rx236_tgt, rx236_tgt, rx236_off
-  rx236_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan239_done
-    goto rxscan239_scan
-  rxscan239_loop:
-    ($P10) = rx236_cur."from"()
-    inc $P10
-    set rx236_pos, $P10
-    ge rx236_pos, rx236_eos, rxscan239_done
-  rxscan239_scan:
-    set_addr $I10, rxscan239_loop
-    rx236_cur."!mark_push"(0, rx236_pos, $I10)
-  rxscan239_done:
+    .local string rx225_tgt
+    .local int rx225_pos
+    .local int rx225_off
+    .local int rx225_eos
+    .local int rx225_rep
+    .local pmc rx225_cur
+    (rx225_cur, rx225_pos, rx225_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx225_cur
+    .local pmc match
+    .lex "$/", match
+    length rx225_eos, rx225_tgt
+    gt rx225_pos, rx225_eos, rx225_done
+    set rx225_off, 0
+    lt rx225_pos, 2, rx225_start
+    sub rx225_off, rx225_pos, 1
+    substr rx225_tgt, rx225_tgt, rx225_off
+  rx225_start:
+    eq $I10, 1, rx225_restart
+    rx225_cur."!cursor_debug"("START ", "metachar:sym<^^>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan228_done
+    goto rxscan228_scan
+  rxscan228_loop:
+    ($P10) = rx225_cur."from"()
+    inc $P10
+    set rx225_pos, $P10
+    ge rx225_pos, rx225_eos, rxscan228_done
+  rxscan228_scan:
+    set_addr $I10, rxscan228_loop
+    rx225_cur."!mark_push"(0, rx225_pos, $I10)
+  rxscan228_done:
 .annotate 'line', 83
   # rx subcapture "sym"
-    set_addr $I10, rxcap_240_fail
-    rx236_cur."!mark_push"(0, rx236_pos, $I10)
+    set_addr $I10, rxcap_229_fail
+    rx225_cur."!mark_push"(0, rx225_pos, $I10)
   # rx literal  "^^"
-    add $I11, rx236_pos, 2
-    gt $I11, rx236_eos, rx236_fail
-    sub $I11, rx236_pos, rx236_off
-    substr $S10, rx236_tgt, $I11, 2
-    ne $S10, "^^", rx236_fail
-    add rx236_pos, 2
-    set_addr $I10, rxcap_240_fail
-    ($I12, $I11) = rx236_cur."!mark_peek"($I10)
-    rx236_cur."!cursor_pos"($I11)
-    ($P10) = rx236_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx236_pos, "")
-    rx236_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx225_pos, 2
+    gt $I11, rx225_eos, rx225_fail
+    sub $I11, rx225_pos, rx225_off
+    substr $S10, rx225_tgt, $I11, 2
+    ne $S10, "^^", rx225_fail
+    add rx225_pos, 2
+    set_addr $I10, rxcap_229_fail
+    ($I12, $I11) = rx225_cur."!mark_peek"($I10)
+    rx225_cur."!cursor_pos"($I11)
+    ($P10) = rx225_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx225_pos, "")
+    rx225_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_240_done
-  rxcap_240_fail:
-    goto rx236_fail
-  rxcap_240_done:
+    goto rxcap_229_done
+  rxcap_229_fail:
+    goto rx225_fail
+  rxcap_229_done:
   # rx pass
-    rx236_cur."!cursor_pass"(rx236_pos, "metachar:sym<^^>")
-    rx236_cur."!cursor_debug"("PASS  ", "metachar:sym<^^>", " at pos=", rx236_pos)
-    .return (rx236_cur)
-  rx236_fail:
+    rx225_cur."!cursor_pass"(rx225_pos, "metachar:sym<^^>")
+    rx225_cur."!cursor_debug"("PASS  ", "metachar:sym<^^>", " at pos=", rx225_pos)
+    .return (rx225_cur)
+  rx225_restart:
 .annotate 'line', 3
-    (rx236_rep, rx236_pos, $I10, $P10) = rx236_cur."!mark_fail"(0)
-    lt rx236_pos, -1, rx236_done
-    eq rx236_pos, -1, rx236_fail
+    rx225_cur."!cursor_debug"("NEXT ", "metachar:sym<^^>")
+  rx225_fail:
+    (rx225_rep, rx225_pos, $I10, $P10) = rx225_cur."!mark_fail"(0)
+    lt rx225_pos, -1, rx225_done
+    eq rx225_pos, -1, rx225_fail
     jump $I10
-  rx236_done:
-    rx236_cur."!cursor_fail"()
-    rx236_cur."!cursor_debug"("FAIL  ", "metachar:sym<^^>")
-    .return (rx236_cur)
+  rx225_done:
+    rx225_cur."!cursor_fail"()
+    rx225_cur."!cursor_debug"("FAIL  ", "metachar:sym<^^>")
+    .return (rx225_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^^>"  :subid("66_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<^^>"  :subid("66_1280467470.54449") :method
 .annotate 'line', 3
-    new $P238, "ResizablePMCArray"
-    push $P238, "^^"
-    .return ($P238)
+    new $P227, "ResizablePMCArray"
+    push $P227, "^^"
+    .return ($P227)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$>"  :subid("67_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<$>"  :subid("67_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx242_tgt
-    .local int rx242_pos
-    .local int rx242_off
-    .local int rx242_eos
-    .local int rx242_rep
-    .local pmc rx242_cur
-    (rx242_cur, rx242_pos, rx242_tgt) = self."!cursor_start"()
-    rx242_cur."!cursor_debug"("START ", "metachar:sym<$>")
-    .lex unicode:"$\x{a2}", rx242_cur
+    .local string rx231_tgt
+    .local int rx231_pos
+    .local int rx231_off
+    .local int rx231_eos
+    .local int rx231_rep
+    .local pmc rx231_cur
+    (rx231_cur, rx231_pos, rx231_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx231_cur
     .local pmc match
     .lex "$/", match
-    length rx242_eos, rx242_tgt
-    gt rx242_pos, rx242_eos, rx242_done
-    set rx242_off, 0
-    lt rx242_pos, 2, rx242_start
-    sub rx242_off, rx242_pos, 1
-    substr rx242_tgt, rx242_tgt, rx242_off
-  rx242_start:
+    length rx231_eos, rx231_tgt
+    gt rx231_pos, rx231_eos, rx231_done
+    set rx231_off, 0
+    lt rx231_pos, 2, rx231_start
+    sub rx231_off, rx231_pos, 1
+    substr rx231_tgt, rx231_tgt, rx231_off
+  rx231_start:
+    eq $I10, 1, rx231_restart
+    rx231_cur."!cursor_debug"("START ", "metachar:sym<$>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan245_done
-    goto rxscan245_scan
-  rxscan245_loop:
-    ($P10) = rx242_cur."from"()
+    ne $I10, -1, rxscan234_done
+    goto rxscan234_scan
+  rxscan234_loop:
+    ($P10) = rx231_cur."from"()
     inc $P10
-    set rx242_pos, $P10
-    ge rx242_pos, rx242_eos, rxscan245_done
-  rxscan245_scan:
-    set_addr $I10, rxscan245_loop
-    rx242_cur."!mark_push"(0, rx242_pos, $I10)
-  rxscan245_done:
+    set rx231_pos, $P10
+    ge rx231_pos, rx231_eos, rxscan234_done
+  rxscan234_scan:
+    set_addr $I10, rxscan234_loop
+    rx231_cur."!mark_push"(0, rx231_pos, $I10)
+  rxscan234_done:
 .annotate 'line', 84
   # rx subcapture "sym"
-    set_addr $I10, rxcap_246_fail
-    rx242_cur."!mark_push"(0, rx242_pos, $I10)
+    set_addr $I10, rxcap_235_fail
+    rx231_cur."!mark_push"(0, rx231_pos, $I10)
   # rx literal  "$"
-    add $I11, rx242_pos, 1
-    gt $I11, rx242_eos, rx242_fail
-    sub $I11, rx242_pos, rx242_off
-    substr $S10, rx242_tgt, $I11, 1
-    ne $S10, "$", rx242_fail
-    add rx242_pos, 1
-    set_addr $I10, rxcap_246_fail
-    ($I12, $I11) = rx242_cur."!mark_peek"($I10)
-    rx242_cur."!cursor_pos"($I11)
-    ($P10) = rx242_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx242_pos, "")
-    rx242_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx231_pos, 1
+    gt $I11, rx231_eos, rx231_fail
+    sub $I11, rx231_pos, rx231_off
+    substr $S10, rx231_tgt, $I11, 1
+    ne $S10, "$", rx231_fail
+    add rx231_pos, 1
+    set_addr $I10, rxcap_235_fail
+    ($I12, $I11) = rx231_cur."!mark_peek"($I10)
+    rx231_cur."!cursor_pos"($I11)
+    ($P10) = rx231_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx231_pos, "")
+    rx231_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_246_done
-  rxcap_246_fail:
-    goto rx242_fail
-  rxcap_246_done:
+    goto rxcap_235_done
+  rxcap_235_fail:
+    goto rx231_fail
+  rxcap_235_done:
   # rx pass
-    rx242_cur."!cursor_pass"(rx242_pos, "metachar:sym<$>")
-    rx242_cur."!cursor_debug"("PASS  ", "metachar:sym<$>", " at pos=", rx242_pos)
-    .return (rx242_cur)
-  rx242_fail:
+    rx231_cur."!cursor_pass"(rx231_pos, "metachar:sym<$>")
+    rx231_cur."!cursor_debug"("PASS  ", "metachar:sym<$>", " at pos=", rx231_pos)
+    .return (rx231_cur)
+  rx231_restart:
 .annotate 'line', 3
-    (rx242_rep, rx242_pos, $I10, $P10) = rx242_cur."!mark_fail"(0)
-    lt rx242_pos, -1, rx242_done
-    eq rx242_pos, -1, rx242_fail
+    rx231_cur."!cursor_debug"("NEXT ", "metachar:sym<$>")
+  rx231_fail:
+    (rx231_rep, rx231_pos, $I10, $P10) = rx231_cur."!mark_fail"(0)
+    lt rx231_pos, -1, rx231_done
+    eq rx231_pos, -1, rx231_fail
     jump $I10
-  rx242_done:
-    rx242_cur."!cursor_fail"()
-    rx242_cur."!cursor_debug"("FAIL  ", "metachar:sym<$>")
-    .return (rx242_cur)
+  rx231_done:
+    rx231_cur."!cursor_fail"()
+    rx231_cur."!cursor_debug"("FAIL  ", "metachar:sym<$>")
+    .return (rx231_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$>"  :subid("68_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<$>"  :subid("68_1280467470.54449") :method
 .annotate 'line', 3
-    new $P244, "ResizablePMCArray"
-    push $P244, "$"
-    .return ($P244)
+    new $P233, "ResizablePMCArray"
+    push $P233, "$"
+    .return ($P233)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$$>"  :subid("69_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<$$>"  :subid("69_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx248_tgt
-    .local int rx248_pos
-    .local int rx248_off
-    .local int rx248_eos
-    .local int rx248_rep
-    .local pmc rx248_cur
-    (rx248_cur, rx248_pos, rx248_tgt) = self."!cursor_start"()
-    rx248_cur."!cursor_debug"("START ", "metachar:sym<$$>")
-    .lex unicode:"$\x{a2}", rx248_cur
+    .local string rx237_tgt
+    .local int rx237_pos
+    .local int rx237_off
+    .local int rx237_eos
+    .local int rx237_rep
+    .local pmc rx237_cur
+    (rx237_cur, rx237_pos, rx237_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx237_cur
     .local pmc match
     .lex "$/", match
-    length rx248_eos, rx248_tgt
-    gt rx248_pos, rx248_eos, rx248_done
-    set rx248_off, 0
-    lt rx248_pos, 2, rx248_start
-    sub rx248_off, rx248_pos, 1
-    substr rx248_tgt, rx248_tgt, rx248_off
-  rx248_start:
+    length rx237_eos, rx237_tgt
+    gt rx237_pos, rx237_eos, rx237_done
+    set rx237_off, 0
+    lt rx237_pos, 2, rx237_start
+    sub rx237_off, rx237_pos, 1
+    substr rx237_tgt, rx237_tgt, rx237_off
+  rx237_start:
+    eq $I10, 1, rx237_restart
+    rx237_cur."!cursor_debug"("START ", "metachar:sym<$$>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan251_done
-    goto rxscan251_scan
-  rxscan251_loop:
-    ($P10) = rx248_cur."from"()
+    ne $I10, -1, rxscan240_done
+    goto rxscan240_scan
+  rxscan240_loop:
+    ($P10) = rx237_cur."from"()
     inc $P10
-    set rx248_pos, $P10
-    ge rx248_pos, rx248_eos, rxscan251_done
-  rxscan251_scan:
-    set_addr $I10, rxscan251_loop
-    rx248_cur."!mark_push"(0, rx248_pos, $I10)
-  rxscan251_done:
+    set rx237_pos, $P10
+    ge rx237_pos, rx237_eos, rxscan240_done
+  rxscan240_scan:
+    set_addr $I10, rxscan240_loop
+    rx237_cur."!mark_push"(0, rx237_pos, $I10)
+  rxscan240_done:
 .annotate 'line', 85
   # rx subcapture "sym"
-    set_addr $I10, rxcap_252_fail
-    rx248_cur."!mark_push"(0, rx248_pos, $I10)
+    set_addr $I10, rxcap_241_fail
+    rx237_cur."!mark_push"(0, rx237_pos, $I10)
   # rx literal  "$$"
-    add $I11, rx248_pos, 2
-    gt $I11, rx248_eos, rx248_fail
-    sub $I11, rx248_pos, rx248_off
-    substr $S10, rx248_tgt, $I11, 2
-    ne $S10, "$$", rx248_fail
-    add rx248_pos, 2
-    set_addr $I10, rxcap_252_fail
-    ($I12, $I11) = rx248_cur."!mark_peek"($I10)
-    rx248_cur."!cursor_pos"($I11)
-    ($P10) = rx248_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx248_pos, "")
-    rx248_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx237_pos, 2
+    gt $I11, rx237_eos, rx237_fail
+    sub $I11, rx237_pos, rx237_off
+    substr $S10, rx237_tgt, $I11, 2
+    ne $S10, "$$", rx237_fail
+    add rx237_pos, 2
+    set_addr $I10, rxcap_241_fail
+    ($I12, $I11) = rx237_cur."!mark_peek"($I10)
+    rx237_cur."!cursor_pos"($I11)
+    ($P10) = rx237_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx237_pos, "")
+    rx237_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_252_done
-  rxcap_252_fail:
-    goto rx248_fail
-  rxcap_252_done:
+    goto rxcap_241_done
+  rxcap_241_fail:
+    goto rx237_fail
+  rxcap_241_done:
   # rx pass
-    rx248_cur."!cursor_pass"(rx248_pos, "metachar:sym<$$>")
-    rx248_cur."!cursor_debug"("PASS  ", "metachar:sym<$$>", " at pos=", rx248_pos)
-    .return (rx248_cur)
-  rx248_fail:
+    rx237_cur."!cursor_pass"(rx237_pos, "metachar:sym<$$>")
+    rx237_cur."!cursor_debug"("PASS  ", "metachar:sym<$$>", " at pos=", rx237_pos)
+    .return (rx237_cur)
+  rx237_restart:
 .annotate 'line', 3
-    (rx248_rep, rx248_pos, $I10, $P10) = rx248_cur."!mark_fail"(0)
-    lt rx248_pos, -1, rx248_done
-    eq rx248_pos, -1, rx248_fail
+    rx237_cur."!cursor_debug"("NEXT ", "metachar:sym<$$>")
+  rx237_fail:
+    (rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0)
+    lt rx237_pos, -1, rx237_done
+    eq rx237_pos, -1, rx237_fail
     jump $I10
-  rx248_done:
-    rx248_cur."!cursor_fail"()
-    rx248_cur."!cursor_debug"("FAIL  ", "metachar:sym<$$>")
-    .return (rx248_cur)
+  rx237_done:
+    rx237_cur."!cursor_fail"()
+    rx237_cur."!cursor_debug"("FAIL  ", "metachar:sym<$$>")
+    .return (rx237_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$$>"  :subid("70_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<$$>"  :subid("70_1280467470.54449") :method
 .annotate 'line', 3
-    new $P250, "ResizablePMCArray"
-    push $P250, "$$"
-    .return ($P250)
+    new $P239, "ResizablePMCArray"
+    push $P239, "$$"
+    .return ($P239)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<:::>"  :subid("71_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<:::>"  :subid("71_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx254_tgt
-    .local int rx254_pos
-    .local int rx254_off
-    .local int rx254_eos
-    .local int rx254_rep
-    .local pmc rx254_cur
-    (rx254_cur, rx254_pos, rx254_tgt) = self."!cursor_start"()
-    rx254_cur."!cursor_debug"("START ", "metachar:sym<:::>")
-    .lex unicode:"$\x{a2}", rx254_cur
+    .local string rx243_tgt
+    .local int rx243_pos
+    .local int rx243_off
+    .local int rx243_eos
+    .local int rx243_rep
+    .local pmc rx243_cur
+    (rx243_cur, rx243_pos, rx243_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx243_cur
     .local pmc match
     .lex "$/", match
-    length rx254_eos, rx254_tgt
-    gt rx254_pos, rx254_eos, rx254_done
-    set rx254_off, 0
-    lt rx254_pos, 2, rx254_start
-    sub rx254_off, rx254_pos, 1
-    substr rx254_tgt, rx254_tgt, rx254_off
-  rx254_start:
+    length rx243_eos, rx243_tgt
+    gt rx243_pos, rx243_eos, rx243_done
+    set rx243_off, 0
+    lt rx243_pos, 2, rx243_start
+    sub rx243_off, rx243_pos, 1
+    substr rx243_tgt, rx243_tgt, rx243_off
+  rx243_start:
+    eq $I10, 1, rx243_restart
+    rx243_cur."!cursor_debug"("START ", "metachar:sym<:::>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan258_done
-    goto rxscan258_scan
-  rxscan258_loop:
-    ($P10) = rx254_cur."from"()
+    ne $I10, -1, rxscan247_done
+    goto rxscan247_scan
+  rxscan247_loop:
+    ($P10) = rx243_cur."from"()
     inc $P10
-    set rx254_pos, $P10
-    ge rx254_pos, rx254_eos, rxscan258_done
-  rxscan258_scan:
-    set_addr $I10, rxscan258_loop
-    rx254_cur."!mark_push"(0, rx254_pos, $I10)
-  rxscan258_done:
+    set rx243_pos, $P10
+    ge rx243_pos, rx243_eos, rxscan247_done
+  rxscan247_scan:
+    set_addr $I10, rxscan247_loop
+    rx243_cur."!mark_push"(0, rx243_pos, $I10)
+  rxscan247_done:
 .annotate 'line', 86
   # rx subcapture "sym"
-    set_addr $I10, rxcap_259_fail
-    rx254_cur."!mark_push"(0, rx254_pos, $I10)
+    set_addr $I10, rxcap_248_fail
+    rx243_cur."!mark_push"(0, rx243_pos, $I10)
   # rx literal  ":::"
-    add $I11, rx254_pos, 3
-    gt $I11, rx254_eos, rx254_fail
-    sub $I11, rx254_pos, rx254_off
-    substr $S10, rx254_tgt, $I11, 3
-    ne $S10, ":::", rx254_fail
-    add rx254_pos, 3
-    set_addr $I10, rxcap_259_fail
-    ($I12, $I11) = rx254_cur."!mark_peek"($I10)
-    rx254_cur."!cursor_pos"($I11)
-    ($P10) = rx254_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx254_pos, "")
-    rx254_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx243_pos, 3
+    gt $I11, rx243_eos, rx243_fail
+    sub $I11, rx243_pos, rx243_off
+    substr $S10, rx243_tgt, $I11, 3
+    ne $S10, ":::", rx243_fail
+    add rx243_pos, 3
+    set_addr $I10, rxcap_248_fail
+    ($I12, $I11) = rx243_cur."!mark_peek"($I10)
+    rx243_cur."!cursor_pos"($I11)
+    ($P10) = rx243_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx243_pos, "")
+    rx243_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_259_done
-  rxcap_259_fail:
-    goto rx254_fail
-  rxcap_259_done:
+    goto rxcap_248_done
+  rxcap_248_fail:
+    goto rx243_fail
+  rxcap_248_done:
   # rx subrule "panic" subtype=method negate=
-    rx254_cur."!cursor_pos"(rx254_pos)
-    $P10 = rx254_cur."panic"("::: not yet implemented")
-    unless $P10, rx254_fail
-    rx254_pos = $P10."pos"()
+    rx243_cur."!cursor_pos"(rx243_pos)
+    $P10 = rx243_cur."panic"("::: not yet implemented")
+    unless $P10, rx243_fail
+    rx243_pos = $P10."pos"()
   # rx pass
-    rx254_cur."!cursor_pass"(rx254_pos, "metachar:sym<:::>")
-    rx254_cur."!cursor_debug"("PASS  ", "metachar:sym<:::>", " at pos=", rx254_pos)
-    .return (rx254_cur)
-  rx254_fail:
+    rx243_cur."!cursor_pass"(rx243_pos, "metachar:sym<:::>")
+    rx243_cur."!cursor_debug"("PASS  ", "metachar:sym<:::>", " at pos=", rx243_pos)
+    .return (rx243_cur)
+  rx243_restart:
 .annotate 'line', 3
-    (rx254_rep, rx254_pos, $I10, $P10) = rx254_cur."!mark_fail"(0)
-    lt rx254_pos, -1, rx254_done
-    eq rx254_pos, -1, rx254_fail
+    rx243_cur."!cursor_debug"("NEXT ", "metachar:sym<:::>")
+  rx243_fail:
+    (rx243_rep, rx243_pos, $I10, $P10) = rx243_cur."!mark_fail"(0)
+    lt rx243_pos, -1, rx243_done
+    eq rx243_pos, -1, rx243_fail
     jump $I10
-  rx254_done:
-    rx254_cur."!cursor_fail"()
-    rx254_cur."!cursor_debug"("FAIL  ", "metachar:sym<:::>")
-    .return (rx254_cur)
+  rx243_done:
+    rx243_cur."!cursor_fail"()
+    rx243_cur."!cursor_debug"("FAIL  ", "metachar:sym<:::>")
+    .return (rx243_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<:::>"  :subid("72_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<:::>"  :subid("72_1280467470.54449") :method
 .annotate 'line', 3
-    $P256 = self."!PREFIX__!subrule"("panic", ":::")
-    new $P257, "ResizablePMCArray"
-    push $P257, $P256
-    .return ($P257)
+    $P245 = self."!PREFIX__!subrule"("panic", ":::")
+    new $P246, "ResizablePMCArray"
+    push $P246, $P245
+    .return ($P246)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<::>"  :subid("73_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<::>"  :subid("73_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx261_tgt
-    .local int rx261_pos
-    .local int rx261_off
-    .local int rx261_eos
-    .local int rx261_rep
-    .local pmc rx261_cur
-    (rx261_cur, rx261_pos, rx261_tgt) = self."!cursor_start"()
-    rx261_cur."!cursor_debug"("START ", "metachar:sym<::>")
-    .lex unicode:"$\x{a2}", rx261_cur
+    .local string rx250_tgt
+    .local int rx250_pos
+    .local int rx250_off
+    .local int rx250_eos
+    .local int rx250_rep
+    .local pmc rx250_cur
+    (rx250_cur, rx250_pos, rx250_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx250_cur
     .local pmc match
     .lex "$/", match
-    length rx261_eos, rx261_tgt
-    gt rx261_pos, rx261_eos, rx261_done
-    set rx261_off, 0
-    lt rx261_pos, 2, rx261_start
-    sub rx261_off, rx261_pos, 1
-    substr rx261_tgt, rx261_tgt, rx261_off
-  rx261_start:
+    length rx250_eos, rx250_tgt
+    gt rx250_pos, rx250_eos, rx250_done
+    set rx250_off, 0
+    lt rx250_pos, 2, rx250_start
+    sub rx250_off, rx250_pos, 1
+    substr rx250_tgt, rx250_tgt, rx250_off
+  rx250_start:
+    eq $I10, 1, rx250_restart
+    rx250_cur."!cursor_debug"("START ", "metachar:sym<::>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan265_done
-    goto rxscan265_scan
-  rxscan265_loop:
-    ($P10) = rx261_cur."from"()
+    ne $I10, -1, rxscan254_done
+    goto rxscan254_scan
+  rxscan254_loop:
+    ($P10) = rx250_cur."from"()
     inc $P10
-    set rx261_pos, $P10
-    ge rx261_pos, rx261_eos, rxscan265_done
-  rxscan265_scan:
-    set_addr $I10, rxscan265_loop
-    rx261_cur."!mark_push"(0, rx261_pos, $I10)
-  rxscan265_done:
+    set rx250_pos, $P10
+    ge rx250_pos, rx250_eos, rxscan254_done
+  rxscan254_scan:
+    set_addr $I10, rxscan254_loop
+    rx250_cur."!mark_push"(0, rx250_pos, $I10)
+  rxscan254_done:
 .annotate 'line', 87
   # rx subcapture "sym"
-    set_addr $I10, rxcap_266_fail
-    rx261_cur."!mark_push"(0, rx261_pos, $I10)
+    set_addr $I10, rxcap_255_fail
+    rx250_cur."!mark_push"(0, rx250_pos, $I10)
   # rx literal  "::"
-    add $I11, rx261_pos, 2
-    gt $I11, rx261_eos, rx261_fail
-    sub $I11, rx261_pos, rx261_off
-    substr $S10, rx261_tgt, $I11, 2
-    ne $S10, "::", rx261_fail
-    add rx261_pos, 2
-    set_addr $I10, rxcap_266_fail
-    ($I12, $I11) = rx261_cur."!mark_peek"($I10)
-    rx261_cur."!cursor_pos"($I11)
-    ($P10) = rx261_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx261_pos, "")
-    rx261_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx250_pos, 2
+    gt $I11, rx250_eos, rx250_fail
+    sub $I11, rx250_pos, rx250_off
+    substr $S10, rx250_tgt, $I11, 2
+    ne $S10, "::", rx250_fail
+    add rx250_pos, 2
+    set_addr $I10, rxcap_255_fail
+    ($I12, $I11) = rx250_cur."!mark_peek"($I10)
+    rx250_cur."!cursor_pos"($I11)
+    ($P10) = rx250_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx250_pos, "")
+    rx250_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_266_done
-  rxcap_266_fail:
-    goto rx261_fail
-  rxcap_266_done:
+    goto rxcap_255_done
+  rxcap_255_fail:
+    goto rx250_fail
+  rxcap_255_done:
   # rx subrule "panic" subtype=method negate=
-    rx261_cur."!cursor_pos"(rx261_pos)
-    $P10 = rx261_cur."panic"(":: not yet implemented")
-    unless $P10, rx261_fail
-    rx261_pos = $P10."pos"()
+    rx250_cur."!cursor_pos"(rx250_pos)
+    $P10 = rx250_cur."panic"(":: not yet implemented")
+    unless $P10, rx250_fail
+    rx250_pos = $P10."pos"()
   # rx pass
-    rx261_cur."!cursor_pass"(rx261_pos, "metachar:sym<::>")
-    rx261_cur."!cursor_debug"("PASS  ", "metachar:sym<::>", " at pos=", rx261_pos)
-    .return (rx261_cur)
-  rx261_fail:
+    rx250_cur."!cursor_pass"(rx250_pos, "metachar:sym<::>")
+    rx250_cur."!cursor_debug"("PASS  ", "metachar:sym<::>", " at pos=", rx250_pos)
+    .return (rx250_cur)
+  rx250_restart:
 .annotate 'line', 3
-    (rx261_rep, rx261_pos, $I10, $P10) = rx261_cur."!mark_fail"(0)
-    lt rx261_pos, -1, rx261_done
-    eq rx261_pos, -1, rx261_fail
+    rx250_cur."!cursor_debug"("NEXT ", "metachar:sym<::>")
+  rx250_fail:
+    (rx250_rep, rx250_pos, $I10, $P10) = rx250_cur."!mark_fail"(0)
+    lt rx250_pos, -1, rx250_done
+    eq rx250_pos, -1, rx250_fail
     jump $I10
-  rx261_done:
-    rx261_cur."!cursor_fail"()
-    rx261_cur."!cursor_debug"("FAIL  ", "metachar:sym<::>")
-    .return (rx261_cur)
+  rx250_done:
+    rx250_cur."!cursor_fail"()
+    rx250_cur."!cursor_debug"("FAIL  ", "metachar:sym<::>")
+    .return (rx250_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<::>"  :subid("74_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<::>"  :subid("74_1280467470.54449") :method
 .annotate 'line', 3
-    $P263 = self."!PREFIX__!subrule"("panic", "::")
-    new $P264, "ResizablePMCArray"
-    push $P264, $P263
-    .return ($P264)
+    $P252 = self."!PREFIX__!subrule"("panic", "::")
+    new $P253, "ResizablePMCArray"
+    push $P253, $P252
+    .return ($P253)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<lwb>"  :subid("75_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<lwb>"  :subid("75_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx268_tgt
-    .local int rx268_pos
-    .local int rx268_off
-    .local int rx268_eos
-    .local int rx268_rep
-    .local pmc rx268_cur
-    (rx268_cur, rx268_pos, rx268_tgt) = self."!cursor_start"()
-    rx268_cur."!cursor_debug"("START ", "metachar:sym<lwb>")
-    .lex unicode:"$\x{a2}", rx268_cur
+    .local string rx257_tgt
+    .local int rx257_pos
+    .local int rx257_off
+    .local int rx257_eos
+    .local int rx257_rep
+    .local pmc rx257_cur
+    (rx257_cur, rx257_pos, rx257_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx257_cur
     .local pmc match
     .lex "$/", match
-    length rx268_eos, rx268_tgt
-    gt rx268_pos, rx268_eos, rx268_done
-    set rx268_off, 0
-    lt rx268_pos, 2, rx268_start
-    sub rx268_off, rx268_pos, 1
-    substr rx268_tgt, rx268_tgt, rx268_off
-  rx268_start:
+    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
+    rx257_cur."!cursor_debug"("START ", "metachar:sym<lwb>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan271_done
-    goto rxscan271_scan
-  rxscan271_loop:
-    ($P10) = rx268_cur."from"()
+    ne $I10, -1, rxscan260_done
+    goto rxscan260_scan
+  rxscan260_loop:
+    ($P10) = rx257_cur."from"()
     inc $P10
-    set rx268_pos, $P10
-    ge rx268_pos, rx268_eos, rxscan271_done
-  rxscan271_scan:
-    set_addr $I10, rxscan271_loop
-    rx268_cur."!mark_push"(0, rx268_pos, $I10)
-  rxscan271_done:
+    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', 88
   # rx subcapture "sym"
-    set_addr $I10, rxcap_273_fail
-    rx268_cur."!mark_push"(0, rx268_pos, $I10)
-  alt272_0:
-    set_addr $I10, alt272_1
-    rx268_cur."!mark_push"(0, rx268_pos, $I10)
+    set_addr $I10, rxcap_262_fail
+    rx257_cur."!mark_push"(0, rx257_pos, $I10)
+  alt261_0:
+    set_addr $I10, alt261_1
+    rx257_cur."!mark_push"(0, rx257_pos, $I10)
   # rx literal  "<<"
-    add $I11, rx268_pos, 2
-    gt $I11, rx268_eos, rx268_fail
-    sub $I11, rx268_pos, rx268_off
-    substr $S10, rx268_tgt, $I11, 2
-    ne $S10, "<<", rx268_fail
-    add rx268_pos, 2
-    goto alt272_end
-  alt272_1:
+    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
+    goto alt261_end
+  alt261_1:
   # rx literal  unicode:"\x{ab}"
-    add $I11, rx268_pos, 1
-    gt $I11, rx268_eos, rx268_fail
-    sub $I11, rx268_pos, rx268_off
-    substr $S10, rx268_tgt, $I11, 1
-    ne $S10, unicode:"\x{ab}", rx268_fail
-    add rx268_pos, 1
-  alt272_end:
-    set_addr $I10, rxcap_273_fail
-    ($I12, $I11) = rx268_cur."!mark_peek"($I10)
-    rx268_cur."!cursor_pos"($I11)
-    ($P10) = rx268_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx268_pos, "")
-    rx268_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx257_pos, 1
+    gt $I11, rx257_eos, rx257_fail
+    sub $I11, rx257_pos, rx257_off
+    substr $S10, rx257_tgt, $I11, 1
+    ne $S10, unicode:"\x{ab}", rx257_fail
+    add rx257_pos, 1
+  alt261_end:
+    set_addr $I10, rxcap_262_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_273_done
-  rxcap_273_fail:
-    goto rx268_fail
-  rxcap_273_done:
+    goto rxcap_262_done
+  rxcap_262_fail:
+    goto rx257_fail
+  rxcap_262_done:
   # rx pass
-    rx268_cur."!cursor_pass"(rx268_pos, "metachar:sym<lwb>")
-    rx268_cur."!cursor_debug"("PASS  ", "metachar:sym<lwb>", " at pos=", rx268_pos)
-    .return (rx268_cur)
-  rx268_fail:
+    rx257_cur."!cursor_pass"(rx257_pos, "metachar:sym<lwb>")
+    rx257_cur."!cursor_debug"("PASS  ", "metachar:sym<lwb>", " at pos=", rx257_pos)
+    .return (rx257_cur)
+  rx257_restart:
 .annotate 'line', 3
-    (rx268_rep, rx268_pos, $I10, $P10) = rx268_cur."!mark_fail"(0)
-    lt rx268_pos, -1, rx268_done
-    eq rx268_pos, -1, rx268_fail
+    rx257_cur."!cursor_debug"("NEXT ", "metachar:sym<lwb>")
+  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
-  rx268_done:
-    rx268_cur."!cursor_fail"()
-    rx268_cur."!cursor_debug"("FAIL  ", "metachar:sym<lwb>")
-    .return (rx268_cur)
+  rx257_done:
+    rx257_cur."!cursor_fail"()
+    rx257_cur."!cursor_debug"("FAIL  ", "metachar:sym<lwb>")
+    .return (rx257_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<lwb>"  :subid("76_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<lwb>"  :subid("76_1280467470.54449") :method
 .annotate 'line', 3
-    new $P270, "ResizablePMCArray"
-    push $P270, unicode:"\x{ab}"
-    push $P270, "<<"
-    .return ($P270)
+    new $P259, "ResizablePMCArray"
+    push $P259, unicode:"\x{ab}"
+    push $P259, "<<"
+    .return ($P259)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<rwb>"  :subid("77_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<rwb>"  :subid("77_1280467470.54449") :method :outer("11_1280467470.54449")
 .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
-    (rx275_cur, rx275_pos, rx275_tgt) = self."!cursor_start"()
-    rx275_cur."!cursor_debug"("START ", "metachar:sym<rwb>")
-    .lex unicode:"$\x{a2}", rx275_cur
+    .local string rx264_tgt
+    .local int rx264_pos
+    .local int rx264_off
+    .local int rx264_eos
+    .local int rx264_rep
+    .local pmc rx264_cur
+    (rx264_cur, rx264_pos, rx264_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx264_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:
+    length rx264_eos, rx264_tgt
+    gt rx264_pos, rx264_eos, rx264_done
+    set rx264_off, 0
+    lt rx264_pos, 2, rx264_start
+    sub rx264_off, rx264_pos, 1
+    substr rx264_tgt, rx264_tgt, rx264_off
+  rx264_start:
+    eq $I10, 1, rx264_restart
+    rx264_cur."!cursor_debug"("START ", "metachar:sym<rwb>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan278_done
-    goto rxscan278_scan
-  rxscan278_loop:
-    ($P10) = rx275_cur."from"()
+    ne $I10, -1, rxscan267_done
+    goto rxscan267_scan
+  rxscan267_loop:
+    ($P10) = rx264_cur."from"()
     inc $P10
-    set rx275_pos, $P10
-    ge rx275_pos, rx275_eos, rxscan278_done
-  rxscan278_scan:
-    set_addr $I10, rxscan278_loop
-    rx275_cur."!mark_push"(0, rx275_pos, $I10)
-  rxscan278_done:
+    set rx264_pos, $P10
+    ge rx264_pos, rx264_eos, rxscan267_done
+  rxscan267_scan:
+    set_addr $I10, rxscan267_loop
+    rx264_cur."!mark_push"(0, rx264_pos, $I10)
+  rxscan267_done:
 .annotate 'line', 89
   # rx subcapture "sym"
-    set_addr $I10, rxcap_280_fail
-    rx275_cur."!mark_push"(0, rx275_pos, $I10)
-  alt279_0:
-    set_addr $I10, alt279_1
-    rx275_cur."!mark_push"(0, rx275_pos, $I10)
+    set_addr $I10, rxcap_269_fail
+    rx264_cur."!mark_push"(0, rx264_pos, $I10)
+  alt268_0:
+    set_addr $I10, alt268_1
+    rx264_cur."!mark_push"(0, rx264_pos, $I10)
   # rx literal  ">>"
-    add $I11, rx275_pos, 2
-    gt $I11, rx275_eos, rx275_fail
-    sub $I11, rx275_pos, rx275_off
-    substr $S10, rx275_tgt, $I11, 2
-    ne $S10, ">>", rx275_fail
-    add rx275_pos, 2
-    goto alt279_end
-  alt279_1:
+    add $I11, rx264_pos, 2
+    gt $I11, rx264_eos, rx264_fail
+    sub $I11, rx264_pos, rx264_off
+    substr $S10, rx264_tgt, $I11, 2
+    ne $S10, ">>", rx264_fail
+    add rx264_pos, 2
+    goto alt268_end
+  alt268_1:
   # rx literal  unicode:"\x{bb}"
-    add $I11, rx275_pos, 1
-    gt $I11, rx275_eos, rx275_fail
-    sub $I11, rx275_pos, rx275_off
-    substr $S10, rx275_tgt, $I11, 1
-    ne $S10, unicode:"\x{bb}", rx275_fail
-    add rx275_pos, 1
-  alt279_end:
-    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)
+    add $I11, rx264_pos, 1
+    gt $I11, rx264_eos, rx264_fail
+    sub $I11, rx264_pos, rx264_off
+    substr $S10, rx264_tgt, $I11, 1
+    ne $S10, unicode:"\x{bb}", rx264_fail
+    add rx264_pos, 1
+  alt268_end:
+    set_addr $I10, rxcap_269_fail
+    ($I12, $I11) = rx264_cur."!mark_peek"($I10)
+    rx264_cur."!cursor_pos"($I11)
+    ($P10) = rx264_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx264_pos, "")
+    rx264_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_280_done
-  rxcap_280_fail:
-    goto rx275_fail
-  rxcap_280_done:
+    goto rxcap_269_done
+  rxcap_269_fail:
+    goto rx264_fail
+  rxcap_269_done:
   # rx pass
-    rx275_cur."!cursor_pass"(rx275_pos, "metachar:sym<rwb>")
-    rx275_cur."!cursor_debug"("PASS  ", "metachar:sym<rwb>", " at pos=", rx275_pos)
-    .return (rx275_cur)
-  rx275_fail:
+    rx264_cur."!cursor_pass"(rx264_pos, "metachar:sym<rwb>")
+    rx264_cur."!cursor_debug"("PASS  ", "metachar:sym<rwb>", " at pos=", rx264_pos)
+    .return (rx264_cur)
+  rx264_restart:
 .annotate 'line', 3
-    (rx275_rep, rx275_pos, $I10, $P10) = rx275_cur."!mark_fail"(0)
-    lt rx275_pos, -1, rx275_done
-    eq rx275_pos, -1, rx275_fail
+    rx264_cur."!cursor_debug"("NEXT ", "metachar:sym<rwb>")
+  rx264_fail:
+    (rx264_rep, rx264_pos, $I10, $P10) = rx264_cur."!mark_fail"(0)
+    lt rx264_pos, -1, rx264_done
+    eq rx264_pos, -1, rx264_fail
     jump $I10
-  rx275_done:
-    rx275_cur."!cursor_fail"()
-    rx275_cur."!cursor_debug"("FAIL  ", "metachar:sym<rwb>")
-    .return (rx275_cur)
+  rx264_done:
+    rx264_cur."!cursor_fail"()
+    rx264_cur."!cursor_debug"("FAIL  ", "metachar:sym<rwb>")
+    .return (rx264_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<rwb>"  :subid("78_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<rwb>"  :subid("78_1280467470.54449") :method
 .annotate 'line', 3
-    new $P277, "ResizablePMCArray"
-    push $P277, unicode:"\x{bb}"
-    push $P277, ">>"
-    .return ($P277)
+    new $P266, "ResizablePMCArray"
+    push $P266, unicode:"\x{bb}"
+    push $P266, ">>"
+    .return ($P266)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<bs>"  :subid("79_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<bs>"  :subid("79_1280467470.54449") :method :outer("11_1280467470.54449")
 .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
-    (rx282_cur, rx282_pos, rx282_tgt) = self."!cursor_start"()
-    rx282_cur."!cursor_debug"("START ", "metachar:sym<bs>")
-    .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:
-    $I10 = self.'from'()
-    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:
+    .local string rx271_tgt
+    .local int rx271_pos
+    .local int rx271_off
+    .local int rx271_eos
+    .local int rx271_rep
+    .local pmc rx271_cur
+    (rx271_cur, rx271_pos, rx271_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx271_cur
+    .local pmc match
+    .lex "$/", match
+    length rx271_eos, rx271_tgt
+    gt rx271_pos, rx271_eos, rx271_done
+    set rx271_off, 0
+    lt rx271_pos, 2, rx271_start
+    sub rx271_off, rx271_pos, 1
+    substr rx271_tgt, rx271_tgt, rx271_off
+  rx271_start:
+    eq $I10, 1, rx271_restart
+    rx271_cur."!cursor_debug"("START ", "metachar:sym<bs>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan275_done
+    goto rxscan275_scan
+  rxscan275_loop:
+    ($P10) = rx271_cur."from"()
+    inc $P10
+    set rx271_pos, $P10
+    ge rx271_pos, rx271_eos, rxscan275_done
+  rxscan275_scan:
+    set_addr $I10, rxscan275_loop
+    rx271_cur."!mark_push"(0, rx271_pos, $I10)
+  rxscan275_done:
 .annotate 'line', 90
   # rx literal  "\\"
-    add $I11, rx282_pos, 1
-    gt $I11, rx282_eos, rx282_fail
-    sub $I11, rx282_pos, rx282_off
-    substr $S10, rx282_tgt, $I11, 1
-    ne $S10, "\\", rx282_fail
-    add rx282_pos, 1
+    add $I11, rx271_pos, 1
+    gt $I11, rx271_eos, rx271_fail
+    sub $I11, rx271_pos, rx271_off
+    substr $S10, rx271_tgt, $I11, 1
+    ne $S10, "\\", rx271_fail
+    add rx271_pos, 1
   # rx subrule "backslash" subtype=capture negate=
-    rx282_cur."!cursor_pos"(rx282_pos)
-    $P10 = rx282_cur."backslash"()
-    unless $P10, rx282_fail
-    rx282_cur."!mark_push"(0, -1, 0, $P10)
+    rx271_cur."!cursor_pos"(rx271_pos)
+    $P10 = rx271_cur."backslash"()
+    unless $P10, rx271_fail
+    rx271_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backslash")
-    rx282_pos = $P10."pos"()
+    rx271_pos = $P10."pos"()
   # rx pass
-    rx282_cur."!cursor_pass"(rx282_pos, "metachar:sym<bs>")
-    rx282_cur."!cursor_debug"("PASS  ", "metachar:sym<bs>", " at pos=", rx282_pos)
-    .return (rx282_cur)
-  rx282_fail:
+    rx271_cur."!cursor_pass"(rx271_pos, "metachar:sym<bs>")
+    rx271_cur."!cursor_debug"("PASS  ", "metachar:sym<bs>", " at pos=", rx271_pos)
+    .return (rx271_cur)
+  rx271_restart:
 .annotate 'line', 3
-    (rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0)
-    lt rx282_pos, -1, rx282_done
-    eq rx282_pos, -1, rx282_fail
+    rx271_cur."!cursor_debug"("NEXT ", "metachar:sym<bs>")
+  rx271_fail:
+    (rx271_rep, rx271_pos, $I10, $P10) = rx271_cur."!mark_fail"(0)
+    lt rx271_pos, -1, rx271_done
+    eq rx271_pos, -1, rx271_fail
     jump $I10
-  rx282_done:
-    rx282_cur."!cursor_fail"()
-    rx282_cur."!cursor_debug"("FAIL  ", "metachar:sym<bs>")
-    .return (rx282_cur)
+  rx271_done:
+    rx271_cur."!cursor_fail"()
+    rx271_cur."!cursor_debug"("FAIL  ", "metachar:sym<bs>")
+    .return (rx271_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<bs>"  :subid("80_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<bs>"  :subid("80_1280467470.54449") :method
 .annotate 'line', 3
-    $P284 = self."!PREFIX__!subrule"("backslash", "\\")
-    new $P285, "ResizablePMCArray"
-    push $P285, $P284
-    .return ($P285)
+    $P273 = self."!PREFIX__!subrule"("backslash", "\\")
+    new $P274, "ResizablePMCArray"
+    push $P274, $P273
+    .return ($P274)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<mod>"  :subid("81_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<mod>"  :subid("81_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx288_tgt
-    .local int rx288_pos
-    .local int rx288_off
-    .local int rx288_eos
-    .local int rx288_rep
-    .local pmc rx288_cur
-    (rx288_cur, rx288_pos, rx288_tgt) = self."!cursor_start"()
-    rx288_cur."!cursor_debug"("START ", "metachar:sym<mod>")
-    .lex unicode:"$\x{a2}", rx288_cur
+    .local string rx277_tgt
+    .local int rx277_pos
+    .local int rx277_off
+    .local int rx277_eos
+    .local int rx277_rep
+    .local pmc rx277_cur
+    (rx277_cur, rx277_pos, rx277_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx277_cur
     .local pmc match
     .lex "$/", match
-    length rx288_eos, rx288_tgt
-    gt rx288_pos, rx288_eos, rx288_done
-    set rx288_off, 0
-    lt rx288_pos, 2, rx288_start
-    sub rx288_off, rx288_pos, 1
-    substr rx288_tgt, rx288_tgt, rx288_off
-  rx288_start:
+    length rx277_eos, rx277_tgt
+    gt rx277_pos, rx277_eos, rx277_done
+    set rx277_off, 0
+    lt rx277_pos, 2, rx277_start
+    sub rx277_off, rx277_pos, 1
+    substr rx277_tgt, rx277_tgt, rx277_off
+  rx277_start:
+    eq $I10, 1, rx277_restart
+    rx277_cur."!cursor_debug"("START ", "metachar:sym<mod>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan292_done
-    goto rxscan292_scan
-  rxscan292_loop:
-    ($P10) = rx288_cur."from"()
+    ne $I10, -1, rxscan281_done
+    goto rxscan281_scan
+  rxscan281_loop:
+    ($P10) = rx277_cur."from"()
     inc $P10
-    set rx288_pos, $P10
-    ge rx288_pos, rx288_eos, rxscan292_done
-  rxscan292_scan:
-    set_addr $I10, rxscan292_loop
-    rx288_cur."!mark_push"(0, rx288_pos, $I10)
-  rxscan292_done:
+    set rx277_pos, $P10
+    ge rx277_pos, rx277_eos, rxscan281_done
+  rxscan281_scan:
+    set_addr $I10, rxscan281_loop
+    rx277_cur."!mark_push"(0, rx277_pos, $I10)
+  rxscan281_done:
 .annotate 'line', 91
   # rx subrule "mod_internal" subtype=capture negate=
-    rx288_cur."!cursor_pos"(rx288_pos)
-    $P10 = rx288_cur."mod_internal"()
-    unless $P10, rx288_fail
-    rx288_cur."!mark_push"(0, -1, 0, $P10)
+    rx277_cur."!cursor_pos"(rx277_pos)
+    $P10 = rx277_cur."mod_internal"()
+    unless $P10, rx277_fail
+    rx277_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("mod_internal")
-    rx288_pos = $P10."pos"()
+    rx277_pos = $P10."pos"()
   # rx pass
-    rx288_cur."!cursor_pass"(rx288_pos, "metachar:sym<mod>")
-    rx288_cur."!cursor_debug"("PASS  ", "metachar:sym<mod>", " at pos=", rx288_pos)
-    .return (rx288_cur)
-  rx288_fail:
+    rx277_cur."!cursor_pass"(rx277_pos, "metachar:sym<mod>")
+    rx277_cur."!cursor_debug"("PASS  ", "metachar:sym<mod>", " at pos=", rx277_pos)
+    .return (rx277_cur)
+  rx277_restart:
 .annotate 'line', 3
-    (rx288_rep, rx288_pos, $I10, $P10) = rx288_cur."!mark_fail"(0)
-    lt rx288_pos, -1, rx288_done
-    eq rx288_pos, -1, rx288_fail
+    rx277_cur."!cursor_debug"("NEXT ", "metachar:sym<mod>")
+  rx277_fail:
+    (rx277_rep, rx277_pos, $I10, $P10) = rx277_cur."!mark_fail"(0)
+    lt rx277_pos, -1, rx277_done
+    eq rx277_pos, -1, rx277_fail
     jump $I10
-  rx288_done:
-    rx288_cur."!cursor_fail"()
-    rx288_cur."!cursor_debug"("FAIL  ", "metachar:sym<mod>")
-    .return (rx288_cur)
+  rx277_done:
+    rx277_cur."!cursor_fail"()
+    rx277_cur."!cursor_debug"("FAIL  ", "metachar:sym<mod>")
+    .return (rx277_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<mod>"  :subid("82_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<mod>"  :subid("82_1280467470.54449") :method
 .annotate 'line', 3
-    $P290 = self."!PREFIX__!subrule"("mod_internal", "")
-    new $P291, "ResizablePMCArray"
-    push $P291, $P290
-    .return ($P291)
+    $P279 = self."!PREFIX__!subrule"("mod_internal", "")
+    new $P280, "ResizablePMCArray"
+    push $P280, $P279
+    .return ($P280)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<~>"  :subid("83_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<~>"  :subid("83_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx294_tgt
-    .local int rx294_pos
-    .local int rx294_off
-    .local int rx294_eos
-    .local int rx294_rep
-    .local pmc rx294_cur
-    (rx294_cur, rx294_pos, rx294_tgt) = self."!cursor_start"()
-    rx294_cur."!cursor_debug"("START ", "metachar:sym<~>")
-    .lex unicode:"$\x{a2}", rx294_cur
+    .local string rx283_tgt
+    .local int rx283_pos
+    .local int rx283_off
+    .local int rx283_eos
+    .local int rx283_rep
+    .local pmc rx283_cur
+    (rx283_cur, rx283_pos, rx283_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx283_cur
     .local pmc match
     .lex "$/", match
-    length rx294_eos, rx294_tgt
-    gt rx294_pos, rx294_eos, rx294_done
-    set rx294_off, 0
-    lt rx294_pos, 2, rx294_start
-    sub rx294_off, rx294_pos, 1
-    substr rx294_tgt, rx294_tgt, rx294_off
-  rx294_start:
+    length rx283_eos, rx283_tgt
+    gt rx283_pos, rx283_eos, rx283_done
+    set rx283_off, 0
+    lt rx283_pos, 2, rx283_start
+    sub rx283_off, rx283_pos, 1
+    substr rx283_tgt, rx283_tgt, rx283_off
+  rx283_start:
+    eq $I10, 1, rx283_restart
+    rx283_cur."!cursor_debug"("START ", "metachar:sym<~>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan298_done
-    goto rxscan298_scan
-  rxscan298_loop:
-    ($P10) = rx294_cur."from"()
+    ne $I10, -1, rxscan287_done
+    goto rxscan287_scan
+  rxscan287_loop:
+    ($P10) = rx283_cur."from"()
     inc $P10
-    set rx294_pos, $P10
-    ge rx294_pos, rx294_eos, rxscan298_done
-  rxscan298_scan:
-    set_addr $I10, rxscan298_loop
-    rx294_cur."!mark_push"(0, rx294_pos, $I10)
-  rxscan298_done:
+    set rx283_pos, $P10
+    ge rx283_pos, rx283_eos, rxscan287_done
+  rxscan287_scan:
+    set_addr $I10, rxscan287_loop
+    rx283_cur."!mark_push"(0, rx283_pos, $I10)
+  rxscan287_done:
 .annotate 'line', 95
   # rx subcapture "sym"
-    set_addr $I10, rxcap_299_fail
-    rx294_cur."!mark_push"(0, rx294_pos, $I10)
+    set_addr $I10, rxcap_288_fail
+    rx283_cur."!mark_push"(0, rx283_pos, $I10)
   # rx literal  "~"
-    add $I11, rx294_pos, 1
-    gt $I11, rx294_eos, rx294_fail
-    sub $I11, rx294_pos, rx294_off
-    substr $S10, rx294_tgt, $I11, 1
-    ne $S10, "~", rx294_fail
-    add rx294_pos, 1
-    set_addr $I10, rxcap_299_fail
-    ($I12, $I11) = rx294_cur."!mark_peek"($I10)
-    rx294_cur."!cursor_pos"($I11)
-    ($P10) = rx294_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx294_pos, "")
-    rx294_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx283_pos, 1
+    gt $I11, rx283_eos, rx283_fail
+    sub $I11, rx283_pos, rx283_off
+    substr $S10, rx283_tgt, $I11, 1
+    ne $S10, "~", rx283_fail
+    add rx283_pos, 1
+    set_addr $I10, rxcap_288_fail
+    ($I12, $I11) = rx283_cur."!mark_peek"($I10)
+    rx283_cur."!cursor_pos"($I11)
+    ($P10) = rx283_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx283_pos, "")
+    rx283_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_299_done
-  rxcap_299_fail:
-    goto rx294_fail
-  rxcap_299_done:
+    goto rxcap_288_done
+  rxcap_288_fail:
+    goto rx283_fail
+  rxcap_288_done:
 .annotate 'line', 96
   # rx subrule "ws" subtype=method negate=
-    rx294_cur."!cursor_pos"(rx294_pos)
-    $P10 = rx294_cur."ws"()
-    unless $P10, rx294_fail
-    rx294_pos = $P10."pos"()
+    rx283_cur."!cursor_pos"(rx283_pos)
+    $P10 = rx283_cur."ws"()
+    unless $P10, rx283_fail
+    rx283_pos = $P10."pos"()
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx294_cur."!cursor_pos"(rx294_pos)
-    $P10 = rx294_cur."quantified_atom"()
-    unless $P10, rx294_fail
-    rx294_cur."!mark_push"(0, -1, 0, $P10)
+    rx283_cur."!cursor_pos"(rx283_pos)
+    $P10 = rx283_cur."quantified_atom"()
+    unless $P10, rx283_fail
+    rx283_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("GOAL")
-    rx294_pos = $P10."pos"()
+    rx283_pos = $P10."pos"()
 .annotate 'line', 97
   # rx subrule "ws" subtype=method negate=
-    rx294_cur."!cursor_pos"(rx294_pos)
-    $P10 = rx294_cur."ws"()
-    unless $P10, rx294_fail
-    rx294_pos = $P10."pos"()
+    rx283_cur."!cursor_pos"(rx283_pos)
+    $P10 = rx283_cur."ws"()
+    unless $P10, rx283_fail
+    rx283_pos = $P10."pos"()
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx294_cur."!cursor_pos"(rx294_pos)
-    $P10 = rx294_cur."quantified_atom"()
-    unless $P10, rx294_fail
-    rx294_cur."!mark_push"(0, -1, 0, $P10)
+    rx283_cur."!cursor_pos"(rx283_pos)
+    $P10 = rx283_cur."quantified_atom"()
+    unless $P10, rx283_fail
+    rx283_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx294_pos = $P10."pos"()
+    rx283_pos = $P10."pos"()
 .annotate 'line', 94
   # rx pass
-    rx294_cur."!cursor_pass"(rx294_pos, "metachar:sym<~>")
-    rx294_cur."!cursor_debug"("PASS  ", "metachar:sym<~>", " at pos=", rx294_pos)
-    .return (rx294_cur)
-  rx294_fail:
+    rx283_cur."!cursor_pass"(rx283_pos, "metachar:sym<~>")
+    rx283_cur."!cursor_debug"("PASS  ", "metachar:sym<~>", " at pos=", rx283_pos)
+    .return (rx283_cur)
+  rx283_restart:
 .annotate 'line', 3
-    (rx294_rep, rx294_pos, $I10, $P10) = rx294_cur."!mark_fail"(0)
-    lt rx294_pos, -1, rx294_done
-    eq rx294_pos, -1, rx294_fail
+    rx283_cur."!cursor_debug"("NEXT ", "metachar:sym<~>")
+  rx283_fail:
+    (rx283_rep, rx283_pos, $I10, $P10) = rx283_cur."!mark_fail"(0)
+    lt rx283_pos, -1, rx283_done
+    eq rx283_pos, -1, rx283_fail
     jump $I10
-  rx294_done:
-    rx294_cur."!cursor_fail"()
-    rx294_cur."!cursor_debug"("FAIL  ", "metachar:sym<~>")
-    .return (rx294_cur)
+  rx283_done:
+    rx283_cur."!cursor_fail"()
+    rx283_cur."!cursor_debug"("FAIL  ", "metachar:sym<~>")
+    .return (rx283_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<~>"  :subid("84_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<~>"  :subid("84_1280467470.54449") :method
 .annotate 'line', 3
-    $P296 = self."!PREFIX__!subrule"("ws", "~")
-    new $P297, "ResizablePMCArray"
-    push $P297, $P296
-    .return ($P297)
+    $P285 = self."!PREFIX__!subrule"("ws", "~")
+    new $P286, "ResizablePMCArray"
+    push $P286, $P285
+    .return ($P286)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<{*}>"  :subid("85_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<{*}>"  :subid("85_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx301_tgt
-    .local int rx301_pos
-    .local int rx301_off
-    .local int rx301_eos
-    .local int rx301_rep
-    .local pmc rx301_cur
-    (rx301_cur, rx301_pos, rx301_tgt) = self."!cursor_start"()
-    rx301_cur."!cursor_debug"("START ", "metachar:sym<{*}>")
-    rx301_cur."!cursor_caparray"("key")
-    .lex unicode:"$\x{a2}", rx301_cur
+    .local string rx290_tgt
+    .local int rx290_pos
+    .local int rx290_off
+    .local int rx290_eos
+    .local int rx290_rep
+    .local pmc rx290_cur
+    (rx290_cur, rx290_pos, rx290_tgt, $I10) = self."!cursor_start"()
+    rx290_cur."!cursor_caparray"("key")
+    .lex unicode:"$\x{a2}", rx290_cur
     .local pmc match
     .lex "$/", match
-    length rx301_eos, rx301_tgt
-    gt rx301_pos, rx301_eos, rx301_done
-    set rx301_off, 0
-    lt rx301_pos, 2, rx301_start
-    sub rx301_off, rx301_pos, 1
-    substr rx301_tgt, rx301_tgt, rx301_off
-  rx301_start:
+    length rx290_eos, rx290_tgt
+    gt rx290_pos, rx290_eos, rx290_done
+    set rx290_off, 0
+    lt rx290_pos, 2, rx290_start
+    sub rx290_off, rx290_pos, 1
+    substr rx290_tgt, rx290_tgt, rx290_off
+  rx290_start:
+    eq $I10, 1, rx290_restart
+    rx290_cur."!cursor_debug"("START ", "metachar:sym<{*}>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan304_done
-    goto rxscan304_scan
-  rxscan304_loop:
-    ($P10) = rx301_cur."from"()
+    ne $I10, -1, rxscan293_done
+    goto rxscan293_scan
+  rxscan293_loop:
+    ($P10) = rx290_cur."from"()
     inc $P10
-    set rx301_pos, $P10
-    ge rx301_pos, rx301_eos, rxscan304_done
-  rxscan304_scan:
-    set_addr $I10, rxscan304_loop
-    rx301_cur."!mark_push"(0, rx301_pos, $I10)
-  rxscan304_done:
+    set rx290_pos, $P10
+    ge rx290_pos, rx290_eos, rxscan293_done
+  rxscan293_scan:
+    set_addr $I10, rxscan293_loop
+    rx290_cur."!mark_push"(0, rx290_pos, $I10)
+  rxscan293_done:
 .annotate 'line', 101
   # rx subcapture "sym"
-    set_addr $I10, rxcap_305_fail
-    rx301_cur."!mark_push"(0, rx301_pos, $I10)
+    set_addr $I10, rxcap_294_fail
+    rx290_cur."!mark_push"(0, rx290_pos, $I10)
   # rx literal  "{*}"
-    add $I11, rx301_pos, 3
-    gt $I11, rx301_eos, rx301_fail
-    sub $I11, rx301_pos, rx301_off
-    substr $S10, rx301_tgt, $I11, 3
-    ne $S10, "{*}", rx301_fail
-    add rx301_pos, 3
-    set_addr $I10, rxcap_305_fail
-    ($I12, $I11) = rx301_cur."!mark_peek"($I10)
-    rx301_cur."!cursor_pos"($I11)
-    ($P10) = rx301_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx301_pos, "")
-    rx301_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx290_pos, 3
+    gt $I11, rx290_eos, rx290_fail
+    sub $I11, rx290_pos, rx290_off
+    substr $S10, rx290_tgt, $I11, 3
+    ne $S10, "{*}", rx290_fail
+    add rx290_pos, 3
+    set_addr $I10, rxcap_294_fail
+    ($I12, $I11) = rx290_cur."!mark_peek"($I10)
+    rx290_cur."!cursor_pos"($I11)
+    ($P10) = rx290_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx290_pos, "")
+    rx290_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_305_done
-  rxcap_305_fail:
-    goto rx301_fail
-  rxcap_305_done:
+    goto rxcap_294_done
+  rxcap_294_fail:
+    goto rx290_fail
+  rxcap_294_done:
 .annotate 'line', 102
-  # rx rxquantr306 ** 0..1
-    set_addr $I316, rxquantr306_done
-    rx301_cur."!mark_push"(0, rx301_pos, $I316)
-  rxquantr306_loop:
-  # rx rxquantr307 ** 0..*
-    set_addr $I308, rxquantr307_done
-    rx301_cur."!mark_push"(0, rx301_pos, $I308)
-  rxquantr307_loop:
+  # rx rxquantr295 ** 0..1
+    set_addr $I10, rxquantr295_done
+    rx290_cur."!mark_push"(0, rx290_pos, $I10)
+  rxquantr295_loop:
+  # rx rxquantr296 ** 0..*
+    set_addr $I10, rxquantr296_done
+    rx290_cur."!mark_push"(0, rx290_pos, $I10)
+  rxquantr296_loop:
   # rx enumcharlist negate=0 
-    ge rx301_pos, rx301_eos, rx301_fail
-    sub $I10, rx301_pos, rx301_off
-    substr $S10, rx301_tgt, $I10, 1
+    ge rx290_pos, rx290_eos, rx290_fail
+    sub $I10, rx290_pos, rx290_off
+    substr $S10, rx290_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, rx301_fail
-    inc rx301_pos
-    (rx301_rep) = rx301_cur."!mark_commit"($I308)
-    rx301_cur."!mark_push"(rx301_rep, rx301_pos, $I308)
-    goto rxquantr307_loop
-  rxquantr307_done:
+    lt $I11, 0, rx290_fail
+    inc rx290_pos
+    set_addr $I10, rxquantr296_done
+    (rx290_rep) = rx290_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr296_done
+    rx290_cur."!mark_push"(rx290_rep, rx290_pos, $I10)
+    goto rxquantr296_loop
+  rxquantr296_done:
   # rx literal  "#= "
-    add $I11, rx301_pos, 3
-    gt $I11, rx301_eos, rx301_fail
-    sub $I11, rx301_pos, rx301_off
-    substr $S10, rx301_tgt, $I11, 3
-    ne $S10, "#= ", rx301_fail
-    add rx301_pos, 3
-  # rx rxquantr309 ** 0..*
-    set_addr $I310, rxquantr309_done
-    rx301_cur."!mark_push"(0, rx301_pos, $I310)
-  rxquantr309_loop:
+    add $I11, rx290_pos, 3
+    gt $I11, rx290_eos, rx290_fail
+    sub $I11, rx290_pos, rx290_off
+    substr $S10, rx290_tgt, $I11, 3
+    ne $S10, "#= ", rx290_fail
+    add rx290_pos, 3
+  # rx rxquantr297 ** 0..*
+    set_addr $I10, rxquantr297_done
+    rx290_cur."!mark_push"(0, rx290_pos, $I10)
+  rxquantr297_loop:
   # rx enumcharlist negate=0 
-    ge rx301_pos, rx301_eos, rx301_fail
-    sub $I10, rx301_pos, rx301_off
-    substr $S10, rx301_tgt, $I10, 1
+    ge rx290_pos, rx290_eos, rx290_fail
+    sub $I10, rx290_pos, rx290_off
+    substr $S10, rx290_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, rx301_fail
-    inc rx301_pos
-    (rx301_rep) = rx301_cur."!mark_commit"($I310)
-    rx301_cur."!mark_push"(rx301_rep, rx301_pos, $I310)
-    goto rxquantr309_loop
-  rxquantr309_done:
+    lt $I11, 0, rx290_fail
+    inc rx290_pos
+    set_addr $I10, rxquantr297_done
+    (rx290_rep) = rx290_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr297_done
+    rx290_cur."!mark_push"(rx290_rep, rx290_pos, $I10)
+    goto rxquantr297_loop
+  rxquantr297_done:
   # rx subcapture "key"
-    set_addr $I10, rxcap_315_fail
-    rx301_cur."!mark_push"(0, rx301_pos, $I10)
+    set_addr $I10, rxcap_300_fail
+    rx290_cur."!mark_push"(0, rx290_pos, $I10)
   # rx charclass_q S r 1..-1
-    sub $I10, rx301_pos, rx301_off
-    find_cclass $I11, 32, rx301_tgt, $I10, rx301_eos
+    sub $I10, rx290_pos, rx290_off
+    find_cclass $I11, 32, rx290_tgt, $I10, rx290_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx301_fail
-    add rx301_pos, rx301_off, $I11
-  # rx rxquantr311 ** 0..*
-    set_addr $I314, rxquantr311_done
-    rx301_cur."!mark_push"(0, rx301_pos, $I314)
-  rxquantr311_loop:
-  # rx rxquantr312 ** 1..*
-    set_addr $I313, rxquantr312_done
-    rx301_cur."!mark_push"(0, -1, $I313)
-  rxquantr312_loop:
+    lt $I11, $I12, rx290_fail
+    add rx290_pos, rx290_off, $I11
+  # rx rxquantr298 ** 0..*
+    set_addr $I10, rxquantr298_done
+    rx290_cur."!mark_push"(0, rx290_pos, $I10)
+  rxquantr298_loop:
+  # rx rxquantr299 ** 1..*
+    set_addr $I10, rxquantr299_done
+    rx290_cur."!mark_push"(0, -1, $I10)
+  rxquantr299_loop:
   # rx enumcharlist negate=0 
-    ge rx301_pos, rx301_eos, rx301_fail
-    sub $I10, rx301_pos, rx301_off
-    substr $S10, rx301_tgt, $I10, 1
+    ge rx290_pos, rx290_eos, rx290_fail
+    sub $I10, rx290_pos, rx290_off
+    substr $S10, rx290_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, rx301_fail
-    inc rx301_pos
-    (rx301_rep) = rx301_cur."!mark_commit"($I313)
-    rx301_cur."!mark_push"(rx301_rep, rx301_pos, $I313)
-    goto rxquantr312_loop
-  rxquantr312_done:
+    lt $I11, 0, rx290_fail
+    inc rx290_pos
+    set_addr $I10, rxquantr299_done
+    (rx290_rep) = rx290_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr299_done
+    rx290_cur."!mark_push"(rx290_rep, rx290_pos, $I10)
+    goto rxquantr299_loop
+  rxquantr299_done:
   # rx charclass_q S r 1..-1
-    sub $I10, rx301_pos, rx301_off
-    find_cclass $I11, 32, rx301_tgt, $I10, rx301_eos
+    sub $I10, rx290_pos, rx290_off
+    find_cclass $I11, 32, rx290_tgt, $I10, rx290_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx301_fail
-    add rx301_pos, rx301_off, $I11
-    (rx301_rep) = rx301_cur."!mark_commit"($I314)
-    rx301_cur."!mark_push"(rx301_rep, rx301_pos, $I314)
-    goto rxquantr311_loop
-  rxquantr311_done:
-    set_addr $I10, rxcap_315_fail
-    ($I12, $I11) = rx301_cur."!mark_peek"($I10)
-    rx301_cur."!cursor_pos"($I11)
-    ($P10) = rx301_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx301_pos, "")
-    rx301_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx290_fail
+    add rx290_pos, rx290_off, $I11
+    set_addr $I10, rxquantr298_done
+    (rx290_rep) = rx290_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr298_done
+    rx290_cur."!mark_push"(rx290_rep, rx290_pos, $I10)
+    goto rxquantr298_loop
+  rxquantr298_done:
+    set_addr $I10, rxcap_300_fail
+    ($I12, $I11) = rx290_cur."!mark_peek"($I10)
+    rx290_cur."!cursor_pos"($I11)
+    ($P10) = rx290_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx290_pos, "")
+    rx290_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("key")
-    goto rxcap_315_done
-  rxcap_315_fail:
-    goto rx301_fail
-  rxcap_315_done:
-    (rx301_rep) = rx301_cur."!mark_commit"($I316)
-  rxquantr306_done:
+    goto rxcap_300_done
+  rxcap_300_fail:
+    goto rx290_fail
+  rxcap_300_done:
+    set_addr $I10, rxquantr295_done
+    (rx290_rep) = rx290_cur."!mark_commit"($I10)
+  rxquantr295_done:
 .annotate 'line', 100
   # rx pass
-    rx301_cur."!cursor_pass"(rx301_pos, "metachar:sym<{*}>")
-    rx301_cur."!cursor_debug"("PASS  ", "metachar:sym<{*}>", " at pos=", rx301_pos)
-    .return (rx301_cur)
-  rx301_fail:
+    rx290_cur."!cursor_pass"(rx290_pos, "metachar:sym<{*}>")
+    rx290_cur."!cursor_debug"("PASS  ", "metachar:sym<{*}>", " at pos=", rx290_pos)
+    .return (rx290_cur)
+  rx290_restart:
 .annotate 'line', 3
-    (rx301_rep, rx301_pos, $I10, $P10) = rx301_cur."!mark_fail"(0)
-    lt rx301_pos, -1, rx301_done
-    eq rx301_pos, -1, rx301_fail
+    rx290_cur."!cursor_debug"("NEXT ", "metachar:sym<{*}>")
+  rx290_fail:
+    (rx290_rep, rx290_pos, $I10, $P10) = rx290_cur."!mark_fail"(0)
+    lt rx290_pos, -1, rx290_done
+    eq rx290_pos, -1, rx290_fail
     jump $I10
-  rx301_done:
-    rx301_cur."!cursor_fail"()
-    rx301_cur."!cursor_debug"("FAIL  ", "metachar:sym<{*}>")
-    .return (rx301_cur)
+  rx290_done:
+    rx290_cur."!cursor_fail"()
+    rx290_cur."!cursor_debug"("FAIL  ", "metachar:sym<{*}>")
+    .return (rx290_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<{*}>"  :subid("86_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<{*}>"  :subid("86_1280467470.54449") :method
 .annotate 'line', 3
-    new $P303, "ResizablePMCArray"
-    push $P303, "{*}"
-    .return ($P303)
+    new $P292, "ResizablePMCArray"
+    push $P292, "{*}"
+    .return ($P292)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<assert>"  :subid("87_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<assert>"  :subid("87_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx318_tgt
-    .local int rx318_pos
-    .local int rx318_off
-    .local int rx318_eos
-    .local int rx318_rep
-    .local pmc rx318_cur
-    (rx318_cur, rx318_pos, rx318_tgt) = self."!cursor_start"()
-    rx318_cur."!cursor_debug"("START ", "metachar:sym<assert>")
-    .lex unicode:"$\x{a2}", rx318_cur
-    .local pmc match
-    .lex "$/", match
-    length rx318_eos, rx318_tgt
-    gt rx318_pos, rx318_eos, rx318_done
-    set rx318_off, 0
-    lt rx318_pos, 2, rx318_start
-    sub rx318_off, rx318_pos, 1
-    substr rx318_tgt, rx318_tgt, rx318_off
-  rx318_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan322_done
-    goto rxscan322_scan
-  rxscan322_loop:
-    ($P10) = rx318_cur."from"()
-    inc $P10
-    set rx318_pos, $P10
-    ge rx318_pos, rx318_eos, rxscan322_done
-  rxscan322_scan:
-    set_addr $I10, rxscan322_loop
-    rx318_cur."!mark_push"(0, rx318_pos, $I10)
-  rxscan322_done:
+    .local string rx302_tgt
+    .local int rx302_pos
+    .local int rx302_off
+    .local int rx302_eos
+    .local int rx302_rep
+    .local pmc rx302_cur
+    (rx302_cur, rx302_pos, rx302_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx302_cur
+    .local pmc match
+    .lex "$/", match
+    length rx302_eos, rx302_tgt
+    gt rx302_pos, rx302_eos, rx302_done
+    set rx302_off, 0
+    lt rx302_pos, 2, rx302_start
+    sub rx302_off, rx302_pos, 1
+    substr rx302_tgt, rx302_tgt, rx302_off
+  rx302_start:
+    eq $I10, 1, rx302_restart
+    rx302_cur."!cursor_debug"("START ", "metachar:sym<assert>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan306_done
+    goto rxscan306_scan
+  rxscan306_loop:
+    ($P10) = rx302_cur."from"()
+    inc $P10
+    set rx302_pos, $P10
+    ge rx302_pos, rx302_eos, rxscan306_done
+  rxscan306_scan:
+    set_addr $I10, rxscan306_loop
+    rx302_cur."!mark_push"(0, rx302_pos, $I10)
+  rxscan306_done:
 .annotate 'line', 105
   # rx literal  "<"
-    add $I11, rx318_pos, 1
-    gt $I11, rx318_eos, rx318_fail
-    sub $I11, rx318_pos, rx318_off
-    substr $S10, rx318_tgt, $I11, 1
-    ne $S10, "<", rx318_fail
-    add rx318_pos, 1
+    add $I11, rx302_pos, 1
+    gt $I11, rx302_eos, rx302_fail
+    sub $I11, rx302_pos, rx302_off
+    substr $S10, rx302_tgt, $I11, 1
+    ne $S10, "<", rx302_fail
+    add rx302_pos, 1
   # rx subrule "assertion" subtype=capture negate=
-    rx318_cur."!cursor_pos"(rx318_pos)
-    $P10 = rx318_cur."assertion"()
-    unless $P10, rx318_fail
-    rx318_cur."!mark_push"(0, -1, 0, $P10)
+    rx302_cur."!cursor_pos"(rx302_pos)
+    $P10 = rx302_cur."assertion"()
+    unless $P10, rx302_fail
+    rx302_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx318_pos = $P10."pos"()
-  alt323_0:
+    rx302_pos = $P10."pos"()
+  alt307_0:
 .annotate 'line', 106
-    set_addr $I10, alt323_1
-    rx318_cur."!mark_push"(0, rx318_pos, $I10)
+    set_addr $I10, alt307_1
+    rx302_cur."!mark_push"(0, rx302_pos, $I10)
   # rx literal  ">"
-    add $I11, rx318_pos, 1
-    gt $I11, rx318_eos, rx318_fail
-    sub $I11, rx318_pos, rx318_off
-    substr $S10, rx318_tgt, $I11, 1
-    ne $S10, ">", rx318_fail
-    add rx318_pos, 1
-    goto alt323_end
-  alt323_1:
+    add $I11, rx302_pos, 1
+    gt $I11, rx302_eos, rx302_fail
+    sub $I11, rx302_pos, rx302_off
+    substr $S10, rx302_tgt, $I11, 1
+    ne $S10, ">", rx302_fail
+    add rx302_pos, 1
+    goto alt307_end
+  alt307_1:
   # rx subrule "panic" subtype=method negate=
-    rx318_cur."!cursor_pos"(rx318_pos)
-    $P10 = rx318_cur."panic"("regex assertion not terminated by angle bracket")
-    unless $P10, rx318_fail
-    rx318_pos = $P10."pos"()
-  alt323_end:
+    rx302_cur."!cursor_pos"(rx302_pos)
+    $P10 = rx302_cur."panic"("regex assertion not terminated by angle bracket")
+    unless $P10, rx302_fail
+    rx302_pos = $P10."pos"()
+  alt307_end:
 .annotate 'line', 104
   # rx pass
-    rx318_cur."!cursor_pass"(rx318_pos, "metachar:sym<assert>")
-    rx318_cur."!cursor_debug"("PASS  ", "metachar:sym<assert>", " at pos=", rx318_pos)
-    .return (rx318_cur)
-  rx318_fail:
+    rx302_cur."!cursor_pass"(rx302_pos, "metachar:sym<assert>")
+    rx302_cur."!cursor_debug"("PASS  ", "metachar:sym<assert>", " at pos=", rx302_pos)
+    .return (rx302_cur)
+  rx302_restart:
 .annotate 'line', 3
-    (rx318_rep, rx318_pos, $I10, $P10) = rx318_cur."!mark_fail"(0)
-    lt rx318_pos, -1, rx318_done
-    eq rx318_pos, -1, rx318_fail
+    rx302_cur."!cursor_debug"("NEXT ", "metachar:sym<assert>")
+  rx302_fail:
+    (rx302_rep, rx302_pos, $I10, $P10) = rx302_cur."!mark_fail"(0)
+    lt rx302_pos, -1, rx302_done
+    eq rx302_pos, -1, rx302_fail
     jump $I10
-  rx318_done:
-    rx318_cur."!cursor_fail"()
-    rx318_cur."!cursor_debug"("FAIL  ", "metachar:sym<assert>")
-    .return (rx318_cur)
+  rx302_done:
+    rx302_cur."!cursor_fail"()
+    rx302_cur."!cursor_debug"("FAIL  ", "metachar:sym<assert>")
+    .return (rx302_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<assert>"  :subid("88_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<assert>"  :subid("88_1280467470.54449") :method
 .annotate 'line', 3
-    $P320 = self."!PREFIX__!subrule"("assertion", "<")
-    new $P321, "ResizablePMCArray"
-    push $P321, $P320
-    .return ($P321)
+    $P304 = self."!PREFIX__!subrule"("assertion", "<")
+    new $P305, "ResizablePMCArray"
+    push $P305, $P304
+    .return ($P305)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<var>"  :subid("89_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<var>"  :subid("89_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx325_tgt
-    .local int rx325_pos
-    .local int rx325_off
-    .local int rx325_eos
-    .local int rx325_rep
-    .local pmc rx325_cur
-    (rx325_cur, rx325_pos, rx325_tgt) = self."!cursor_start"()
-    rx325_cur."!cursor_debug"("START ", "metachar:sym<var>")
-    rx325_cur."!cursor_caparray"("quantified_atom")
-    .lex unicode:"$\x{a2}", rx325_cur
-    .local pmc match
-    .lex "$/", match
-    length rx325_eos, rx325_tgt
-    gt rx325_pos, rx325_eos, rx325_done
-    set rx325_off, 0
-    lt rx325_pos, 2, rx325_start
-    sub rx325_off, rx325_pos, 1
-    substr rx325_tgt, rx325_tgt, rx325_off
-  rx325_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan328_done
-    goto rxscan328_scan
-  rxscan328_loop:
-    ($P10) = rx325_cur."from"()
-    inc $P10
-    set rx325_pos, $P10
-    ge rx325_pos, rx325_eos, rxscan328_done
-  rxscan328_scan:
-    set_addr $I10, rxscan328_loop
-    rx325_cur."!mark_push"(0, rx325_pos, $I10)
-  rxscan328_done:
-  alt329_0:
+    .local string rx309_tgt
+    .local int rx309_pos
+    .local int rx309_off
+    .local int rx309_eos
+    .local int rx309_rep
+    .local pmc rx309_cur
+    (rx309_cur, rx309_pos, rx309_tgt, $I10) = self."!cursor_start"()
+    rx309_cur."!cursor_caparray"("quantified_atom")
+    .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
+    rx309_cur."!cursor_debug"("START ", "metachar:sym<var>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan312_done
+    goto rxscan312_scan
+  rxscan312_loop:
+    ($P10) = rx309_cur."from"()
+    inc $P10
+    set rx309_pos, $P10
+    ge rx309_pos, rx309_eos, rxscan312_done
+  rxscan312_scan:
+    set_addr $I10, rxscan312_loop
+    rx309_cur."!mark_push"(0, rx309_pos, $I10)
+  rxscan312_done:
+  alt313_0:
 .annotate 'line', 110
-    set_addr $I10, alt329_1
-    rx325_cur."!mark_push"(0, rx325_pos, $I10)
+    set_addr $I10, alt313_1
+    rx309_cur."!mark_push"(0, rx309_pos, $I10)
 .annotate 'line', 111
   # rx literal  "$<"
-    add $I11, rx325_pos, 2
-    gt $I11, rx325_eos, rx325_fail
-    sub $I11, rx325_pos, rx325_off
-    substr $S10, rx325_tgt, $I11, 2
-    ne $S10, "$<", rx325_fail
-    add rx325_pos, 2
+    add $I11, rx309_pos, 2
+    gt $I11, rx309_eos, rx309_fail
+    sub $I11, rx309_pos, rx309_off
+    substr $S10, rx309_tgt, $I11, 2
+    ne $S10, "$<", rx309_fail
+    add rx309_pos, 2
   # rx subcapture "name"
-    set_addr $I10, rxcap_332_fail
-    rx325_cur."!mark_push"(0, rx325_pos, $I10)
-  # rx rxquantr330 ** 1..*
-    set_addr $I331, rxquantr330_done
-    rx325_cur."!mark_push"(0, -1, $I331)
-  rxquantr330_loop:
+    set_addr $I10, rxcap_315_fail
+    rx309_cur."!mark_push"(0, rx309_pos, $I10)
+  # rx rxquantr314 ** 1..*
+    set_addr $I10, rxquantr314_done
+    rx309_cur."!mark_push"(0, -1, $I10)
+  rxquantr314_loop:
   # rx enumcharlist negate=1 
-    ge rx325_pos, rx325_eos, rx325_fail
-    sub $I10, rx325_pos, rx325_off
-    substr $S10, rx325_tgt, $I10, 1
+    ge rx309_pos, rx309_eos, rx309_fail
+    sub $I10, rx309_pos, rx309_off
+    substr $S10, rx309_tgt, $I10, 1
     index $I11, ">", $S10
-    ge $I11, 0, rx325_fail
-    inc rx325_pos
-    (rx325_rep) = rx325_cur."!mark_commit"($I331)
-    rx325_cur."!mark_push"(rx325_rep, rx325_pos, $I331)
-    goto rxquantr330_loop
-  rxquantr330_done:
-    set_addr $I10, rxcap_332_fail
-    ($I12, $I11) = rx325_cur."!mark_peek"($I10)
-    rx325_cur."!cursor_pos"($I11)
-    ($P10) = rx325_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx325_pos, "")
-    rx325_cur."!mark_push"(0, -1, 0, $P10)
+    ge $I11, 0, rx309_fail
+    inc rx309_pos
+    set_addr $I10, rxquantr314_done
+    (rx309_rep) = rx309_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr314_done
+    rx309_cur."!mark_push"(rx309_rep, rx309_pos, $I10)
+    goto rxquantr314_loop
+  rxquantr314_done:
+    set_addr $I10, rxcap_315_fail
+    ($I12, $I11) = rx309_cur."!mark_peek"($I10)
+    rx309_cur."!cursor_pos"($I11)
+    ($P10) = rx309_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx309_pos, "")
+    rx309_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    goto rxcap_332_done
-  rxcap_332_fail:
-    goto rx325_fail
-  rxcap_332_done:
+    goto rxcap_315_done
+  rxcap_315_fail:
+    goto rx309_fail
+  rxcap_315_done:
   # rx literal  ">"
-    add $I11, rx325_pos, 1
-    gt $I11, rx325_eos, rx325_fail
-    sub $I11, rx325_pos, rx325_off
-    substr $S10, rx325_tgt, $I11, 1
-    ne $S10, ">", rx325_fail
-    add rx325_pos, 1
-    goto alt329_end
-  alt329_1:
+    add $I11, rx309_pos, 1
+    gt $I11, rx309_eos, rx309_fail
+    sub $I11, rx309_pos, rx309_off
+    substr $S10, rx309_tgt, $I11, 1
+    ne $S10, ">", rx309_fail
+    add rx309_pos, 1
+    goto alt313_end
+  alt313_1:
 .annotate 'line', 112
   # rx literal  "$"
-    add $I11, rx325_pos, 1
-    gt $I11, rx325_eos, rx325_fail
-    sub $I11, rx325_pos, rx325_off
-    substr $S10, rx325_tgt, $I11, 1
-    ne $S10, "$", rx325_fail
-    add rx325_pos, 1
+    add $I11, rx309_pos, 1
+    gt $I11, rx309_eos, rx309_fail
+    sub $I11, rx309_pos, rx309_off
+    substr $S10, rx309_tgt, $I11, 1
+    ne $S10, "$", rx309_fail
+    add rx309_pos, 1
   # rx subcapture "pos"
-    set_addr $I10, rxcap_333_fail
-    rx325_cur."!mark_push"(0, rx325_pos, $I10)
+    set_addr $I10, rxcap_316_fail
+    rx309_cur."!mark_push"(0, rx309_pos, $I10)
   # rx charclass_q d r 1..-1
-    sub $I10, rx325_pos, rx325_off
-    find_not_cclass $I11, 8, rx325_tgt, $I10, rx325_eos
+    sub $I10, rx309_pos, rx309_off
+    find_not_cclass $I11, 8, rx309_tgt, $I10, rx309_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx325_fail
-    add rx325_pos, rx325_off, $I11
-    set_addr $I10, rxcap_333_fail
-    ($I12, $I11) = rx325_cur."!mark_peek"($I10)
-    rx325_cur."!cursor_pos"($I11)
-    ($P10) = rx325_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx325_pos, "")
-    rx325_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx309_fail
+    add rx309_pos, rx309_off, $I11
+    set_addr $I10, rxcap_316_fail
+    ($I12, $I11) = rx309_cur."!mark_peek"($I10)
+    rx309_cur."!cursor_pos"($I11)
+    ($P10) = rx309_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx309_pos, "")
+    rx309_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pos")
-    goto rxcap_333_done
-  rxcap_333_fail:
-    goto rx325_fail
-  rxcap_333_done:
-  alt329_end:
+    goto rxcap_316_done
+  rxcap_316_fail:
+    goto rx309_fail
+  rxcap_316_done:
+  alt313_end:
 .annotate 'line', 115
-  # rx rxquantr334 ** 0..1
-    set_addr $I335, rxquantr334_done
-    rx325_cur."!mark_push"(0, rx325_pos, $I335)
-  rxquantr334_loop:
+  # rx rxquantr317 ** 0..1
+    set_addr $I10, rxquantr317_done
+    rx309_cur."!mark_push"(0, rx309_pos, $I10)
+  rxquantr317_loop:
   # rx subrule "ws" subtype=method negate=
-    rx325_cur."!cursor_pos"(rx325_pos)
-    $P10 = rx325_cur."ws"()
-    unless $P10, rx325_fail
-    rx325_pos = $P10."pos"()
+    rx309_cur."!cursor_pos"(rx309_pos)
+    $P10 = rx309_cur."ws"()
+    unless $P10, rx309_fail
+    rx309_pos = $P10."pos"()
   # rx literal  "="
-    add $I11, rx325_pos, 1
-    gt $I11, rx325_eos, rx325_fail
-    sub $I11, rx325_pos, rx325_off
-    substr $S10, rx325_tgt, $I11, 1
-    ne $S10, "=", rx325_fail
-    add rx325_pos, 1
+    add $I11, rx309_pos, 1
+    gt $I11, rx309_eos, rx309_fail
+    sub $I11, rx309_pos, rx309_off
+    substr $S10, rx309_tgt, $I11, 1
+    ne $S10, "=", rx309_fail
+    add rx309_pos, 1
   # rx subrule "ws" subtype=method negate=
-    rx325_cur."!cursor_pos"(rx325_pos)
-    $P10 = rx325_cur."ws"()
-    unless $P10, rx325_fail
-    rx325_pos = $P10."pos"()
+    rx309_cur."!cursor_pos"(rx309_pos)
+    $P10 = rx309_cur."ws"()
+    unless $P10, rx309_fail
+    rx309_pos = $P10."pos"()
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx325_cur."!cursor_pos"(rx325_pos)
-    $P10 = rx325_cur."quantified_atom"()
-    unless $P10, rx325_fail
-    rx325_cur."!mark_push"(0, -1, 0, $P10)
+    rx309_cur."!cursor_pos"(rx309_pos)
+    $P10 = rx309_cur."quantified_atom"()
+    unless $P10, rx309_fail
+    rx309_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quantified_atom")
-    rx325_pos = $P10."pos"()
-    (rx325_rep) = rx325_cur."!mark_commit"($I335)
-  rxquantr334_done:
+    rx309_pos = $P10."pos"()
+    set_addr $I10, rxquantr317_done
+    (rx309_rep) = rx309_cur."!mark_commit"($I10)
+  rxquantr317_done:
 .annotate 'line', 109
   # rx pass
-    rx325_cur."!cursor_pass"(rx325_pos, "metachar:sym<var>")
-    rx325_cur."!cursor_debug"("PASS  ", "metachar:sym<var>", " at pos=", rx325_pos)
-    .return (rx325_cur)
-  rx325_fail:
+    rx309_cur."!cursor_pass"(rx309_pos, "metachar:sym<var>")
+    rx309_cur."!cursor_debug"("PASS  ", "metachar:sym<var>", " at pos=", rx309_pos)
+    .return (rx309_cur)
+  rx309_restart:
 .annotate 'line', 3
-    (rx325_rep, rx325_pos, $I10, $P10) = rx325_cur."!mark_fail"(0)
-    lt rx325_pos, -1, rx325_done
-    eq rx325_pos, -1, rx325_fail
+    rx309_cur."!cursor_debug"("NEXT ", "metachar:sym<var>")
+  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
-  rx325_done:
-    rx325_cur."!cursor_fail"()
-    rx325_cur."!cursor_debug"("FAIL  ", "metachar:sym<var>")
-    .return (rx325_cur)
+  rx309_done:
+    rx309_cur."!cursor_fail"()
+    rx309_cur."!cursor_debug"("FAIL  ", "metachar:sym<var>")
+    .return (rx309_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<var>"  :subid("90_1277356887.58177") :method
+.sub "!PREFIX__metachar:sym<var>"  :subid("90_1280467470.54449") :method
 .annotate 'line', 3
-    new $P327, "ResizablePMCArray"
-    push $P327, "$"
-    push $P327, "$<"
-    .return ($P327)
+    new $P311, "ResizablePMCArray"
+    push $P311, "$"
+    push $P311, "$<"
+    .return ($P311)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<PIR>"  :subid("91_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "metachar:sym<PIR>"  :subid("91_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx337_tgt
-    .local int rx337_pos
-    .local int rx337_off
-    .local int rx337_eos
-    .local int rx337_rep
-    .local pmc rx337_cur
-    (rx337_cur, rx337_pos, rx337_tgt) = self."!cursor_start"()
-    rx337_cur."!cursor_debug"("START ", "metachar:sym<PIR>")
-    .lex unicode:"$\x{a2}", rx337_cur
+    .local string rx319_tgt
+    .local int rx319_pos
+    .local int rx319_off
+    .local int rx319_eos
+    .local int rx319_rep
+    .local pmc rx319_cur
+    (rx319_cur, rx319_pos, rx319_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx319_cur
+    .local pmc match
+    .lex "$/", match
+    length rx319_eos, rx319_tgt
+    gt rx319_pos, rx319_eos, rx319_done
+    set rx319_off, 0
+    lt rx319_pos, 2, rx319_start
+    sub rx319_off, rx319_pos, 1
+    substr rx319_tgt, rx319_tgt, rx319_off
+  rx319_start:
+    eq $I10, 1, rx319_restart
+    rx319_cur."!cursor_debug"("START ", "metachar:sym<PIR>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan322_done
+    goto rxscan322_scan
+  rxscan322_loop:
+    ($P10) = rx319_cur."from"()
+    inc $P10
+    set rx319_pos, $P10
+    ge rx319_pos, rx319_eos, rxscan322_done
+  rxscan322_scan:
+    set_addr $I10, rxscan322_loop
+    rx319_cur."!mark_push"(0, rx319_pos, $I10)
+  rxscan322_done:
+.annotate 'line', 119
+  # rx literal  ":PIR{{"
+    add $I11, rx319_pos, 6
+    gt $I11, rx319_eos, rx319_fail
+    sub $I11, rx319_pos, rx319_off
+    substr $S10, rx319_tgt, $I11, 6
+    ne $S10, ":PIR{{", rx319_fail
+    add rx319_pos, 6
+  # rx subcapture "pir"
+    set_addr $I10, rxcap_325_fail
+    rx319_cur."!mark_push"(0, rx319_pos, $I10)
+  # rx rxquantf323 ** 0..*
+    set_addr $I10, rxquantf323_loop
+    rx319_cur."!mark_push"(0, rx319_pos, $I10)
+    goto rxquantf323_done
+  rxquantf323_loop:
+  # rx charclass .
+    ge rx319_pos, rx319_eos, rx319_fail
+    inc rx319_pos
+    set_addr $I10, rxquantf323_loop
+    rx319_cur."!mark_push"(rx319_rep, rx319_pos, $I10)
+  rxquantf323_done:
+    set_addr $I10, rxcap_325_fail
+    ($I12, $I11) = rx319_cur."!mark_peek"($I10)
+    rx319_cur."!cursor_pos"($I11)
+    ($P10) = rx319_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx319_pos, "")
+    rx319_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("pir")
+    goto rxcap_325_done
+  rxcap_325_fail:
+    goto rx319_fail
+  rxcap_325_done:
+  # rx literal  "}}"
+    add $I11, rx319_pos, 2
+    gt $I11, rx319_eos, rx319_fail
+    sub $I11, rx319_pos, rx319_off
+    substr $S10, rx319_tgt, $I11, 2
+    ne $S10, "}}", rx319_fail
+    add rx319_pos, 2
+.annotate 'line', 118
+  # rx pass
+    rx319_cur."!cursor_pass"(rx319_pos, "metachar:sym<PIR>")
+    rx319_cur."!cursor_debug"("PASS  ", "metachar:sym<PIR>", " at pos=", rx319_pos)
+    .return (rx319_cur)
+  rx319_restart:
+.annotate 'line', 3
+    rx319_cur."!cursor_debug"("NEXT ", "metachar:sym<PIR>")
+  rx319_fail:
+    (rx319_rep, rx319_pos, $I10, $P10) = rx319_cur."!mark_fail"(0)
+    lt rx319_pos, -1, rx319_done
+    eq rx319_pos, -1, rx319_fail
+    jump $I10
+  rx319_done:
+    rx319_cur."!cursor_fail"()
+    rx319_cur."!cursor_debug"("FAIL  ", "metachar:sym<PIR>")
+    .return (rx319_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__metachar:sym<PIR>"  :subid("92_1280467470.54449") :method
+.annotate 'line', 3
+    new $P321, "ResizablePMCArray"
+    push $P321, ":PIR{{"
+    .return ($P321)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash"  :subid("93_1280467470.54449") :method
+.annotate 'line', 122
+    $P327 = self."!protoregex"("backslash")
+    .return ($P327)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__backslash"  :subid("94_1280467470.54449") :method
+.annotate 'line', 122
+    $P329 = self."!PREFIX__!protoregex"("backslash")
+    .return ($P329)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<w>"  :subid("95_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+    .local string rx331_tgt
+    .local int rx331_pos
+    .local int rx331_off
+    .local int rx331_eos
+    .local int rx331_rep
+    .local pmc rx331_cur
+    (rx331_cur, rx331_pos, rx331_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx331_cur
+    .local pmc match
+    .lex "$/", match
+    length rx331_eos, rx331_tgt
+    gt rx331_pos, rx331_eos, rx331_done
+    set rx331_off, 0
+    lt rx331_pos, 2, rx331_start
+    sub rx331_off, rx331_pos, 1
+    substr rx331_tgt, rx331_tgt, rx331_off
+  rx331_start:
+    eq $I10, 1, rx331_restart
+    rx331_cur."!cursor_debug"("START ", "backslash:sym<w>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan334_done
+    goto rxscan334_scan
+  rxscan334_loop:
+    ($P10) = rx331_cur."from"()
+    inc $P10
+    set rx331_pos, $P10
+    ge rx331_pos, rx331_eos, rxscan334_done
+  rxscan334_scan:
+    set_addr $I10, rxscan334_loop
+    rx331_cur."!mark_push"(0, rx331_pos, $I10)
+  rxscan334_done:
+.annotate 'line', 123
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_335_fail
+    rx331_cur."!mark_push"(0, rx331_pos, $I10)
+  # rx enumcharlist negate=0 
+    ge rx331_pos, rx331_eos, rx331_fail
+    sub $I10, rx331_pos, rx331_off
+    substr $S10, rx331_tgt, $I10, 1
+    index $I11, "dswnDSWN", $S10
+    lt $I11, 0, rx331_fail
+    inc rx331_pos
+    set_addr $I10, rxcap_335_fail
+    ($I12, $I11) = rx331_cur."!mark_peek"($I10)
+    rx331_cur."!cursor_pos"($I11)
+    ($P10) = rx331_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx331_pos, "")
+    rx331_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_335_done
+  rxcap_335_fail:
+    goto rx331_fail
+  rxcap_335_done:
+  # rx pass
+    rx331_cur."!cursor_pass"(rx331_pos, "backslash:sym<w>")
+    rx331_cur."!cursor_debug"("PASS  ", "backslash:sym<w>", " at pos=", rx331_pos)
+    .return (rx331_cur)
+  rx331_restart:
+.annotate 'line', 3
+    rx331_cur."!cursor_debug"("NEXT ", "backslash:sym<w>")
+  rx331_fail:
+    (rx331_rep, rx331_pos, $I10, $P10) = rx331_cur."!mark_fail"(0)
+    lt rx331_pos, -1, rx331_done
+    eq rx331_pos, -1, rx331_fail
+    jump $I10
+  rx331_done:
+    rx331_cur."!cursor_fail"()
+    rx331_cur."!cursor_debug"("FAIL  ", "backslash:sym<w>")
+    .return (rx331_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__backslash:sym<w>"  :subid("96_1280467470.54449") :method
+.annotate 'line', 3
+    new $P333, "ResizablePMCArray"
+    push $P333, "N"
+    push $P333, "W"
+    push $P333, "S"
+    push $P333, "D"
+    push $P333, "n"
+    push $P333, "w"
+    push $P333, "s"
+    push $P333, "d"
+    .return ($P333)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<b>"  :subid("97_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+    .local string rx337_tgt
+    .local int rx337_pos
+    .local int rx337_off
+    .local int rx337_eos
+    .local int rx337_rep
+    .local pmc rx337_cur
+    (rx337_cur, rx337_pos, rx337_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx337_cur
     .local pmc match
     .lex "$/", match
     length rx337_eos, rx337_tgt
@@ -4044,6 +4418,8 @@
     sub rx337_off, rx337_pos, 1
     substr rx337_tgt, rx337_tgt, rx337_off
   rx337_start:
+    eq $I10, 1, rx337_restart
+    rx337_cur."!cursor_debug"("START ", "backslash:sym<b>")
     $I10 = self.'from'()
     ne $I10, -1, rxscan340_done
     goto rxscan340_scan
@@ -4056,92 +4432,146 @@
     set_addr $I10, rxscan340_loop
     rx337_cur."!mark_push"(0, rx337_pos, $I10)
   rxscan340_done:
-.annotate 'line', 119
-  # rx literal  ":PIR{{"
-    add $I11, rx337_pos, 6
-    gt $I11, rx337_eos, rx337_fail
-    sub $I11, rx337_pos, rx337_off
-    substr $S10, rx337_tgt, $I11, 6
-    ne $S10, ":PIR{{", rx337_fail
-    add rx337_pos, 6
-  # rx subcapture "pir"
-    set_addr $I10, rxcap_343_fail
-    rx337_cur."!mark_push"(0, rx337_pos, $I10)
-  # rx rxquantf341 ** 0..*
-    set_addr $I10, rxquantf341_loop
+.annotate 'line', 124
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_341_fail
     rx337_cur."!mark_push"(0, rx337_pos, $I10)
-    goto rxquantf341_done
-  rxquantf341_loop:
-  # rx charclass .
+  # rx enumcharlist negate=0 
     ge rx337_pos, rx337_eos, rx337_fail
+    sub $I10, rx337_pos, rx337_off
+    substr $S10, rx337_tgt, $I10, 1
+    index $I11, "bB", $S10
+    lt $I11, 0, rx337_fail
     inc rx337_pos
-    set_addr $I10, rxquantf341_loop
-    rx337_cur."!mark_push"($I342, rx337_pos, $I10)
-  rxquantf341_done:
-    set_addr $I10, rxcap_343_fail
+    set_addr $I10, rxcap_341_fail
     ($I12, $I11) = rx337_cur."!mark_peek"($I10)
     rx337_cur."!cursor_pos"($I11)
     ($P10) = rx337_cur."!cursor_start"()
     $P10."!cursor_pass"(rx337_pos, "")
     rx337_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("pir")
-    goto rxcap_343_done
-  rxcap_343_fail:
+    $P10."!cursor_names"("sym")
+    goto rxcap_341_done
+  rxcap_341_fail:
     goto rx337_fail
-  rxcap_343_done:
-  # rx literal  "}}"
-    add $I11, rx337_pos, 2
-    gt $I11, rx337_eos, rx337_fail
-    sub $I11, rx337_pos, rx337_off
-    substr $S10, rx337_tgt, $I11, 2
-    ne $S10, "}}", rx337_fail
-    add rx337_pos, 2
-.annotate 'line', 118
+  rxcap_341_done:
   # rx pass
-    rx337_cur."!cursor_pass"(rx337_pos, "metachar:sym<PIR>")
-    rx337_cur."!cursor_debug"("PASS  ", "metachar:sym<PIR>", " at pos=", rx337_pos)
+    rx337_cur."!cursor_pass"(rx337_pos, "backslash:sym<b>")
+    rx337_cur."!cursor_debug"("PASS  ", "backslash:sym<b>", " at pos=", rx337_pos)
     .return (rx337_cur)
-  rx337_fail:
+  rx337_restart:
 .annotate 'line', 3
+    rx337_cur."!cursor_debug"("NEXT ", "backslash:sym<b>")
+  rx337_fail:
     (rx337_rep, rx337_pos, $I10, $P10) = rx337_cur."!mark_fail"(0)
     lt rx337_pos, -1, rx337_done
     eq rx337_pos, -1, rx337_fail
     jump $I10
   rx337_done:
     rx337_cur."!cursor_fail"()
-    rx337_cur."!cursor_debug"("FAIL  ", "metachar:sym<PIR>")
+    rx337_cur."!cursor_debug"("FAIL  ", "backslash:sym<b>")
     .return (rx337_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<PIR>"  :subid("92_1277356887.58177") :method
+.sub "!PREFIX__backslash:sym<b>"  :subid("98_1280467470.54449") :method
 .annotate 'line', 3
     new $P339, "ResizablePMCArray"
-    push $P339, ":PIR{{"
+    push $P339, "B"
+    push $P339, "b"
     .return ($P339)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash"  :subid("93_1277356887.58177") :method
-.annotate 'line', 122
-    $P345 = self."!protoregex"("backslash")
-    .return ($P345)
+.sub "backslash:sym<e>"  :subid("99_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+    .local string rx343_tgt
+    .local int rx343_pos
+    .local int rx343_off
+    .local int rx343_eos
+    .local int rx343_rep
+    .local pmc rx343_cur
+    (rx343_cur, rx343_pos, rx343_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx343_cur
+    .local pmc match
+    .lex "$/", match
+    length rx343_eos, rx343_tgt
+    gt rx343_pos, rx343_eos, rx343_done
+    set rx343_off, 0
+    lt rx343_pos, 2, rx343_start
+    sub rx343_off, rx343_pos, 1
+    substr rx343_tgt, rx343_tgt, rx343_off
+  rx343_start:
+    eq $I10, 1, rx343_restart
+    rx343_cur."!cursor_debug"("START ", "backslash:sym<e>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan346_done
+    goto rxscan346_scan
+  rxscan346_loop:
+    ($P10) = rx343_cur."from"()
+    inc $P10
+    set rx343_pos, $P10
+    ge rx343_pos, rx343_eos, rxscan346_done
+  rxscan346_scan:
+    set_addr $I10, rxscan346_loop
+    rx343_cur."!mark_push"(0, rx343_pos, $I10)
+  rxscan346_done:
+.annotate 'line', 125
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_347_fail
+    rx343_cur."!mark_push"(0, rx343_pos, $I10)
+  # rx enumcharlist negate=0 
+    ge rx343_pos, rx343_eos, rx343_fail
+    sub $I10, rx343_pos, rx343_off
+    substr $S10, rx343_tgt, $I10, 1
+    index $I11, "eE", $S10
+    lt $I11, 0, rx343_fail
+    inc rx343_pos
+    set_addr $I10, rxcap_347_fail
+    ($I12, $I11) = rx343_cur."!mark_peek"($I10)
+    rx343_cur."!cursor_pos"($I11)
+    ($P10) = rx343_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx343_pos, "")
+    rx343_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_347_done
+  rxcap_347_fail:
+    goto rx343_fail
+  rxcap_347_done:
+  # rx pass
+    rx343_cur."!cursor_pass"(rx343_pos, "backslash:sym<e>")
+    rx343_cur."!cursor_debug"("PASS  ", "backslash:sym<e>", " at pos=", rx343_pos)
+    .return (rx343_cur)
+  rx343_restart:
+.annotate 'line', 3
+    rx343_cur."!cursor_debug"("NEXT ", "backslash:sym<e>")
+  rx343_fail:
+    (rx343_rep, rx343_pos, $I10, $P10) = rx343_cur."!mark_fail"(0)
+    lt rx343_pos, -1, rx343_done
+    eq rx343_pos, -1, rx343_fail
+    jump $I10
+  rx343_done:
+    rx343_cur."!cursor_fail"()
+    rx343_cur."!cursor_debug"("FAIL  ", "backslash:sym<e>")
+    .return (rx343_cur)
+    .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash"  :subid("94_1277356887.58177") :method
-.annotate 'line', 122
-    $P347 = self."!PREFIX__!protoregex"("backslash")
-    .return ($P347)
+.sub "!PREFIX__backslash:sym<e>"  :subid("100_1280467470.54449") :method
+.annotate 'line', 3
+    new $P345, "ResizablePMCArray"
+    push $P345, "E"
+    push $P345, "e"
+    .return ($P345)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<w>"  :subid("95_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "backslash:sym<f>"  :subid("101_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
     .local string rx349_tgt
     .local int rx349_pos
@@ -4149,8 +4579,7 @@
     .local int rx349_eos
     .local int rx349_rep
     .local pmc rx349_cur
-    (rx349_cur, rx349_pos, rx349_tgt) = self."!cursor_start"()
-    rx349_cur."!cursor_debug"("START ", "backslash:sym<w>")
+    (rx349_cur, rx349_pos, rx349_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx349_cur
     .local pmc match
     .lex "$/", match
@@ -4161,6 +4590,8 @@
     sub rx349_off, rx349_pos, 1
     substr rx349_tgt, rx349_tgt, rx349_off
   rx349_start:
+    eq $I10, 1, rx349_restart
+    rx349_cur."!cursor_debug"("START ", "backslash:sym<f>")
     $I10 = self.'from'()
     ne $I10, -1, rxscan352_done
     goto rxscan352_scan
@@ -4173,7 +4604,7 @@
     set_addr $I10, rxscan352_loop
     rx349_cur."!mark_push"(0, rx349_pos, $I10)
   rxscan352_done:
-.annotate 'line', 123
+.annotate 'line', 126
   # rx subcapture "sym"
     set_addr $I10, rxcap_353_fail
     rx349_cur."!mark_push"(0, rx349_pos, $I10)
@@ -4181,7 +4612,7 @@
     ge rx349_pos, rx349_eos, rx349_fail
     sub $I10, rx349_pos, rx349_off
     substr $S10, rx349_tgt, $I10, 1
-    index $I11, "dswnDSWN", $S10
+    index $I11, "fF", $S10
     lt $I11, 0, rx349_fail
     inc rx349_pos
     set_addr $I10, rxcap_353_fail
@@ -4196,41 +4627,37 @@
     goto rx349_fail
   rxcap_353_done:
   # rx pass
-    rx349_cur."!cursor_pass"(rx349_pos, "backslash:sym<w>")
-    rx349_cur."!cursor_debug"("PASS  ", "backslash:sym<w>", " at pos=", rx349_pos)
+    rx349_cur."!cursor_pass"(rx349_pos, "backslash:sym<f>")
+    rx349_cur."!cursor_debug"("PASS  ", "backslash:sym<f>", " at pos=", rx349_pos)
     .return (rx349_cur)
-  rx349_fail:
+  rx349_restart:
 .annotate 'line', 3
+    rx349_cur."!cursor_debug"("NEXT ", "backslash:sym<f>")
+  rx349_fail:
     (rx349_rep, rx349_pos, $I10, $P10) = rx349_cur."!mark_fail"(0)
     lt rx349_pos, -1, rx349_done
     eq rx349_pos, -1, rx349_fail
     jump $I10
   rx349_done:
     rx349_cur."!cursor_fail"()
-    rx349_cur."!cursor_debug"("FAIL  ", "backslash:sym<w>")
+    rx349_cur."!cursor_debug"("FAIL  ", "backslash:sym<f>")
     .return (rx349_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<w>"  :subid("96_1277356887.58177") :method
+.sub "!PREFIX__backslash:sym<f>"  :subid("102_1280467470.54449") :method
 .annotate 'line', 3
     new $P351, "ResizablePMCArray"
-    push $P351, "N"
-    push $P351, "W"
-    push $P351, "S"
-    push $P351, "D"
-    push $P351, "n"
-    push $P351, "w"
-    push $P351, "s"
-    push $P351, "d"
+    push $P351, "F"
+    push $P351, "f"
     .return ($P351)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<b>"  :subid("97_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "backslash:sym<h>"  :subid("103_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
     .local string rx355_tgt
     .local int rx355_pos
@@ -4238,8 +4665,7 @@
     .local int rx355_eos
     .local int rx355_rep
     .local pmc rx355_cur
-    (rx355_cur, rx355_pos, rx355_tgt) = self."!cursor_start"()
-    rx355_cur."!cursor_debug"("START ", "backslash:sym<b>")
+    (rx355_cur, rx355_pos, rx355_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx355_cur
     .local pmc match
     .lex "$/", match
@@ -4250,6 +4676,8 @@
     sub rx355_off, rx355_pos, 1
     substr rx355_tgt, rx355_tgt, rx355_off
   rx355_start:
+    eq $I10, 1, rx355_restart
+    rx355_cur."!cursor_debug"("START ", "backslash:sym<h>")
     $I10 = self.'from'()
     ne $I10, -1, rxscan358_done
     goto rxscan358_scan
@@ -4262,7 +4690,7 @@
     set_addr $I10, rxscan358_loop
     rx355_cur."!mark_push"(0, rx355_pos, $I10)
   rxscan358_done:
-.annotate 'line', 124
+.annotate 'line', 127
   # rx subcapture "sym"
     set_addr $I10, rxcap_359_fail
     rx355_cur."!mark_push"(0, rx355_pos, $I10)
@@ -4270,7 +4698,7 @@
     ge rx355_pos, rx355_eos, rx355_fail
     sub $I10, rx355_pos, rx355_off
     substr $S10, rx355_tgt, $I10, 1
-    index $I11, "bB", $S10
+    index $I11, "hH", $S10
     lt $I11, 0, rx355_fail
     inc rx355_pos
     set_addr $I10, rxcap_359_fail
@@ -4285,35 +4713,37 @@
     goto rx355_fail
   rxcap_359_done:
   # rx pass
-    rx355_cur."!cursor_pass"(rx355_pos, "backslash:sym<b>")
-    rx355_cur."!cursor_debug"("PASS  ", "backslash:sym<b>", " at pos=", rx355_pos)
+    rx355_cur."!cursor_pass"(rx355_pos, "backslash:sym<h>")
+    rx355_cur."!cursor_debug"("PASS  ", "backslash:sym<h>", " at pos=", rx355_pos)
     .return (rx355_cur)
-  rx355_fail:
+  rx355_restart:
 .annotate 'line', 3
+    rx355_cur."!cursor_debug"("NEXT ", "backslash:sym<h>")
+  rx355_fail:
     (rx355_rep, rx355_pos, $I10, $P10) = rx355_cur."!mark_fail"(0)
     lt rx355_pos, -1, rx355_done
     eq rx355_pos, -1, rx355_fail
     jump $I10
   rx355_done:
     rx355_cur."!cursor_fail"()
-    rx355_cur."!cursor_debug"("FAIL  ", "backslash:sym<b>")
+    rx355_cur."!cursor_debug"("FAIL  ", "backslash:sym<h>")
     .return (rx355_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<b>"  :subid("98_1277356887.58177") :method
+.sub "!PREFIX__backslash:sym<h>"  :subid("104_1280467470.54449") :method
 .annotate 'line', 3
     new $P357, "ResizablePMCArray"
-    push $P357, "B"
-    push $P357, "b"
+    push $P357, "H"
+    push $P357, "h"
     .return ($P357)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<e>"  :subid("99_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "backslash:sym<r>"  :subid("105_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
     .local string rx361_tgt
     .local int rx361_pos
@@ -4321,8 +4751,7 @@
     .local int rx361_eos
     .local int rx361_rep
     .local pmc rx361_cur
-    (rx361_cur, rx361_pos, rx361_tgt) = self."!cursor_start"()
-    rx361_cur."!cursor_debug"("START ", "backslash:sym<e>")
+    (rx361_cur, rx361_pos, rx361_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx361_cur
     .local pmc match
     .lex "$/", match
@@ -4333,6 +4762,8 @@
     sub rx361_off, rx361_pos, 1
     substr rx361_tgt, rx361_tgt, rx361_off
   rx361_start:
+    eq $I10, 1, rx361_restart
+    rx361_cur."!cursor_debug"("START ", "backslash:sym<r>")
     $I10 = self.'from'()
     ne $I10, -1, rxscan364_done
     goto rxscan364_scan
@@ -4345,7 +4776,7 @@
     set_addr $I10, rxscan364_loop
     rx361_cur."!mark_push"(0, rx361_pos, $I10)
   rxscan364_done:
-.annotate 'line', 125
+.annotate 'line', 128
   # rx subcapture "sym"
     set_addr $I10, rxcap_365_fail
     rx361_cur."!mark_push"(0, rx361_pos, $I10)
@@ -4353,7 +4784,7 @@
     ge rx361_pos, rx361_eos, rx361_fail
     sub $I10, rx361_pos, rx361_off
     substr $S10, rx361_tgt, $I10, 1
-    index $I11, "eE", $S10
+    index $I11, "rR", $S10
     lt $I11, 0, rx361_fail
     inc rx361_pos
     set_addr $I10, rxcap_365_fail
@@ -4368,35 +4799,37 @@
     goto rx361_fail
   rxcap_365_done:
   # rx pass
-    rx361_cur."!cursor_pass"(rx361_pos, "backslash:sym<e>")
-    rx361_cur."!cursor_debug"("PASS  ", "backslash:sym<e>", " at pos=", rx361_pos)
+    rx361_cur."!cursor_pass"(rx361_pos, "backslash:sym<r>")
+    rx361_cur."!cursor_debug"("PASS  ", "backslash:sym<r>", " at pos=", rx361_pos)
     .return (rx361_cur)
-  rx361_fail:
+  rx361_restart:
 .annotate 'line', 3
+    rx361_cur."!cursor_debug"("NEXT ", "backslash:sym<r>")
+  rx361_fail:
     (rx361_rep, rx361_pos, $I10, $P10) = rx361_cur."!mark_fail"(0)
     lt rx361_pos, -1, rx361_done
     eq rx361_pos, -1, rx361_fail
     jump $I10
   rx361_done:
     rx361_cur."!cursor_fail"()
-    rx361_cur."!cursor_debug"("FAIL  ", "backslash:sym<e>")
+    rx361_cur."!cursor_debug"("FAIL  ", "backslash:sym<r>")
     .return (rx361_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<e>"  :subid("100_1277356887.58177") :method
+.sub "!PREFIX__backslash:sym<r>"  :subid("106_1280467470.54449") :method
 .annotate 'line', 3
     new $P363, "ResizablePMCArray"
-    push $P363, "E"
-    push $P363, "e"
+    push $P363, "R"
+    push $P363, "r"
     .return ($P363)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<f>"  :subid("101_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "backslash:sym<t>"  :subid("107_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
     .local string rx367_tgt
     .local int rx367_pos
@@ -4404,8 +4837,7 @@
     .local int rx367_eos
     .local int rx367_rep
     .local pmc rx367_cur
-    (rx367_cur, rx367_pos, rx367_tgt) = self."!cursor_start"()
-    rx367_cur."!cursor_debug"("START ", "backslash:sym<f>")
+    (rx367_cur, rx367_pos, rx367_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx367_cur
     .local pmc match
     .lex "$/", match
@@ -4416,6 +4848,8 @@
     sub rx367_off, rx367_pos, 1
     substr rx367_tgt, rx367_tgt, rx367_off
   rx367_start:
+    eq $I10, 1, rx367_restart
+    rx367_cur."!cursor_debug"("START ", "backslash:sym<t>")
     $I10 = self.'from'()
     ne $I10, -1, rxscan370_done
     goto rxscan370_scan
@@ -4428,7 +4862,7 @@
     set_addr $I10, rxscan370_loop
     rx367_cur."!mark_push"(0, rx367_pos, $I10)
   rxscan370_done:
-.annotate 'line', 126
+.annotate 'line', 129
   # rx subcapture "sym"
     set_addr $I10, rxcap_371_fail
     rx367_cur."!mark_push"(0, rx367_pos, $I10)
@@ -4436,7 +4870,7 @@
     ge rx367_pos, rx367_eos, rx367_fail
     sub $I10, rx367_pos, rx367_off
     substr $S10, rx367_tgt, $I10, 1
-    index $I11, "fF", $S10
+    index $I11, "tT", $S10
     lt $I11, 0, rx367_fail
     inc rx367_pos
     set_addr $I10, rxcap_371_fail
@@ -4451,35 +4885,37 @@
     goto rx367_fail
   rxcap_371_done:
   # rx pass
-    rx367_cur."!cursor_pass"(rx367_pos, "backslash:sym<f>")
-    rx367_cur."!cursor_debug"("PASS  ", "backslash:sym<f>", " at pos=", rx367_pos)
+    rx367_cur."!cursor_pass"(rx367_pos, "backslash:sym<t>")
+    rx367_cur."!cursor_debug"("PASS  ", "backslash:sym<t>", " at pos=", rx367_pos)
     .return (rx367_cur)
-  rx367_fail:
+  rx367_restart:
 .annotate 'line', 3
+    rx367_cur."!cursor_debug"("NEXT ", "backslash:sym<t>")
+  rx367_fail:
     (rx367_rep, rx367_pos, $I10, $P10) = rx367_cur."!mark_fail"(0)
     lt rx367_pos, -1, rx367_done
     eq rx367_pos, -1, rx367_fail
     jump $I10
   rx367_done:
     rx367_cur."!cursor_fail"()
-    rx367_cur."!cursor_debug"("FAIL  ", "backslash:sym<f>")
+    rx367_cur."!cursor_debug"("FAIL  ", "backslash:sym<t>")
     .return (rx367_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<f>"  :subid("102_1277356887.58177") :method
+.sub "!PREFIX__backslash:sym<t>"  :subid("108_1280467470.54449") :method
 .annotate 'line', 3
     new $P369, "ResizablePMCArray"
-    push $P369, "F"
-    push $P369, "f"
+    push $P369, "T"
+    push $P369, "t"
     .return ($P369)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<h>"  :subid("103_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "backslash:sym<v>"  :subid("109_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
     .local string rx373_tgt
     .local int rx373_pos
@@ -4487,8 +4923,7 @@
     .local int rx373_eos
     .local int rx373_rep
     .local pmc rx373_cur
-    (rx373_cur, rx373_pos, rx373_tgt) = self."!cursor_start"()
-    rx373_cur."!cursor_debug"("START ", "backslash:sym<h>")
+    (rx373_cur, rx373_pos, rx373_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx373_cur
     .local pmc match
     .lex "$/", match
@@ -4499,6 +4934,8 @@
     sub rx373_off, rx373_pos, 1
     substr rx373_tgt, rx373_tgt, rx373_off
   rx373_start:
+    eq $I10, 1, rx373_restart
+    rx373_cur."!cursor_debug"("START ", "backslash:sym<v>")
     $I10 = self.'from'()
     ne $I10, -1, rxscan376_done
     goto rxscan376_scan
@@ -4511,7 +4948,7 @@
     set_addr $I10, rxscan376_loop
     rx373_cur."!mark_push"(0, rx373_pos, $I10)
   rxscan376_done:
-.annotate 'line', 127
+.annotate 'line', 130
   # rx subcapture "sym"
     set_addr $I10, rxcap_377_fail
     rx373_cur."!mark_push"(0, rx373_pos, $I10)
@@ -4519,7 +4956,7 @@
     ge rx373_pos, rx373_eos, rx373_fail
     sub $I10, rx373_pos, rx373_off
     substr $S10, rx373_tgt, $I10, 1
-    index $I11, "hH", $S10
+    index $I11, "vV", $S10
     lt $I11, 0, rx373_fail
     inc rx373_pos
     set_addr $I10, rxcap_377_fail
@@ -4534,35 +4971,37 @@
     goto rx373_fail
   rxcap_377_done:
   # rx pass
-    rx373_cur."!cursor_pass"(rx373_pos, "backslash:sym<h>")
-    rx373_cur."!cursor_debug"("PASS  ", "backslash:sym<h>", " at pos=", rx373_pos)
+    rx373_cur."!cursor_pass"(rx373_pos, "backslash:sym<v>")
+    rx373_cur."!cursor_debug"("PASS  ", "backslash:sym<v>", " at pos=", rx373_pos)
     .return (rx373_cur)
-  rx373_fail:
+  rx373_restart:
 .annotate 'line', 3
+    rx373_cur."!cursor_debug"("NEXT ", "backslash:sym<v>")
+  rx373_fail:
     (rx373_rep, rx373_pos, $I10, $P10) = rx373_cur."!mark_fail"(0)
     lt rx373_pos, -1, rx373_done
     eq rx373_pos, -1, rx373_fail
     jump $I10
   rx373_done:
     rx373_cur."!cursor_fail"()
-    rx373_cur."!cursor_debug"("FAIL  ", "backslash:sym<h>")
+    rx373_cur."!cursor_debug"("FAIL  ", "backslash:sym<v>")
     .return (rx373_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<h>"  :subid("104_1277356887.58177") :method
+.sub "!PREFIX__backslash:sym<v>"  :subid("110_1280467470.54449") :method
 .annotate 'line', 3
     new $P375, "ResizablePMCArray"
-    push $P375, "H"
-    push $P375, "h"
+    push $P375, "V"
+    push $P375, "v"
     .return ($P375)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<r>"  :subid("105_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "backslash:sym<o>"  :subid("111_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
     .local string rx379_tgt
     .local int rx379_pos
@@ -4570,8 +5009,7 @@
     .local int rx379_eos
     .local int rx379_rep
     .local pmc rx379_cur
-    (rx379_cur, rx379_pos, rx379_tgt) = self."!cursor_start"()
-    rx379_cur."!cursor_debug"("START ", "backslash:sym<r>")
+    (rx379_cur, rx379_pos, rx379_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx379_cur
     .local pmc match
     .lex "$/", match
@@ -4582,574 +5020,566 @@
     sub rx379_off, rx379_pos, 1
     substr rx379_tgt, rx379_tgt, rx379_off
   rx379_start:
+    eq $I10, 1, rx379_restart
+    rx379_cur."!cursor_debug"("START ", "backslash:sym<o>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan382_done
-    goto rxscan382_scan
-  rxscan382_loop:
+    ne $I10, -1, rxscan386_done
+    goto rxscan386_scan
+  rxscan386_loop:
     ($P10) = rx379_cur."from"()
     inc $P10
     set rx379_pos, $P10
-    ge rx379_pos, rx379_eos, rxscan382_done
-  rxscan382_scan:
-    set_addr $I10, rxscan382_loop
+    ge rx379_pos, rx379_eos, rxscan386_done
+  rxscan386_scan:
+    set_addr $I10, rxscan386_loop
     rx379_cur."!mark_push"(0, rx379_pos, $I10)
-  rxscan382_done:
-.annotate 'line', 128
+  rxscan386_done:
+.annotate 'line', 131
   # rx subcapture "sym"
-    set_addr $I10, rxcap_383_fail
+    set_addr $I10, rxcap_387_fail
     rx379_cur."!mark_push"(0, rx379_pos, $I10)
   # rx enumcharlist negate=0 
     ge rx379_pos, rx379_eos, rx379_fail
     sub $I10, rx379_pos, rx379_off
     substr $S10, rx379_tgt, $I10, 1
-    index $I11, "rR", $S10
+    index $I11, "oO", $S10
     lt $I11, 0, rx379_fail
     inc rx379_pos
-    set_addr $I10, rxcap_383_fail
+    set_addr $I10, rxcap_387_fail
     ($I12, $I11) = rx379_cur."!mark_peek"($I10)
     rx379_cur."!cursor_pos"($I11)
     ($P10) = rx379_cur."!cursor_start"()
     $P10."!cursor_pass"(rx379_pos, "")
     rx379_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_383_done
-  rxcap_383_fail:
+    goto rxcap_387_done
+  rxcap_387_fail:
     goto rx379_fail
-  rxcap_383_done:
+  rxcap_387_done:
+  alt388_0:
+    set_addr $I10, alt388_1
+    rx379_cur."!mark_push"(0, rx379_pos, $I10)
+  # rx subrule "octint" subtype=capture negate=
+    rx379_cur."!cursor_pos"(rx379_pos)
+    $P10 = rx379_cur."octint"()
+    unless $P10, rx379_fail
+    rx379_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("octint")
+    rx379_pos = $P10."pos"()
+    goto alt388_end
+  alt388_1:
+  # rx literal  "["
+    add $I11, rx379_pos, 1
+    gt $I11, rx379_eos, rx379_fail
+    sub $I11, rx379_pos, rx379_off
+    substr $S10, rx379_tgt, $I11, 1
+    ne $S10, "[", rx379_fail
+    add rx379_pos, 1
+  # rx subrule "octints" subtype=capture negate=
+    rx379_cur."!cursor_pos"(rx379_pos)
+    $P10 = rx379_cur."octints"()
+    unless $P10, rx379_fail
+    rx379_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("octints")
+    rx379_pos = $P10."pos"()
+  # rx literal  "]"
+    add $I11, rx379_pos, 1
+    gt $I11, rx379_eos, rx379_fail
+    sub $I11, rx379_pos, rx379_off
+    substr $S10, rx379_tgt, $I11, 1
+    ne $S10, "]", rx379_fail
+    add rx379_pos, 1
+  alt388_end:
   # rx pass
-    rx379_cur."!cursor_pass"(rx379_pos, "backslash:sym<r>")
-    rx379_cur."!cursor_debug"("PASS  ", "backslash:sym<r>", " at pos=", rx379_pos)
+    rx379_cur."!cursor_pass"(rx379_pos, "backslash:sym<o>")
+    rx379_cur."!cursor_debug"("PASS  ", "backslash:sym<o>", " at pos=", rx379_pos)
     .return (rx379_cur)
-  rx379_fail:
+  rx379_restart:
 .annotate 'line', 3
+    rx379_cur."!cursor_debug"("NEXT ", "backslash:sym<o>")
+  rx379_fail:
     (rx379_rep, rx379_pos, $I10, $P10) = rx379_cur."!mark_fail"(0)
     lt rx379_pos, -1, rx379_done
     eq rx379_pos, -1, rx379_fail
     jump $I10
   rx379_done:
     rx379_cur."!cursor_fail"()
-    rx379_cur."!cursor_debug"("FAIL  ", "backslash:sym<r>")
+    rx379_cur."!cursor_debug"("FAIL  ", "backslash:sym<o>")
     .return (rx379_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<r>"  :subid("106_1277356887.58177") :method
+.sub "!PREFIX__backslash:sym<o>"  :subid("112_1280467470.54449") :method
 .annotate 'line', 3
-    new $P381, "ResizablePMCArray"
-    push $P381, "R"
-    push $P381, "r"
-    .return ($P381)
+    $P381 = self."!PREFIX__!subrule"("octints", "O[")
+    $P382 = self."!PREFIX__!subrule"("octint", "O")
+    $P383 = self."!PREFIX__!subrule"("octints", "o[")
+    $P384 = self."!PREFIX__!subrule"("octint", "o")
+    new $P385, "ResizablePMCArray"
+    push $P385, $P381
+    push $P385, $P382
+    push $P385, $P383
+    push $P385, $P384
+    .return ($P385)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<t>"  :subid("107_1277356887.58177") :method :outer("11_1277356887.58177")
-.annotate 'line', 3
-    .local string rx385_tgt
-    .local int rx385_pos
-    .local int rx385_off
-    .local int rx385_eos
-    .local int rx385_rep
-    .local pmc rx385_cur
-    (rx385_cur, rx385_pos, rx385_tgt) = self."!cursor_start"()
-    rx385_cur."!cursor_debug"("START ", "backslash:sym<t>")
-    .lex unicode:"$\x{a2}", rx385_cur
-    .local pmc match
-    .lex "$/", match
-    length rx385_eos, rx385_tgt
-    gt rx385_pos, rx385_eos, rx385_done
-    set rx385_off, 0
-    lt rx385_pos, 2, rx385_start
-    sub rx385_off, rx385_pos, 1
-    substr rx385_tgt, rx385_tgt, rx385_off
-  rx385_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan388_done
-    goto rxscan388_scan
-  rxscan388_loop:
-    ($P10) = rx385_cur."from"()
-    inc $P10
-    set rx385_pos, $P10
-    ge rx385_pos, rx385_eos, rxscan388_done
-  rxscan388_scan:
-    set_addr $I10, rxscan388_loop
-    rx385_cur."!mark_push"(0, rx385_pos, $I10)
-  rxscan388_done:
-.annotate 'line', 129
+.sub "backslash:sym<x>"  :subid("113_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+    .local string rx390_tgt
+    .local int rx390_pos
+    .local int rx390_off
+    .local int rx390_eos
+    .local int rx390_rep
+    .local pmc rx390_cur
+    (rx390_cur, rx390_pos, rx390_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx390_cur
+    .local pmc match
+    .lex "$/", match
+    length rx390_eos, rx390_tgt
+    gt rx390_pos, rx390_eos, rx390_done
+    set rx390_off, 0
+    lt rx390_pos, 2, rx390_start
+    sub rx390_off, rx390_pos, 1
+    substr rx390_tgt, rx390_tgt, rx390_off
+  rx390_start:
+    eq $I10, 1, rx390_restart
+    rx390_cur."!cursor_debug"("START ", "backslash:sym<x>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan397_done
+    goto rxscan397_scan
+  rxscan397_loop:
+    ($P10) = rx390_cur."from"()
+    inc $P10
+    set rx390_pos, $P10
+    ge rx390_pos, rx390_eos, rxscan397_done
+  rxscan397_scan:
+    set_addr $I10, rxscan397_loop
+    rx390_cur."!mark_push"(0, rx390_pos, $I10)
+  rxscan397_done:
+.annotate 'line', 132
   # rx subcapture "sym"
-    set_addr $I10, rxcap_389_fail
-    rx385_cur."!mark_push"(0, rx385_pos, $I10)
+    set_addr $I10, rxcap_398_fail
+    rx390_cur."!mark_push"(0, rx390_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx385_pos, rx385_eos, rx385_fail
-    sub $I10, rx385_pos, rx385_off
-    substr $S10, rx385_tgt, $I10, 1
-    index $I11, "tT", $S10
-    lt $I11, 0, rx385_fail
-    inc rx385_pos
-    set_addr $I10, rxcap_389_fail
-    ($I12, $I11) = rx385_cur."!mark_peek"($I10)
-    rx385_cur."!cursor_pos"($I11)
-    ($P10) = rx385_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx385_pos, "")
-    rx385_cur."!mark_push"(0, -1, 0, $P10)
+    ge rx390_pos, rx390_eos, rx390_fail
+    sub $I10, rx390_pos, rx390_off
+    substr $S10, rx390_tgt, $I10, 1
+    index $I11, "xX", $S10
+    lt $I11, 0, rx390_fail
+    inc rx390_pos
+    set_addr $I10, rxcap_398_fail
+    ($I12, $I11) = rx390_cur."!mark_peek"($I10)
+    rx390_cur."!cursor_pos"($I11)
+    ($P10) = rx390_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx390_pos, "")
+    rx390_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_398_done
+  rxcap_398_fail:
+    goto rx390_fail
+  rxcap_398_done:
+  alt399_0:
+    set_addr $I10, alt399_1
+    rx390_cur."!mark_push"(0, rx390_pos, $I10)
+  # rx subrule "hexint" subtype=capture negate=
+    rx390_cur."!cursor_pos"(rx390_pos)
+    $P10 = rx390_cur."hexint"()
+    unless $P10, rx390_fail
+    rx390_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("hexint")
+    rx390_pos = $P10."pos"()
+    goto alt399_end
+  alt399_1:
+  # rx literal  "["
+    add $I11, rx390_pos, 1
+    gt $I11, rx390_eos, rx390_fail
+    sub $I11, rx390_pos, rx390_off
+    substr $S10, rx390_tgt, $I11, 1
+    ne $S10, "[", rx390_fail
+    add rx390_pos, 1
+  # rx subrule "hexints" subtype=capture negate=
+    rx390_cur."!cursor_pos"(rx390_pos)
+    $P10 = rx390_cur."hexints"()
+    unless $P10, rx390_fail
+    rx390_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("hexints")
+    rx390_pos = $P10."pos"()
+  # rx literal  "]"
+    add $I11, rx390_pos, 1
+    gt $I11, rx390_eos, rx390_fail
+    sub $I11, rx390_pos, rx390_off
+    substr $S10, rx390_tgt, $I11, 1
+    ne $S10, "]", rx390_fail
+    add rx390_pos, 1
+  alt399_end:
+  # rx pass
+    rx390_cur."!cursor_pass"(rx390_pos, "backslash:sym<x>")
+    rx390_cur."!cursor_debug"("PASS  ", "backslash:sym<x>", " at pos=", rx390_pos)
+    .return (rx390_cur)
+  rx390_restart:
+.annotate 'line', 3
+    rx390_cur."!cursor_debug"("NEXT ", "backslash:sym<x>")
+  rx390_fail:
+    (rx390_rep, rx390_pos, $I10, $P10) = rx390_cur."!mark_fail"(0)
+    lt rx390_pos, -1, rx390_done
+    eq rx390_pos, -1, rx390_fail
+    jump $I10
+  rx390_done:
+    rx390_cur."!cursor_fail"()
+    rx390_cur."!cursor_debug"("FAIL  ", "backslash:sym<x>")
+    .return (rx390_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__backslash:sym<x>"  :subid("114_1280467470.54449") :method
+.annotate 'line', 3
+    $P392 = self."!PREFIX__!subrule"("hexints", "X[")
+    $P393 = self."!PREFIX__!subrule"("hexint", "X")
+    $P394 = self."!PREFIX__!subrule"("hexints", "x[")
+    $P395 = self."!PREFIX__!subrule"("hexint", "x")
+    new $P396, "ResizablePMCArray"
+    push $P396, $P392
+    push $P396, $P393
+    push $P396, $P394
+    push $P396, $P395
+    .return ($P396)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<c>"  :subid("115_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+    .local string rx401_tgt
+    .local int rx401_pos
+    .local int rx401_off
+    .local int rx401_eos
+    .local int rx401_rep
+    .local pmc rx401_cur
+    (rx401_cur, rx401_pos, rx401_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx401_cur
+    .local pmc match
+    .lex "$/", match
+    length rx401_eos, rx401_tgt
+    gt rx401_pos, rx401_eos, rx401_done
+    set rx401_off, 0
+    lt rx401_pos, 2, rx401_start
+    sub rx401_off, rx401_pos, 1
+    substr rx401_tgt, rx401_tgt, rx401_off
+  rx401_start:
+    eq $I10, 1, rx401_restart
+    rx401_cur."!cursor_debug"("START ", "backslash:sym<c>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan406_done
+    goto rxscan406_scan
+  rxscan406_loop:
+    ($P10) = rx401_cur."from"()
+    inc $P10
+    set rx401_pos, $P10
+    ge rx401_pos, rx401_eos, rxscan406_done
+  rxscan406_scan:
+    set_addr $I10, rxscan406_loop
+    rx401_cur."!mark_push"(0, rx401_pos, $I10)
+  rxscan406_done:
+.annotate 'line', 133
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_407_fail
+    rx401_cur."!mark_push"(0, rx401_pos, $I10)
+  # rx enumcharlist negate=0 
+    ge rx401_pos, rx401_eos, rx401_fail
+    sub $I10, rx401_pos, rx401_off
+    substr $S10, rx401_tgt, $I10, 1
+    index $I11, "cC", $S10
+    lt $I11, 0, rx401_fail
+    inc rx401_pos
+    set_addr $I10, rxcap_407_fail
+    ($I12, $I11) = rx401_cur."!mark_peek"($I10)
+    rx401_cur."!cursor_pos"($I11)
+    ($P10) = rx401_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx401_pos, "")
+    rx401_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_389_done
-  rxcap_389_fail:
-    goto rx385_fail
-  rxcap_389_done:
+    goto rxcap_407_done
+  rxcap_407_fail:
+    goto rx401_fail
+  rxcap_407_done:
+  # rx subrule "charspec" subtype=capture negate=
+    rx401_cur."!cursor_pos"(rx401_pos)
+    $P10 = rx401_cur."charspec"()
+    unless $P10, rx401_fail
+    rx401_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("charspec")
+    rx401_pos = $P10."pos"()
   # rx pass
-    rx385_cur."!cursor_pass"(rx385_pos, "backslash:sym<t>")
-    rx385_cur."!cursor_debug"("PASS  ", "backslash:sym<t>", " at pos=", rx385_pos)
-    .return (rx385_cur)
-  rx385_fail:
+    rx401_cur."!cursor_pass"(rx401_pos, "backslash:sym<c>")
+    rx401_cur."!cursor_debug"("PASS  ", "backslash:sym<c>", " at pos=", rx401_pos)
+    .return (rx401_cur)
+  rx401_restart:
 .annotate 'line', 3
-    (rx385_rep, rx385_pos, $I10, $P10) = rx385_cur."!mark_fail"(0)
-    lt rx385_pos, -1, rx385_done
-    eq rx385_pos, -1, rx385_fail
+    rx401_cur."!cursor_debug"("NEXT ", "backslash:sym<c>")
+  rx401_fail:
+    (rx401_rep, rx401_pos, $I10, $P10) = rx401_cur."!mark_fail"(0)
+    lt rx401_pos, -1, rx401_done
+    eq rx401_pos, -1, rx401_fail
     jump $I10
-  rx385_done:
-    rx385_cur."!cursor_fail"()
-    rx385_cur."!cursor_debug"("FAIL  ", "backslash:sym<t>")
-    .return (rx385_cur)
+  rx401_done:
+    rx401_cur."!cursor_fail"()
+    rx401_cur."!cursor_debug"("FAIL  ", "backslash:sym<c>")
+    .return (rx401_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<t>"  :subid("108_1277356887.58177") :method
+.sub "!PREFIX__backslash:sym<c>"  :subid("116_1280467470.54449") :method
 .annotate 'line', 3
-    new $P387, "ResizablePMCArray"
-    push $P387, "T"
-    push $P387, "t"
-    .return ($P387)
+    $P403 = self."!PREFIX__!subrule"("charspec", "C")
+    $P404 = self."!PREFIX__!subrule"("charspec", "c")
+    new $P405, "ResizablePMCArray"
+    push $P405, $P403
+    push $P405, $P404
+    .return ($P405)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<v>"  :subid("109_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "backslash:sym<A>"  :subid("117_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx391_tgt
-    .local int rx391_pos
-    .local int rx391_off
-    .local int rx391_eos
-    .local int rx391_rep
-    .local pmc rx391_cur
-    (rx391_cur, rx391_pos, rx391_tgt) = self."!cursor_start"()
-    rx391_cur."!cursor_debug"("START ", "backslash:sym<v>")
-    .lex unicode:"$\x{a2}", rx391_cur
-    .local pmc match
-    .lex "$/", match
-    length rx391_eos, rx391_tgt
-    gt rx391_pos, rx391_eos, rx391_done
-    set rx391_off, 0
-    lt rx391_pos, 2, rx391_start
-    sub rx391_off, rx391_pos, 1
-    substr rx391_tgt, rx391_tgt, rx391_off
-  rx391_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan394_done
-    goto rxscan394_scan
-  rxscan394_loop:
-    ($P10) = rx391_cur."from"()
-    inc $P10
-    set rx391_pos, $P10
-    ge rx391_pos, rx391_eos, rxscan394_done
-  rxscan394_scan:
-    set_addr $I10, rxscan394_loop
-    rx391_cur."!mark_push"(0, rx391_pos, $I10)
-  rxscan394_done:
-.annotate 'line', 130
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_395_fail
-    rx391_cur."!mark_push"(0, rx391_pos, $I10)
-  # rx enumcharlist negate=0 
-    ge rx391_pos, rx391_eos, rx391_fail
-    sub $I10, rx391_pos, rx391_off
-    substr $S10, rx391_tgt, $I10, 1
-    index $I11, "vV", $S10
-    lt $I11, 0, rx391_fail
-    inc rx391_pos
-    set_addr $I10, rxcap_395_fail
-    ($I12, $I11) = rx391_cur."!mark_peek"($I10)
-    rx391_cur."!cursor_pos"($I11)
-    ($P10) = rx391_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx391_pos, "")
-    rx391_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_395_done
-  rxcap_395_fail:
-    goto rx391_fail
-  rxcap_395_done:
+    .local string rx409_tgt
+    .local int rx409_pos
+    .local int rx409_off
+    .local int rx409_eos
+    .local int rx409_rep
+    .local pmc rx409_cur
+    (rx409_cur, rx409_pos, rx409_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx409_cur
+    .local pmc match
+    .lex "$/", match
+    length rx409_eos, rx409_tgt
+    gt rx409_pos, rx409_eos, rx409_done
+    set rx409_off, 0
+    lt rx409_pos, 2, rx409_start
+    sub rx409_off, rx409_pos, 1
+    substr rx409_tgt, rx409_tgt, rx409_off
+  rx409_start:
+    eq $I10, 1, rx409_restart
+    rx409_cur."!cursor_debug"("START ", "backslash:sym<A>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan413_done
+    goto rxscan413_scan
+  rxscan413_loop:
+    ($P10) = rx409_cur."from"()
+    inc $P10
+    set rx409_pos, $P10
+    ge rx409_pos, rx409_eos, rxscan413_done
+  rxscan413_scan:
+    set_addr $I10, rxscan413_loop
+    rx409_cur."!mark_push"(0, rx409_pos, $I10)
+  rxscan413_done:
+.annotate 'line', 134
+  # rx literal  "A"
+    add $I11, rx409_pos, 1
+    gt $I11, rx409_eos, rx409_fail
+    sub $I11, rx409_pos, rx409_off
+    substr $S10, rx409_tgt, $I11, 1
+    ne $S10, "A", rx409_fail
+    add rx409_pos, 1
+  # rx subrule "obs" subtype=method negate=
+    rx409_cur."!cursor_pos"(rx409_pos)
+    $P10 = rx409_cur."obs"("\\A as beginning-of-string matcher", "^")
+    unless $P10, rx409_fail
+    rx409_pos = $P10."pos"()
   # rx pass
-    rx391_cur."!cursor_pass"(rx391_pos, "backslash:sym<v>")
-    rx391_cur."!cursor_debug"("PASS  ", "backslash:sym<v>", " at pos=", rx391_pos)
-    .return (rx391_cur)
-  rx391_fail:
+    rx409_cur."!cursor_pass"(rx409_pos, "backslash:sym<A>")
+    rx409_cur."!cursor_debug"("PASS  ", "backslash:sym<A>", " at pos=", rx409_pos)
+    .return (rx409_cur)
+  rx409_restart:
 .annotate 'line', 3
-    (rx391_rep, rx391_pos, $I10, $P10) = rx391_cur."!mark_fail"(0)
-    lt rx391_pos, -1, rx391_done
-    eq rx391_pos, -1, rx391_fail
+    rx409_cur."!cursor_debug"("NEXT ", "backslash:sym<A>")
+  rx409_fail:
+    (rx409_rep, rx409_pos, $I10, $P10) = rx409_cur."!mark_fail"(0)
+    lt rx409_pos, -1, rx409_done
+    eq rx409_pos, -1, rx409_fail
     jump $I10
-  rx391_done:
-    rx391_cur."!cursor_fail"()
-    rx391_cur."!cursor_debug"("FAIL  ", "backslash:sym<v>")
-    .return (rx391_cur)
+  rx409_done:
+    rx409_cur."!cursor_fail"()
+    rx409_cur."!cursor_debug"("FAIL  ", "backslash:sym<A>")
+    .return (rx409_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<v>"  :subid("110_1277356887.58177") :method
+.sub "!PREFIX__backslash:sym<A>"  :subid("118_1280467470.54449") :method
 .annotate 'line', 3
-    new $P393, "ResizablePMCArray"
-    push $P393, "V"
-    push $P393, "v"
-    .return ($P393)
+    $P411 = self."!PREFIX__!subrule"("obs", "A")
+    new $P412, "ResizablePMCArray"
+    push $P412, $P411
+    .return ($P412)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<o>"  :subid("111_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "backslash:sym<z>"  :subid("119_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx397_tgt
-    .local int rx397_pos
-    .local int rx397_off
-    .local int rx397_eos
-    .local int rx397_rep
-    .local pmc rx397_cur
-    (rx397_cur, rx397_pos, rx397_tgt) = self."!cursor_start"()
-    rx397_cur."!cursor_debug"("START ", "backslash:sym<o>")
-    .lex unicode:"$\x{a2}", rx397_cur
+    .local string rx415_tgt
+    .local int rx415_pos
+    .local int rx415_off
+    .local int rx415_eos
+    .local int rx415_rep
+    .local pmc rx415_cur
+    (rx415_cur, rx415_pos, rx415_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx415_cur
     .local pmc match
     .lex "$/", match
-    length rx397_eos, rx397_tgt
-    gt rx397_pos, rx397_eos, rx397_done
-    set rx397_off, 0
-    lt rx397_pos, 2, rx397_start
-    sub rx397_off, rx397_pos, 1
-    substr rx397_tgt, rx397_tgt, rx397_off
-  rx397_start:
+    length rx415_eos, rx415_tgt
+    gt rx415_pos, rx415_eos, rx415_done
+    set rx415_off, 0
+    lt rx415_pos, 2, rx415_start
+    sub rx415_off, rx415_pos, 1
+    substr rx415_tgt, rx415_tgt, rx415_off
+  rx415_start:
+    eq $I10, 1, rx415_restart
+    rx415_cur."!cursor_debug"("START ", "backslash:sym<z>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan404_done
-    goto rxscan404_scan
-  rxscan404_loop:
-    ($P10) = rx397_cur."from"()
+    ne $I10, -1, rxscan419_done
+    goto rxscan419_scan
+  rxscan419_loop:
+    ($P10) = rx415_cur."from"()
     inc $P10
-    set rx397_pos, $P10
-    ge rx397_pos, rx397_eos, rxscan404_done
-  rxscan404_scan:
-    set_addr $I10, rxscan404_loop
-    rx397_cur."!mark_push"(0, rx397_pos, $I10)
-  rxscan404_done:
-.annotate 'line', 131
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_405_fail
-    rx397_cur."!mark_push"(0, rx397_pos, $I10)
-  # rx enumcharlist negate=0 
-    ge rx397_pos, rx397_eos, rx397_fail
-    sub $I10, rx397_pos, rx397_off
-    substr $S10, rx397_tgt, $I10, 1
-    index $I11, "oO", $S10
-    lt $I11, 0, rx397_fail
-    inc rx397_pos
-    set_addr $I10, rxcap_405_fail
-    ($I12, $I11) = rx397_cur."!mark_peek"($I10)
-    rx397_cur."!cursor_pos"($I11)
-    ($P10) = rx397_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx397_pos, "")
-    rx397_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_405_done
-  rxcap_405_fail:
-    goto rx397_fail
-  rxcap_405_done:
-  alt406_0:
-    set_addr $I10, alt406_1
-    rx397_cur."!mark_push"(0, rx397_pos, $I10)
-  # rx subrule "octint" subtype=capture negate=
-    rx397_cur."!cursor_pos"(rx397_pos)
-    $P10 = rx397_cur."octint"()
-    unless $P10, rx397_fail
-    rx397_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("octint")
-    rx397_pos = $P10."pos"()
-    goto alt406_end
-  alt406_1:
-  # rx literal  "["
-    add $I11, rx397_pos, 1
-    gt $I11, rx397_eos, rx397_fail
-    sub $I11, rx397_pos, rx397_off
-    substr $S10, rx397_tgt, $I11, 1
-    ne $S10, "[", rx397_fail
-    add rx397_pos, 1
-  # rx subrule "octints" subtype=capture negate=
-    rx397_cur."!cursor_pos"(rx397_pos)
-    $P10 = rx397_cur."octints"()
-    unless $P10, rx397_fail
-    rx397_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("octints")
-    rx397_pos = $P10."pos"()
-  # rx literal  "]"
-    add $I11, rx397_pos, 1
-    gt $I11, rx397_eos, rx397_fail
-    sub $I11, rx397_pos, rx397_off
-    substr $S10, rx397_tgt, $I11, 1
-    ne $S10, "]", rx397_fail
-    add rx397_pos, 1
-  alt406_end:
-  # rx pass
-    rx397_cur."!cursor_pass"(rx397_pos, "backslash:sym<o>")
-    rx397_cur."!cursor_debug"("PASS  ", "backslash:sym<o>", " at pos=", rx397_pos)
-    .return (rx397_cur)
-  rx397_fail:
-.annotate 'line', 3
-    (rx397_rep, rx397_pos, $I10, $P10) = rx397_cur."!mark_fail"(0)
-    lt rx397_pos, -1, rx397_done
-    eq rx397_pos, -1, rx397_fail
-    jump $I10
-  rx397_done:
-    rx397_cur."!cursor_fail"()
-    rx397_cur."!cursor_debug"("FAIL  ", "backslash:sym<o>")
-    .return (rx397_cur)
+    set rx415_pos, $P10
+    ge rx415_pos, rx415_eos, rxscan419_done
+  rxscan419_scan:
+    set_addr $I10, rxscan419_loop
+    rx415_cur."!mark_push"(0, rx415_pos, $I10)
+  rxscan419_done:
+.annotate 'line', 135
+  # rx literal  "z"
+    add $I11, rx415_pos, 1
+    gt $I11, rx415_eos, rx415_fail
+    sub $I11, rx415_pos, rx415_off
+    substr $S10, rx415_tgt, $I11, 1
+    ne $S10, "z", rx415_fail
+    add rx415_pos, 1
+  # rx subrule "obs" subtype=method negate=
+    rx415_cur."!cursor_pos"(rx415_pos)
+    $P10 = rx415_cur."obs"("\\z as end-of-string matcher", "$")
+    unless $P10, rx415_fail
+    rx415_pos = $P10."pos"()
+  # rx pass
+    rx415_cur."!cursor_pass"(rx415_pos, "backslash:sym<z>")
+    rx415_cur."!cursor_debug"("PASS  ", "backslash:sym<z>", " at pos=", rx415_pos)
+    .return (rx415_cur)
+  rx415_restart:
+.annotate 'line', 3
+    rx415_cur."!cursor_debug"("NEXT ", "backslash:sym<z>")
+  rx415_fail:
+    (rx415_rep, rx415_pos, $I10, $P10) = rx415_cur."!mark_fail"(0)
+    lt rx415_pos, -1, rx415_done
+    eq rx415_pos, -1, rx415_fail
+    jump $I10
+  rx415_done:
+    rx415_cur."!cursor_fail"()
+    rx415_cur."!cursor_debug"("FAIL  ", "backslash:sym<z>")
+    .return (rx415_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<o>"  :subid("112_1277356887.58177") :method
-.annotate 'line', 3
-    $P399 = self."!PREFIX__!subrule"("octints", "O[")
-    $P400 = self."!PREFIX__!subrule"("octint", "O")
-    $P401 = self."!PREFIX__!subrule"("octints", "o[")
-    $P402 = self."!PREFIX__!subrule"("octint", "o")
-    new $P403, "ResizablePMCArray"
-    push $P403, $P399
-    push $P403, $P400
-    push $P403, $P401
-    push $P403, $P402
-    .return ($P403)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<x>"  :subid("113_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "!PREFIX__backslash:sym<z>"  :subid("120_1280467470.54449") :method
 .annotate 'line', 3
-    .local string rx408_tgt
-    .local int rx408_pos
-    .local int rx408_off
-    .local int rx408_eos
-    .local int rx408_rep
-    .local pmc rx408_cur
-    (rx408_cur, rx408_pos, rx408_tgt) = self."!cursor_start"()
-    rx408_cur."!cursor_debug"("START ", "backslash:sym<x>")
-    .lex unicode:"$\x{a2}", rx408_cur
-    .local pmc match
-    .lex "$/", match
-    length rx408_eos, rx408_tgt
-    gt rx408_pos, rx408_eos, rx408_done
-    set rx408_off, 0
-    lt rx408_pos, 2, rx408_start
-    sub rx408_off, rx408_pos, 1
-    substr rx408_tgt, rx408_tgt, rx408_off
-  rx408_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan415_done
-    goto rxscan415_scan
-  rxscan415_loop:
-    ($P10) = rx408_cur."from"()
-    inc $P10
-    set rx408_pos, $P10
-    ge rx408_pos, rx408_eos, rxscan415_done
-  rxscan415_scan:
-    set_addr $I10, rxscan415_loop
-    rx408_cur."!mark_push"(0, rx408_pos, $I10)
-  rxscan415_done:
-.annotate 'line', 132
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_416_fail
-    rx408_cur."!mark_push"(0, rx408_pos, $I10)
-  # rx enumcharlist negate=0 
-    ge rx408_pos, rx408_eos, rx408_fail
-    sub $I10, rx408_pos, rx408_off
-    substr $S10, rx408_tgt, $I10, 1
-    index $I11, "xX", $S10
-    lt $I11, 0, rx408_fail
-    inc rx408_pos
-    set_addr $I10, rxcap_416_fail
-    ($I12, $I11) = rx408_cur."!mark_peek"($I10)
-    rx408_cur."!cursor_pos"($I11)
-    ($P10) = rx408_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx408_pos, "")
-    rx408_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_416_done
-  rxcap_416_fail:
-    goto rx408_fail
-  rxcap_416_done:
-  alt417_0:
-    set_addr $I10, alt417_1
-    rx408_cur."!mark_push"(0, rx408_pos, $I10)
-  # rx subrule "hexint" subtype=capture negate=
-    rx408_cur."!cursor_pos"(rx408_pos)
-    $P10 = rx408_cur."hexint"()
-    unless $P10, rx408_fail
-    rx408_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("hexint")
-    rx408_pos = $P10."pos"()
-    goto alt417_end
-  alt417_1:
-  # rx literal  "["
-    add $I11, rx408_pos, 1
-    gt $I11, rx408_eos, rx408_fail
-    sub $I11, rx408_pos, rx408_off
-    substr $S10, rx408_tgt, $I11, 1
-    ne $S10, "[", rx408_fail
-    add rx408_pos, 1
-  # rx subrule "hexints" subtype=capture negate=
-    rx408_cur."!cursor_pos"(rx408_pos)
-    $P10 = rx408_cur."hexints"()
-    unless $P10, rx408_fail
-    rx408_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("hexints")
-    rx408_pos = $P10."pos"()
-  # rx literal  "]"
-    add $I11, rx408_pos, 1
-    gt $I11, rx408_eos, rx408_fail
-    sub $I11, rx408_pos, rx408_off
-    substr $S10, rx408_tgt, $I11, 1
-    ne $S10, "]", rx408_fail
-    add rx408_pos, 1
-  alt417_end:
-  # rx pass
-    rx408_cur."!cursor_pass"(rx408_pos, "backslash:sym<x>")
-    rx408_cur."!cursor_debug"("PASS  ", "backslash:sym<x>", " at pos=", rx408_pos)
-    .return (rx408_cur)
-  rx408_fail:
-.annotate 'line', 3
-    (rx408_rep, rx408_pos, $I10, $P10) = rx408_cur."!mark_fail"(0)
-    lt rx408_pos, -1, rx408_done
-    eq rx408_pos, -1, rx408_fail
-    jump $I10
-  rx408_done:
-    rx408_cur."!cursor_fail"()
-    rx408_cur."!cursor_debug"("FAIL  ", "backslash:sym<x>")
-    .return (rx408_cur)
-    .return ()
+    $P417 = self."!PREFIX__!subrule"("obs", "z")
+    new $P418, "ResizablePMCArray"
+    push $P418, $P417
+    .return ($P418)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<x>"  :subid("114_1277356887.58177") :method
-.annotate 'line', 3
-    $P410 = self."!PREFIX__!subrule"("hexints", "X[")
-    $P411 = self."!PREFIX__!subrule"("hexint", "X")
-    $P412 = self."!PREFIX__!subrule"("hexints", "x[")
-    $P413 = self."!PREFIX__!subrule"("hexint", "x")
-    new $P414, "ResizablePMCArray"
-    push $P414, $P410
-    push $P414, $P411
-    push $P414, $P412
-    push $P414, $P413
-    .return ($P414)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<c>"  :subid("115_1277356887.58177") :method :outer("11_1277356887.58177")
-.annotate 'line', 3
-    .local string rx419_tgt
-    .local int rx419_pos
-    .local int rx419_off
-    .local int rx419_eos
-    .local int rx419_rep
-    .local pmc rx419_cur
-    (rx419_cur, rx419_pos, rx419_tgt) = self."!cursor_start"()
-    rx419_cur."!cursor_debug"("START ", "backslash:sym<c>")
-    .lex unicode:"$\x{a2}", rx419_cur
-    .local pmc match
-    .lex "$/", match
-    length rx419_eos, rx419_tgt
-    gt rx419_pos, rx419_eos, rx419_done
-    set rx419_off, 0
-    lt rx419_pos, 2, rx419_start
-    sub rx419_off, rx419_pos, 1
-    substr rx419_tgt, rx419_tgt, rx419_off
-  rx419_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan424_done
-    goto rxscan424_scan
-  rxscan424_loop:
-    ($P10) = rx419_cur."from"()
-    inc $P10
-    set rx419_pos, $P10
-    ge rx419_pos, rx419_eos, rxscan424_done
-  rxscan424_scan:
-    set_addr $I10, rxscan424_loop
-    rx419_cur."!mark_push"(0, rx419_pos, $I10)
-  rxscan424_done:
-.annotate 'line', 133
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_425_fail
-    rx419_cur."!mark_push"(0, rx419_pos, $I10)
-  # rx enumcharlist negate=0 
-    ge rx419_pos, rx419_eos, rx419_fail
-    sub $I10, rx419_pos, rx419_off
-    substr $S10, rx419_tgt, $I10, 1
-    index $I11, "cC", $S10
-    lt $I11, 0, rx419_fail
-    inc rx419_pos
-    set_addr $I10, rxcap_425_fail
-    ($I12, $I11) = rx419_cur."!mark_peek"($I10)
-    rx419_cur."!cursor_pos"($I11)
-    ($P10) = rx419_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx419_pos, "")
-    rx419_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_425_done
-  rxcap_425_fail:
-    goto rx419_fail
-  rxcap_425_done:
-  # rx subrule "charspec" subtype=capture negate=
-    rx419_cur."!cursor_pos"(rx419_pos)
-    $P10 = rx419_cur."charspec"()
-    unless $P10, rx419_fail
-    rx419_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("charspec")
-    rx419_pos = $P10."pos"()
+.sub "backslash:sym<Z>"  :subid("121_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+    .local string rx421_tgt
+    .local int rx421_pos
+    .local int rx421_off
+    .local int rx421_eos
+    .local int rx421_rep
+    .local pmc rx421_cur
+    (rx421_cur, rx421_pos, rx421_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx421_cur
+    .local pmc match
+    .lex "$/", match
+    length rx421_eos, rx421_tgt
+    gt rx421_pos, rx421_eos, rx421_done
+    set rx421_off, 0
+    lt rx421_pos, 2, rx421_start
+    sub rx421_off, rx421_pos, 1
+    substr rx421_tgt, rx421_tgt, rx421_off
+  rx421_start:
+    eq $I10, 1, rx421_restart
+    rx421_cur."!cursor_debug"("START ", "backslash:sym<Z>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan425_done
+    goto rxscan425_scan
+  rxscan425_loop:
+    ($P10) = rx421_cur."from"()
+    inc $P10
+    set rx421_pos, $P10
+    ge rx421_pos, rx421_eos, rxscan425_done
+  rxscan425_scan:
+    set_addr $I10, rxscan425_loop
+    rx421_cur."!mark_push"(0, rx421_pos, $I10)
+  rxscan425_done:
+.annotate 'line', 136
+  # rx literal  "Z"
+    add $I11, rx421_pos, 1
+    gt $I11, rx421_eos, rx421_fail
+    sub $I11, rx421_pos, rx421_off
+    substr $S10, rx421_tgt, $I11, 1
+    ne $S10, "Z", rx421_fail
+    add rx421_pos, 1
+  # rx subrule "obs" subtype=method negate=
+    rx421_cur."!cursor_pos"(rx421_pos)
+    $P10 = rx421_cur."obs"("\\Z as end-of-string matcher", "\\n?$")
+    unless $P10, rx421_fail
+    rx421_pos = $P10."pos"()
   # rx pass
-    rx419_cur."!cursor_pass"(rx419_pos, "backslash:sym<c>")
-    rx419_cur."!cursor_debug"("PASS  ", "backslash:sym<c>", " at pos=", rx419_pos)
-    .return (rx419_cur)
-  rx419_fail:
+    rx421_cur."!cursor_pass"(rx421_pos, "backslash:sym<Z>")
+    rx421_cur."!cursor_debug"("PASS  ", "backslash:sym<Z>", " at pos=", rx421_pos)
+    .return (rx421_cur)
+  rx421_restart:
 .annotate 'line', 3
-    (rx419_rep, rx419_pos, $I10, $P10) = rx419_cur."!mark_fail"(0)
-    lt rx419_pos, -1, rx419_done
-    eq rx419_pos, -1, rx419_fail
+    rx421_cur."!cursor_debug"("NEXT ", "backslash:sym<Z>")
+  rx421_fail:
+    (rx421_rep, rx421_pos, $I10, $P10) = rx421_cur."!mark_fail"(0)
+    lt rx421_pos, -1, rx421_done
+    eq rx421_pos, -1, rx421_fail
     jump $I10
-  rx419_done:
-    rx419_cur."!cursor_fail"()
-    rx419_cur."!cursor_debug"("FAIL  ", "backslash:sym<c>")
-    .return (rx419_cur)
+  rx421_done:
+    rx421_cur."!cursor_fail"()
+    rx421_cur."!cursor_debug"("FAIL  ", "backslash:sym<Z>")
+    .return (rx421_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<c>"  :subid("116_1277356887.58177") :method
+.sub "!PREFIX__backslash:sym<Z>"  :subid("122_1280467470.54449") :method
 .annotate 'line', 3
-    $P421 = self."!PREFIX__!subrule"("charspec", "C")
-    $P422 = self."!PREFIX__!subrule"("charspec", "c")
-    new $P423, "ResizablePMCArray"
-    push $P423, $P421
-    push $P423, $P422
-    .return ($P423)
+    $P423 = self."!PREFIX__!subrule"("obs", "Z")
+    new $P424, "ResizablePMCArray"
+    push $P424, $P423
+    .return ($P424)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<A>"  :subid("117_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "backslash:sym<Q>"  :subid("123_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
     .local string rx427_tgt
     .local int rx427_pos
@@ -5157,8 +5587,7 @@
     .local int rx427_eos
     .local int rx427_rep
     .local pmc rx427_cur
-    (rx427_cur, rx427_pos, rx427_tgt) = self."!cursor_start"()
-    rx427_cur."!cursor_debug"("START ", "backslash:sym<A>")
+    (rx427_cur, rx427_pos, rx427_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx427_cur
     .local pmc match
     .lex "$/", match
@@ -5169,6 +5598,8 @@
     sub rx427_off, rx427_pos, 1
     substr rx427_tgt, rx427_tgt, rx427_off
   rx427_start:
+    eq $I10, 1, rx427_restart
+    rx427_cur."!cursor_debug"("START ", "backslash:sym<Q>")
     $I10 = self.'from'()
     ne $I10, -1, rxscan431_done
     goto rxscan431_scan
@@ -5181,41 +5612,43 @@
     set_addr $I10, rxscan431_loop
     rx427_cur."!mark_push"(0, rx427_pos, $I10)
   rxscan431_done:
-.annotate 'line', 134
-  # rx literal  "A"
+.annotate 'line', 137
+  # rx literal  "Q"
     add $I11, rx427_pos, 1
     gt $I11, rx427_eos, rx427_fail
     sub $I11, rx427_pos, rx427_off
     substr $S10, rx427_tgt, $I11, 1
-    ne $S10, "A", rx427_fail
+    ne $S10, "Q", rx427_fail
     add rx427_pos, 1
   # rx subrule "obs" subtype=method negate=
     rx427_cur."!cursor_pos"(rx427_pos)
-    $P10 = rx427_cur."obs"("\\A as beginning-of-string matcher", "^")
+    $P10 = rx427_cur."obs"("\\Q as quotemeta", "quotes or literal variable match")
     unless $P10, rx427_fail
     rx427_pos = $P10."pos"()
   # rx pass
-    rx427_cur."!cursor_pass"(rx427_pos, "backslash:sym<A>")
-    rx427_cur."!cursor_debug"("PASS  ", "backslash:sym<A>", " at pos=", rx427_pos)
+    rx427_cur."!cursor_pass"(rx427_pos, "backslash:sym<Q>")
+    rx427_cur."!cursor_debug"("PASS  ", "backslash:sym<Q>", " at pos=", rx427_pos)
     .return (rx427_cur)
-  rx427_fail:
+  rx427_restart:
 .annotate 'line', 3
+    rx427_cur."!cursor_debug"("NEXT ", "backslash:sym<Q>")
+  rx427_fail:
     (rx427_rep, rx427_pos, $I10, $P10) = rx427_cur."!mark_fail"(0)
     lt rx427_pos, -1, rx427_done
     eq rx427_pos, -1, rx427_fail
     jump $I10
   rx427_done:
     rx427_cur."!cursor_fail"()
-    rx427_cur."!cursor_debug"("FAIL  ", "backslash:sym<A>")
+    rx427_cur."!cursor_debug"("FAIL  ", "backslash:sym<Q>")
     .return (rx427_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<A>"  :subid("118_1277356887.58177") :method
+.sub "!PREFIX__backslash:sym<Q>"  :subid("124_1280467470.54449") :method
 .annotate 'line', 3
-    $P429 = self."!PREFIX__!subrule"("obs", "A")
+    $P429 = self."!PREFIX__!subrule"("obs", "Q")
     new $P430, "ResizablePMCArray"
     push $P430, $P429
     .return ($P430)
@@ -5223,7 +5656,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<z>"  :subid("119_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "backslash:sym<misc>"  :subid("125_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
     .local string rx433_tgt
     .local int rx433_pos
@@ -5231,8 +5664,7 @@
     .local int rx433_eos
     .local int rx433_rep
     .local pmc rx433_cur
-    (rx433_cur, rx433_pos, rx433_tgt) = self."!cursor_start"()
-    rx433_cur."!cursor_debug"("START ", "backslash:sym<z>")
+    (rx433_cur, rx433_pos, rx433_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx433_cur
     .local pmc match
     .lex "$/", match
@@ -5243,540 +5675,646 @@
     sub rx433_off, rx433_pos, 1
     substr rx433_tgt, rx433_tgt, rx433_off
   rx433_start:
+    eq $I10, 1, rx433_restart
+    rx433_cur."!cursor_debug"("START ", "backslash:sym<misc>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan437_done
-    goto rxscan437_scan
-  rxscan437_loop:
+    ne $I10, -1, rxscan436_done
+    goto rxscan436_scan
+  rxscan436_loop:
     ($P10) = rx433_cur."from"()
     inc $P10
     set rx433_pos, $P10
-    ge rx433_pos, rx433_eos, rxscan437_done
-  rxscan437_scan:
-    set_addr $I10, rxscan437_loop
+    ge rx433_pos, rx433_eos, rxscan436_done
+  rxscan436_scan:
+    set_addr $I10, rxscan436_loop
     rx433_cur."!mark_push"(0, rx433_pos, $I10)
-  rxscan437_done:
-.annotate 'line', 135
-  # rx literal  "z"
-    add $I11, rx433_pos, 1
-    gt $I11, rx433_eos, rx433_fail
-    sub $I11, rx433_pos, rx433_off
-    substr $S10, rx433_tgt, $I11, 1
-    ne $S10, "z", rx433_fail
-    add rx433_pos, 1
-  # rx subrule "obs" subtype=method negate=
-    rx433_cur."!cursor_pos"(rx433_pos)
-    $P10 = rx433_cur."obs"("\\z as end-of-string matcher", "$")
-    unless $P10, rx433_fail
-    rx433_pos = $P10."pos"()
+  rxscan436_done:
+.annotate 'line', 138
+  # rx charclass W
+    ge rx433_pos, rx433_eos, rx433_fail
+    sub $I10, rx433_pos, rx433_off
+    is_cclass $I11, 8192, rx433_tgt, $I10
+    if $I11, rx433_fail
+    inc rx433_pos
   # rx pass
-    rx433_cur."!cursor_pass"(rx433_pos, "backslash:sym<z>")
-    rx433_cur."!cursor_debug"("PASS  ", "backslash:sym<z>", " at pos=", rx433_pos)
+    rx433_cur."!cursor_pass"(rx433_pos, "backslash:sym<misc>")
+    rx433_cur."!cursor_debug"("PASS  ", "backslash:sym<misc>", " at pos=", rx433_pos)
     .return (rx433_cur)
-  rx433_fail:
+  rx433_restart:
 .annotate 'line', 3
+    rx433_cur."!cursor_debug"("NEXT ", "backslash:sym<misc>")
+  rx433_fail:
     (rx433_rep, rx433_pos, $I10, $P10) = rx433_cur."!mark_fail"(0)
     lt rx433_pos, -1, rx433_done
     eq rx433_pos, -1, rx433_fail
     jump $I10
   rx433_done:
     rx433_cur."!cursor_fail"()
-    rx433_cur."!cursor_debug"("FAIL  ", "backslash:sym<z>")
+    rx433_cur."!cursor_debug"("FAIL  ", "backslash:sym<misc>")
     .return (rx433_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<z>"  :subid("120_1277356887.58177") :method
+.sub "!PREFIX__backslash:sym<misc>"  :subid("126_1280467470.54449") :method
 .annotate 'line', 3
-    $P435 = self."!PREFIX__!subrule"("obs", "z")
-    new $P436, "ResizablePMCArray"
-    push $P436, $P435
-    .return ($P436)
+    new $P435, "ResizablePMCArray"
+    push $P435, ""
+    .return ($P435)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Z>"  :subid("121_1277356887.58177") :method :outer("11_1277356887.58177")
-.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
-    (rx439_cur, rx439_pos, rx439_tgt) = self."!cursor_start"()
-    rx439_cur."!cursor_debug"("START ", "backslash:sym<Z>")
-    .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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan443_done
-    goto rxscan443_scan
-  rxscan443_loop:
-    ($P10) = rx439_cur."from"()
-    inc $P10
-    set rx439_pos, $P10
-    ge rx439_pos, rx439_eos, rxscan443_done
-  rxscan443_scan:
-    set_addr $I10, rxscan443_loop
-    rx439_cur."!mark_push"(0, rx439_pos, $I10)
-  rxscan443_done:
-.annotate 'line', 136
-  # rx literal  "Z"
-    add $I11, rx439_pos, 1
-    gt $I11, rx439_eos, rx439_fail
-    sub $I11, rx439_pos, rx439_off
-    substr $S10, rx439_tgt, $I11, 1
-    ne $S10, "Z", rx439_fail
-    add rx439_pos, 1
-  # rx subrule "obs" subtype=method negate=
-    rx439_cur."!cursor_pos"(rx439_pos)
-    $P10 = rx439_cur."obs"("\\Z as end-of-string matcher", "\\n?$")
-    unless $P10, rx439_fail
-    rx439_pos = $P10."pos"()
-  # rx pass
-    rx439_cur."!cursor_pass"(rx439_pos, "backslash:sym<Z>")
-    rx439_cur."!cursor_debug"("PASS  ", "backslash:sym<Z>", " at pos=", rx439_pos)
-    .return (rx439_cur)
-  rx439_fail:
-.annotate 'line', 3
-    (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"()
-    rx439_cur."!cursor_debug"("FAIL  ", "backslash:sym<Z>")
-    .return (rx439_cur)
-    .return ()
+.sub "assertion"  :subid("127_1280467470.54449") :method
+.annotate 'line', 140
+    $P438 = self."!protoregex"("assertion")
+    .return ($P438)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Z>"  :subid("122_1277356887.58177") :method
-.annotate 'line', 3
-    $P441 = self."!PREFIX__!subrule"("obs", "Z")
-    new $P442, "ResizablePMCArray"
-    push $P442, $P441
-    .return ($P442)
+.sub "!PREFIX__assertion"  :subid("128_1280467470.54449") :method
+.annotate 'line', 140
+    $P440 = self."!PREFIX__!protoregex"("assertion")
+    .return ($P440)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Q>"  :subid("123_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "assertion:sym<?>"  :subid("129_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx445_tgt
-    .local int rx445_pos
-    .local int rx445_off
-    .local int rx445_eos
-    .local int rx445_rep
-    .local pmc rx445_cur
-    (rx445_cur, rx445_pos, rx445_tgt) = self."!cursor_start"()
-    rx445_cur."!cursor_debug"("START ", "backslash:sym<Q>")
-    .lex unicode:"$\x{a2}", rx445_cur
-    .local pmc match
-    .lex "$/", match
-    length rx445_eos, rx445_tgt
-    gt rx445_pos, rx445_eos, rx445_done
-    set rx445_off, 0
-    lt rx445_pos, 2, rx445_start
-    sub rx445_off, rx445_pos, 1
-    substr rx445_tgt, rx445_tgt, rx445_off
-  rx445_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan449_done
-    goto rxscan449_scan
-  rxscan449_loop:
-    ($P10) = rx445_cur."from"()
-    inc $P10
-    set rx445_pos, $P10
-    ge rx445_pos, rx445_eos, rxscan449_done
-  rxscan449_scan:
-    set_addr $I10, rxscan449_loop
-    rx445_cur."!mark_push"(0, rx445_pos, $I10)
-  rxscan449_done:
-.annotate 'line', 137
-  # rx literal  "Q"
-    add $I11, rx445_pos, 1
-    gt $I11, rx445_eos, rx445_fail
-    sub $I11, rx445_pos, rx445_off
-    substr $S10, rx445_tgt, $I11, 1
-    ne $S10, "Q", rx445_fail
-    add rx445_pos, 1
-  # rx subrule "obs" subtype=method negate=
-    rx445_cur."!cursor_pos"(rx445_pos)
-    $P10 = rx445_cur."obs"("\\Q as quotemeta", "quotes or literal variable match")
-    unless $P10, rx445_fail
-    rx445_pos = $P10."pos"()
+    .const 'Sub' $P449 = "131_1280467470.54449" 
+    capture_lex $P449
+    .local string rx442_tgt
+    .local int rx442_pos
+    .local int rx442_off
+    .local int rx442_eos
+    .local int rx442_rep
+    .local pmc rx442_cur
+    (rx442_cur, rx442_pos, rx442_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx442_cur."!cursor_debug"("START ", "assertion:sym<?>")
+    $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:
+.annotate 'line', 142
+  # rx literal  "?"
+    add $I11, rx442_pos, 1
+    gt $I11, rx442_eos, rx442_fail
+    sub $I11, rx442_pos, rx442_off
+    substr $S10, rx442_tgt, $I11, 1
+    ne $S10, "?", rx442_fail
+    add rx442_pos, 1
+  alt447_0:
+    set_addr $I10, alt447_1
+    rx442_cur."!mark_push"(0, rx442_pos, $I10)
+  # rx subrule "before" subtype=zerowidth negate=
+    rx442_cur."!cursor_pos"(rx442_pos)
+    .const 'Sub' $P449 = "131_1280467470.54449" 
+    capture_lex $P449
+    $P10 = rx442_cur."before"($P449)
+    unless $P10, rx442_fail
+    goto alt447_end
+  alt447_1:
+  # rx subrule "assertion" subtype=capture negate=
+    rx442_cur."!cursor_pos"(rx442_pos)
+    $P10 = rx442_cur."assertion"()
+    unless $P10, rx442_fail
+    rx442_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("assertion")
+    rx442_pos = $P10."pos"()
+  alt447_end:
   # rx pass
-    rx445_cur."!cursor_pass"(rx445_pos, "backslash:sym<Q>")
-    rx445_cur."!cursor_debug"("PASS  ", "backslash:sym<Q>", " at pos=", rx445_pos)
-    .return (rx445_cur)
-  rx445_fail:
+    rx442_cur."!cursor_pass"(rx442_pos, "assertion:sym<?>")
+    rx442_cur."!cursor_debug"("PASS  ", "assertion:sym<?>", " at pos=", rx442_pos)
+    .return (rx442_cur)
+  rx442_restart:
 .annotate 'line', 3
-    (rx445_rep, rx445_pos, $I10, $P10) = rx445_cur."!mark_fail"(0)
-    lt rx445_pos, -1, rx445_done
-    eq rx445_pos, -1, rx445_fail
+    rx442_cur."!cursor_debug"("NEXT ", "assertion:sym<?>")
+  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
-  rx445_done:
-    rx445_cur."!cursor_fail"()
-    rx445_cur."!cursor_debug"("FAIL  ", "backslash:sym<Q>")
-    .return (rx445_cur)
+  rx442_done:
+    rx442_cur."!cursor_fail"()
+    rx442_cur."!cursor_debug"("FAIL  ", "assertion:sym<?>")
+    .return (rx442_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Q>"  :subid("124_1277356887.58177") :method
+.sub "!PREFIX__assertion:sym<?>"  :subid("130_1280467470.54449") :method
 .annotate 'line', 3
-    $P447 = self."!PREFIX__!subrule"("obs", "Q")
-    new $P448, "ResizablePMCArray"
-    push $P448, $P447
-    .return ($P448)
+    $P444 = self."!PREFIX__!subrule"("assertion", "?")
+    new $P445, "ResizablePMCArray"
+    push $P445, $P444
+    push $P445, "?"
+    .return ($P445)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<misc>"  :subid("125_1277356887.58177") :method :outer("11_1277356887.58177")
-.annotate 'line', 3
-    .local string rx451_tgt
-    .local int rx451_pos
-    .local int rx451_off
-    .local int rx451_eos
-    .local int rx451_rep
-    .local pmc rx451_cur
-    (rx451_cur, rx451_pos, rx451_tgt) = self."!cursor_start"()
-    rx451_cur."!cursor_debug"("START ", "backslash:sym<misc>")
-    .lex unicode:"$\x{a2}", rx451_cur
-    .local pmc match
-    .lex "$/", match
-    length rx451_eos, rx451_tgt
-    gt rx451_pos, rx451_eos, rx451_done
-    set rx451_off, 0
-    lt rx451_pos, 2, rx451_start
-    sub rx451_off, rx451_pos, 1
-    substr rx451_tgt, rx451_tgt, rx451_off
-  rx451_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan454_done
-    goto rxscan454_scan
-  rxscan454_loop:
-    ($P10) = rx451_cur."from"()
-    inc $P10
-    set rx451_pos, $P10
-    ge rx451_pos, rx451_eos, rxscan454_done
-  rxscan454_scan:
-    set_addr $I10, rxscan454_loop
-    rx451_cur."!mark_push"(0, rx451_pos, $I10)
-  rxscan454_done:
-.annotate 'line', 138
-  # rx charclass W
-    ge rx451_pos, rx451_eos, rx451_fail
-    sub $I10, rx451_pos, rx451_off
-    is_cclass $I11, 8192, rx451_tgt, $I10
-    if $I11, rx451_fail
-    inc rx451_pos
-  # rx pass
-    rx451_cur."!cursor_pass"(rx451_pos, "backslash:sym<misc>")
-    rx451_cur."!cursor_debug"("PASS  ", "backslash:sym<misc>", " at pos=", rx451_pos)
-    .return (rx451_cur)
-  rx451_fail:
-.annotate 'line', 3
-    (rx451_rep, rx451_pos, $I10, $P10) = rx451_cur."!mark_fail"(0)
-    lt rx451_pos, -1, rx451_done
-    eq rx451_pos, -1, rx451_fail
-    jump $I10
-  rx451_done:
-    rx451_cur."!cursor_fail"()
-    rx451_cur."!cursor_debug"("FAIL  ", "backslash:sym<misc>")
-    .return (rx451_cur)
+.sub "_block448"  :anon :subid("131_1280467470.54449") :method :outer("129_1280467470.54449")
+.annotate 'line', 142
+    .local string rx450_tgt
+    .local int rx450_pos
+    .local int rx450_off
+    .local int rx450_eos
+    .local int rx450_rep
+    .local pmc rx450_cur
+    (rx450_cur, rx450_pos, rx450_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx450_cur
+    .local pmc match
+    .lex "$/", match
+    length rx450_eos, rx450_tgt
+    gt rx450_pos, rx450_eos, rx450_done
+    set rx450_off, 0
+    lt rx450_pos, 2, rx450_start
+    sub rx450_off, rx450_pos, 1
+    substr rx450_tgt, rx450_tgt, rx450_off
+  rx450_start:
+    eq $I10, 1, rx450_restart
+    rx450_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan451_done
+    goto rxscan451_scan
+  rxscan451_loop:
+    ($P10) = rx450_cur."from"()
+    inc $P10
+    set rx450_pos, $P10
+    ge rx450_pos, rx450_eos, rxscan451_done
+  rxscan451_scan:
+    set_addr $I10, rxscan451_loop
+    rx450_cur."!mark_push"(0, rx450_pos, $I10)
+  rxscan451_done:
+  # rx literal  ">"
+    add $I11, rx450_pos, 1
+    gt $I11, rx450_eos, rx450_fail
+    sub $I11, rx450_pos, rx450_off
+    substr $S10, rx450_tgt, $I11, 1
+    ne $S10, ">", rx450_fail
+    add rx450_pos, 1
+  # rx pass
+    rx450_cur."!cursor_pass"(rx450_pos, "")
+    rx450_cur."!cursor_debug"("PASS  ", "", " at pos=", rx450_pos)
+    .return (rx450_cur)
+  rx450_restart:
+    rx450_cur."!cursor_debug"("NEXT ", "")
+  rx450_fail:
+    (rx450_rep, rx450_pos, $I10, $P10) = rx450_cur."!mark_fail"(0)
+    lt rx450_pos, -1, rx450_done
+    eq rx450_pos, -1, rx450_fail
+    jump $I10
+  rx450_done:
+    rx450_cur."!cursor_fail"()
+    rx450_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx450_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<misc>"  :subid("126_1277356887.58177") :method
+.sub "assertion:sym<!>"  :subid("132_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+    .const 'Sub' $P460 = "134_1280467470.54449" 
+    capture_lex $P460
+    .local string rx453_tgt
+    .local int rx453_pos
+    .local int rx453_off
+    .local int rx453_eos
+    .local int rx453_rep
+    .local pmc rx453_cur
+    (rx453_cur, rx453_pos, rx453_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx453_cur."!cursor_debug"("START ", "assertion:sym<!>")
+    $I10 = self.'from'()
+    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', 143
+  # rx literal  "!"
+    add $I11, rx453_pos, 1
+    gt $I11, rx453_eos, rx453_fail
+    sub $I11, rx453_pos, rx453_off
+    substr $S10, rx453_tgt, $I11, 1
+    ne $S10, "!", rx453_fail
+    add rx453_pos, 1
+  alt458_0:
+    set_addr $I10, alt458_1
+    rx453_cur."!mark_push"(0, rx453_pos, $I10)
+  # rx subrule "before" subtype=zerowidth negate=
+    rx453_cur."!cursor_pos"(rx453_pos)
+    .const 'Sub' $P460 = "134_1280467470.54449" 
+    capture_lex $P460
+    $P10 = rx453_cur."before"($P460)
+    unless $P10, rx453_fail
+    goto alt458_end
+  alt458_1:
+  # rx subrule "assertion" subtype=capture negate=
+    rx453_cur."!cursor_pos"(rx453_pos)
+    $P10 = rx453_cur."assertion"()
+    unless $P10, rx453_fail
+    rx453_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("assertion")
+    rx453_pos = $P10."pos"()
+  alt458_end:
+  # rx pass
+    rx453_cur."!cursor_pass"(rx453_pos, "assertion:sym<!>")
+    rx453_cur."!cursor_debug"("PASS  ", "assertion:sym<!>", " at pos=", rx453_pos)
+    .return (rx453_cur)
+  rx453_restart:
 .annotate 'line', 3
-    new $P453, "ResizablePMCArray"
-    push $P453, ""
-    .return ($P453)
+    rx453_cur."!cursor_debug"("NEXT ", "assertion:sym<!>")
+  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"()
+    rx453_cur."!cursor_debug"("FAIL  ", "assertion:sym<!>")
+    .return (rx453_cur)
+    .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion"  :subid("127_1277356887.58177") :method
-.annotate 'line', 140
-    $P456 = self."!protoregex"("assertion")
+.sub "!PREFIX__assertion:sym<!>"  :subid("133_1280467470.54449") :method
+.annotate 'line', 3
+    $P455 = self."!PREFIX__!subrule"("assertion", "!")
+    new $P456, "ResizablePMCArray"
+    push $P456, $P455
+    push $P456, "!"
     .return ($P456)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion"  :subid("128_1277356887.58177") :method
-.annotate 'line', 140
-    $P458 = self."!PREFIX__!protoregex"("assertion")
-    .return ($P458)
+.sub "_block459"  :anon :subid("134_1280467470.54449") :method :outer("132_1280467470.54449")
+.annotate 'line', 143
+    .local string rx461_tgt
+    .local int rx461_pos
+    .local int rx461_off
+    .local int rx461_eos
+    .local int rx461_rep
+    .local pmc rx461_cur
+    (rx461_cur, rx461_pos, rx461_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx461_cur
+    .local pmc match
+    .lex "$/", match
+    length rx461_eos, rx461_tgt
+    gt rx461_pos, rx461_eos, rx461_done
+    set rx461_off, 0
+    lt rx461_pos, 2, rx461_start
+    sub rx461_off, rx461_pos, 1
+    substr rx461_tgt, rx461_tgt, rx461_off
+  rx461_start:
+    eq $I10, 1, rx461_restart
+    rx461_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan462_done
+    goto rxscan462_scan
+  rxscan462_loop:
+    ($P10) = rx461_cur."from"()
+    inc $P10
+    set rx461_pos, $P10
+    ge rx461_pos, rx461_eos, rxscan462_done
+  rxscan462_scan:
+    set_addr $I10, rxscan462_loop
+    rx461_cur."!mark_push"(0, rx461_pos, $I10)
+  rxscan462_done:
+  # rx literal  ">"
+    add $I11, rx461_pos, 1
+    gt $I11, rx461_eos, rx461_fail
+    sub $I11, rx461_pos, rx461_off
+    substr $S10, rx461_tgt, $I11, 1
+    ne $S10, ">", rx461_fail
+    add rx461_pos, 1
+  # rx pass
+    rx461_cur."!cursor_pass"(rx461_pos, "")
+    rx461_cur."!cursor_debug"("PASS  ", "", " at pos=", rx461_pos)
+    .return (rx461_cur)
+  rx461_restart:
+    rx461_cur."!cursor_debug"("NEXT ", "")
+  rx461_fail:
+    (rx461_rep, rx461_pos, $I10, $P10) = rx461_cur."!mark_fail"(0)
+    lt rx461_pos, -1, rx461_done
+    eq rx461_pos, -1, rx461_fail
+    jump $I10
+  rx461_done:
+    rx461_cur."!cursor_fail"()
+    rx461_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx461_cur)
+    .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<?>"  :subid("129_1277356887.58177") :method :outer("11_1277356887.58177")
-.annotate 'line', 3
-    .const 'Sub' $P467 = "131_1277356887.58177" 
-    capture_lex $P467
-    .local string rx460_tgt
-    .local int rx460_pos
-    .local int rx460_off
-    .local int rx460_eos
-    .local int rx460_rep
-    .local pmc rx460_cur
-    (rx460_cur, rx460_pos, rx460_tgt) = self."!cursor_start"()
-    rx460_cur."!cursor_debug"("START ", "assertion:sym<?>")
-    .lex unicode:"$\x{a2}", rx460_cur
-    .local pmc match
-    .lex "$/", match
-    length rx460_eos, rx460_tgt
-    gt rx460_pos, rx460_eos, rx460_done
-    set rx460_off, 0
-    lt rx460_pos, 2, rx460_start
-    sub rx460_off, rx460_pos, 1
-    substr rx460_tgt, rx460_tgt, rx460_off
-  rx460_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan464_done
-    goto rxscan464_scan
-  rxscan464_loop:
-    ($P10) = rx460_cur."from"()
-    inc $P10
-    set rx460_pos, $P10
-    ge rx460_pos, rx460_eos, rxscan464_done
-  rxscan464_scan:
-    set_addr $I10, rxscan464_loop
-    rx460_cur."!mark_push"(0, rx460_pos, $I10)
-  rxscan464_done:
-.annotate 'line', 142
-  # rx literal  "?"
-    add $I11, rx460_pos, 1
-    gt $I11, rx460_eos, rx460_fail
-    sub $I11, rx460_pos, rx460_off
-    substr $S10, rx460_tgt, $I11, 1
-    ne $S10, "?", rx460_fail
-    add rx460_pos, 1
-  alt465_0:
-    set_addr $I10, alt465_1
-    rx460_cur."!mark_push"(0, rx460_pos, $I10)
-  # rx subrule "before" subtype=zerowidth negate=
-    rx460_cur."!cursor_pos"(rx460_pos)
-    .const 'Sub' $P467 = "131_1277356887.58177" 
-    capture_lex $P467
-    $P10 = rx460_cur."before"($P467)
-    unless $P10, rx460_fail
-    goto alt465_end
-  alt465_1:
+.sub "assertion:sym<method>"  :subid("135_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+    .local string rx464_tgt
+    .local int rx464_pos
+    .local int rx464_off
+    .local int rx464_eos
+    .local int rx464_rep
+    .local pmc rx464_cur
+    (rx464_cur, rx464_pos, rx464_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx464_cur
+    .local pmc match
+    .lex "$/", match
+    length rx464_eos, rx464_tgt
+    gt rx464_pos, rx464_eos, rx464_done
+    set rx464_off, 0
+    lt rx464_pos, 2, rx464_start
+    sub rx464_off, rx464_pos, 1
+    substr rx464_tgt, rx464_tgt, rx464_off
+  rx464_start:
+    eq $I10, 1, rx464_restart
+    rx464_cur."!cursor_debug"("START ", "assertion:sym<method>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan468_done
+    goto rxscan468_scan
+  rxscan468_loop:
+    ($P10) = rx464_cur."from"()
+    inc $P10
+    set rx464_pos, $P10
+    ge rx464_pos, rx464_eos, rxscan468_done
+  rxscan468_scan:
+    set_addr $I10, rxscan468_loop
+    rx464_cur."!mark_push"(0, rx464_pos, $I10)
+  rxscan468_done:
+.annotate 'line', 146
+  # rx literal  "."
+    add $I11, rx464_pos, 1
+    gt $I11, rx464_eos, rx464_fail
+    sub $I11, rx464_pos, rx464_off
+    substr $S10, rx464_tgt, $I11, 1
+    ne $S10, ".", rx464_fail
+    add rx464_pos, 1
   # rx subrule "assertion" subtype=capture negate=
-    rx460_cur."!cursor_pos"(rx460_pos)
-    $P10 = rx460_cur."assertion"()
-    unless $P10, rx460_fail
-    rx460_cur."!mark_push"(0, -1, 0, $P10)
+    rx464_cur."!cursor_pos"(rx464_pos)
+    $P10 = rx464_cur."assertion"()
+    unless $P10, rx464_fail
+    rx464_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx460_pos = $P10."pos"()
-  alt465_end:
+    rx464_pos = $P10."pos"()
+.annotate 'line', 145
   # rx pass
-    rx460_cur."!cursor_pass"(rx460_pos, "assertion:sym<?>")
-    rx460_cur."!cursor_debug"("PASS  ", "assertion:sym<?>", " at pos=", rx460_pos)
-    .return (rx460_cur)
-  rx460_fail:
+    rx464_cur."!cursor_pass"(rx464_pos, "assertion:sym<method>")
+    rx464_cur."!cursor_debug"("PASS  ", "assertion:sym<method>", " at pos=", rx464_pos)
+    .return (rx464_cur)
+  rx464_restart:
 .annotate 'line', 3
-    (rx460_rep, rx460_pos, $I10, $P10) = rx460_cur."!mark_fail"(0)
-    lt rx460_pos, -1, rx460_done
-    eq rx460_pos, -1, rx460_fail
+    rx464_cur."!cursor_debug"("NEXT ", "assertion:sym<method>")
+  rx464_fail:
+    (rx464_rep, rx464_pos, $I10, $P10) = rx464_cur."!mark_fail"(0)
+    lt rx464_pos, -1, rx464_done
+    eq rx464_pos, -1, rx464_fail
     jump $I10
-  rx460_done:
-    rx460_cur."!cursor_fail"()
-    rx460_cur."!cursor_debug"("FAIL  ", "assertion:sym<?>")
-    .return (rx460_cur)
+  rx464_done:
+    rx464_cur."!cursor_fail"()
+    rx464_cur."!cursor_debug"("FAIL  ", "assertion:sym<method>")
+    .return (rx464_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<?>"  :subid("130_1277356887.58177") :method
+.sub "!PREFIX__assertion:sym<method>"  :subid("136_1280467470.54449") :method
 .annotate 'line', 3
-    $P462 = self."!PREFIX__!subrule"("assertion", "?")
-    new $P463, "ResizablePMCArray"
-    push $P463, $P462
-    push $P463, "?"
-    .return ($P463)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block466"  :anon :subid("131_1277356887.58177") :method :outer("129_1277356887.58177")
-.annotate 'line', 142
-    .local string rx468_tgt
-    .local int rx468_pos
-    .local int rx468_off
-    .local int rx468_eos
-    .local int rx468_rep
-    .local pmc rx468_cur
-    (rx468_cur, rx468_pos, rx468_tgt) = self."!cursor_start"()
-    rx468_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx468_cur
-    .local pmc match
-    .lex "$/", match
-    length rx468_eos, rx468_tgt
-    gt rx468_pos, rx468_eos, rx468_done
-    set rx468_off, 0
-    lt rx468_pos, 2, rx468_start
-    sub rx468_off, rx468_pos, 1
-    substr rx468_tgt, rx468_tgt, rx468_off
-  rx468_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan469_done
-    goto rxscan469_scan
-  rxscan469_loop:
-    ($P10) = rx468_cur."from"()
-    inc $P10
-    set rx468_pos, $P10
-    ge rx468_pos, rx468_eos, rxscan469_done
-  rxscan469_scan:
-    set_addr $I10, rxscan469_loop
-    rx468_cur."!mark_push"(0, rx468_pos, $I10)
-  rxscan469_done:
-  # rx literal  ">"
-    add $I11, rx468_pos, 1
-    gt $I11, rx468_eos, rx468_fail
-    sub $I11, rx468_pos, rx468_off
-    substr $S10, rx468_tgt, $I11, 1
-    ne $S10, ">", rx468_fail
-    add rx468_pos, 1
-  # rx pass
-    rx468_cur."!cursor_pass"(rx468_pos, "")
-    rx468_cur."!cursor_debug"("PASS  ", "", " at pos=", rx468_pos)
-    .return (rx468_cur)
-  rx468_fail:
-    (rx468_rep, rx468_pos, $I10, $P10) = rx468_cur."!mark_fail"(0)
-    lt rx468_pos, -1, rx468_done
-    eq rx468_pos, -1, rx468_fail
-    jump $I10
-  rx468_done:
-    rx468_cur."!cursor_fail"()
-    rx468_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx468_cur)
-    .return ()
+    $P466 = self."!PREFIX__!subrule"("assertion", ".")
+    new $P467, "ResizablePMCArray"
+    push $P467, $P466
+    .return ($P467)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<!>"  :subid("132_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "assertion:sym<name>"  :subid("137_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .const 'Sub' $P478 = "134_1277356887.58177" 
+    .const 'Sub' $P478 = "139_1280467470.54449" 
     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
-    (rx471_cur, rx471_pos, rx471_tgt) = self."!cursor_start"()
-    rx471_cur."!cursor_debug"("START ", "assertion:sym<!>")
-    .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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan475_done
-    goto rxscan475_scan
-  rxscan475_loop:
-    ($P10) = rx471_cur."from"()
-    inc $P10
-    set rx471_pos, $P10
-    ge rx471_pos, rx471_eos, rxscan475_done
-  rxscan475_scan:
-    set_addr $I10, rxscan475_loop
-    rx471_cur."!mark_push"(0, rx471_pos, $I10)
-  rxscan475_done:
-.annotate 'line', 143
-  # rx literal  "!"
-    add $I11, rx471_pos, 1
-    gt $I11, rx471_eos, rx471_fail
-    sub $I11, rx471_pos, rx471_off
-    substr $S10, rx471_tgt, $I11, 1
-    ne $S10, "!", rx471_fail
-    add rx471_pos, 1
+    .local string rx470_tgt
+    .local int rx470_pos
+    .local int rx470_off
+    .local int rx470_eos
+    .local int rx470_rep
+    .local pmc rx470_cur
+    (rx470_cur, rx470_pos, rx470_tgt, $I10) = self."!cursor_start"()
+    rx470_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+    .lex unicode:"$\x{a2}", rx470_cur
+    .local pmc match
+    .lex "$/", match
+    length rx470_eos, rx470_tgt
+    gt rx470_pos, rx470_eos, rx470_done
+    set rx470_off, 0
+    lt rx470_pos, 2, rx470_start
+    sub rx470_off, rx470_pos, 1
+    substr rx470_tgt, rx470_tgt, rx470_off
+  rx470_start:
+    eq $I10, 1, rx470_restart
+    rx470_cur."!cursor_debug"("START ", "assertion:sym<name>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan474_done
+    goto rxscan474_scan
+  rxscan474_loop:
+    ($P10) = rx470_cur."from"()
+    inc $P10
+    set rx470_pos, $P10
+    ge rx470_pos, rx470_eos, rxscan474_done
+  rxscan474_scan:
+    set_addr $I10, rxscan474_loop
+    rx470_cur."!mark_push"(0, rx470_pos, $I10)
+  rxscan474_done:
+.annotate 'line', 150
+  # rx subrule "identifier" subtype=capture negate=
+    rx470_cur."!cursor_pos"(rx470_pos)
+    $P10 = rx470_cur."identifier"()
+    unless $P10, rx470_fail
+    rx470_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("longname")
+    rx470_pos = $P10."pos"()
+.annotate 'line', 157
+  # rx rxquantr475 ** 0..1
+    set_addr $I10, rxquantr475_done
+    rx470_cur."!mark_push"(0, rx470_pos, $I10)
+  rxquantr475_loop:
   alt476_0:
+.annotate 'line', 151
     set_addr $I10, alt476_1
-    rx471_cur."!mark_push"(0, rx471_pos, $I10)
+    rx470_cur."!mark_push"(0, rx470_pos, $I10)
+.annotate 'line', 152
   # rx subrule "before" subtype=zerowidth negate=
-    rx471_cur."!cursor_pos"(rx471_pos)
-    .const 'Sub' $P478 = "134_1277356887.58177" 
+    rx470_cur."!cursor_pos"(rx470_pos)
+    .const 'Sub' $P478 = "139_1280467470.54449" 
     capture_lex $P478
-    $P10 = rx471_cur."before"($P478)
-    unless $P10, rx471_fail
+    $P10 = rx470_cur."before"($P478)
+    unless $P10, rx470_fail
     goto alt476_end
   alt476_1:
+    set_addr $I10, alt476_2
+    rx470_cur."!mark_push"(0, rx470_pos, $I10)
+.annotate 'line', 153
+  # rx literal  "="
+    add $I11, rx470_pos, 1
+    gt $I11, rx470_eos, rx470_fail
+    sub $I11, rx470_pos, rx470_off
+    substr $S10, rx470_tgt, $I11, 1
+    ne $S10, "=", rx470_fail
+    add rx470_pos, 1
   # rx subrule "assertion" subtype=capture negate=
-    rx471_cur."!cursor_pos"(rx471_pos)
-    $P10 = rx471_cur."assertion"()
-    unless $P10, rx471_fail
-    rx471_cur."!mark_push"(0, -1, 0, $P10)
+    rx470_cur."!cursor_pos"(rx470_pos)
+    $P10 = rx470_cur."assertion"()
+    unless $P10, rx470_fail
+    rx470_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx471_pos = $P10."pos"()
+    rx470_pos = $P10."pos"()
+    goto alt476_end
+  alt476_2:
+    set_addr $I10, alt476_3
+    rx470_cur."!mark_push"(0, rx470_pos, $I10)
+.annotate 'line', 154
+  # rx literal  ":"
+    add $I11, rx470_pos, 1
+    gt $I11, rx470_eos, rx470_fail
+    sub $I11, rx470_pos, rx470_off
+    substr $S10, rx470_tgt, $I11, 1
+    ne $S10, ":", rx470_fail
+    add rx470_pos, 1
+  # rx subrule "arglist" subtype=capture negate=
+    rx470_cur."!cursor_pos"(rx470_pos)
+    $P10 = rx470_cur."arglist"()
+    unless $P10, rx470_fail
+    rx470_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("arglist")
+    rx470_pos = $P10."pos"()
+    goto alt476_end
+  alt476_3:
+    set_addr $I10, alt476_4
+    rx470_cur."!mark_push"(0, rx470_pos, $I10)
+.annotate 'line', 155
+  # rx literal  "("
+    add $I11, rx470_pos, 1
+    gt $I11, rx470_eos, rx470_fail
+    sub $I11, rx470_pos, rx470_off
+    substr $S10, rx470_tgt, $I11, 1
+    ne $S10, "(", rx470_fail
+    add rx470_pos, 1
+  # rx subrule "arglist" subtype=capture negate=
+    rx470_cur."!cursor_pos"(rx470_pos)
+    $P10 = rx470_cur."arglist"()
+    unless $P10, rx470_fail
+    rx470_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("arglist")
+    rx470_pos = $P10."pos"()
+  # rx literal  ")"
+    add $I11, rx470_pos, 1
+    gt $I11, rx470_eos, rx470_fail
+    sub $I11, rx470_pos, rx470_off
+    substr $S10, rx470_tgt, $I11, 1
+    ne $S10, ")", rx470_fail
+    add rx470_pos, 1
+    goto alt476_end
+  alt476_4:
+.annotate 'line', 156
+  # rx subrule "normspace" subtype=method negate=
+    rx470_cur."!cursor_pos"(rx470_pos)
+    $P10 = rx470_cur."normspace"()
+    unless $P10, rx470_fail
+    rx470_pos = $P10."pos"()
+  # rx subrule "nibbler" subtype=capture negate=
+    rx470_cur."!cursor_pos"(rx470_pos)
+    $P10 = rx470_cur."nibbler"()
+    unless $P10, rx470_fail
+    rx470_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("nibbler")
+    rx470_pos = $P10."pos"()
   alt476_end:
+.annotate 'line', 157
+    set_addr $I10, rxquantr475_done
+    (rx470_rep) = rx470_cur."!mark_commit"($I10)
+  rxquantr475_done:
+.annotate 'line', 149
   # rx pass
-    rx471_cur."!cursor_pass"(rx471_pos, "assertion:sym<!>")
-    rx471_cur."!cursor_debug"("PASS  ", "assertion:sym<!>", " at pos=", rx471_pos)
-    .return (rx471_cur)
-  rx471_fail:
+    rx470_cur."!cursor_pass"(rx470_pos, "assertion:sym<name>")
+    rx470_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx470_pos)
+    .return (rx470_cur)
+  rx470_restart:
 .annotate 'line', 3
-    (rx471_rep, rx471_pos, $I10, $P10) = rx471_cur."!mark_fail"(0)
-    lt rx471_pos, -1, rx471_done
-    eq rx471_pos, -1, rx471_fail
+    rx470_cur."!cursor_debug"("NEXT ", "assertion:sym<name>")
+  rx470_fail:
+    (rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0)
+    lt rx470_pos, -1, rx470_done
+    eq rx470_pos, -1, rx470_fail
     jump $I10
-  rx471_done:
-    rx471_cur."!cursor_fail"()
-    rx471_cur."!cursor_debug"("FAIL  ", "assertion:sym<!>")
-    .return (rx471_cur)
+  rx470_done:
+    rx470_cur."!cursor_fail"()
+    rx470_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
+    .return (rx470_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<!>"  :subid("133_1277356887.58177") :method
+.sub "!PREFIX__assertion:sym<name>"  :subid("138_1280467470.54449") :method
 .annotate 'line', 3
-    $P473 = self."!PREFIX__!subrule"("assertion", "!")
-    new $P474, "ResizablePMCArray"
-    push $P474, $P473
-    push $P474, "!"
-    .return ($P474)
+    $P472 = self."!PREFIX__!subrule"("identifier", "")
+    new $P473, "ResizablePMCArray"
+    push $P473, $P472
+    .return ($P473)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block477"  :anon :subid("134_1277356887.58177") :method :outer("132_1277356887.58177")
-.annotate 'line', 143
+.sub "_block477"  :anon :subid("139_1280467470.54449") :method :outer("137_1280467470.54449")
+.annotate 'line', 152
     .local string rx479_tgt
     .local int rx479_pos
     .local int rx479_off
     .local int rx479_eos
     .local int rx479_rep
     .local pmc rx479_cur
-    (rx479_cur, rx479_pos, rx479_tgt) = self."!cursor_start"()
-    rx479_cur."!cursor_debug"("START ", "")
+    (rx479_cur, rx479_pos, rx479_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx479_cur
     .local pmc match
     .lex "$/", match
@@ -5787,6 +6325,8 @@
     sub rx479_off, rx479_pos, 1
     substr rx479_tgt, rx479_tgt, rx479_off
   rx479_start:
+    eq $I10, 1, rx479_restart
+    rx479_cur."!cursor_debug"("START ", "")
     $I10 = self.'from'()
     ne $I10, -1, rxscan480_done
     goto rxscan480_scan
@@ -5810,6 +6350,8 @@
     rx479_cur."!cursor_pass"(rx479_pos, "")
     rx479_cur."!cursor_debug"("PASS  ", "", " at pos=", rx479_pos)
     .return (rx479_cur)
+  rx479_restart:
+    rx479_cur."!cursor_debug"("NEXT ", "")
   rx479_fail:
     (rx479_rep, rx479_pos, $I10, $P10) = rx479_cur."!mark_fail"(0)
     lt rx479_pos, -1, rx479_done
@@ -5824,16 +6366,18 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<method>"  :subid("135_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "assertion:sym<[>"  :subid("140_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
+    .const 'Sub' $P487 = "142_1280467470.54449" 
+    capture_lex $P487
     .local string rx482_tgt
     .local int rx482_pos
     .local int rx482_off
     .local int rx482_eos
     .local int rx482_rep
     .local pmc rx482_cur
-    (rx482_cur, rx482_pos, rx482_tgt) = self."!cursor_start"()
-    rx482_cur."!cursor_debug"("START ", "assertion:sym<method>")
+    (rx482_cur, rx482_pos, rx482_tgt, $I10) = self."!cursor_start"()
+    rx482_cur."!cursor_caparray"("cclass_elem")
     .lex unicode:"$\x{a2}", rx482_cur
     .local pmc match
     .lex "$/", match
@@ -5844,76 +6388,89 @@
     sub rx482_off, rx482_pos, 1
     substr rx482_tgt, rx482_tgt, rx482_off
   rx482_start:
+    eq $I10, 1, rx482_restart
+    rx482_cur."!cursor_debug"("START ", "assertion:sym<[>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan486_done
-    goto rxscan486_scan
-  rxscan486_loop:
+    ne $I10, -1, rxscan485_done
+    goto rxscan485_scan
+  rxscan485_loop:
     ($P10) = rx482_cur."from"()
     inc $P10
     set rx482_pos, $P10
-    ge rx482_pos, rx482_eos, rxscan486_done
-  rxscan486_scan:
-    set_addr $I10, rxscan486_loop
+    ge rx482_pos, rx482_eos, rxscan485_done
+  rxscan485_scan:
+    set_addr $I10, rxscan485_loop
     rx482_cur."!mark_push"(0, rx482_pos, $I10)
-  rxscan486_done:
-.annotate 'line', 146
-  # rx literal  "."
-    add $I11, rx482_pos, 1
-    gt $I11, rx482_eos, rx482_fail
-    sub $I11, rx482_pos, rx482_off
-    substr $S10, rx482_tgt, $I11, 1
-    ne $S10, ".", rx482_fail
-    add rx482_pos, 1
-  # rx subrule "assertion" subtype=capture negate=
+  rxscan485_done:
+.annotate 'line', 160
+  # rx subrule "before" subtype=zerowidth negate=
     rx482_cur."!cursor_pos"(rx482_pos)
-    $P10 = rx482_cur."assertion"()
+    .const 'Sub' $P487 = "142_1280467470.54449" 
+    capture_lex $P487
+    $P10 = rx482_cur."before"($P487)
     unless $P10, rx482_fail
-    rx482_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("assertion")
+  # rx rxquantr491 ** 1..*
+    set_addr $I10, rxquantr491_done
+    rx482_cur."!mark_push"(0, -1, $I10)
+  rxquantr491_loop:
+  # rx subrule "cclass_elem" subtype=capture negate=
+    rx482_cur."!cursor_pos"(rx482_pos)
+    $P10 = rx482_cur."cclass_elem"()
+    unless $P10, rx482_fail
+    goto rxsubrule492_pass
+  rxsubrule492_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx482_fail
+  rxsubrule492_pass:
+    set_addr $I10, rxsubrule492_back
+    rx482_cur."!mark_push"(0, rx482_pos, $I10, $P10)
+    $P10."!cursor_names"("cclass_elem")
     rx482_pos = $P10."pos"()
-.annotate 'line', 145
+    set_addr $I10, rxquantr491_done
+    (rx482_rep) = rx482_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr491_done
+    rx482_cur."!mark_push"(rx482_rep, rx482_pos, $I10)
+    goto rxquantr491_loop
+  rxquantr491_done:
   # rx pass
-    rx482_cur."!cursor_pass"(rx482_pos, "assertion:sym<method>")
-    rx482_cur."!cursor_debug"("PASS  ", "assertion:sym<method>", " at pos=", rx482_pos)
+    rx482_cur."!cursor_pass"(rx482_pos, "assertion:sym<[>")
+    rx482_cur."!cursor_debug"("PASS  ", "assertion:sym<[>", " at pos=", rx482_pos)
     .return (rx482_cur)
-  rx482_fail:
+  rx482_restart:
 .annotate 'line', 3
+    rx482_cur."!cursor_debug"("NEXT ", "assertion:sym<[>")
+  rx482_fail:
     (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0)
     lt rx482_pos, -1, rx482_done
     eq rx482_pos, -1, rx482_fail
     jump $I10
   rx482_done:
     rx482_cur."!cursor_fail"()
-    rx482_cur."!cursor_debug"("FAIL  ", "assertion:sym<method>")
+    rx482_cur."!cursor_debug"("FAIL  ", "assertion:sym<[>")
     .return (rx482_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<method>"  :subid("136_1277356887.58177") :method
+.sub "!PREFIX__assertion:sym<[>"  :subid("141_1280467470.54449") :method
 .annotate 'line', 3
-    $P484 = self."!PREFIX__!subrule"("assertion", ".")
-    new $P485, "ResizablePMCArray"
-    push $P485, $P484
-    .return ($P485)
+    new $P484, "ResizablePMCArray"
+    push $P484, ""
+    .return ($P484)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<name>"  :subid("137_1277356887.58177") :method :outer("11_1277356887.58177")
-.annotate 'line', 3
-    .const 'Sub' $P496 = "139_1277356887.58177" 
-    capture_lex $P496
+.sub "_block486"  :anon :subid("142_1280467470.54449") :method :outer("140_1280467470.54449")
+.annotate 'line', 160
     .local string rx488_tgt
     .local int rx488_pos
     .local int rx488_off
     .local int rx488_eos
     .local int rx488_rep
     .local pmc rx488_cur
-    (rx488_cur, rx488_pos, rx488_tgt) = self."!cursor_start"()
-    rx488_cur."!cursor_debug"("START ", "assertion:sym<name>")
-    rx488_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+    (rx488_cur, rx488_pos, rx488_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx488_cur
     .local pmc match
     .lex "$/", match
@@ -5924,1442 +6481,1201 @@
     sub rx488_off, rx488_pos, 1
     substr rx488_tgt, rx488_tgt, rx488_off
   rx488_start:
+    eq $I10, 1, rx488_restart
+    rx488_cur."!cursor_debug"("START ", "")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan492_done
-    goto rxscan492_scan
-  rxscan492_loop:
+    ne $I10, -1, rxscan489_done
+    goto rxscan489_scan
+  rxscan489_loop:
     ($P10) = rx488_cur."from"()
     inc $P10
     set rx488_pos, $P10
-    ge rx488_pos, rx488_eos, rxscan492_done
-  rxscan492_scan:
-    set_addr $I10, rxscan492_loop
-    rx488_cur."!mark_push"(0, rx488_pos, $I10)
-  rxscan492_done:
-.annotate 'line', 150
-  # rx subrule "identifier" subtype=capture negate=
-    rx488_cur."!cursor_pos"(rx488_pos)
-    $P10 = rx488_cur."identifier"()
-    unless $P10, rx488_fail
-    rx488_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("longname")
-    rx488_pos = $P10."pos"()
-.annotate 'line', 157
-  # rx rxquantr493 ** 0..1
-    set_addr $I499, rxquantr493_done
-    rx488_cur."!mark_push"(0, rx488_pos, $I499)
-  rxquantr493_loop:
-  alt494_0:
-.annotate 'line', 151
-    set_addr $I10, alt494_1
-    rx488_cur."!mark_push"(0, rx488_pos, $I10)
-.annotate 'line', 152
-  # rx subrule "before" subtype=zerowidth negate=
-    rx488_cur."!cursor_pos"(rx488_pos)
-    .const 'Sub' $P496 = "139_1277356887.58177" 
-    capture_lex $P496
-    $P10 = rx488_cur."before"($P496)
-    unless $P10, rx488_fail
-    goto alt494_end
-  alt494_1:
-    set_addr $I10, alt494_2
+    ge rx488_pos, rx488_eos, rxscan489_done
+  rxscan489_scan:
+    set_addr $I10, rxscan489_loop
     rx488_cur."!mark_push"(0, rx488_pos, $I10)
-.annotate 'line', 153
-  # rx literal  "="
-    add $I11, rx488_pos, 1
-    gt $I11, rx488_eos, rx488_fail
-    sub $I11, rx488_pos, rx488_off
-    substr $S10, rx488_tgt, $I11, 1
-    ne $S10, "=", rx488_fail
-    add rx488_pos, 1
-  # rx subrule "assertion" subtype=capture negate=
-    rx488_cur."!cursor_pos"(rx488_pos)
-    $P10 = rx488_cur."assertion"()
-    unless $P10, rx488_fail
-    rx488_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("assertion")
-    rx488_pos = $P10."pos"()
-    goto alt494_end
-  alt494_2:
-    set_addr $I10, alt494_3
+  rxscan489_done:
+  alt490_0:
+    set_addr $I10, alt490_1
     rx488_cur."!mark_push"(0, rx488_pos, $I10)
-.annotate 'line', 154
-  # rx literal  ":"
+  # rx literal  "["
     add $I11, rx488_pos, 1
     gt $I11, rx488_eos, rx488_fail
     sub $I11, rx488_pos, rx488_off
     substr $S10, rx488_tgt, $I11, 1
-    ne $S10, ":", rx488_fail
+    ne $S10, "[", rx488_fail
     add rx488_pos, 1
-  # rx subrule "arglist" subtype=capture negate=
-    rx488_cur."!cursor_pos"(rx488_pos)
-    $P10 = rx488_cur."arglist"()
-    unless $P10, rx488_fail
-    rx488_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("arglist")
-    rx488_pos = $P10."pos"()
-    goto alt494_end
-  alt494_3:
-    set_addr $I10, alt494_4
+    goto alt490_end
+  alt490_1:
+    set_addr $I10, alt490_2
     rx488_cur."!mark_push"(0, rx488_pos, $I10)
-.annotate 'line', 155
-  # rx literal  "("
+  # rx literal  "+"
     add $I11, rx488_pos, 1
     gt $I11, rx488_eos, rx488_fail
     sub $I11, rx488_pos, rx488_off
     substr $S10, rx488_tgt, $I11, 1
-    ne $S10, "(", rx488_fail
+    ne $S10, "+", rx488_fail
     add rx488_pos, 1
-  # rx subrule "arglist" subtype=capture negate=
-    rx488_cur."!cursor_pos"(rx488_pos)
-    $P10 = rx488_cur."arglist"()
-    unless $P10, rx488_fail
-    rx488_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("arglist")
-    rx488_pos = $P10."pos"()
-  # rx literal  ")"
+    goto alt490_end
+  alt490_2:
+  # rx literal  "-"
     add $I11, rx488_pos, 1
     gt $I11, rx488_eos, rx488_fail
     sub $I11, rx488_pos, rx488_off
     substr $S10, rx488_tgt, $I11, 1
-    ne $S10, ")", rx488_fail
+    ne $S10, "-", rx488_fail
     add rx488_pos, 1
-    goto alt494_end
-  alt494_4:
-.annotate 'line', 156
-  # rx subrule "normspace" subtype=method negate=
-    rx488_cur."!cursor_pos"(rx488_pos)
-    $P10 = rx488_cur."normspace"()
-    unless $P10, rx488_fail
-    rx488_pos = $P10."pos"()
-  # rx subrule "nibbler" subtype=capture negate=
-    rx488_cur."!cursor_pos"(rx488_pos)
-    $P10 = rx488_cur."nibbler"()
-    unless $P10, rx488_fail
-    rx488_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("nibbler")
-    rx488_pos = $P10."pos"()
-  alt494_end:
-.annotate 'line', 157
-    (rx488_rep) = rx488_cur."!mark_commit"($I499)
-  rxquantr493_done:
-.annotate 'line', 149
+  alt490_end:
   # rx pass
-    rx488_cur."!cursor_pass"(rx488_pos, "assertion:sym<name>")
-    rx488_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx488_pos)
+    rx488_cur."!cursor_pass"(rx488_pos, "")
+    rx488_cur."!cursor_debug"("PASS  ", "", " at pos=", rx488_pos)
     .return (rx488_cur)
+  rx488_restart:
+    rx488_cur."!cursor_debug"("NEXT ", "")
   rx488_fail:
-.annotate 'line', 3
     (rx488_rep, rx488_pos, $I10, $P10) = rx488_cur."!mark_fail"(0)
     lt rx488_pos, -1, rx488_done
     eq rx488_pos, -1, rx488_fail
     jump $I10
   rx488_done:
     rx488_cur."!cursor_fail"()
-    rx488_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
+    rx488_cur."!cursor_debug"("FAIL  ", "")
     .return (rx488_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("138_1277356887.58177") :method
-.annotate 'line', 3
-    $P490 = self."!PREFIX__!subrule"("identifier", "")
-    new $P491, "ResizablePMCArray"
-    push $P491, $P490
-    .return ($P491)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block495"  :anon :subid("139_1277356887.58177") :method :outer("137_1277356887.58177")
-.annotate 'line', 152
-    .local string rx497_tgt
-    .local int rx497_pos
-    .local int rx497_off
-    .local int rx497_eos
-    .local int rx497_rep
-    .local pmc rx497_cur
-    (rx497_cur, rx497_pos, rx497_tgt) = self."!cursor_start"()
-    rx497_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx497_cur
-    .local pmc match
-    .lex "$/", match
-    length rx497_eos, rx497_tgt
-    gt rx497_pos, rx497_eos, rx497_done
-    set rx497_off, 0
-    lt rx497_pos, 2, rx497_start
-    sub rx497_off, rx497_pos, 1
-    substr rx497_tgt, rx497_tgt, rx497_off
-  rx497_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan498_done
-    goto rxscan498_scan
-  rxscan498_loop:
-    ($P10) = rx497_cur."from"()
-    inc $P10
-    set rx497_pos, $P10
-    ge rx497_pos, rx497_eos, rxscan498_done
-  rxscan498_scan:
-    set_addr $I10, rxscan498_loop
-    rx497_cur."!mark_push"(0, rx497_pos, $I10)
-  rxscan498_done:
-  # rx literal  ">"
-    add $I11, rx497_pos, 1
-    gt $I11, rx497_eos, rx497_fail
-    sub $I11, rx497_pos, rx497_off
-    substr $S10, rx497_tgt, $I11, 1
-    ne $S10, ">", rx497_fail
-    add rx497_pos, 1
-  # rx pass
-    rx497_cur."!cursor_pass"(rx497_pos, "")
-    rx497_cur."!cursor_debug"("PASS  ", "", " at pos=", rx497_pos)
-    .return (rx497_cur)
-  rx497_fail:
-    (rx497_rep, rx497_pos, $I10, $P10) = rx497_cur."!mark_fail"(0)
-    lt rx497_pos, -1, rx497_done
-    eq rx497_pos, -1, rx497_fail
-    jump $I10
-  rx497_done:
-    rx497_cur."!cursor_fail"()
-    rx497_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx497_cur)
-    .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<[>"  :subid("140_1277356887.58177") :method :outer("11_1277356887.58177")
-.annotate 'line', 3
-    .const 'Sub' $P506 = "142_1277356887.58177" 
-    capture_lex $P506
-    .local string rx501_tgt
-    .local int rx501_pos
-    .local int rx501_off
-    .local int rx501_eos
-    .local int rx501_rep
-    .local pmc rx501_cur
-    (rx501_cur, rx501_pos, rx501_tgt) = self."!cursor_start"()
-    rx501_cur."!cursor_debug"("START ", "assertion:sym<[>")
-    rx501_cur."!cursor_caparray"("cclass_elem")
-    .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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan504_done
-    goto rxscan504_scan
-  rxscan504_loop:
-    ($P10) = rx501_cur."from"()
-    inc $P10
-    set rx501_pos, $P10
-    ge rx501_pos, rx501_eos, rxscan504_done
-  rxscan504_scan:
-    set_addr $I10, rxscan504_loop
-    rx501_cur."!mark_push"(0, rx501_pos, $I10)
-  rxscan504_done:
-.annotate 'line', 160
-  # rx subrule "before" subtype=zerowidth negate=
-    rx501_cur."!cursor_pos"(rx501_pos)
-    .const 'Sub' $P506 = "142_1277356887.58177" 
-    capture_lex $P506
-    $P10 = rx501_cur."before"($P506)
-    unless $P10, rx501_fail
-  # rx rxquantr510 ** 1..*
-    set_addr $I511, rxquantr510_done
-    rx501_cur."!mark_push"(0, -1, $I511)
-  rxquantr510_loop:
-  # rx subrule "cclass_elem" subtype=capture negate=
-    rx501_cur."!cursor_pos"(rx501_pos)
-    $P10 = rx501_cur."cclass_elem"()
-    unless $P10, rx501_fail
-    rx501_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("cclass_elem")
-    rx501_pos = $P10."pos"()
-    (rx501_rep) = rx501_cur."!mark_commit"($I511)
-    rx501_cur."!mark_push"(rx501_rep, rx501_pos, $I511)
-    goto rxquantr510_loop
-  rxquantr510_done:
-  # rx pass
-    rx501_cur."!cursor_pass"(rx501_pos, "assertion:sym<[>")
-    rx501_cur."!cursor_debug"("PASS  ", "assertion:sym<[>", " at pos=", rx501_pos)
-    .return (rx501_cur)
-  rx501_fail:
-.annotate 'line', 3
-    (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"()
-    rx501_cur."!cursor_debug"("FAIL  ", "assertion:sym<[>")
-    .return (rx501_cur)
-    .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<[>"  :subid("141_1277356887.58177") :method
+.sub "cclass_elem"  :subid("143_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    new $P503, "ResizablePMCArray"
-    push $P503, ""
-    .return ($P503)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block505"  :anon :subid("142_1277356887.58177") :method :outer("140_1277356887.58177")
-.annotate 'line', 160
-    .local string rx507_tgt
-    .local int rx507_pos
-    .local int rx507_off
-    .local int rx507_eos
-    .local int rx507_rep
-    .local pmc rx507_cur
-    (rx507_cur, rx507_pos, rx507_tgt) = self."!cursor_start"()
-    rx507_cur."!cursor_debug"("START ", "")
-    .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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan508_done
-    goto rxscan508_scan
-  rxscan508_loop:
-    ($P10) = rx507_cur."from"()
-    inc $P10
-    set rx507_pos, $P10
-    ge rx507_pos, rx507_eos, rxscan508_done
-  rxscan508_scan:
-    set_addr $I10, rxscan508_loop
-    rx507_cur."!mark_push"(0, rx507_pos, $I10)
-  rxscan508_done:
-  alt509_0:
-    set_addr $I10, alt509_1
-    rx507_cur."!mark_push"(0, rx507_pos, $I10)
-  # rx literal  "["
-    add $I11, rx507_pos, 1
-    gt $I11, rx507_eos, rx507_fail
-    sub $I11, rx507_pos, rx507_off
-    substr $S10, rx507_tgt, $I11, 1
-    ne $S10, "[", rx507_fail
-    add rx507_pos, 1
-    goto alt509_end
-  alt509_1:
-    set_addr $I10, alt509_2
-    rx507_cur."!mark_push"(0, rx507_pos, $I10)
-  # rx literal  "+"
-    add $I11, rx507_pos, 1
-    gt $I11, rx507_eos, rx507_fail
-    sub $I11, rx507_pos, rx507_off
-    substr $S10, rx507_tgt, $I11, 1
-    ne $S10, "+", rx507_fail
-    add rx507_pos, 1
-    goto alt509_end
-  alt509_2:
-  # rx literal  "-"
-    add $I11, rx507_pos, 1
-    gt $I11, rx507_eos, rx507_fail
-    sub $I11, rx507_pos, rx507_off
-    substr $S10, rx507_tgt, $I11, 1
-    ne $S10, "-", rx507_fail
-    add rx507_pos, 1
-  alt509_end:
-  # rx pass
-    rx507_cur."!cursor_pass"(rx507_pos, "")
-    rx507_cur."!cursor_debug"("PASS  ", "", " at pos=", rx507_pos)
-    .return (rx507_cur)
-  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"()
-    rx507_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx507_cur)
-    .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "cclass_elem"  :subid("143_1277356887.58177") :method :outer("11_1277356887.58177")
-.annotate 'line', 3
-    .const 'Sub' $P524 = "145_1277356887.58177" 
-    capture_lex $P524
-    .local string rx513_tgt
-    .local int rx513_pos
-    .local int rx513_off
-    .local int rx513_eos
-    .local int rx513_rep
-    .local pmc rx513_cur
-    (rx513_cur, rx513_pos, rx513_tgt) = self."!cursor_start"()
-    rx513_cur."!cursor_debug"("START ", "cclass_elem")
-    rx513_cur."!cursor_caparray"("charspec")
-    .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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan516_done
-    goto rxscan516_scan
-  rxscan516_loop:
-    ($P10) = rx513_cur."from"()
-    inc $P10
-    set rx513_pos, $P10
-    ge rx513_pos, rx513_eos, rxscan516_done
-  rxscan516_scan:
-    set_addr $I10, rxscan516_loop
-    rx513_cur."!mark_push"(0, rx513_pos, $I10)
-  rxscan516_done:
+    .const 'Sub' $P505 = "145_1280467470.54449" 
+    capture_lex $P505
+    .local string rx494_tgt
+    .local int rx494_pos
+    .local int rx494_off
+    .local int rx494_eos
+    .local int rx494_rep
+    .local pmc rx494_cur
+    (rx494_cur, rx494_pos, rx494_tgt, $I10) = self."!cursor_start"()
+    rx494_cur."!cursor_caparray"("charspec")
+    .lex unicode:"$\x{a2}", rx494_cur
+    .local pmc match
+    .lex "$/", match
+    length rx494_eos, rx494_tgt
+    gt rx494_pos, rx494_eos, rx494_done
+    set rx494_off, 0
+    lt rx494_pos, 2, rx494_start
+    sub rx494_off, rx494_pos, 1
+    substr rx494_tgt, rx494_tgt, rx494_off
+  rx494_start:
+    eq $I10, 1, rx494_restart
+    rx494_cur."!cursor_debug"("START ", "cclass_elem")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan497_done
+    goto rxscan497_scan
+  rxscan497_loop:
+    ($P10) = rx494_cur."from"()
+    inc $P10
+    set rx494_pos, $P10
+    ge rx494_pos, rx494_eos, rxscan497_done
+  rxscan497_scan:
+    set_addr $I10, rxscan497_loop
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
+  rxscan497_done:
 .annotate 'line', 163
   # rx subcapture "sign"
-    set_addr $I10, rxcap_518_fail
-    rx513_cur."!mark_push"(0, rx513_pos, $I10)
-  alt517_0:
-    set_addr $I10, alt517_1
-    rx513_cur."!mark_push"(0, rx513_pos, $I10)
+    set_addr $I10, rxcap_499_fail
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
+  alt498_0:
+    set_addr $I10, alt498_1
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
   # rx literal  "+"
-    add $I11, rx513_pos, 1
-    gt $I11, rx513_eos, rx513_fail
-    sub $I11, rx513_pos, rx513_off
-    substr $S10, rx513_tgt, $I11, 1
-    ne $S10, "+", rx513_fail
-    add rx513_pos, 1
-    goto alt517_end
-  alt517_1:
-    set_addr $I10, alt517_2
-    rx513_cur."!mark_push"(0, rx513_pos, $I10)
+    add $I11, rx494_pos, 1
+    gt $I11, rx494_eos, rx494_fail
+    sub $I11, rx494_pos, rx494_off
+    substr $S10, rx494_tgt, $I11, 1
+    ne $S10, "+", rx494_fail
+    add rx494_pos, 1
+    goto alt498_end
+  alt498_1:
+    set_addr $I10, alt498_2
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
   # rx literal  "-"
-    add $I11, rx513_pos, 1
-    gt $I11, rx513_eos, rx513_fail
-    sub $I11, rx513_pos, rx513_off
-    substr $S10, rx513_tgt, $I11, 1
-    ne $S10, "-", rx513_fail
-    add rx513_pos, 1
-    goto alt517_end
-  alt517_2:
-  alt517_end:
-    set_addr $I10, rxcap_518_fail
-    ($I12, $I11) = rx513_cur."!mark_peek"($I10)
-    rx513_cur."!cursor_pos"($I11)
-    ($P10) = rx513_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx513_pos, "")
-    rx513_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx494_pos, 1
+    gt $I11, rx494_eos, rx494_fail
+    sub $I11, rx494_pos, rx494_off
+    substr $S10, rx494_tgt, $I11, 1
+    ne $S10, "-", rx494_fail
+    add rx494_pos, 1
+    goto alt498_end
+  alt498_2:
+  alt498_end:
+    set_addr $I10, rxcap_499_fail
+    ($I12, $I11) = rx494_cur."!mark_peek"($I10)
+    rx494_cur."!cursor_pos"($I11)
+    ($P10) = rx494_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx494_pos, "")
+    rx494_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sign")
-    goto rxcap_518_done
-  rxcap_518_fail:
-    goto rx513_fail
-  rxcap_518_done:
+    goto rxcap_499_done
+  rxcap_499_fail:
+    goto rx494_fail
+  rxcap_499_done:
 .annotate 'line', 164
-  # rx rxquantr519 ** 0..1
-    set_addr $I520, rxquantr519_done
-    rx513_cur."!mark_push"(0, rx513_pos, $I520)
-  rxquantr519_loop:
+  # rx rxquantr500 ** 0..1
+    set_addr $I10, rxquantr500_done
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
+  rxquantr500_loop:
   # rx subrule "normspace" subtype=method negate=
-    rx513_cur."!cursor_pos"(rx513_pos)
-    $P10 = rx513_cur."normspace"()
-    unless $P10, rx513_fail
-    rx513_pos = $P10."pos"()
-    (rx513_rep) = rx513_cur."!mark_commit"($I520)
-  rxquantr519_done:
-  alt521_0:
+    rx494_cur."!cursor_pos"(rx494_pos)
+    $P10 = rx494_cur."normspace"()
+    unless $P10, rx494_fail
+    goto rxsubrule501_pass
+  rxsubrule501_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx494_fail
+  rxsubrule501_pass:
+    set_addr $I10, rxsubrule501_back
+    rx494_cur."!mark_push"(0, rx494_pos, $I10, $P10)
+    rx494_pos = $P10."pos"()
+    set_addr $I10, rxquantr500_done
+    (rx494_rep) = rx494_cur."!mark_commit"($I10)
+  rxquantr500_done:
+  alt502_0:
 .annotate 'line', 165
-    set_addr $I10, alt521_1
-    rx513_cur."!mark_push"(0, rx513_pos, $I10)
+    set_addr $I10, alt502_1
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
 .annotate 'line', 166
   # rx literal  "["
-    add $I11, rx513_pos, 1
-    gt $I11, rx513_eos, rx513_fail
-    sub $I11, rx513_pos, rx513_off
-    substr $S10, rx513_tgt, $I11, 1
-    ne $S10, "[", rx513_fail
-    add rx513_pos, 1
+    add $I11, rx494_pos, 1
+    gt $I11, rx494_eos, rx494_fail
+    sub $I11, rx494_pos, rx494_off
+    substr $S10, rx494_tgt, $I11, 1
+    ne $S10, "[", rx494_fail
+    add rx494_pos, 1
 .annotate 'line', 169
-  # rx rxquantr522 ** 0..*
-    set_addr $I543, rxquantr522_done
-    rx513_cur."!mark_push"(0, rx513_pos, $I543)
-  rxquantr522_loop:
+  # rx rxquantr503 ** 0..*
+    set_addr $I10, rxquantr503_done
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
+  rxquantr503_loop:
 .annotate 'line', 166
-  # rx subrule $P524 subtype=capture negate=
-    rx513_cur."!cursor_pos"(rx513_pos)
-    .const 'Sub' $P524 = "145_1277356887.58177" 
-    capture_lex $P524
-    $P10 = rx513_cur.$P524()
-    unless $P10, rx513_fail
-    rx513_cur."!mark_push"(0, -1, 0, $P10)
+  # rx subrule $P505 subtype=capture negate=
+    rx494_cur."!cursor_pos"(rx494_pos)
+    .const 'Sub' $P505 = "145_1280467470.54449" 
+    capture_lex $P505
+    $P10 = rx494_cur.$P505()
+    unless $P10, rx494_fail
+    goto rxsubrule523_pass
+  rxsubrule523_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx494_fail
+  rxsubrule523_pass:
+    set_addr $I10, rxsubrule523_back
+    rx494_cur."!mark_push"(0, rx494_pos, $I10, $P10)
     $P10."!cursor_names"("charspec")
-    rx513_pos = $P10."pos"()
+    rx494_pos = $P10."pos"()
 .annotate 'line', 169
-    (rx513_rep) = rx513_cur."!mark_commit"($I543)
-    rx513_cur."!mark_push"(rx513_rep, rx513_pos, $I543)
-    goto rxquantr522_loop
-  rxquantr522_done:
+    set_addr $I10, rxquantr503_done
+    (rx494_rep) = rx494_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr503_done
+    rx494_cur."!mark_push"(rx494_rep, rx494_pos, $I10)
+    goto rxquantr503_loop
+  rxquantr503_done:
 .annotate 'line', 170
   # rx charclass_q s r 0..-1
-    sub $I10, rx513_pos, rx513_off
-    find_not_cclass $I11, 32, rx513_tgt, $I10, rx513_eos
-    add rx513_pos, rx513_off, $I11
+    sub $I10, rx494_pos, rx494_off
+    find_not_cclass $I11, 32, rx494_tgt, $I10, rx494_eos
+    add rx494_pos, rx494_off, $I11
   # rx literal  "]"
-    add $I11, rx513_pos, 1
-    gt $I11, rx513_eos, rx513_fail
-    sub $I11, rx513_pos, rx513_off
-    substr $S10, rx513_tgt, $I11, 1
-    ne $S10, "]", rx513_fail
-    add rx513_pos, 1
+    add $I11, rx494_pos, 1
+    gt $I11, rx494_eos, rx494_fail
+    sub $I11, rx494_pos, rx494_off
+    substr $S10, rx494_tgt, $I11, 1
+    ne $S10, "]", rx494_fail
+    add rx494_pos, 1
 .annotate 'line', 166
-    goto alt521_end
-  alt521_1:
+    goto alt502_end
+  alt502_1:
 .annotate 'line', 171
   # rx subcapture "name"
-    set_addr $I10, rxcap_544_fail
-    rx513_cur."!mark_push"(0, rx513_pos, $I10)
+    set_addr $I10, rxcap_524_fail
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
   # rx charclass_q w r 1..-1
-    sub $I10, rx513_pos, rx513_off
-    find_not_cclass $I11, 8192, rx513_tgt, $I10, rx513_eos
+    sub $I10, rx494_pos, rx494_off
+    find_not_cclass $I11, 8192, rx494_tgt, $I10, rx494_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx513_fail
-    add rx513_pos, rx513_off, $I11
-    set_addr $I10, rxcap_544_fail
-    ($I12, $I11) = rx513_cur."!mark_peek"($I10)
-    rx513_cur."!cursor_pos"($I11)
-    ($P10) = rx513_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx513_pos, "")
-    rx513_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx494_fail
+    add rx494_pos, rx494_off, $I11
+    set_addr $I10, rxcap_524_fail
+    ($I12, $I11) = rx494_cur."!mark_peek"($I10)
+    rx494_cur."!cursor_pos"($I11)
+    ($P10) = rx494_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx494_pos, "")
+    rx494_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    goto rxcap_544_done
-  rxcap_544_fail:
-    goto rx513_fail
-  rxcap_544_done:
-  alt521_end:
+    goto rxcap_524_done
+  rxcap_524_fail:
+    goto rx494_fail
+  rxcap_524_done:
+  alt502_end:
 .annotate 'line', 173
-  # rx rxquantr545 ** 0..1
-    set_addr $I546, rxquantr545_done
-    rx513_cur."!mark_push"(0, rx513_pos, $I546)
-  rxquantr545_loop:
+  # rx rxquantr525 ** 0..1
+    set_addr $I10, rxquantr525_done
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
+  rxquantr525_loop:
   # rx subrule "normspace" subtype=method negate=
-    rx513_cur."!cursor_pos"(rx513_pos)
-    $P10 = rx513_cur."normspace"()
-    unless $P10, rx513_fail
-    rx513_pos = $P10."pos"()
-    (rx513_rep) = rx513_cur."!mark_commit"($I546)
-  rxquantr545_done:
+    rx494_cur."!cursor_pos"(rx494_pos)
+    $P10 = rx494_cur."normspace"()
+    unless $P10, rx494_fail
+    goto rxsubrule526_pass
+  rxsubrule526_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx494_fail
+  rxsubrule526_pass:
+    set_addr $I10, rxsubrule526_back
+    rx494_cur."!mark_push"(0, rx494_pos, $I10, $P10)
+    rx494_pos = $P10."pos"()
+    set_addr $I10, rxquantr525_done
+    (rx494_rep) = rx494_cur."!mark_commit"($I10)
+  rxquantr525_done:
 .annotate 'line', 162
   # rx pass
-    rx513_cur."!cursor_pass"(rx513_pos, "cclass_elem")
-    rx513_cur."!cursor_debug"("PASS  ", "cclass_elem", " at pos=", rx513_pos)
-    .return (rx513_cur)
-  rx513_fail:
+    rx494_cur."!cursor_pass"(rx494_pos, "cclass_elem")
+    rx494_cur."!cursor_debug"("PASS  ", "cclass_elem", " at pos=", rx494_pos)
+    .return (rx494_cur)
+  rx494_restart:
 .annotate 'line', 3
-    (rx513_rep, rx513_pos, $I10, $P10) = rx513_cur."!mark_fail"(0)
-    lt rx513_pos, -1, rx513_done
-    eq rx513_pos, -1, rx513_fail
+    rx494_cur."!cursor_debug"("NEXT ", "cclass_elem")
+  rx494_fail:
+    (rx494_rep, rx494_pos, $I10, $P10) = rx494_cur."!mark_fail"(0)
+    lt rx494_pos, -1, rx494_done
+    eq rx494_pos, -1, rx494_fail
     jump $I10
-  rx513_done:
-    rx513_cur."!cursor_fail"()
-    rx513_cur."!cursor_debug"("FAIL  ", "cclass_elem")
-    .return (rx513_cur)
+  rx494_done:
+    rx494_cur."!cursor_fail"()
+    rx494_cur."!cursor_debug"("FAIL  ", "cclass_elem")
+    .return (rx494_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__cclass_elem"  :subid("144_1277356887.58177") :method
+.sub "!PREFIX__cclass_elem"  :subid("144_1280467470.54449") :method
 .annotate 'line', 3
-    new $P515, "ResizablePMCArray"
-    push $P515, ""
-    push $P515, "-"
-    push $P515, "+"
-    .return ($P515)
+    new $P496, "ResizablePMCArray"
+    push $P496, ""
+    push $P496, "-"
+    push $P496, "+"
+    .return ($P496)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block523"  :anon :subid("145_1277356887.58177") :method :outer("143_1277356887.58177")
+.sub "_block504"  :anon :subid("145_1280467470.54449") :method :outer("143_1280467470.54449")
 .annotate 'line', 166
-    .const 'Sub' $P539 = "148_1277356887.58177" 
-    capture_lex $P539
-    .const 'Sub' $P534 = "147_1277356887.58177" 
-    capture_lex $P534
-    .const 'Sub' $P530 = "146_1277356887.58177" 
-    capture_lex $P530
-    .local string rx525_tgt
-    .local int rx525_pos
-    .local int rx525_off
-    .local int rx525_eos
-    .local int rx525_rep
-    .local pmc rx525_cur
-    (rx525_cur, rx525_pos, rx525_tgt) = self."!cursor_start"()
-    rx525_cur."!cursor_debug"("START ", "")
-    rx525_cur."!cursor_caparray"("1")
-    .lex unicode:"$\x{a2}", rx525_cur
-    .local pmc match
-    .lex "$/", match
-    length rx525_eos, rx525_tgt
-    gt rx525_pos, rx525_eos, rx525_done
-    set rx525_off, 0
-    lt rx525_pos, 2, rx525_start
-    sub rx525_off, rx525_pos, 1
-    substr rx525_tgt, rx525_tgt, rx525_off
-  rx525_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan526_done
-    goto rxscan526_scan
-  rxscan526_loop:
-    ($P10) = rx525_cur."from"()
-    inc $P10
-    set rx525_pos, $P10
-    ge rx525_pos, rx525_eos, rxscan526_done
-  rxscan526_scan:
-    set_addr $I10, rxscan526_loop
-    rx525_cur."!mark_push"(0, rx525_pos, $I10)
-  rxscan526_done:
-  alt527_0:
-    set_addr $I10, alt527_1
-    rx525_cur."!mark_push"(0, rx525_pos, $I10)
+    .const 'Sub' $P520 = "148_1280467470.54449" 
+    capture_lex $P520
+    .const 'Sub' $P515 = "147_1280467470.54449" 
+    capture_lex $P515
+    .const 'Sub' $P511 = "146_1280467470.54449" 
+    capture_lex $P511
+    .local string rx506_tgt
+    .local int rx506_pos
+    .local int rx506_off
+    .local int rx506_eos
+    .local int rx506_rep
+    .local pmc rx506_cur
+    (rx506_cur, rx506_pos, rx506_tgt, $I10) = self."!cursor_start"()
+    rx506_cur."!cursor_caparray"("1")
+    .lex unicode:"$\x{a2}", rx506_cur
+    .local pmc match
+    .lex "$/", match
+    length rx506_eos, rx506_tgt
+    gt rx506_pos, rx506_eos, rx506_done
+    set rx506_off, 0
+    lt rx506_pos, 2, rx506_start
+    sub rx506_off, rx506_pos, 1
+    substr rx506_tgt, rx506_tgt, rx506_off
+  rx506_start:
+    eq $I10, 1, rx506_restart
+    rx506_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan507_done
+    goto rxscan507_scan
+  rxscan507_loop:
+    ($P10) = rx506_cur."from"()
+    inc $P10
+    set rx506_pos, $P10
+    ge rx506_pos, rx506_eos, rxscan507_done
+  rxscan507_scan:
+    set_addr $I10, rxscan507_loop
+    rx506_cur."!mark_push"(0, rx506_pos, $I10)
+  rxscan507_done:
+  alt508_0:
+    set_addr $I10, alt508_1
+    rx506_cur."!mark_push"(0, rx506_pos, $I10)
 .annotate 'line', 167
   # rx charclass_q s r 0..-1
-    sub $I10, rx525_pos, rx525_off
-    find_not_cclass $I11, 32, rx525_tgt, $I10, rx525_eos
-    add rx525_pos, rx525_off, $I11
+    sub $I10, rx506_pos, rx506_off
+    find_not_cclass $I11, 32, rx506_tgt, $I10, rx506_eos
+    add rx506_pos, rx506_off, $I11
   # rx literal  "-"
-    add $I11, rx525_pos, 1
-    gt $I11, rx525_eos, rx525_fail
-    sub $I11, rx525_pos, rx525_off
-    substr $S10, rx525_tgt, $I11, 1
-    ne $S10, "-", rx525_fail
-    add rx525_pos, 1
+    add $I11, rx506_pos, 1
+    gt $I11, rx506_eos, rx506_fail
+    sub $I11, rx506_pos, rx506_off
+    substr $S10, rx506_tgt, $I11, 1
+    ne $S10, "-", rx506_fail
+    add rx506_pos, 1
   # rx subrule "obs" subtype=method negate=
-    rx525_cur."!cursor_pos"(rx525_pos)
-    $P10 = rx525_cur."obs"("hyphen in enumerated character class", "..")
-    unless $P10, rx525_fail
-    rx525_pos = $P10."pos"()
-    goto alt527_end
-  alt527_1:
+    rx506_cur."!cursor_pos"(rx506_pos)
+    $P10 = rx506_cur."obs"("- as character range", "..")
+    unless $P10, rx506_fail
+    rx506_pos = $P10."pos"()
+    goto alt508_end
+  alt508_1:
 .annotate 'line', 168
   # rx charclass_q s r 0..-1
-    sub $I10, rx525_pos, rx525_off
-    find_not_cclass $I11, 32, rx525_tgt, $I10, rx525_eos
-    add rx525_pos, rx525_off, $I11
-  alt528_0:
-    set_addr $I10, alt528_1
-    rx525_cur."!mark_push"(0, rx525_pos, $I10)
+    sub $I10, rx506_pos, rx506_off
+    find_not_cclass $I11, 32, rx506_tgt, $I10, rx506_eos
+    add rx506_pos, rx506_off, $I11
+  alt509_0:
+    set_addr $I10, alt509_1
+    rx506_cur."!mark_push"(0, rx506_pos, $I10)
   # rx literal  "\\"
-    add $I11, rx525_pos, 1
-    gt $I11, rx525_eos, rx525_fail
-    sub $I11, rx525_pos, rx525_off
-    substr $S10, rx525_tgt, $I11, 1
-    ne $S10, "\\", rx525_fail
-    add rx525_pos, 1
-  # rx subrule $P530 subtype=capture negate=
-    rx525_cur."!cursor_pos"(rx525_pos)
-    .const 'Sub' $P530 = "146_1277356887.58177" 
-    capture_lex $P530
-    $P10 = rx525_cur.$P530()
-    unless $P10, rx525_fail
-    rx525_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx506_pos, 1
+    gt $I11, rx506_eos, rx506_fail
+    sub $I11, rx506_pos, rx506_off
+    substr $S10, rx506_tgt, $I11, 1
+    ne $S10, "\\", rx506_fail
+    add rx506_pos, 1
+  # rx subrule $P511 subtype=capture negate=
+    rx506_cur."!cursor_pos"(rx506_pos)
+    .const 'Sub' $P511 = "146_1280467470.54449" 
+    capture_lex $P511
+    $P10 = rx506_cur.$P511()
+    unless $P10, rx506_fail
+    rx506_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"(0)
-    rx525_pos = $P10."pos"()
-    goto alt528_end
-  alt528_1:
-  # rx subrule $P534 subtype=capture negate=
-    rx525_cur."!cursor_pos"(rx525_pos)
-    .const 'Sub' $P534 = "147_1277356887.58177" 
-    capture_lex $P534
-    $P10 = rx525_cur.$P534()
-    unless $P10, rx525_fail
-    rx525_cur."!mark_push"(0, -1, 0, $P10)
+    rx506_pos = $P10."pos"()
+    goto alt509_end
+  alt509_1:
+  # rx subrule $P515 subtype=capture negate=
+    rx506_cur."!cursor_pos"(rx506_pos)
+    .const 'Sub' $P515 = "147_1280467470.54449" 
+    capture_lex $P515
+    $P10 = rx506_cur.$P515()
+    unless $P10, rx506_fail
+    rx506_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"(0)
-    rx525_pos = $P10."pos"()
-  alt528_end:
-  # rx rxquantr537 ** 0..1
-    set_addr $I542, rxquantr537_done
-    rx525_cur."!mark_push"(0, rx525_pos, $I542)
-  rxquantr537_loop:
+    rx506_pos = $P10."pos"()
+  alt509_end:
+  # rx rxquantr518 ** 0..1
+    set_addr $I10, rxquantr518_done
+    rx506_cur."!mark_push"(0, rx506_pos, $I10)
+  rxquantr518_loop:
   # rx charclass_q s r 0..-1
-    sub $I10, rx525_pos, rx525_off
-    find_not_cclass $I11, 32, rx525_tgt, $I10, rx525_eos
-    add rx525_pos, rx525_off, $I11
+    sub $I10, rx506_pos, rx506_off
+    find_not_cclass $I11, 32, rx506_tgt, $I10, rx506_eos
+    add rx506_pos, rx506_off, $I11
   # rx literal  ".."
-    add $I11, rx525_pos, 2
-    gt $I11, rx525_eos, rx525_fail
-    sub $I11, rx525_pos, rx525_off
-    substr $S10, rx525_tgt, $I11, 2
-    ne $S10, "..", rx525_fail
-    add rx525_pos, 2
+    add $I11, rx506_pos, 2
+    gt $I11, rx506_eos, rx506_fail
+    sub $I11, rx506_pos, rx506_off
+    substr $S10, rx506_tgt, $I11, 2
+    ne $S10, "..", rx506_fail
+    add rx506_pos, 2
   # rx charclass_q s r 0..-1
-    sub $I10, rx525_pos, rx525_off
-    find_not_cclass $I11, 32, rx525_tgt, $I10, rx525_eos
-    add rx525_pos, rx525_off, $I11
-  # rx subrule $P539 subtype=capture negate=
-    rx525_cur."!cursor_pos"(rx525_pos)
-    .const 'Sub' $P539 = "148_1277356887.58177" 
-    capture_lex $P539
-    $P10 = rx525_cur.$P539()
-    unless $P10, rx525_fail
-    rx525_cur."!mark_push"(0, -1, 0, $P10)
+    sub $I10, rx506_pos, rx506_off
+    find_not_cclass $I11, 32, rx506_tgt, $I10, rx506_eos
+    add rx506_pos, rx506_off, $I11
+  # rx subrule $P520 subtype=capture negate=
+    rx506_cur."!cursor_pos"(rx506_pos)
+    .const 'Sub' $P520 = "148_1280467470.54449" 
+    capture_lex $P520
+    $P10 = rx506_cur.$P520()
+    unless $P10, rx506_fail
+    rx506_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("1")
-    rx525_pos = $P10."pos"()
-    (rx525_rep) = rx525_cur."!mark_commit"($I542)
-  rxquantr537_done:
-  alt527_end:
+    rx506_pos = $P10."pos"()
+    set_addr $I10, rxquantr518_done
+    (rx506_rep) = rx506_cur."!mark_commit"($I10)
+  rxquantr518_done:
+  alt508_end:
 .annotate 'line', 166
   # rx pass
-    rx525_cur."!cursor_pass"(rx525_pos, "")
-    rx525_cur."!cursor_debug"("PASS  ", "", " at pos=", rx525_pos)
-    .return (rx525_cur)
-  rx525_fail:
-    (rx525_rep, rx525_pos, $I10, $P10) = rx525_cur."!mark_fail"(0)
-    lt rx525_pos, -1, rx525_done
-    eq rx525_pos, -1, rx525_fail
+    rx506_cur."!cursor_pass"(rx506_pos, "")
+    rx506_cur."!cursor_debug"("PASS  ", "", " at pos=", rx506_pos)
+    .return (rx506_cur)
+  rx506_restart:
+    rx506_cur."!cursor_debug"("NEXT ", "")
+  rx506_fail:
+    (rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0)
+    lt rx506_pos, -1, rx506_done
+    eq rx506_pos, -1, rx506_fail
     jump $I10
-  rx525_done:
-    rx525_cur."!cursor_fail"()
-    rx525_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx525_cur)
+  rx506_done:
+    rx506_cur."!cursor_fail"()
+    rx506_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx506_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block529"  :anon :subid("146_1277356887.58177") :method :outer("145_1277356887.58177")
+.sub "_block510"  :anon :subid("146_1280467470.54449") :method :outer("145_1280467470.54449")
 .annotate 'line', 168
-    .local string rx531_tgt
-    .local int rx531_pos
-    .local int rx531_off
-    .local int rx531_eos
-    .local int rx531_rep
-    .local pmc rx531_cur
-    (rx531_cur, rx531_pos, rx531_tgt) = self."!cursor_start"()
-    rx531_cur."!cursor_debug"("START ", "")
-    .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:
-    $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:
+    .local string rx512_tgt
+    .local int rx512_pos
+    .local int rx512_off
+    .local int rx512_eos
+    .local int rx512_rep
+    .local pmc rx512_cur
+    (rx512_cur, rx512_pos, rx512_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx512_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan513_done
+    goto rxscan513_scan
+  rxscan513_loop:
+    ($P10) = rx512_cur."from"()
+    inc $P10
+    set rx512_pos, $P10
+    ge rx512_pos, rx512_eos, rxscan513_done
+  rxscan513_scan:
+    set_addr $I10, rxscan513_loop
+    rx512_cur."!mark_push"(0, rx512_pos, $I10)
+  rxscan513_done:
   # rx charclass .
-    ge rx531_pos, rx531_eos, rx531_fail
-    inc rx531_pos
+    ge rx512_pos, rx512_eos, rx512_fail
+    inc rx512_pos
   # rx pass
-    rx531_cur."!cursor_pass"(rx531_pos, "")
-    rx531_cur."!cursor_debug"("PASS  ", "", " at pos=", rx531_pos)
-    .return (rx531_cur)
-  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
+    rx512_cur."!cursor_pass"(rx512_pos, "")
+    rx512_cur."!cursor_debug"("PASS  ", "", " at pos=", rx512_pos)
+    .return (rx512_cur)
+  rx512_restart:
+    rx512_cur."!cursor_debug"("NEXT ", "")
+  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
-  rx531_done:
-    rx531_cur."!cursor_fail"()
-    rx531_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx531_cur)
+  rx512_done:
+    rx512_cur."!cursor_fail"()
+    rx512_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx512_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block533"  :anon :subid("147_1277356887.58177") :method :outer("145_1277356887.58177")
+.sub "_block514"  :anon :subid("147_1280467470.54449") :method :outer("145_1280467470.54449")
 .annotate 'line', 168
-    .local string rx535_tgt
-    .local int rx535_pos
-    .local int rx535_off
-    .local int rx535_eos
-    .local int rx535_rep
-    .local pmc rx535_cur
-    (rx535_cur, rx535_pos, rx535_tgt) = self."!cursor_start"()
-    rx535_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx535_cur
-    .local pmc match
-    .lex "$/", match
-    length rx535_eos, rx535_tgt
-    gt rx535_pos, rx535_eos, rx535_done
-    set rx535_off, 0
-    lt rx535_pos, 2, rx535_start
-    sub rx535_off, rx535_pos, 1
-    substr rx535_tgt, rx535_tgt, rx535_off
-  rx535_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan536_done
-    goto rxscan536_scan
-  rxscan536_loop:
-    ($P10) = rx535_cur."from"()
-    inc $P10
-    set rx535_pos, $P10
-    ge rx535_pos, rx535_eos, rxscan536_done
-  rxscan536_scan:
-    set_addr $I10, rxscan536_loop
-    rx535_cur."!mark_push"(0, rx535_pos, $I10)
-  rxscan536_done:
+    .local string rx516_tgt
+    .local int rx516_pos
+    .local int rx516_off
+    .local int rx516_eos
+    .local int rx516_rep
+    .local pmc rx516_cur
+    (rx516_cur, rx516_pos, rx516_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx516_cur
+    .local pmc match
+    .lex "$/", match
+    length rx516_eos, rx516_tgt
+    gt rx516_pos, rx516_eos, rx516_done
+    set rx516_off, 0
+    lt rx516_pos, 2, rx516_start
+    sub rx516_off, rx516_pos, 1
+    substr rx516_tgt, rx516_tgt, rx516_off
+  rx516_start:
+    eq $I10, 1, rx516_restart
+    rx516_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan517_done
+    goto rxscan517_scan
+  rxscan517_loop:
+    ($P10) = rx516_cur."from"()
+    inc $P10
+    set rx516_pos, $P10
+    ge rx516_pos, rx516_eos, rxscan517_done
+  rxscan517_scan:
+    set_addr $I10, rxscan517_loop
+    rx516_cur."!mark_push"(0, rx516_pos, $I10)
+  rxscan517_done:
   # rx enumcharlist negate=1 
-    ge rx535_pos, rx535_eos, rx535_fail
-    sub $I10, rx535_pos, rx535_off
-    substr $S10, rx535_tgt, $I10, 1
+    ge rx516_pos, rx516_eos, rx516_fail
+    sub $I10, rx516_pos, rx516_off
+    substr $S10, rx516_tgt, $I10, 1
     index $I11, "]\\", $S10
-    ge $I11, 0, rx535_fail
-    inc rx535_pos
+    ge $I11, 0, rx516_fail
+    inc rx516_pos
   # rx pass
-    rx535_cur."!cursor_pass"(rx535_pos, "")
-    rx535_cur."!cursor_debug"("PASS  ", "", " at pos=", rx535_pos)
-    .return (rx535_cur)
-  rx535_fail:
-    (rx535_rep, rx535_pos, $I10, $P10) = rx535_cur."!mark_fail"(0)
-    lt rx535_pos, -1, rx535_done
-    eq rx535_pos, -1, rx535_fail
+    rx516_cur."!cursor_pass"(rx516_pos, "")
+    rx516_cur."!cursor_debug"("PASS  ", "", " at pos=", rx516_pos)
+    .return (rx516_cur)
+  rx516_restart:
+    rx516_cur."!cursor_debug"("NEXT ", "")
+  rx516_fail:
+    (rx516_rep, rx516_pos, $I10, $P10) = rx516_cur."!mark_fail"(0)
+    lt rx516_pos, -1, rx516_done
+    eq rx516_pos, -1, rx516_fail
     jump $I10
-  rx535_done:
-    rx535_cur."!cursor_fail"()
-    rx535_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx535_cur)
+  rx516_done:
+    rx516_cur."!cursor_fail"()
+    rx516_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx516_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block538"  :anon :subid("148_1277356887.58177") :method :outer("145_1277356887.58177")
+.sub "_block519"  :anon :subid("148_1280467470.54449") :method :outer("145_1280467470.54449")
 .annotate 'line', 168
-    .local string rx540_tgt
-    .local int rx540_pos
-    .local int rx540_off
-    .local int rx540_eos
-    .local int rx540_rep
-    .local pmc rx540_cur
-    (rx540_cur, rx540_pos, rx540_tgt) = self."!cursor_start"()
-    rx540_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx540_cur
-    .local pmc match
-    .lex "$/", match
-    length rx540_eos, rx540_tgt
-    gt rx540_pos, rx540_eos, rx540_done
-    set rx540_off, 0
-    lt rx540_pos, 2, rx540_start
-    sub rx540_off, rx540_pos, 1
-    substr rx540_tgt, rx540_tgt, rx540_off
-  rx540_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan541_done
-    goto rxscan541_scan
-  rxscan541_loop:
-    ($P10) = rx540_cur."from"()
-    inc $P10
-    set rx540_pos, $P10
-    ge rx540_pos, rx540_eos, rxscan541_done
-  rxscan541_scan:
-    set_addr $I10, rxscan541_loop
-    rx540_cur."!mark_push"(0, rx540_pos, $I10)
-  rxscan541_done:
+    .local string rx521_tgt
+    .local int rx521_pos
+    .local int rx521_off
+    .local int rx521_eos
+    .local int rx521_rep
+    .local pmc rx521_cur
+    (rx521_cur, rx521_pos, rx521_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx521_cur
+    .local pmc match
+    .lex "$/", match
+    length rx521_eos, rx521_tgt
+    gt rx521_pos, rx521_eos, rx521_done
+    set rx521_off, 0
+    lt rx521_pos, 2, rx521_start
+    sub rx521_off, rx521_pos, 1
+    substr rx521_tgt, rx521_tgt, rx521_off
+  rx521_start:
+    eq $I10, 1, rx521_restart
+    rx521_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan522_done
+    goto rxscan522_scan
+  rxscan522_loop:
+    ($P10) = rx521_cur."from"()
+    inc $P10
+    set rx521_pos, $P10
+    ge rx521_pos, rx521_eos, rxscan522_done
+  rxscan522_scan:
+    set_addr $I10, rxscan522_loop
+    rx521_cur."!mark_push"(0, rx521_pos, $I10)
+  rxscan522_done:
   # rx charclass .
-    ge rx540_pos, rx540_eos, rx540_fail
-    inc rx540_pos
+    ge rx521_pos, rx521_eos, rx521_fail
+    inc rx521_pos
   # rx pass
-    rx540_cur."!cursor_pass"(rx540_pos, "")
-    rx540_cur."!cursor_debug"("PASS  ", "", " at pos=", rx540_pos)
-    .return (rx540_cur)
-  rx540_fail:
-    (rx540_rep, rx540_pos, $I10, $P10) = rx540_cur."!mark_fail"(0)
-    lt rx540_pos, -1, rx540_done
-    eq rx540_pos, -1, rx540_fail
-    jump $I10
-  rx540_done:
-    rx540_cur."!cursor_fail"()
-    rx540_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx540_cur)
+    rx521_cur."!cursor_pass"(rx521_pos, "")
+    rx521_cur."!cursor_debug"("PASS  ", "", " at pos=", rx521_pos)
+    .return (rx521_cur)
+  rx521_restart:
+    rx521_cur."!cursor_debug"("NEXT ", "")
+  rx521_fail:
+    (rx521_rep, rx521_pos, $I10, $P10) = rx521_cur."!mark_fail"(0)
+    lt rx521_pos, -1, rx521_done
+    eq rx521_pos, -1, rx521_fail
+    jump $I10
+  rx521_done:
+    rx521_cur."!cursor_fail"()
+    rx521_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx521_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_internal"  :subid("149_1277356887.58177") :method :outer("11_1277356887.58177")
-.annotate 'line', 3
-    .const 'Sub' $P556 = "151_1277356887.58177" 
-    capture_lex $P556
-    .local string rx548_tgt
-    .local int rx548_pos
-    .local int rx548_off
-    .local int rx548_eos
-    .local int rx548_rep
-    .local pmc rx548_cur
-    (rx548_cur, rx548_pos, rx548_tgt) = self."!cursor_start"()
-    rx548_cur."!cursor_debug"("START ", "mod_internal")
-    rx548_cur."!cursor_caparray"("n")
-    .lex unicode:"$\x{a2}", rx548_cur
-    .local pmc match
-    .lex "$/", match
-    length rx548_eos, rx548_tgt
-    gt rx548_pos, rx548_eos, rx548_done
-    set rx548_off, 0
-    lt rx548_pos, 2, rx548_start
-    sub rx548_off, rx548_pos, 1
-    substr rx548_tgt, rx548_tgt, rx548_off
-  rx548_start:
+.sub "mod_internal"  :subid("149_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+    .const 'Sub' $P536 = "151_1280467470.54449" 
+    capture_lex $P536
+    .local string rx528_tgt
+    .local int rx528_pos
+    .local int rx528_off
+    .local int rx528_eos
+    .local int rx528_rep
+    .local pmc rx528_cur
+    (rx528_cur, rx528_pos, rx528_tgt, $I10) = self."!cursor_start"()
+    rx528_cur."!cursor_caparray"("n")
+    .lex unicode:"$\x{a2}", rx528_cur
+    .local pmc match
+    .lex "$/", match
+    length rx528_eos, rx528_tgt
+    gt rx528_pos, rx528_eos, rx528_done
+    set rx528_off, 0
+    lt rx528_pos, 2, rx528_start
+    sub rx528_off, rx528_pos, 1
+    substr rx528_tgt, rx528_tgt, rx528_off
+  rx528_start:
+    eq $I10, 1, rx528_restart
+    rx528_cur."!cursor_debug"("START ", "mod_internal")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan552_done
-    goto rxscan552_scan
-  rxscan552_loop:
-    ($P10) = rx548_cur."from"()
+    ne $I10, -1, rxscan532_done
+    goto rxscan532_scan
+  rxscan532_loop:
+    ($P10) = rx528_cur."from"()
     inc $P10
-    set rx548_pos, $P10
-    ge rx548_pos, rx548_eos, rxscan552_done
-  rxscan552_scan:
-    set_addr $I10, rxscan552_loop
-    rx548_cur."!mark_push"(0, rx548_pos, $I10)
-  rxscan552_done:
-  alt553_0:
+    set rx528_pos, $P10
+    ge rx528_pos, rx528_eos, rxscan532_done
+  rxscan532_scan:
+    set_addr $I10, rxscan532_loop
+    rx528_cur."!mark_push"(0, rx528_pos, $I10)
+  rxscan532_done:
+  alt533_0:
 .annotate 'line', 177
-    set_addr $I10, alt553_1
-    rx548_cur."!mark_push"(0, rx548_pos, $I10)
+    set_addr $I10, alt533_1
+    rx528_cur."!mark_push"(0, rx528_pos, $I10)
 .annotate 'line', 178
   # rx literal  ":"
-    add $I11, rx548_pos, 1
-    gt $I11, rx548_eos, rx548_fail
-    sub $I11, rx548_pos, rx548_off
-    substr $S10, rx548_tgt, $I11, 1
-    ne $S10, ":", rx548_fail
-    add rx548_pos, 1
-  # rx rxquantr554 ** 1..1
-    set_addr $I560, rxquantr554_done
-    rx548_cur."!mark_push"(0, -1, $I560)
-  rxquantr554_loop:
-  # rx subrule $P556 subtype=capture negate=
-    rx548_cur."!cursor_pos"(rx548_pos)
-    .const 'Sub' $P556 = "151_1277356887.58177" 
-    capture_lex $P556
-    $P10 = rx548_cur.$P556()
-    unless $P10, rx548_fail
-    rx548_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx528_pos, 1
+    gt $I11, rx528_eos, rx528_fail
+    sub $I11, rx528_pos, rx528_off
+    substr $S10, rx528_tgt, $I11, 1
+    ne $S10, ":", rx528_fail
+    add rx528_pos, 1
+  # rx rxquantr534 ** 1..1
+    set_addr $I10, rxquantr534_done
+    rx528_cur."!mark_push"(0, -1, $I10)
+  rxquantr534_loop:
+  # rx subrule $P536 subtype=capture negate=
+    rx528_cur."!cursor_pos"(rx528_pos)
+    .const 'Sub' $P536 = "151_1280467470.54449" 
+    capture_lex $P536
+    $P10 = rx528_cur.$P536()
+    unless $P10, rx528_fail
+    goto rxsubrule540_pass
+  rxsubrule540_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx528_fail
+  rxsubrule540_pass:
+    set_addr $I10, rxsubrule540_back
+    rx528_cur."!mark_push"(0, rx528_pos, $I10, $P10)
     $P10."!cursor_names"("n")
-    rx548_pos = $P10."pos"()
-    (rx548_rep) = rx548_cur."!mark_commit"($I560)
-  rxquantr554_done:
+    rx528_pos = $P10."pos"()
+    set_addr $I10, rxquantr534_done
+    (rx528_rep) = rx528_cur."!mark_commit"($I10)
+  rxquantr534_done:
   # rx subrule "mod_ident" subtype=capture negate=
-    rx548_cur."!cursor_pos"(rx548_pos)
-    $P10 = rx548_cur."mod_ident"()
-    unless $P10, rx548_fail
-    rx548_cur."!mark_push"(0, -1, 0, $P10)
+    rx528_cur."!cursor_pos"(rx528_pos)
+    $P10 = rx528_cur."mod_ident"()
+    unless $P10, rx528_fail
+    rx528_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("mod_ident")
-    rx548_pos = $P10."pos"()
+    rx528_pos = $P10."pos"()
   # rxanchor rwb
-    le rx548_pos, 0, rx548_fail
-    sub $I10, rx548_pos, rx548_off
-    is_cclass $I11, 8192, rx548_tgt, $I10
-    if $I11, rx548_fail
+    le rx528_pos, 0, rx528_fail
+    sub $I10, rx528_pos, rx528_off
+    is_cclass $I11, 8192, rx528_tgt, $I10
+    if $I11, rx528_fail
     dec $I10
-    is_cclass $I11, 8192, rx548_tgt, $I10
-    unless $I11, rx548_fail
-    goto alt553_end
-  alt553_1:
+    is_cclass $I11, 8192, rx528_tgt, $I10
+    unless $I11, rx528_fail
+    goto alt533_end
+  alt533_1:
 .annotate 'line', 179
   # rx literal  ":"
-    add $I11, rx548_pos, 1
-    gt $I11, rx548_eos, rx548_fail
-    sub $I11, rx548_pos, rx548_off
-    substr $S10, rx548_tgt, $I11, 1
-    ne $S10, ":", rx548_fail
-    add rx548_pos, 1
+    add $I11, rx528_pos, 1
+    gt $I11, rx528_eos, rx528_fail
+    sub $I11, rx528_pos, rx528_off
+    substr $S10, rx528_tgt, $I11, 1
+    ne $S10, ":", rx528_fail
+    add rx528_pos, 1
   # rx subrule "mod_ident" subtype=capture negate=
-    rx548_cur."!cursor_pos"(rx548_pos)
-    $P10 = rx548_cur."mod_ident"()
-    unless $P10, rx548_fail
-    rx548_cur."!mark_push"(0, -1, 0, $P10)
+    rx528_cur."!cursor_pos"(rx528_pos)
+    $P10 = rx528_cur."mod_ident"()
+    unless $P10, rx528_fail
+    rx528_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("mod_ident")
-    rx548_pos = $P10."pos"()
-  # rx rxquantr561 ** 0..1
-    set_addr $I563, rxquantr561_done
-    rx548_cur."!mark_push"(0, rx548_pos, $I563)
-  rxquantr561_loop:
+    rx528_pos = $P10."pos"()
+  # rx rxquantr541 ** 0..1
+    set_addr $I10, rxquantr541_done
+    rx528_cur."!mark_push"(0, rx528_pos, $I10)
+  rxquantr541_loop:
   # rx literal  "("
-    add $I11, rx548_pos, 1
-    gt $I11, rx548_eos, rx548_fail
-    sub $I11, rx548_pos, rx548_off
-    substr $S10, rx548_tgt, $I11, 1
-    ne $S10, "(", rx548_fail
-    add rx548_pos, 1
+    add $I11, rx528_pos, 1
+    gt $I11, rx528_eos, rx528_fail
+    sub $I11, rx528_pos, rx528_off
+    substr $S10, rx528_tgt, $I11, 1
+    ne $S10, "(", rx528_fail
+    add rx528_pos, 1
   # rx subcapture "n"
-    set_addr $I10, rxcap_562_fail
-    rx548_cur."!mark_push"(0, rx548_pos, $I10)
+    set_addr $I10, rxcap_542_fail
+    rx528_cur."!mark_push"(0, rx528_pos, $I10)
   # rx charclass_q d r 1..-1
-    sub $I10, rx548_pos, rx548_off
-    find_not_cclass $I11, 8, rx548_tgt, $I10, rx548_eos
+    sub $I10, rx528_pos, rx528_off
+    find_not_cclass $I11, 8, rx528_tgt, $I10, rx528_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx548_fail
-    add rx548_pos, rx548_off, $I11
-    set_addr $I10, rxcap_562_fail
-    ($I12, $I11) = rx548_cur."!mark_peek"($I10)
-    rx548_cur."!cursor_pos"($I11)
-    ($P10) = rx548_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx548_pos, "")
-    rx548_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx528_fail
+    add rx528_pos, rx528_off, $I11
+    set_addr $I10, rxcap_542_fail
+    ($I12, $I11) = rx528_cur."!mark_peek"($I10)
+    rx528_cur."!cursor_pos"($I11)
+    ($P10) = rx528_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx528_pos, "")
+    rx528_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("n")
-    goto rxcap_562_done
-  rxcap_562_fail:
-    goto rx548_fail
-  rxcap_562_done:
+    goto rxcap_542_done
+  rxcap_542_fail:
+    goto rx528_fail
+  rxcap_542_done:
   # rx literal  ")"
-    add $I11, rx548_pos, 1
-    gt $I11, rx548_eos, rx548_fail
-    sub $I11, rx548_pos, rx548_off
-    substr $S10, rx548_tgt, $I11, 1
-    ne $S10, ")", rx548_fail
-    add rx548_pos, 1
-    (rx548_rep) = rx548_cur."!mark_commit"($I563)
-  rxquantr561_done:
-  alt553_end:
+    add $I11, rx528_pos, 1
+    gt $I11, rx528_eos, rx528_fail
+    sub $I11, rx528_pos, rx528_off
+    substr $S10, rx528_tgt, $I11, 1
+    ne $S10, ")", rx528_fail
+    add rx528_pos, 1
+    set_addr $I10, rxquantr541_done
+    (rx528_rep) = rx528_cur."!mark_commit"($I10)
+  rxquantr541_done:
+  alt533_end:
 .annotate 'line', 176
   # rx pass
-    rx548_cur."!cursor_pass"(rx548_pos, "mod_internal")
-    rx548_cur."!cursor_debug"("PASS  ", "mod_internal", " at pos=", rx548_pos)
-    .return (rx548_cur)
-  rx548_fail:
+    rx528_cur."!cursor_pass"(rx528_pos, "mod_internal")
+    rx528_cur."!cursor_debug"("PASS  ", "mod_internal", " at pos=", rx528_pos)
+    .return (rx528_cur)
+  rx528_restart:
 .annotate 'line', 3
-    (rx548_rep, rx548_pos, $I10, $P10) = rx548_cur."!mark_fail"(0)
-    lt rx548_pos, -1, rx548_done
-    eq rx548_pos, -1, rx548_fail
+    rx528_cur."!cursor_debug"("NEXT ", "mod_internal")
+  rx528_fail:
+    (rx528_rep, rx528_pos, $I10, $P10) = rx528_cur."!mark_fail"(0)
+    lt rx528_pos, -1, rx528_done
+    eq rx528_pos, -1, rx528_fail
     jump $I10
-  rx548_done:
-    rx548_cur."!cursor_fail"()
-    rx548_cur."!cursor_debug"("FAIL  ", "mod_internal")
-    .return (rx548_cur)
+  rx528_done:
+    rx528_cur."!cursor_fail"()
+    rx528_cur."!cursor_debug"("FAIL  ", "mod_internal")
+    .return (rx528_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_internal"  :subid("150_1277356887.58177") :method
+.sub "!PREFIX__mod_internal"  :subid("150_1280467470.54449") :method
 .annotate 'line', 3
-    $P550 = self."!PREFIX__!subrule"("mod_ident", ":")
-    new $P551, "ResizablePMCArray"
-    push $P551, $P550
-    push $P551, ":"
-    .return ($P551)
+    $P530 = self."!PREFIX__!subrule"("mod_ident", ":")
+    new $P531, "ResizablePMCArray"
+    push $P531, $P530
+    push $P531, ":"
+    .return ($P531)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block555"  :anon :subid("151_1277356887.58177") :method :outer("149_1277356887.58177")
+.sub "_block535"  :anon :subid("151_1280467470.54449") :method :outer("149_1280467470.54449")
 .annotate 'line', 178
-    .local string rx557_tgt
-    .local int rx557_pos
-    .local int rx557_off
-    .local int rx557_eos
-    .local int rx557_rep
-    .local pmc rx557_cur
-    (rx557_cur, rx557_pos, rx557_tgt) = self."!cursor_start"()
-    rx557_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx557_cur
-    .local pmc match
-    .lex "$/", match
-    length rx557_eos, rx557_tgt
-    gt rx557_pos, rx557_eos, rx557_done
-    set rx557_off, 0
-    lt rx557_pos, 2, rx557_start
-    sub rx557_off, rx557_pos, 1
-    substr rx557_tgt, rx557_tgt, rx557_off
-  rx557_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan558_done
-    goto rxscan558_scan
-  rxscan558_loop:
-    ($P10) = rx557_cur."from"()
-    inc $P10
-    set rx557_pos, $P10
-    ge rx557_pos, rx557_eos, rxscan558_done
-  rxscan558_scan:
-    set_addr $I10, rxscan558_loop
-    rx557_cur."!mark_push"(0, rx557_pos, $I10)
-  rxscan558_done:
-  alt559_0:
-    set_addr $I10, alt559_1
-    rx557_cur."!mark_push"(0, rx557_pos, $I10)
+    .local string rx537_tgt
+    .local int rx537_pos
+    .local int rx537_off
+    .local int rx537_eos
+    .local int rx537_rep
+    .local pmc rx537_cur
+    (rx537_cur, rx537_pos, rx537_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx537_cur."!cursor_debug"("START ", "")
+    $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:
+  alt539_0:
+    set_addr $I10, alt539_1
+    rx537_cur."!mark_push"(0, rx537_pos, $I10)
   # rx literal  "!"
-    add $I11, rx557_pos, 1
-    gt $I11, rx557_eos, rx557_fail
-    sub $I11, rx557_pos, rx557_off
-    substr $S10, rx557_tgt, $I11, 1
-    ne $S10, "!", rx557_fail
-    add rx557_pos, 1
-    goto alt559_end
-  alt559_1:
+    add $I11, rx537_pos, 1
+    gt $I11, rx537_eos, rx537_fail
+    sub $I11, rx537_pos, rx537_off
+    substr $S10, rx537_tgt, $I11, 1
+    ne $S10, "!", rx537_fail
+    add rx537_pos, 1
+    goto alt539_end
+  alt539_1:
   # rx charclass_q d r 1..-1
-    sub $I10, rx557_pos, rx557_off
-    find_not_cclass $I11, 8, rx557_tgt, $I10, rx557_eos
+    sub $I10, rx537_pos, rx537_off
+    find_not_cclass $I11, 8, rx537_tgt, $I10, rx537_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx557_fail
-    add rx557_pos, rx557_off, $I11
-  alt559_end:
+    lt $I11, $I12, rx537_fail
+    add rx537_pos, rx537_off, $I11
+  alt539_end:
   # rx pass
-    rx557_cur."!cursor_pass"(rx557_pos, "")
-    rx557_cur."!cursor_debug"("PASS  ", "", " at pos=", rx557_pos)
-    .return (rx557_cur)
-  rx557_fail:
-    (rx557_rep, rx557_pos, $I10, $P10) = rx557_cur."!mark_fail"(0)
-    lt rx557_pos, -1, rx557_done
-    eq rx557_pos, -1, rx557_fail
+    rx537_cur."!cursor_pass"(rx537_pos, "")
+    rx537_cur."!cursor_debug"("PASS  ", "", " at pos=", rx537_pos)
+    .return (rx537_cur)
+  rx537_restart:
+    rx537_cur."!cursor_debug"("NEXT ", "")
+  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
-  rx557_done:
-    rx557_cur."!cursor_fail"()
-    rx557_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx557_cur)
+  rx537_done:
+    rx537_cur."!cursor_fail"()
+    rx537_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx537_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident"  :subid("152_1277356887.58177") :method
+.sub "mod_ident"  :subid("152_1280467470.54449") :method
 .annotate 'line', 183
-    $P565 = self."!protoregex"("mod_ident")
-    .return ($P565)
+    $P544 = self."!protoregex"("mod_ident")
+    .return ($P544)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident"  :subid("153_1277356887.58177") :method
+.sub "!PREFIX__mod_ident"  :subid("153_1280467470.54449") :method
 .annotate 'line', 183
-    $P567 = self."!PREFIX__!protoregex"("mod_ident")
-    .return ($P567)
+    $P546 = self."!PREFIX__!protoregex"("mod_ident")
+    .return ($P546)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ignorecase>"  :subid("154_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "mod_ident:sym<ignorecase>"  :subid("154_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx569_tgt
-    .local int rx569_pos
-    .local int rx569_off
-    .local int rx569_eos
-    .local int rx569_rep
-    .local pmc rx569_cur
-    (rx569_cur, rx569_pos, rx569_tgt) = self."!cursor_start"()
-    rx569_cur."!cursor_debug"("START ", "mod_ident:sym<ignorecase>")
-    .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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan572_done
-    goto rxscan572_scan
-  rxscan572_loop:
-    ($P10) = rx569_cur."from"()
-    inc $P10
-    set rx569_pos, $P10
-    ge rx569_pos, rx569_eos, rxscan572_done
-  rxscan572_scan:
-    set_addr $I10, rxscan572_loop
-    rx569_cur."!mark_push"(0, rx569_pos, $I10)
-  rxscan572_done:
+    .local string rx548_tgt
+    .local int rx548_pos
+    .local int rx548_off
+    .local int rx548_eos
+    .local int rx548_rep
+    .local pmc rx548_cur
+    (rx548_cur, rx548_pos, rx548_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx548_cur
+    .local pmc match
+    .lex "$/", match
+    length rx548_eos, rx548_tgt
+    gt rx548_pos, rx548_eos, rx548_done
+    set rx548_off, 0
+    lt rx548_pos, 2, rx548_start
+    sub rx548_off, rx548_pos, 1
+    substr rx548_tgt, rx548_tgt, rx548_off
+  rx548_start:
+    eq $I10, 1, rx548_restart
+    rx548_cur."!cursor_debug"("START ", "mod_ident:sym<ignorecase>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan551_done
+    goto rxscan551_scan
+  rxscan551_loop:
+    ($P10) = rx548_cur."from"()
+    inc $P10
+    set rx548_pos, $P10
+    ge rx548_pos, rx548_eos, rxscan551_done
+  rxscan551_scan:
+    set_addr $I10, rxscan551_loop
+    rx548_cur."!mark_push"(0, rx548_pos, $I10)
+  rxscan551_done:
 .annotate 'line', 184
   # rx subcapture "sym"
-    set_addr $I10, rxcap_573_fail
-    rx569_cur."!mark_push"(0, rx569_pos, $I10)
+    set_addr $I10, rxcap_552_fail
+    rx548_cur."!mark_push"(0, rx548_pos, $I10)
   # rx literal  "i"
-    add $I11, rx569_pos, 1
-    gt $I11, rx569_eos, rx569_fail
-    sub $I11, rx569_pos, rx569_off
-    substr $S10, rx569_tgt, $I11, 1
-    ne $S10, "i", rx569_fail
-    add rx569_pos, 1
-    set_addr $I10, rxcap_573_fail
-    ($I12, $I11) = rx569_cur."!mark_peek"($I10)
-    rx569_cur."!cursor_pos"($I11)
-    ($P10) = rx569_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx569_pos, "")
-    rx569_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx548_pos, 1
+    gt $I11, rx548_eos, rx548_fail
+    sub $I11, rx548_pos, rx548_off
+    substr $S10, rx548_tgt, $I11, 1
+    ne $S10, "i", rx548_fail
+    add rx548_pos, 1
+    set_addr $I10, rxcap_552_fail
+    ($I12, $I11) = rx548_cur."!mark_peek"($I10)
+    rx548_cur."!cursor_pos"($I11)
+    ($P10) = rx548_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx548_pos, "")
+    rx548_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_573_done
-  rxcap_573_fail:
-    goto rx569_fail
-  rxcap_573_done:
-  # rx rxquantr574 ** 0..1
-    set_addr $I575, rxquantr574_done
-    rx569_cur."!mark_push"(0, rx569_pos, $I575)
-  rxquantr574_loop:
+    goto rxcap_552_done
+  rxcap_552_fail:
+    goto rx548_fail
+  rxcap_552_done:
+  # rx rxquantr553 ** 0..1
+    set_addr $I10, rxquantr553_done
+    rx548_cur."!mark_push"(0, rx548_pos, $I10)
+  rxquantr553_loop:
   # rx literal  "gnorecase"
-    add $I11, rx569_pos, 9
-    gt $I11, rx569_eos, rx569_fail
-    sub $I11, rx569_pos, rx569_off
-    substr $S10, rx569_tgt, $I11, 9
-    ne $S10, "gnorecase", rx569_fail
-    add rx569_pos, 9
-    (rx569_rep) = rx569_cur."!mark_commit"($I575)
-  rxquantr574_done:
+    add $I11, rx548_pos, 9
+    gt $I11, rx548_eos, rx548_fail
+    sub $I11, rx548_pos, rx548_off
+    substr $S10, rx548_tgt, $I11, 9
+    ne $S10, "gnorecase", rx548_fail
+    add rx548_pos, 9
+    set_addr $I10, rxquantr553_done
+    (rx548_rep) = rx548_cur."!mark_commit"($I10)
+  rxquantr553_done:
   # rx pass
-    rx569_cur."!cursor_pass"(rx569_pos, "mod_ident:sym<ignorecase>")
-    rx569_cur."!cursor_debug"("PASS  ", "mod_ident:sym<ignorecase>", " at pos=", rx569_pos)
-    .return (rx569_cur)
-  rx569_fail:
+    rx548_cur."!cursor_pass"(rx548_pos, "mod_ident:sym<ignorecase>")
+    rx548_cur."!cursor_debug"("PASS  ", "mod_ident:sym<ignorecase>", " at pos=", rx548_pos)
+    .return (rx548_cur)
+  rx548_restart:
 .annotate 'line', 3
-    (rx569_rep, rx569_pos, $I10, $P10) = rx569_cur."!mark_fail"(0)
-    lt rx569_pos, -1, rx569_done
-    eq rx569_pos, -1, rx569_fail
+    rx548_cur."!cursor_debug"("NEXT ", "mod_ident:sym<ignorecase>")
+  rx548_fail:
+    (rx548_rep, rx548_pos, $I10, $P10) = rx548_cur."!mark_fail"(0)
+    lt rx548_pos, -1, rx548_done
+    eq rx548_pos, -1, rx548_fail
     jump $I10
-  rx569_done:
-    rx569_cur."!cursor_fail"()
-    rx569_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<ignorecase>")
-    .return (rx569_cur)
+  rx548_done:
+    rx548_cur."!cursor_fail"()
+    rx548_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<ignorecase>")
+    .return (rx548_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("155_1277356887.58177") :method
+.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("155_1280467470.54449") :method
 .annotate 'line', 3
-    new $P571, "ResizablePMCArray"
-    push $P571, "i"
-    .return ($P571)
+    new $P550, "ResizablePMCArray"
+    push $P550, "i"
+    .return ($P550)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ratchet>"  :subid("156_1277356887.58177") :method :outer("11_1277356887.58177")
+.sub "mod_ident:sym<ratchet>"  :subid("156_1280467470.54449") :method :outer("11_1280467470.54449")
 .annotate 'line', 3
-    .local string rx577_tgt
-    .local int rx577_pos
-    .local int rx577_off
-    .local int rx577_eos
-    .local int rx577_rep
-    .local pmc rx577_cur
-    (rx577_cur, rx577_pos, rx577_tgt) = self."!cursor_start"()
-    rx577_cur."!cursor_debug"("START ", "mod_ident:sym<ratchet>")
-    .lex unicode:"$\x{a2}", rx577_cur
-    .local pmc match
-    .lex "$/", match
-    length rx577_eos, rx577_tgt
-    gt rx577_pos, rx577_eos, rx577_done
-    set rx577_off, 0
-    lt rx577_pos, 2, rx577_start
-    sub rx577_off, rx577_pos, 1
-    substr rx577_tgt, rx577_tgt, rx577_off
-  rx577_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan580_done
-    goto rxscan580_scan
-  rxscan580_loop:
-    ($P10) = rx577_cur."from"()
-    inc $P10
-    set rx577_pos, $P10
-    ge rx577_pos, rx577_eos, rxscan580_done
-  rxscan580_scan:
-    set_addr $I10, rxscan580_loop
-    rx577_cur."!mark_push"(0, rx577_pos, $I10)
-  rxscan580_done:
+    .local string rx555_tgt
+    .local int rx555_pos
+    .local int rx555_off
+    .local int rx555_eos
+    .local int rx555_rep
+    .local pmc rx555_cur
+    (rx555_cur, rx555_pos, rx555_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx555_cur
+    .local pmc match
+    .lex "$/", match
+    length rx555_eos, rx555_tgt
+    gt rx555_pos, rx555_eos, rx555_done
+    set rx555_off, 0
+    lt rx555_pos, 2, rx555_start
+    sub rx555_off, rx555_pos, 1
+    substr rx555_tgt, rx555_tgt, rx555_off
+  rx555_start:
+    eq $I10, 1, rx555_restart
+    rx555_cur."!cursor_debug"("START ", "mod_ident:sym<ratchet>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan558_done
+    goto rxscan558_scan
+  rxscan558_loop:
+    ($P10) = rx555_cur."from"()
+    inc $P10
+    set rx555_pos, $P10
+    ge rx555_pos, rx555_eos, rxscan558_done
+  rxscan558_scan:
+    set_addr $I10, rxscan558_loop
+    rx555_cur."!mark_push"(0, rx555_pos, $I10)
+  rxscan558_done:
 .annotate 'line', 185
   # rx subcapture "sym"
-    set_addr $I10, rxcap_581_fail
-    rx577_cur."!mark_push"(0, rx577_pos, $I10)
+    set_addr $I10, rxcap_559_fail
+    rx555_cur."!mark_push"(0, rx555_pos, $I10)
   # rx literal  "r"
-    add $I11, rx577_pos, 1
-    gt $I11, rx577_eos, rx577_fail
-    sub $I11, rx577_pos, rx577_off
-    substr $S10, rx577_tgt, $I11, 1
-    ne $S10, "r", rx577_fail
-    add rx577_pos, 1
-    set_addr $I10, rxcap_581_fail
-    ($I12, $I11) = rx577_cur."!mark_peek"($I10)
-    rx577_cur."!cursor_pos"($I11)
-    ($P10) = rx577_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx577_pos, "")
-    rx577_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx555_pos, 1
+    gt $I11, rx555_eos, rx555_fail
+    sub $I11, rx555_pos, rx555_off
+    substr $S10, rx555_tgt, $I11, 1
+    ne $S10, "r", rx555_fail
+    add rx555_pos, 1
+    set_addr $I10, rxcap_559_fail
+    ($I12, $I11) = rx555_cur."!mark_peek"($I10)
+    rx555_cur."!cursor_pos"($I11)
+    ($P10) = rx555_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx555_pos, "")
+    rx555_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_581_done
-  rxcap_581_fail:
-    goto rx577_fail
-  rxcap_581_done:
-  # rx rxquantr582 ** 0..1
-    set_addr $I583, rxquantr582_done
-    rx577_cur."!mark_push"(0, rx577_pos, $I583)
-  rxquantr582_loop:
+    goto rxcap_559_done
+  rxcap_559_fail:
+    goto rx555_fail
+  rxcap_559_done:
+  # rx rxquantr560 ** 0..1
+    set_addr $I10, rxquantr560_done
+    rx555_cur."!mark_push"(0, rx555_pos, $I10)
+  rxquantr560_loop:
   # rx literal  "atchet"
-    add $I11, rx577_pos, 6
-    gt $I11, rx577_eos, rx577_fail
-    sub $I11, rx577_pos, rx577_off
-    substr $S10, rx577_tgt, $I11, 6
-    ne $S10, "atchet", rx577_fail
-    add rx577_pos, 6
-    (rx577_rep) = rx577_cur."!mark_commit"($I583)
-  rxquantr582_done:
-  # rx pass
-    rx577_cur."!cursor_pass"(rx577_pos, "mod_ident:sym<ratchet>")
-    rx577_cur."!cursor_debug"("PASS  ", "mod_ident:sym<ratchet>", " at pos=", rx577_pos)
-    .return (rx577_cur)
-  rx577_fail:
-.annotate 'line', 3
-    (rx577_rep, rx577_pos, $I10, $P10) = rx577_cur."!mark_fail"(0)
-    lt rx577_pos, -1, rx577_done
-    eq rx577_pos, -1, rx577_fail
-    jump $I10
-  rx577_done:
-    rx577_cur."!cursor_fail"()
-    rx577_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<ratchet>")
-    .return (rx577_cur)
+    add $I11, rx555_pos, 6
+    gt $I11, rx555_eos, rx555_fail
+    sub $I11, rx555_pos, rx555_off
+    substr $S10, rx555_tgt, $I11, 6
+    ne $S10, "atchet", rx555_fail
+    add rx555_pos, 6
+    set_addr $I10, rxquantr560_done
+    (rx555_rep) = rx555_cur."!mark_commit"($I10)
+  rxquantr560_done:
+  # rx pass
+    rx555_cur."!cursor_pass"(rx555_pos, "mod_ident:sym<ratchet>")
+    rx555_cur."!cursor_debug"("PASS  ", "mod_ident:sym<ratchet>", " at pos=", rx555_pos)
+    .return (rx555_cur)
+  rx555_restart:
+.annotate 'line', 3
+    rx555_cur."!cursor_debug"("NEXT ", "mod_ident:sym<ratchet>")
+  rx555_fail:
+    (rx555_rep, rx555_pos, $I10, $P10) = rx555_cur."!mark_fail"(0)
+    lt rx555_pos, -1, rx555_done
+    eq rx555_pos, -1, rx555_fail
+    jump $I10
+  rx555_done:
+    rx555_cur."!cursor_fail"()
+    rx555_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<ratchet>")
+    .return (rx555_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("157_1277356887.58177") :method
-.annotate 'line', 3
-    new $P579, "ResizablePMCArray"
-    push $P579, "r"
-    .return ($P579)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<sigspace>"  :subid("158_1277356887.58177") :method :outer("11_1277356887.58177")
-.annotate 'line', 3
-    .local string rx585_tgt
-    .local int rx585_pos
-    .local int rx585_off
-    .local int rx585_eos
-    .local int rx585_rep
-    .local pmc rx585_cur
-    (rx585_cur, rx585_pos, rx585_tgt) = self."!cursor_start"()
-    rx585_cur."!cursor_debug"("START ", "mod_ident:sym<sigspace>")
-    .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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan588_done
-    goto rxscan588_scan
-  rxscan588_loop:
-    ($P10) = rx585_cur."from"()
-    inc $P10
-    set rx585_pos, $P10
-    ge rx585_pos, rx585_eos, rxscan588_done
-  rxscan588_scan:
-    set_addr $I10, rxscan588_loop
-    rx585_cur."!mark_push"(0, rx585_pos, $I10)
-  rxscan588_done:
+.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("157_1280467470.54449") :method
+.annotate 'line', 3
+    new $P557, "ResizablePMCArray"
+    push $P557, "r"
+    .return ($P557)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "mod_ident:sym<sigspace>"  :subid("158_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+    .local string rx562_tgt
+    .local int rx562_pos
+    .local int rx562_off
+    .local int rx562_eos
+    .local int rx562_rep
+    .local pmc rx562_cur
+    (rx562_cur, rx562_pos, rx562_tgt, $I10) = self."!cursor_start"()
+    .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
+    rx562_cur."!cursor_debug"("START ", "mod_ident:sym<sigspace>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan565_done
+    goto rxscan565_scan
+  rxscan565_loop:
+    ($P10) = rx562_cur."from"()
+    inc $P10
+    set rx562_pos, $P10
+    ge rx562_pos, rx562_eos, rxscan565_done
+  rxscan565_scan:
+    set_addr $I10, rxscan565_loop
+    rx562_cur."!mark_push"(0, rx562_pos, $I10)
+  rxscan565_done:
 .annotate 'line', 186
   # rx subcapture "sym"
-    set_addr $I10, rxcap_589_fail
-    rx585_cur."!mark_push"(0, rx585_pos, $I10)
+    set_addr $I10, rxcap_566_fail
+    rx562_cur."!mark_push"(0, rx562_pos, $I10)
   # rx literal  "s"
-    add $I11, rx585_pos, 1
-    gt $I11, rx585_eos, rx585_fail
-    sub $I11, rx585_pos, rx585_off
-    substr $S10, rx585_tgt, $I11, 1
-    ne $S10, "s", rx585_fail
-    add rx585_pos, 1
-    set_addr $I10, rxcap_589_fail
-    ($I12, $I11) = rx585_cur."!mark_peek"($I10)
-    rx585_cur."!cursor_pos"($I11)
-    ($P10) = rx585_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx585_pos, "")
-    rx585_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx562_pos, 1
+    gt $I11, rx562_eos, rx562_fail
+    sub $I11, rx562_pos, rx562_off
+    substr $S10, rx562_tgt, $I11, 1
+    ne $S10, "s", rx562_fail
+    add rx562_pos, 1
+    set_addr $I10, rxcap_566_fail
+    ($I12, $I11) = rx562_cur."!mark_peek"($I10)
+    rx562_cur."!cursor_pos"($I11)
+    ($P10) = rx562_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx562_pos, "")
+    rx562_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_589_done
-  rxcap_589_fail:
-    goto rx585_fail
-  rxcap_589_done:
-  # rx rxquantr590 ** 0..1
-    set_addr $I591, rxquantr590_done
-    rx585_cur."!mark_push"(0, rx585_pos, $I591)
-  rxquantr590_loop:
+    goto rxcap_566_done
+  rxcap_566_fail:
+    goto rx562_fail
+  rxcap_566_done:
+  # rx rxquantr567 ** 0..1
+    set_addr $I10, rxquantr567_done
+    rx562_cur."!mark_push"(0, rx562_pos, $I10)
+  rxquantr567_loop:
   # rx literal  "igspace"
-    add $I11, rx585_pos, 7
-    gt $I11, rx585_eos, rx585_fail
-    sub $I11, rx585_pos, rx585_off
-    substr $S10, rx585_tgt, $I11, 7
-    ne $S10, "igspace", rx585_fail
-    add rx585_pos, 7
-    (rx585_rep) = rx585_cur."!mark_commit"($I591)
-  rxquantr590_done:
+    add $I11, rx562_pos, 7
+    gt $I11, rx562_eos, rx562_fail
+    sub $I11, rx562_pos, rx562_off
+    substr $S10, rx562_tgt, $I11, 7
+    ne $S10, "igspace", rx562_fail
+    add rx562_pos, 7
+    set_addr $I10, rxquantr567_done
+    (rx562_rep) = rx562_cur."!mark_commit"($I10)
+  rxquantr567_done:
   # rx pass
-    rx585_cur."!cursor_pass"(rx585_pos, "mod_ident:sym<sigspace>")
-    rx585_cur."!cursor_debug"("PASS  ", "mod_ident:sym<sigspace>", " at pos=", rx585_pos)
-    .return (rx585_cur)
-  rx585_fail:
+    rx562_cur."!cursor_pass"(rx562_pos, "mod_ident:sym<sigspace>")
+    rx562_cur."!cursor_debug"("PASS  ", "mod_ident:sym<sigspace>", " at pos=", rx562_pos)
+    .return (rx562_cur)
+  rx562_restart:
 .annotate 'line', 3
-    (rx585_rep, rx585_pos, $I10, $P10) = rx585_cur."!mark_fail"(0)
-    lt rx585_pos, -1, rx585_done
-    eq rx585_pos, -1, rx585_fail
+    rx562_cur."!cursor_debug"("NEXT ", "mod_ident:sym<sigspace>")
+  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
-  rx585_done:
-    rx585_cur."!cursor_fail"()
-    rx585_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<sigspace>")
-    .return (rx585_cur)
+  rx562_done:
+    rx562_cur."!cursor_fail"()
+    rx562_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<sigspace>")
+    .return (rx562_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("159_1277356887.58177") :method
+.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("159_1280467470.54449") :method
 .annotate 'line', 3
-    new $P587, "ResizablePMCArray"
-    push $P587, "s"
-    .return ($P587)
+    new $P564, "ResizablePMCArray"
+    push $P564, "s"
+    .return ($P564)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block592" :load :anon :subid("160_1277356887.58177")
+.sub "_block568" :load :anon :subid("160_1280467470.54449")
 .annotate 'line', 3
-    .const 'Sub' $P594 = "11_1277356887.58177" 
-    $P595 = $P594()
-    .return ($P595)
+    .const 'Sub' $P570 = "11_1280467470.54449" 
+    $P571 = $P570()
+    .return ($P571)
 .end
 
 
 .namespace []
-.sub "_block597" :load :anon :subid("161_1277356887.58177")
+.sub "_block573" :load :anon :subid("161_1280467470.54449")
 .annotate 'line', 1
-    .const 'Sub' $P599 = "10_1277356887.58177" 
-    $P600 = $P599()
-    .return ($P600)
+    .const 'Sub' $P575 = "10_1280467470.54449" 
+    $P576 = $P575()
+    .return ($P576)
 .end
 
 ### .include 'gen/p6regex-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1277356890.79584")
+.sub "_block11"  :anon :subid("10_1280467473.99327")
 .annotate 'line', 0
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     capture_lex $P14
@@ -7373,157 +7689,155 @@
 .annotate 'line', 4
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     capture_lex $P14
-    $P1599 = $P14()
+    $P1634 = $P14()
 .annotate 'line', 1
-    .return ($P1599)
-    .const 'Sub' $P1601 = "91_1277356890.79584" 
-    .return ($P1601)
+    .return ($P1634)
+    .const 'Sub' $P1636 = "92_1280467473.99327" 
+    .return ($P1636)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post92") :outer("10_1277356890.79584")
+.sub "" :load :init :subid("post93") :outer("10_1280467473.99327")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1277356890.79584" 
+    .const 'Sub' $P12 = "10_1280467473.99327" 
     .local pmc block
     set block, $P12
-    $P1604 = get_root_global ["parrot"], "P6metaclass"
-    $P1604."new_class"("Regex::P6Regex::Actions", "HLL::Actions" :named("parent"))
+    $P1639 = get_root_global ["parrot"], "P6metaclass"
+    $P1639."new_class"("Regex::P6Regex::Actions", "HLL::Actions" :named("parent"))
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block13"  :subid("11_1277356890.79584") :outer("10_1277356890.79584")
+.sub "_block13"  :subid("11_1280467473.99327") :outer("10_1280467473.99327")
 .annotate 'line', 4
-    .const 'Sub' $P1561 = "89_1277356890.79584" 
-    capture_lex $P1561
-    .const 'Sub' $P1492 = "85_1277356890.79584" 
-    capture_lex $P1492
-    .const 'Sub' $P1424 = "83_1277356890.79584" 
-    capture_lex $P1424
-    .const 'Sub' $P1351 = "80_1277356890.79584" 
-    capture_lex $P1351
-    .const 'Sub' $P1337 = "79_1277356890.79584" 
-    capture_lex $P1337
-    .const 'Sub' $P1313 = "78_1277356890.79584" 
-    capture_lex $P1313
-    .const 'Sub' $P1295 = "77_1277356890.79584" 
-    capture_lex $P1295
-    .const 'Sub' $P1281 = "76_1277356890.79584" 
-    capture_lex $P1281
-    .const 'Sub' $P1268 = "75_1277356890.79584" 
-    capture_lex $P1268
-    .const 'Sub' $P1237 = "74_1277356890.79584" 
-    capture_lex $P1237
-    .const 'Sub' $P1206 = "73_1277356890.79584" 
-    capture_lex $P1206
-    .const 'Sub' $P1190 = "72_1277356890.79584" 
-    capture_lex $P1190
-    .const 'Sub' $P1174 = "71_1277356890.79584" 
-    capture_lex $P1174
-    .const 'Sub' $P1158 = "70_1277356890.79584" 
-    capture_lex $P1158
-    .const 'Sub' $P1142 = "69_1277356890.79584" 
-    capture_lex $P1142
-    .const 'Sub' $P1126 = "68_1277356890.79584" 
-    capture_lex $P1126
-    .const 'Sub' $P1110 = "67_1277356890.79584" 
-    capture_lex $P1110
-    .const 'Sub' $P1094 = "66_1277356890.79584" 
-    capture_lex $P1094
-    .const 'Sub' $P1070 = "65_1277356890.79584" 
-    capture_lex $P1070
-    .const 'Sub' $P1055 = "64_1277356890.79584" 
-    capture_lex $P1055
-    .const 'Sub' $P999 = "63_1277356890.79584" 
-    capture_lex $P999
-    .const 'Sub' $P978 = "62_1277356890.79584" 
-    capture_lex $P978
-    .const 'Sub' $P956 = "61_1277356890.79584" 
-    capture_lex $P956
-    .const 'Sub' $P946 = "60_1277356890.79584" 
-    capture_lex $P946
-    .const 'Sub' $P936 = "59_1277356890.79584" 
-    capture_lex $P936
-    .const 'Sub' $P926 = "58_1277356890.79584" 
-    capture_lex $P926
-    .const 'Sub' $P914 = "57_1277356890.79584" 
-    capture_lex $P914
-    .const 'Sub' $P902 = "56_1277356890.79584" 
-    capture_lex $P902
-    .const 'Sub' $P890 = "55_1277356890.79584" 
-    capture_lex $P890
-    .const 'Sub' $P878 = "54_1277356890.79584" 
-    capture_lex $P878
-    .const 'Sub' $P866 = "53_1277356890.79584" 
-    capture_lex $P866
-    .const 'Sub' $P854 = "52_1277356890.79584" 
-    capture_lex $P854
-    .const 'Sub' $P842 = "51_1277356890.79584" 
-    capture_lex $P842
-    .const 'Sub' $P830 = "50_1277356890.79584" 
-    capture_lex $P830
-    .const 'Sub' $P807 = "49_1277356890.79584" 
-    capture_lex $P807
-    .const 'Sub' $P784 = "48_1277356890.79584" 
-    capture_lex $P784
-    .const 'Sub' $P766 = "47_1277356890.79584" 
-    capture_lex $P766
-    .const 'Sub' $P756 = "46_1277356890.79584" 
-    capture_lex $P756
-    .const 'Sub' $P738 = "45_1277356890.79584" 
-    capture_lex $P738
-    .const 'Sub' $P665 = "43_1277356890.79584" 
-    capture_lex $P665
-    .const 'Sub' $P648 = "42_1277356890.79584" 
-    capture_lex $P648
-    .const 'Sub' $P633 = "41_1277356890.79584" 
-    capture_lex $P633
-    .const 'Sub' $P618 = "40_1277356890.79584" 
-    capture_lex $P618
-    .const 'Sub' $P592 = "39_1277356890.79584" 
-    capture_lex $P592
-    .const 'Sub' $P541 = "37_1277356890.79584" 
-    capture_lex $P541
-    .const 'Sub' $P473 = "35_1277356890.79584" 
-    capture_lex $P473
-    .const 'Sub' $P418 = "32_1277356890.79584" 
-    capture_lex $P418
-    .const 'Sub' $P403 = "31_1277356890.79584" 
-    capture_lex $P403
-    .const 'Sub' $P377 = "29_1277356890.79584" 
-    capture_lex $P377
-    .const 'Sub' $P360 = "28_1277356890.79584" 
-    capture_lex $P360
-    .const 'Sub' $P338 = "27_1277356890.79584" 
-    capture_lex $P338
-    .const 'Sub' $P305 = "26_1277356890.79584" 
-    capture_lex $P305
-    .const 'Sub' $P50 = "13_1277356890.79584" 
-    capture_lex $P50
-    .const 'Sub' $P16 = "12_1277356890.79584" 
+    .const 'Sub' $P1611 = "90_1280467473.99327" 
+    capture_lex $P1611
+    .const 'Sub' $P1591 = "89_1280467473.99327" 
+    capture_lex $P1591
+    .const 'Sub' $P1559 = "88_1280467473.99327" 
+    capture_lex $P1559
+    .const 'Sub' $P1490 = "84_1280467473.99327" 
+    capture_lex $P1490
+    .const 'Sub' $P1422 = "82_1280467473.99327" 
+    capture_lex $P1422
+    .const 'Sub' $P1350 = "79_1280467473.99327" 
+    capture_lex $P1350
+    .const 'Sub' $P1336 = "78_1280467473.99327" 
+    capture_lex $P1336
+    .const 'Sub' $P1312 = "77_1280467473.99327" 
+    capture_lex $P1312
+    .const 'Sub' $P1294 = "76_1280467473.99327" 
+    capture_lex $P1294
+    .const 'Sub' $P1280 = "75_1280467473.99327" 
+    capture_lex $P1280
+    .const 'Sub' $P1267 = "74_1280467473.99327" 
+    capture_lex $P1267
+    .const 'Sub' $P1236 = "73_1280467473.99327" 
+    capture_lex $P1236
+    .const 'Sub' $P1205 = "72_1280467473.99327" 
+    capture_lex $P1205
+    .const 'Sub' $P1189 = "71_1280467473.99327" 
+    capture_lex $P1189
+    .const 'Sub' $P1173 = "70_1280467473.99327" 
+    capture_lex $P1173
+    .const 'Sub' $P1157 = "69_1280467473.99327" 
+    capture_lex $P1157
+    .const 'Sub' $P1141 = "68_1280467473.99327" 
+    capture_lex $P1141
+    .const 'Sub' $P1125 = "67_1280467473.99327" 
+    capture_lex $P1125
+    .const 'Sub' $P1109 = "66_1280467473.99327" 
+    capture_lex $P1109
+    .const 'Sub' $P1093 = "65_1280467473.99327" 
+    capture_lex $P1093
+    .const 'Sub' $P1069 = "64_1280467473.99327" 
+    capture_lex $P1069
+    .const 'Sub' $P1054 = "63_1280467473.99327" 
+    capture_lex $P1054
+    .const 'Sub' $P996 = "62_1280467473.99327" 
+    capture_lex $P996
+    .const 'Sub' $P975 = "61_1280467473.99327" 
+    capture_lex $P975
+    .const 'Sub' $P953 = "60_1280467473.99327" 
+    capture_lex $P953
+    .const 'Sub' $P943 = "59_1280467473.99327" 
+    capture_lex $P943
+    .const 'Sub' $P933 = "58_1280467473.99327" 
+    capture_lex $P933
+    .const 'Sub' $P923 = "57_1280467473.99327" 
+    capture_lex $P923
+    .const 'Sub' $P911 = "56_1280467473.99327" 
+    capture_lex $P911
+    .const 'Sub' $P899 = "55_1280467473.99327" 
+    capture_lex $P899
+    .const 'Sub' $P887 = "54_1280467473.99327" 
+    capture_lex $P887
+    .const 'Sub' $P875 = "53_1280467473.99327" 
+    capture_lex $P875
+    .const 'Sub' $P863 = "52_1280467473.99327" 
+    capture_lex $P863
+    .const 'Sub' $P851 = "51_1280467473.99327" 
+    capture_lex $P851
+    .const 'Sub' $P839 = "50_1280467473.99327" 
+    capture_lex $P839
+    .const 'Sub' $P827 = "49_1280467473.99327" 
+    capture_lex $P827
+    .const 'Sub' $P799 = "48_1280467473.99327" 
+    capture_lex $P799
+    .const 'Sub' $P771 = "47_1280467473.99327" 
+    capture_lex $P771
+    .const 'Sub' $P753 = "46_1280467473.99327" 
+    capture_lex $P753
+    .const 'Sub' $P743 = "45_1280467473.99327" 
+    capture_lex $P743
+    .const 'Sub' $P725 = "44_1280467473.99327" 
+    capture_lex $P725
+    .const 'Sub' $P652 = "42_1280467473.99327" 
+    capture_lex $P652
+    .const 'Sub' $P635 = "41_1280467473.99327" 
+    capture_lex $P635
+    .const 'Sub' $P620 = "40_1280467473.99327" 
+    capture_lex $P620
+    .const 'Sub' $P605 = "39_1280467473.99327" 
+    capture_lex $P605
+    .const 'Sub' $P579 = "38_1280467473.99327" 
+    capture_lex $P579
+    .const 'Sub' $P528 = "36_1280467473.99327" 
+    capture_lex $P528
+    .const 'Sub' $P460 = "34_1280467473.99327" 
+    capture_lex $P460
+    .const 'Sub' $P404 = "31_1280467473.99327" 
+    capture_lex $P404
+    .const 'Sub' $P389 = "30_1280467473.99327" 
+    capture_lex $P389
+    .const 'Sub' $P363 = "28_1280467473.99327" 
+    capture_lex $P363
+    .const 'Sub' $P346 = "27_1280467473.99327" 
+    capture_lex $P346
+    .const 'Sub' $P312 = "26_1280467473.99327" 
+    capture_lex $P312
+    .const 'Sub' $P57 = "13_1280467473.99327" 
+    capture_lex $P57
+    .const 'Sub' $P16 = "12_1280467473.99327" 
     capture_lex $P16
     get_global $P15, "@MODIFIERS"
-    unless_null $P15, vivify_94
+    unless_null $P15, vivify_95
     $P15 = root_new ['parrot';'ResizablePMCArray']
     set_global "@MODIFIERS", $P15
-  vivify_94:
-.annotate 'line', 494
-    .const 'Sub' $P16 = "12_1277356890.79584" 
-    newclosure $P49, $P16
-    .lex "buildsub", $P49
-.annotate 'line', 511
-    .const 'Sub' $P50 = "13_1277356890.79584" 
-    newclosure $P304, $P50
-    .lex "capnames", $P304
-.annotate 'line', 577
-    .const 'Sub' $P305 = "26_1277356890.79584" 
-    newclosure $P337, $P305
-    .lex "backmod", $P337
-.annotate 'line', 584
-    .const 'Sub' $P338 = "27_1277356890.79584" 
-    newclosure $P358, $P338
-    .lex "subrule_alias", $P358
+  vivify_95:
+.annotate 'line', 492
+    .const 'Sub' $P16 = "12_1280467473.99327" 
+    newclosure $P56, $P16
+    .lex "buildsub", $P56
+.annotate 'line', 510
+    .const 'Sub' $P57 = "13_1280467473.99327" 
+    newclosure $P311, $P57
+    .lex "capnames", $P311
+.annotate 'line', 576
+    .const 'Sub' $P312 = "26_1280467473.99327" 
+    newclosure $P344, $P312
+    .lex "backmod", $P344
 .annotate 'line', 4
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -7531,4090 +7845,4104 @@
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
-    get_global $P359, "@MODIFIERS"
-.annotate 'line', 487
-    find_lex $P1590, "buildsub"
-    find_lex $P1591, "capnames"
-    find_lex $P1592, "backmod"
-    find_lex $P1593, "subrule_alias"
+    get_global $P345, "@MODIFIERS"
+.annotate 'line', 485
+    find_lex $P1588, "buildsub"
+    find_lex $P1589, "capnames"
+    find_lex $P1590, "backmod"
+.annotate 'line', 589
+    .const 'Sub' $P1611 = "90_1280467473.99327" 
+    newclosure $P1628, $P1611
 .annotate 'line', 4
-    .return ($P1593)
-    .const 'Sub' $P1595 = "90_1277356890.79584" 
-    .return ($P1595)
+    .return ($P1628)
+    .const 'Sub' $P1630 = "91_1280467473.99327" 
+    .return ($P1630)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "" :load :init :subid("post93") :outer("11_1277356890.79584")
+.sub "" :load :init :subid("post94") :outer("11_1280467473.99327")
 .annotate 'line', 4
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     .local pmc block
     set block, $P14
 .annotate 'line', 7
 
-        $P1598 = new ['ResizablePMCArray']
+        $P1633 = new ['ResizablePMCArray']
         $P0 = new ['Hash']
-        push $P1598, $P0
+        push $P1633, $P0
     
-    set_global "@MODIFIERS", $P1598
+    set_global "@MODIFIERS", $P1633
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "buildsub"  :subid("12_1277356890.79584") :outer("11_1277356890.79584")
+.sub "buildsub"  :subid("12_1280467473.99327") :outer("11_1280467473.99327")
     .param pmc param_19
     .param pmc param_20 :optional
     .param int has_param_20 :opt_flag
-.annotate 'line', 494
+.annotate 'line', 492
     new $P18, 'ExceptionHandler'
     set_addr $P18, control_17
     $P18."handle_types"(.CONTROL_RETURN)
     push_eh $P18
     .lex "$rpast", param_19
-    if has_param_20, optparam_95
+    if has_param_20, optparam_96
     get_hll_global $P21, ["PAST"], "Block"
     $P22 = $P21."new"()
     set param_20, $P22
-  optparam_95:
+  optparam_96:
     .lex "$block", param_20
-.annotate 'line', 495
+.annotate 'line', 493
     $P23 = root_new ['parrot';'Hash']
     .lex "%capnames", $P23
     find_lex $P24, "$rpast"
     $P25 = "capnames"($P24, 0)
     store_lex "%capnames", $P25
-.annotate 'line', 496
+.annotate 'line', 494
     new $P26, "Integer"
     assign $P26, 0
     find_lex $P27, "%capnames"
-    unless_null $P27, vivify_96
+    unless_null $P27, vivify_97
     $P27 = root_new ['parrot';'Hash']
     store_lex "%capnames", $P27
-  vivify_96:
+  vivify_97:
     set $P27[""], $P26
-.annotate 'line', 497
+.annotate 'line', 495
     get_hll_global $P28, ["PAST"], "Regex"
-.annotate 'line', 498
+.annotate 'line', 496
     get_hll_global $P29, ["PAST"], "Regex"
     $P30 = $P29."new"("scan" :named("pasttype"))
     find_lex $P31, "$rpast"
-.annotate 'line', 500
+.annotate 'line', 498
     get_hll_global $P32, ["PAST"], "Regex"
-    $P33 = $P32."new"("pass" :named("pasttype"))
-    find_lex $P34, "%capnames"
-    $P35 = $P28."new"($P30, $P31, $P33, "concat" :named("pasttype"), $P34 :named("capnames"))
-.annotate 'line', 497
-    store_lex "$rpast", $P35
+.annotate 'line', 499
+    get_global $P35, "@MODIFIERS"
+    unless_null $P35, vivify_98
+    $P35 = root_new ['parrot';'ResizablePMCArray']
+  vivify_98:
+    set $P36, $P35[0]
+    unless_null $P36, vivify_99
+    $P36 = root_new ['parrot';'Hash']
+  vivify_99:
+    set $P37, $P36["r"]
+    unless_null $P37, vivify_100
+    new $P37, "Undef"
+  vivify_100:
+    if $P37, if_34
+    new $P39, "String"
+    assign $P39, "g"
+    set $P33, $P39
+    goto if_34_end
+  if_34:
+    new $P38, "String"
+    assign $P38, "r"
+    set $P33, $P38
+  if_34_end:
+    $P40 = $P32."new"("pass" :named("pasttype"), $P33 :named("backtrack"))
+.annotate 'line', 498
+    find_lex $P41, "%capnames"
+    $P42 = $P28."new"($P30, $P31, $P40, "concat" :named("pasttype"), $P41 :named("capnames"))
+.annotate 'line', 495
+    store_lex "$rpast", $P42
+.annotate 'line', 503
+    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', 504
-    find_lex $P37, "$block"
-    $P38 = $P37."symbol"(unicode:"$\x{a2}")
-    if $P38, unless_36_end
-    find_lex $P39, "$block"
-    $P39."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
-  unless_36_end:
+    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', 505
-    find_lex $P41, "$block"
-    $P42 = $P41."symbol"("$/")
-    if $P42, unless_40_end
-    find_lex $P43, "$block"
-    $P43."symbol"("$/", "lexical" :named("scope"))
-  unless_40_end:
+    find_lex $P51, "$block"
+    find_lex $P52, "$rpast"
+    $P51."push"($P52)
 .annotate 'line', 506
-    find_lex $P44, "$block"
-    find_lex $P45, "$rpast"
-    $P44."push"($P45)
-.annotate 'line', 507
-    find_lex $P46, "$block"
-    $P46."blocktype"("method")
-    find_lex $P47, "$block"
-.annotate 'line', 494
-    .return ($P47)
+    find_lex $P53, "$block"
+    $P53."blocktype"("method")
+    find_lex $P54, "$block"
+.annotate 'line', 492
+    .return ($P54)
   control_17:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P48, exception, "payload"
-    .return ($P48)
+    getattribute $P55, exception, "payload"
+    .return ($P55)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "capnames"  :subid("13_1277356890.79584") :outer("11_1277356890.79584")
-    .param pmc param_53
-    .param pmc param_54
+.sub "capnames"  :subid("13_1280467473.99327") :outer("11_1280467473.99327")
+    .param pmc param_60
+    .param pmc param_61
+.annotate 'line', 510
+    .const 'Sub' $P286 = "24_1280467473.99327" 
+    capture_lex $P286
+    .const 'Sub' $P223 = "21_1280467473.99327" 
+    capture_lex $P223
+    .const 'Sub' $P181 = "19_1280467473.99327" 
+    capture_lex $P181
+    .const 'Sub' $P139 = "17_1280467473.99327" 
+    capture_lex $P139
+    .const 'Sub' $P72 = "14_1280467473.99327" 
+    capture_lex $P72
+    new $P59, 'ExceptionHandler'
+    set_addr $P59, control_58
+    $P59."handle_types"(.CONTROL_RETURN)
+    push_eh $P59
+    .lex "$ast", param_60
+    .lex "$count", param_61
 .annotate 'line', 511
-    .const 'Sub' $P279 = "24_1277356890.79584" 
-    capture_lex $P279
-    .const 'Sub' $P216 = "21_1277356890.79584" 
-    capture_lex $P216
-    .const 'Sub' $P174 = "19_1277356890.79584" 
-    capture_lex $P174
-    .const 'Sub' $P132 = "17_1277356890.79584" 
-    capture_lex $P132
-    .const 'Sub' $P65 = "14_1277356890.79584" 
-    capture_lex $P65
-    new $P52, 'ExceptionHandler'
-    set_addr $P52, control_51
-    $P52."handle_types"(.CONTROL_RETURN)
-    push_eh $P52
-    .lex "$ast", param_53
-    .lex "$count", param_54
+    $P62 = root_new ['parrot';'Hash']
+    .lex "%capnames", $P62
 .annotate 'line', 512
-    $P55 = root_new ['parrot';'Hash']
-    .lex "%capnames", $P55
-.annotate 'line', 513
-    new $P56, "Undef"
-    .lex "$pasttype", $P56
-.annotate 'line', 511
-    find_lex $P57, "%capnames"
+    new $P63, "Undef"
+    .lex "$pasttype", $P63
+.annotate 'line', 510
+    find_lex $P64, "%capnames"
+.annotate 'line', 512
+    find_lex $P65, "$ast"
+    $P66 = $P65."pasttype"()
+    store_lex "$pasttype", $P66
 .annotate 'line', 513
-    find_lex $P58, "$ast"
-    $P59 = $P58."pasttype"()
-    store_lex "$pasttype", $P59
-.annotate 'line', 514
-    find_lex $P61, "$pasttype"
-    set $S62, $P61
-    iseq $I63, $S62, "alt"
-    if $I63, if_60
+    find_lex $P68, "$pasttype"
+    set $S69, $P68
+    iseq $I70, $S69, "alt"
+    if $I70, if_67
+.annotate 'line', 526
+    find_lex $P130, "$pasttype"
+    set $S131, $P130
+    iseq $I132, $S131, "concat"
+    if $I132, if_129
+.annotate 'line', 535
+    find_lex $P174, "$pasttype"
+    set $S175, $P174
+    iseq $I176, $S175, "subrule"
+    if $I176, if_173
+    new $P172, 'Integer'
+    set $P172, $I176
+    goto if_173_end
+  if_173:
+    find_lex $P177, "$ast"
+    $S178 = $P177."subtype"()
+    iseq $I179, $S178, "capture"
+    new $P172, 'Integer'
+    set $P172, $I179
+  if_173_end:
+    if $P172, if_171
+.annotate 'line', 548
+    find_lex $P219, "$pasttype"
+    set $S220, $P219
+    iseq $I221, $S220, "subcapture"
+    if $I221, if_218
+.annotate 'line', 565
+    find_lex $P282, "$pasttype"
+    set $S283, $P282
+    iseq $I284, $S283, "quant"
+    unless $I284, if_281_end
+    .const 'Sub' $P286 = "24_1280467473.99327" 
+    capture_lex $P286
+    $P286()
+  if_281_end:
+    goto if_218_end
+  if_218:
+.annotate 'line', 548
+    .const 'Sub' $P223 = "21_1280467473.99327" 
+    capture_lex $P223
+    $P223()
+  if_218_end:
+    goto if_171_end
+  if_171:
+.annotate 'line', 535
+    .const 'Sub' $P181 = "19_1280467473.99327" 
+    capture_lex $P181
+    $P181()
+  if_171_end:
+    goto if_129_end
+  if_129:
 .annotate 'line', 527
-    find_lex $P123, "$pasttype"
-    set $S124, $P123
-    iseq $I125, $S124, "concat"
-    if $I125, if_122
-.annotate 'line', 536
-    find_lex $P167, "$pasttype"
-    set $S168, $P167
-    iseq $I169, $S168, "subrule"
-    if $I169, if_166
-    new $P165, 'Integer'
-    set $P165, $I169
-    goto if_166_end
-  if_166:
-    find_lex $P170, "$ast"
-    $S171 = $P170."subtype"()
-    iseq $I172, $S171, "capture"
-    new $P165, 'Integer'
-    set $P165, $I172
-  if_166_end:
-    if $P165, if_164
-.annotate 'line', 549
-    find_lex $P212, "$pasttype"
-    set $S213, $P212
-    iseq $I214, $S213, "subcapture"
-    if $I214, if_211
-.annotate 'line', 566
-    find_lex $P275, "$pasttype"
-    set $S276, $P275
-    iseq $I277, $S276, "quant"
-    unless $I277, if_274_end
-    .const 'Sub' $P279 = "24_1277356890.79584" 
-    capture_lex $P279
-    $P279()
-  if_274_end:
-    goto if_211_end
-  if_211:
-.annotate 'line', 549
-    .const 'Sub' $P216 = "21_1277356890.79584" 
-    capture_lex $P216
-    $P216()
-  if_211_end:
-    goto if_164_end
-  if_164:
-.annotate 'line', 536
-    .const 'Sub' $P174 = "19_1277356890.79584" 
-    capture_lex $P174
-    $P174()
-  if_164_end:
-    goto if_122_end
-  if_122:
-.annotate 'line', 528
-    find_lex $P127, "$ast"
-    $P128 = $P127."list"()
-    defined $I129, $P128
-    unless $I129, for_undef_117
-    iter $P126, $P128
-    new $P162, 'ExceptionHandler'
-    set_addr $P162, loop161_handler
-    $P162."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P162
-  loop161_test:
-    unless $P126, loop161_done
-    shift $P130, $P126
-  loop161_redo:
-    .const 'Sub' $P132 = "17_1277356890.79584" 
-    capture_lex $P132
-    $P132($P130)
-  loop161_next:
-    goto loop161_test
-  loop161_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P163, exception, 'type'
-    eq $P163, .CONTROL_LOOP_NEXT, loop161_next
-    eq $P163, .CONTROL_LOOP_REDO, loop161_redo
-  loop161_done:
+    find_lex $P134, "$ast"
+    $P135 = $P134."list"()
+    defined $I136, $P135
+    unless $I136, for_undef_121
+    iter $P133, $P135
+    new $P169, 'ExceptionHandler'
+    set_addr $P169, loop168_handler
+    $P169."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P169
+  loop168_test:
+    unless $P133, loop168_done
+    shift $P137, $P133
+  loop168_redo:
+    .const 'Sub' $P139 = "17_1280467473.99327" 
+    capture_lex $P139
+    $P139($P137)
+  loop168_next:
+    goto loop168_test
+  loop168_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P170, exception, 'type'
+    eq $P170, .CONTROL_LOOP_NEXT, loop168_next
+    eq $P170, .CONTROL_LOOP_REDO, loop168_redo
+  loop168_done:
     pop_eh 
-  for_undef_117:
-  if_122_end:
-.annotate 'line', 527
-    goto if_60_end
-  if_60:
-.annotate 'line', 514
-    .const 'Sub' $P65 = "14_1277356890.79584" 
-    capture_lex $P65
-    $P65()
-  if_60_end:
-.annotate 'line', 573
-    find_lex $P300, "$count"
-    find_lex $P301, "%capnames"
-    unless_null $P301, vivify_137
-    $P301 = root_new ['parrot';'Hash']
-    store_lex "%capnames", $P301
-  vivify_137:
-    set $P301[""], $P300
-    find_lex $P302, "%capnames"
-.annotate 'line', 511
-    .return ($P302)
-  control_51:
+  for_undef_121:
+  if_129_end:
+.annotate 'line', 526
+    goto if_67_end
+  if_67:
+.annotate 'line', 513
+    .const 'Sub' $P72 = "14_1280467473.99327" 
+    capture_lex $P72
+    $P72()
+  if_67_end:
+.annotate 'line', 572
+    find_lex $P307, "$count"
+    find_lex $P308, "%capnames"
+    unless_null $P308, vivify_141
+    $P308 = root_new ['parrot';'Hash']
+    store_lex "%capnames", $P308
+  vivify_141:
+    set $P308[""], $P307
+    find_lex $P309, "%capnames"
+.annotate 'line', 510
+    .return ($P309)
+  control_58:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P303, exception, "payload"
-    .return ($P303)
+    getattribute $P310, exception, "payload"
+    .return ($P310)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block278"  :anon :subid("24_1277356890.79584") :outer("13_1277356890.79584")
+.sub "_block285"  :anon :subid("24_1280467473.99327") :outer("13_1280467473.99327")
+.annotate 'line', 565
+    .const 'Sub' $P297 = "25_1280467473.99327" 
+    capture_lex $P297
 .annotate 'line', 566
-    .const 'Sub' $P290 = "25_1277356890.79584" 
-    capture_lex $P290
-.annotate 'line', 567
-    $P280 = root_new ['parrot';'Hash']
-    .lex "%astcap", $P280
-    find_lex $P281, "$ast"
-    unless_null $P281, vivify_97
-    $P281 = root_new ['parrot';'ResizablePMCArray']
-  vivify_97:
-    set $P282, $P281[0]
-    unless_null $P282, vivify_98
-    new $P282, "Undef"
-  vivify_98:
-    find_lex $P283, "$count"
-    $P284 = "capnames"($P282, $P283)
-    store_lex "%astcap", $P284
-.annotate 'line', 568
-    find_lex $P286, "%astcap"
-    defined $I287, $P286
-    unless $I287, for_undef_99
-    iter $P285, $P286
-    new $P296, 'ExceptionHandler'
-    set_addr $P296, loop295_handler
-    $P296."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P296
-  loop295_test:
-    unless $P285, loop295_done
-    shift $P288, $P285
-  loop295_redo:
-    .const 'Sub' $P290 = "25_1277356890.79584" 
-    capture_lex $P290
-    $P290($P288)
-  loop295_next:
-    goto loop295_test
-  loop295_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P297, exception, 'type'
-    eq $P297, .CONTROL_LOOP_NEXT, loop295_next
-    eq $P297, .CONTROL_LOOP_REDO, loop295_redo
-  loop295_done:
-    pop_eh 
-  for_undef_99:
-.annotate 'line', 571
-    find_lex $P298, "%astcap"
-    unless_null $P298, vivify_101
-    $P298 = root_new ['parrot';'Hash']
+    $P287 = root_new ['parrot';'Hash']
+    .lex "%astcap", $P287
+    find_lex $P288, "$ast"
+    unless_null $P288, vivify_101
+    $P288 = root_new ['parrot';'ResizablePMCArray']
   vivify_101:
-    set $P299, $P298[""]
-    unless_null $P299, vivify_102
-    new $P299, "Undef"
+    set $P289, $P288[0]
+    unless_null $P289, vivify_102
+    new $P289, "Undef"
   vivify_102:
-    store_lex "$count", $P299
-.annotate 'line', 566
-    .return ($P299)
+    find_lex $P290, "$count"
+    $P291 = "capnames"($P289, $P290)
+    store_lex "%astcap", $P291
+.annotate 'line', 567
+    find_lex $P293, "%astcap"
+    defined $I294, $P293
+    unless $I294, for_undef_103
+    iter $P292, $P293
+    new $P303, 'ExceptionHandler'
+    set_addr $P303, loop302_handler
+    $P303."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P303
+  loop302_test:
+    unless $P292, loop302_done
+    shift $P295, $P292
+  loop302_redo:
+    .const 'Sub' $P297 = "25_1280467473.99327" 
+    capture_lex $P297
+    $P297($P295)
+  loop302_next:
+    goto loop302_test
+  loop302_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P304, exception, 'type'
+    eq $P304, .CONTROL_LOOP_NEXT, loop302_next
+    eq $P304, .CONTROL_LOOP_REDO, loop302_redo
+  loop302_done:
+    pop_eh 
+  for_undef_103:
+.annotate 'line', 570
+    find_lex $P305, "%astcap"
+    unless_null $P305, vivify_105
+    $P305 = root_new ['parrot';'Hash']
+  vivify_105:
+    set $P306, $P305[""]
+    unless_null $P306, vivify_106
+    new $P306, "Undef"
+  vivify_106:
+    store_lex "$count", $P306
+.annotate 'line', 565
+    .return ($P306)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block289"  :anon :subid("25_1277356890.79584") :outer("24_1277356890.79584")
-    .param pmc param_291
-.annotate 'line', 568
-    .lex "$_", param_291
-.annotate 'line', 569
-    new $P292, "Integer"
-    assign $P292, 2
-    find_lex $P293, "$_"
-    find_lex $P294, "%capnames"
-    unless_null $P294, vivify_100
-    $P294 = root_new ['parrot';'Hash']
-    store_lex "%capnames", $P294
-  vivify_100:
-    set $P294[$P293], $P292
+.sub "_block296"  :anon :subid("25_1280467473.99327") :outer("24_1280467473.99327")
+    .param pmc param_298
+.annotate 'line', 567
+    .lex "$_", param_298
 .annotate 'line', 568
-    .return ($P292)
+    new $P299, "Integer"
+    assign $P299, 2
+    find_lex $P300, "$_"
+    find_lex $P301, "%capnames"
+    unless_null $P301, vivify_104
+    $P301 = root_new ['parrot';'Hash']
+    store_lex "%capnames", $P301
+  vivify_104:
+    set $P301[$P300], $P299
+.annotate 'line', 567
+    .return ($P299)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block215"  :anon :subid("21_1277356890.79584") :outer("13_1277356890.79584")
+.sub "_block222"  :anon :subid("21_1280467473.99327") :outer("13_1280467473.99327")
+.annotate 'line', 548
+    .const 'Sub' $P263 = "23_1280467473.99327" 
+    capture_lex $P263
+    .const 'Sub' $P235 = "22_1280467473.99327" 
+    capture_lex $P235
 .annotate 'line', 549
-    .const 'Sub' $P256 = "23_1277356890.79584" 
-    capture_lex $P256
-    .const 'Sub' $P228 = "22_1277356890.79584" 
-    capture_lex $P228
+    new $P224, "Undef"
+    .lex "$name", $P224
 .annotate 'line', 550
-    new $P217, "Undef"
-    .lex "$name", $P217
-.annotate 'line', 551
-    $P218 = root_new ['parrot';'ResizablePMCArray']
-    .lex "@names", $P218
-.annotate 'line', 560
-    $P219 = root_new ['parrot';'Hash']
-    .lex "%x", $P219
+    $P225 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@names", $P225
+.annotate 'line', 559
+    $P226 = root_new ['parrot';'Hash']
+    .lex "%x", $P226
+.annotate 'line', 549
+    find_lex $P227, "$ast"
+    $P228 = $P227."name"()
+    store_lex "$name", $P228
 .annotate 'line', 550
-    find_lex $P220, "$ast"
-    $P221 = $P220."name"()
-    store_lex "$name", $P221
-.annotate 'line', 551
 
             $P0 = find_lex '$name'
             $S0 = $P0
-            $P222 = split '=', $S0
+            $P229 = split '=', $S0
         
-    store_lex "@names", $P222
-.annotate 'line', 556
-    find_lex $P224, "@names"
-    defined $I225, $P224
-    unless $I225, for_undef_103
-    iter $P223, $P224
-    new $P245, 'ExceptionHandler'
-    set_addr $P245, loop244_handler
-    $P245."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P245
-  loop244_test:
-    unless $P223, loop244_done
-    shift $P226, $P223
-  loop244_redo:
-    .const 'Sub' $P228 = "22_1277356890.79584" 
-    capture_lex $P228
-    $P228($P226)
-  loop244_next:
-    goto loop244_test
-  loop244_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P246, exception, 'type'
-    eq $P246, .CONTROL_LOOP_NEXT, loop244_next
-    eq $P246, .CONTROL_LOOP_REDO, loop244_redo
-  loop244_done:
-    pop_eh 
-  for_undef_103:
-.annotate 'line', 560
-    find_lex $P247, "$ast"
-    unless_null $P247, vivify_105
-    $P247 = root_new ['parrot';'ResizablePMCArray']
-  vivify_105:
-    set $P248, $P247[0]
-    unless_null $P248, vivify_106
-    new $P248, "Undef"
-  vivify_106:
-    find_lex $P249, "$count"
-    $P250 = "capnames"($P248, $P249)
-    store_lex "%x", $P250
-.annotate 'line', 561
-    find_lex $P252, "%x"
-    defined $I253, $P252
-    unless $I253, for_undef_107
-    iter $P251, $P252
-    new $P270, 'ExceptionHandler'
-    set_addr $P270, loop269_handler
-    $P270."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P270
-  loop269_test:
-    unless $P251, loop269_done
-    shift $P254, $P251
-  loop269_redo:
-    .const 'Sub' $P256 = "23_1277356890.79584" 
-    capture_lex $P256
-    $P256($P254)
-  loop269_next:
-    goto loop269_test
-  loop269_handler:
+    store_lex "@names", $P229
+.annotate 'line', 555
+    find_lex $P231, "@names"
+    defined $I232, $P231
+    unless $I232, for_undef_107
+    iter $P230, $P231
+    new $P252, 'ExceptionHandler'
+    set_addr $P252, loop251_handler
+    $P252."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P252
+  loop251_test:
+    unless $P230, loop251_done
+    shift $P233, $P230
+  loop251_redo:
+    .const 'Sub' $P235 = "22_1280467473.99327" 
+    capture_lex $P235
+    $P235($P233)
+  loop251_next:
+    goto loop251_test
+  loop251_handler:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P271, exception, 'type'
-    eq $P271, .CONTROL_LOOP_NEXT, loop269_next
-    eq $P271, .CONTROL_LOOP_REDO, loop269_redo
-  loop269_done:
+    getattribute $P253, exception, 'type'
+    eq $P253, .CONTROL_LOOP_NEXT, loop251_next
+    eq $P253, .CONTROL_LOOP_REDO, loop251_redo
+  loop251_done:
     pop_eh 
   for_undef_107:
-.annotate 'line', 564
-    find_lex $P272, "%x"
-    unless_null $P272, vivify_113
-    $P272 = root_new ['parrot';'Hash']
-  vivify_113:
-    set $P273, $P272[""]
-    unless_null $P273, vivify_114
-    new $P273, "Undef"
-  vivify_114:
-    store_lex "$count", $P273
-.annotate 'line', 549
-    .return ($P273)
+.annotate 'line', 559
+    find_lex $P254, "$ast"
+    unless_null $P254, vivify_109
+    $P254 = root_new ['parrot';'ResizablePMCArray']
+  vivify_109:
+    set $P255, $P254[0]
+    unless_null $P255, vivify_110
+    new $P255, "Undef"
+  vivify_110:
+    find_lex $P256, "$count"
+    $P257 = "capnames"($P255, $P256)
+    store_lex "%x", $P257
+.annotate 'line', 560
+    find_lex $P259, "%x"
+    defined $I260, $P259
+    unless $I260, for_undef_111
+    iter $P258, $P259
+    new $P277, 'ExceptionHandler'
+    set_addr $P277, loop276_handler
+    $P277."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P277
+  loop276_test:
+    unless $P258, loop276_done
+    shift $P261, $P258
+  loop276_redo:
+    .const 'Sub' $P263 = "23_1280467473.99327" 
+    capture_lex $P263
+    $P263($P261)
+  loop276_next:
+    goto loop276_test
+  loop276_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P278, exception, 'type'
+    eq $P278, .CONTROL_LOOP_NEXT, loop276_next
+    eq $P278, .CONTROL_LOOP_REDO, loop276_redo
+  loop276_done:
+    pop_eh 
+  for_undef_111:
+.annotate 'line', 563
+    find_lex $P279, "%x"
+    unless_null $P279, vivify_117
+    $P279 = root_new ['parrot';'Hash']
+  vivify_117:
+    set $P280, $P279[""]
+    unless_null $P280, vivify_118
+    new $P280, "Undef"
+  vivify_118:
+    store_lex "$count", $P280
+.annotate 'line', 548
+    .return ($P280)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block227"  :anon :subid("22_1277356890.79584") :outer("21_1277356890.79584")
-    .param pmc param_229
+.sub "_block234"  :anon :subid("22_1280467473.99327") :outer("21_1280467473.99327")
+    .param pmc param_236
+.annotate 'line', 555
+    .lex "$_", param_236
 .annotate 'line', 556
-    .lex "$_", param_229
+    find_lex $P240, "$_"
+    set $S241, $P240
+    iseq $I242, $S241, "0"
+    unless $I242, unless_239
+    new $P238, 'Integer'
+    set $P238, $I242
+    goto unless_239_end
+  unless_239:
+    find_lex $P243, "$_"
+    set $N244, $P243
+    isgt $I245, $N244, 0.0
+    new $P238, 'Integer'
+    set $P238, $I245
+  unless_239_end:
+    unless $P238, if_237_end
+    find_lex $P246, "$_"
+    add $P247, $P246, 1
+    store_lex "$count", $P247
+  if_237_end:
 .annotate 'line', 557
-    find_lex $P233, "$_"
-    set $S234, $P233
-    iseq $I235, $S234, "0"
-    unless $I235, unless_232
-    new $P231, 'Integer'
-    set $P231, $I235
-    goto unless_232_end
-  unless_232:
-    find_lex $P236, "$_"
-    set $N237, $P236
-    isgt $I238, $N237, 0.0
-    new $P231, 'Integer'
-    set $P231, $I238
-  unless_232_end:
-    unless $P231, if_230_end
-    find_lex $P239, "$_"
-    add $P240, $P239, 1
-    store_lex "$count", $P240
-  if_230_end:
-.annotate 'line', 558
-    new $P241, "Integer"
-    assign $P241, 1
-    find_lex $P242, "$_"
-    find_lex $P243, "%capnames"
-    unless_null $P243, vivify_104
-    $P243 = root_new ['parrot';'Hash']
-    store_lex "%capnames", $P243
-  vivify_104:
-    set $P243[$P242], $P241
-.annotate 'line', 556
-    .return ($P241)
+    new $P248, "Integer"
+    assign $P248, 1
+    find_lex $P249, "$_"
+    find_lex $P250, "%capnames"
+    unless_null $P250, vivify_108
+    $P250 = root_new ['parrot';'Hash']
+    store_lex "%capnames", $P250
+  vivify_108:
+    set $P250[$P249], $P248
+.annotate 'line', 555
+    .return ($P248)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block255"  :anon :subid("23_1277356890.79584") :outer("21_1277356890.79584")
-    .param pmc param_257
+.sub "_block262"  :anon :subid("23_1280467473.99327") :outer("21_1280467473.99327")
+    .param pmc param_264
+.annotate 'line', 560
+    .lex "$_", param_264
 .annotate 'line', 561
-    .lex "$_", param_257
-.annotate 'line', 562
-    find_lex $P258, "$_"
-    find_lex $P259, "%capnames"
-    unless_null $P259, vivify_108
-    $P259 = root_new ['parrot';'Hash']
-  vivify_108:
-    set $P260, $P259[$P258]
-    unless_null $P260, vivify_109
-    new $P260, "Undef"
-  vivify_109:
-    set $N261, $P260
-    new $P262, 'Float'
-    set $P262, $N261
-    find_lex $P263, "$_"
-    find_lex $P264, "%x"
-    unless_null $P264, vivify_110
-    $P264 = root_new ['parrot';'Hash']
-  vivify_110:
-    set $P265, $P264[$P263]
-    unless_null $P265, vivify_111
-    new $P265, "Undef"
-  vivify_111:
-    add $P266, $P262, $P265
-    find_lex $P267, "$_"
-    find_lex $P268, "%capnames"
-    unless_null $P268, vivify_112
-    $P268 = root_new ['parrot';'Hash']
-    store_lex "%capnames", $P268
+    find_lex $P265, "$_"
+    find_lex $P266, "%capnames"
+    unless_null $P266, vivify_112
+    $P266 = root_new ['parrot';'Hash']
   vivify_112:
-    set $P268[$P267], $P266
-.annotate 'line', 561
-    .return ($P266)
+    set $P267, $P266[$P265]
+    unless_null $P267, vivify_113
+    new $P267, "Undef"
+  vivify_113:
+    set $N268, $P267
+    new $P269, 'Float'
+    set $P269, $N268
+    find_lex $P270, "$_"
+    find_lex $P271, "%x"
+    unless_null $P271, vivify_114
+    $P271 = root_new ['parrot';'Hash']
+  vivify_114:
+    set $P272, $P271[$P270]
+    unless_null $P272, vivify_115
+    new $P272, "Undef"
+  vivify_115:
+    add $P273, $P269, $P272
+    find_lex $P274, "$_"
+    find_lex $P275, "%capnames"
+    unless_null $P275, vivify_116
+    $P275 = root_new ['parrot';'Hash']
+    store_lex "%capnames", $P275
+  vivify_116:
+    set $P275[$P274], $P273
+.annotate 'line', 560
+    .return ($P273)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block173"  :anon :subid("19_1277356890.79584") :outer("13_1277356890.79584")
+.sub "_block180"  :anon :subid("19_1280467473.99327") :outer("13_1280467473.99327")
+.annotate 'line', 535
+    .const 'Sub' $P199 = "20_1280467473.99327" 
+    capture_lex $P199
 .annotate 'line', 536
-    .const 'Sub' $P192 = "20_1277356890.79584" 
-    capture_lex $P192
-.annotate 'line', 537
-    new $P175, "Undef"
-    .lex "$name", $P175
-.annotate 'line', 539
-    $P176 = root_new ['parrot';'ResizablePMCArray']
-    .lex "@names", $P176
-.annotate 'line', 537
-    find_lex $P177, "$ast"
-    $P178 = $P177."name"()
-    store_lex "$name", $P178
+    new $P182, "Undef"
+    .lex "$name", $P182
 .annotate 'line', 538
-    find_lex $P180, "$name"
-    set $S181, $P180
-    iseq $I182, $S181, ""
-    unless $I182, if_179_end
-    find_lex $P183, "$count"
-    store_lex "$name", $P183
+    $P183 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@names", $P183
+.annotate 'line', 536
     find_lex $P184, "$ast"
-    find_lex $P185, "$name"
-    $P184."name"($P185)
-  if_179_end:
-.annotate 'line', 539
+    $P185 = $P184."name"()
+    store_lex "$name", $P185
+.annotate 'line', 537
+    find_lex $P187, "$name"
+    set $S188, $P187
+    iseq $I189, $S188, ""
+    unless $I189, if_186_end
+    find_lex $P190, "$count"
+    store_lex "$name", $P190
+    find_lex $P191, "$ast"
+    find_lex $P192, "$name"
+    $P191."name"($P192)
+  if_186_end:
+.annotate 'line', 538
 
             $P0 = find_lex '$name'
             $S0 = $P0
-            $P186 = split '=', $S0
+            $P193 = split '=', $S0
         
-    store_lex "@names", $P186
-.annotate 'line', 544
-    find_lex $P188, "@names"
-    defined $I189, $P188
-    unless $I189, for_undef_115
-    iter $P187, $P188
-    new $P209, 'ExceptionHandler'
-    set_addr $P209, loop208_handler
-    $P209."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P209
-  loop208_test:
-    unless $P187, loop208_done
-    shift $P190, $P187
-  loop208_redo:
-    .const 'Sub' $P192 = "20_1277356890.79584" 
-    capture_lex $P192
-    $P192($P190)
-  loop208_next:
-    goto loop208_test
-  loop208_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P210, exception, 'type'
-    eq $P210, .CONTROL_LOOP_NEXT, loop208_next
-    eq $P210, .CONTROL_LOOP_REDO, loop208_redo
-  loop208_done:
+    store_lex "@names", $P193
+.annotate 'line', 543
+    find_lex $P195, "@names"
+    defined $I196, $P195
+    unless $I196, for_undef_119
+    iter $P194, $P195
+    new $P216, 'ExceptionHandler'
+    set_addr $P216, loop215_handler
+    $P216."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P216
+  loop215_test:
+    unless $P194, loop215_done
+    shift $P197, $P194
+  loop215_redo:
+    .const 'Sub' $P199 = "20_1280467473.99327" 
+    capture_lex $P199
+    $P199($P197)
+  loop215_next:
+    goto loop215_test
+  loop215_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P217, exception, 'type'
+    eq $P217, .CONTROL_LOOP_NEXT, loop215_next
+    eq $P217, .CONTROL_LOOP_REDO, loop215_redo
+  loop215_done:
     pop_eh 
-  for_undef_115:
-.annotate 'line', 536
-    .return ($P187)
+  for_undef_119:
+.annotate 'line', 535
+    .return ($P194)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block191"  :anon :subid("20_1277356890.79584") :outer("19_1277356890.79584")
-    .param pmc param_193
+.sub "_block198"  :anon :subid("20_1280467473.99327") :outer("19_1280467473.99327")
+    .param pmc param_200
+.annotate 'line', 543
+    .lex "$_", param_200
 .annotate 'line', 544
-    .lex "$_", param_193
+    find_lex $P204, "$_"
+    set $S205, $P204
+    iseq $I206, $S205, "0"
+    unless $I206, unless_203
+    new $P202, 'Integer'
+    set $P202, $I206
+    goto unless_203_end
+  unless_203:
+    find_lex $P207, "$_"
+    set $N208, $P207
+    isgt $I209, $N208, 0.0
+    new $P202, 'Integer'
+    set $P202, $I209
+  unless_203_end:
+    unless $P202, if_201_end
+    find_lex $P210, "$_"
+    add $P211, $P210, 1
+    store_lex "$count", $P211
+  if_201_end:
 .annotate 'line', 545
-    find_lex $P197, "$_"
-    set $S198, $P197
-    iseq $I199, $S198, "0"
-    unless $I199, unless_196
-    new $P195, 'Integer'
-    set $P195, $I199
-    goto unless_196_end
-  unless_196:
-    find_lex $P200, "$_"
-    set $N201, $P200
-    isgt $I202, $N201, 0.0
-    new $P195, 'Integer'
-    set $P195, $I202
-  unless_196_end:
-    unless $P195, if_194_end
-    find_lex $P203, "$_"
-    add $P204, $P203, 1
-    store_lex "$count", $P204
-  if_194_end:
-.annotate 'line', 546
-    new $P205, "Integer"
-    assign $P205, 1
-    find_lex $P206, "$_"
-    find_lex $P207, "%capnames"
-    unless_null $P207, vivify_116
-    $P207 = root_new ['parrot';'Hash']
-    store_lex "%capnames", $P207
-  vivify_116:
-    set $P207[$P206], $P205
-.annotate 'line', 544
-    .return ($P205)
+    new $P212, "Integer"
+    assign $P212, 1
+    find_lex $P213, "$_"
+    find_lex $P214, "%capnames"
+    unless_null $P214, vivify_120
+    $P214 = root_new ['parrot';'Hash']
+    store_lex "%capnames", $P214
+  vivify_120:
+    set $P214[$P213], $P212
+.annotate 'line', 543
+    .return ($P212)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block131"  :anon :subid("17_1277356890.79584") :outer("13_1277356890.79584")
-    .param pmc param_134
+.sub "_block138"  :anon :subid("17_1280467473.99327") :outer("13_1280467473.99327")
+    .param pmc param_141
+.annotate 'line', 527
+    .const 'Sub' $P150 = "18_1280467473.99327" 
+    capture_lex $P150
 .annotate 'line', 528
-    .const 'Sub' $P143 = "18_1277356890.79584" 
-    capture_lex $P143
+    $P140 = root_new ['parrot';'Hash']
+    .lex "%x", $P140
+    .lex "$_", param_141
+    find_lex $P142, "$_"
+    find_lex $P143, "$count"
+    $P144 = "capnames"($P142, $P143)
+    store_lex "%x", $P144
 .annotate 'line', 529
-    $P133 = root_new ['parrot';'Hash']
-    .lex "%x", $P133
-    .lex "$_", param_134
-    find_lex $P135, "$_"
-    find_lex $P136, "$count"
-    $P137 = "capnames"($P135, $P136)
-    store_lex "%x", $P137
-.annotate 'line', 530
-    find_lex $P139, "%x"
-    defined $I140, $P139
-    unless $I140, for_undef_118
-    iter $P138, $P139
-    new $P157, 'ExceptionHandler'
-    set_addr $P157, loop156_handler
-    $P157."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P157
-  loop156_test:
-    unless $P138, loop156_done
-    shift $P141, $P138
-  loop156_redo:
-    .const 'Sub' $P143 = "18_1277356890.79584" 
-    capture_lex $P143
-    $P143($P141)
-  loop156_next:
-    goto loop156_test
-  loop156_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P158, exception, 'type'
-    eq $P158, .CONTROL_LOOP_NEXT, loop156_next
-    eq $P158, .CONTROL_LOOP_REDO, loop156_redo
-  loop156_done:
+    find_lex $P146, "%x"
+    defined $I147, $P146
+    unless $I147, for_undef_122
+    iter $P145, $P146
+    new $P164, 'ExceptionHandler'
+    set_addr $P164, loop163_handler
+    $P164."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P164
+  loop163_test:
+    unless $P145, loop163_done
+    shift $P148, $P145
+  loop163_redo:
+    .const 'Sub' $P150 = "18_1280467473.99327" 
+    capture_lex $P150
+    $P150($P148)
+  loop163_next:
+    goto loop163_test
+  loop163_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P165, exception, 'type'
+    eq $P165, .CONTROL_LOOP_NEXT, loop163_next
+    eq $P165, .CONTROL_LOOP_REDO, loop163_redo
+  loop163_done:
     pop_eh 
-  for_undef_118:
-.annotate 'line', 533
-    find_lex $P159, "%x"
-    unless_null $P159, vivify_124
-    $P159 = root_new ['parrot';'Hash']
-  vivify_124:
-    set $P160, $P159[""]
-    unless_null $P160, vivify_125
-    new $P160, "Undef"
-  vivify_125:
-    store_lex "$count", $P160
-.annotate 'line', 528
-    .return ($P160)
+  for_undef_122:
+.annotate 'line', 532
+    find_lex $P166, "%x"
+    unless_null $P166, vivify_128
+    $P166 = root_new ['parrot';'Hash']
+  vivify_128:
+    set $P167, $P166[""]
+    unless_null $P167, vivify_129
+    new $P167, "Undef"
+  vivify_129:
+    store_lex "$count", $P167
+.annotate 'line', 527
+    .return ($P167)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block142"  :anon :subid("18_1277356890.79584") :outer("17_1277356890.79584")
-    .param pmc param_144
+.sub "_block149"  :anon :subid("18_1280467473.99327") :outer("17_1280467473.99327")
+    .param pmc param_151
+.annotate 'line', 529
+    .lex "$_", param_151
 .annotate 'line', 530
-    .lex "$_", param_144
-.annotate 'line', 531
-    find_lex $P145, "$_"
-    find_lex $P146, "%capnames"
-    unless_null $P146, vivify_119
-    $P146 = root_new ['parrot';'Hash']
-  vivify_119:
-    set $P147, $P146[$P145]
-    unless_null $P147, vivify_120
-    new $P147, "Undef"
-  vivify_120:
-    set $N148, $P147
-    new $P149, 'Float'
-    set $P149, $N148
-    find_lex $P150, "$_"
-    find_lex $P151, "%x"
-    unless_null $P151, vivify_121
-    $P151 = root_new ['parrot';'Hash']
-  vivify_121:
-    set $P152, $P151[$P150]
-    unless_null $P152, vivify_122
-    new $P152, "Undef"
-  vivify_122:
-    add $P153, $P149, $P152
-    find_lex $P154, "$_"
-    find_lex $P155, "%capnames"
-    unless_null $P155, vivify_123
-    $P155 = root_new ['parrot';'Hash']
-    store_lex "%capnames", $P155
+    find_lex $P152, "$_"
+    find_lex $P153, "%capnames"
+    unless_null $P153, vivify_123
+    $P153 = root_new ['parrot';'Hash']
   vivify_123:
-    set $P155[$P154], $P153
-.annotate 'line', 530
-    .return ($P153)
+    set $P154, $P153[$P152]
+    unless_null $P154, vivify_124
+    new $P154, "Undef"
+  vivify_124:
+    set $N155, $P154
+    new $P156, 'Float'
+    set $P156, $N155
+    find_lex $P157, "$_"
+    find_lex $P158, "%x"
+    unless_null $P158, vivify_125
+    $P158 = root_new ['parrot';'Hash']
+  vivify_125:
+    set $P159, $P158[$P157]
+    unless_null $P159, vivify_126
+    new $P159, "Undef"
+  vivify_126:
+    add $P160, $P156, $P159
+    find_lex $P161, "$_"
+    find_lex $P162, "%capnames"
+    unless_null $P162, vivify_127
+    $P162 = root_new ['parrot';'Hash']
+    store_lex "%capnames", $P162
+  vivify_127:
+    set $P162[$P161], $P160
+.annotate 'line', 529
+    .return ($P160)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block64"  :anon :subid("14_1277356890.79584") :outer("13_1277356890.79584")
+.sub "_block71"  :anon :subid("14_1280467473.99327") :outer("13_1280467473.99327")
+.annotate 'line', 513
+    .const 'Sub' $P81 = "15_1280467473.99327" 
+    capture_lex $P81
 .annotate 'line', 514
-    .const 'Sub' $P74 = "15_1277356890.79584" 
-    capture_lex $P74
+    new $P73, "Undef"
+    .lex "$max", $P73
+    find_lex $P74, "$count"
+    store_lex "$max", $P74
 .annotate 'line', 515
-    new $P66, "Undef"
-    .lex "$max", $P66
-    find_lex $P67, "$count"
-    store_lex "$max", $P67
-.annotate 'line', 516
-    find_lex $P69, "$ast"
-    $P70 = $P69."list"()
-    defined $I71, $P70
-    unless $I71, for_undef_126
-    iter $P68, $P70
-    new $P119, 'ExceptionHandler'
-    set_addr $P119, loop118_handler
-    $P119."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P119
-  loop118_test:
-    unless $P68, loop118_done
-    shift $P72, $P68
-  loop118_redo:
-    .const 'Sub' $P74 = "15_1277356890.79584" 
-    capture_lex $P74
-    $P74($P72)
-  loop118_next:
-    goto loop118_test
-  loop118_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P120, exception, 'type'
-    eq $P120, .CONTROL_LOOP_NEXT, loop118_next
-    eq $P120, .CONTROL_LOOP_REDO, loop118_redo
-  loop118_done:
+    find_lex $P76, "$ast"
+    $P77 = $P76."list"()
+    defined $I78, $P77
+    unless $I78, for_undef_130
+    iter $P75, $P77
+    new $P126, 'ExceptionHandler'
+    set_addr $P126, loop125_handler
+    $P126."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P126
+  loop125_test:
+    unless $P75, loop125_done
+    shift $P79, $P75
+  loop125_redo:
+    .const 'Sub' $P81 = "15_1280467473.99327" 
+    capture_lex $P81
+    $P81($P79)
+  loop125_next:
+    goto loop125_test
+  loop125_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P127, exception, 'type'
+    eq $P127, .CONTROL_LOOP_NEXT, loop125_next
+    eq $P127, .CONTROL_LOOP_REDO, loop125_redo
+  loop125_done:
     pop_eh 
-  for_undef_126:
-.annotate 'line', 525
-    find_lex $P121, "$max"
-    store_lex "$count", $P121
-.annotate 'line', 514
-    .return ($P121)
+  for_undef_130:
+.annotate 'line', 524
+    find_lex $P128, "$max"
+    store_lex "$count", $P128
+.annotate 'line', 513
+    .return ($P128)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block73"  :anon :subid("15_1277356890.79584") :outer("14_1277356890.79584")
-    .param pmc param_76
+.sub "_block80"  :anon :subid("15_1280467473.99327") :outer("14_1280467473.99327")
+    .param pmc param_83
+.annotate 'line', 515
+    .const 'Sub' $P92 = "16_1280467473.99327" 
+    capture_lex $P92
 .annotate 'line', 516
-    .const 'Sub' $P85 = "16_1277356890.79584" 
-    capture_lex $P85
+    $P82 = root_new ['parrot';'Hash']
+    .lex "%x", $P82
+    .lex "$_", param_83
+    find_lex $P84, "$_"
+    find_lex $P85, "$count"
+    $P86 = "capnames"($P84, $P85)
+    store_lex "%x", $P86
 .annotate 'line', 517
-    $P75 = root_new ['parrot';'Hash']
-    .lex "%x", $P75
-    .lex "$_", param_76
-    find_lex $P77, "$_"
-    find_lex $P78, "$count"
-    $P79 = "capnames"($P77, $P78)
-    store_lex "%x", $P79
-.annotate 'line', 518
-    find_lex $P81, "%x"
-    defined $I82, $P81
-    unless $I82, for_undef_127
-    iter $P80, $P81
-    new $P106, 'ExceptionHandler'
-    set_addr $P106, loop105_handler
-    $P106."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P106
-  loop105_test:
-    unless $P80, loop105_done
-    shift $P83, $P80
-  loop105_redo:
-    .const 'Sub' $P85 = "16_1277356890.79584" 
-    capture_lex $P85
-    $P85($P83)
-  loop105_next:
-    goto loop105_test
-  loop105_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P107, exception, 'type'
-    eq $P107, .CONTROL_LOOP_NEXT, loop105_next
-    eq $P107, .CONTROL_LOOP_REDO, loop105_redo
-  loop105_done:
+    find_lex $P88, "%x"
+    defined $I89, $P88
+    unless $I89, for_undef_131
+    iter $P87, $P88
+    new $P113, 'ExceptionHandler'
+    set_addr $P113, loop112_handler
+    $P113."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P113
+  loop112_test:
+    unless $P87, loop112_done
+    shift $P90, $P87
+  loop112_redo:
+    .const 'Sub' $P92 = "16_1280467473.99327" 
+    capture_lex $P92
+    $P92($P90)
+  loop112_next:
+    goto loop112_test
+  loop112_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P114, exception, 'type'
+    eq $P114, .CONTROL_LOOP_NEXT, loop112_next
+    eq $P114, .CONTROL_LOOP_REDO, loop112_redo
+  loop112_done:
     pop_eh 
-  for_undef_127:
-.annotate 'line', 523
-    find_lex $P110, "%x"
-    unless_null $P110, vivify_133
-    $P110 = root_new ['parrot';'Hash']
-  vivify_133:
-    set $P111, $P110[""]
-    unless_null $P111, vivify_134
-    new $P111, "Undef"
-  vivify_134:
-    set $N112, $P111
-    find_lex $P113, "$max"
-    set $N114, $P113
-    isgt $I115, $N112, $N114
-    if $I115, if_109
-    new $P108, 'Integer'
-    set $P108, $I115
-    goto if_109_end
-  if_109:
-    find_lex $P116, "%x"
-    unless_null $P116, vivify_135
-    $P116 = root_new ['parrot';'Hash']
-  vivify_135:
-    set $P117, $P116[""]
-    unless_null $P117, vivify_136
-    new $P117, "Undef"
-  vivify_136:
-    store_lex "$max", $P117
-    set $P108, $P117
-  if_109_end:
-.annotate 'line', 516
-    .return ($P108)
+  for_undef_131:
+.annotate 'line', 522
+    find_lex $P117, "%x"
+    unless_null $P117, vivify_137
+    $P117 = root_new ['parrot';'Hash']
+  vivify_137:
+    set $P118, $P117[""]
+    unless_null $P118, vivify_138
+    new $P118, "Undef"
+  vivify_138:
+    set $N119, $P118
+    find_lex $P120, "$max"
+    set $N121, $P120
+    isgt $I122, $N119, $N121
+    if $I122, if_116
+    new $P115, 'Integer'
+    set $P115, $I122
+    goto if_116_end
+  if_116:
+    find_lex $P123, "%x"
+    unless_null $P123, vivify_139
+    $P123 = root_new ['parrot';'Hash']
+  vivify_139:
+    set $P124, $P123[""]
+    unless_null $P124, vivify_140
+    new $P124, "Undef"
+  vivify_140:
+    store_lex "$max", $P124
+    set $P115, $P124
+  if_116_end:
+.annotate 'line', 515
+    .return ($P115)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block84"  :anon :subid("16_1277356890.79584") :outer("15_1277356890.79584")
-    .param pmc param_86
+.sub "_block91"  :anon :subid("16_1280467473.99327") :outer("15_1280467473.99327")
+    .param pmc param_93
+.annotate 'line', 517
+    .lex "$_", param_93
 .annotate 'line', 518
-    .lex "$_", param_86
-.annotate 'line', 519
-    find_lex $P91, "$_"
-    find_lex $P92, "%capnames"
-    unless_null $P92, vivify_128
-    $P92 = root_new ['parrot';'Hash']
-  vivify_128:
-    set $P93, $P92[$P91]
-    unless_null $P93, vivify_129
-    new $P93, "Undef"
-  vivify_129:
-    set $N94, $P93
-    islt $I95, $N94, 2.0
-    if $I95, if_90
-    new $P89, 'Integer'
-    set $P89, $I95
-    goto if_90_end
-  if_90:
-    find_lex $P96, "$_"
-    find_lex $P97, "%x"
-    unless_null $P97, vivify_130
-    $P97 = root_new ['parrot';'Hash']
-  vivify_130:
-    set $P98, $P97[$P96]
-    unless_null $P98, vivify_131
-    new $P98, "Undef"
-  vivify_131:
-    set $N99, $P98
-    iseq $I100, $N99, 1.0
-    new $P89, 'Integer'
-    set $P89, $I100
-  if_90_end:
-    if $P89, if_88
-    new $P102, "Integer"
-    assign $P102, 2
-    set $P87, $P102
-    goto if_88_end
-  if_88:
-    new $P101, "Integer"
-    assign $P101, 1
-    set $P87, $P101
-  if_88_end:
-.annotate 'line', 520
+    find_lex $P98, "$_"
+    find_lex $P99, "%capnames"
+    unless_null $P99, vivify_132
+    $P99 = root_new ['parrot';'Hash']
+  vivify_132:
+    set $P100, $P99[$P98]
+    unless_null $P100, vivify_133
+    new $P100, "Undef"
+  vivify_133:
+    set $N101, $P100
+    islt $I102, $N101, 2.0
+    if $I102, if_97
+    new $P96, 'Integer'
+    set $P96, $I102
+    goto if_97_end
+  if_97:
     find_lex $P103, "$_"
-    find_lex $P104, "%capnames"
-    unless_null $P104, vivify_132
+    find_lex $P104, "%x"
+    unless_null $P104, vivify_134
     $P104 = root_new ['parrot';'Hash']
-    store_lex "%capnames", $P104
-  vivify_132:
-    set $P104[$P103], $P87
-.annotate 'line', 518
-    .return ($P87)
+  vivify_134:
+    set $P105, $P104[$P103]
+    unless_null $P105, vivify_135
+    new $P105, "Undef"
+  vivify_135:
+    set $N106, $P105
+    iseq $I107, $N106, 1.0
+    new $P96, 'Integer'
+    set $P96, $I107
+  if_97_end:
+    if $P96, if_95
+    new $P109, "Integer"
+    assign $P109, 2
+    set $P94, $P109
+    goto if_95_end
+  if_95:
+    new $P108, "Integer"
+    assign $P108, 1
+    set $P94, $P108
+  if_95_end:
+.annotate 'line', 519
+    find_lex $P110, "$_"
+    find_lex $P111, "%capnames"
+    unless_null $P111, vivify_136
+    $P111 = root_new ['parrot';'Hash']
+    store_lex "%capnames", $P111
+  vivify_136:
+    set $P111[$P110], $P94
+.annotate 'line', 517
+    .return ($P94)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backmod"  :subid("26_1277356890.79584") :outer("11_1277356890.79584")
-    .param pmc param_308
-    .param pmc param_309
+.sub "backmod"  :subid("26_1280467473.99327") :outer("11_1280467473.99327")
+    .param pmc param_315
+    .param pmc param_316
+.annotate 'line', 576
+    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', 577
-    new $P307, 'ExceptionHandler'
-    set_addr $P307, control_306
-    $P307."handle_types"(.CONTROL_RETURN)
-    push_eh $P307
-    .lex "$ast", param_308
-    .lex "$backmod", param_309
-.annotate 'line', 578
-    find_lex $P311, "$backmod"
-    set $S312, $P311
-    iseq $I313, $S312, ":"
-    if $I313, if_310
-.annotate 'line', 579
     find_lex $P318, "$backmod"
     set $S319, $P318
-    iseq $I320, $S319, ":?"
-    unless $I320, unless_317
-    new $P316, 'Integer'
-    set $P316, $I320
-    goto unless_317_end
-  unless_317:
-    find_lex $P321, "$backmod"
-    set $S322, $P321
-    iseq $I323, $S322, "?"
-    new $P316, 'Integer'
-    set $P316, $I323
-  unless_317_end:
-    if $P316, if_315
-.annotate 'line', 580
+    iseq $I320, $S319, ":"
+    if $I320, if_317
+.annotate 'line', 578
+    find_lex $P325, "$backmod"
+    set $S326, $P325
+    iseq $I327, $S326, ":?"
+    unless $I327, unless_324
+    new $P323, 'Integer'
+    set $P323, $I327
+    goto unless_324_end
+  unless_324:
     find_lex $P328, "$backmod"
     set $S329, $P328
-    iseq $I330, $S329, ":!"
-    unless $I330, unless_327
-    new $P326, 'Integer'
-    set $P326, $I330
-    goto unless_327_end
-  unless_327:
-    find_lex $P331, "$backmod"
-    set $S332, $P331
-    iseq $I333, $S332, "!"
-    new $P326, 'Integer'
-    set $P326, $I333
-  unless_327_end:
-    unless $P326, if_325_end
-    find_lex $P334, "$ast"
-    $P334."backtrack"("g")
-  if_325_end:
-    goto if_315_end
-  if_315:
+    iseq $I330, $S329, "?"
+    new $P323, 'Integer'
+    set $P323, $I330
+  unless_324_end:
+    if $P323, if_322
 .annotate 'line', 579
-    find_lex $P324, "$ast"
-    $P324."backtrack"("f")
-  if_315_end:
-    goto if_310_end
-  if_310:
+    find_lex $P335, "$backmod"
+    set $S336, $P335
+    iseq $I337, $S336, ":!"
+    unless $I337, unless_334
+    new $P333, 'Integer'
+    set $P333, $I337
+    goto unless_334_end
+  unless_334:
+    find_lex $P338, "$backmod"
+    set $S339, $P338
+    iseq $I340, $S339, "!"
+    new $P333, 'Integer'
+    set $P333, $I340
+  unless_334_end:
+    unless $P333, if_332_end
+    find_lex $P341, "$ast"
+    $P341."backtrack"("g")
+  if_332_end:
+    goto if_322_end
+  if_322:
 .annotate 'line', 578
-    find_lex $P314, "$ast"
-    $P314."backtrack"("r")
-  if_310_end:
-    find_lex $P335, "$ast"
+    find_lex $P331, "$ast"
+    $P331."backtrack"("f")
+  if_322_end:
+    goto if_317_end
+  if_317:
 .annotate 'line', 577
-    .return ($P335)
-  control_306:
+    find_lex $P321, "$ast"
+    $P321."backtrack"("r")
+  if_317_end:
+    find_lex $P342, "$ast"
+.annotate 'line', 576
+    .return ($P342)
+  control_313:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P336, exception, "payload"
-    .return ($P336)
+    getattribute $P343, exception, "payload"
+    .return ($P343)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "subrule_alias"  :subid("27_1277356890.79584") :outer("11_1277356890.79584")
-    .param pmc param_341
-    .param pmc param_342
-.annotate 'line', 584
-    new $P340, 'ExceptionHandler'
-    set_addr $P340, control_339
-    $P340."handle_types"(.CONTROL_RETURN)
-    push_eh $P340
-    .lex "$past", param_341
-    .lex "$name", param_342
-.annotate 'line', 585
-    find_lex $P344, "$past"
-    $S345 = $P344."name"()
-    isgt $I346, $S345, ""
-    if $I346, if_343
-.annotate 'line', 586
-    find_lex $P353, "$past"
-    find_lex $P354, "$name"
-    $P353."name"($P354)
-    goto if_343_end
-  if_343:
-.annotate 'line', 585
-    find_lex $P347, "$past"
-    find_lex $P348, "$name"
-    concat $P349, $P348, "="
-    find_lex $P350, "$past"
-    $S351 = $P350."name"()
-    concat $P352, $P349, $S351
-    $P347."name"($P352)
-  if_343_end:
-.annotate 'line', 587
-    find_lex $P355, "$past"
-    $P356 = $P355."subtype"("capture")
-.annotate 'line', 584
-    .return ($P356)
-  control_339:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P357, exception, "payload"
-    .return ($P357)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.include "except_types.pasm"
-.sub "arg"  :subid("28_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_363
+.sub "arg"  :subid("27_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_349
 .annotate 'line', 14
-    new $P362, 'ExceptionHandler'
-    set_addr $P362, control_361
-    $P362."handle_types"(.CONTROL_RETURN)
-    push_eh $P362
+    new $P348, 'ExceptionHandler'
+    set_addr $P348, control_347
+    $P348."handle_types"(.CONTROL_RETURN)
+    push_eh $P348
     .lex "self", self
-    .lex "$/", param_363
+    .lex "$/", param_349
 .annotate 'line', 15
-    find_lex $P364, "$/"
-    find_lex $P367, "$/"
-    unless_null $P367, vivify_138
-    $P367 = root_new ['parrot';'Hash']
-  vivify_138:
-    set $P368, $P367["quote_EXPR"]
-    unless_null $P368, vivify_139
-    new $P368, "Undef"
-  vivify_139:
-    if $P368, if_366
-    find_lex $P372, "$/"
-    unless_null $P372, vivify_140
-    $P372 = root_new ['parrot';'Hash']
-  vivify_140:
-    set $P373, $P372["val"]
-    unless_null $P373, vivify_141
-    new $P373, "Undef"
-  vivify_141:
-    set $N374, $P373
-    new $P365, 'Float'
-    set $P365, $N374
-    goto if_366_end
-  if_366:
-    find_lex $P369, "$/"
-    unless_null $P369, vivify_142
-    $P369 = root_new ['parrot';'Hash']
+    find_lex $P350, "$/"
+    find_lex $P353, "$/"
+    unless_null $P353, vivify_142
+    $P353 = root_new ['parrot';'Hash']
   vivify_142:
-    set $P370, $P369["quote_EXPR"]
-    unless_null $P370, vivify_143
-    new $P370, "Undef"
+    set $P354, $P353["quote_EXPR"]
+    unless_null $P354, vivify_143
+    new $P354, "Undef"
   vivify_143:
-    $P371 = $P370."ast"()
-    set $P365, $P371
-  if_366_end:
-    $P375 = $P364."!make"($P365)
+    if $P354, if_352
+    find_lex $P358, "$/"
+    unless_null $P358, vivify_144
+    $P358 = root_new ['parrot';'Hash']
+  vivify_144:
+    set $P359, $P358["val"]
+    unless_null $P359, vivify_145
+    new $P359, "Undef"
+  vivify_145:
+    set $N360, $P359
+    new $P351, 'Float'
+    set $P351, $N360
+    goto if_352_end
+  if_352:
+    find_lex $P355, "$/"
+    unless_null $P355, vivify_146
+    $P355 = root_new ['parrot';'Hash']
+  vivify_146:
+    set $P356, $P355["quote_EXPR"]
+    unless_null $P356, vivify_147
+    new $P356, "Undef"
+  vivify_147:
+    $P357 = $P356."ast"()
+    set $P351, $P357
+  if_352_end:
+    $P361 = $P350."!make"($P351)
 .annotate 'line', 14
-    .return ($P375)
-  control_361:
+    .return ($P361)
+  control_347:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P376, exception, "payload"
-    .return ($P376)
+    getattribute $P362, exception, "payload"
+    .return ($P362)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "arglist"  :subid("29_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_380
+.sub "arglist"  :subid("28_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_366
 .annotate 'line', 18
-    .const 'Sub' $P390 = "30_1277356890.79584" 
-    capture_lex $P390
-    new $P379, 'ExceptionHandler'
-    set_addr $P379, control_378
-    $P379."handle_types"(.CONTROL_RETURN)
-    push_eh $P379
+    .const 'Sub' $P376 = "29_1280467473.99327" 
+    capture_lex $P376
+    new $P365, 'ExceptionHandler'
+    set_addr $P365, control_364
+    $P365."handle_types"(.CONTROL_RETURN)
+    push_eh $P365
     .lex "self", self
-    .lex "$/", param_380
+    .lex "$/", param_366
 .annotate 'line', 19
-    new $P381, "Undef"
-    .lex "$past", $P381
-    get_hll_global $P382, ["PAST"], "Op"
-    $P383 = $P382."new"("list" :named("pasttype"))
-    store_lex "$past", $P383
+    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 $P385, "$/"
-    unless_null $P385, vivify_144
-    $P385 = root_new ['parrot';'Hash']
-  vivify_144:
-    set $P386, $P385["arg"]
-    unless_null $P386, vivify_145
-    new $P386, "Undef"
-  vivify_145:
-    defined $I387, $P386
-    unless $I387, for_undef_146
-    iter $P384, $P386
-    new $P397, 'ExceptionHandler'
-    set_addr $P397, loop396_handler
-    $P397."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P397
-  loop396_test:
-    unless $P384, loop396_done
-    shift $P388, $P384
-  loop396_redo:
-    .const 'Sub' $P390 = "30_1277356890.79584" 
-    capture_lex $P390
-    $P390($P388)
-  loop396_next:
-    goto loop396_test
-  loop396_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P398, exception, 'type'
-    eq $P398, .CONTROL_LOOP_NEXT, loop396_next
-    eq $P398, .CONTROL_LOOP_REDO, loop396_redo
-  loop396_done:
+    find_lex $P371, "$/"
+    unless_null $P371, vivify_148
+    $P371 = root_new ['parrot';'Hash']
+  vivify_148:
+    set $P372, $P371["arg"]
+    unless_null $P372, vivify_149
+    new $P372, "Undef"
+  vivify_149:
+    defined $I373, $P372
+    unless $I373, for_undef_150
+    iter $P370, $P372
+    new $P383, 'ExceptionHandler'
+    set_addr $P383, loop382_handler
+    $P383."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P383
+  loop382_test:
+    unless $P370, loop382_done
+    shift $P374, $P370
+  loop382_redo:
+    .const 'Sub' $P376 = "29_1280467473.99327" 
+    capture_lex $P376
+    $P376($P374)
+  loop382_next:
+    goto loop382_test
+  loop382_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P384, exception, 'type'
+    eq $P384, .CONTROL_LOOP_NEXT, loop382_next
+    eq $P384, .CONTROL_LOOP_REDO, loop382_redo
+  loop382_done:
     pop_eh 
-  for_undef_146:
+  for_undef_150:
 .annotate 'line', 21
-    find_lex $P399, "$/"
-    find_lex $P400, "$past"
-    $P401 = $P399."!make"($P400)
+    find_lex $P385, "$/"
+    find_lex $P386, "$past"
+    $P387 = $P385."!make"($P386)
 .annotate 'line', 18
-    .return ($P401)
-  control_378:
+    .return ($P387)
+  control_364:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P402, exception, "payload"
-    .return ($P402)
+    getattribute $P388, exception, "payload"
+    .return ($P388)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block389"  :anon :subid("30_1277356890.79584") :outer("29_1277356890.79584")
-    .param pmc param_391
+.sub "_block375"  :anon :subid("29_1280467473.99327") :outer("28_1280467473.99327")
+    .param pmc param_377
 .annotate 'line', 20
-    .lex "$_", param_391
-    find_lex $P392, "$past"
-    find_lex $P393, "$_"
-    $P394 = $P393."ast"()
-    $P395 = $P392."push"($P394)
-    .return ($P395)
+    .lex "$_", param_377
+    find_lex $P378, "$past"
+    find_lex $P379, "$_"
+    $P380 = $P379."ast"()
+    $P381 = $P378."push"($P380)
+    .return ($P381)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("31_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_406
+.sub "TOP"  :subid("30_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_392
 .annotate 'line', 24
-    new $P405, 'ExceptionHandler'
-    set_addr $P405, control_404
-    $P405."handle_types"(.CONTROL_RETURN)
-    push_eh $P405
+    new $P391, 'ExceptionHandler'
+    set_addr $P391, control_390
+    $P391."handle_types"(.CONTROL_RETURN)
+    push_eh $P391
     .lex "self", self
-    .lex "$/", param_406
+    .lex "$/", param_392
 .annotate 'line', 25
-    new $P407, "Undef"
-    .lex "$past", $P407
-    find_lex $P408, "$/"
-    unless_null $P408, vivify_147
-    $P408 = root_new ['parrot';'Hash']
-  vivify_147:
-    set $P409, $P408["nibbler"]
-    unless_null $P409, vivify_148
-    new $P409, "Undef"
-  vivify_148:
-    $P410 = $P409."ast"()
-    $P411 = "buildsub"($P410)
-    store_lex "$past", $P411
+    new $P393, "Undef"
+    .lex "$past", $P393
+    find_lex $P394, "$/"
+    unless_null $P394, vivify_151
+    $P394 = root_new ['parrot';'Hash']
+  vivify_151:
+    set $P395, $P394["nibbler"]
+    unless_null $P395, vivify_152
+    new $P395, "Undef"
+  vivify_152:
+    $P396 = $P395."ast"()
+    $P397 = "buildsub"($P396)
+    store_lex "$past", $P397
 .annotate 'line', 26
-    find_lex $P412, "$past"
-    find_lex $P413, "$/"
-    $P412."node"($P413)
+    find_lex $P398, "$past"
+    find_lex $P399, "$/"
+    $P398."node"($P399)
 .annotate 'line', 27
-    find_lex $P414, "$/"
-    find_lex $P415, "$past"
-    $P416 = $P414."!make"($P415)
+    find_lex $P400, "$/"
+    find_lex $P401, "$past"
+    $P402 = $P400."!make"($P401)
 .annotate 'line', 24
-    .return ($P416)
-  control_404:
+    .return ($P402)
+  control_390:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P417, exception, "payload"
-    .return ($P417)
+    getattribute $P403, exception, "payload"
+    .return ($P403)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "nibbler"  :subid("32_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_421
-    .param pmc param_422 :optional
-    .param int has_param_422 :opt_flag
+.sub "nibbler"  :subid("31_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_407
+    .param pmc param_408 :optional
+    .param int has_param_408 :opt_flag
 .annotate 'line', 30
-    .const 'Sub' $P456 = "34_1277356890.79584" 
-    capture_lex $P456
-    .const 'Sub' $P430 = "33_1277356890.79584" 
-    capture_lex $P430
-    new $P420, 'ExceptionHandler'
-    set_addr $P420, control_419
-    $P420."handle_types"(.CONTROL_RETURN)
-    push_eh $P420
-    .lex "self", self
-    .lex "$/", param_421
-    if has_param_422, optparam_149
-    new $P423, "Undef"
-    set param_422, $P423
-  optparam_149:
-    .lex "$key", param_422
-.annotate 'line', 42
-    new $P424, "Undef"
-    .lex "$past", $P424
+    .const 'Sub' $P443 = "33_1280467473.99327" 
+    capture_lex $P443
+    .const 'Sub' $P416 = "32_1280467473.99327" 
+    capture_lex $P416
+    new $P406, 'ExceptionHandler'
+    set_addr $P406, control_405
+    $P406."handle_types"(.CONTROL_RETURN)
+    push_eh $P406
+    .lex "self", self
+    .lex "$/", param_407
+    if has_param_408, optparam_153
+    new $P409, "Undef"
+    set param_408, $P409
+  optparam_153:
+    .lex "$key", param_408
+.annotate 'line', 39
+    new $P410, "Undef"
+    .lex "$past", $P410
 .annotate 'line', 31
-    find_lex $P426, "$key"
-    set $S427, $P426
-    iseq $I428, $S427, "open"
-    unless $I428, if_425_end
-    .const 'Sub' $P430 = "33_1277356890.79584" 
-    capture_lex $P430
-    $P430()
-  if_425_end:
-.annotate 'line', 41
-    get_global $P440, "@MODIFIERS"
-    $P440."shift"()
-    find_lex $P441, "$past"
-.annotate 'line', 43
-    find_lex $P443, "$/"
-    unless_null $P443, vivify_152
-    $P443 = root_new ['parrot';'Hash']
-  vivify_152:
-    set $P444, $P443["termish"]
-    unless_null $P444, vivify_153
-    new $P444, "Undef"
-  vivify_153:
-    set $N445, $P444
-    isgt $I446, $N445, 1.0
-    if $I446, if_442
-.annotate 'line', 50
-    find_lex $P465, "$/"
-    unless_null $P465, vivify_154
-    $P465 = root_new ['parrot';'Hash']
-  vivify_154:
-    set $P466, $P465["termish"]
-    unless_null $P466, vivify_155
-    $P466 = root_new ['parrot';'ResizablePMCArray']
-  vivify_155:
-    set $P467, $P466[0]
-    unless_null $P467, vivify_156
-    new $P467, "Undef"
+    find_lex $P412, "$key"
+    set $S413, $P412
+    iseq $I414, $S413, "open"
+    unless $I414, if_411_end
+    .const 'Sub' $P416 = "32_1280467473.99327" 
+    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_156
+    $P430 = root_new ['parrot';'Hash']
   vivify_156:
-    $P468 = $P467."ast"()
-    store_lex "$past", $P468
-.annotate 'line', 49
-    goto if_442_end
-  if_442:
-.annotate 'line', 44
-    get_hll_global $P447, ["PAST"], "Regex"
-    find_lex $P448, "$/"
-    $P449 = $P447."new"("alt" :named("pasttype"), $P448 :named("node"))
-    store_lex "$past", $P449
-.annotate 'line', 45
-    find_lex $P451, "$/"
-    unless_null $P451, vivify_157
-    $P451 = root_new ['parrot';'Hash']
+    set $P431, $P430["termish"]
+    unless_null $P431, vivify_157
+    new $P431, "Undef"
   vivify_157:
-    set $P452, $P451["termish"]
+    set $N432, $P431
+    isgt $I433, $N432, 1.0
+    if $I433, if_429
+.annotate 'line', 47
+    find_lex $P452, "$/"
     unless_null $P452, vivify_158
-    new $P452, "Undef"
+    $P452 = root_new ['parrot';'Hash']
   vivify_158:
-    defined $I453, $P452
-    unless $I453, for_undef_159
-    iter $P450, $P452
-    new $P463, 'ExceptionHandler'
-    set_addr $P463, loop462_handler
-    $P463."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P463
-  loop462_test:
-    unless $P450, loop462_done
-    shift $P454, $P450
-  loop462_redo:
-    .const 'Sub' $P456 = "34_1277356890.79584" 
-    capture_lex $P456
-    $P456($P454)
-  loop462_next:
-    goto loop462_test
-  loop462_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P464, exception, 'type'
-    eq $P464, .CONTROL_LOOP_NEXT, loop462_next
-    eq $P464, .CONTROL_LOOP_REDO, loop462_redo
-  loop462_done:
+    set $P453, $P452["termish"]
+    unless_null $P453, vivify_159
+    $P453 = root_new ['parrot';'ResizablePMCArray']
+  vivify_159:
+    set $P454, $P453[0]
+    unless_null $P454, vivify_160
+    new $P454, "Undef"
+  vivify_160:
+    $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_161
+    $P438 = root_new ['parrot';'Hash']
+  vivify_161:
+    set $P439, $P438["termish"]
+    unless_null $P439, vivify_162
+    new $P439, "Undef"
+  vivify_162:
+    defined $I440, $P439
+    unless $I440, for_undef_163
+    iter $P437, $P439
+    new $P450, 'ExceptionHandler'
+    set_addr $P450, loop449_handler
+    $P450."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P450
+  loop449_test:
+    unless $P437, loop449_done
+    shift $P441, $P437
+  loop449_redo:
+    .const 'Sub' $P443 = "33_1280467473.99327" 
+    capture_lex $P443
+    $P443($P441)
+  loop449_next:
+    goto loop449_test
+  loop449_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P451, exception, 'type'
+    eq $P451, .CONTROL_LOOP_NEXT, loop449_next
+    eq $P451, .CONTROL_LOOP_REDO, loop449_redo
+  loop449_done:
     pop_eh 
-  for_undef_159:
-  if_442_end:
-.annotate 'line', 52
-    find_lex $P469, "$/"
-    find_lex $P470, "$past"
-    $P471 = $P469."!make"($P470)
+  for_undef_163:
+  if_429_end:
+.annotate 'line', 49
+    find_lex $P456, "$/"
+    find_lex $P457, "$past"
+    $P458 = $P456."!make"($P457)
 .annotate 'line', 30
-    .return ($P471)
-  control_419:
+    .return ($P458)
+  control_405:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P472, exception, "payload"
-    .return ($P472)
+    getattribute $P459, exception, "payload"
+    .return ($P459)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block429"  :anon :subid("33_1277356890.79584") :outer("32_1277356890.79584")
+.sub "_block415"  :anon :subid("32_1280467473.99327") :outer("31_1280467473.99327")
 .annotate 'line', 32
-    $P431 = root_new ['parrot';'Hash']
-    .lex "%old", $P431
+    $P417 = root_new ['parrot';'Hash']
+    .lex "%old", $P417
 .annotate 'line', 33
-    $P432 = root_new ['parrot';'Hash']
-    .lex "%new", $P432
+    $P418 = root_new ['parrot';'Hash']
+    .lex "%new", $P418
 .annotate 'line', 32
-    get_global $P433, "@MODIFIERS"
-    unless_null $P433, vivify_150
-    $P433 = root_new ['parrot';'ResizablePMCArray']
-  vivify_150:
-    set $P434, $P433[0]
-    unless_null $P434, vivify_151
-    new $P434, "Undef"
-  vivify_151:
-    store_lex "%old", $P434
+    get_global $P419, "@MODIFIERS"
+    unless_null $P419, vivify_154
+    $P419 = root_new ['parrot';'ResizablePMCArray']
+  vivify_154:
+    set $P420, $P419[0]
+    unless_null $P420, vivify_155
+    new $P420, "Undef"
+  vivify_155:
+    store_lex "%old", $P420
 .annotate 'line', 33
-
-                       $P0 = find_lex '%old'
-                       $P435 = clone $P0
-                   
-    store_lex "%new", $P435
-.annotate 'line', 37
-    get_global $P436, "@MODIFIERS"
-    find_lex $P437, "%new"
-    $P436."unshift"($P437)
-.annotate 'line', 38
-    new $P438, "Exception"
-    set $P438['type'], .CONTROL_RETURN
-    new $P439, "Integer"
-    assign $P439, 1
-    setattribute $P438, 'payload', $P439
-    throw $P438
+    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 "_block455"  :anon :subid("34_1277356890.79584") :outer("32_1277356890.79584")
-    .param pmc param_457
-.annotate 'line', 45
-    .lex "$_", param_457
-.annotate 'line', 46
-    find_lex $P458, "$past"
-    find_lex $P459, "$_"
-    $P460 = $P459."ast"()
-    $P461 = $P458."push"($P460)
-.annotate 'line', 45
-    .return ($P461)
+.sub "_block442"  :anon :subid("33_1280467473.99327") :outer("31_1280467473.99327")
+    .param pmc param_444
+.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 "termish"  :subid("35_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_476
+.sub "termish"  :subid("34_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_463
+.annotate 'line', 52
+    .const 'Sub' $P476 = "35_1280467473.99327" 
+    capture_lex $P476
+    new $P462, 'ExceptionHandler'
+    set_addr $P462, control_461
+    $P462."handle_types"(.CONTROL_RETURN)
+    push_eh $P462
+    .lex "self", self
+    .lex "$/", param_463
+.annotate 'line', 53
+    new $P464, "Undef"
+    .lex "$past", $P464
+.annotate 'line', 54
+    new $P465, "Undef"
+    .lex "$lastlit", $P465
+.annotate 'line', 53
+    get_hll_global $P466, ["PAST"], "Regex"
+    find_lex $P467, "$/"
+    $P468 = $P466."new"("concat" :named("pasttype"), $P467 :named("node"))
+    store_lex "$past", $P468
+.annotate 'line', 54
+    new $P469, "Integer"
+    assign $P469, 0
+    store_lex "$lastlit", $P469
 .annotate 'line', 55
-    .const 'Sub' $P489 = "36_1277356890.79584" 
-    capture_lex $P489
-    new $P475, 'ExceptionHandler'
-    set_addr $P475, control_474
-    $P475."handle_types"(.CONTROL_RETURN)
-    push_eh $P475
-    .lex "self", self
-    .lex "$/", param_476
-.annotate 'line', 56
-    new $P477, "Undef"
-    .lex "$past", $P477
-.annotate 'line', 57
-    new $P478, "Undef"
-    .lex "$lastlit", $P478
-.annotate 'line', 56
-    get_hll_global $P479, ["PAST"], "Regex"
-    find_lex $P480, "$/"
-    $P481 = $P479."new"("concat" :named("pasttype"), $P480 :named("node"))
-    store_lex "$past", $P481
-.annotate 'line', 57
-    new $P482, "Integer"
-    assign $P482, 0
-    store_lex "$lastlit", $P482
-.annotate 'line', 58
-    find_lex $P484, "$/"
-    unless_null $P484, vivify_160
-    $P484 = root_new ['parrot';'Hash']
-  vivify_160:
-    set $P485, $P484["noun"]
-    unless_null $P485, vivify_161
-    new $P485, "Undef"
-  vivify_161:
-    defined $I486, $P485
-    unless $I486, for_undef_162
-    iter $P483, $P485
-    new $P535, 'ExceptionHandler'
-    set_addr $P535, loop534_handler
-    $P535."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P535
-  loop534_test:
-    unless $P483, loop534_done
-    shift $P487, $P483
-  loop534_redo:
-    .const 'Sub' $P489 = "36_1277356890.79584" 
-    capture_lex $P489
-    $P489($P487)
-  loop534_next:
-    goto loop534_test
-  loop534_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P536, exception, 'type'
-    eq $P536, .CONTROL_LOOP_NEXT, loop534_next
-    eq $P536, .CONTROL_LOOP_REDO, loop534_redo
-  loop534_done:
+    find_lex $P471, "$/"
+    unless_null $P471, vivify_164
+    $P471 = root_new ['parrot';'Hash']
+  vivify_164:
+    set $P472, $P471["noun"]
+    unless_null $P472, vivify_165
+    new $P472, "Undef"
+  vivify_165:
+    defined $I473, $P472
+    unless $I473, for_undef_166
+    iter $P470, $P472
+    new $P522, 'ExceptionHandler'
+    set_addr $P522, loop521_handler
+    $P522."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P522
+  loop521_test:
+    unless $P470, loop521_done
+    shift $P474, $P470
+  loop521_redo:
+    .const 'Sub' $P476 = "35_1280467473.99327" 
+    capture_lex $P476
+    $P476($P474)
+  loop521_next:
+    goto loop521_test
+  loop521_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P523, exception, 'type'
+    eq $P523, .CONTROL_LOOP_NEXT, loop521_next
+    eq $P523, .CONTROL_LOOP_REDO, loop521_redo
+  loop521_done:
     pop_eh 
-  for_undef_162:
-.annotate 'line', 73
-    find_lex $P537, "$/"
-    find_lex $P538, "$past"
-    $P539 = $P537."!make"($P538)
-.annotate 'line', 55
-    .return ($P539)
-  control_474:
+  for_undef_166:
+.annotate 'line', 70
+    find_lex $P524, "$/"
+    find_lex $P525, "$past"
+    $P526 = $P524."!make"($P525)
+.annotate 'line', 52
+    .return ($P526)
+  control_461:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P540, exception, "payload"
-    .return ($P540)
+    getattribute $P527, exception, "payload"
+    .return ($P527)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block488"  :anon :subid("36_1277356890.79584") :outer("35_1277356890.79584")
-    .param pmc param_491
+.sub "_block475"  :anon :subid("35_1280467473.99327") :outer("34_1280467473.99327")
+    .param pmc param_478
+.annotate 'line', 56
+    new $P477, "Undef"
+    .lex "$ast", $P477
+    .lex "$_", param_478
+    find_lex $P479, "$_"
+    $P480 = $P479."ast"()
+    store_lex "$ast", $P480
+.annotate 'line', 57
+    find_lex $P483, "$ast"
+    if $P483, if_482
+    set $P481, $P483
+    goto if_482_end
+  if_482:
+.annotate 'line', 58
+    find_lex $P490, "$lastlit"
+    if $P490, if_489
+    set $P488, $P490
+    goto if_489_end
+  if_489:
+    find_lex $P491, "$ast"
+    $S492 = $P491."pasttype"()
+    iseq $I493, $S492, "literal"
+    new $P488, 'Integer'
+    set $P488, $I493
+  if_489_end:
+    if $P488, if_487
+    set $P486, $P488
+    goto if_487_end
+  if_487:
 .annotate 'line', 59
-    new $P490, "Undef"
-    .lex "$ast", $P490
-    .lex "$_", param_491
-    find_lex $P492, "$_"
-    $P493 = $P492."ast"()
-    store_lex "$ast", $P493
-.annotate 'line', 60
-    find_lex $P496, "$ast"
-    if $P496, if_495
-    set $P494, $P496
-    goto if_495_end
-  if_495:
-.annotate 'line', 61
-    find_lex $P503, "$lastlit"
-    if $P503, if_502
-    set $P501, $P503
-    goto if_502_end
-  if_502:
-    find_lex $P504, "$ast"
-    $S505 = $P504."pasttype"()
-    iseq $I506, $S505, "literal"
-    new $P501, 'Integer'
-    set $P501, $I506
-  if_502_end:
-    if $P501, if_500
-    set $P499, $P501
-    goto if_500_end
-  if_500:
-.annotate 'line', 62
-    get_hll_global $P507, ["PAST"], "Node"
-    find_lex $P508, "$ast"
-    unless_null $P508, vivify_163
-    $P508 = root_new ['parrot';'ResizablePMCArray']
-  vivify_163:
-    set $P509, $P508[0]
-    unless_null $P509, vivify_164
-    new $P509, "Undef"
-  vivify_164:
-    $P510 = $P507."ACCEPTS"($P509)
-    isfalse $I511, $P510
-    new $P499, 'Integer'
-    set $P499, $I511
-  if_500_end:
-    if $P499, if_498
-.annotate 'line', 66
-    find_lex $P518, "$past"
-    find_lex $P519, "$ast"
-    $P518."push"($P519)
-.annotate 'line', 67
-    find_lex $P524, "$ast"
-    $S525 = $P524."pasttype"()
-    iseq $I526, $S525, "literal"
-    if $I526, if_523
-    new $P522, 'Integer'
-    set $P522, $I526
-    goto if_523_end
-  if_523:
-.annotate 'line', 68
-    get_hll_global $P527, ["PAST"], "Node"
-    find_lex $P528, "$ast"
-    unless_null $P528, vivify_165
-    $P528 = root_new ['parrot';'ResizablePMCArray']
-  vivify_165:
-    set $P529, $P528[0]
-    unless_null $P529, vivify_166
-    new $P529, "Undef"
-  vivify_166:
-    $P530 = $P527."ACCEPTS"($P529)
-    isfalse $I531, $P530
-    new $P522, 'Integer'
-    set $P522, $I531
-  if_523_end:
-    if $P522, if_521
-    new $P533, "Integer"
-    assign $P533, 0
-    set $P520, $P533
-    goto if_521_end
-  if_521:
-    find_lex $P532, "$ast"
-    set $P520, $P532
-  if_521_end:
-.annotate 'line', 69
-    store_lex "$lastlit", $P520
-.annotate 'line', 65
-    set $P497, $P520
-.annotate 'line', 62
-    goto if_498_end
-  if_498:
-.annotate 'line', 63
-    find_lex $P512, "$lastlit"
-    unless_null $P512, vivify_167
-    $P512 = root_new ['parrot';'ResizablePMCArray']
+    get_hll_global $P494, ["PAST"], "Node"
+    find_lex $P495, "$ast"
+    unless_null $P495, vivify_167
+    $P495 = root_new ['parrot';'ResizablePMCArray']
   vivify_167:
-    set $P513, $P512[0]
-    unless_null $P513, vivify_168
-    new $P513, "Undef"
+    set $P496, $P495[0]
+    unless_null $P496, vivify_168
+    new $P496, "Undef"
   vivify_168:
-    find_lex $P514, "$ast"
-    unless_null $P514, vivify_169
-    $P514 = root_new ['parrot';'ResizablePMCArray']
+    $P497 = $P494."ACCEPTS"($P496)
+    isfalse $I498, $P497
+    new $P486, 'Integer'
+    set $P486, $I498
+  if_487_end:
+    if $P486, if_485
+.annotate 'line', 63
+    find_lex $P505, "$past"
+    find_lex $P506, "$ast"
+    $P505."push"($P506)
+.annotate 'line', 64
+    find_lex $P511, "$ast"
+    $S512 = $P511."pasttype"()
+    iseq $I513, $S512, "literal"
+    if $I513, if_510
+    new $P509, 'Integer'
+    set $P509, $I513
+    goto if_510_end
+  if_510:
+.annotate 'line', 65
+    get_hll_global $P514, ["PAST"], "Node"
+    find_lex $P515, "$ast"
+    unless_null $P515, vivify_169
+    $P515 = root_new ['parrot';'ResizablePMCArray']
   vivify_169:
-    set $P515, $P514[0]
-    unless_null $P515, vivify_170
-    new $P515, "Undef"
+    set $P516, $P515[0]
+    unless_null $P516, vivify_170
+    new $P516, "Undef"
   vivify_170:
-    concat $P516, $P513, $P515
-    find_lex $P517, "$lastlit"
-    unless_null $P517, vivify_171
-    $P517 = root_new ['parrot';'ResizablePMCArray']
-    store_lex "$lastlit", $P517
-  vivify_171:
-    set $P517[0], $P516
+    $P517 = $P514."ACCEPTS"($P516)
+    isfalse $I518, $P517
+    new $P509, 'Integer'
+    set $P509, $I518
+  if_510_end:
+    if $P509, if_508
+    new $P520, "Integer"
+    assign $P520, 0
+    set $P507, $P520
+    goto if_508_end
+  if_508:
+    find_lex $P519, "$ast"
+    set $P507, $P519
+  if_508_end:
+.annotate 'line', 66
+    store_lex "$lastlit", $P507
 .annotate 'line', 62
-    set $P497, $P516
-  if_498_end:
+    set $P484, $P507
+.annotate 'line', 59
+    goto if_485_end
+  if_485:
 .annotate 'line', 60
-    set $P494, $P497
-  if_495_end:
-.annotate 'line', 58
-    .return ($P494)
+    find_lex $P499, "$lastlit"
+    unless_null $P499, vivify_171
+    $P499 = root_new ['parrot';'ResizablePMCArray']
+  vivify_171:
+    set $P500, $P499[0]
+    unless_null $P500, vivify_172
+    new $P500, "Undef"
+  vivify_172:
+    find_lex $P501, "$ast"
+    unless_null $P501, vivify_173
+    $P501 = root_new ['parrot';'ResizablePMCArray']
+  vivify_173:
+    set $P502, $P501[0]
+    unless_null $P502, vivify_174
+    new $P502, "Undef"
+  vivify_174:
+    concat $P503, $P500, $P502
+    find_lex $P504, "$lastlit"
+    unless_null $P504, vivify_175
+    $P504 = root_new ['parrot';'ResizablePMCArray']
+    store_lex "$lastlit", $P504
+  vivify_175:
+    set $P504[0], $P503
+.annotate 'line', 59
+    set $P484, $P503
+  if_485_end:
+.annotate 'line', 57
+    set $P481, $P484
+  if_482_end:
+.annotate 'line', 55
+    .return ($P481)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantified_atom"  :subid("37_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_544
-.annotate 'line', 76
-    .const 'Sub' $P553 = "38_1277356890.79584" 
-    capture_lex $P553
-    new $P543, 'ExceptionHandler'
-    set_addr $P543, control_542
-    $P543."handle_types"(.CONTROL_RETURN)
-    push_eh $P543
-    .lex "self", self
-    .lex "$/", param_544
-.annotate 'line', 77
-    new $P545, "Undef"
-    .lex "$past", $P545
-    find_lex $P546, "$/"
-    unless_null $P546, vivify_172
-    $P546 = root_new ['parrot';'Hash']
-  vivify_172:
-    set $P547, $P546["atom"]
-    unless_null $P547, vivify_173
-    new $P547, "Undef"
-  vivify_173:
-    $P548 = $P547."ast"()
-    store_lex "$past", $P548
-.annotate 'line', 78
-    find_lex $P550, "$/"
-    unless_null $P550, vivify_174
-    $P550 = root_new ['parrot';'Hash']
-  vivify_174:
-    set $P551, $P550["quantifier"]
-    unless_null $P551, vivify_175
-    new $P551, "Undef"
-  vivify_175:
-    if $P551, if_549
-.annotate 'line', 84
-    find_lex $P568, "$/"
-    unless_null $P568, vivify_176
-    $P568 = root_new ['parrot';'Hash']
+.sub "quantified_atom"  :subid("36_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_531
+.annotate 'line', 73
+    .const 'Sub' $P540 = "37_1280467473.99327" 
+    capture_lex $P540
+    new $P530, 'ExceptionHandler'
+    set_addr $P530, control_529
+    $P530."handle_types"(.CONTROL_RETURN)
+    push_eh $P530
+    .lex "self", self
+    .lex "$/", param_531
+.annotate 'line', 74
+    new $P532, "Undef"
+    .lex "$past", $P532
+    find_lex $P533, "$/"
+    unless_null $P533, vivify_176
+    $P533 = root_new ['parrot';'Hash']
   vivify_176:
-    set $P569, $P568["backmod"]
-    unless_null $P569, vivify_177
-    $P569 = root_new ['parrot';'ResizablePMCArray']
+    set $P534, $P533["atom"]
+    unless_null $P534, vivify_177
+    new $P534, "Undef"
   vivify_177:
-    set $P570, $P569[0]
-    unless_null $P570, vivify_178
-    new $P570, "Undef"
+    $P535 = $P534."ast"()
+    store_lex "$past", $P535
+.annotate 'line', 75
+    find_lex $P537, "$/"
+    unless_null $P537, vivify_178
+    $P537 = root_new ['parrot';'Hash']
   vivify_178:
-    unless $P570, if_567_end
-    find_lex $P571, "$past"
-    find_lex $P572, "$/"
-    unless_null $P572, vivify_179
-    $P572 = root_new ['parrot';'Hash']
+    set $P538, $P537["quantifier"]
+    unless_null $P538, vivify_179
+    new $P538, "Undef"
   vivify_179:
-    set $P573, $P572["backmod"]
-    unless_null $P573, vivify_180
-    $P573 = root_new ['parrot';'ResizablePMCArray']
+    if $P538, if_536
+.annotate 'line', 81
+    find_lex $P555, "$/"
+    unless_null $P555, vivify_180
+    $P555 = root_new ['parrot';'Hash']
   vivify_180:
-    set $P574, $P573[0]
-    unless_null $P574, vivify_181
-    new $P574, "Undef"
+    set $P556, $P555["backmod"]
+    unless_null $P556, vivify_181
+    $P556 = root_new ['parrot';'ResizablePMCArray']
   vivify_181:
-    "backmod"($P571, $P574)
-  if_567_end:
-    goto if_549_end
-  if_549:
-.annotate 'line', 78
-    .const 'Sub' $P553 = "38_1277356890.79584" 
-    capture_lex $P553
-    $P553()
-  if_549_end:
-.annotate 'line', 85
-    find_lex $P580, "$past"
-    if $P580, if_579
-    set $P578, $P580
-    goto if_579_end
-  if_579:
-    find_lex $P581, "$past"
-    $P582 = $P581."backtrack"()
-    isfalse $I583, $P582
-    new $P578, 'Integer'
-    set $P578, $I583
-  if_579_end:
-    if $P578, if_577
-    set $P576, $P578
-    goto if_577_end
-  if_577:
-    get_global $P584, "@MODIFIERS"
-    unless_null $P584, vivify_185
-    $P584 = root_new ['parrot';'ResizablePMCArray']
+    set $P557, $P556[0]
+    unless_null $P557, vivify_182
+    new $P557, "Undef"
+  vivify_182:
+    unless $P557, if_554_end
+    find_lex $P558, "$past"
+    find_lex $P559, "$/"
+    unless_null $P559, vivify_183
+    $P559 = root_new ['parrot';'Hash']
+  vivify_183:
+    set $P560, $P559["backmod"]
+    unless_null $P560, vivify_184
+    $P560 = root_new ['parrot';'ResizablePMCArray']
+  vivify_184:
+    set $P561, $P560[0]
+    unless_null $P561, vivify_185
+    new $P561, "Undef"
   vivify_185:
-    set $P585, $P584[0]
-    unless_null $P585, vivify_186
-    $P585 = root_new ['parrot';'Hash']
-  vivify_186:
-    set $P586, $P585["r"]
-    unless_null $P586, vivify_187
-    new $P586, "Undef"
-  vivify_187:
-    set $P576, $P586
-  if_577_end:
-    unless $P576, if_575_end
-.annotate 'line', 86
-    find_lex $P587, "$past"
-    $P587."backtrack"("r")
-  if_575_end:
-.annotate 'line', 88
-    find_lex $P588, "$/"
-    find_lex $P589, "$past"
-    $P590 = $P588."!make"($P589)
-.annotate 'line', 76
-    .return ($P590)
-  control_542:
+    "backmod"($P558, $P561)
+  if_554_end:
+    goto if_536_end
+  if_536:
+.annotate 'line', 75
+    .const 'Sub' $P540 = "37_1280467473.99327" 
+    capture_lex $P540
+    $P540()
+  if_536_end:
+.annotate 'line', 82
+    find_lex $P567, "$past"
+    if $P567, if_566
+    set $P565, $P567
+    goto if_566_end
+  if_566:
+    find_lex $P568, "$past"
+    $P569 = $P568."backtrack"()
+    isfalse $I570, $P569
+    new $P565, 'Integer'
+    set $P565, $I570
+  if_566_end:
+    if $P565, if_564
+    set $P563, $P565
+    goto if_564_end
+  if_564:
+    get_global $P571, "@MODIFIERS"
+    unless_null $P571, vivify_189
+    $P571 = root_new ['parrot';'ResizablePMCArray']
+  vivify_189:
+    set $P572, $P571[0]
+    unless_null $P572, vivify_190
+    $P572 = root_new ['parrot';'Hash']
+  vivify_190:
+    set $P573, $P572["r"]
+    unless_null $P573, vivify_191
+    new $P573, "Undef"
+  vivify_191:
+    set $P563, $P573
+  if_564_end:
+    unless $P563, if_562_end
+.annotate 'line', 83
+    find_lex $P574, "$past"
+    $P574."backtrack"("r")
+  if_562_end:
+.annotate 'line', 85
+    find_lex $P575, "$/"
+    find_lex $P576, "$past"
+    $P577 = $P575."!make"($P576)
+.annotate 'line', 73
+    .return ($P577)
+  control_529:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P591, exception, "payload"
-    .return ($P591)
+    getattribute $P578, exception, "payload"
+    .return ($P578)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block552"  :anon :subid("38_1277356890.79584") :outer("37_1277356890.79584")
-.annotate 'line', 80
-    new $P554, "Undef"
-    .lex "$qast", $P554
-.annotate 'line', 79
-    find_lex $P556, "$past"
-    isfalse $I557, $P556
-    unless $I557, if_555_end
-    find_lex $P558, "$/"
-    $P559 = $P558."CURSOR"()
-    $P559."panic"("Quantifier follows nothing")
-  if_555_end:
-.annotate 'line', 80
-    find_lex $P560, "$/"
-    unless_null $P560, vivify_182
-    $P560 = root_new ['parrot';'Hash']
-  vivify_182:
-    set $P561, $P560["quantifier"]
-    unless_null $P561, vivify_183
-    $P561 = root_new ['parrot';'ResizablePMCArray']
-  vivify_183:
-    set $P562, $P561[0]
-    unless_null $P562, vivify_184
-    new $P562, "Undef"
-  vivify_184:
-    $P563 = $P562."ast"()
-    store_lex "$qast", $P563
-.annotate 'line', 81
-    find_lex $P564, "$qast"
-    find_lex $P565, "$past"
-    $P564."unshift"($P565)
-.annotate 'line', 82
-    find_lex $P566, "$qast"
-    store_lex "$past", $P566
+.sub "_block539"  :anon :subid("37_1280467473.99327") :outer("36_1280467473.99327")
+.annotate 'line', 77
+    new $P541, "Undef"
+    .lex "$qast", $P541
+.annotate 'line', 76
+    find_lex $P543, "$past"
+    isfalse $I544, $P543
+    unless $I544, if_542_end
+    find_lex $P545, "$/"
+    $P546 = $P545."CURSOR"()
+    $P546."panic"("Quantifier follows nothing")
+  if_542_end:
+.annotate 'line', 77
+    find_lex $P547, "$/"
+    unless_null $P547, vivify_186
+    $P547 = root_new ['parrot';'Hash']
+  vivify_186:
+    set $P548, $P547["quantifier"]
+    unless_null $P548, vivify_187
+    $P548 = root_new ['parrot';'ResizablePMCArray']
+  vivify_187:
+    set $P549, $P548[0]
+    unless_null $P549, vivify_188
+    new $P549, "Undef"
+  vivify_188:
+    $P550 = $P549."ast"()
+    store_lex "$qast", $P550
 .annotate 'line', 78
-    .return ($P566)
+    find_lex $P551, "$qast"
+    find_lex $P552, "$past"
+    $P551."unshift"($P552)
+.annotate 'line', 79
+    find_lex $P553, "$qast"
+    store_lex "$past", $P553
+.annotate 'line', 75
+    .return ($P553)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "atom"  :subid("39_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_595
-.annotate 'line', 91
-    new $P594, 'ExceptionHandler'
-    set_addr $P594, control_593
-    $P594."handle_types"(.CONTROL_RETURN)
-    push_eh $P594
+.sub "atom"  :subid("38_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_582
+.annotate 'line', 88
+    new $P581, 'ExceptionHandler'
+    set_addr $P581, control_580
+    $P581."handle_types"(.CONTROL_RETURN)
+    push_eh $P581
     .lex "self", self
-    .lex "$/", param_595
-.annotate 'line', 92
-    new $P596, "Undef"
-    .lex "$past", $P596
-.annotate 'line', 91
-    find_lex $P597, "$past"
-.annotate 'line', 93
-    find_lex $P599, "$/"
-    unless_null $P599, vivify_188
-    $P599 = root_new ['parrot';'Hash']
-  vivify_188:
-    set $P600, $P599["metachar"]
-    unless_null $P600, vivify_189
-    new $P600, "Undef"
-  vivify_189:
-    if $P600, if_598
-.annotate 'line', 95
-    get_hll_global $P604, ["PAST"], "Regex"
-    find_lex $P605, "$/"
-    set $S606, $P605
-    find_lex $P607, "$/"
-    $P608 = $P604."new"($S606, "literal" :named("pasttype"), $P607 :named("node"))
-    store_lex "$past", $P608
-.annotate 'line', 96
-    get_global $P610, "@MODIFIERS"
-    unless_null $P610, vivify_190
-    $P610 = root_new ['parrot';'ResizablePMCArray']
-  vivify_190:
-    set $P611, $P610[0]
-    unless_null $P611, vivify_191
-    $P611 = root_new ['parrot';'Hash']
-  vivify_191:
-    set $P612, $P611["i"]
-    unless_null $P612, vivify_192
-    new $P612, "Undef"
+    .lex "$/", param_582
+.annotate 'line', 89
+    new $P583, "Undef"
+    .lex "$past", $P583
+.annotate 'line', 88
+    find_lex $P584, "$past"
+.annotate 'line', 90
+    find_lex $P586, "$/"
+    unless_null $P586, vivify_192
+    $P586 = root_new ['parrot';'Hash']
   vivify_192:
-    unless $P612, if_609_end
-    find_lex $P613, "$past"
-    $P613."subtype"("ignorecase")
-  if_609_end:
-.annotate 'line', 94
-    goto if_598_end
-  if_598:
-.annotate 'line', 93
-    find_lex $P601, "$/"
-    unless_null $P601, vivify_193
-    $P601 = root_new ['parrot';'Hash']
+    set $P587, $P586["metachar"]
+    unless_null $P587, vivify_193
+    new $P587, "Undef"
   vivify_193:
-    set $P602, $P601["metachar"]
-    unless_null $P602, vivify_194
-    new $P602, "Undef"
+    if $P587, if_585
+.annotate 'line', 92
+    get_hll_global $P591, ["PAST"], "Regex"
+    find_lex $P592, "$/"
+    set $S593, $P592
+    find_lex $P594, "$/"
+    $P595 = $P591."new"($S593, "literal" :named("pasttype"), $P594 :named("node"))
+    store_lex "$past", $P595
+.annotate 'line', 93
+    get_global $P597, "@MODIFIERS"
+    unless_null $P597, vivify_194
+    $P597 = root_new ['parrot';'ResizablePMCArray']
   vivify_194:
-    $P603 = $P602."ast"()
-    store_lex "$past", $P603
-  if_598_end:
-.annotate 'line', 98
-    find_lex $P614, "$/"
-    find_lex $P615, "$past"
-    $P616 = $P614."!make"($P615)
+    set $P598, $P597[0]
+    unless_null $P598, vivify_195
+    $P598 = root_new ['parrot';'Hash']
+  vivify_195:
+    set $P599, $P598["i"]
+    unless_null $P599, vivify_196
+    new $P599, "Undef"
+  vivify_196:
+    unless $P599, if_596_end
+    find_lex $P600, "$past"
+    $P600."subtype"("ignorecase")
+  if_596_end:
 .annotate 'line', 91
-    .return ($P616)
-  control_593:
+    goto if_585_end
+  if_585:
+.annotate 'line', 90
+    find_lex $P588, "$/"
+    unless_null $P588, vivify_197
+    $P588 = root_new ['parrot';'Hash']
+  vivify_197:
+    set $P589, $P588["metachar"]
+    unless_null $P589, vivify_198
+    new $P589, "Undef"
+  vivify_198:
+    $P590 = $P589."ast"()
+    store_lex "$past", $P590
+  if_585_end:
+.annotate 'line', 95
+    find_lex $P601, "$/"
+    find_lex $P602, "$past"
+    $P603 = $P601."!make"($P602)
+.annotate 'line', 88
+    .return ($P603)
+  control_580:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P617, exception, "payload"
-    .return ($P617)
+    getattribute $P604, exception, "payload"
+    .return ($P604)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantifier:sym<*>"  :subid("40_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_621
-.annotate 'line', 101
-    new $P620, 'ExceptionHandler'
-    set_addr $P620, control_619
-    $P620."handle_types"(.CONTROL_RETURN)
-    push_eh $P620
-    .lex "self", self
-    .lex "$/", param_621
-.annotate 'line', 102
-    new $P622, "Undef"
-    .lex "$past", $P622
-    get_hll_global $P623, ["PAST"], "Regex"
-    find_lex $P624, "$/"
-    $P625 = $P623."new"("quant" :named("pasttype"), $P624 :named("node"))
-    store_lex "$past", $P625
-.annotate 'line', 103
-    find_lex $P626, "$/"
-    find_lex $P627, "$past"
-    find_lex $P628, "$/"
-    unless_null $P628, vivify_195
-    $P628 = root_new ['parrot';'Hash']
-  vivify_195:
-    set $P629, $P628["backmod"]
-    unless_null $P629, vivify_196
-    new $P629, "Undef"
-  vivify_196:
-    $P630 = "backmod"($P627, $P629)
-    $P631 = $P626."!make"($P630)
-.annotate 'line', 101
-    .return ($P631)
-  control_619:
+.sub "quantifier:sym<*>"  :subid("39_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_608
+.annotate 'line', 98
+    new $P607, 'ExceptionHandler'
+    set_addr $P607, control_606
+    $P607."handle_types"(.CONTROL_RETURN)
+    push_eh $P607
+    .lex "self", self
+    .lex "$/", param_608
+.annotate 'line', 99
+    new $P609, "Undef"
+    .lex "$past", $P609
+    get_hll_global $P610, ["PAST"], "Regex"
+    find_lex $P611, "$/"
+    $P612 = $P610."new"("quant" :named("pasttype"), $P611 :named("node"))
+    store_lex "$past", $P612
+.annotate 'line', 100
+    find_lex $P613, "$/"
+    find_lex $P614, "$past"
+    find_lex $P615, "$/"
+    unless_null $P615, vivify_199
+    $P615 = root_new ['parrot';'Hash']
+  vivify_199:
+    set $P616, $P615["backmod"]
+    unless_null $P616, vivify_200
+    new $P616, "Undef"
+  vivify_200:
+    $P617 = "backmod"($P614, $P616)
+    $P618 = $P613."!make"($P617)
+.annotate 'line', 98
+    .return ($P618)
+  control_606:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P632, exception, "payload"
-    .return ($P632)
+    getattribute $P619, exception, "payload"
+    .return ($P619)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantifier:sym<+>"  :subid("41_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_636
-.annotate 'line', 106
-    new $P635, 'ExceptionHandler'
-    set_addr $P635, control_634
-    $P635."handle_types"(.CONTROL_RETURN)
-    push_eh $P635
-    .lex "self", self
-    .lex "$/", param_636
-.annotate 'line', 107
-    new $P637, "Undef"
-    .lex "$past", $P637
-    get_hll_global $P638, ["PAST"], "Regex"
-    find_lex $P639, "$/"
-    $P640 = $P638."new"("quant" :named("pasttype"), 1 :named("min"), $P639 :named("node"))
-    store_lex "$past", $P640
-.annotate 'line', 108
-    find_lex $P641, "$/"
-    find_lex $P642, "$past"
-    find_lex $P643, "$/"
-    unless_null $P643, vivify_197
-    $P643 = root_new ['parrot';'Hash']
-  vivify_197:
-    set $P644, $P643["backmod"]
-    unless_null $P644, vivify_198
-    new $P644, "Undef"
-  vivify_198:
-    $P645 = "backmod"($P642, $P644)
-    $P646 = $P641."!make"($P645)
-.annotate 'line', 106
-    .return ($P646)
-  control_634:
+.sub "quantifier:sym<+>"  :subid("40_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_623
+.annotate 'line', 103
+    new $P622, 'ExceptionHandler'
+    set_addr $P622, control_621
+    $P622."handle_types"(.CONTROL_RETURN)
+    push_eh $P622
+    .lex "self", self
+    .lex "$/", param_623
+.annotate 'line', 104
+    new $P624, "Undef"
+    .lex "$past", $P624
+    get_hll_global $P625, ["PAST"], "Regex"
+    find_lex $P626, "$/"
+    $P627 = $P625."new"("quant" :named("pasttype"), 1 :named("min"), $P626 :named("node"))
+    store_lex "$past", $P627
+.annotate 'line', 105
+    find_lex $P628, "$/"
+    find_lex $P629, "$past"
+    find_lex $P630, "$/"
+    unless_null $P630, vivify_201
+    $P630 = root_new ['parrot';'Hash']
+  vivify_201:
+    set $P631, $P630["backmod"]
+    unless_null $P631, vivify_202
+    new $P631, "Undef"
+  vivify_202:
+    $P632 = "backmod"($P629, $P631)
+    $P633 = $P628."!make"($P632)
+.annotate 'line', 103
+    .return ($P633)
+  control_621:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P647, exception, "payload"
-    .return ($P647)
+    getattribute $P634, exception, "payload"
+    .return ($P634)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantifier:sym<?>"  :subid("42_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_651
-.annotate 'line', 111
-    new $P650, 'ExceptionHandler'
-    set_addr $P650, control_649
-    $P650."handle_types"(.CONTROL_RETURN)
-    push_eh $P650
+.sub "quantifier:sym<?>"  :subid("41_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_638
+.annotate 'line', 108
+    new $P637, 'ExceptionHandler'
+    set_addr $P637, control_636
+    $P637."handle_types"(.CONTROL_RETURN)
+    push_eh $P637
     .lex "self", self
-    .lex "$/", param_651
-.annotate 'line', 112
-    new $P652, "Undef"
-    .lex "$past", $P652
-    get_hll_global $P653, ["PAST"], "Regex"
-    find_lex $P654, "$/"
-    $P655 = $P653."new"("quant" :named("pasttype"), 0 :named("min"), 1 :named("max"), $P654 :named("node"))
-    store_lex "$past", $P655
-.annotate 'line', 113
-    find_lex $P656, "$/"
-    find_lex $P657, "$past"
-    find_lex $P658, "$/"
-    unless_null $P658, vivify_199
-    $P658 = root_new ['parrot';'Hash']
-  vivify_199:
-    set $P659, $P658["backmod"]
-    unless_null $P659, vivify_200
-    new $P659, "Undef"
-  vivify_200:
-    $P660 = "backmod"($P657, $P659)
-    $P656."!make"($P660)
-.annotate 'line', 114
-    find_lex $P661, "$/"
-    find_lex $P662, "$past"
-    $P663 = $P661."!make"($P662)
+    .lex "$/", param_638
+.annotate 'line', 109
+    new $P639, "Undef"
+    .lex "$past", $P639
+    get_hll_global $P640, ["PAST"], "Regex"
+    find_lex $P641, "$/"
+    $P642 = $P640."new"("quant" :named("pasttype"), 0 :named("min"), 1 :named("max"), $P641 :named("node"))
+    store_lex "$past", $P642
+.annotate 'line', 110
+    find_lex $P643, "$/"
+    find_lex $P644, "$past"
+    find_lex $P645, "$/"
+    unless_null $P645, vivify_203
+    $P645 = root_new ['parrot';'Hash']
+  vivify_203:
+    set $P646, $P645["backmod"]
+    unless_null $P646, vivify_204
+    new $P646, "Undef"
+  vivify_204:
+    $P647 = "backmod"($P644, $P646)
+    $P643."!make"($P647)
 .annotate 'line', 111
-    .return ($P663)
-  control_649:
+    find_lex $P648, "$/"
+    find_lex $P649, "$past"
+    $P650 = $P648."!make"($P649)
+.annotate 'line', 108
+    .return ($P650)
+  control_636:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P664, exception, "payload"
-    .return ($P664)
+    getattribute $P651, exception, "payload"
+    .return ($P651)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantifier:sym<**>"  :subid("43_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_668
-.annotate 'line', 117
-    .const 'Sub' $P683 = "44_1277356890.79584" 
-    capture_lex $P683
-    new $P667, 'ExceptionHandler'
-    set_addr $P667, control_666
-    $P667."handle_types"(.CONTROL_RETURN)
-    push_eh $P667
+.sub "quantifier:sym<**>"  :subid("42_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_655
+.annotate 'line', 114
+    .const 'Sub' $P670 = "43_1280467473.99327" 
+    capture_lex $P670
+    new $P654, 'ExceptionHandler'
+    set_addr $P654, control_653
+    $P654."handle_types"(.CONTROL_RETURN)
+    push_eh $P654
     .lex "self", self
-    .lex "$/", param_668
-.annotate 'line', 118
-    new $P669, "Undef"
-    .lex "$past", $P669
-.annotate 'line', 119
-    new $P670, "Undef"
-    .lex "$ws", $P670
-.annotate 'line', 117
-    find_lex $P671, "$past"
-.annotate 'line', 119
-    find_lex $P674, "$/"
-    unless_null $P674, vivify_201
-    $P674 = root_new ['parrot';'Hash']
-  vivify_201:
-    set $P675, $P674["normspace"]
-    unless_null $P675, vivify_202
-    new $P675, "Undef"
-  vivify_202:
-    if $P675, if_673
-    set $P672, $P675
-    goto if_673_end
-  if_673:
-    get_global $P676, "@MODIFIERS"
-    unless_null $P676, vivify_203
-    $P676 = root_new ['parrot';'ResizablePMCArray']
-  vivify_203:
-    set $P677, $P676[0]
-    unless_null $P677, vivify_204
-    $P677 = root_new ['parrot';'Hash']
-  vivify_204:
-    set $P678, $P677["s"]
-    unless_null $P678, vivify_205
-    new $P678, "Undef"
+    .lex "$/", param_655
+.annotate 'line', 115
+    new $P656, "Undef"
+    .lex "$past", $P656
+.annotate 'line', 116
+    new $P657, "Undef"
+    .lex "$ws", $P657
+.annotate 'line', 114
+    find_lex $P658, "$past"
+.annotate 'line', 116
+    find_lex $P661, "$/"
+    unless_null $P661, vivify_205
+    $P661 = root_new ['parrot';'Hash']
   vivify_205:
-    set $P672, $P678
-  if_673_end:
-    store_lex "$ws", $P672
-.annotate 'line', 120
-    find_lex $P680, "$/"
-    unless_null $P680, vivify_206
-    $P680 = root_new ['parrot';'Hash']
+    set $P662, $P661["normspace"]
+    unless_null $P662, vivify_206
+    new $P662, "Undef"
   vivify_206:
-    set $P681, $P680["quantified_atom"]
-    unless_null $P681, vivify_207
-    new $P681, "Undef"
+    if $P662, if_660
+    set $P659, $P662
+    goto if_660_end
+  if_660:
+    get_global $P663, "@MODIFIERS"
+    unless_null $P663, vivify_207
+    $P663 = root_new ['parrot';'ResizablePMCArray']
   vivify_207:
-    if $P681, if_679
-.annotate 'line', 136
-    get_hll_global $P701, ["PAST"], "Regex"
-    find_lex $P702, "$/"
-    unless_null $P702, vivify_208
-    $P702 = root_new ['parrot';'Hash']
+    set $P664, $P663[0]
+    unless_null $P664, vivify_208
+    $P664 = root_new ['parrot';'Hash']
   vivify_208:
-    set $P703, $P702["min"]
-    unless_null $P703, vivify_209
-    new $P703, "Undef"
+    set $P665, $P664["s"]
+    unless_null $P665, vivify_209
+    new $P665, "Undef"
   vivify_209:
-    set $N704, $P703
-    find_lex $P705, "$/"
-    $P706 = $P701."new"("quant" :named("pasttype"), $N704 :named("min"), $P705 :named("node"))
-    store_lex "$past", $P706
-.annotate 'line', 137
-    find_lex $P708, "$/"
-    unless_null $P708, vivify_210
-    $P708 = root_new ['parrot';'Hash']
+    set $P659, $P665
+  if_660_end:
+    store_lex "$ws", $P659
+.annotate 'line', 117
+    find_lex $P667, "$/"
+    unless_null $P667, vivify_210
+    $P667 = root_new ['parrot';'Hash']
   vivify_210:
-    set $P709, $P708["max"]
-    unless_null $P709, vivify_211
-    new $P709, "Undef"
+    set $P668, $P667["quantified_atom"]
+    unless_null $P668, vivify_211
+    new $P668, "Undef"
   vivify_211:
-    isfalse $I710, $P709
-    if $I710, if_707
-.annotate 'line', 138
-    find_lex $P716, "$/"
-    unless_null $P716, vivify_212
-    $P716 = root_new ['parrot';'Hash']
+    if $P668, if_666
+.annotate 'line', 133
+    get_hll_global $P688, ["PAST"], "Regex"
+    find_lex $P689, "$/"
+    unless_null $P689, vivify_212
+    $P689 = root_new ['parrot';'Hash']
   vivify_212:
-    set $P717, $P716["max"]
-    unless_null $P717, vivify_213
-    $P717 = root_new ['parrot';'ResizablePMCArray']
+    set $P690, $P689["min"]
+    unless_null $P690, vivify_213
+    new $P690, "Undef"
   vivify_213:
-    set $P718, $P717[0]
-    unless_null $P718, vivify_214
-    new $P718, "Undef"
+    set $N691, $P690
+    find_lex $P692, "$/"
+    $P693 = $P688."new"("quant" :named("pasttype"), $N691 :named("min"), $P692 :named("node"))
+    store_lex "$past", $P693
+.annotate 'line', 134
+    find_lex $P695, "$/"
+    unless_null $P695, vivify_214
+    $P695 = root_new ['parrot';'Hash']
   vivify_214:
-    set $S719, $P718
-    isne $I720, $S719, "*"
-    unless $I720, if_715_end
-    find_lex $P721, "$past"
-    find_lex $P722, "$/"
-    unless_null $P722, vivify_215
-    $P722 = root_new ['parrot';'Hash']
+    set $P696, $P695["max"]
+    unless_null $P696, vivify_215
+    new $P696, "Undef"
   vivify_215:
-    set $P723, $P722["max"]
-    unless_null $P723, vivify_216
-    $P723 = root_new ['parrot';'ResizablePMCArray']
+    isfalse $I697, $P696
+    if $I697, if_694
+.annotate 'line', 135
+    find_lex $P703, "$/"
+    unless_null $P703, vivify_216
+    $P703 = root_new ['parrot';'Hash']
   vivify_216:
-    set $P724, $P723[0]
-    unless_null $P724, vivify_217
-    new $P724, "Undef"
+    set $P704, $P703["max"]
+    unless_null $P704, vivify_217
+    $P704 = root_new ['parrot';'ResizablePMCArray']
   vivify_217:
-    set $N725, $P724
-    $P721."max"($N725)
-  if_715_end:
-    goto if_707_end
-  if_707:
-.annotate 'line', 137
-    find_lex $P711, "$past"
-    find_lex $P712, "$/"
-    unless_null $P712, vivify_218
-    $P712 = root_new ['parrot';'Hash']
+    set $P705, $P704[0]
+    unless_null $P705, vivify_218
+    new $P705, "Undef"
   vivify_218:
-    set $P713, $P712["min"]
-    unless_null $P713, vivify_219
-    new $P713, "Undef"
+    set $S706, $P705
+    isne $I707, $S706, "*"
+    unless $I707, if_702_end
+    find_lex $P708, "$past"
+    find_lex $P709, "$/"
+    unless_null $P709, vivify_219
+    $P709 = root_new ['parrot';'Hash']
   vivify_219:
-    set $N714, $P713
-    $P711."max"($N714)
-  if_707_end:
-.annotate 'line', 139
-    find_lex $P727, "$ws"
-    unless $P727, if_726_end
-    find_lex $P728, "$past"
-    get_hll_global $P729, ["PAST"], "Regex"
-    $P730 = $P729."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
-    $P728."sep"($P730)
-  if_726_end:
-.annotate 'line', 135
-    goto if_679_end
-  if_679:
-.annotate 'line', 120
-    .const 'Sub' $P683 = "44_1277356890.79584" 
-    capture_lex $P683
-    $P683()
-  if_679_end:
-.annotate 'line', 143
-    find_lex $P731, "$/"
-    find_lex $P732, "$past"
-    find_lex $P733, "$/"
-    unless_null $P733, vivify_222
-    $P733 = root_new ['parrot';'Hash']
+    set $P710, $P709["max"]
+    unless_null $P710, vivify_220
+    $P710 = root_new ['parrot';'ResizablePMCArray']
+  vivify_220:
+    set $P711, $P710[0]
+    unless_null $P711, vivify_221
+    new $P711, "Undef"
+  vivify_221:
+    set $N712, $P711
+    $P708."max"($N712)
+  if_702_end:
+    goto if_694_end
+  if_694:
+.annotate 'line', 134
+    find_lex $P698, "$past"
+    find_lex $P699, "$/"
+    unless_null $P699, vivify_222
+    $P699 = root_new ['parrot';'Hash']
   vivify_222:
-    set $P734, $P733["backmod"]
-    unless_null $P734, vivify_223
-    new $P734, "Undef"
+    set $P700, $P699["min"]
+    unless_null $P700, vivify_223
+    new $P700, "Undef"
   vivify_223:
-    $P735 = "backmod"($P732, $P734)
-    $P736 = $P731."!make"($P735)
+    set $N701, $P700
+    $P698."max"($N701)
+  if_694_end:
+.annotate 'line', 136
+    find_lex $P714, "$ws"
+    unless $P714, if_713_end
+    find_lex $P715, "$past"
+    get_hll_global $P716, ["PAST"], "Regex"
+    $P717 = $P716."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
+    $P715."sep"($P717)
+  if_713_end:
+.annotate 'line', 132
+    goto if_666_end
+  if_666:
 .annotate 'line', 117
-    .return ($P736)
-  control_666:
+    .const 'Sub' $P670 = "43_1280467473.99327" 
+    capture_lex $P670
+    $P670()
+  if_666_end:
+.annotate 'line', 140
+    find_lex $P718, "$/"
+    find_lex $P719, "$past"
+    find_lex $P720, "$/"
+    unless_null $P720, vivify_226
+    $P720 = root_new ['parrot';'Hash']
+  vivify_226:
+    set $P721, $P720["backmod"]
+    unless_null $P721, vivify_227
+    new $P721, "Undef"
+  vivify_227:
+    $P722 = "backmod"($P719, $P721)
+    $P723 = $P718."!make"($P722)
+.annotate 'line', 114
+    .return ($P723)
+  control_653:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P737, exception, "payload"
-    .return ($P737)
+    getattribute $P724, exception, "payload"
+    .return ($P724)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block682"  :anon :subid("44_1277356890.79584") :outer("43_1277356890.79584")
-.annotate 'line', 121
-    new $P684, "Undef"
-    .lex "$ast", $P684
-    find_lex $P685, "$/"
-    unless_null $P685, vivify_220
-    $P685 = root_new ['parrot';'Hash']
-  vivify_220:
-    set $P686, $P685["quantified_atom"]
-    unless_null $P686, vivify_221
-    new $P686, "Undef"
-  vivify_221:
-    $P687 = $P686."ast"()
-    store_lex "$ast", $P687
+.sub "_block669"  :anon :subid("43_1280467473.99327") :outer("42_1280467473.99327")
+.annotate 'line', 118
+    new $P671, "Undef"
+    .lex "$ast", $P671
+    find_lex $P672, "$/"
+    unless_null $P672, vivify_224
+    $P672 = root_new ['parrot';'Hash']
+  vivify_224:
+    set $P673, $P672["quantified_atom"]
+    unless_null $P673, vivify_225
+    new $P673, "Undef"
+  vivify_225:
+    $P674 = $P673."ast"()
+    store_lex "$ast", $P674
+.annotate 'line', 119
+    find_lex $P676, "$ws"
+    unless $P676, if_675_end
+.annotate 'line', 120
+    get_hll_global $P677, ["PAST"], "Regex"
 .annotate 'line', 122
-    find_lex $P689, "$ws"
-    unless $P689, if_688_end
-.annotate 'line', 123
-    get_hll_global $P690, ["PAST"], "Regex"
+    get_hll_global $P678, ["PAST"], "Regex"
+    $P679 = $P678."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
+    find_lex $P680, "$ast"
 .annotate 'line', 125
-    get_hll_global $P691, ["PAST"], "Regex"
-    $P692 = $P691."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
-    find_lex $P693, "$ast"
-.annotate 'line', 128
-    get_hll_global $P694, ["PAST"], "Regex"
-    $P695 = $P694."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
-    $P696 = $P690."new"($P692, $P693, $P695, "concat" :named("pasttype"))
-.annotate 'line', 123
-    store_lex "$ast", $P696
-  if_688_end:
-.annotate 'line', 132
-    get_hll_global $P697, ["PAST"], "Regex"
-    find_lex $P698, "$ast"
-    find_lex $P699, "$/"
-    $P700 = $P697."new"("quant" :named("pasttype"), 1 :named("min"), $P698 :named("sep"), $P699 :named("node"))
-    store_lex "$past", $P700
+    get_hll_global $P681, ["PAST"], "Regex"
+    $P682 = $P681."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
+    $P683 = $P677."new"($P679, $P680, $P682, "concat" :named("pasttype"))
 .annotate 'line', 120
-    .return ($P700)
+    store_lex "$ast", $P683
+  if_675_end:
+.annotate 'line', 129
+    get_hll_global $P684, ["PAST"], "Regex"
+    find_lex $P685, "$ast"
+    find_lex $P686, "$/"
+    $P687 = $P684."new"("quant" :named("pasttype"), 1 :named("min"), $P685 :named("sep"), $P686 :named("node"))
+    store_lex "$past", $P687
+.annotate 'line', 117
+    .return ($P687)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<ws>"  :subid("45_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_741
-.annotate 'line', 146
-    new $P740, 'ExceptionHandler'
-    set_addr $P740, control_739
-    $P740."handle_types"(.CONTROL_RETURN)
-    push_eh $P740
-    .lex "self", self
-    .lex "$/", param_741
-.annotate 'line', 147
-    new $P742, "Undef"
-    .lex "$past", $P742
+.sub "metachar:sym<ws>"  :subid("44_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_728
+.annotate 'line', 143
+    new $P727, 'ExceptionHandler'
+    set_addr $P727, control_726
+    $P727."handle_types"(.CONTROL_RETURN)
+    push_eh $P727
+    .lex "self", self
+    .lex "$/", param_728
+.annotate 'line', 144
+    new $P729, "Undef"
+    .lex "$past", $P729
+.annotate 'line', 145
+    get_global $P732, "@MODIFIERS"
+    unless_null $P732, vivify_228
+    $P732 = root_new ['parrot';'ResizablePMCArray']
+  vivify_228:
+    set $P733, $P732[0]
+    unless_null $P733, vivify_229
+    $P733 = root_new ['parrot';'Hash']
+  vivify_229:
+    set $P734, $P733["s"]
+    unless_null $P734, vivify_230
+    new $P734, "Undef"
+  vivify_230:
+    if $P734, if_731
+    new $P738, "Integer"
+    assign $P738, 0
+    set $P730, $P738
+    goto if_731_end
+  if_731:
+    get_hll_global $P735, ["PAST"], "Regex"
+    find_lex $P736, "$/"
+    $P737 = $P735."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"), $P736 :named("node"))
+    set $P730, $P737
+  if_731_end:
+    store_lex "$past", $P730
 .annotate 'line', 148
-    get_global $P745, "@MODIFIERS"
-    unless_null $P745, vivify_224
-    $P745 = root_new ['parrot';'ResizablePMCArray']
-  vivify_224:
-    set $P746, $P745[0]
-    unless_null $P746, vivify_225
-    $P746 = root_new ['parrot';'Hash']
-  vivify_225:
-    set $P747, $P746["s"]
-    unless_null $P747, vivify_226
-    new $P747, "Undef"
-  vivify_226:
-    if $P747, if_744
-    new $P751, "Integer"
-    assign $P751, 0
-    set $P743, $P751
-    goto if_744_end
-  if_744:
-    get_hll_global $P748, ["PAST"], "Regex"
-    find_lex $P749, "$/"
-    $P750 = $P748."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"), $P749 :named("node"))
-    set $P743, $P750
-  if_744_end:
-    store_lex "$past", $P743
-.annotate 'line', 151
-    find_lex $P752, "$/"
-    find_lex $P753, "$past"
-    $P754 = $P752."!make"($P753)
-.annotate 'line', 146
-    .return ($P754)
-  control_739:
+    find_lex $P739, "$/"
+    find_lex $P740, "$past"
+    $P741 = $P739."!make"($P740)
+.annotate 'line', 143
+    .return ($P741)
+  control_726:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P755, exception, "payload"
-    .return ($P755)
+    getattribute $P742, exception, "payload"
+    .return ($P742)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<[ ]>"  :subid("46_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_759
-.annotate 'line', 155
-    new $P758, 'ExceptionHandler'
-    set_addr $P758, control_757
-    $P758."handle_types"(.CONTROL_RETURN)
-    push_eh $P758
+.sub "metachar:sym<[ ]>"  :subid("45_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_746
+.annotate 'line', 152
+    new $P745, 'ExceptionHandler'
+    set_addr $P745, control_744
+    $P745."handle_types"(.CONTROL_RETURN)
+    push_eh $P745
     .lex "self", self
-    .lex "$/", param_759
-.annotate 'line', 156
-    find_lex $P760, "$/"
-    find_lex $P761, "$/"
-    unless_null $P761, vivify_227
-    $P761 = root_new ['parrot';'Hash']
-  vivify_227:
-    set $P762, $P761["nibbler"]
-    unless_null $P762, vivify_228
-    new $P762, "Undef"
-  vivify_228:
-    $P763 = $P762."ast"()
-    $P764 = $P760."!make"($P763)
-.annotate 'line', 155
-    .return ($P764)
-  control_757:
+    .lex "$/", param_746
+.annotate 'line', 153
+    find_lex $P747, "$/"
+    find_lex $P748, "$/"
+    unless_null $P748, vivify_231
+    $P748 = root_new ['parrot';'Hash']
+  vivify_231:
+    set $P749, $P748["nibbler"]
+    unless_null $P749, vivify_232
+    new $P749, "Undef"
+  vivify_232:
+    $P750 = $P749."ast"()
+    $P751 = $P747."!make"($P750)
+.annotate 'line', 152
+    .return ($P751)
+  control_744:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P765, exception, "payload"
-    .return ($P765)
+    getattribute $P752, exception, "payload"
+    .return ($P752)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<( )>"  :subid("47_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_769
-.annotate 'line', 159
-    new $P768, 'ExceptionHandler'
-    set_addr $P768, control_767
-    $P768."handle_types"(.CONTROL_RETURN)
-    push_eh $P768
+.sub "metachar:sym<( )>"  :subid("46_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_756
+.annotate 'line', 156
+    new $P755, 'ExceptionHandler'
+    set_addr $P755, control_754
+    $P755."handle_types"(.CONTROL_RETURN)
+    push_eh $P755
     .lex "self", self
-    .lex "$/", param_769
-.annotate 'line', 160
-    new $P770, "Undef"
-    .lex "$subpast", $P770
-.annotate 'line', 161
-    new $P771, "Undef"
-    .lex "$past", $P771
+    .lex "$/", param_756
+.annotate 'line', 157
+    new $P757, "Undef"
+    .lex "$subpast", $P757
+.annotate 'line', 158
+    new $P758, "Undef"
+    .lex "$past", $P758
+.annotate 'line', 157
+    find_lex $P759, "$/"
+    unless_null $P759, vivify_233
+    $P759 = root_new ['parrot';'Hash']
+  vivify_233:
+    set $P760, $P759["nibbler"]
+    unless_null $P760, vivify_234
+    new $P760, "Undef"
+  vivify_234:
+    $P761 = $P760."ast"()
+    $P762 = "buildsub"($P761)
+    store_lex "$subpast", $P762
+.annotate 'line', 158
+    get_hll_global $P763, ["PAST"], "Regex"
+    find_lex $P764, "$subpast"
+    find_lex $P765, "$/"
+    $P766 = $P763."new"($P764, "subrule" :named("pasttype"), "capture" :named("subtype"), $P765 :named("node"))
+    store_lex "$past", $P766
 .annotate 'line', 160
-    find_lex $P772, "$/"
-    unless_null $P772, vivify_229
-    $P772 = root_new ['parrot';'Hash']
-  vivify_229:
-    set $P773, $P772["nibbler"]
-    unless_null $P773, vivify_230
-    new $P773, "Undef"
-  vivify_230:
-    $P774 = $P773."ast"()
-    $P775 = "buildsub"($P774)
-    store_lex "$subpast", $P775
-.annotate 'line', 161
-    get_hll_global $P776, ["PAST"], "Regex"
-    find_lex $P777, "$subpast"
-    find_lex $P778, "$/"
-    $P779 = $P776."new"($P777, "subrule" :named("pasttype"), "capture" :named("subtype"), $P778 :named("node"))
-    store_lex "$past", $P779
-.annotate 'line', 163
-    find_lex $P780, "$/"
-    find_lex $P781, "$past"
-    $P782 = $P780."!make"($P781)
-.annotate 'line', 159
-    .return ($P782)
-  control_767:
+    find_lex $P767, "$/"
+    find_lex $P768, "$past"
+    $P769 = $P767."!make"($P768)
+.annotate 'line', 156
+    .return ($P769)
+  control_754:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P783, exception, "payload"
-    .return ($P783)
+    getattribute $P770, exception, "payload"
+    .return ($P770)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<'>"  :subid("48_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_787
-.annotate 'line', 166
-    new $P786, 'ExceptionHandler'
-    set_addr $P786, control_785
-    $P786."handle_types"(.CONTROL_RETURN)
-    push_eh $P786
+.sub "metachar:sym<'>"  :subid("47_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_774
+.annotate 'line', 163
+    new $P773, 'ExceptionHandler'
+    set_addr $P773, control_772
+    $P773."handle_types"(.CONTROL_RETURN)
+    push_eh $P773
     .lex "self", self
-    .lex "$/", param_787
-.annotate 'line', 167
-    new $P788, "Undef"
-    .lex "$quote", $P788
-.annotate 'line', 169
-    new $P789, "Undef"
-    .lex "$past", $P789
+    .lex "$/", param_774
+.annotate 'line', 164
+    new $P775, "Undef"
+    .lex "$quote", $P775
+.annotate 'line', 166
+    new $P776, "Undef"
+    .lex "$past", $P776
+.annotate 'line', 164
+    find_lex $P777, "$/"
+    unless_null $P777, vivify_235
+    $P777 = root_new ['parrot';'Hash']
+  vivify_235:
+    set $P778, $P777["quote_EXPR"]
+    unless_null $P778, vivify_236
+    new $P778, "Undef"
+  vivify_236:
+    $P779 = $P778."ast"()
+    store_lex "$quote", $P779
+.annotate 'line', 165
+    get_hll_global $P781, ["PAST"], "Val"
+    find_lex $P782, "$quote"
+    $P783 = $P781."ACCEPTS"($P782)
+    unless $P783, if_780_end
+    find_lex $P784, "$quote"
+    $P785 = $P784."value"()
+    store_lex "$quote", $P785
+  if_780_end:
+.annotate 'line', 166
+    get_hll_global $P786, ["PAST"], "Regex"
+    find_lex $P787, "$quote"
+    find_lex $P788, "$/"
+    $P789 = $P786."new"($P787, "literal" :named("pasttype"), $P788 :named("node"))
+    store_lex "$past", $P789
 .annotate 'line', 167
-    find_lex $P790, "$/"
-    unless_null $P790, vivify_231
-    $P790 = root_new ['parrot';'Hash']
-  vivify_231:
-    set $P791, $P790["quote_EXPR"]
-    unless_null $P791, vivify_232
-    new $P791, "Undef"
-  vivify_232:
-    $P792 = $P791."ast"()
-    store_lex "$quote", $P792
+    get_global $P791, "@MODIFIERS"
+    unless_null $P791, vivify_237
+    $P791 = root_new ['parrot';'ResizablePMCArray']
+  vivify_237:
+    set $P792, $P791[0]
+    unless_null $P792, vivify_238
+    $P792 = root_new ['parrot';'Hash']
+  vivify_238:
+    set $P793, $P792["i"]
+    unless_null $P793, vivify_239
+    new $P793, "Undef"
+  vivify_239:
+    unless $P793, if_790_end
+    find_lex $P794, "$past"
+    $P794."subtype"("ignorecase")
+  if_790_end:
 .annotate 'line', 168
-    get_hll_global $P794, ["PAST"], "Val"
-    find_lex $P795, "$quote"
-    $P796 = $P794."ACCEPTS"($P795)
-    unless $P796, if_793_end
-    find_lex $P797, "$quote"
-    $P798 = $P797."value"()
-    store_lex "$quote", $P798
-  if_793_end:
-.annotate 'line', 169
-    get_hll_global $P799, ["PAST"], "Regex"
-    find_lex $P800, "$quote"
-    find_lex $P801, "$/"
-    $P802 = $P799."new"($P800, "literal" :named("pasttype"), $P801 :named("node"))
-    store_lex "$past", $P802
-.annotate 'line', 170
-    find_lex $P803, "$/"
-    find_lex $P804, "$past"
-    $P805 = $P803."!make"($P804)
-.annotate 'line', 166
-    .return ($P805)
-  control_785:
+    find_lex $P795, "$/"
+    find_lex $P796, "$past"
+    $P797 = $P795."!make"($P796)
+.annotate 'line', 163
+    .return ($P797)
+  control_772:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P806, exception, "payload"
-    .return ($P806)
+    getattribute $P798, exception, "payload"
+    .return ($P798)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<\">"  :subid("49_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_810
-.annotate 'line', 173
-    new $P809, 'ExceptionHandler'
-    set_addr $P809, control_808
-    $P809."handle_types"(.CONTROL_RETURN)
-    push_eh $P809
-    .lex "self", self
-    .lex "$/", param_810
+.sub "metachar:sym<\">"  :subid("48_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_802
+.annotate 'line', 171
+    new $P801, 'ExceptionHandler'
+    set_addr $P801, control_800
+    $P801."handle_types"(.CONTROL_RETURN)
+    push_eh $P801
+    .lex "self", self
+    .lex "$/", param_802
+.annotate 'line', 172
+    new $P803, "Undef"
+    .lex "$quote", $P803
 .annotate 'line', 174
-    new $P811, "Undef"
-    .lex "$quote", $P811
-.annotate 'line', 176
-    new $P812, "Undef"
-    .lex "$past", $P812
+    new $P804, "Undef"
+    .lex "$past", $P804
+.annotate 'line', 172
+    find_lex $P805, "$/"
+    unless_null $P805, vivify_240
+    $P805 = root_new ['parrot';'Hash']
+  vivify_240:
+    set $P806, $P805["quote_EXPR"]
+    unless_null $P806, vivify_241
+    new $P806, "Undef"
+  vivify_241:
+    $P807 = $P806."ast"()
+    store_lex "$quote", $P807
+.annotate 'line', 173
+    get_hll_global $P809, ["PAST"], "Val"
+    find_lex $P810, "$quote"
+    $P811 = $P809."ACCEPTS"($P810)
+    unless $P811, if_808_end
+    find_lex $P812, "$quote"
+    $P813 = $P812."value"()
+    store_lex "$quote", $P813
+  if_808_end:
 .annotate 'line', 174
-    find_lex $P813, "$/"
-    unless_null $P813, vivify_233
-    $P813 = root_new ['parrot';'Hash']
-  vivify_233:
-    set $P814, $P813["quote_EXPR"]
-    unless_null $P814, vivify_234
-    new $P814, "Undef"
-  vivify_234:
-    $P815 = $P814."ast"()
-    store_lex "$quote", $P815
+    get_hll_global $P814, ["PAST"], "Regex"
+    find_lex $P815, "$quote"
+    find_lex $P816, "$/"
+    $P817 = $P814."new"($P815, "literal" :named("pasttype"), $P816 :named("node"))
+    store_lex "$past", $P817
 .annotate 'line', 175
-    get_hll_global $P817, ["PAST"], "Val"
-    find_lex $P818, "$quote"
-    $P819 = $P817."ACCEPTS"($P818)
-    unless $P819, if_816_end
-    find_lex $P820, "$quote"
-    $P821 = $P820."value"()
-    store_lex "$quote", $P821
-  if_816_end:
+    get_global $P819, "@MODIFIERS"
+    unless_null $P819, vivify_242
+    $P819 = root_new ['parrot';'ResizablePMCArray']
+  vivify_242:
+    set $P820, $P819[0]
+    unless_null $P820, vivify_243
+    $P820 = root_new ['parrot';'Hash']
+  vivify_243:
+    set $P821, $P820["i"]
+    unless_null $P821, vivify_244
+    new $P821, "Undef"
+  vivify_244:
+    unless $P821, if_818_end
+    find_lex $P822, "$past"
+    $P822."subtype"("ignorecase")
+  if_818_end:
 .annotate 'line', 176
-    get_hll_global $P822, ["PAST"], "Regex"
-    find_lex $P823, "$quote"
-    find_lex $P824, "$/"
-    $P825 = $P822."new"($P823, "literal" :named("pasttype"), $P824 :named("node"))
-    store_lex "$past", $P825
-.annotate 'line', 177
-    find_lex $P826, "$/"
-    find_lex $P827, "$past"
-    $P828 = $P826."!make"($P827)
-.annotate 'line', 173
-    .return ($P828)
-  control_808:
+    find_lex $P823, "$/"
+    find_lex $P824, "$past"
+    $P825 = $P823."!make"($P824)
+.annotate 'line', 171
+    .return ($P825)
+  control_800:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P829, exception, "payload"
-    .return ($P829)
+    getattribute $P826, exception, "payload"
+    .return ($P826)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<.>"  :subid("50_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_833
-.annotate 'line', 180
-    new $P832, 'ExceptionHandler'
-    set_addr $P832, control_831
-    $P832."handle_types"(.CONTROL_RETURN)
-    push_eh $P832
+.sub "metachar:sym<.>"  :subid("49_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_830
+.annotate 'line', 179
+    new $P829, 'ExceptionHandler'
+    set_addr $P829, control_828
+    $P829."handle_types"(.CONTROL_RETURN)
+    push_eh $P829
     .lex "self", self
-    .lex "$/", param_833
-.annotate 'line', 181
-    new $P834, "Undef"
-    .lex "$past", $P834
-    get_hll_global $P835, ["PAST"], "Regex"
-    find_lex $P836, "$/"
-    $P837 = $P835."new"("charclass" :named("pasttype"), "." :named("subtype"), $P836 :named("node"))
-    store_lex "$past", $P837
-.annotate 'line', 182
-    find_lex $P838, "$/"
-    find_lex $P839, "$past"
-    $P840 = $P838."!make"($P839)
+    .lex "$/", param_830
 .annotate 'line', 180
-    .return ($P840)
-  control_831:
+    new $P831, "Undef"
+    .lex "$past", $P831
+    get_hll_global $P832, ["PAST"], "Regex"
+    find_lex $P833, "$/"
+    $P834 = $P832."new"("charclass" :named("pasttype"), "." :named("subtype"), $P833 :named("node"))
+    store_lex "$past", $P834
+.annotate 'line', 181
+    find_lex $P835, "$/"
+    find_lex $P836, "$past"
+    $P837 = $P835."!make"($P836)
+.annotate 'line', 179
+    .return ($P837)
+  control_828:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P841, exception, "payload"
-    .return ($P841)
+    getattribute $P838, exception, "payload"
+    .return ($P838)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<^>"  :subid("51_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_845
-.annotate 'line', 185
-    new $P844, 'ExceptionHandler'
-    set_addr $P844, control_843
-    $P844."handle_types"(.CONTROL_RETURN)
-    push_eh $P844
+.sub "metachar:sym<^>"  :subid("50_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_842
+.annotate 'line', 184
+    new $P841, 'ExceptionHandler'
+    set_addr $P841, control_840
+    $P841."handle_types"(.CONTROL_RETURN)
+    push_eh $P841
     .lex "self", self
-    .lex "$/", param_845
-.annotate 'line', 186
-    new $P846, "Undef"
-    .lex "$past", $P846
-    get_hll_global $P847, ["PAST"], "Regex"
-    find_lex $P848, "$/"
-    $P849 = $P847."new"("anchor" :named("pasttype"), "bos" :named("subtype"), $P848 :named("node"))
-    store_lex "$past", $P849
-.annotate 'line', 187
-    find_lex $P850, "$/"
-    find_lex $P851, "$past"
-    $P852 = $P850."!make"($P851)
+    .lex "$/", param_842
 .annotate 'line', 185
-    .return ($P852)
-  control_843:
+    new $P843, "Undef"
+    .lex "$past", $P843
+    get_hll_global $P844, ["PAST"], "Regex"
+    find_lex $P845, "$/"
+    $P846 = $P844."new"("anchor" :named("pasttype"), "bos" :named("subtype"), $P845 :named("node"))
+    store_lex "$past", $P846
+.annotate 'line', 186
+    find_lex $P847, "$/"
+    find_lex $P848, "$past"
+    $P849 = $P847."!make"($P848)
+.annotate 'line', 184
+    .return ($P849)
+  control_840:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P853, exception, "payload"
-    .return ($P853)
+    getattribute $P850, exception, "payload"
+    .return ($P850)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<^^>"  :subid("52_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_857
-.annotate 'line', 190
-    new $P856, 'ExceptionHandler'
-    set_addr $P856, control_855
-    $P856."handle_types"(.CONTROL_RETURN)
-    push_eh $P856
+.sub "metachar:sym<^^>"  :subid("51_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_854
+.annotate 'line', 189
+    new $P853, 'ExceptionHandler'
+    set_addr $P853, control_852
+    $P853."handle_types"(.CONTROL_RETURN)
+    push_eh $P853
     .lex "self", self
-    .lex "$/", param_857
-.annotate 'line', 191
-    new $P858, "Undef"
-    .lex "$past", $P858
-    get_hll_global $P859, ["PAST"], "Regex"
-    find_lex $P860, "$/"
-    $P861 = $P859."new"("anchor" :named("pasttype"), "bol" :named("subtype"), $P860 :named("node"))
-    store_lex "$past", $P861
-.annotate 'line', 192
-    find_lex $P862, "$/"
-    find_lex $P863, "$past"
-    $P864 = $P862."!make"($P863)
+    .lex "$/", param_854
 .annotate 'line', 190
-    .return ($P864)
-  control_855:
+    new $P855, "Undef"
+    .lex "$past", $P855
+    get_hll_global $P856, ["PAST"], "Regex"
+    find_lex $P857, "$/"
+    $P858 = $P856."new"("anchor" :named("pasttype"), "bol" :named("subtype"), $P857 :named("node"))
+    store_lex "$past", $P858
+.annotate 'line', 191
+    find_lex $P859, "$/"
+    find_lex $P860, "$past"
+    $P861 = $P859."!make"($P860)
+.annotate 'line', 189
+    .return ($P861)
+  control_852:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P865, exception, "payload"
-    .return ($P865)
+    getattribute $P862, exception, "payload"
+    .return ($P862)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<$>"  :subid("53_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_869
-.annotate 'line', 195
-    new $P868, 'ExceptionHandler'
-    set_addr $P868, control_867
-    $P868."handle_types"(.CONTROL_RETURN)
-    push_eh $P868
+.sub "metachar:sym<$>"  :subid("52_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_866
+.annotate 'line', 194
+    new $P865, 'ExceptionHandler'
+    set_addr $P865, control_864
+    $P865."handle_types"(.CONTROL_RETURN)
+    push_eh $P865
     .lex "self", self
-    .lex "$/", param_869
-.annotate 'line', 196
-    new $P870, "Undef"
-    .lex "$past", $P870
-    get_hll_global $P871, ["PAST"], "Regex"
-    find_lex $P872, "$/"
-    $P873 = $P871."new"("anchor" :named("pasttype"), "eos" :named("subtype"), $P872 :named("node"))
-    store_lex "$past", $P873
-.annotate 'line', 197
-    find_lex $P874, "$/"
-    find_lex $P875, "$past"
-    $P876 = $P874."!make"($P875)
+    .lex "$/", param_866
 .annotate 'line', 195
-    .return ($P876)
-  control_867:
+    new $P867, "Undef"
+    .lex "$past", $P867
+    get_hll_global $P868, ["PAST"], "Regex"
+    find_lex $P869, "$/"
+    $P870 = $P868."new"("anchor" :named("pasttype"), "eos" :named("subtype"), $P869 :named("node"))
+    store_lex "$past", $P870
+.annotate 'line', 196
+    find_lex $P871, "$/"
+    find_lex $P872, "$past"
+    $P873 = $P871."!make"($P872)
+.annotate 'line', 194
+    .return ($P873)
+  control_864:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P877, exception, "payload"
-    .return ($P877)
+    getattribute $P874, exception, "payload"
+    .return ($P874)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<$$>"  :subid("54_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_881
-.annotate 'line', 200
-    new $P880, 'ExceptionHandler'
-    set_addr $P880, control_879
-    $P880."handle_types"(.CONTROL_RETURN)
-    push_eh $P880
+.sub "metachar:sym<$$>"  :subid("53_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_878
+.annotate 'line', 199
+    new $P877, 'ExceptionHandler'
+    set_addr $P877, control_876
+    $P877."handle_types"(.CONTROL_RETURN)
+    push_eh $P877
     .lex "self", self
-    .lex "$/", param_881
-.annotate 'line', 201
-    new $P882, "Undef"
-    .lex "$past", $P882
-    get_hll_global $P883, ["PAST"], "Regex"
-    find_lex $P884, "$/"
-    $P885 = $P883."new"("anchor" :named("pasttype"), "eol" :named("subtype"), $P884 :named("node"))
-    store_lex "$past", $P885
-.annotate 'line', 202
-    find_lex $P886, "$/"
-    find_lex $P887, "$past"
-    $P888 = $P886."!make"($P887)
+    .lex "$/", param_878
 .annotate 'line', 200
-    .return ($P888)
-  control_879:
+    new $P879, "Undef"
+    .lex "$past", $P879
+    get_hll_global $P880, ["PAST"], "Regex"
+    find_lex $P881, "$/"
+    $P882 = $P880."new"("anchor" :named("pasttype"), "eol" :named("subtype"), $P881 :named("node"))
+    store_lex "$past", $P882
+.annotate 'line', 201
+    find_lex $P883, "$/"
+    find_lex $P884, "$past"
+    $P885 = $P883."!make"($P884)
+.annotate 'line', 199
+    .return ($P885)
+  control_876:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P889, exception, "payload"
-    .return ($P889)
+    getattribute $P886, exception, "payload"
+    .return ($P886)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<:::>"  :subid("55_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_893
-.annotate 'line', 205
-    new $P892, 'ExceptionHandler'
-    set_addr $P892, control_891
-    $P892."handle_types"(.CONTROL_RETURN)
-    push_eh $P892
+.sub "metachar:sym<:::>"  :subid("54_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_890
+.annotate 'line', 204
+    new $P889, 'ExceptionHandler'
+    set_addr $P889, control_888
+    $P889."handle_types"(.CONTROL_RETURN)
+    push_eh $P889
     .lex "self", self
-    .lex "$/", param_893
-.annotate 'line', 206
-    new $P894, "Undef"
-    .lex "$past", $P894
-    get_hll_global $P895, ["PAST"], "Regex"
-    find_lex $P896, "$/"
-    $P897 = $P895."new"("cut" :named("pasttype"), $P896 :named("node"))
-    store_lex "$past", $P897
-.annotate 'line', 207
-    find_lex $P898, "$/"
-    find_lex $P899, "$past"
-    $P900 = $P898."!make"($P899)
+    .lex "$/", param_890
 .annotate 'line', 205
-    .return ($P900)
-  control_891:
+    new $P891, "Undef"
+    .lex "$past", $P891
+    get_hll_global $P892, ["PAST"], "Regex"
+    find_lex $P893, "$/"
+    $P894 = $P892."new"("cut" :named("pasttype"), $P893 :named("node"))
+    store_lex "$past", $P894
+.annotate 'line', 206
+    find_lex $P895, "$/"
+    find_lex $P896, "$past"
+    $P897 = $P895."!make"($P896)
+.annotate 'line', 204
+    .return ($P897)
+  control_888:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P901, exception, "payload"
-    .return ($P901)
+    getattribute $P898, exception, "payload"
+    .return ($P898)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<lwb>"  :subid("56_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_905
-.annotate 'line', 210
-    new $P904, 'ExceptionHandler'
-    set_addr $P904, control_903
-    $P904."handle_types"(.CONTROL_RETURN)
-    push_eh $P904
+.sub "metachar:sym<lwb>"  :subid("55_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_902
+.annotate 'line', 209
+    new $P901, 'ExceptionHandler'
+    set_addr $P901, control_900
+    $P901."handle_types"(.CONTROL_RETURN)
+    push_eh $P901
     .lex "self", self
-    .lex "$/", param_905
-.annotate 'line', 211
-    new $P906, "Undef"
-    .lex "$past", $P906
-    get_hll_global $P907, ["PAST"], "Regex"
-    find_lex $P908, "$/"
-    $P909 = $P907."new"("anchor" :named("pasttype"), "lwb" :named("subtype"), $P908 :named("node"))
-    store_lex "$past", $P909
-.annotate 'line', 212
-    find_lex $P910, "$/"
-    find_lex $P911, "$past"
-    $P912 = $P910."!make"($P911)
+    .lex "$/", param_902
 .annotate 'line', 210
-    .return ($P912)
-  control_903:
+    new $P903, "Undef"
+    .lex "$past", $P903
+    get_hll_global $P904, ["PAST"], "Regex"
+    find_lex $P905, "$/"
+    $P906 = $P904."new"("anchor" :named("pasttype"), "lwb" :named("subtype"), $P905 :named("node"))
+    store_lex "$past", $P906
+.annotate 'line', 211
+    find_lex $P907, "$/"
+    find_lex $P908, "$past"
+    $P909 = $P907."!make"($P908)
+.annotate 'line', 209
+    .return ($P909)
+  control_900:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P913, exception, "payload"
-    .return ($P913)
+    getattribute $P910, exception, "payload"
+    .return ($P910)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<rwb>"  :subid("57_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_917
-.annotate 'line', 215
-    new $P916, 'ExceptionHandler'
-    set_addr $P916, control_915
-    $P916."handle_types"(.CONTROL_RETURN)
-    push_eh $P916
+.sub "metachar:sym<rwb>"  :subid("56_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_914
+.annotate 'line', 214
+    new $P913, 'ExceptionHandler'
+    set_addr $P913, control_912
+    $P913."handle_types"(.CONTROL_RETURN)
+    push_eh $P913
     .lex "self", self
-    .lex "$/", param_917
-.annotate 'line', 216
-    new $P918, "Undef"
-    .lex "$past", $P918
-    get_hll_global $P919, ["PAST"], "Regex"
-    find_lex $P920, "$/"
-    $P921 = $P919."new"("anchor" :named("pasttype"), "rwb" :named("subtype"), $P920 :named("node"))
-    store_lex "$past", $P921
-.annotate 'line', 217
-    find_lex $P922, "$/"
-    find_lex $P923, "$past"
-    $P924 = $P922."!make"($P923)
+    .lex "$/", param_914
 .annotate 'line', 215
-    .return ($P924)
-  control_915:
+    new $P915, "Undef"
+    .lex "$past", $P915
+    get_hll_global $P916, ["PAST"], "Regex"
+    find_lex $P917, "$/"
+    $P918 = $P916."new"("anchor" :named("pasttype"), "rwb" :named("subtype"), $P917 :named("node"))
+    store_lex "$past", $P918
+.annotate 'line', 216
+    find_lex $P919, "$/"
+    find_lex $P920, "$past"
+    $P921 = $P919."!make"($P920)
+.annotate 'line', 214
+    .return ($P921)
+  control_912:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P925, exception, "payload"
-    .return ($P925)
+    getattribute $P922, exception, "payload"
+    .return ($P922)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<bs>"  :subid("58_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_929
-.annotate 'line', 220
-    new $P928, 'ExceptionHandler'
-    set_addr $P928, control_927
-    $P928."handle_types"(.CONTROL_RETURN)
-    push_eh $P928
-    .lex "self", self
-    .lex "$/", param_929
-.annotate 'line', 221
-    find_lex $P930, "$/"
-    find_lex $P931, "$/"
-    unless_null $P931, vivify_235
-    $P931 = root_new ['parrot';'Hash']
-  vivify_235:
-    set $P932, $P931["backslash"]
-    unless_null $P932, vivify_236
-    new $P932, "Undef"
-  vivify_236:
-    $P933 = $P932."ast"()
-    $P934 = $P930."!make"($P933)
+.sub "metachar:sym<bs>"  :subid("57_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_926
+.annotate 'line', 219
+    new $P925, 'ExceptionHandler'
+    set_addr $P925, control_924
+    $P925."handle_types"(.CONTROL_RETURN)
+    push_eh $P925
+    .lex "self", self
+    .lex "$/", param_926
 .annotate 'line', 220
-    .return ($P934)
-  control_927:
+    find_lex $P927, "$/"
+    find_lex $P928, "$/"
+    unless_null $P928, vivify_245
+    $P928 = root_new ['parrot';'Hash']
+  vivify_245:
+    set $P929, $P928["backslash"]
+    unless_null $P929, vivify_246
+    new $P929, "Undef"
+  vivify_246:
+    $P930 = $P929."ast"()
+    $P931 = $P927."!make"($P930)
+.annotate 'line', 219
+    .return ($P931)
+  control_924:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P935, exception, "payload"
-    .return ($P935)
+    getattribute $P932, exception, "payload"
+    .return ($P932)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<mod>"  :subid("59_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_939
-.annotate 'line', 224
-    new $P938, 'ExceptionHandler'
-    set_addr $P938, control_937
-    $P938."handle_types"(.CONTROL_RETURN)
-    push_eh $P938
-    .lex "self", self
-    .lex "$/", param_939
-.annotate 'line', 225
-    find_lex $P940, "$/"
-    find_lex $P941, "$/"
-    unless_null $P941, vivify_237
-    $P941 = root_new ['parrot';'Hash']
-  vivify_237:
-    set $P942, $P941["mod_internal"]
-    unless_null $P942, vivify_238
-    new $P942, "Undef"
-  vivify_238:
-    $P943 = $P942."ast"()
-    $P944 = $P940."!make"($P943)
+.sub "metachar:sym<mod>"  :subid("58_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_936
+.annotate 'line', 223
+    new $P935, 'ExceptionHandler'
+    set_addr $P935, control_934
+    $P935."handle_types"(.CONTROL_RETURN)
+    push_eh $P935
+    .lex "self", self
+    .lex "$/", param_936
 .annotate 'line', 224
-    .return ($P944)
-  control_937:
+    find_lex $P937, "$/"
+    find_lex $P938, "$/"
+    unless_null $P938, vivify_247
+    $P938 = root_new ['parrot';'Hash']
+  vivify_247:
+    set $P939, $P938["mod_internal"]
+    unless_null $P939, vivify_248
+    new $P939, "Undef"
+  vivify_248:
+    $P940 = $P939."ast"()
+    $P941 = $P937."!make"($P940)
+.annotate 'line', 223
+    .return ($P941)
+  control_934:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P945, exception, "payload"
-    .return ($P945)
+    getattribute $P942, exception, "payload"
+    .return ($P942)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<assert>"  :subid("60_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_949
-.annotate 'line', 228
-    new $P948, 'ExceptionHandler'
-    set_addr $P948, control_947
-    $P948."handle_types"(.CONTROL_RETURN)
-    push_eh $P948
-    .lex "self", self
-    .lex "$/", param_949
-.annotate 'line', 229
-    find_lex $P950, "$/"
-    find_lex $P951, "$/"
-    unless_null $P951, vivify_239
-    $P951 = root_new ['parrot';'Hash']
-  vivify_239:
-    set $P952, $P951["assertion"]
-    unless_null $P952, vivify_240
-    new $P952, "Undef"
-  vivify_240:
-    $P953 = $P952."ast"()
-    $P954 = $P950."!make"($P953)
+.sub "metachar:sym<assert>"  :subid("59_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_946
+.annotate 'line', 227
+    new $P945, 'ExceptionHandler'
+    set_addr $P945, control_944
+    $P945."handle_types"(.CONTROL_RETURN)
+    push_eh $P945
+    .lex "self", self
+    .lex "$/", param_946
 .annotate 'line', 228
-    .return ($P954)
-  control_947:
+    find_lex $P947, "$/"
+    find_lex $P948, "$/"
+    unless_null $P948, vivify_249
+    $P948 = root_new ['parrot';'Hash']
+  vivify_249:
+    set $P949, $P948["assertion"]
+    unless_null $P949, vivify_250
+    new $P949, "Undef"
+  vivify_250:
+    $P950 = $P949."ast"()
+    $P951 = $P947."!make"($P950)
+.annotate 'line', 227
+    .return ($P951)
+  control_944:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P955, exception, "payload"
-    .return ($P955)
+    getattribute $P952, exception, "payload"
+    .return ($P952)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<~>"  :subid("61_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_959
-.annotate 'line', 232
-    new $P958, 'ExceptionHandler'
-    set_addr $P958, control_957
-    $P958."handle_types"(.CONTROL_RETURN)
-    push_eh $P958
+.sub "metachar:sym<~>"  :subid("60_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_956
+.annotate 'line', 231
+    new $P955, 'ExceptionHandler'
+    set_addr $P955, control_954
+    $P955."handle_types"(.CONTROL_RETURN)
+    push_eh $P955
     .lex "self", self
-    .lex "$/", param_959
+    .lex "$/", param_956
+.annotate 'line', 232
+    find_lex $P957, "$/"
+    get_hll_global $P958, ["PAST"], "Regex"
 .annotate 'line', 233
-    find_lex $P960, "$/"
-    get_hll_global $P961, ["PAST"], "Regex"
+    find_lex $P959, "$/"
+    unless_null $P959, vivify_251
+    $P959 = root_new ['parrot';'Hash']
+  vivify_251:
+    set $P960, $P959["EXPR"]
+    unless_null $P960, vivify_252
+    new $P960, "Undef"
+  vivify_252:
+    $P961 = $P960."ast"()
 .annotate 'line', 234
-    find_lex $P962, "$/"
-    unless_null $P962, vivify_241
-    $P962 = root_new ['parrot';'Hash']
-  vivify_241:
-    set $P963, $P962["EXPR"]
-    unless_null $P963, vivify_242
-    new $P963, "Undef"
-  vivify_242:
-    $P964 = $P963."ast"()
+    get_hll_global $P962, ["PAST"], "Regex"
 .annotate 'line', 235
-    get_hll_global $P965, ["PAST"], "Regex"
+    find_lex $P963, "$/"
+    unless_null $P963, vivify_253
+    $P963 = root_new ['parrot';'Hash']
+  vivify_253:
+    set $P964, $P963["GOAL"]
+    unless_null $P964, vivify_254
+    new $P964, "Undef"
+  vivify_254:
+    $P965 = $P964."ast"()
 .annotate 'line', 236
-    find_lex $P966, "$/"
-    unless_null $P966, vivify_243
-    $P966 = root_new ['parrot';'Hash']
-  vivify_243:
-    set $P967, $P966["GOAL"]
-    unless_null $P967, vivify_244
-    new $P967, "Undef"
-  vivify_244:
-    $P968 = $P967."ast"()
-.annotate 'line', 237
-    get_hll_global $P969, ["PAST"], "Regex"
-    find_lex $P970, "$/"
-    unless_null $P970, vivify_245
-    $P970 = root_new ['parrot';'Hash']
-  vivify_245:
-    set $P971, $P970["GOAL"]
-    unless_null $P971, vivify_246
-    new $P971, "Undef"
-  vivify_246:
-    set $S972, $P971
-    $P973 = $P969."new"("FAILGOAL", $S972, "subrule" :named("pasttype"), "method" :named("subtype"))
-    $P974 = $P965."new"($P968, $P973, "alt" :named("pasttype"))
-.annotate 'line', 235
-    $P975 = $P961."new"($P964, $P974, "concat" :named("pasttype"))
-.annotate 'line', 233
-    $P976 = $P960."!make"($P975)
+    get_hll_global $P966, ["PAST"], "Regex"
+    find_lex $P967, "$/"
+    unless_null $P967, vivify_255
+    $P967 = root_new ['parrot';'Hash']
+  vivify_255:
+    set $P968, $P967["GOAL"]
+    unless_null $P968, vivify_256
+    new $P968, "Undef"
+  vivify_256:
+    set $S969, $P968
+    $P970 = $P966."new"("FAILGOAL", $S969, "subrule" :named("pasttype"), "method" :named("subtype"))
+    $P971 = $P962."new"($P965, $P970, "alt" :named("pasttype"))
+.annotate 'line', 234
+    $P972 = $P958."new"($P961, $P971, "concat" :named("pasttype"))
 .annotate 'line', 232
-    .return ($P976)
-  control_957:
+    $P973 = $P957."!make"($P972)
+.annotate 'line', 231
+    .return ($P973)
+  control_954:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P977, exception, "payload"
-    .return ($P977)
+    getattribute $P974, exception, "payload"
+    .return ($P974)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<{*}>"  :subid("62_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_981
-.annotate 'line', 245
-    new $P980, 'ExceptionHandler'
-    set_addr $P980, control_979
-    $P980."handle_types"(.CONTROL_RETURN)
-    push_eh $P980
+.sub "metachar:sym<{*}>"  :subid("61_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_978
+.annotate 'line', 244
+    new $P977, 'ExceptionHandler'
+    set_addr $P977, control_976
+    $P977."handle_types"(.CONTROL_RETURN)
+    push_eh $P977
     .lex "self", self
-    .lex "$/", param_981
+    .lex "$/", param_978
+.annotate 'line', 245
+    new $P979, "Undef"
+    .lex "$past", $P979
 .annotate 'line', 246
-    new $P982, "Undef"
-    .lex "$past", $P982
-.annotate 'line', 247
+    find_lex $P982, "$/"
+    unless_null $P982, vivify_257
+    $P982 = root_new ['parrot';'Hash']
+  vivify_257:
+    set $P983, $P982["key"]
+    unless_null $P983, vivify_258
+    new $P983, "Undef"
+  vivify_258:
+    if $P983, if_981
+    new $P991, "Integer"
+    assign $P991, 0
+    set $P980, $P991
+    goto if_981_end
+  if_981:
+    get_hll_global $P984, ["PAST"], "Regex"
     find_lex $P985, "$/"
-    unless_null $P985, vivify_247
+    unless_null $P985, vivify_259
     $P985 = root_new ['parrot';'Hash']
-  vivify_247:
+  vivify_259:
     set $P986, $P985["key"]
-    unless_null $P986, vivify_248
-    new $P986, "Undef"
-  vivify_248:
-    if $P986, if_984
-    new $P994, "Integer"
-    assign $P994, 0
-    set $P983, $P994
-    goto if_984_end
-  if_984:
-    get_hll_global $P987, ["PAST"], "Regex"
-    find_lex $P988, "$/"
-    unless_null $P988, vivify_249
-    $P988 = root_new ['parrot';'Hash']
-  vivify_249:
-    set $P989, $P988["key"]
-    unless_null $P989, vivify_250
-    $P989 = root_new ['parrot';'ResizablePMCArray']
-  vivify_250:
-    set $P990, $P989[0]
-    unless_null $P990, vivify_251
-    new $P990, "Undef"
-  vivify_251:
-    set $S991, $P990
+    unless_null $P986, vivify_260
+    $P986 = root_new ['parrot';'ResizablePMCArray']
+  vivify_260:
+    set $P987, $P986[0]
+    unless_null $P987, vivify_261
+    new $P987, "Undef"
+  vivify_261:
+    set $S988, $P987
+    find_lex $P989, "$/"
+    $P990 = $P984."new"($S988, "reduce" :named("pasttype"), $P989 :named("node"))
+    set $P980, $P990
+  if_981_end:
+    store_lex "$past", $P980
+.annotate 'line', 248
     find_lex $P992, "$/"
-    $P993 = $P987."new"($S991, "reduce" :named("pasttype"), $P992 :named("node"))
-    set $P983, $P993
-  if_984_end:
-    store_lex "$past", $P983
-.annotate 'line', 249
-    find_lex $P995, "$/"
-    find_lex $P996, "$past"
-    $P997 = $P995."!make"($P996)
-.annotate 'line', 245
-    .return ($P997)
-  control_979:
+    find_lex $P993, "$past"
+    $P994 = $P992."!make"($P993)
+.annotate 'line', 244
+    .return ($P994)
+  control_976:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P998, exception, "payload"
-    .return ($P998)
+    getattribute $P995, exception, "payload"
+    .return ($P995)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<var>"  :subid("63_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1002
-.annotate 'line', 252
-    new $P1001, 'ExceptionHandler'
-    set_addr $P1001, control_1000
-    $P1001."handle_types"(.CONTROL_RETURN)
-    push_eh $P1001
+.sub "metachar:sym<var>"  :subid("62_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_999
+.annotate 'line', 251
+    new $P998, 'ExceptionHandler'
+    set_addr $P998, control_997
+    $P998."handle_types"(.CONTROL_RETURN)
+    push_eh $P998
     .lex "self", self
-    .lex "$/", param_1002
-.annotate 'line', 253
-    new $P1003, "Undef"
-    .lex "$past", $P1003
-.annotate 'line', 254
-    new $P1004, "Undef"
-    .lex "$name", $P1004
+    .lex "$/", param_999
 .annotate 'line', 252
-    find_lex $P1005, "$past"
-.annotate 'line', 254
-    find_lex $P1008, "$/"
-    unless_null $P1008, vivify_252
-    $P1008 = root_new ['parrot';'Hash']
-  vivify_252:
-    set $P1009, $P1008["pos"]
-    unless_null $P1009, vivify_253
-    new $P1009, "Undef"
-  vivify_253:
-    if $P1009, if_1007
-    find_lex $P1013, "$/"
-    unless_null $P1013, vivify_254
-    $P1013 = root_new ['parrot';'Hash']
-  vivify_254:
-    set $P1014, $P1013["name"]
-    unless_null $P1014, vivify_255
-    new $P1014, "Undef"
-  vivify_255:
-    set $S1015, $P1014
-    new $P1006, 'String'
-    set $P1006, $S1015
-    goto if_1007_end
-  if_1007:
+    new $P1000, "Undef"
+    .lex "$past", $P1000
+.annotate 'line', 253
+    new $P1001, "Undef"
+    .lex "$name", $P1001
+.annotate 'line', 251
+    find_lex $P1002, "$past"
+.annotate 'line', 253
+    find_lex $P1005, "$/"
+    unless_null $P1005, vivify_262
+    $P1005 = root_new ['parrot';'Hash']
+  vivify_262:
+    set $P1006, $P1005["pos"]
+    unless_null $P1006, vivify_263
+    new $P1006, "Undef"
+  vivify_263:
+    if $P1006, if_1004
     find_lex $P1010, "$/"
-    unless_null $P1010, vivify_256
+    unless_null $P1010, vivify_264
     $P1010 = root_new ['parrot';'Hash']
-  vivify_256:
-    set $P1011, $P1010["pos"]
-    unless_null $P1011, vivify_257
+  vivify_264:
+    set $P1011, $P1010["name"]
+    unless_null $P1011, vivify_265
     new $P1011, "Undef"
-  vivify_257:
-    set $N1012, $P1011
-    new $P1006, 'Float'
-    set $P1006, $N1012
-  if_1007_end:
-    store_lex "$name", $P1006
+  vivify_265:
+    set $S1012, $P1011
+    new $P1003, 'String'
+    set $P1003, $S1012
+    goto if_1004_end
+  if_1004:
+    find_lex $P1007, "$/"
+    unless_null $P1007, vivify_266
+    $P1007 = root_new ['parrot';'Hash']
+  vivify_266:
+    set $P1008, $P1007["pos"]
+    unless_null $P1008, vivify_267
+    new $P1008, "Undef"
+  vivify_267:
+    set $N1009, $P1008
+    new $P1003, 'Float'
+    set $P1003, $N1009
+  if_1004_end:
+    store_lex "$name", $P1003
+.annotate 'line', 254
+    find_lex $P1014, "$/"
+    unless_null $P1014, vivify_268
+    $P1014 = root_new ['parrot';'Hash']
+  vivify_268:
+    set $P1015, $P1014["quantified_atom"]
+    unless_null $P1015, vivify_269
+    new $P1015, "Undef"
+  vivify_269:
+    if $P1015, if_1013
+.annotate 'line', 265
+    get_hll_global $P1046, ["PAST"], "Regex"
+    find_lex $P1047, "$name"
+    find_lex $P1048, "$/"
+    $P1049 = $P1046."new"("!BACKREF", $P1047, "subrule" :named("pasttype"), "method" :named("subtype"), $P1048 :named("node"))
+    store_lex "$past", $P1049
+.annotate 'line', 264
+    goto if_1013_end
+  if_1013:
 .annotate 'line', 255
-    find_lex $P1017, "$/"
-    unless_null $P1017, vivify_258
-    $P1017 = root_new ['parrot';'Hash']
-  vivify_258:
-    set $P1018, $P1017["quantified_atom"]
-    unless_null $P1018, vivify_259
+    find_lex $P1016, "$/"
+    unless_null $P1016, vivify_270
+    $P1016 = root_new ['parrot';'Hash']
+  vivify_270:
+    set $P1017, $P1016["quantified_atom"]
+    unless_null $P1017, vivify_271
+    $P1017 = root_new ['parrot';'ResizablePMCArray']
+  vivify_271:
+    set $P1018, $P1017[0]
+    unless_null $P1018, vivify_272
     new $P1018, "Undef"
-  vivify_259:
-    if $P1018, if_1016
-.annotate 'line', 266
-    get_hll_global $P1047, ["PAST"], "Regex"
-    find_lex $P1048, "$name"
-    find_lex $P1049, "$/"
-    $P1050 = $P1047."new"("!BACKREF", $P1048, "subrule" :named("pasttype"), "method" :named("subtype"), $P1049 :named("node"))
-    store_lex "$past", $P1050
-.annotate 'line', 265
-    goto if_1016_end
-  if_1016:
+  vivify_272:
+    $P1019 = $P1018."ast"()
+    store_lex "$past", $P1019
 .annotate 'line', 256
-    find_lex $P1019, "$/"
-    unless_null $P1019, vivify_260
-    $P1019 = root_new ['parrot';'Hash']
-  vivify_260:
-    set $P1020, $P1019["quantified_atom"]
-    unless_null $P1020, vivify_261
-    $P1020 = root_new ['parrot';'ResizablePMCArray']
-  vivify_261:
-    set $P1021, $P1020[0]
-    unless_null $P1021, vivify_262
-    new $P1021, "Undef"
-  vivify_262:
-    $P1022 = $P1021."ast"()
-    store_lex "$past", $P1022
-.annotate 'line', 257
+    find_lex $P1023, "$past"
+    $S1024 = $P1023."pasttype"()
+    iseq $I1025, $S1024, "quant"
+    if $I1025, if_1022
+    new $P1021, 'Integer'
+    set $P1021, $I1025
+    goto if_1022_end
+  if_1022:
     find_lex $P1026, "$past"
-    $S1027 = $P1026."pasttype"()
-    iseq $I1028, $S1027, "quant"
-    if $I1028, if_1025
-    new $P1024, 'Integer'
-    set $P1024, $I1028
-    goto if_1025_end
-  if_1025:
-    find_lex $P1029, "$past"
-    unless_null $P1029, vivify_263
-    $P1029 = root_new ['parrot';'ResizablePMCArray']
-  vivify_263:
-    set $P1030, $P1029[0]
-    unless_null $P1030, vivify_264
-    new $P1030, "Undef"
-  vivify_264:
-    $S1031 = $P1030."pasttype"()
-    iseq $I1032, $S1031, "subrule"
-    new $P1024, 'Integer'
-    set $P1024, $I1032
-  if_1025_end:
-    if $P1024, if_1023
-.annotate 'line', 260
-    find_lex $P1037, "$past"
-    $S1038 = $P1037."pasttype"()
-    iseq $I1039, $S1038, "subrule"
-    if $I1039, if_1036
-.annotate 'line', 262
-    get_hll_global $P1042, ["PAST"], "Regex"
-    find_lex $P1043, "$past"
-    find_lex $P1044, "$name"
-    find_lex $P1045, "$/"
-    $P1046 = $P1042."new"($P1043, $P1044 :named("name"), "subcapture" :named("pasttype"), $P1045 :named("node"))
-    store_lex "$past", $P1046
+    unless_null $P1026, vivify_273
+    $P1026 = root_new ['parrot';'ResizablePMCArray']
+  vivify_273:
+    set $P1027, $P1026[0]
+    unless_null $P1027, vivify_274
+    new $P1027, "Undef"
+  vivify_274:
+    $S1028 = $P1027."pasttype"()
+    iseq $I1029, $S1028, "subrule"
+    new $P1021, 'Integer'
+    set $P1021, $I1029
+  if_1022_end:
+    if $P1021, if_1020
+.annotate 'line', 259
+    find_lex $P1035, "$past"
+    $S1036 = $P1035."pasttype"()
+    iseq $I1037, $S1036, "subrule"
+    if $I1037, if_1034
 .annotate 'line', 261
-    goto if_1036_end
-  if_1036:
+    get_hll_global $P1041, ["PAST"], "Regex"
+    find_lex $P1042, "$past"
+    find_lex $P1043, "$name"
+    find_lex $P1044, "$/"
+    $P1045 = $P1041."new"($P1042, $P1043 :named("name"), "subcapture" :named("pasttype"), $P1044 :named("node"))
+    store_lex "$past", $P1045
 .annotate 'line', 260
-    find_lex $P1040, "$past"
-    find_lex $P1041, "$name"
-    "subrule_alias"($P1040, $P1041)
-  if_1036_end:
-    goto if_1023_end
-  if_1023:
-.annotate 'line', 258
-    find_lex $P1033, "$past"
-    unless_null $P1033, vivify_265
-    $P1033 = root_new ['parrot';'ResizablePMCArray']
-  vivify_265:
-    set $P1034, $P1033[0]
-    unless_null $P1034, vivify_266
-    new $P1034, "Undef"
-  vivify_266:
-    find_lex $P1035, "$name"
-    "subrule_alias"($P1034, $P1035)
-  if_1023_end:
-  if_1016_end:
-.annotate 'line', 269
-    find_lex $P1051, "$/"
-    find_lex $P1052, "$past"
-    $P1053 = $P1051."!make"($P1052)
-.annotate 'line', 252
-    .return ($P1053)
-  control_1000:
+    goto if_1034_end
+  if_1034:
+.annotate 'line', 259
+    find_lex $P1038, "self"
+    find_lex $P1039, "$past"
+    find_lex $P1040, "$name"
+    $P1038."subrule_alias"($P1039, $P1040)
+  if_1034_end:
+    goto if_1020_end
+  if_1020:
+.annotate 'line', 257
+    find_lex $P1030, "self"
+    find_lex $P1031, "$past"
+    unless_null $P1031, vivify_275
+    $P1031 = root_new ['parrot';'ResizablePMCArray']
+  vivify_275:
+    set $P1032, $P1031[0]
+    unless_null $P1032, vivify_276
+    new $P1032, "Undef"
+  vivify_276:
+    find_lex $P1033, "$name"
+    $P1030."subrule_alias"($P1032, $P1033)
+  if_1020_end:
+  if_1013_end:
+.annotate 'line', 268
+    find_lex $P1050, "$/"
+    find_lex $P1051, "$past"
+    $P1052 = $P1050."!make"($P1051)
+.annotate 'line', 251
+    .return ($P1052)
+  control_997:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1054, exception, "payload"
-    .return ($P1054)
+    getattribute $P1053, exception, "payload"
+    .return ($P1053)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<PIR>"  :subid("64_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1058
-.annotate 'line', 272
-    new $P1057, 'ExceptionHandler'
-    set_addr $P1057, control_1056
-    $P1057."handle_types"(.CONTROL_RETURN)
-    push_eh $P1057
+.sub "metachar:sym<PIR>"  :subid("63_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1057
+.annotate 'line', 271
+    new $P1056, 'ExceptionHandler'
+    set_addr $P1056, control_1055
+    $P1056."handle_types"(.CONTROL_RETURN)
+    push_eh $P1056
     .lex "self", self
-    .lex "$/", param_1058
-.annotate 'line', 273
-    find_lex $P1059, "$/"
-    get_hll_global $P1060, ["PAST"], "Regex"
-.annotate 'line', 274
-    get_hll_global $P1061, ["PAST"], "Op"
-    find_lex $P1062, "$/"
-    unless_null $P1062, vivify_267
-    $P1062 = root_new ['parrot';'Hash']
-  vivify_267:
-    set $P1063, $P1062["pir"]
-    unless_null $P1063, vivify_268
-    new $P1063, "Undef"
-  vivify_268:
-    set $S1064, $P1063
-    $P1065 = $P1061."new"($S1064 :named("inline"), "inline" :named("pasttype"))
-    find_lex $P1066, "$/"
-    $P1067 = $P1060."new"($P1065, "pastnode" :named("pasttype"), $P1066 :named("node"))
+    .lex "$/", param_1057
+.annotate 'line', 272
+    find_lex $P1058, "$/"
+    get_hll_global $P1059, ["PAST"], "Regex"
 .annotate 'line', 273
-    $P1068 = $P1059."!make"($P1067)
+    get_hll_global $P1060, ["PAST"], "Op"
+    find_lex $P1061, "$/"
+    unless_null $P1061, vivify_277
+    $P1061 = root_new ['parrot';'Hash']
+  vivify_277:
+    set $P1062, $P1061["pir"]
+    unless_null $P1062, vivify_278
+    new $P1062, "Undef"
+  vivify_278:
+    set $S1063, $P1062
+    $P1064 = $P1060."new"($S1063 :named("inline"), "inline" :named("pasttype"))
+    find_lex $P1065, "$/"
+    $P1066 = $P1059."new"($P1064, "pastnode" :named("pasttype"), $P1065 :named("node"))
 .annotate 'line', 272
-    .return ($P1068)
-  control_1056:
+    $P1067 = $P1058."!make"($P1066)
+.annotate 'line', 271
+    .return ($P1067)
+  control_1055:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1069, exception, "payload"
-    .return ($P1069)
+    getattribute $P1068, exception, "payload"
+    .return ($P1068)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<w>"  :subid("65_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1073
-.annotate 'line', 280
-    new $P1072, 'ExceptionHandler'
-    set_addr $P1072, control_1071
-    $P1072."handle_types"(.CONTROL_RETURN)
-    push_eh $P1072
+.sub "backslash:sym<w>"  :subid("64_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1072
+.annotate 'line', 279
+    new $P1071, 'ExceptionHandler'
+    set_addr $P1071, control_1070
+    $P1071."handle_types"(.CONTROL_RETURN)
+    push_eh $P1071
     .lex "self", self
-    .lex "$/", param_1073
+    .lex "$/", param_1072
+.annotate 'line', 280
+    new $P1073, "Undef"
+    .lex "$subtype", $P1073
 .annotate 'line', 281
     new $P1074, "Undef"
-    .lex "$subtype", $P1074
-.annotate 'line', 282
-    new $P1075, "Undef"
-    .lex "$past", $P1075
+    .lex "$past", $P1074
+.annotate 'line', 280
+    find_lex $P1077, "$/"
+    unless_null $P1077, vivify_279
+    $P1077 = root_new ['parrot';'Hash']
+  vivify_279:
+    set $P1078, $P1077["sym"]
+    unless_null $P1078, vivify_280
+    new $P1078, "Undef"
+  vivify_280:
+    set $S1079, $P1078
+    iseq $I1080, $S1079, "n"
+    if $I1080, if_1076
+    find_lex $P1082, "$/"
+    unless_null $P1082, vivify_281
+    $P1082 = root_new ['parrot';'Hash']
+  vivify_281:
+    set $P1083, $P1082["sym"]
+    unless_null $P1083, vivify_282
+    new $P1083, "Undef"
+  vivify_282:
+    set $S1084, $P1083
+    new $P1075, 'String'
+    set $P1075, $S1084
+    goto if_1076_end
+  if_1076:
+    new $P1081, "String"
+    assign $P1081, "nl"
+    set $P1075, $P1081
+  if_1076_end:
+    store_lex "$subtype", $P1075
 .annotate 'line', 281
-    find_lex $P1078, "$/"
-    unless_null $P1078, vivify_269
-    $P1078 = root_new ['parrot';'Hash']
-  vivify_269:
-    set $P1079, $P1078["sym"]
-    unless_null $P1079, vivify_270
-    new $P1079, "Undef"
-  vivify_270:
-    set $S1080, $P1079
-    iseq $I1081, $S1080, "n"
-    if $I1081, if_1077
-    find_lex $P1083, "$/"
-    unless_null $P1083, vivify_271
-    $P1083 = root_new ['parrot';'Hash']
-  vivify_271:
-    set $P1084, $P1083["sym"]
-    unless_null $P1084, vivify_272
-    new $P1084, "Undef"
-  vivify_272:
-    set $S1085, $P1084
-    new $P1076, 'String'
-    set $P1076, $S1085
-    goto if_1077_end
-  if_1077:
-    new $P1082, "String"
-    assign $P1082, "nl"
-    set $P1076, $P1082
-  if_1077_end:
-    store_lex "$subtype", $P1076
+    get_hll_global $P1085, ["PAST"], "Regex"
+    find_lex $P1086, "$subtype"
+    find_lex $P1087, "$/"
+    $P1088 = $P1085."new"("charclass" :named("pasttype"), $P1086 :named("subtype"), $P1087 :named("node"))
+    store_lex "$past", $P1088
 .annotate 'line', 282
-    get_hll_global $P1086, ["PAST"], "Regex"
-    find_lex $P1087, "$subtype"
-    find_lex $P1088, "$/"
-    $P1089 = $P1086."new"("charclass" :named("pasttype"), $P1087 :named("subtype"), $P1088 :named("node"))
-    store_lex "$past", $P1089
-.annotate 'line', 283
-    find_lex $P1090, "$/"
-    find_lex $P1091, "$past"
-    $P1092 = $P1090."!make"($P1091)
-.annotate 'line', 280
-    .return ($P1092)
-  control_1071:
+    find_lex $P1089, "$/"
+    find_lex $P1090, "$past"
+    $P1091 = $P1089."!make"($P1090)
+.annotate 'line', 279
+    .return ($P1091)
+  control_1070:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1093, exception, "payload"
-    .return ($P1093)
+    getattribute $P1092, exception, "payload"
+    .return ($P1092)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<b>"  :subid("66_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1097
-.annotate 'line', 286
-    new $P1096, 'ExceptionHandler'
-    set_addr $P1096, control_1095
-    $P1096."handle_types"(.CONTROL_RETURN)
-    push_eh $P1096
+.sub "backslash:sym<b>"  :subid("65_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1096
+.annotate 'line', 285
+    new $P1095, 'ExceptionHandler'
+    set_addr $P1095, control_1094
+    $P1095."handle_types"(.CONTROL_RETURN)
+    push_eh $P1095
     .lex "self", self
-    .lex "$/", param_1097
-.annotate 'line', 287
-    new $P1098, "Undef"
-    .lex "$past", $P1098
-    get_hll_global $P1099, ["PAST"], "Regex"
-.annotate 'line', 288
-    find_lex $P1100, "$/"
-    unless_null $P1100, vivify_273
-    $P1100 = root_new ['parrot';'Hash']
-  vivify_273:
-    set $P1101, $P1100["sym"]
-    unless_null $P1101, vivify_274
-    new $P1101, "Undef"
-  vivify_274:
-    set $S1102, $P1101
-    iseq $I1103, $S1102, "B"
-    find_lex $P1104, "$/"
-    $P1105 = $P1099."new"("\b", "enumcharlist" :named("pasttype"), $I1103 :named("negate"), $P1104 :named("node"))
+    .lex "$/", param_1096
+.annotate 'line', 286
+    new $P1097, "Undef"
+    .lex "$past", $P1097
+    get_hll_global $P1098, ["PAST"], "Regex"
 .annotate 'line', 287
-    store_lex "$past", $P1105
-.annotate 'line', 289
-    find_lex $P1106, "$/"
-    find_lex $P1107, "$past"
-    $P1108 = $P1106."!make"($P1107)
+    find_lex $P1099, "$/"
+    unless_null $P1099, vivify_283
+    $P1099 = root_new ['parrot';'Hash']
+  vivify_283:
+    set $P1100, $P1099["sym"]
+    unless_null $P1100, vivify_284
+    new $P1100, "Undef"
+  vivify_284:
+    set $S1101, $P1100
+    iseq $I1102, $S1101, "B"
+    find_lex $P1103, "$/"
+    $P1104 = $P1098."new"("\b", "enumcharlist" :named("pasttype"), $I1102 :named("negate"), $P1103 :named("node"))
 .annotate 'line', 286
-    .return ($P1108)
-  control_1095:
+    store_lex "$past", $P1104
+.annotate 'line', 288
+    find_lex $P1105, "$/"
+    find_lex $P1106, "$past"
+    $P1107 = $P1105."!make"($P1106)
+.annotate 'line', 285
+    .return ($P1107)
+  control_1094:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1109, exception, "payload"
-    .return ($P1109)
+    getattribute $P1108, exception, "payload"
+    .return ($P1108)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<e>"  :subid("67_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1113
-.annotate 'line', 292
-    new $P1112, 'ExceptionHandler'
-    set_addr $P1112, control_1111
-    $P1112."handle_types"(.CONTROL_RETURN)
-    push_eh $P1112
+.sub "backslash:sym<e>"  :subid("66_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1112
+.annotate 'line', 291
+    new $P1111, 'ExceptionHandler'
+    set_addr $P1111, control_1110
+    $P1111."handle_types"(.CONTROL_RETURN)
+    push_eh $P1111
     .lex "self", self
-    .lex "$/", param_1113
-.annotate 'line', 293
-    new $P1114, "Undef"
-    .lex "$past", $P1114
-    get_hll_global $P1115, ["PAST"], "Regex"
-.annotate 'line', 294
-    find_lex $P1116, "$/"
-    unless_null $P1116, vivify_275
-    $P1116 = root_new ['parrot';'Hash']
-  vivify_275:
-    set $P1117, $P1116["sym"]
-    unless_null $P1117, vivify_276
-    new $P1117, "Undef"
-  vivify_276:
-    set $S1118, $P1117
-    iseq $I1119, $S1118, "E"
-    find_lex $P1120, "$/"
-    $P1121 = $P1115."new"("\e", "enumcharlist" :named("pasttype"), $I1119 :named("negate"), $P1120 :named("node"))
+    .lex "$/", param_1112
+.annotate 'line', 292
+    new $P1113, "Undef"
+    .lex "$past", $P1113
+    get_hll_global $P1114, ["PAST"], "Regex"
 .annotate 'line', 293
-    store_lex "$past", $P1121
-.annotate 'line', 295
-    find_lex $P1122, "$/"
-    find_lex $P1123, "$past"
-    $P1124 = $P1122."!make"($P1123)
+    find_lex $P1115, "$/"
+    unless_null $P1115, vivify_285
+    $P1115 = root_new ['parrot';'Hash']
+  vivify_285:
+    set $P1116, $P1115["sym"]
+    unless_null $P1116, vivify_286
+    new $P1116, "Undef"
+  vivify_286:
+    set $S1117, $P1116
+    iseq $I1118, $S1117, "E"
+    find_lex $P1119, "$/"
+    $P1120 = $P1114."new"("\e", "enumcharlist" :named("pasttype"), $I1118 :named("negate"), $P1119 :named("node"))
 .annotate 'line', 292
-    .return ($P1124)
-  control_1111:
+    store_lex "$past", $P1120
+.annotate 'line', 294
+    find_lex $P1121, "$/"
+    find_lex $P1122, "$past"
+    $P1123 = $P1121."!make"($P1122)
+.annotate 'line', 291
+    .return ($P1123)
+  control_1110:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1125, exception, "payload"
-    .return ($P1125)
+    getattribute $P1124, exception, "payload"
+    .return ($P1124)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<f>"  :subid("68_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1129
-.annotate 'line', 298
-    new $P1128, 'ExceptionHandler'
-    set_addr $P1128, control_1127
-    $P1128."handle_types"(.CONTROL_RETURN)
-    push_eh $P1128
+.sub "backslash:sym<f>"  :subid("67_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1128
+.annotate 'line', 297
+    new $P1127, 'ExceptionHandler'
+    set_addr $P1127, control_1126
+    $P1127."handle_types"(.CONTROL_RETURN)
+    push_eh $P1127
     .lex "self", self
-    .lex "$/", param_1129
-.annotate 'line', 299
-    new $P1130, "Undef"
-    .lex "$past", $P1130
-    get_hll_global $P1131, ["PAST"], "Regex"
-.annotate 'line', 300
-    find_lex $P1132, "$/"
-    unless_null $P1132, vivify_277
-    $P1132 = root_new ['parrot';'Hash']
-  vivify_277:
-    set $P1133, $P1132["sym"]
-    unless_null $P1133, vivify_278
-    new $P1133, "Undef"
-  vivify_278:
-    set $S1134, $P1133
-    iseq $I1135, $S1134, "F"
-    find_lex $P1136, "$/"
-    $P1137 = $P1131."new"("\f", "enumcharlist" :named("pasttype"), $I1135 :named("negate"), $P1136 :named("node"))
+    .lex "$/", param_1128
+.annotate 'line', 298
+    new $P1129, "Undef"
+    .lex "$past", $P1129
+    get_hll_global $P1130, ["PAST"], "Regex"
 .annotate 'line', 299
-    store_lex "$past", $P1137
-.annotate 'line', 301
-    find_lex $P1138, "$/"
-    find_lex $P1139, "$past"
-    $P1140 = $P1138."!make"($P1139)
+    find_lex $P1131, "$/"
+    unless_null $P1131, vivify_287
+    $P1131 = root_new ['parrot';'Hash']
+  vivify_287:
+    set $P1132, $P1131["sym"]
+    unless_null $P1132, vivify_288
+    new $P1132, "Undef"
+  vivify_288:
+    set $S1133, $P1132
+    iseq $I1134, $S1133, "F"
+    find_lex $P1135, "$/"
+    $P1136 = $P1130."new"("\f", "enumcharlist" :named("pasttype"), $I1134 :named("negate"), $P1135 :named("node"))
 .annotate 'line', 298
-    .return ($P1140)
-  control_1127:
+    store_lex "$past", $P1136
+.annotate 'line', 300
+    find_lex $P1137, "$/"
+    find_lex $P1138, "$past"
+    $P1139 = $P1137."!make"($P1138)
+.annotate 'line', 297
+    .return ($P1139)
+  control_1126:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1141, exception, "payload"
-    .return ($P1141)
+    getattribute $P1140, exception, "payload"
+    .return ($P1140)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<h>"  :subid("69_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1145
-.annotate 'line', 304
-    new $P1144, 'ExceptionHandler'
-    set_addr $P1144, control_1143
-    $P1144."handle_types"(.CONTROL_RETURN)
-    push_eh $P1144
+.sub "backslash:sym<h>"  :subid("68_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1144
+.annotate 'line', 303
+    new $P1143, 'ExceptionHandler'
+    set_addr $P1143, control_1142
+    $P1143."handle_types"(.CONTROL_RETURN)
+    push_eh $P1143
     .lex "self", self
-    .lex "$/", param_1145
-.annotate 'line', 305
-    new $P1146, "Undef"
-    .lex "$past", $P1146
-    get_hll_global $P1147, ["PAST"], "Regex"
-.annotate 'line', 306
-    find_lex $P1148, "$/"
-    unless_null $P1148, vivify_279
-    $P1148 = root_new ['parrot';'Hash']
-  vivify_279:
-    set $P1149, $P1148["sym"]
-    unless_null $P1149, vivify_280
-    new $P1149, "Undef"
-  vivify_280:
-    set $S1150, $P1149
-    iseq $I1151, $S1150, "H"
-    find_lex $P1152, "$/"
-    $P1153 = $P1147."new"(unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", "enumcharlist" :named("pasttype"), $I1151 :named("negate"), $P1152 :named("node"))
+    .lex "$/", param_1144
+.annotate 'line', 304
+    new $P1145, "Undef"
+    .lex "$past", $P1145
+    get_hll_global $P1146, ["PAST"], "Regex"
 .annotate 'line', 305
-    store_lex "$past", $P1153
-.annotate 'line', 307
-    find_lex $P1154, "$/"
-    find_lex $P1155, "$past"
-    $P1156 = $P1154."!make"($P1155)
+    find_lex $P1147, "$/"
+    unless_null $P1147, vivify_289
+    $P1147 = root_new ['parrot';'Hash']
+  vivify_289:
+    set $P1148, $P1147["sym"]
+    unless_null $P1148, vivify_290
+    new $P1148, "Undef"
+  vivify_290:
+    set $S1149, $P1148
+    iseq $I1150, $S1149, "H"
+    find_lex $P1151, "$/"
+    $P1152 = $P1146."new"(unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", "enumcharlist" :named("pasttype"), $I1150 :named("negate"), $P1151 :named("node"))
 .annotate 'line', 304
-    .return ($P1156)
-  control_1143:
+    store_lex "$past", $P1152
+.annotate 'line', 306
+    find_lex $P1153, "$/"
+    find_lex $P1154, "$past"
+    $P1155 = $P1153."!make"($P1154)
+.annotate 'line', 303
+    .return ($P1155)
+  control_1142:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1157, exception, "payload"
-    .return ($P1157)
+    getattribute $P1156, exception, "payload"
+    .return ($P1156)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<r>"  :subid("70_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1161
-.annotate 'line', 310
-    new $P1160, 'ExceptionHandler'
-    set_addr $P1160, control_1159
-    $P1160."handle_types"(.CONTROL_RETURN)
-    push_eh $P1160
+.sub "backslash:sym<r>"  :subid("69_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1160
+.annotate 'line', 309
+    new $P1159, 'ExceptionHandler'
+    set_addr $P1159, control_1158
+    $P1159."handle_types"(.CONTROL_RETURN)
+    push_eh $P1159
     .lex "self", self
-    .lex "$/", param_1161
-.annotate 'line', 311
-    new $P1162, "Undef"
-    .lex "$past", $P1162
-    get_hll_global $P1163, ["PAST"], "Regex"
-.annotate 'line', 312
-    find_lex $P1164, "$/"
-    unless_null $P1164, vivify_281
-    $P1164 = root_new ['parrot';'Hash']
-  vivify_281:
-    set $P1165, $P1164["sym"]
-    unless_null $P1165, vivify_282
-    new $P1165, "Undef"
-  vivify_282:
-    set $S1166, $P1165
-    iseq $I1167, $S1166, "R"
-    find_lex $P1168, "$/"
-    $P1169 = $P1163."new"("\r", "enumcharlist" :named("pasttype"), $I1167 :named("negate"), $P1168 :named("node"))
+    .lex "$/", param_1160
+.annotate 'line', 310
+    new $P1161, "Undef"
+    .lex "$past", $P1161
+    get_hll_global $P1162, ["PAST"], "Regex"
 .annotate 'line', 311
-    store_lex "$past", $P1169
-.annotate 'line', 313
-    find_lex $P1170, "$/"
-    find_lex $P1171, "$past"
-    $P1172 = $P1170."!make"($P1171)
+    find_lex $P1163, "$/"
+    unless_null $P1163, vivify_291
+    $P1163 = root_new ['parrot';'Hash']
+  vivify_291:
+    set $P1164, $P1163["sym"]
+    unless_null $P1164, vivify_292
+    new $P1164, "Undef"
+  vivify_292:
+    set $S1165, $P1164
+    iseq $I1166, $S1165, "R"
+    find_lex $P1167, "$/"
+    $P1168 = $P1162."new"("\r", "enumcharlist" :named("pasttype"), $I1166 :named("negate"), $P1167 :named("node"))
 .annotate 'line', 310
-    .return ($P1172)
-  control_1159:
+    store_lex "$past", $P1168
+.annotate 'line', 312
+    find_lex $P1169, "$/"
+    find_lex $P1170, "$past"
+    $P1171 = $P1169."!make"($P1170)
+.annotate 'line', 309
+    .return ($P1171)
+  control_1158:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1173, exception, "payload"
-    .return ($P1173)
+    getattribute $P1172, exception, "payload"
+    .return ($P1172)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<t>"  :subid("71_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1177
-.annotate 'line', 316
-    new $P1176, 'ExceptionHandler'
-    set_addr $P1176, control_1175
-    $P1176."handle_types"(.CONTROL_RETURN)
-    push_eh $P1176
+.sub "backslash:sym<t>"  :subid("70_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1176
+.annotate 'line', 315
+    new $P1175, 'ExceptionHandler'
+    set_addr $P1175, control_1174
+    $P1175."handle_types"(.CONTROL_RETURN)
+    push_eh $P1175
     .lex "self", self
-    .lex "$/", param_1177
-.annotate 'line', 317
-    new $P1178, "Undef"
-    .lex "$past", $P1178
-    get_hll_global $P1179, ["PAST"], "Regex"
-.annotate 'line', 318
-    find_lex $P1180, "$/"
-    unless_null $P1180, vivify_283
-    $P1180 = root_new ['parrot';'Hash']
-  vivify_283:
-    set $P1181, $P1180["sym"]
-    unless_null $P1181, vivify_284
-    new $P1181, "Undef"
-  vivify_284:
-    set $S1182, $P1181
-    iseq $I1183, $S1182, "T"
-    find_lex $P1184, "$/"
-    $P1185 = $P1179."new"("\t", "enumcharlist" :named("pasttype"), $I1183 :named("negate"), $P1184 :named("node"))
+    .lex "$/", param_1176
+.annotate 'line', 316
+    new $P1177, "Undef"
+    .lex "$past", $P1177
+    get_hll_global $P1178, ["PAST"], "Regex"
 .annotate 'line', 317
-    store_lex "$past", $P1185
-.annotate 'line', 319
-    find_lex $P1186, "$/"
-    find_lex $P1187, "$past"
-    $P1188 = $P1186."!make"($P1187)
+    find_lex $P1179, "$/"
+    unless_null $P1179, vivify_293
+    $P1179 = root_new ['parrot';'Hash']
+  vivify_293:
+    set $P1180, $P1179["sym"]
+    unless_null $P1180, vivify_294
+    new $P1180, "Undef"
+  vivify_294:
+    set $S1181, $P1180
+    iseq $I1182, $S1181, "T"
+    find_lex $P1183, "$/"
+    $P1184 = $P1178."new"("\t", "enumcharlist" :named("pasttype"), $I1182 :named("negate"), $P1183 :named("node"))
 .annotate 'line', 316
-    .return ($P1188)
-  control_1175:
+    store_lex "$past", $P1184
+.annotate 'line', 318
+    find_lex $P1185, "$/"
+    find_lex $P1186, "$past"
+    $P1187 = $P1185."!make"($P1186)
+.annotate 'line', 315
+    .return ($P1187)
+  control_1174:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1189, exception, "payload"
-    .return ($P1189)
+    getattribute $P1188, exception, "payload"
+    .return ($P1188)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<v>"  :subid("72_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1193
+.sub "backslash:sym<v>"  :subid("71_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1192
+.annotate 'line', 321
+    new $P1191, 'ExceptionHandler'
+    set_addr $P1191, control_1190
+    $P1191."handle_types"(.CONTROL_RETURN)
+    push_eh $P1191
+    .lex "self", self
+    .lex "$/", param_1192
 .annotate 'line', 322
-    new $P1192, 'ExceptionHandler'
-    set_addr $P1192, control_1191
-    $P1192."handle_types"(.CONTROL_RETURN)
-    push_eh $P1192
-    .lex "self", self
-    .lex "$/", param_1193
-.annotate 'line', 323
-    new $P1194, "Undef"
-    .lex "$past", $P1194
-    get_hll_global $P1195, ["PAST"], "Regex"
-.annotate 'line', 325
-    find_lex $P1196, "$/"
-    unless_null $P1196, vivify_285
-    $P1196 = root_new ['parrot';'Hash']
-  vivify_285:
-    set $P1197, $P1196["sym"]
-    unless_null $P1197, vivify_286
-    new $P1197, "Undef"
-  vivify_286:
-    set $S1198, $P1197
-    iseq $I1199, $S1198, "V"
-    find_lex $P1200, "$/"
-    $P1201 = $P1195."new"(unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", "enumcharlist" :named("pasttype"), $I1199 :named("negate"), $P1200 :named("node"))
-.annotate 'line', 323
-    store_lex "$past", $P1201
-.annotate 'line', 326
-    find_lex $P1202, "$/"
-    find_lex $P1203, "$past"
-    $P1204 = $P1202."!make"($P1203)
+    new $P1193, "Undef"
+    .lex "$past", $P1193
+    get_hll_global $P1194, ["PAST"], "Regex"
+.annotate 'line', 324
+    find_lex $P1195, "$/"
+    unless_null $P1195, vivify_295
+    $P1195 = root_new ['parrot';'Hash']
+  vivify_295:
+    set $P1196, $P1195["sym"]
+    unless_null $P1196, vivify_296
+    new $P1196, "Undef"
+  vivify_296:
+    set $S1197, $P1196
+    iseq $I1198, $S1197, "V"
+    find_lex $P1199, "$/"
+    $P1200 = $P1194."new"(unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", "enumcharlist" :named("pasttype"), $I1198 :named("negate"), $P1199 :named("node"))
 .annotate 'line', 322
-    .return ($P1204)
-  control_1191:
+    store_lex "$past", $P1200
+.annotate 'line', 325
+    find_lex $P1201, "$/"
+    find_lex $P1202, "$past"
+    $P1203 = $P1201."!make"($P1202)
+.annotate 'line', 321
+    .return ($P1203)
+  control_1190:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1205, exception, "payload"
-    .return ($P1205)
+    getattribute $P1204, exception, "payload"
+    .return ($P1204)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<o>"  :subid("73_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1209
-.annotate 'line', 329
-    new $P1208, 'ExceptionHandler'
-    set_addr $P1208, control_1207
-    $P1208."handle_types"(.CONTROL_RETURN)
-    push_eh $P1208
+.sub "backslash:sym<o>"  :subid("72_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1208
+.annotate 'line', 328
+    new $P1207, 'ExceptionHandler'
+    set_addr $P1207, control_1206
+    $P1207."handle_types"(.CONTROL_RETURN)
+    push_eh $P1207
     .lex "self", self
-    .lex "$/", param_1209
+    .lex "$/", param_1208
+.annotate 'line', 329
+    new $P1209, "Undef"
+    .lex "$octlit", $P1209
 .annotate 'line', 330
-    new $P1210, "Undef"
-    .lex "$octlit", $P1210
-.annotate 'line', 331
-    get_hll_global $P1211, ["HLL";"Actions"], "ints_to_string"
-    find_lex $P1214, "$/"
-    unless_null $P1214, vivify_287
-    $P1214 = root_new ['parrot';'Hash']
-  vivify_287:
-    set $P1215, $P1214["octint"]
-    unless_null $P1215, vivify_288
-    new $P1215, "Undef"
-  vivify_288:
-    unless $P1215, unless_1213
-    set $P1212, $P1215
-    goto unless_1213_end
-  unless_1213:
-    find_lex $P1216, "$/"
-    unless_null $P1216, vivify_289
+    get_hll_global $P1210, ["HLL";"Actions"], "ints_to_string"
+    find_lex $P1213, "$/"
+    unless_null $P1213, vivify_297
+    $P1213 = root_new ['parrot';'Hash']
+  vivify_297:
+    set $P1214, $P1213["octint"]
+    unless_null $P1214, vivify_298
+    new $P1214, "Undef"
+  vivify_298:
+    unless $P1214, unless_1212
+    set $P1211, $P1214
+    goto unless_1212_end
+  unless_1212:
+    find_lex $P1215, "$/"
+    unless_null $P1215, vivify_299
+    $P1215 = root_new ['parrot';'Hash']
+  vivify_299:
+    set $P1216, $P1215["octints"]
+    unless_null $P1216, vivify_300
     $P1216 = root_new ['parrot';'Hash']
-  vivify_289:
-    set $P1217, $P1216["octints"]
-    unless_null $P1217, vivify_290
-    $P1217 = root_new ['parrot';'Hash']
-  vivify_290:
-    set $P1218, $P1217["octint"]
-    unless_null $P1218, vivify_291
-    new $P1218, "Undef"
-  vivify_291:
-    set $P1212, $P1218
-  unless_1213_end:
-    $P1219 = $P1211($P1212)
-    store_lex "$octlit", $P1219
-.annotate 'line', 332
-    find_lex $P1220, "$/"
-    find_lex $P1223, "$/"
-    unless_null $P1223, vivify_292
-    $P1223 = root_new ['parrot';'Hash']
-  vivify_292:
-    set $P1224, $P1223["sym"]
-    unless_null $P1224, vivify_293
-    new $P1224, "Undef"
-  vivify_293:
-    set $S1225, $P1224
-    iseq $I1226, $S1225, "O"
-    if $I1226, if_1222
-.annotate 'line', 335
-    get_hll_global $P1231, ["PAST"], "Regex"
-    find_lex $P1232, "$octlit"
-    find_lex $P1233, "$/"
-    $P1234 = $P1231."new"($P1232, "literal" :named("pasttype"), $P1233 :named("node"))
-    set $P1221, $P1234
+  vivify_300:
+    set $P1217, $P1216["octint"]
+    unless_null $P1217, vivify_301
+    new $P1217, "Undef"
+  vivify_301:
+    set $P1211, $P1217
+  unless_1212_end:
+    $P1218 = $P1210($P1211)
+    store_lex "$octlit", $P1218
+.annotate 'line', 331
+    find_lex $P1219, "$/"
+    find_lex $P1222, "$/"
+    unless_null $P1222, vivify_302
+    $P1222 = root_new ['parrot';'Hash']
+  vivify_302:
+    set $P1223, $P1222["sym"]
+    unless_null $P1223, vivify_303
+    new $P1223, "Undef"
+  vivify_303:
+    set $S1224, $P1223
+    iseq $I1225, $S1224, "O"
+    if $I1225, if_1221
+.annotate 'line', 334
+    get_hll_global $P1230, ["PAST"], "Regex"
+    find_lex $P1231, "$octlit"
+    find_lex $P1232, "$/"
+    $P1233 = $P1230."new"($P1231, "literal" :named("pasttype"), $P1232 :named("node"))
+    set $P1220, $P1233
+.annotate 'line', 331
+    goto if_1221_end
+  if_1221:
 .annotate 'line', 332
-    goto if_1222_end
-  if_1222:
-.annotate 'line', 333
-    get_hll_global $P1227, ["PAST"], "Regex"
-    find_lex $P1228, "$octlit"
-    find_lex $P1229, "$/"
-    $P1230 = $P1227."new"($P1228, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1229 :named("node"))
-    set $P1221, $P1230
-  if_1222_end:
-    $P1235 = $P1220."!make"($P1221)
-.annotate 'line', 329
-    .return ($P1235)
-  control_1207:
+    get_hll_global $P1226, ["PAST"], "Regex"
+    find_lex $P1227, "$octlit"
+    find_lex $P1228, "$/"
+    $P1229 = $P1226."new"($P1227, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1228 :named("node"))
+    set $P1220, $P1229
+  if_1221_end:
+    $P1234 = $P1219."!make"($P1220)
+.annotate 'line', 328
+    .return ($P1234)
+  control_1206:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1236, exception, "payload"
-    .return ($P1236)
+    getattribute $P1235, exception, "payload"
+    .return ($P1235)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<x>"  :subid("74_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1240
-.annotate 'line', 338
-    new $P1239, 'ExceptionHandler'
-    set_addr $P1239, control_1238
-    $P1239."handle_types"(.CONTROL_RETURN)
-    push_eh $P1239
+.sub "backslash:sym<x>"  :subid("73_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1239
+.annotate 'line', 337
+    new $P1238, 'ExceptionHandler'
+    set_addr $P1238, control_1237
+    $P1238."handle_types"(.CONTROL_RETURN)
+    push_eh $P1238
     .lex "self", self
-    .lex "$/", param_1240
+    .lex "$/", param_1239
+.annotate 'line', 338
+    new $P1240, "Undef"
+    .lex "$hexlit", $P1240
 .annotate 'line', 339
-    new $P1241, "Undef"
-    .lex "$hexlit", $P1241
-.annotate 'line', 340
-    get_hll_global $P1242, ["HLL";"Actions"], "ints_to_string"
-    find_lex $P1245, "$/"
-    unless_null $P1245, vivify_294
-    $P1245 = root_new ['parrot';'Hash']
-  vivify_294:
-    set $P1246, $P1245["hexint"]
-    unless_null $P1246, vivify_295
-    new $P1246, "Undef"
-  vivify_295:
-    unless $P1246, unless_1244
-    set $P1243, $P1246
-    goto unless_1244_end
-  unless_1244:
-    find_lex $P1247, "$/"
-    unless_null $P1247, vivify_296
+    get_hll_global $P1241, ["HLL";"Actions"], "ints_to_string"
+    find_lex $P1244, "$/"
+    unless_null $P1244, vivify_304
+    $P1244 = root_new ['parrot';'Hash']
+  vivify_304:
+    set $P1245, $P1244["hexint"]
+    unless_null $P1245, vivify_305
+    new $P1245, "Undef"
+  vivify_305:
+    unless $P1245, unless_1243
+    set $P1242, $P1245
+    goto unless_1243_end
+  unless_1243:
+    find_lex $P1246, "$/"
+    unless_null $P1246, vivify_306
+    $P1246 = root_new ['parrot';'Hash']
+  vivify_306:
+    set $P1247, $P1246["hexints"]
+    unless_null $P1247, vivify_307
     $P1247 = root_new ['parrot';'Hash']
-  vivify_296:
-    set $P1248, $P1247["hexints"]
-    unless_null $P1248, vivify_297
-    $P1248 = root_new ['parrot';'Hash']
-  vivify_297:
-    set $P1249, $P1248["hexint"]
-    unless_null $P1249, vivify_298
-    new $P1249, "Undef"
-  vivify_298:
-    set $P1243, $P1249
-  unless_1244_end:
-    $P1250 = $P1242($P1243)
-    store_lex "$hexlit", $P1250
-.annotate 'line', 341
-    find_lex $P1251, "$/"
-    find_lex $P1254, "$/"
-    unless_null $P1254, vivify_299
-    $P1254 = root_new ['parrot';'Hash']
-  vivify_299:
-    set $P1255, $P1254["sym"]
-    unless_null $P1255, vivify_300
-    new $P1255, "Undef"
-  vivify_300:
-    set $S1256, $P1255
-    iseq $I1257, $S1256, "X"
-    if $I1257, if_1253
-.annotate 'line', 344
-    get_hll_global $P1262, ["PAST"], "Regex"
-    find_lex $P1263, "$hexlit"
-    find_lex $P1264, "$/"
-    $P1265 = $P1262."new"($P1263, "literal" :named("pasttype"), $P1264 :named("node"))
-    set $P1252, $P1265
+  vivify_307:
+    set $P1248, $P1247["hexint"]
+    unless_null $P1248, vivify_308
+    new $P1248, "Undef"
+  vivify_308:
+    set $P1242, $P1248
+  unless_1243_end:
+    $P1249 = $P1241($P1242)
+    store_lex "$hexlit", $P1249
+.annotate 'line', 340
+    find_lex $P1250, "$/"
+    find_lex $P1253, "$/"
+    unless_null $P1253, vivify_309
+    $P1253 = root_new ['parrot';'Hash']
+  vivify_309:
+    set $P1254, $P1253["sym"]
+    unless_null $P1254, vivify_310
+    new $P1254, "Undef"
+  vivify_310:
+    set $S1255, $P1254
+    iseq $I1256, $S1255, "X"
+    if $I1256, if_1252
+.annotate 'line', 343
+    get_hll_global $P1261, ["PAST"], "Regex"
+    find_lex $P1262, "$hexlit"
+    find_lex $P1263, "$/"
+    $P1264 = $P1261."new"($P1262, "literal" :named("pasttype"), $P1263 :named("node"))
+    set $P1251, $P1264
+.annotate 'line', 340
+    goto if_1252_end
+  if_1252:
 .annotate 'line', 341
-    goto if_1253_end
-  if_1253:
-.annotate 'line', 342
-    get_hll_global $P1258, ["PAST"], "Regex"
-    find_lex $P1259, "$hexlit"
-    find_lex $P1260, "$/"
-    $P1261 = $P1258."new"($P1259, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1260 :named("node"))
-    set $P1252, $P1261
-  if_1253_end:
-    $P1266 = $P1251."!make"($P1252)
-.annotate 'line', 338
-    .return ($P1266)
-  control_1238:
+    get_hll_global $P1257, ["PAST"], "Regex"
+    find_lex $P1258, "$hexlit"
+    find_lex $P1259, "$/"
+    $P1260 = $P1257."new"($P1258, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1259 :named("node"))
+    set $P1251, $P1260
+  if_1252_end:
+    $P1265 = $P1250."!make"($P1251)
+.annotate 'line', 337
+    .return ($P1265)
+  control_1237:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1267, exception, "payload"
-    .return ($P1267)
+    getattribute $P1266, exception, "payload"
+    .return ($P1266)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<c>"  :subid("75_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1271
-.annotate 'line', 347
-    new $P1270, 'ExceptionHandler'
-    set_addr $P1270, control_1269
-    $P1270."handle_types"(.CONTROL_RETURN)
-    push_eh $P1270
-    .lex "self", self
-    .lex "$/", param_1271
-.annotate 'line', 348
-    find_lex $P1272, "$/"
-    get_hll_global $P1273, ["PAST"], "Regex"
-    find_lex $P1274, "$/"
-    unless_null $P1274, vivify_301
-    $P1274 = root_new ['parrot';'Hash']
-  vivify_301:
-    set $P1275, $P1274["charspec"]
-    unless_null $P1275, vivify_302
-    new $P1275, "Undef"
-  vivify_302:
-    $P1276 = $P1275."ast"()
-    find_lex $P1277, "$/"
-    $P1278 = $P1273."new"($P1276, "literal" :named("pasttype"), $P1277 :named("node"))
-    $P1279 = $P1272."!make"($P1278)
+.sub "backslash:sym<c>"  :subid("74_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1270
+.annotate 'line', 346
+    new $P1269, 'ExceptionHandler'
+    set_addr $P1269, control_1268
+    $P1269."handle_types"(.CONTROL_RETURN)
+    push_eh $P1269
+    .lex "self", self
+    .lex "$/", param_1270
 .annotate 'line', 347
-    .return ($P1279)
-  control_1269:
+    find_lex $P1271, "$/"
+    get_hll_global $P1272, ["PAST"], "Regex"
+    find_lex $P1273, "$/"
+    unless_null $P1273, vivify_311
+    $P1273 = root_new ['parrot';'Hash']
+  vivify_311:
+    set $P1274, $P1273["charspec"]
+    unless_null $P1274, vivify_312
+    new $P1274, "Undef"
+  vivify_312:
+    $P1275 = $P1274."ast"()
+    find_lex $P1276, "$/"
+    $P1277 = $P1272."new"($P1275, "literal" :named("pasttype"), $P1276 :named("node"))
+    $P1278 = $P1271."!make"($P1277)
+.annotate 'line', 346
+    .return ($P1278)
+  control_1268:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1280, exception, "payload"
-    .return ($P1280)
+    getattribute $P1279, exception, "payload"
+    .return ($P1279)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<misc>"  :subid("76_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1284
-.annotate 'line', 351
-    new $P1283, 'ExceptionHandler'
-    set_addr $P1283, control_1282
-    $P1283."handle_types"(.CONTROL_RETURN)
-    push_eh $P1283
+.sub "backslash:sym<misc>"  :subid("75_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1283
+.annotate 'line', 350
+    new $P1282, 'ExceptionHandler'
+    set_addr $P1282, control_1281
+    $P1282."handle_types"(.CONTROL_RETURN)
+    push_eh $P1282
     .lex "self", self
-    .lex "$/", param_1284
-.annotate 'line', 352
-    new $P1285, "Undef"
-    .lex "$past", $P1285
-    get_hll_global $P1286, ["PAST"], "Regex"
-    find_lex $P1287, "$/"
-    set $S1288, $P1287
-    find_lex $P1289, "$/"
-    $P1290 = $P1286."new"($S1288, "literal" :named("pasttype"), $P1289 :named("node"))
-    store_lex "$past", $P1290
-.annotate 'line', 353
-    find_lex $P1291, "$/"
-    find_lex $P1292, "$past"
-    $P1293 = $P1291."!make"($P1292)
+    .lex "$/", param_1283
 .annotate 'line', 351
-    .return ($P1293)
-  control_1282:
+    new $P1284, "Undef"
+    .lex "$past", $P1284
+    get_hll_global $P1285, ["PAST"], "Regex"
+    find_lex $P1286, "$/"
+    set $S1287, $P1286
+    find_lex $P1288, "$/"
+    $P1289 = $P1285."new"($S1287, "literal" :named("pasttype"), $P1288 :named("node"))
+    store_lex "$past", $P1289
+.annotate 'line', 352
+    find_lex $P1290, "$/"
+    find_lex $P1291, "$past"
+    $P1292 = $P1290."!make"($P1291)
+.annotate 'line', 350
+    .return ($P1292)
+  control_1281:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1294, exception, "payload"
-    .return ($P1294)
+    getattribute $P1293, exception, "payload"
+    .return ($P1293)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<?>"  :subid("77_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1298
-.annotate 'line', 357
-    new $P1297, 'ExceptionHandler'
-    set_addr $P1297, control_1296
-    $P1297."handle_types"(.CONTROL_RETURN)
-    push_eh $P1297
+.sub "assertion:sym<?>"  :subid("76_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1297
+.annotate 'line', 356
+    new $P1296, 'ExceptionHandler'
+    set_addr $P1296, control_1295
+    $P1296."handle_types"(.CONTROL_RETURN)
+    push_eh $P1296
     .lex "self", self
-    .lex "$/", param_1298
-.annotate 'line', 358
-    new $P1299, "Undef"
-    .lex "$past", $P1299
+    .lex "$/", param_1297
 .annotate 'line', 357
-    find_lex $P1300, "$past"
+    new $P1298, "Undef"
+    .lex "$past", $P1298
+.annotate 'line', 356
+    find_lex $P1299, "$past"
+.annotate 'line', 358
+    find_lex $P1301, "$/"
+    unless_null $P1301, vivify_313
+    $P1301 = root_new ['parrot';'Hash']
+  vivify_313:
+    set $P1302, $P1301["assertion"]
+    unless_null $P1302, vivify_314
+    new $P1302, "Undef"
+  vivify_314:
+    if $P1302, if_1300
+.annotate 'line', 362
+    new $P1307, "Integer"
+    assign $P1307, 0
+    store_lex "$past", $P1307
+    goto if_1300_end
+  if_1300:
 .annotate 'line', 359
-    find_lex $P1302, "$/"
-    unless_null $P1302, vivify_303
-    $P1302 = root_new ['parrot';'Hash']
-  vivify_303:
-    set $P1303, $P1302["assertion"]
-    unless_null $P1303, vivify_304
-    new $P1303, "Undef"
-  vivify_304:
-    if $P1303, if_1301
-.annotate 'line', 363
-    new $P1308, "Integer"
-    assign $P1308, 0
-    store_lex "$past", $P1308
-    goto if_1301_end
-  if_1301:
+    find_lex $P1303, "$/"
+    unless_null $P1303, vivify_315
+    $P1303 = root_new ['parrot';'Hash']
+  vivify_315:
+    set $P1304, $P1303["assertion"]
+    unless_null $P1304, vivify_316
+    new $P1304, "Undef"
+  vivify_316:
+    $P1305 = $P1304."ast"()
+    store_lex "$past", $P1305
 .annotate 'line', 360
-    find_lex $P1304, "$/"
-    unless_null $P1304, vivify_305
-    $P1304 = root_new ['parrot';'Hash']
-  vivify_305:
-    set $P1305, $P1304["assertion"]
-    unless_null $P1305, vivify_306
-    new $P1305, "Undef"
-  vivify_306:
-    $P1306 = $P1305."ast"()
-    store_lex "$past", $P1306
-.annotate 'line', 361
-    find_lex $P1307, "$past"
-    $P1307."subtype"("zerowidth")
-  if_1301_end:
-.annotate 'line', 364
-    find_lex $P1309, "$/"
-    find_lex $P1310, "$past"
-    $P1311 = $P1309."!make"($P1310)
-.annotate 'line', 357
-    .return ($P1311)
-  control_1296:
+    find_lex $P1306, "$past"
+    $P1306."subtype"("zerowidth")
+  if_1300_end:
+.annotate 'line', 363
+    find_lex $P1308, "$/"
+    find_lex $P1309, "$past"
+    $P1310 = $P1308."!make"($P1309)
+.annotate 'line', 356
+    .return ($P1310)
+  control_1295:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1312, exception, "payload"
-    .return ($P1312)
+    getattribute $P1311, exception, "payload"
+    .return ($P1311)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<!>"  :subid("78_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1316
-.annotate 'line', 367
-    new $P1315, 'ExceptionHandler'
-    set_addr $P1315, control_1314
-    $P1315."handle_types"(.CONTROL_RETURN)
-    push_eh $P1315
+.sub "assertion:sym<!>"  :subid("77_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1315
+.annotate 'line', 366
+    new $P1314, 'ExceptionHandler'
+    set_addr $P1314, control_1313
+    $P1314."handle_types"(.CONTROL_RETURN)
+    push_eh $P1314
     .lex "self", self
-    .lex "$/", param_1316
-.annotate 'line', 368
-    new $P1317, "Undef"
-    .lex "$past", $P1317
+    .lex "$/", param_1315
 .annotate 'line', 367
-    find_lex $P1318, "$past"
-.annotate 'line', 369
-    find_lex $P1320, "$/"
-    unless_null $P1320, vivify_307
-    $P1320 = root_new ['parrot';'Hash']
-  vivify_307:
-    set $P1321, $P1320["assertion"]
-    unless_null $P1321, vivify_308
-    new $P1321, "Undef"
-  vivify_308:
-    if $P1321, if_1319
-.annotate 'line', 375
-    get_hll_global $P1330, ["PAST"], "Regex"
-    find_lex $P1331, "$/"
-    $P1332 = $P1330."new"("anchor" :named("pasttype"), "fail" :named("subtype"), $P1331 :named("node"))
-    store_lex "$past", $P1332
+    new $P1316, "Undef"
+    .lex "$past", $P1316
+.annotate 'line', 366
+    find_lex $P1317, "$past"
+.annotate 'line', 368
+    find_lex $P1319, "$/"
+    unless_null $P1319, vivify_317
+    $P1319 = root_new ['parrot';'Hash']
+  vivify_317:
+    set $P1320, $P1319["assertion"]
+    unless_null $P1320, vivify_318
+    new $P1320, "Undef"
+  vivify_318:
+    if $P1320, if_1318
 .annotate 'line', 374
-    goto if_1319_end
-  if_1319:
+    get_hll_global $P1329, ["PAST"], "Regex"
+    find_lex $P1330, "$/"
+    $P1331 = $P1329."new"("anchor" :named("pasttype"), "fail" :named("subtype"), $P1330 :named("node"))
+    store_lex "$past", $P1331
+.annotate 'line', 373
+    goto if_1318_end
+  if_1318:
+.annotate 'line', 369
+    find_lex $P1321, "$/"
+    unless_null $P1321, vivify_319
+    $P1321 = root_new ['parrot';'Hash']
+  vivify_319:
+    set $P1322, $P1321["assertion"]
+    unless_null $P1322, vivify_320
+    new $P1322, "Undef"
+  vivify_320:
+    $P1323 = $P1322."ast"()
+    store_lex "$past", $P1323
 .annotate 'line', 370
-    find_lex $P1322, "$/"
-    unless_null $P1322, vivify_309
-    $P1322 = root_new ['parrot';'Hash']
-  vivify_309:
-    set $P1323, $P1322["assertion"]
-    unless_null $P1323, vivify_310
-    new $P1323, "Undef"
-  vivify_310:
-    $P1324 = $P1323."ast"()
-    store_lex "$past", $P1324
-.annotate 'line', 371
+    find_lex $P1324, "$past"
     find_lex $P1325, "$past"
-    find_lex $P1326, "$past"
-    $P1327 = $P1326."negate"()
-    isfalse $I1328, $P1327
-    $P1325."negate"($I1328)
-.annotate 'line', 372
-    find_lex $P1329, "$past"
-    $P1329."subtype"("zerowidth")
-  if_1319_end:
-.annotate 'line', 377
-    find_lex $P1333, "$/"
-    find_lex $P1334, "$past"
-    $P1335 = $P1333."!make"($P1334)
-.annotate 'line', 367
-    .return ($P1335)
-  control_1314:
+    $P1326 = $P1325."negate"()
+    isfalse $I1327, $P1326
+    $P1324."negate"($I1327)
+.annotate 'line', 371
+    find_lex $P1328, "$past"
+    $P1328."subtype"("zerowidth")
+  if_1318_end:
+.annotate 'line', 376
+    find_lex $P1332, "$/"
+    find_lex $P1333, "$past"
+    $P1334 = $P1332."!make"($P1333)
+.annotate 'line', 366
+    .return ($P1334)
+  control_1313:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1336, exception, "payload"
-    .return ($P1336)
+    getattribute $P1335, exception, "payload"
+    .return ($P1335)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<method>"  :subid("79_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1340
-.annotate 'line', 380
-    new $P1339, 'ExceptionHandler'
-    set_addr $P1339, control_1338
-    $P1339."handle_types"(.CONTROL_RETURN)
-    push_eh $P1339
+.sub "assertion:sym<method>"  :subid("78_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1339
+.annotate 'line', 379
+    new $P1338, 'ExceptionHandler'
+    set_addr $P1338, control_1337
+    $P1338."handle_types"(.CONTROL_RETURN)
+    push_eh $P1338
     .lex "self", self
-    .lex "$/", param_1340
+    .lex "$/", param_1339
+.annotate 'line', 380
+    new $P1340, "Undef"
+    .lex "$past", $P1340
+    find_lex $P1341, "$/"
+    unless_null $P1341, vivify_321
+    $P1341 = root_new ['parrot';'Hash']
+  vivify_321:
+    set $P1342, $P1341["assertion"]
+    unless_null $P1342, vivify_322
+    new $P1342, "Undef"
+  vivify_322:
+    $P1343 = $P1342."ast"()
+    store_lex "$past", $P1343
 .annotate 'line', 381
-    new $P1341, "Undef"
-    .lex "$past", $P1341
-    find_lex $P1342, "$/"
-    unless_null $P1342, vivify_311
-    $P1342 = root_new ['parrot';'Hash']
-  vivify_311:
-    set $P1343, $P1342["assertion"]
-    unless_null $P1343, vivify_312
-    new $P1343, "Undef"
-  vivify_312:
-    $P1344 = $P1343."ast"()
-    store_lex "$past", $P1344
+    find_lex $P1344, "$past"
+    $P1344."subtype"("method")
 .annotate 'line', 382
     find_lex $P1345, "$past"
-    $P1345."subtype"("method")
+    $P1345."name"("")
 .annotate 'line', 383
-    find_lex $P1346, "$past"
-    $P1346."name"("")
-.annotate 'line', 384
-    find_lex $P1347, "$/"
-    find_lex $P1348, "$past"
-    $P1349 = $P1347."!make"($P1348)
-.annotate 'line', 380
-    .return ($P1349)
-  control_1338:
+    find_lex $P1346, "$/"
+    find_lex $P1347, "$past"
+    $P1348 = $P1346."!make"($P1347)
+.annotate 'line', 379
+    .return ($P1348)
+  control_1337:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1350, exception, "payload"
-    .return ($P1350)
+    getattribute $P1349, exception, "payload"
+    .return ($P1349)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<name>"  :subid("80_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1354
-.annotate 'line', 387
-    .const 'Sub' $P1412 = "82_1277356890.79584" 
-    capture_lex $P1412
-    .const 'Sub' $P1376 = "81_1277356890.79584" 
+.sub "assertion:sym<name>"  :subid("79_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1353
+.annotate 'line', 386
+    .const 'Sub' $P1410 = "81_1280467473.99327" 
+    capture_lex $P1410
+    .const 'Sub' $P1376 = "80_1280467473.99327" 
     capture_lex $P1376
-    new $P1353, 'ExceptionHandler'
-    set_addr $P1353, control_1352
-    $P1353."handle_types"(.CONTROL_RETURN)
-    push_eh $P1353
+    new $P1352, 'ExceptionHandler'
+    set_addr $P1352, control_1351
+    $P1352."handle_types"(.CONTROL_RETURN)
+    push_eh $P1352
     .lex "self", self
-    .lex "$/", param_1354
+    .lex "$/", param_1353
+.annotate 'line', 387
+    new $P1354, "Undef"
+    .lex "$name", $P1354
 .annotate 'line', 388
     new $P1355, "Undef"
-    .lex "$name", $P1355
+    .lex "$past", $P1355
+.annotate 'line', 387
+    find_lex $P1356, "$/"
+    unless_null $P1356, vivify_323
+    $P1356 = root_new ['parrot';'Hash']
+  vivify_323:
+    set $P1357, $P1356["longname"]
+    unless_null $P1357, vivify_324
+    new $P1357, "Undef"
+  vivify_324:
+    set $S1358, $P1357
+    new $P1359, 'String'
+    set $P1359, $S1358
+    store_lex "$name", $P1359
+    find_lex $P1360, "$past"
 .annotate 'line', 389
-    new $P1356, "Undef"
-    .lex "$past", $P1356
-.annotate 'line', 388
-    find_lex $P1357, "$/"
-    unless_null $P1357, vivify_313
-    $P1357 = root_new ['parrot';'Hash']
-  vivify_313:
-    set $P1358, $P1357["longname"]
-    unless_null $P1358, vivify_314
-    new $P1358, "Undef"
-  vivify_314:
-    set $S1359, $P1358
-    new $P1360, 'String'
-    set $P1360, $S1359
-    store_lex "$name", $P1360
-    find_lex $P1361, "$past"
-.annotate 'line', 390
-    find_lex $P1363, "$/"
-    unless_null $P1363, vivify_315
-    $P1363 = root_new ['parrot';'Hash']
-  vivify_315:
-    set $P1364, $P1363["assertion"]
-    unless_null $P1364, vivify_316
-    new $P1364, "Undef"
-  vivify_316:
-    if $P1364, if_1362
-.annotate 'line', 394
+    find_lex $P1362, "$/"
+    unless_null $P1362, vivify_325
+    $P1362 = root_new ['parrot';'Hash']
+  vivify_325:
+    set $P1363, $P1362["assertion"]
+    unless_null $P1363, vivify_326
+    new $P1363, "Undef"
+  vivify_326:
+    if $P1363, if_1361
+.annotate 'line', 393
     find_lex $P1372, "$name"
     set $S1373, $P1372
     iseq $I1374, $S1373, "sym"
     if $I1374, if_1371
+.annotate 'line', 409
+    find_lex $P1386, "self"
+    find_lex $P1387, "$/"
+    $P1388 = $P1386."named_assertion"($P1387)
+    store_lex "$past", $P1388
 .annotate 'line', 410
-    get_hll_global $P1386, ["PAST"], "Regex"
-    find_lex $P1387, "$name"
-    find_lex $P1388, "$name"
-    find_lex $P1389, "$/"
-    $P1390 = $P1386."new"($P1387, $P1388 :named("name"), "subrule" :named("pasttype"), "capture" :named("subtype"), $P1389 :named("node"))
-    store_lex "$past", $P1390
-.annotate 'line', 412
-    find_lex $P1392, "$/"
-    unless_null $P1392, vivify_317
-    $P1392 = root_new ['parrot';'Hash']
-  vivify_317:
-    set $P1393, $P1392["nibbler"]
-    unless_null $P1393, vivify_318
-    new $P1393, "Undef"
-  vivify_318:
-    if $P1393, if_1391
-.annotate 'line', 415
-    find_lex $P1401, "$/"
-    unless_null $P1401, vivify_319
-    $P1401 = root_new ['parrot';'Hash']
-  vivify_319:
-    set $P1402, $P1401["arglist"]
-    unless_null $P1402, vivify_320
-    new $P1402, "Undef"
-  vivify_320:
-    unless $P1402, if_1400_end
-.annotate 'line', 416
-    find_lex $P1404, "$/"
-    unless_null $P1404, vivify_321
-    $P1404 = root_new ['parrot';'Hash']
-  vivify_321:
-    set $P1405, $P1404["arglist"]
-    unless_null $P1405, vivify_322
-    $P1405 = root_new ['parrot';'ResizablePMCArray']
-  vivify_322:
-    set $P1406, $P1405[0]
-    unless_null $P1406, vivify_323
-    new $P1406, "Undef"
-  vivify_323:
-    $P1407 = $P1406."ast"()
-    $P1408 = $P1407."list"()
-    defined $I1409, $P1408
-    unless $I1409, for_undef_324
-    iter $P1403, $P1408
-    new $P1418, 'ExceptionHandler'
-    set_addr $P1418, loop1417_handler
-    $P1418."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P1418
-  loop1417_test:
-    unless $P1403, loop1417_done
-    shift $P1410, $P1403
-  loop1417_redo:
-    .const 'Sub' $P1412 = "82_1277356890.79584" 
-    capture_lex $P1412
-    $P1412($P1410)
-  loop1417_next:
-    goto loop1417_test
-  loop1417_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1419, exception, 'type'
-    eq $P1419, .CONTROL_LOOP_NEXT, loop1417_next
-    eq $P1419, .CONTROL_LOOP_REDO, loop1417_redo
-  loop1417_done:
+    find_lex $P1390, "$/"
+    unless_null $P1390, vivify_327
+    $P1390 = root_new ['parrot';'Hash']
+  vivify_327:
+    set $P1391, $P1390["nibbler"]
+    unless_null $P1391, vivify_328
+    new $P1391, "Undef"
+  vivify_328:
+    if $P1391, if_1389
+.annotate 'line', 413
+    find_lex $P1399, "$/"
+    unless_null $P1399, vivify_329
+    $P1399 = root_new ['parrot';'Hash']
+  vivify_329:
+    set $P1400, $P1399["arglist"]
+    unless_null $P1400, vivify_330
+    new $P1400, "Undef"
+  vivify_330:
+    unless $P1400, if_1398_end
+.annotate 'line', 414
+    find_lex $P1402, "$/"
+    unless_null $P1402, vivify_331
+    $P1402 = root_new ['parrot';'Hash']
+  vivify_331:
+    set $P1403, $P1402["arglist"]
+    unless_null $P1403, vivify_332
+    $P1403 = root_new ['parrot';'ResizablePMCArray']
+  vivify_332:
+    set $P1404, $P1403[0]
+    unless_null $P1404, vivify_333
+    new $P1404, "Undef"
+  vivify_333:
+    $P1405 = $P1404."ast"()
+    $P1406 = $P1405."list"()
+    defined $I1407, $P1406
+    unless $I1407, for_undef_334
+    iter $P1401, $P1406
+    new $P1416, 'ExceptionHandler'
+    set_addr $P1416, loop1415_handler
+    $P1416."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1416
+  loop1415_test:
+    unless $P1401, loop1415_done
+    shift $P1408, $P1401
+  loop1415_redo:
+    .const 'Sub' $P1410 = "81_1280467473.99327" 
+    capture_lex $P1410
+    $P1410($P1408)
+  loop1415_next:
+    goto loop1415_test
+  loop1415_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1417, exception, 'type'
+    eq $P1417, .CONTROL_LOOP_NEXT, loop1415_next
+    eq $P1417, .CONTROL_LOOP_REDO, loop1415_redo
+  loop1415_done:
     pop_eh 
-  for_undef_324:
-  if_1400_end:
-.annotate 'line', 415
-    goto if_1391_end
-  if_1391:
+  for_undef_334:
+  if_1398_end:
 .annotate 'line', 413
-    find_lex $P1394, "$past"
-    find_lex $P1395, "$/"
-    unless_null $P1395, vivify_325
-    $P1395 = root_new ['parrot';'Hash']
-  vivify_325:
-    set $P1396, $P1395["nibbler"]
-    unless_null $P1396, vivify_326
-    $P1396 = root_new ['parrot';'ResizablePMCArray']
-  vivify_326:
-    set $P1397, $P1396[0]
-    unless_null $P1397, vivify_327
-    new $P1397, "Undef"
-  vivify_327:
-    $P1398 = $P1397."ast"()
-    $P1399 = "buildsub"($P1398)
-    $P1394."push"($P1399)
-  if_1391_end:
-.annotate 'line', 409
+    goto if_1389_end
+  if_1389:
+.annotate 'line', 411
+    find_lex $P1392, "$past"
+    find_lex $P1393, "$/"
+    unless_null $P1393, vivify_335
+    $P1393 = root_new ['parrot';'Hash']
+  vivify_335:
+    set $P1394, $P1393["nibbler"]
+    unless_null $P1394, vivify_336
+    $P1394 = root_new ['parrot';'ResizablePMCArray']
+  vivify_336:
+    set $P1395, $P1394[0]
+    unless_null $P1395, vivify_337
+    new $P1395, "Undef"
+  vivify_337:
+    $P1396 = $P1395."ast"()
+    $P1397 = "buildsub"($P1396)
+    $P1392."push"($P1397)
+  if_1389_end:
+.annotate 'line', 408
     goto if_1371_end
   if_1371:
-.annotate 'line', 394
-    .const 'Sub' $P1376 = "81_1277356890.79584" 
+.annotate 'line', 393
+    .const 'Sub' $P1376 = "80_1280467473.99327" 
     capture_lex $P1376
     $P1376()
   if_1371_end:
-    goto if_1362_end
-  if_1362:
+    goto if_1361_end
+  if_1361:
+.annotate 'line', 390
+    find_lex $P1364, "$/"
+    unless_null $P1364, vivify_338
+    $P1364 = root_new ['parrot';'Hash']
+  vivify_338:
+    set $P1365, $P1364["assertion"]
+    unless_null $P1365, vivify_339
+    $P1365 = root_new ['parrot';'ResizablePMCArray']
+  vivify_339:
+    set $P1366, $P1365[0]
+    unless_null $P1366, vivify_340
+    new $P1366, "Undef"
+  vivify_340:
+    $P1367 = $P1366."ast"()
+    store_lex "$past", $P1367
 .annotate 'line', 391
-    find_lex $P1365, "$/"
-    unless_null $P1365, vivify_328
-    $P1365 = root_new ['parrot';'Hash']
-  vivify_328:
-    set $P1366, $P1365["assertion"]
-    unless_null $P1366, vivify_329
-    $P1366 = root_new ['parrot';'ResizablePMCArray']
-  vivify_329:
-    set $P1367, $P1366[0]
-    unless_null $P1367, vivify_330
-    new $P1367, "Undef"
-  vivify_330:
-    $P1368 = $P1367."ast"()
-    store_lex "$past", $P1368
-.annotate 'line', 392
+    find_lex $P1368, "self"
     find_lex $P1369, "$past"
     find_lex $P1370, "$name"
-    "subrule_alias"($P1369, $P1370)
-  if_1362_end:
-.annotate 'line', 419
-    find_lex $P1420, "$/"
-    find_lex $P1421, "$past"
-    $P1422 = $P1420."!make"($P1421)
-.annotate 'line', 387
-    .return ($P1422)
-  control_1352:
+    $P1368."subrule_alias"($P1369, $P1370)
+  if_1361_end:
+.annotate 'line', 417
+    find_lex $P1418, "$/"
+    find_lex $P1419, "$past"
+    $P1420 = $P1418."!make"($P1419)
+.annotate 'line', 386
+    .return ($P1420)
+  control_1351:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1423, exception, "payload"
-    .return ($P1423)
+    getattribute $P1421, exception, "payload"
+    .return ($P1421)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1411"  :anon :subid("82_1277356890.79584") :outer("80_1277356890.79584")
-    .param pmc param_1413
-.annotate 'line', 416
-    .lex "$_", param_1413
-    find_lex $P1414, "$past"
-    find_lex $P1415, "$_"
-    $P1416 = $P1414."push"($P1415)
-    .return ($P1416)
+.sub "_block1409"  :anon :subid("81_1280467473.99327") :outer("79_1280467473.99327")
+    .param pmc param_1411
+.annotate 'line', 414
+    .lex "$_", param_1411
+    find_lex $P1412, "$past"
+    find_lex $P1413, "$_"
+    $P1414 = $P1412."push"($P1413)
+    .return ($P1414)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1375"  :anon :subid("81_1277356890.79584") :outer("80_1277356890.79584")
-.annotate 'line', 395
+.sub "_block1375"  :anon :subid("80_1280467473.99327") :outer("79_1280467473.99327")
+.annotate 'line', 394
     new $P1377, "Undef"
     .lex "$regexsym", $P1377
 
@@ -11627,387 +11955,387 @@
             $P1378 = box $S0
         
     store_lex "$regexsym", $P1378
-.annotate 'line', 404
+.annotate 'line', 403
     get_hll_global $P1379, ["PAST"], "Regex"
-.annotate 'line', 405
+.annotate 'line', 404
     get_hll_global $P1380, ["PAST"], "Regex"
     find_lex $P1381, "$regexsym"
     $P1382 = $P1380."new"($P1381, "literal" :named("pasttype"))
     find_lex $P1383, "$name"
     find_lex $P1384, "$/"
     $P1385 = $P1379."new"($P1382, $P1383 :named("name"), "subcapture" :named("pasttype"), $P1384 :named("node"))
-.annotate 'line', 404
+.annotate 'line', 403
     store_lex "$past", $P1385
-.annotate 'line', 394
+.annotate 'line', 393
     .return ($P1385)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<[>"  :subid("83_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1427
+.sub "assertion:sym<[>"  :subid("82_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1425
+.annotate 'line', 420
+    .const 'Sub' $P1460 = "83_1280467473.99327" 
+    capture_lex $P1460
+    new $P1424, 'ExceptionHandler'
+    set_addr $P1424, control_1423
+    $P1424."handle_types"(.CONTROL_RETURN)
+    push_eh $P1424
+    .lex "self", self
+    .lex "$/", param_1425
+.annotate 'line', 421
+    new $P1426, "Undef"
+    .lex "$clist", $P1426
 .annotate 'line', 422
-    .const 'Sub' $P1462 = "84_1277356890.79584" 
-    capture_lex $P1462
-    new $P1426, 'ExceptionHandler'
-    set_addr $P1426, control_1425
-    $P1426."handle_types"(.CONTROL_RETURN)
-    push_eh $P1426
-    .lex "self", self
-    .lex "$/", param_1427
-.annotate 'line', 423
+    new $P1427, "Undef"
+    .lex "$past", $P1427
+.annotate 'line', 431
     new $P1428, "Undef"
-    .lex "$clist", $P1428
-.annotate 'line', 424
+    .lex "$i", $P1428
+.annotate 'line', 432
     new $P1429, "Undef"
-    .lex "$past", $P1429
-.annotate 'line', 433
-    new $P1430, "Undef"
-    .lex "$i", $P1430
-.annotate 'line', 434
+    .lex "$n", $P1429
+.annotate 'line', 421
+    find_lex $P1430, "$/"
+    unless_null $P1430, vivify_341
+    $P1430 = root_new ['parrot';'Hash']
+  vivify_341:
+    set $P1431, $P1430["cclass_elem"]
+    unless_null $P1431, vivify_342
     new $P1431, "Undef"
-    .lex "$n", $P1431
-.annotate 'line', 423
-    find_lex $P1432, "$/"
-    unless_null $P1432, vivify_331
-    $P1432 = root_new ['parrot';'Hash']
-  vivify_331:
-    set $P1433, $P1432["cclass_elem"]
-    unless_null $P1433, vivify_332
+  vivify_342:
+    store_lex "$clist", $P1431
+.annotate 'line', 422
+    find_lex $P1432, "$clist"
+    unless_null $P1432, vivify_343
+    $P1432 = root_new ['parrot';'ResizablePMCArray']
+  vivify_343:
+    set $P1433, $P1432[0]
+    unless_null $P1433, vivify_344
     new $P1433, "Undef"
-  vivify_332:
-    store_lex "$clist", $P1433
+  vivify_344:
+    $P1434 = $P1433."ast"()
+    store_lex "$past", $P1434
+.annotate 'line', 423
+    find_lex $P1438, "$past"
+    $P1439 = $P1438."negate"()
+    if $P1439, if_1437
+    set $P1436, $P1439
+    goto if_1437_end
+  if_1437:
+    find_lex $P1440, "$past"
+    $S1441 = $P1440."pasttype"()
+    iseq $I1442, $S1441, "subrule"
+    new $P1436, 'Integer'
+    set $P1436, $I1442
+  if_1437_end:
+    unless $P1436, if_1435_end
 .annotate 'line', 424
-    find_lex $P1434, "$clist"
-    unless_null $P1434, vivify_333
-    $P1434 = root_new ['parrot';'ResizablePMCArray']
-  vivify_333:
-    set $P1435, $P1434[0]
-    unless_null $P1435, vivify_334
-    new $P1435, "Undef"
-  vivify_334:
-    $P1436 = $P1435."ast"()
-    store_lex "$past", $P1436
+    find_lex $P1443, "$past"
+    $P1443."subtype"("zerowidth")
 .annotate 'line', 425
-    find_lex $P1440, "$past"
-    $P1441 = $P1440."negate"()
-    if $P1441, if_1439
-    set $P1438, $P1441
-    goto if_1439_end
-  if_1439:
-    find_lex $P1442, "$past"
-    $S1443 = $P1442."pasttype"()
-    iseq $I1444, $S1443, "subrule"
-    new $P1438, 'Integer'
-    set $P1438, $I1444
-  if_1439_end:
-    unless $P1438, if_1437_end
-.annotate 'line', 426
+    get_hll_global $P1444, ["PAST"], "Regex"
     find_lex $P1445, "$past"
-    $P1445."subtype"("zerowidth")
 .annotate 'line', 427
     get_hll_global $P1446, ["PAST"], "Regex"
-    find_lex $P1447, "$past"
-.annotate 'line', 429
-    get_hll_global $P1448, ["PAST"], "Regex"
-    $P1449 = $P1448."new"("charclass" :named("pasttype"), "." :named("subtype"))
-    find_lex $P1450, "$/"
-    $P1451 = $P1446."new"($P1447, $P1449, $P1450 :named("node"))
-.annotate 'line', 427
-    store_lex "$past", $P1451
-  if_1437_end:
+    $P1447 = $P1446."new"("charclass" :named("pasttype"), "." :named("subtype"))
+    find_lex $P1448, "$/"
+    $P1449 = $P1444."new"($P1445, $P1447, $P1448 :named("node"))
+.annotate 'line', 425
+    store_lex "$past", $P1449
+  if_1435_end:
+.annotate 'line', 431
+    new $P1450, "Integer"
+    assign $P1450, 1
+    store_lex "$i", $P1450
+.annotate 'line', 432
+    find_lex $P1451, "$clist"
+    set $N1452, $P1451
+    new $P1453, 'Float'
+    set $P1453, $N1452
+    store_lex "$n", $P1453
 .annotate 'line', 433
-    new $P1452, "Integer"
-    assign $P1452, 1
-    store_lex "$i", $P1452
-.annotate 'line', 434
-    find_lex $P1453, "$clist"
-    set $N1454, $P1453
-    new $P1455, 'Float'
-    set $P1455, $N1454
-    store_lex "$n", $P1455
-.annotate 'line', 435
-    new $P1486, 'ExceptionHandler'
-    set_addr $P1486, loop1485_handler
-    $P1486."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P1486
-  loop1485_test:
-    find_lex $P1456, "$i"
+    new $P1484, 'ExceptionHandler'
+    set_addr $P1484, loop1483_handler
+    $P1484."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1484
+  loop1483_test:
+    find_lex $P1454, "$i"
+    set $N1455, $P1454
+    find_lex $P1456, "$n"
     set $N1457, $P1456
-    find_lex $P1458, "$n"
-    set $N1459, $P1458
-    islt $I1460, $N1457, $N1459
-    unless $I1460, loop1485_done
-  loop1485_redo:
-    .const 'Sub' $P1462 = "84_1277356890.79584" 
-    capture_lex $P1462
-    $P1462()
-  loop1485_next:
-    goto loop1485_test
-  loop1485_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1487, exception, 'type'
-    eq $P1487, .CONTROL_LOOP_NEXT, loop1485_next
-    eq $P1487, .CONTROL_LOOP_REDO, loop1485_redo
-  loop1485_done:
+    islt $I1458, $N1455, $N1457
+    unless $I1458, loop1483_done
+  loop1483_redo:
+    .const 'Sub' $P1460 = "83_1280467473.99327" 
+    capture_lex $P1460
+    $P1460()
+  loop1483_next:
+    goto loop1483_test
+  loop1483_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1485, exception, 'type'
+    eq $P1485, .CONTROL_LOOP_NEXT, loop1483_next
+    eq $P1485, .CONTROL_LOOP_REDO, loop1483_redo
+  loop1483_done:
     pop_eh 
-.annotate 'line', 446
-    find_lex $P1488, "$/"
-    find_lex $P1489, "$past"
-    $P1490 = $P1488."!make"($P1489)
-.annotate 'line', 422
-    .return ($P1490)
-  control_1425:
+.annotate 'line', 444
+    find_lex $P1486, "$/"
+    find_lex $P1487, "$past"
+    $P1488 = $P1486."!make"($P1487)
+.annotate 'line', 420
+    .return ($P1488)
+  control_1423:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1491, exception, "payload"
-    .return ($P1491)
+    getattribute $P1489, exception, "payload"
+    .return ($P1489)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1461"  :anon :subid("84_1277356890.79584") :outer("83_1277356890.79584")
+.sub "_block1459"  :anon :subid("83_1280467473.99327") :outer("82_1280467473.99327")
+.annotate 'line', 434
+    new $P1461, "Undef"
+    .lex "$ast", $P1461
+    find_lex $P1462, "$i"
+    set $I1463, $P1462
+    find_lex $P1464, "$clist"
+    unless_null $P1464, vivify_345
+    $P1464 = root_new ['parrot';'ResizablePMCArray']
+  vivify_345:
+    set $P1465, $P1464[$I1463]
+    unless_null $P1465, vivify_346
+    new $P1465, "Undef"
+  vivify_346:
+    $P1466 = $P1465."ast"()
+    store_lex "$ast", $P1466
+.annotate 'line', 435
+    find_lex $P1468, "$ast"
+    $P1469 = $P1468."negate"()
+    if $P1469, if_1467
+.annotate 'line', 440
+    get_hll_global $P1476, ["PAST"], "Regex"
+    find_lex $P1477, "$past"
+    find_lex $P1478, "$ast"
+    find_lex $P1479, "$/"
+    $P1480 = $P1476."new"($P1477, $P1478, "alt" :named("pasttype"), $P1479 :named("node"))
+    store_lex "$past", $P1480
+.annotate 'line', 439
+    goto if_1467_end
+  if_1467:
 .annotate 'line', 436
-    new $P1463, "Undef"
-    .lex "$ast", $P1463
-    find_lex $P1464, "$i"
-    set $I1465, $P1464
-    find_lex $P1466, "$clist"
-    unless_null $P1466, vivify_335
-    $P1466 = root_new ['parrot';'ResizablePMCArray']
-  vivify_335:
-    set $P1467, $P1466[$I1465]
-    unless_null $P1467, vivify_336
-    new $P1467, "Undef"
-  vivify_336:
-    $P1468 = $P1467."ast"()
-    store_lex "$ast", $P1468
-.annotate 'line', 437
     find_lex $P1470, "$ast"
-    $P1471 = $P1470."negate"()
-    if $P1471, if_1469
-.annotate 'line', 442
-    get_hll_global $P1478, ["PAST"], "Regex"
-    find_lex $P1479, "$past"
-    find_lex $P1480, "$ast"
-    find_lex $P1481, "$/"
-    $P1482 = $P1478."new"($P1479, $P1480, "alt" :named("pasttype"), $P1481 :named("node"))
-    store_lex "$past", $P1482
-.annotate 'line', 441
-    goto if_1469_end
-  if_1469:
-.annotate 'line', 438
+    $P1470."subtype"("zerowidth")
+.annotate 'line', 437
+    get_hll_global $P1471, ["PAST"], "Regex"
     find_lex $P1472, "$ast"
-    $P1472."subtype"("zerowidth")
-.annotate 'line', 439
-    get_hll_global $P1473, ["PAST"], "Regex"
-    find_lex $P1474, "$ast"
-    find_lex $P1475, "$past"
-    find_lex $P1476, "$/"
-    $P1477 = $P1473."new"($P1474, $P1475, "concat" :named("pasttype"), $P1476 :named("node"))
-    store_lex "$past", $P1477
-  if_1469_end:
-.annotate 'line', 444
-    find_lex $P1483, "$i"
-    add $P1484, $P1483, 1
-    store_lex "$i", $P1484
-.annotate 'line', 435
-    .return ($P1484)
+    find_lex $P1473, "$past"
+    find_lex $P1474, "$/"
+    $P1475 = $P1471."new"($P1472, $P1473, "concat" :named("pasttype"), $P1474 :named("node"))
+    store_lex "$past", $P1475
+  if_1467_end:
+.annotate 'line', 442
+    find_lex $P1481, "$i"
+    add $P1482, $P1481, 1
+    store_lex "$i", $P1482
+.annotate 'line', 433
+    .return ($P1482)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "cclass_elem"  :subid("85_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1495
-.annotate 'line', 449
-    .const 'Sub' $P1520 = "87_1277356890.79584" 
-    capture_lex $P1520
-    .const 'Sub' $P1504 = "86_1277356890.79584" 
-    capture_lex $P1504
-    new $P1494, 'ExceptionHandler'
-    set_addr $P1494, control_1493
-    $P1494."handle_types"(.CONTROL_RETURN)
-    push_eh $P1494
+.sub "cclass_elem"  :subid("84_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1493
+.annotate 'line', 447
+    .const 'Sub' $P1518 = "86_1280467473.99327" 
+    capture_lex $P1518
+    .const 'Sub' $P1502 = "85_1280467473.99327" 
+    capture_lex $P1502
+    new $P1492, 'ExceptionHandler'
+    set_addr $P1492, control_1491
+    $P1492."handle_types"(.CONTROL_RETURN)
+    push_eh $P1492
     .lex "self", self
-    .lex "$/", param_1495
-.annotate 'line', 450
-    new $P1496, "Undef"
-    .lex "$str", $P1496
-.annotate 'line', 451
-    new $P1497, "Undef"
-    .lex "$past", $P1497
+    .lex "$/", param_1493
+.annotate 'line', 448
+    new $P1494, "Undef"
+    .lex "$str", $P1494
+.annotate 'line', 449
+    new $P1495, "Undef"
+    .lex "$past", $P1495
+.annotate 'line', 448
+    new $P1496, "String"
+    assign $P1496, ""
+    store_lex "$str", $P1496
+    find_lex $P1497, "$past"
 .annotate 'line', 450
-    new $P1498, "String"
-    assign $P1498, ""
-    store_lex "$str", $P1498
-    find_lex $P1499, "$past"
-.annotate 'line', 452
-    find_lex $P1501, "$/"
-    unless_null $P1501, vivify_337
-    $P1501 = root_new ['parrot';'Hash']
-  vivify_337:
-    set $P1502, $P1501["name"]
-    unless_null $P1502, vivify_338
-    new $P1502, "Undef"
-  vivify_338:
-    if $P1502, if_1500
-.annotate 'line', 456
-    find_lex $P1515, "$/"
-    unless_null $P1515, vivify_339
-    $P1515 = root_new ['parrot';'Hash']
-  vivify_339:
-    set $P1516, $P1515["charspec"]
-    unless_null $P1516, vivify_340
-    new $P1516, "Undef"
-  vivify_340:
-    defined $I1517, $P1516
-    unless $I1517, for_undef_341
-    iter $P1514, $P1516
-    new $P1546, 'ExceptionHandler'
-    set_addr $P1546, loop1545_handler
-    $P1546."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
-    push_eh $P1546
-  loop1545_test:
-    unless $P1514, loop1545_done
-    shift $P1518, $P1514
-  loop1545_redo:
-    .const 'Sub' $P1520 = "87_1277356890.79584" 
-    capture_lex $P1520
-    $P1520($P1518)
-  loop1545_next:
-    goto loop1545_test
-  loop1545_handler:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P1547, exception, 'type'
-    eq $P1547, .CONTROL_LOOP_NEXT, loop1545_next
-    eq $P1547, .CONTROL_LOOP_REDO, loop1545_redo
-  loop1545_done:
+    find_lex $P1499, "$/"
+    unless_null $P1499, vivify_347
+    $P1499 = root_new ['parrot';'Hash']
+  vivify_347:
+    set $P1500, $P1499["name"]
+    unless_null $P1500, vivify_348
+    new $P1500, "Undef"
+  vivify_348:
+    if $P1500, if_1498
+.annotate 'line', 454
+    find_lex $P1513, "$/"
+    unless_null $P1513, vivify_349
+    $P1513 = root_new ['parrot';'Hash']
+  vivify_349:
+    set $P1514, $P1513["charspec"]
+    unless_null $P1514, vivify_350
+    new $P1514, "Undef"
+  vivify_350:
+    defined $I1515, $P1514
+    unless $I1515, for_undef_351
+    iter $P1512, $P1514
+    new $P1544, 'ExceptionHandler'
+    set_addr $P1544, loop1543_handler
+    $P1544."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+    push_eh $P1544
+  loop1543_test:
+    unless $P1512, loop1543_done
+    shift $P1516, $P1512
+  loop1543_redo:
+    .const 'Sub' $P1518 = "86_1280467473.99327" 
+    capture_lex $P1518
+    $P1518($P1516)
+  loop1543_next:
+    goto loop1543_test
+  loop1543_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1545, exception, 'type'
+    eq $P1545, .CONTROL_LOOP_NEXT, loop1543_next
+    eq $P1545, .CONTROL_LOOP_REDO, loop1543_redo
+  loop1543_done:
     pop_eh 
-  for_undef_341:
+  for_undef_351:
+.annotate 'line', 479
+    get_hll_global $P1546, ["PAST"], "Regex"
+    find_lex $P1547, "$str"
+    find_lex $P1548, "$/"
+    $P1549 = $P1546."new"($P1547, "enumcharlist" :named("pasttype"), $P1548 :named("node"))
+    store_lex "$past", $P1549
+.annotate 'line', 453
+    goto if_1498_end
+  if_1498:
+.annotate 'line', 450
+    .const 'Sub' $P1502 = "85_1280467473.99327" 
+    capture_lex $P1502
+    $P1502()
+  if_1498_end:
 .annotate 'line', 481
-    get_hll_global $P1548, ["PAST"], "Regex"
-    find_lex $P1549, "$str"
-    find_lex $P1550, "$/"
-    $P1551 = $P1548."new"($P1549, "enumcharlist" :named("pasttype"), $P1550 :named("node"))
-    store_lex "$past", $P1551
-.annotate 'line', 455
-    goto if_1500_end
-  if_1500:
-.annotate 'line', 452
-    .const 'Sub' $P1504 = "86_1277356890.79584" 
-    capture_lex $P1504
-    $P1504()
-  if_1500_end:
-.annotate 'line', 483
-    find_lex $P1552, "$past"
-    find_lex $P1553, "$/"
-    unless_null $P1553, vivify_353
-    $P1553 = root_new ['parrot';'Hash']
-  vivify_353:
-    set $P1554, $P1553["sign"]
-    unless_null $P1554, vivify_354
-    new $P1554, "Undef"
-  vivify_354:
-    set $S1555, $P1554
-    iseq $I1556, $S1555, "-"
-    $P1552."negate"($I1556)
-.annotate 'line', 484
-    find_lex $P1557, "$/"
-    find_lex $P1558, "$past"
-    $P1559 = $P1557."!make"($P1558)
-.annotate 'line', 449
-    .return ($P1559)
-  control_1493:
+    find_lex $P1550, "$past"
+    find_lex $P1551, "$/"
+    unless_null $P1551, vivify_363
+    $P1551 = root_new ['parrot';'Hash']
+  vivify_363:
+    set $P1552, $P1551["sign"]
+    unless_null $P1552, vivify_364
+    new $P1552, "Undef"
+  vivify_364:
+    set $S1553, $P1552
+    iseq $I1554, $S1553, "-"
+    $P1550."negate"($I1554)
+.annotate 'line', 482
+    find_lex $P1555, "$/"
+    find_lex $P1556, "$past"
+    $P1557 = $P1555."!make"($P1556)
+.annotate 'line', 447
+    .return ($P1557)
+  control_1491:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1560, exception, "payload"
-    .return ($P1560)
+    getattribute $P1558, exception, "payload"
+    .return ($P1558)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1519"  :anon :subid("87_1277356890.79584") :outer("85_1277356890.79584")
-    .param pmc param_1521
-.annotate 'line', 456
-    .const 'Sub' $P1527 = "88_1277356890.79584" 
-    capture_lex $P1527
-    .lex "$_", param_1521
-.annotate 'line', 457
-    find_lex $P1524, "$_"
-    unless_null $P1524, vivify_342
-    $P1524 = root_new ['parrot';'ResizablePMCArray']
-  vivify_342:
-    set $P1525, $P1524[1]
-    unless_null $P1525, vivify_343
-    new $P1525, "Undef"
-  vivify_343:
-    if $P1525, if_1523
-.annotate 'line', 479
-    find_lex $P1541, "$str"
-    find_lex $P1542, "$_"
-    unless_null $P1542, vivify_344
-    $P1542 = root_new ['parrot';'ResizablePMCArray']
-  vivify_344:
-    set $P1543, $P1542[0]
-    unless_null $P1543, vivify_345
-    new $P1543, "Undef"
-  vivify_345:
-    concat $P1544, $P1541, $P1543
-    store_lex "$str", $P1544
-    set $P1522, $P1544
-.annotate 'line', 457
-    goto if_1523_end
-  if_1523:
-    .const 'Sub' $P1527 = "88_1277356890.79584" 
-    capture_lex $P1527
-    $P1540 = $P1527()
-    set $P1522, $P1540
-  if_1523_end:
-.annotate 'line', 456
-    .return ($P1522)
+.sub "_block1517"  :anon :subid("86_1280467473.99327") :outer("84_1280467473.99327")
+    .param pmc param_1519
+.annotate 'line', 454
+    .const 'Sub' $P1525 = "87_1280467473.99327" 
+    capture_lex $P1525
+    .lex "$_", param_1519
+.annotate 'line', 455
+    find_lex $P1522, "$_"
+    unless_null $P1522, vivify_352
+    $P1522 = root_new ['parrot';'ResizablePMCArray']
+  vivify_352:
+    set $P1523, $P1522[1]
+    unless_null $P1523, vivify_353
+    new $P1523, "Undef"
+  vivify_353:
+    if $P1523, if_1521
+.annotate 'line', 477
+    find_lex $P1539, "$str"
+    find_lex $P1540, "$_"
+    unless_null $P1540, vivify_354
+    $P1540 = root_new ['parrot';'ResizablePMCArray']
+  vivify_354:
+    set $P1541, $P1540[0]
+    unless_null $P1541, vivify_355
+    new $P1541, "Undef"
+  vivify_355:
+    concat $P1542, $P1539, $P1541
+    store_lex "$str", $P1542
+    set $P1520, $P1542
+.annotate 'line', 455
+    goto if_1521_end
+  if_1521:
+    .const 'Sub' $P1525 = "87_1280467473.99327" 
+    capture_lex $P1525
+    $P1538 = $P1525()
+    set $P1520, $P1538
+  if_1521_end:
+.annotate 'line', 454
+    .return ($P1520)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1526"  :anon :subid("88_1277356890.79584") :outer("87_1277356890.79584")
+.sub "_block1524"  :anon :subid("87_1280467473.99327") :outer("86_1280467473.99327")
+.annotate 'line', 456
+    new $P1526, "Undef"
+    .lex "$a", $P1526
+.annotate 'line', 457
+    new $P1527, "Undef"
+    .lex "$b", $P1527
 .annotate 'line', 458
     new $P1528, "Undef"
-    .lex "$a", $P1528
-.annotate 'line', 459
-    new $P1529, "Undef"
-    .lex "$b", $P1529
-.annotate 'line', 460
+    .lex "$c", $P1528
+.annotate 'line', 456
+    find_lex $P1529, "$_"
+    unless_null $P1529, vivify_356
+    $P1529 = root_new ['parrot';'ResizablePMCArray']
+  vivify_356:
+    set $P1530, $P1529[0]
+    unless_null $P1530, vivify_357
     new $P1530, "Undef"
-    .lex "$c", $P1530
-.annotate 'line', 458
+  vivify_357:
+    store_lex "$a", $P1530
+.annotate 'line', 457
     find_lex $P1531, "$_"
-    unless_null $P1531, vivify_346
+    unless_null $P1531, vivify_358
     $P1531 = root_new ['parrot';'ResizablePMCArray']
-  vivify_346:
-    set $P1532, $P1531[0]
-    unless_null $P1532, vivify_347
-    new $P1532, "Undef"
-  vivify_347:
-    store_lex "$a", $P1532
-.annotate 'line', 459
-    find_lex $P1533, "$_"
-    unless_null $P1533, vivify_348
-    $P1533 = root_new ['parrot';'ResizablePMCArray']
-  vivify_348:
-    set $P1534, $P1533[1]
-    unless_null $P1534, vivify_349
-    $P1534 = root_new ['parrot';'ResizablePMCArray']
-  vivify_349:
-    set $P1535, $P1534[0]
-    unless_null $P1535, vivify_350
-    new $P1535, "Undef"
-  vivify_350:
-    store_lex "$b", $P1535
-.annotate 'line', 460
+  vivify_358:
+    set $P1532, $P1531[1]
+    unless_null $P1532, vivify_359
+    $P1532 = root_new ['parrot';'ResizablePMCArray']
+  vivify_359:
+    set $P1533, $P1532[0]
+    unless_null $P1533, vivify_360
+    new $P1533, "Undef"
+  vivify_360:
+    store_lex "$b", $P1533
+.annotate 'line', 458
 
                              $P0 = find_lex '$a'
                              $S0 = $P0
@@ -12023,161 +12351,255 @@
                              inc $I0
                              goto cclass_loop
                            cclass_done:
-                             $P1536 = box $S2
+                             $P1534 = box $S2
                          
-    store_lex "$c", $P1536
-.annotate 'line', 477
-    find_lex $P1537, "$str"
-    find_lex $P1538, "$c"
-    concat $P1539, $P1537, $P1538
-    store_lex "$str", $P1539
-.annotate 'line', 457
-    .return ($P1539)
+    store_lex "$c", $P1534
+.annotate 'line', 475
+    find_lex $P1535, "$str"
+    find_lex $P1536, "$c"
+    concat $P1537, $P1535, $P1536
+    store_lex "$str", $P1537
+.annotate 'line', 455
+    .return ($P1537)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1503"  :anon :subid("86_1277356890.79584") :outer("85_1277356890.79584")
-.annotate 'line', 453
+.sub "_block1501"  :anon :subid("85_1280467473.99327") :outer("84_1280467473.99327")
+.annotate 'line', 451
+    new $P1503, "Undef"
+    .lex "$name", $P1503
+    find_lex $P1504, "$/"
+    unless_null $P1504, vivify_361
+    $P1504 = root_new ['parrot';'Hash']
+  vivify_361:
+    set $P1505, $P1504["name"]
+    unless_null $P1505, vivify_362
     new $P1505, "Undef"
-    .lex "$name", $P1505
-    find_lex $P1506, "$/"
-    unless_null $P1506, vivify_351
-    $P1506 = root_new ['parrot';'Hash']
-  vivify_351:
-    set $P1507, $P1506["name"]
-    unless_null $P1507, vivify_352
-    new $P1507, "Undef"
-  vivify_352:
-    set $S1508, $P1507
-    new $P1509, 'String'
-    set $P1509, $S1508
-    store_lex "$name", $P1509
-.annotate 'line', 454
-    get_hll_global $P1510, ["PAST"], "Regex"
-    find_lex $P1511, "$name"
-    find_lex $P1512, "$/"
-    $P1513 = $P1510."new"($P1511, "subrule" :named("pasttype"), "method" :named("subtype"), $P1512 :named("node"))
-    store_lex "$past", $P1513
+  vivify_362:
+    set $S1506, $P1505
+    new $P1507, 'String'
+    set $P1507, $S1506
+    store_lex "$name", $P1507
 .annotate 'line', 452
-    .return ($P1513)
+    get_hll_global $P1508, ["PAST"], "Regex"
+    find_lex $P1509, "$name"
+    find_lex $P1510, "$/"
+    $P1511 = $P1508."new"($P1509, "subrule" :named("pasttype"), "method" :named("subtype"), $P1510 :named("node"))
+    store_lex "$past", $P1511
+.annotate 'line', 450
+    .return ($P1511)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "mod_internal"  :subid("89_1277356890.79584") :method :outer("11_1277356890.79584")
-    .param pmc param_1564
-.annotate 'line', 487
-    new $P1563, 'ExceptionHandler'
-    set_addr $P1563, control_1562
-    $P1563."handle_types"(.CONTROL_RETURN)
-    push_eh $P1563
+.sub "mod_internal"  :subid("88_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1562
+.annotate 'line', 485
+    new $P1561, 'ExceptionHandler'
+    set_addr $P1561, control_1560
+    $P1561."handle_types"(.CONTROL_RETURN)
+    push_eh $P1561
     .lex "self", self
-    .lex "$/", param_1564
-.annotate 'line', 488
-    $P1565 = root_new ['parrot';'Hash']
-    .lex "%mods", $P1565
-.annotate 'line', 489
-    new $P1566, "Undef"
-    .lex "$n", $P1566
-.annotate 'line', 488
-    get_global $P1567, "@MODIFIERS"
-    unless_null $P1567, vivify_355
-    $P1567 = root_new ['parrot';'ResizablePMCArray']
-  vivify_355:
-    set $P1568, $P1567[0]
-    unless_null $P1568, vivify_356
-    new $P1568, "Undef"
-  vivify_356:
-    store_lex "%mods", $P1568
-.annotate 'line', 489
-    find_lex $P1571, "$/"
-    unless_null $P1571, vivify_357
-    $P1571 = root_new ['parrot';'Hash']
-  vivify_357:
-    set $P1572, $P1571["n"]
-    unless_null $P1572, vivify_358
-    $P1572 = root_new ['parrot';'ResizablePMCArray']
-  vivify_358:
-    set $P1573, $P1572[0]
-    unless_null $P1573, vivify_359
-    new $P1573, "Undef"
-  vivify_359:
-    set $S1574, $P1573
-    isgt $I1575, $S1574, ""
-    if $I1575, if_1570
-    new $P1580, "Integer"
-    assign $P1580, 1
-    set $P1569, $P1580
-    goto if_1570_end
-  if_1570:
-    find_lex $P1576, "$/"
-    unless_null $P1576, vivify_360
-    $P1576 = root_new ['parrot';'Hash']
-  vivify_360:
-    set $P1577, $P1576["n"]
-    unless_null $P1577, vivify_361
-    $P1577 = root_new ['parrot';'ResizablePMCArray']
-  vivify_361:
-    set $P1578, $P1577[0]
-    unless_null $P1578, vivify_362
-    new $P1578, "Undef"
-  vivify_362:
-    set $N1579, $P1578
-    new $P1569, 'Float'
-    set $P1569, $N1579
-  if_1570_end:
-    store_lex "$n", $P1569
-.annotate 'line', 490
-    find_lex $P1581, "$n"
-    find_lex $P1582, "$/"
-    unless_null $P1582, vivify_363
-    $P1582 = root_new ['parrot';'Hash']
-  vivify_363:
-    set $P1583, $P1582["mod_ident"]
-    unless_null $P1583, vivify_364
-    $P1583 = root_new ['parrot';'Hash']
-  vivify_364:
-    set $P1584, $P1583["sym"]
-    unless_null $P1584, vivify_365
-    new $P1584, "Undef"
+    .lex "$/", param_1562
+.annotate 'line', 486
+    $P1563 = root_new ['parrot';'Hash']
+    .lex "%mods", $P1563
+.annotate 'line', 487
+    new $P1564, "Undef"
+    .lex "$n", $P1564
+.annotate 'line', 486
+    get_global $P1565, "@MODIFIERS"
+    unless_null $P1565, vivify_365
+    $P1565 = root_new ['parrot';'ResizablePMCArray']
   vivify_365:
-    set $S1585, $P1584
-    find_lex $P1586, "%mods"
-    unless_null $P1586, vivify_366
-    $P1586 = root_new ['parrot';'Hash']
-    store_lex "%mods", $P1586
+    set $P1566, $P1565[0]
+    unless_null $P1566, vivify_366
+    new $P1566, "Undef"
   vivify_366:
-    set $P1586[$S1585], $P1581
-.annotate 'line', 491
-    find_lex $P1587, "$/"
-    $P1588 = $P1587."!make"(0)
+    store_lex "%mods", $P1566
 .annotate 'line', 487
-    .return ($P1588)
-  control_1562:
+    find_lex $P1569, "$/"
+    unless_null $P1569, vivify_367
+    $P1569 = root_new ['parrot';'Hash']
+  vivify_367:
+    set $P1570, $P1569["n"]
+    unless_null $P1570, vivify_368
+    $P1570 = root_new ['parrot';'ResizablePMCArray']
+  vivify_368:
+    set $P1571, $P1570[0]
+    unless_null $P1571, vivify_369
+    new $P1571, "Undef"
+  vivify_369:
+    set $S1572, $P1571
+    isgt $I1573, $S1572, ""
+    if $I1573, if_1568
+    new $P1578, "Integer"
+    assign $P1578, 1
+    set $P1567, $P1578
+    goto if_1568_end
+  if_1568:
+    find_lex $P1574, "$/"
+    unless_null $P1574, vivify_370
+    $P1574 = root_new ['parrot';'Hash']
+  vivify_370:
+    set $P1575, $P1574["n"]
+    unless_null $P1575, vivify_371
+    $P1575 = root_new ['parrot';'ResizablePMCArray']
+  vivify_371:
+    set $P1576, $P1575[0]
+    unless_null $P1576, vivify_372
+    new $P1576, "Undef"
+  vivify_372:
+    set $N1577, $P1576
+    new $P1567, 'Float'
+    set $P1567, $N1577
+  if_1568_end:
+    store_lex "$n", $P1567
+.annotate 'line', 488
+    find_lex $P1579, "$n"
+    find_lex $P1580, "$/"
+    unless_null $P1580, vivify_373
+    $P1580 = root_new ['parrot';'Hash']
+  vivify_373:
+    set $P1581, $P1580["mod_ident"]
+    unless_null $P1581, vivify_374
+    $P1581 = root_new ['parrot';'Hash']
+  vivify_374:
+    set $P1582, $P1581["sym"]
+    unless_null $P1582, vivify_375
+    new $P1582, "Undef"
+  vivify_375:
+    set $S1583, $P1582
+    find_lex $P1584, "%mods"
+    unless_null $P1584, vivify_376
+    $P1584 = root_new ['parrot';'Hash']
+    store_lex "%mods", $P1584
+  vivify_376:
+    set $P1584[$S1583], $P1579
+.annotate 'line', 489
+    find_lex $P1585, "$/"
+    $P1586 = $P1585."!make"(0)
+.annotate 'line', 485
+    .return ($P1586)
+  control_1560:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1587, exception, "payload"
+    .return ($P1587)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "subrule_alias"  :subid("89_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1594
+    .param pmc param_1595
+.annotate 'line', 583
+    new $P1593, 'ExceptionHandler'
+    set_addr $P1593, control_1592
+    $P1593."handle_types"(.CONTROL_RETURN)
+    push_eh $P1593
+    .lex "self", self
+    .lex "$past", param_1594
+    .lex "$name", param_1595
+.annotate 'line', 584
+    find_lex $P1597, "$past"
+    $S1598 = $P1597."name"()
+    isgt $I1599, $S1598, ""
+    if $I1599, if_1596
+.annotate 'line', 585
+    find_lex $P1606, "$past"
+    find_lex $P1607, "$name"
+    $P1606."name"($P1607)
+    goto if_1596_end
+  if_1596:
+.annotate 'line', 584
+    find_lex $P1600, "$past"
+    find_lex $P1601, "$name"
+    concat $P1602, $P1601, "="
+    find_lex $P1603, "$past"
+    $S1604 = $P1603."name"()
+    concat $P1605, $P1602, $S1604
+    $P1600."name"($P1605)
+  if_1596_end:
+.annotate 'line', 586
+    find_lex $P1608, "$past"
+    $P1609 = $P1608."subtype"("capture")
+.annotate 'line', 583
+    .return ($P1609)
+  control_1592:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P1610, exception, "payload"
+    .return ($P1610)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "named_assertion"  :subid("90_1280467473.99327") :method :outer("11_1280467473.99327")
+    .param pmc param_1614
+.annotate 'line', 589
+    new $P1613, 'ExceptionHandler'
+    set_addr $P1613, control_1612
+    $P1613."handle_types"(.CONTROL_RETURN)
+    push_eh $P1613
+    .lex "self", self
+    .lex "$/", param_1614
+.annotate 'line', 590
+    new $P1615, "Undef"
+    .lex "$name", $P1615
+.annotate 'line', 591
+    new $P1616, "Undef"
+    .lex "$past", $P1616
+.annotate 'line', 590
+    find_lex $P1617, "$/"
+    unless_null $P1617, vivify_377
+    $P1617 = root_new ['parrot';'Hash']
+  vivify_377:
+    set $P1618, $P1617["longname"]
+    unless_null $P1618, vivify_378
+    new $P1618, "Undef"
+  vivify_378:
+    set $S1619, $P1618
+    new $P1620, 'String'
+    set $P1620, $S1619
+    store_lex "$name", $P1620
+.annotate 'line', 591
+    get_hll_global $P1621, ["PAST"], "Regex"
+    find_lex $P1622, "$name"
+    find_lex $P1623, "$name"
+    find_lex $P1624, "$/"
+    $P1625 = $P1621."new"($P1622, $P1623 :named("name"), "subrule" :named("pasttype"), "capture" :named("subtype"), $P1624 :named("node"))
+    store_lex "$past", $P1625
+    find_lex $P1626, "$past"
+.annotate 'line', 589
+    .return ($P1626)
+  control_1612:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1589, exception, "payload"
-    .return ($P1589)
+    getattribute $P1627, exception, "payload"
+    .return ($P1627)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1594" :load :anon :subid("90_1277356890.79584")
+.sub "_block1629" :load :anon :subid("91_1280467473.99327")
 .annotate 'line', 4
-    .const 'Sub' $P1596 = "11_1277356890.79584" 
-    $P1597 = $P1596()
-    .return ($P1597)
+    .const 'Sub' $P1631 = "11_1280467473.99327" 
+    $P1632 = $P1631()
+    .return ($P1632)
 .end
 
 
 .namespace []
-.sub "_block1600" :load :anon :subid("91_1277356890.79584")
+.sub "_block1635" :load :anon :subid("92_1280467473.99327")
 .annotate 'line', 1
-    .const 'Sub' $P1602 = "10_1277356890.79584" 
-    $P1603 = $P1602()
-    .return ($P1603)
+    .const 'Sub' $P1637 = "10_1280467473.99327" 
+    $P1638 = $P1637()
+    .return ($P1638)
 .end
 
 # .include 'src/cheats/p6regex-grammar.pir'

Modified: branches/dynop_mapping/ext/nqp-rx/src/stage0/Regex-s0.pir
==============================================================================
--- branches/dynop_mapping/ext/nqp-rx/src/stage0/Regex-s0.pir	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/ext/nqp-rx/src/stage0/Regex-s0.pir	Tue Aug  3 02:53:14 2010	(r48260)
@@ -42,7 +42,7 @@
     load_bytecode 'P6object.pbc'
     .local pmc p6meta
     p6meta = new 'P6metaclass'
-    $P0 = p6meta.'new_class'('Regex::Cursor', 'attr'=>'$!target $!from $!pos $!match $!names $!debug @!bstack @!cstack @!caparray')
+    $P0 = p6meta.'new_class'('Regex::Cursor', 'attr'=>'$!target $!from $!pos $!match $!names $!debug @!bstack @!cstack @!caparray &!regex')
     $P0 = box 0
     set_global '$!generation', $P0
     $P0 = new ['Boolean']
@@ -135,6 +135,7 @@
   caparray_int:
     $I0 = subname
     match[$I0] = arr
+    goto caparray_loop
   caparray_done:
 
     # If it's not a successful match, or if there are
@@ -232,6 +233,20 @@
 .end
 
 
+=item next()
+
+Return the next match from a successful Cursor.
+
+=cut
+
+.sub 'next' :method
+    .local pmc cur, match
+    cur = self.'!cursor_next'()
+    match = cur.'MATCH'()
+    .return (match)
+.end
+
+
 =item pos()
 
 Return the cursor's current position.
@@ -319,6 +334,10 @@
     parrotclass = getattribute $P0, 'parrotclass'
     cur = new parrotclass
 
+    .local pmc regex
+    regex = getattribute self, '&!regex'
+    unless null regex goto cursor_restart
+
     .local pmc from, target, debug
 
     from = getattribute self, '$!pos'
@@ -330,7 +349,30 @@
     debug = getattribute self, '$!debug'
     setattribute cur, '$!debug', debug
 
-    .return (cur, from, target)
+    .return (cur, from, target, 0)
+
+  cursor_restart:
+    .local pmc pos, cstack, bstack
+    from   = getattribute self, '$!from'
+    target = getattribute self, '$!target'
+    debug  = getattribute self, '$!debug'
+    cstack = getattribute self, '@!cstack'
+    bstack = getattribute self, '@!bstack'
+    pos    = box CURSOR_FAIL
+
+    setattribute cur, '$!from', from
+    setattribute cur, '$!pos', pos 
+    setattribute cur, '$!target', target
+    setattribute cur, '$!debug', debug
+    if null cstack goto cstack_done
+    cstack = clone cstack
+    setattribute cur, '@!cstack', cstack
+  cstack_done:
+    if null bstack goto bstack_done
+    bstack = clone bstack
+    setattribute cur, '@!bstack', bstack
+  bstack_done:
+    .return (cur, from, target, 1)
 .end
 
 
@@ -376,6 +418,38 @@
 .end
 
 
+=item !cursor_backtrack()
+
+Configure this cursor for backtracking via C<!cursor_next>.
+
+=cut
+
+.sub '!cursor_backtrack' :method
+    $P0 = getinterp
+    $P1 = $P0['sub';1]
+    setattribute self, '&!regex', $P1
+.end
+
+
+=item !cursor_next()
+
+Continue a regex match from where the current cursor left off.
+
+=cut
+
+.sub '!cursor_next' :method
+    .local pmc regex, cur
+    regex = getattribute self, '&!regex'
+    if null regex goto fail
+    cur = self.regex()
+    .return (cur)
+  fail:
+    cur = self.'!cursor_start'()
+    cur.'!cursor_fail'()
+    .return (cur)
+.end
+
+
 =item !cursor_caparray(caparray :slurpy)
 
 Set the list of subcaptures that produce arrays to C<caparray>.
@@ -1180,7 +1254,7 @@
     rx = shift rx_it
     rxaddr = get_addr rx
     $P0 = mcalled[rxaddr]
-    unless null $P0 goto token_next
+    unless null $P0 goto cand_loop
     result = self.rx()
     mcalled[rxaddr] = mcalled
     if result goto done
@@ -2048,7 +2122,7 @@
 # vim: expandtab shiftwidth=4 ft=pir:
 
 ### .include 'src/PAST/Regex.pir'
-# $Id: Regex.pir 41578 2009-09-30 14:45:23Z pmichaud $
+# $Id$
 
 =head1 NAME
 
@@ -2434,13 +2508,15 @@
     goto iter_loop
   iter_done:
 
-    .local pmc startlabel, donelabel, faillabel
+    .local pmc startlabel, donelabel, faillabel, restartlabel
     $S0 = concat prefix, 'start'
     startlabel = self.'post_new'('Label', 'result'=>$S0)
     $S0 = concat prefix, 'done'
     donelabel = self.'post_new'('Label', 'result'=>$S0)
     $S0 = concat prefix, 'fail'
     faillabel = self.'post_new'('Label', 'result'=>$S0)
+    $S0 = concat prefix, 'restart'
+    restartlabel = self.'post_new'('Label', 'result'=>$S0)
     reghash['fail'] = faillabel
 
     # If capnames is available, it's a hash where each key is the
@@ -2490,9 +2566,8 @@
     concat $S0, pos
     concat $S0, ', '
     concat $S0, tgt
-    concat $S0, ')'
+    concat $S0, ', $I10)'
     ops.'push_pirop'('callmethod', '"!cursor_start"', 'self', 'result'=>$S0)
-    self.'!cursorop'(ops, '!cursor_debug', 0, '"START "', regexname_esc)
     unless caparray goto caparray_skip
     self.'!cursorop'(ops, '!cursor_caparray', 0, caparray :flat)
   caparray_skip:
@@ -2518,9 +2593,13 @@
     ops.'push_pirop'('sub', off, pos, 1, 'result'=>off)
     ops.'push_pirop'('substr', tgt, tgt, off, 'result'=>tgt)
     ops.'push'(startlabel)
+    ops.'push_pirop'('eq', '$I10', 1, restartlabel)
+    self.'!cursorop'(ops, '!cursor_debug', 0, '"START "', regexname_esc)
 
     $P0 = self.'post_regex'(node)
     ops.'push'($P0)
+    ops.'push'(restartlabel)
+    self.'!cursorop'(ops, '!cursor_debug', 0, '"NEXT "', regexname_esc)
     ops.'push'(faillabel)
     self.'!cursorop'(ops, '!mark_fail', 4, rep, pos, '$I10', '$P10', 0)
     ops.'push_pirop'('lt', pos, CURSOR_FAIL, donelabel)
@@ -2906,8 +2985,10 @@
     .param string backtrack
     .param int min
     .param int max
+    .param pmc sep
 
     if backtrack != 'r' goto pessimistic
+    if sep goto pessimistic
 
     .local string subtype
     .local int cclass, negate
@@ -3160,6 +3241,13 @@
     ops.'push_pirop'('inline', 'inline'=>'  # rx pass')
     self.'!cursorop'(ops, '!cursor_pass', 0, pos, regexname)
     self.'!cursorop'(ops, '!cursor_debug', 0, '"PASS  "', regexname, '" at pos="', pos)
+
+    .local string backtrack
+    backtrack = node.'backtrack'()
+    if backtrack == 'r' goto backtrack_done
+    self.'!cursorop'(ops, '!cursor_backtrack', 0)
+  backtrack_done:
+
     ops.'push_pirop'('return', cur)
     .return (ops)
 .end
@@ -3205,7 +3293,9 @@
     backtrack = 'g'
   have_backtrack:
 
+     .local pmc sep
      .local int min, max
+     sep = node.'sep'()
      min = node.'min'()
      $P0 = node.'max'()
      max = $P0
@@ -3223,7 +3313,7 @@
      $S0 = concat $S0, '_q'
      $I0 = can self, $S0
      unless $I0 goto optimize_done
-     $P0 = self.$S0(cpast, backtrack, min, max)
+     $P0 = self.$S0(cpast, backtrack, min, max, sep)
      if null $P0 goto optimize_done
      .return ($P0)
   optimize_done:
@@ -3231,8 +3321,8 @@
     .local pmc cur, pos, rep, fail
     (cur, pos, rep, fail) = self.'!rxregs'('cur pos rep fail')
 
-    .local string qname
-    .local pmc ops, q1label, q2label, btreg, cpost
+    .local string qname, btreg
+    .local pmc ops, q1label, q2label, cpost
     $S0 = concat 'rxquant', backtrack
     qname = self.'unique'($S0)
     ops = self.'post_new'('Ops', 'node'=>node)
@@ -3263,8 +3353,7 @@
   if backtrack == 'f' goto frugal
 
   greedy:
-    btreg = self.'uniquereg'('I')
-    ops.'push_pirop'('set_addr', btreg, q2label)
+    btreg = '$I10'
     .local int needmark
     .local string peekcut
     needmark = needrep
@@ -3275,14 +3364,17 @@
   greedy_1:
     if min == 0 goto greedy_2
     unless needmark goto greedy_loop
+    ops.'push_pirop'('set_addr', btreg, q2label)
     self.'!cursorop'(ops, '!mark_push', 0, 0, CURSOR_FAIL, btreg)
     goto greedy_loop
   greedy_2:
+    ops.'push_pirop'('set_addr', btreg, q2label)
     self.'!cursorop'(ops, '!mark_push', 0, 0, pos, btreg)
   greedy_loop:
     ops.'push'(q1label)
     ops.'push'(cpost)
     unless needmark goto greedy_3
+    ops.'push_pirop'('set_addr', btreg, q2label)
     self.'!cursorop'(ops, peekcut, 1, rep, btreg)
     unless needrep goto greedy_3
     ops.'push_pirop'('inc', rep)
@@ -3291,6 +3383,7 @@
     ops.'push_pirop'('ge', rep, max, q2label)
   greedy_4:
     unless max != 1 goto greedy_5
+    ops.'push_pirop'('set_addr', btreg, q2label)
     self.'!cursorop'(ops, '!mark_push', 0, rep, pos, btreg)
     if null seppost goto greedy_4a
     ops.'push'(seppost)
@@ -3328,6 +3421,8 @@
   frugal_2a:
     unless needrep goto frugal_3
     ops.'push_pirop'('set', ireg, rep)
+    unless max > 1 goto frugal_3
+    ops.'push_pirop'('ge', rep, max, fail)
   frugal_3:
     ops.'push'(cpost)
     unless needrep goto frugal_4
@@ -3336,12 +3431,10 @@
     unless min > 1 goto frugal_5
     ops.'push_pirop'('lt', rep, min, q1label)
   frugal_5:
-    unless max > 1 goto frugal_6
-    ops.'push_pirop'('ge', rep, max, q2label)
   frugal_6:
     unless max != 1 goto frugal_7
     ops.'push_pirop'('set_addr', '$I10', q1label)
-    self.'!cursorop'(ops, '!mark_push', 0, ireg, pos, '$I10')
+    self.'!cursorop'(ops, '!mark_push', 0, rep, pos, '$I10')
   frugal_7:
     ops.'push'(q2label)
     .return (ops)
@@ -3460,8 +3553,9 @@
     negate = node.'negate'()
     testop = self.'??!!'(negate, 'if', 'unless')
 
-    .local pmc subtype
+    .local pmc subtype, backtrack
     subtype = node.'subtype'()
+    backtrack = node.'backtrack'()
 
     ops.'push_pirop'('inline', subpost, subtype, negate, 'inline'=>"  # rx subrule %0 subtype=%1 negate=%2")
 
@@ -3470,8 +3564,27 @@
     ops.'push_pirop'('callmethod', subpost, cur, posargs :flat, namedargs :flat, 'result'=>'$P10')
     ops.'push_pirop'(testop, '$P10', fail)
     if subtype == 'zerowidth' goto done
+    if backtrack != 'r' goto subrule_backtrack
     if subtype == 'method' goto subrule_pos
     self.'!cursorop'(ops, '!mark_push', 0, 0, CURSOR_FAIL, 0, '$P10')
+    goto subrule_named
+  subrule_backtrack:
+    .local string rxname
+    .local pmc backlabel, passlabel
+    rxname = self.'unique'('rxsubrule')
+    $S0 = concat rxname, '_back'
+    backlabel = self.'post_new'('Label', 'result'=>$S0)
+    $S0 = concat rxname, '_pass'
+    passlabel = self.'post_new'('Label', 'result'=>$S0)
+    ops.'push_pirop'('goto', passlabel)
+    ops.'push'(backlabel)
+    ops.'push_pirop'('callmethod', '"!cursor_next"', '$P10', 'result'=>'$P10')
+    ops.'push_pirop'(testop, '$P10', fail)
+    ops.'push'(passlabel)
+    ops.'push_pirop'('set_addr', '$I10', backlabel)
+    self.'!cursorop'(ops, '!mark_push', 0, 0, pos, '$I10', '$P10')
+    if subtype == 'method' goto subrule_pos
+  subrule_named:
     ops.'push'(name)
     ops.'push_pirop'('callmethod', '"!cursor_names"', '$P10', name)
   subrule_pos:

Modified: branches/dynop_mapping/include/parrot/call.h
==============================================================================
--- branches/dynop_mapping/include/parrot/call.h	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/include/parrot/call.h	Tue Aug  3 02:53:14 2010	(r48260)
@@ -87,18 +87,6 @@
         __attribute__nonnull__(2)
         __attribute__nonnull__(3);
 
-PARROT_EXPORT
-void Parrot_PCCINVOKE(PARROT_INTERP,
-    ARGIN(PMC* pmc),
-    ARGMOD(STRING *method_name),
-    ARGIN(const char *signature),
-    ...)
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3)
-        __attribute__nonnull__(4)
-        FUNC_MODIFIES(*method_name);
-
 #define ASSERT_ARGS_Parrot_pcc_do_run_ops __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(sub_obj))
@@ -118,11 +106,6 @@
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(sub_obj) \
     , PARROT_ASSERT_ARG(sig))
-#define ASSERT_ARGS_Parrot_PCCINVOKE __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(pmc) \
-    , PARROT_ASSERT_ARG(method_name) \
-    , PARROT_ASSERT_ARG(signature))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: src/call/pcc.c */
 

Modified: branches/dynop_mapping/include/parrot/dynext.h
==============================================================================
--- branches/dynop_mapping/include/parrot/dynext.h	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/include/parrot/dynext.h	Tue Aug  3 02:53:14 2010	(r48260)
@@ -32,6 +32,13 @@
         FUNC_MODIFIES(*s);
 
 PARROT_EXPORT
+PARROT_CAN_RETURN_NULL
+void * Parrot_dlsym_str(PARROT_INTERP,
+    ARGIN_NULLOK(void *handle),
+    ARGIN_NULLOK(STRING *symbol))
+        __attribute__nonnull__(1);
+
+PARROT_EXPORT
 PARROT_CANNOT_RETURN_NULL
 PMC * Parrot_init_lib(PARROT_INTERP,
     NULLOK(dynext_load_func load_func),
@@ -50,6 +57,8 @@
        PARROT_ASSERT_ARG(d) \
     , PARROT_ASSERT_ARG(s) \
     , PARROT_ASSERT_ARG(lib_pmc))
+#define ASSERT_ARGS_Parrot_dlsym_str __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_Parrot_init_lib __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_Parrot_load_lib __attribute__unused__ int _ASSERT_ARGS_CHECK = (\

Modified: branches/dynop_mapping/include/parrot/key.h
==============================================================================
--- branches/dynop_mapping/include/parrot/key.h	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/include/parrot/key.h	Tue Aug  3 02:53:14 2010	(r48260)
@@ -147,17 +147,18 @@
         __attribute__nonnull__(1);
 
 PARROT_EXPORT
-PARROT_PURE_FUNCTION
-PARROT_WARN_UNUSED_RESULT
-INTVAL key_type(SHIM_INTERP, ARGIN(const PMC *key))
-        __attribute__nonnull__(2);
-
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 STRING * key_string(PARROT_INTERP, ARGIN(PMC *key))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
+PARROT_EXPORT
+PARROT_PURE_FUNCTION
+PARROT_WARN_UNUSED_RESULT
+INTVAL key_type(SHIM_INTERP, ARGIN(const PMC *key))
+        __attribute__nonnull__(2);
+
 #define ASSERT_ARGS_key_append __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(key1) \
@@ -203,11 +204,11 @@
     , PARROT_ASSERT_ARG(value))
 #define ASSERT_ARGS_key_set_to_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_key_type __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(key))
 #define ASSERT_ARGS_key_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(key))
+#define ASSERT_ARGS_key_type __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(key))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: src/key.c */
 

Modified: branches/dynop_mapping/include/parrot/oplib/core_ops.h
==============================================================================
--- branches/dynop_mapping/include/parrot/oplib/core_ops.h	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/include/parrot/oplib/core_ops.h	Tue Aug  3 02:53:14 2010	(r48260)
@@ -20,7 +20,7 @@
 #include "parrot/oplib.h"
 #include "parrot/runcore_api.h"
 
- op_lib_t *Parrot_DynOp_core_2_5_0(PARROT_INTERP, long init);
+ op_lib_t *Parrot_DynOp_core_2_6_0(PARROT_INTERP, long init);
 
  opcode_t * Parrot_end(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_noop(opcode_t *, PARROT_INTERP);

Modified: branches/dynop_mapping/include/parrot/runcore_api.h
==============================================================================
--- branches/dynop_mapping/include/parrot/runcore_api.h	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/include/parrot/runcore_api.h	Tue Aug  3 02:53:14 2010	(r48260)
@@ -78,13 +78,14 @@
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
-void Parrot_runcore_destroy(PARROT_INTERP)
+PARROT_EXPORT
+void Parrot_setup_event_func_ptrs(PARROT_INTERP)
         __attribute__nonnull__(1);
 
-void Parrot_runcore_init(PARROT_INTERP)
+void Parrot_runcore_destroy(PARROT_INTERP)
         __attribute__nonnull__(1);
 
-void Parrot_setup_event_func_ptrs(PARROT_INTERP)
+void Parrot_runcore_init(PARROT_INTERP)
         __attribute__nonnull__(1);
 
 void prepare_for_run(PARROT_INTERP)
@@ -106,12 +107,12 @@
 #define ASSERT_ARGS_Parrot_runcore_switch __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_Parrot_setup_event_func_ptrs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_Parrot_runcore_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_Parrot_runcore_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_setup_event_func_ptrs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_prepare_for_run __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_runops_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\

Modified: branches/dynop_mapping/lib/Parrot/Configure/Options/Conf/File.pm
==============================================================================
--- branches/dynop_mapping/lib/Parrot/Configure/Options/Conf/File.pm	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/lib/Parrot/Configure/Options/Conf/File.pm	Tue Aug  3 02:53:14 2010	(r48260)
@@ -73,7 +73,7 @@
     else {
         die "Configuration file $data->{file} did not parse correctly: $!";
     }
-    return ($data, $steps_list_ref);;
+    return ($data, $steps_list_ref);
 }
 
 sub _get_substitutions {
@@ -124,7 +124,7 @@
 }
 
 sub _set_steps {
-    my ($data, $steps, $optsref) = @_;;
+    my ($data, $steps, $optsref) = @_;
     my @steplines = split /\n/, $steps;
     my @steps_list = ();
     LINE: foreach my $line (@steplines) {

Modified: branches/dynop_mapping/lib/Parrot/Docs/HTMLPage.pm
==============================================================================
--- branches/dynop_mapping/lib/Parrot/Docs/HTMLPage.pm	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/lib/Parrot/Docs/HTMLPage.pm	Tue Aug  3 02:53:14 2010	(r48260)
@@ -94,7 +94,7 @@
             </div> <!-- "mainbody" -->
             <div id="divider"></div>
             <div id="footer">
-	        Copyright &copy; 2002-2009, Parrot Foundation.
+	        Copyright &copy; 2002-2010, Parrot Foundation.
 FOOTER
 
     $footer .= "\n<br>Parrot version $version" if $version;

Modified: branches/dynop_mapping/lib/Parrot/Install.pm
==============================================================================
--- branches/dynop_mapping/lib/Parrot/Install.pm	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/lib/Parrot/Install.pm	Tue Aug  3 02:53:14 2010	(r48260)
@@ -226,6 +226,23 @@
         else {
             next unless -e $src;
             next if $^O eq 'cygwin' and -e "$src.exe"; # stat works, copy not
+            eval {
+                if (-l $src) {   # a link should be created
+                    # check if the system supports symbolic linking
+                    use Config;
+                    if ($Config{d_symlink} && $Config{d_readlink}) {
+                        # copy as symbolic link
+                        symlink(readlink($src), $dest);
+                        # by success take next file, else the file will be
+                        # copied with the command after the eval block of
+                        # this loop
+                        if (-e $dest) {
+                            print "$dest\n";
+                            next;
+                        }
+                    }
+                }
+            };
             copy( $src, $dest ) or die "Error: couldn't copy $src to $dest: $!\n";
             print "$dest\n";
         }

Modified: branches/dynop_mapping/lib/Parrot/Manifest.pm
==============================================================================
--- branches/dynop_mapping/lib/Parrot/Manifest.pm	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/lib/Parrot/Manifest.pm	Tue Aug  3 02:53:14 2010	(r48260)
@@ -275,10 +275,11 @@
         src/vtable.tbl                                  [devel]src
         tools/build/ops2c.pl                            [devel]
         tools/build/pmc2c.pl                            [devel]
-        tools/dev/mk_language_shell.pl                  [devel]
         tools/dev/create_language.pl                    [devel]
-        tools/dev/pbc_to_exe.pir                        [devel]
         tools/dev/gen_makefile.pl                       [devel]
+        tools/dev/mk_language_shell.pl                  [devel]
+        tools/dev/pbc_to_exe.pir                        [devel]
+        tools/dev/pprof2cg.pl                           [devel]
         tools/dev/reconfigure.pl                        [devel]
     );
 

Modified: branches/dynop_mapping/lib/Parrot/Pmc2c/PMC/Object.pm
==============================================================================
--- branches/dynop_mapping/lib/Parrot/Pmc2c/PMC/Object.pm	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/lib/Parrot/Pmc2c/PMC/Object.pm	Tue Aug  3 02:53:14 2010	(r48260)
@@ -70,7 +70,7 @@
 EOC
         $method_body_text .= "            $pcc_result_decl\n" if $pcc_result_decl ne '';
         $method_body_text .= <<"EOC";
-            Parrot_pcc_invoke_sub_from_c_args(interp, meth, "Pi$pcc_sig", _self$pcc_args);
+            Parrot_ext_call(interp, meth, "Pi$pcc_sig", _self$pcc_args);
             $pcc_return_stmt
         }
 EOC

Modified: branches/dynop_mapping/lib/Parrot/Pmc2c/PMCEmitter.pm
==============================================================================
--- branches/dynop_mapping/lib/Parrot/Pmc2c/PMCEmitter.pm	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/lib/Parrot/Pmc2c/PMCEmitter.pm	Tue Aug  3 02:53:14 2010	(r48260)
@@ -139,8 +139,8 @@
     }
     $h->emit("${export}VTABLE* Parrot_${name}_get_vtable(PARROT_INTERP);\n");
     $h->emit("${export}VTABLE* Parrot_${name}_ro_get_vtable(PARROT_INTERP);\n");
-    $h->emit("${export}PMC*    Parrot_${name}_get_mro(PARROT_INTERP, PMC* mro);\n");
-    $h->emit("${export}Hash*   Parrot_${name}_get_isa(PARROT_INTERP, Hash* isa);\n");
+    $h->emit("${export}PMC*    Parrot_${name}_get_mro(PARROT_INTERP, ARGIN_NULLOK(PMC* mro));\n");
+    $h->emit("${export}Hash*   Parrot_${name}_get_isa(PARROT_INTERP, ARGIN_NULLOK(Hash* isa));\n");
 
 
     $self->gen_attributes;
@@ -822,7 +822,7 @@
 $export
 PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
-PMC* Parrot_${classname}_get_mro(PARROT_INTERP, PMC* mro) {
+PMC* Parrot_${classname}_get_mro(PARROT_INTERP, ARGIN_NULLOK(PMC* mro)) {
     if (PMC_IS_NULL(mro)) {
         mro = Parrot_pmc_new(interp, enum_class_ResizableStringArray);
     }
@@ -863,7 +863,7 @@
 $export
 PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
-Hash* Parrot_${classname}_get_isa(PARROT_INTERP, Hash* isa) {
+Hash* Parrot_${classname}_get_isa(PARROT_INTERP, ARGIN_NULLOK(Hash* isa)) {
 EOC
 
     if ($get_isa ne '') {

Modified: branches/dynop_mapping/lib/Parrot/Test/Util/Runloop.pm
==============================================================================
--- branches/dynop_mapping/lib/Parrot/Test/Util/Runloop.pm	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/lib/Parrot/Test/Util/Runloop.pm	Tue Aug  3 02:53:14 2010	(r48260)
@@ -19,18 +19,19 @@
 =head1 DESCRIPTION
 
 This module provides a basic runloop for test scripts which perform the same
-test, over and over, on lots of files.  It is intended to consolidate some code
-to handle loops, skips etc, replicated many times in the t/distro/ and
-t/codingstd/ test directories.
+test, over and over, on lots of files.  It is intended to consolidate some
+code to handle loops, skips etc, replicated many times in the F<t/distro/> and
+F<t/codingstd/> test directories.
 
 You can specify a callback routine to get called back once per line (with the
-per_line attribute), or once per file (with the per_file attribute).  The
-per_line callback gets passed the line as a text string.  The per_file callback
-gets passed the whole file as a text string.  If the callback function returns
-positive, the test passed, otherwise the test failed.  Failures are tallied,
-and later reported to the test harness once, as a single test.  On failure,
-some informational diagnostics are also generated, showing the user which
-file(s) and which line(s) (if applicable) had the failure.
+C<per_line> attribute), or once per file (with the C<per_file> attribute).
+The C<per_line> callback gets passed the line as a text string.  The
+C<per_file> callback gets passed the whole file as a text string.  If the
+callback function returns positive, the test passed, otherwise the test
+failed.  Failures are tallied, and later reported to the test harness once, as
+a single test.  On failure, some informational diagnostics are also generated,
+showing the user which file(s) and which line(s) (if applicable) had the
+failure.
 
 
 =head1 AUTHOR

Modified: branches/dynop_mapping/lib/Pod/Simple/Search.pm
==============================================================================
--- branches/dynop_mapping/lib/Pod/Simple/Search.pm	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/lib/Pod/Simple/Search.pm	Tue Aug  3 02:53:14 2010	(r48260)
@@ -353,7 +353,7 @@
     }
     pop @$modname_bits;
     return;
-  };;
+  };
 
   local $_;
   $recursor->($startdir, '');

Modified: branches/dynop_mapping/ports/debian/changelog
==============================================================================
--- branches/dynop_mapping/ports/debian/changelog	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/ports/debian/changelog	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1,3 +1,17 @@
+parrot (2.6.0-1) unstable; urgency=low
+  * New upstream release
+  * debian/parrot-devel.install.in:
+    - Applied patch from Matt Kraai to install new NQP supporting
+      libraries and install new Opcode generation tool ops2c and
+      supporting library opsc.pbc.
+  * debian/patches:
+    - Added 04_fix_opsc_man.patch, added README for new ops2c
+      binary.
+  * debian/rules:
+    - Generate manpage from the ops2c README file.
+
+ -- Allison Randal <allison at parrot.org>  Sat, 31 Jul 2010 18:32:07 +0100
+
 parrot (2.3.0-1) unstable; urgency=low
   * New upstream release
   * debian/patches:

Modified: branches/dynop_mapping/ports/debian/control
==============================================================================
--- branches/dynop_mapping/ports/debian/control	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/ports/debian/control	Tue Aug  3 02:53:14 2010	(r48260)
@@ -3,8 +3,8 @@
 Priority: optional
 Maintainer: Debian Parrot Maintainers <pkg-parrot-devel at lists.alioth.debian.org>
 Uploaders: Allison Randal <allison at parrot.org>, Nuno Carvalho <mestre.smash at gmail.com>, Patrick Michaud <pmichaud at pobox.com>
-Build-Depends: debhelper (>= 5.0.0), perl, perl-doc, libgdbm-dev, libreadline-dev, quilt
-Standards-Version: 3.8.4
+Build-Depends: debhelper (>= 5.0.0), perl, perl-doc, libreadline-dev, quilt
+Standards-Version: 3.9.1
 
 Package: parrot
 Architecture: any
@@ -26,7 +26,7 @@
  to get up and running in the average use case, and is sufficient to run most
  language implementations.
 
-Package: libparrot2.0.0
+Package: libparrot2.6.0
 Architecture: any
 Section: libs
 Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -37,7 +37,7 @@
 Package: libparrot-dev
 Architecture: any
 Section: libdevel
-Depends: ${misc:Depends}, libparrot2.0.0 (= ${binary:Version}), parrot
+Depends: ${misc:Depends}, libparrot2.6.0 (= ${binary:Version}), parrot
 Description: Parrot shared library development files
  This package contains header files and a static library, needed to develop
  applications which embed Parrot.

Modified: branches/dynop_mapping/ports/debian/control.in
==============================================================================
--- branches/dynop_mapping/ports/debian/control.in	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/ports/debian/control.in	Tue Aug  3 02:53:14 2010	(r48260)
@@ -4,7 +4,7 @@
 Maintainer: Debian Parrot Maintainers <pkg-parrot-devel at lists.alioth.debian.org>
 Uploaders: Allison Randal <allison at parrot.org>, Nuno Carvalho <mestre.smash at gmail.com>, Patrick Michaud <pmichaud at pobox.com>
 Build-Depends: debhelper (>= 5.0.0), perl, perl-doc, libreadline-dev, quilt
-Standards-Version: 3.8.4
+Standards-Version: 3.9.1
 
 Package: parrot
 Architecture: any

Modified: branches/dynop_mapping/ports/debian/parrot-devel.install.in
==============================================================================
--- branches/dynop_mapping/ports/debian/parrot-devel.install.in	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/ports/debian/parrot-devel.install.in	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1,3 +1,4 @@
+usr/bin/ops2c
 usr/bin/parrot_debugger
 usr/bin/pbc_disassemble
 usr/bin/pbc_dump
@@ -6,7 +7,6 @@
 usr/bin/parrot_config
 usr/bin/parrot-nqp
 usr/lib/parrot/@VERSION@/tools/*
-usr/lib/parrot/@VERSION@/languages/nqp/*
 usr/lib/parrot/@VERSION@/languages/pct/*
 usr/lib/parrot/@VERSION@/library/HLL.pbc
 usr/lib/parrot/@VERSION@/library/Regex.pbc
@@ -18,6 +18,8 @@
 usr/lib/parrot/@VERSION@/library/Parrot/Exception.pbc
 usr/lib/parrot/@VERSION@/library/config.pir
 usr/lib/parrot/@VERSION@/library/config.pbc
+usr/lib/parrot/@VERSION@/library/nqp-setting.pbc
+usr/lib/parrot/@VERSION@/library/opsc.pbc
 usr/lib/parrot/@VERSION@/languages/pge/*
 usr/lib/parrot/@VERSION@/library/PGE.pbc
 usr/lib/parrot/@VERSION@/library/PGE/*

Copied: branches/dynop_mapping/ports/debian/patches/04_fix_opsc_man.patch (from r48253, trunk/ports/debian/patches/04_fix_opsc_man.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/ports/debian/patches/04_fix_opsc_man.patch	Tue Aug  3 02:53:14 2010	(r48260, copy of r48253, trunk/ports/debian/patches/04_fix_opsc_man.patch)
@@ -0,0 +1,50 @@
+--- parrot-2.6.0.orig/compilers/opsc/README.pod	(revision 0)
++++ parrot-2.6.0/compilers/opsc/README.pod	(revision 0)
+@@ -0,0 +1,47 @@
++# Copyright (C) 2010, Parrot Foundation.
++# $Id: $
++
++=head1 NAME
++
++opsc - An opcode compiler for Parrot
++
++=head1 DESCRIPTION
++
++Ops-to-C is a compiler to generate opcode definition files in C from
++Parrot's opcode definition language.
++
++=head1 SYNOPSIS
++
++ opsc [-options] <file>
++
++=head1 OPTIONS
++
++=over 4
++
++=item -c, --core
++
++Generate C code for core ops (for use only in building the Parrot VM)
++
++=item -d, --dynamic
++
++Generate C code for dynamic ops in a single file.
++
++=item -q, --quiet
++
++Only report error messages, other messages are silent.
++
++=item -h, --help
++
++Print usage information.
++
++=item -n, --no-lines
++
++Do not print #line directives in generated C code.
++
++=item -g, --debug
++
++Perform all processing but do not write to any files.
++
++=back
++
++=cut

Modified: branches/dynop_mapping/ports/debian/patches/series
==============================================================================
--- branches/dynop_mapping/ports/debian/patches/series	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/ports/debian/patches/series	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1 +1,2 @@
 03_fix_nqp_man.patch
+04_fix_opsc_man.patch

Modified: branches/dynop_mapping/ports/debian/rules
==============================================================================
--- branches/dynop_mapping/ports/debian/rules	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/ports/debian/rules	Tue Aug  3 02:53:14 2010	(r48260)
@@ -49,6 +49,7 @@
 	pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" src/pbc_merge.c debian/pbc_merge.1
 	pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" tools/dev/pbc_to_exe.pir debian/pbc_to_exe.1
 	pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" ext/nqp-rx/parrot-nqp.pod debian/parrot-nqp.1
+	pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" compilers/opsc/README.pod debian/ops2c.1
 	touch build-stamp
 
 clean: debian-control-stamp unpatch
@@ -93,7 +94,7 @@
 	dh_testroot -a
 	dh_installchangelogs -a ChangeLog
 	dh_installman -pparrot-minimal debian/parrot.1
-	dh_installman -pparrot-devel debian/parrot_debugger.1 debian/pbc_disassemble.1 debian/pbc_dump.1 debian/pbc_merge.1 debian/parrot_config.1 debian/pbc_to_exe.1 debian/parrot-nqp.1
+	dh_installman -pparrot-devel debian/parrot_debugger.1 debian/pbc_disassemble.1 debian/pbc_dump.1 debian/pbc_merge.1 debian/parrot_config.1 debian/pbc_to_exe.1 debian/parrot-nqp.1 debian/ops2c.1
 	dh_installdocs -a
 	dh_strip -a
 	dh_compress -a

Copied: branches/dynop_mapping/ports/fedora/2.6.0/parrot.desk.in.tar.gz (from r48253, trunk/ports/fedora/2.6.0/parrot.desk.in.tar.gz)
==============================================================================
Binary file (source and/or target). No diff available.

Copied: branches/dynop_mapping/ports/fedora/2.6.0/parrot.spec (from r48253, trunk/ports/fedora/2.6.0/parrot.spec)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/ports/fedora/2.6.0/parrot.spec	Tue Aug  3 02:53:14 2010	(r48260, copy of r48253, trunk/ports/fedora/2.6.0/parrot.spec)
@@ -0,0 +1,380 @@
+Name:           parrot
+Version:        2.6.0
+Release:        2%{?dist}
+Summary:        a virtual machine
+License:        Artistic 2.0
+Group:          Development/Libraries
+URL:            http://www.parrot.org/
+
+Source0:        ftp://ftp.parrot.org/pub/parrot/releases/stable/%{version}/parrot-%{version}.tar.gz
+Source1:        %{name}.desk.in.tar.gz
+
+BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires:  readline-devel
+BuildRequires:  ncurses-devel
+BuildRequires:  gmp-devel
+BuildRequires:  gdbm-devel
+BuildRequires:  libicu-devel
+BuildRequires:  perl(Test::Harness)
+BuildRequires:  perl(Test::Simple)
+BuildRequires:  ctags
+BuildRequires:  openssl-devel
+BuildRequires:  flex
+BuildRequires:  bison
+# Needed to generate the Parrot PDF book
+BuildRequires:  perl(Pod::PseudoPod::LaTeX), texlive-latex
+# Needed to desktop-file-install usage
+BuildRequires:  desktop-file-utils
+ 
+
+%package docs
+Summary:        Parrot Virtual Machine documentation
+Group:          Documentation
+Requires:       perl(strict)
+Requires:       perl(warnings)
+# Provides the executable in the desktop file (xdg-open)
+Requires:       xdg-utils
+BuildArch:      noarch
+
+#--
+
+%package devel
+Summary:        Parrot Virtual Machine development headers and libraries
+Group:          Development/Libraries
+Requires:       %{name} = %{version}-%{release}
+Requires:       pkgconfig, vim-common
+
+#--
+
+%package tools
+Summary:        Parrot Virtual Machine development for languages
+Group:          Development/Libraries
+Requires:       %{name} = %{version}-%{release}
+Requires:       perl(Pod::Simple)
+Requires:       perl(File::Which) >= 0.05
+Requires:       perl(Parrot::OpLib::core)
+# It is necessary to have installed the package "perl-Perl-Critic" to install
+# the parrot-tools
+Provides:       perl(Parrot::Pmc2c::MethodEmitter) = %{version}
+Provides:       perl(Parrot::Pmc2c::PCCMETHOD_BITS) = %{version}
+Provides:       perl(Parrot::Pmc2c::PMCEmitter) = %{version}
+Provides:       perl(Parrot::OpLib::core) = %{version}
+
+
+%description
+Parrot is a virtual machine designed to efficiently compile and execute
+bytecode for dynamic languages. Parrot is the target for Rakudo Perl 6,
+as well as variety of other languages.
+
+#--
+
+%description docs
+Documentation in text-, POD- and HTML-format (docs/html-subdirectory) and also
+examples about the Parrot Virtual Machine.
+
+#--
+
+%description devel
+Parrot Virtual Machine development headers and libraries.
+
+#--
+
+%description tools
+Parrot Virtual Machine development files for building languages.
+
+
+%prep
+%setup -q
+
+
+cat << \EOF > %{name}-prov
+#!/bin/sh
+%{__perl_provides} $* | %{__sed} -e '/perl(A)/d' -e '/perl(B)/d' \
+                            -e '/perl(DB)/d' -e '/perl(Parrot::OpLib::core)/d'
+EOF
+
+%global __perl_provides %{_builddir}/%{name}-%{version}/%{name}-prov
+chmod +x %{__perl_provides}
+
+
+%build
+%ifarch %{ix86} x86_64
+    RPM_OPT_FLAGS="$RPM_OPT_FLAGS -maccumulate-outgoing-args"
+%else
+# The PowerPC-architecture do not build with the '-maccumulate-outgoing-args'
+# option.
+    RPM_OPT_FLAGS="$RPM_OPT_FLAGS"
+%endif
+
+# there are problems in this version with the optimize="-O2" option building on
+# ppc64 and ppc with nqp-rx
+%ifarch ppc64 ppc
+    RPM_OPT_FLAGS=`echo "$RPM_OPT_FLAGS" | %{__perl} -pi -e 's/-O2//'`
+%endif
+
+%{__perl} Configure.pl \
+    --prefix=%{_usr} \
+    --libdir=%{_libdir} \
+    --sysconfdir=%{_sysconfdir} \
+    --infodir=%{_datadir}/info \
+    --mandir=%{_mandir} \
+    --cc="%{__cc}" \
+    --cxx=%{__cxx} \
+    --optimize="$RPM_OPT_FLAGS" \
+    --parrot_is_shared \
+    --disable-rpath \
+    --pkgconfigdir=pkgconfig \
+    --lex=%{_bindir}/flex
+
+# The LD_LIBRARY_PATH hack is needed for "miniparrot"
+# to find his parrot-library in "blib/lib" 
+export LD_LIBRARY_PATH=$( pwd )/blib/lib
+
+# pbc_to_exe would not build if %{_smp_mflags} would used
+make
+make html pdf
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+# The LD_LIBRARY_PATH hack is needed for the command "pbc_to_exe parrot-nqp.pbc"
+# to find his parrot-library in "blib/lib" 
+export LD_LIBRARY_PATH=$( pwd )/blib/lib
+
+make install DESTDIR=$RPM_BUILD_ROOT
+
+# Generate several files for syntax-highlighting and automatic indenting.
+# First they are installed in BUILD-directory with make and after that
+# they needed to be copied to the RPM_BUILD_ROOT.
+(  cd editor; 
+   make vim-install VIM_DIR=.%{_datadir}/vim/vimfiles \
+                    SKELETON=%{_datadir}/vim/vimfiles;
+   cp -r ./usr $RPM_BUILD_ROOT                                )
+
+# Creating man-pages
+%{__install} -d $RPM_BUILD_ROOT%{_mandir}/man1
+for var in 'parrot docs/running.pod' 'parrot_debugger src/parrot_debugger.c' \
+           'pbc_disassemble src/pbc_disassemble.c' 'pbc_dump src/pbc_dump.c' \
+           'pbc_merge src/pbc_merge.c' 'pbc_to_exe tools/dev/pbc_to_exe.pir' \
+           'parrot_config tools/build/parrot_config_c.pl' \
+           'parrot-nqp compilers/nqp/README.pod'
+do
+    MAN_NAME=`echo $var | %{__perl} -na -e 'print $F[0]'`
+    MAN_SOURCE=`echo $var | %{__perl} -na -e 'print $F[1]'`
+    pod2man --section=1 --name=$MAN_NAME $MAN_SOURCE | %{__gzip} -c > $RPM_BUILD_ROOT%{_mandir}/man1/${MAN_NAME}.1.gz
+done
+
+# Drop the docs so rpm can pick them up itself.
+rm -rf $RPM_BUILD_ROOT%{_defaultdocdir}/%{name}
+
+# Force permissions on doc directories.
+find docs examples -type d -exec chmod 755 {} \;
+find docs examples -type f -exec chmod 644 {} \;
+
+
+%define RPM_PAR_LIB_DIR $RPM_BUILD_ROOT%{_libdir}/%{name}/%{version}/
+
+
+# Force permissions on shared versioned libs so they get stripped.
+# The parrot-install-script don't set the permissions right
+# With changed permissions the dependencies will be found
+find %{RPM_PAR_LIB_DIR}dynext -type f -name '*.so' -exec chmod 755 {} \;
+
+# Remove module that should be install instead (perl(File::Which))
+rm -rf %{RPM_PAR_LIB_DIR}tools/lib/File
+
+
+# Added to reduce output errors when using rpmlint
+
+# Force permission on perl-scripts in the "tools" subdirctory
+find %{RPM_PAR_LIB_DIR}tools -type f -name "*.pl" -exec chmod 755 {} \; \
+    -exec %{__sed} -i -e '1 s&#! perl&#!/usr/bin/perl&' {} \;
+# Set path to parrot binary and Force permission
+find %{RPM_PAR_LIB_DIR}tools/dev -type f -name "pbc_to_exe.pir" \
+    -exec %{__sed} -i -e '1 s&#! parrot&#!/usr/bin/parrot&' {} \; \
+    -exec chmod 755 {} \;
+
+# Remove doc-files with zero-length
+find docs/html -type f -size 0 -exec rm -f {} \;
+find docs -wholename 'docs/doc-prep' -type f -size 0 -exec rm -f {} \;
+
+# Set path for installed programs in docs package
+find examples -type f \( -name "*.pir" -o \
+                         -wholename 'examples/shootout/random.pasm' \)  \
+    -exec %{__sed} -i -e '1 s&#!.*\(parrot\)&#!/usr/bin/\1&' {} \;
+
+find examples -type f \( -name '*.pl' -o \
+                         -wholename 'examples/pir/befunge/t/basic.t' -o  \
+                         -path 'examples/languages/*/harness'               \) \
+    -exec %{__sed} -i -e '1 s&#! perl&#!/usr/bin/perl&' {} \;
+find examples -type f -name "*.py" \
+    -exec %{__sed} -i -e '1 s&#! python&#!/usr/bin/python&' {} \;
+find examples -type f -name "*.rb" \
+    -exec %{__sed} -i -e '1 s&#! ruby&#!/usr/bin/ruby&' {} \;
+
+find examples -wholename 'examples/languages/abc/t/01-tests.t' \
+    -exec %{__sed} -i -e '1 s&#!perl&#!/usr/bin/perl&' {} \;
+
+find examples -wholename 'examples/languages/abc/t/harness' \
+    -exec %{__perl} -pi -e 's/\r$//' {} \;
+
+#install desktop file
+%{__mkdir} ${RPM_BUILD_ROOT}%{_datadir}/applications/
+%{__tar} xzf %{SOURCE1} parrot_html.desk.in --to-stdout | %{__sed} "s|@DOCDIR@|%{_docdir}/%{name}-docs-%{version}|g" > ${RPM_BUILD_ROOT}%{_datadir}/applications/parrot_html.desktop
+%{__tar} xzf %{SOURCE1} parrot_pdf.desk.in --to-stdout | %{__sed} "s|@DOCDIR@|%{_docdir}/%{name}-docs-%{version}|g" > ${RPM_BUILD_ROOT}%{_datadir}/applications/parrot_pdf.desktop
+
+desktop-file-install --delete-original --add-category="Documentation"  \
+    --dir=${RPM_BUILD_ROOT}%{_datadir}/applications                    \
+    ${RPM_BUILD_ROOT}%{_datadir}/applications/parrot_html.desktop
+desktop-file-install --delete-original --add-category="Documentation"  \
+    --dir=${RPM_BUILD_ROOT}%{_datadir}/applications                    \
+    ${RPM_BUILD_ROOT}%{_datadir}/applications/parrot_pdf.desktop
+
+
+%check
+# 'make fulltest' is done by default; it take a lot of time
+export LD_LIBRARY_PATH=$( pwd )/blib/lib
+FULL='full'
+%{?_without_fulltest: FULL=''}
+%{?!_without_tests: make ${FULL}test; rm -f docs/doc-prep}
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root,-)
+%doc ChangeLog CREDITS NEWS PBC_COMPAT PLATFORMS README
+%doc RESPONSIBLE_PARTIES TODO LICENSE
+%{_bindir}/parrot
+%{_libdir}/parrot/
+%exclude %{_libdir}/parrot/%{version}/tools
+%exclude %{_libdir}/parrot/%{version}/VERSION
+%{_libdir}/libparrot.so.*
+%{_mandir}/man1/parrot.1.gz
+
+%files docs
+%defattr(-,root,root,-)
+%doc docs examples LICENSE
+%{_datadir}/applications/parrot_html.desktop
+%{_datadir}/applications/parrot_pdf.desktop
+
+%files devel
+%defattr(-,root,root,-)
+%{_bindir}/parrot_config
+%{_bindir}/parrot_debugger
+%{_bindir}/parrot_nci_thunk_gen
+%{_bindir}/parrot-nqp
+%{_bindir}/parrot-prove
+%{_bindir}/pbc_disassemble
+%{_bindir}/pbc_merge
+%{_bindir}/pbc_to_exe
+%{_bindir}/pbc_dump
+%{_bindir}/ops2c
+%{_includedir}/parrot
+%{_libdir}/libparrot.so
+%exclude %{_libdir}/libparrot.a
+%{_libdir}/pkgconfig/*
+%{_mandir}/man1/parrot_config.1.gz
+%{_mandir}/man1/parrot_debugger.1.gz
+%{_mandir}/man1/pbc_disassemble.1.gz
+%{_mandir}/man1/pbc_merge.1.gz
+%{_mandir}/man1/pbc_to_exe.1.gz
+%{_mandir}/man1/pbc_dump.1.gz
+%{_mandir}/man1/parrot-nqp.1.gz
+%{_datadir}/vim/vimfiles/skeleton.pir
+%{_datadir}/vim/vimfiles/plugin/parrot.vim
+%{_datadir}/vim/vimfiles/syntax/*
+%{_datadir}/vim/vimfiles/indent/pir.vim
+
+%files tools
+%defattr(-,root,root,-)
+# Files for building languages
+%{_libdir}/parrot/%{version}/tools/*
+%{_libdir}/parrot/%{version}/VERSION
+%{_usr}/src/parrot/*
+
+
+%changelog
+* Wed Jul 21 2010 Gerd Pokorra <gp at zimt.uni-siegen.de> 2.6.0-2
+- updated to 2.6.0
+- add vim files for syntax-highlighting and automatic indenting
+- so requires "vim-common" is added
+- add LICENSE file to docs-subpackage
+
+* Fri Jun 18 2010 Gerd Pokorra <gp at zimt.uni-siegen.de> 2.5.0-1
+- updated to 2.5.0
+- add the ops2c binary
+- add the parrot-prove binary
+
+* Tue Apr 20 2010 Gerd Pokorra <gp at zimt.uni-siegen.de> 2.3.0-1
+- add desktop files to access the documentation for reading
+- add the parrot_nci_thunk_gen binary
+
+* Wed Jan 20 2010 Gerd Pokorra <gp at zimt.uni-siegen.de> 2.0.0-1
+- new upstream version
+- add the parrot-nqp binary, with generating of the man-page
+
+* Fri Aug 21 2009 Gerd Pokorra <gp at zimt.uni-siegen.de> 1.5.0-1
+- add man pages
+
+* Sat Aug 1 2009 Gerd Pokorra <gp at zimt.uni-siegen.de> 1.4.0-9
+- include the necessary module Parrot::OpLib::core
+- change the place of header files to /usr/include/parrot/<version>
+- install the files /usr/src/parrot/*
+- add the new disable-rpath configure option
+
+* Wed Mar 25 2009 Gerd Pokorra <gp at zimt.uni-siegen.de> 1.0.0-6
+- add a list of changes from Lubomir Rintel
+- add filtering Provides
+- change requires for docs-subpackage
+- enable test suite
+- change the group of the subpackage "-docs" to Documentation
+- put the main-documentation from the docs-package to the main package
+- LICENSE file added
+- add Provides-lines
+- add patch for the file "tools/dev/install_files.pl"
+- add commands to reduce output of errors when using rpmlint
+- define RPM_PAR_LIB_DIR added
+- add subpackage "tools"
+- exclude tools directory from main-package
+- added make html
+
+* Sun Mar 22 2009 Fabien Georget <fabien.georget at gmail.com> 1.0.0-4
+- add tools
+
+* Sun Mar 22 2009 David Fetter <david at fetter.org> 1.0.0-3
+- Removed wrong prefix from pkgconfig per Christoph Wickert
+
+* Tue Mar 17 2009 Allison Randal <allison at parrot.org> 1.0.0
+- updated to 1.0.0
+
+* Tue Jan 23 2009 Reini Urban <rurban at x-ray.at> 0.9.0
+- added parrot_utils to devel
+
+* Tue Dec 16 2008 Whiteknight <wknight8111 at gmail.com> 0.8.2
+- updated to 0.8.2
+
+* Wed Feb 20 2008 Patrick Michaud <pmichaud at pobox.com> 0.5.3
+- Update to 0.5.3.
+
+* Sat Mar 10 2007 Steven Pritchard <steve at kspei.com> 0.4.9-1
+- BuildRequires ncurses-devel.
+- For some reason now I need to force -lm too.
+- Remove some files/directories that shouldn't be included.
+- Override lib_dir and make various substitutions to try to fix multilib.
+- Remove rpath use from Makefile.
+- Fix a pod error in src/ops/experimental.ops.
+- Enable "make test" since t/doc/pod.t won't fail now.
+- Force permissions on shared libraries so rpmbuild strips them.
+- Fix URL, description, summary, etc.
+- Add post/postun.
+- Move parrot-config to the devel sub-package.
+- Force permissions on the doc directories.
+- Add -lcurses to get readline detection to work.
+- Add BuildRequires libicu-devel.

Copied: branches/dynop_mapping/ports/suse/2.5.0/parrot.diff (from r48253, trunk/ports/suse/2.5.0/parrot.diff)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/ports/suse/2.5.0/parrot.diff	Tue Aug  3 02:53:14 2010	(r48260, copy of r48253, trunk/ports/suse/2.5.0/parrot.diff)
@@ -0,0 +1,35 @@
+--- ./tools/dev/pbc_to_exe.pir.orig	2010-04-19 06:37:28.000000000 +0000
++++ ./tools/dev/pbc_to_exe.pir	2010-04-20 14:25:40.000000000 +0000
+@@ -510,10 +510,11 @@ END_OF_FUNCTION
+     .param int install :optional
+ 
+     $P0 = '_config'()
+-    .local string cc, ccflags, cc_o_out, osname, build_dir, slash
++    .local string cc, ccflags, optimize, cc_o_out, osname, build_dir, slash
+     .local string installed, includepath, versiondir
+     cc        = $P0['cc']
+     ccflags   = $P0['ccflags']
++    optimize  = $P0['optimize']
+     cc_o_out  = $P0['cc_o_out']
+     osname    = $P0['osname']
+     build_dir = $P0['build_dir']
+@@ -547,6 +548,8 @@ END_OF_FUNCTION
+     compile .= pathquote
+     compile .= ' '
+     compile .= ccflags
++    compile .= ' '
++    compile .= optimize
+     compile .= ' -c '
+     compile .= cfile
+ 
+--- ./src/gc/system.c.orig	2010-04-20 14:36:05.000000000 +0000
++++ ./src/gc/system.c	2010-04-20 14:38:24.000000000 +0000
+@@ -197,7 +197,7 @@ trace_system_areas(PARROT_INTERP, ARGIN(
+ 
+ #  endif /* __hpux */
+ 
+-        trace_mem_block(interp, base,
++        trace_mem_block(interp, mem_pools, base,
+                 (size_t)current_regstore_top);
+ 
+ #else /* !__ia64__ */

Copied: branches/dynop_mapping/ports/suse/2.5.0/parrot.spec (from r48253, trunk/ports/suse/2.5.0/parrot.spec)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/ports/suse/2.5.0/parrot.spec	Tue Aug  3 02:53:14 2010	(r48260, copy of r48253, trunk/ports/suse/2.5.0/parrot.spec)
@@ -0,0 +1,249 @@
+#
+# spec file for package parrot (Version 2.5.0)
+#
+# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
+#
+
+
+
+Name:           parrot
+Version:        2.5.0
+Release:        14.3
+%define pversion 2_5_0
+Summary:        Parrot Virtual Machine
+License:        Artistic 2.0
+Group:          Development/Libraries
+Url:            http://www.parrot.org/
+Source0:        parrot-%{version}.tar.bz2
+Patch0:         parrot.diff
+BuildRoot:      %{_tmppath}/%{name}-%{version}-build
+BuildRequires:  readline-devel
+BuildRequires:  ncurses-devel
+BuildRequires:  gmp-devel
+BuildRequires:  gdbm-devel
+BuildRequires:  libicu-devel
+%if ! 0%{?suse_version}
+BuildRequires:  perl-Test-Harness
+%endif
+
+%package docs
+Summary:        Parrot Virtual Machine documentation
+License:        Artistic 2.0
+Group:          Development/Libraries
+%if ! 0%{?suse_version}
+BuildRequires:  /usr/bin/perldoc
+%endif
+
+%package -n libparrot%pversion
+
+
+Summary:        Parrot Virtual Machine Library
+License:        Artistic 2.0
+Group:          Development/Libraries
+
+%package devel
+Summary:        Parrot Virtual Machine development headers and libraries
+License:        Artistic 2.0
+Group:          Development/Libraries
+Requires:       %{name} = %{version}
+Requires:       readline-devel
+Requires:       ncurses-devel
+Requires:       gmp-devel
+Requires:       gdbm-devel
+Requires:       libicu-devel
+%if ! 0%{?suse_version}
+Requires:       %{_libdir}/pkgconfig
+%endif
+
+%description
+Parrot is a virtual machine designed to efficiently compile and execute
+bytecode for dynamic languages. Parrot is the target for Rakudo Perl 6,
+as well as variety of other languages.
+
+%description -n libparrot%pversion
+Parrot is a virtual machine designed to efficiently compile and execute
+bytecode for dynamic languages. Parrot is the target for Rakudo Perl 6,
+as well as variety of other languages.
+
+%description docs
+Documentation in text-, POD- and HTML-format (docs/html-subdirectory) and also
+examples about the Parrot Virtual Machine
+
+%description devel
+Parrot Virtual Machine development headers and libraries.
+
+%prep
+%setup -q
+%patch0
+%{__perl} -pi -e 's,"lib/,"%{_lib}/, if (/CONST_STRING\(interp,/)' \
+    src/library.c
+%{__perl} -pi -e "s,'/usr/lib','%{_libdir}',;s,runtime/lib/,runtime/%{_lib}/," \
+    tools/dev/install_files.pl
+%{__perl} -pi -e "s,'/usr/lib','%{_libdir}',;s,runtime/lib/,runtime/%{_lib}/," \
+    tools/dev/install_dev_files.pl
+
+%build
+if test "%{_vendor}" = "suse"
+then
+    LIBS='-lncurses -lm -lrt'
+else
+    LIBS='-lcurses -lm -lrt'
+fi
+OPTIMIZE="$RPM_OPT_FLAGS -fno-strict-aliasing"
+OPTIMIZE="$RPM_OPT_FLAGS"
+%ifarch %ix86 %x86_64
+OPTIMIZE="$OPTIMIZE -maccumulate-outgoing-args"
+%endif
+%ifarch ppc ia64
+OPTIMIZE="-O0"
+%endif
+%{__perl} Configure.pl \
+    --prefix=%{_usr} \
+    --libdir=%{_libdir} \
+    --sysconfdir=%{_sysconfdir} \
+    --infodir=%{_datadir}/info \
+    --mandir=%{_mandir} \
+    --cc="%{__cc}" \
+    --cxx=%{__cxx} \
+    --optimize="$OPTIMIZE" \
+    --parrot_is_shared \
+    --disable-rpath \
+    --lex=/usr/bin/flex \
+    --yacc=/usr/bin/yacc \
+    --libs="$LIBS"
+export LD_LIBRARY_PATH=$( pwd )/blib/lib
+make
+make parrot_utils
+make installable
+make html
+
+%install
+rm -rf $RPM_BUILD_ROOT
+mkdir $RPM_BUILD_ROOT
+export LD_LIBRARY_PATH=$( pwd )/blib/lib
+make install-dev DESTDIR=$RPM_BUILD_ROOT
+PARROT_LIB=%{_libdir}`./parrot_config versiondir`
+PARROT_INC=%{_includedir}`./parrot_config versiondir`
+wd=`pwd`
+for i in $RPM_BUILD_ROOT$PARROT_LIB/tools/build/* ; do
+    perl -pi -e "s@$wd/include@$PARROT_INC at g" $i
+    perl -pi -e "s@$wd/src/pmc@$PARROT_INC/pmc at g" $i
+    perl -pi -e "s@(-Wl,)?-L$wd/blib/lib@@" $i
+    perl -pi -e "s@$wd@$PARROT_LIB at g" $i
+done
+perl -pi -e 's@^(use lib ..FindBin::Bin/\.\./)\.\."@$1lib"@' $RPM_BUILD_ROOT$PARROT_LIB/tools/build/dynpmc.pl
+# Drop the docs so rpm can pick them up itself.
+rm -rf $RPM_BUILD_ROOT%{_usr}/share/doc/parrot    # necessary for SuSE
+#rm -rf $RPM_BUILD_ROOT/%{_docdir}/parrot         # for Solaris?
+# Force permissions on doc directories.
+find docs examples -type d -exec chmod 755 {} \;
+find docs examples -type f -exec chmod 644 {} \;
+# Force permissions on shared libs so they get stripped.
+find $RPM_BUILD_ROOT%{_libdir} -type f \( -name '*.so' -o -name '*.so.*' \) \
+    -exec chmod 755 {} \;
+# make libparrot.so a symlink
+(cd $RPM_BUILD_ROOT%{_libdir} ; ln -fs libparrot.so.* libparrot.so)
+
+%check
+export LD_LIBRARY_PATH=$( pwd )/blib/lib
+# make test < /dev/null
+# %{?_with_fulltest:make fulltest < /dev/null}
+# make test || :
+# %{?_with_fulltest:make fulltest || :}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post -n libparrot%pversion -p /sbin/ldconfig
+
+%postun -n libparrot%pversion -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root,-)
+%exclude %{_bindir}/parrot_config
+%exclude %{_bindir}/parrot_debugger
+%exclude %{_bindir}/pbc_*
+%{_bindir}/*
+
+%files -n libparrot%pversion
+%defattr(-,root,root,-)
+%dir %{_libdir}/parrot
+%dir %{_libdir}/parrot/*
+%{_libdir}/parrot/*/[^st]*
+%{_libdir}/libparrot.so.*
+
+%files docs
+%defattr(-,root,root,-)
+%doc ChangeLog CREDITS NEWS PBC_COMPAT PLATFORMS README
+%doc RESPONSIBLE_PARTIES TODO
+%doc docs examples
+
+%files devel
+%defattr(-,root,root,-)
+%{_bindir}/parrot_config
+%{_bindir}/parrot_debugger
+%{_bindir}/pbc_disassemble
+%{_bindir}/pbc_merge
+%{_bindir}/pbc_to_exe
+%{_bindir}/pbc_dump
+%{_includedir}/parrot
+%{_libdir}/libparrot.so
+%{_libdir}/libparrot.a
+%{_libdir}/pkgconfig/*
+%{_libdir}/parrot/*/[st]*
+%{_usrsrc}/parrot
+
+%changelog
+* Fri Jun 18 2010 mls at suse.de
+- update to parrot-2.5.0
+  * Added ByteBuffer PMC to allow direct byte manipulation
+  * Modified some PMC vtable functions to reduce complexity, simplifying coverage.
+  * Modified PAST to generate symbolic PASM constants in PIR output.
+  * General STRING API cleanups
+  * Fixed up 'exit' opcode, added CONTROL_EXIT exception type.
+  * Added proper support for multisubs and multimethods in nqp-rx
+* Thu May 20 2010 mls at suse.de
+- update to parrot-2.4.0
+  * STRINGs are now immutable.
+  * use STRINGNULL instead of NULL when working with strings
+  * Fixed storage of methods in the NameSpace PMC
+  * Added :nsentry flag to force method to be stored in the NameSpace
+  * Added StringBuilder and PackfileDebug PMCs
+  * Added experimental opcodes find_codepoint and unroll
+* Thu Apr 22 2010 mls at suse.de
+- update to parrot-2.3.0
+  * dlopen improved, loadlib opcode added
+  * Calling conventions are now much more consistent, and follows natural
+    semantics of handling arguments and return values
+  * Datatype STRINGNULL for a single Null STRING added
+- work around i586 compiler bug
+* Wed Mar 17 2010 mls at suse.de
+- update to parrot-2.2.0
+  * Most internal allocations now use the GC
+  * RNG non-randomness fixes
+  * Elimination of much dead code
+* Fri Feb 19 2010 mls at suse.de
+- update to parrot-2.1.1
+* Fri Oct 23 2009 mls at suse.de
+- update to October version
+* Mon Sep 21 2009 mls at suse.de
+- update to September version
+* Thu Aug 27 2009 mls at suse.de
+- update to August version
+* Fri Jun 26 2009 mls at suse.de
+- update to June version
+* Thu Apr 23 2009 mls at suse.de
+- update to April version
+* Fri Apr  3 2009 mls at suse.de
+- initial revision

Modified: branches/dynop_mapping/runtime/parrot/library/P6object.pir
==============================================================================
--- branches/dynop_mapping/runtime/parrot/library/P6object.pir	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/runtime/parrot/library/P6object.pir	Tue Aug  3 02:53:14 2010	(r48260)
@@ -86,6 +86,12 @@
     $P2.'register'($P0)
     $P3 = $P2.'register'($P1)
     setattribute $P3, 'protoobject', $P3
+
+    $P0 = new ['Boolean']
+    set_hll_global ['P6protoobject'], 'False', $P0
+    $P0 = new ['Boolean']
+    assign $P0, 1
+    set_hll_global ['P6protoobject'], 'True', $P0
 .end
 
 
@@ -794,32 +800,29 @@
 
     # Perl6Object (legacy) and Mu accept anything.
     $S0 = parrotclass
-    if $S0 == 'Perl6Object' goto accept_anyway
-    if $S0 == 'Mu' goto accept_anyway
+    if $S0 == 'Perl6Object' goto accept
+    if $S0 == 'Mu' goto accept
 
     # Otherwise, just try a normal check.
     $I0 = can topic, 'HOW'
-    unless $I0 goto end
+    unless $I0 goto reject
     topicwhat = topic.'WHAT'()
     $I0 = isa topicwhat, parrotclass
-    if $I0 goto end
+    if $I0 goto accept
     $I0 = does topic, parrotclass
-    if $I0 goto end
+    if $I0 goto accept
 
     # If this fails, and we want Any, and it's something form outside
     # of the Perl 6 world, we'd best just accept it.
-    unless $S0 == 'Any' goto end
+    unless $S0 == 'Any' goto reject
     $I0 = isa topicwhat, 'Mu'
-    unless $I0 goto accept_anyway
-    $I0 = 0
-    goto end
-
-  accept_anyway:
-    $I0 = 1
+    unless $I0 goto accept
+  reject:
+    $P0 = get_global 'False'
+    .return ($P0)
 
-  end:
-    $P0 = new ['Boolean']
-    assign $P0, $I0
+  accept:
+    $P0 = get_global 'True'
     .return ($P0)
 .end
 

Modified: branches/dynop_mapping/runtime/parrot/library/distutils.pir
==============================================================================
--- branches/dynop_mapping/runtime/parrot/library/distutils.pir	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/runtime/parrot/library/distutils.pir	Tue Aug  3 02:53:14 2010	(r48260)
@@ -193,7 +193,11 @@
 
 L<http://bitbucket.org/riffraff/shakespeare-parrot/src/tip/setup.pir>
 
-L<http://gitorious.org/kakapo/kakapo/blobs/master/setup.nqp>
+L<http://github.com/bacek/pir/blob/master/setup.pir>
+
+L<http://github.com/kthakore/parrotSDL/blob/master/setup.pir>
+
+L<http://github.com/ekiru/tree-optimization/blob/master/setup.nqp>
 
 =cut
 

Modified: branches/dynop_mapping/src/call/args.c
==============================================================================
--- branches/dynop_mapping/src/call/args.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/call/args.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -583,15 +583,6 @@
 
         /* Regular arguments just set the value */
         switch (type) {
-          case 'I':
-            VTABLE_push_integer(interp, call_object, va_arg(*args, INTVAL));
-            break;
-          case 'N':
-            VTABLE_push_float(interp, call_object, va_arg(*args, FLOATVAL));
-            break;
-          case 'S':
-            VTABLE_push_string(interp, call_object, va_arg(*args, STRING *));
-            break;
           case 'P':
             {
                 const INTVAL type_lookahead = sig[i+1];
@@ -617,6 +608,15 @@
                             : clone_key_arg(interp, pmc_arg));
                 break;
             }
+          case 'S':
+            VTABLE_push_string(interp, call_object, va_arg(*args, STRING *));
+            break;
+          case 'I':
+            VTABLE_push_integer(interp, call_object, va_arg(*args, INTVAL));
+            break;
+          case 'N':
+            VTABLE_push_float(interp, call_object, va_arg(*args, FLOATVAL));
+            break;
           case '-':
             return call_object;
             break;
@@ -750,16 +750,14 @@
     INTVAL  param_index     = 0;
     INTVAL  arg_index       = 0;
     INTVAL  named_count     = 0;
-    INTVAL  err_check       = 0;
     INTVAL  param_count;
     INTVAL  positional_args;
+    /* Check if we should be throwing errors. This is configured separately
+     * for parameters and return values. */
+    const INTVAL err_check  = PARROT_ERRORS_test(interp, direction);
 
     GETATTR_FixedIntegerArray_size(interp, raw_sig, param_count);
 
-    /* Check if we should be throwing errors. This is configured separately
-     * for parameters and return values. */
-    if (PARROT_ERRORS_test(interp, direction))
-        err_check = 1;
 
     /* A null call object is fine if there are no arguments and no returns. */
     if (PMC_IS_NULL(call_object)) {

Modified: branches/dynop_mapping/src/call/pcc.c
==============================================================================
--- branches/dynop_mapping/src/call/pcc.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/call/pcc.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -58,57 +58,15 @@
 =item C<void Parrot_pcc_invoke_sub_from_c_args(PARROT_INTERP, PMC *sub_obj,
 const char *sig, ...)>
 
-Follows the same conventions as C<Parrot_PCCINVOKE>, but the subroutine object
-to invoke is passed as an argument rather than looked up by name. The signature
-string and call arguments are converted to a CallSignature PMC.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_pcc_invoke_sub_from_c_args(PARROT_INTERP, ARGIN(PMC *sub_obj),
-        ARGIN(const char *sig), ...)
-{
-    ASSERT_ARGS(Parrot_pcc_invoke_sub_from_c_args)
-    PMC         *call_obj;
-    va_list      args;
-    const char  *arg_sig, *ret_sig;
-    PMC         * const old_call_obj =
-        Parrot_pcc_get_signature(interp, CURRENT_CONTEXT(interp));
-
-    Parrot_pcc_split_signature_string(sig, &arg_sig, &ret_sig);
-
-    va_start(args, sig);
-    call_obj = Parrot_pcc_build_call_from_varargs(interp, PMCNULL,
-         arg_sig, &args);
-    Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), call_obj);
-    Parrot_pcc_invoke_from_sig_object(interp, sub_obj, call_obj);
-    call_obj = Parrot_pcc_get_signature(interp, CURRENT_CONTEXT(interp));
-    Parrot_pcc_fill_params_from_varargs(interp, call_obj, ret_sig, &args,
-            PARROT_ERRORS_RESULT_COUNT_FLAG);
-    va_end(args);
-    Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), old_call_obj);
-}
-
-
-/*
-
-=item C<void Parrot_PCCINVOKE(PARROT_INTERP, PMC* pmc, STRING *method_name,
-const char *signature, ...)>
+C<pmc> is the invocant.
 
-DEPRECATED. See TT #443. Use Parrot_pcc_invoke_method_from_c_args instead.
+C<sub_obj> is the sub to invoke.
 
-C<pmc> is the invocant.
+C<sig> is the signature.
 
-C<method_name> is the same C<method_name> used in the C<find_method>
-VTABLE call
+Variable args contains the IN arguments followed by the OUT results variables.
+You must pass the address_of(&) the OUT results, of course.
 
-C<signature> is a C string describing the Parrot calling conventions for
-Parrot_PCCINVOKE.  ... variable args contains the IN arguments followed
-by the OUT results variables.  You must pass the address_of(&) the OUT
-results, of course.
 
 Signatures:
   uppercase letters repesent each arg and denote its types
@@ -147,7 +105,6 @@
     a FLOATVAL: N
     a slurpy PMC: Ps
 
-invokes a PMC method
 
 =cut
 
@@ -155,25 +112,28 @@
 
 PARROT_EXPORT
 void
-Parrot_PCCINVOKE(PARROT_INTERP, ARGIN(PMC* pmc), ARGMOD(STRING *method_name),
-        ARGIN(const char *signature), ...)
+Parrot_pcc_invoke_sub_from_c_args(PARROT_INTERP, ARGIN(PMC *sub_obj),
+        ARGIN(const char *sig), ...)
 {
-    ASSERT_ARGS(Parrot_PCCINVOKE)
-    PMC *sig_obj;
-    PMC *sub_obj;
-    va_list args;
-    va_start(args, signature);
-    sig_obj = Parrot_pcc_build_sig_object_from_varargs(interp, pmc, signature, args);
-    va_end(args);
+    ASSERT_ARGS(Parrot_pcc_invoke_sub_from_c_args)
+    PMC         *call_obj;
+    va_list      args;
+    const char  *arg_sig, *ret_sig;
+    PMC         * const old_call_obj =
+        Parrot_pcc_get_signature(interp, CURRENT_CONTEXT(interp));
 
-    /* Find the subroutine object as a named method on pmc */
-    sub_obj = VTABLE_find_method(interp, pmc, method_name);
-    if (PMC_IS_NULL(sub_obj))
-         Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_METHOD_NOT_FOUND,
-             "Method '%Ss' not found", method_name);
+    Parrot_pcc_split_signature_string(sig, &arg_sig, &ret_sig);
 
-    /* Invoke the subroutine object with the given CallSignature object */
-    Parrot_pcc_invoke_from_sig_object(interp, sub_obj, sig_obj);
+    va_start(args, sig);
+    call_obj = Parrot_pcc_build_call_from_varargs(interp, PMCNULL,
+         arg_sig, &args);
+    Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), call_obj);
+    Parrot_pcc_invoke_from_sig_object(interp, sub_obj, call_obj);
+    call_obj = Parrot_pcc_get_signature(interp, CURRENT_CONTEXT(interp));
+    Parrot_pcc_fill_params_from_varargs(interp, call_obj, ret_sig, &args,
+            PARROT_ERRORS_RESULT_COUNT_FLAG);
+    va_end(args);
+    Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), old_call_obj);
 }
 
 
@@ -329,9 +289,8 @@
 =item C<void Parrot_pcc_invoke_from_sig_object(PARROT_INTERP, PMC *sub_obj, PMC
 *call_object)>
 
-Follows the same conventions as C<Parrot_PCCINVOKE>, but the subroutine object
-to invoke is passed as an argument rather than looked up by name, and the
-signature string and call arguments are passed in a CallSignature PMC.
+Follows the same conventions as C<Parrot_pcc_invoke_method_from_c_args>, but
+the signature string and call arguments are passed in a CallSignature PMC.
 
 =cut
 

Modified: branches/dynop_mapping/src/dynext.c
==============================================================================
--- branches/dynop_mapping/src/dynext.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/dynext.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -413,6 +413,36 @@
 
 /*
 
+=item C<void * Parrot_dlsym_str(PARROT_INTERP, void *handle, STRING *symbol)>
+
+Same as Parrot_dlsym but takes the symbol name from a Parrot String instead
+of a C string.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_CAN_RETURN_NULL
+void *
+Parrot_dlsym_str(PARROT_INTERP,
+        ARGIN_NULLOK(void *handle), ARGIN_NULLOK(STRING *symbol))
+{
+    ASSERT_ARGS(Parrot_dlsym_str)
+
+    void *ptr;
+    if (STRING_IS_NULL(symbol))
+        ptr = NULL;
+    else {
+        char *const symbol_cs = Parrot_str_to_cstring(interp, symbol);
+        ptr = Parrot_dlsym(handle, symbol_cs);
+        Parrot_str_free_cstring(symbol_cs);
+    }
+    return ptr;
+}
+
+/*
+
 =item C<static PMC * run_init_lib(PARROT_INTERP, void *handle, STRING *lib_name,
 STRING *wo_ext)>
 
@@ -453,18 +483,14 @@
                                         "Parrot_lib_%Ss_load", lib_name);
         STRING * const init_func_name  = Parrot_sprintf_c(interp,
                                         "Parrot_lib_%Ss_init", lib_name);
-        char   * const cload_func_name = Parrot_str_to_cstring(interp, load_name);
-        char   * const cinit_func_name = Parrot_str_to_cstring(interp, init_func_name);
 
         /* get load_func */
-        void * dlsymfunc = Parrot_dlsym(handle, cload_func_name);
+        void * dlsymfunc = Parrot_dlsym_str(interp, handle, load_name);
         load_func = (PMC * (*)(PARROT_INTERP)) D2FPTR(dlsymfunc);
-        Parrot_str_free_cstring(cload_func_name);
 
         /* get init_func */
-        dlsymfunc = Parrot_dlsym(handle, cinit_func_name);
+        dlsymfunc = Parrot_dlsym_str(interp, handle, init_func_name);
         init_func = (void (*)(PARROT_INTERP, PMC *)) D2FPTR(dlsymfunc);
-        Parrot_str_free_cstring(cinit_func_name);
     }
     else {
         load_func = NULL;

Modified: branches/dynop_mapping/src/dynoplibs/Rules.in
==============================================================================
--- branches/dynop_mapping/src/dynoplibs/Rules.in	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/dynoplibs/Rules.in	Tue Aug  3 02:53:14 2010	(r48260)
@@ -15,7 +15,7 @@
 #IF(cygwin or hpux):	$(CHMOD) 0775 $@
 
 src/dynoplibs/obscure_ops$(O): $(DYNOP_O_DEPS) \
-    src/dynoplibs/obscure_ops.c include/parrot/runcore_api.h
+    src/dynoplibs/obscure_ops.c src/dynoplibs/obscure_ops.h
 
 src/dynoplibs/obscure_ops.h: src/dynoplibs/obscure_ops.c
 
@@ -120,10 +120,9 @@
 #IF(cygwin or hpux):	$(CHMOD) 0775 $@
 
 src/dynoplibs/io_ops$(O): $(DYNOP_O_DEPS) \
-    src/dynoplibs/io_ops.c src/dynoplibs/io_ops.h
+    src/dynoplibs/io_ops.c src/dynoplibs/io_ops.h src/io/io_private.h
 
 src/dynoplibs/io_ops.h: src/dynoplibs/io_ops.c
 
 src/dynoplibs/io_ops.c: src/dynoplibs/io.ops $(OPS2C)
 	$(OPS2C) --dynamic src/dynoplibs/io.ops --quiet
-

Modified: branches/dynop_mapping/src/dynpmc/rational.pmc
==============================================================================
--- branches/dynop_mapping/src/dynpmc/rational.pmc	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/dynpmc/rational.pmc	Tue Aug  3 02:53:14 2010	(r48260)
@@ -541,7 +541,7 @@
 
 */
     VTABLE PMC *add_int(INTVAL value, PMC* dest) {
-        dest = STATICSELF.clone();;
+        dest = STATICSELF.clone();
         rat_add_integer(INTERP, dest, (int) value);
         return dest;
     }

Modified: branches/dynop_mapping/src/embed.c
==============================================================================
--- branches/dynop_mapping/src/embed.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/embed.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -20,6 +20,7 @@
 
 #include "parrot/parrot.h"
 #include "parrot/embed.h"
+#include "parrot/extend.h"
 #include "parrot/oplib/ops.h"
 #include "pmc/pmc_sub.h"
 #include "pmc/pmc_callcontext.h"
@@ -808,7 +809,7 @@
     Parrot_pcc_set_sub(interp, CURRENT_CONTEXT(interp), NULL);
     Parrot_pcc_set_constants(interp, interp->ctx, interp->code->const_table->constants);
 
-    Parrot_pcc_invoke_sub_from_c_args(interp, main_sub, "P->", userargv);
+    Parrot_ext_call(interp, main_sub, "P->", userargv);
 }
 
 

Modified: branches/dynop_mapping/src/interp/inter_cb.c
==============================================================================
--- branches/dynop_mapping/src/interp/inter_cb.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/interp/inter_cb.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -25,6 +25,7 @@
 */
 
 #include "parrot/parrot.h"
+#include "parrot/extend.h"
 #include "pmc/pmc_parrotinterpreter.h"
 #include "inter_cb.str"
 
@@ -350,8 +351,7 @@
     pasm_sig[2] = '-';
     pasm_sig[3] = '>';  /* no return value supported yet */
     pasm_sig[4] = '\0';
-    Parrot_pcc_invoke_sub_from_c_args(interp, sub, pasm_sig,
-            user_data, param);
+    Parrot_ext_call(interp, sub, pasm_sig, user_data, param);
 }
 /*
 

Modified: branches/dynop_mapping/src/interp/inter_misc.c
==============================================================================
--- branches/dynop_mapping/src/interp/inter_misc.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/interp/inter_misc.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -224,22 +224,8 @@
         ret = Parrot_gc_impatient_pmcs(interp);
         break;
       case CURRENT_RUNCORE:
-        {
-            STRING *name = interp->run_core->name;
-
-            if (Parrot_str_equal(interp, name, CONST_STRING(interp, "slow")))
-                return PARROT_SLOW_CORE;
-            else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "fast")))
-                return PARROT_FAST_CORE;
-            else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "switch")))
-                return PARROT_EXEC_CORE;
-            else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "gc_debug")))
-                return PARROT_GC_DEBUG_CORE;
-            else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "debugger")))
-                return PARROT_DEBUGGER_CORE;
-            else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "profiling")))
-                return PARROT_PROFILING_CORE;
-        }
+        ret = interp->run_core->id;
+        break;
       default:        /* or a warning only? */
         ret = -1;
         Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,

Modified: branches/dynop_mapping/src/io/api.c
==============================================================================
--- branches/dynop_mapping/src/io/api.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/io/api.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -133,8 +133,7 @@
 
     flags = Parrot_io_parse_open_flags(interp, mode);
     if (new_filehandle->vtable->base_type == typenum) {
-        /* TODO: StringHandle may have a null path, but a filehandle really
-           shouldn't allow that. */
+        /* TODO: a filehandle shouldn't allow a NULL path. */
         PARROT_ASSERT(new_filehandle->vtable->base_type == typenum);
         filehandle = PIO_OPEN(interp, new_filehandle, path, flags);
         if (PMC_IS_NULL(filehandle))
@@ -146,10 +145,6 @@
         SETATTR_FileHandle_mode(interp, new_filehandle, mode);
         Parrot_io_setbuf(interp, filehandle, PIO_UNBOUND);
     }
-    else if (new_filehandle->vtable->base_type == enum_class_StringHandle) {
-        SETATTR_StringHandle_flags(interp, pmc, flags);
-        filehandle = pmc;
-    }
     else
         Parrot_pcc_invoke_method_from_c_args(interp, new_filehandle, CONST_STRING(interp, "open"), "SS->P", path, mode, &filehandle);
     return filehandle;
@@ -223,9 +218,6 @@
         result = Parrot_io_close_filehandle(interp, pmc);
         SETATTR_FileHandle_flags(interp, pmc, 0);
     }
-    else if (pmc->vtable->base_type == enum_class_StringHandle) {
-        SETATTR_StringHandle_read_offset(interp, pmc, 0);
-    }
     else
         Parrot_pcc_invoke_method_from_c_args(interp, pmc, CONST_STRING(interp, "close"), "->I", &result);
 
@@ -276,11 +268,6 @@
         return 1;
     if (pmc->vtable->base_type == enum_class_FileHandle)
         result = Parrot_io_is_closed_filehandle(interp, pmc);
-    else if (pmc->vtable->base_type == enum_class_StringHandle) {
-        STRING *stringhandle;
-        GETATTR_StringHandle_stringhandle(interp, pmc, stringhandle);
-        result = STRING_IS_NULL(stringhandle);
-    }
     else
         Parrot_pcc_invoke_method_from_c_args(interp, pmc, CONST_STRING(interp, "is_closed"), "->I", &result);
 

Modified: branches/dynop_mapping/src/key.c
==============================================================================
--- branches/dynop_mapping/src/key.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/key.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -379,6 +379,7 @@
 
 */
 
+PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 STRING *

Modified: branches/dynop_mapping/src/nci/extra_thunks.c
==============================================================================
--- branches/dynop_mapping/src/nci/extra_thunks.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/nci/extra_thunks.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -45,7 +45,7 @@
     typedef void(* func_t)(PARROT_INTERP);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -66,7 +66,7 @@
     typedef int(* func_t)(int, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -89,7 +89,7 @@
     typedef int(* func_t)(PARROT_INTERP, PMC *, int, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -115,7 +115,7 @@
     typedef int(* func_t)(PARROT_INTERP, void *, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -139,7 +139,7 @@
     typedef int(* func_t)(PARROT_INTERP, void *, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -165,7 +165,7 @@
     typedef int(* func_t)(void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -186,7 +186,7 @@
     typedef int(* func_t)(char *, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -209,7 +209,7 @@
     typedef void *(* func_t)(PARROT_INTERP);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -235,7 +235,7 @@
     typedef void *(* func_t)(PARROT_INTERP, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -262,7 +262,7 @@
     typedef char *(* func_t)(PARROT_INTERP);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -285,7 +285,7 @@
     typedef char *(* func_t)(PARROT_INTERP, void *, char *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -313,7 +313,7 @@
     typedef char *(* func_t)(void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -336,7 +336,7 @@
     typedef char *(* func_t)(void *, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -361,7 +361,7 @@
     typedef void(* func_t)(void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -382,7 +382,7 @@
     typedef void(* func_t)(void *, int, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -407,7 +407,7 @@
     typedef void(* func_t)(void *, char *, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -432,7 +432,7 @@
     typedef void(* func_t)(PARROT_INTERP, char *, int, int, int, void *, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -464,7 +464,7 @@
     typedef void *(* func_t)(PARROT_INTERP, char *, char *, PMC *, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -497,7 +497,7 @@
     typedef PMC *(* func_t)(PARROT_INTERP, char *, void *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     PMC * return_data;
@@ -523,7 +523,7 @@
     typedef int(* func_t)(void **, void *, void *, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -550,7 +550,7 @@
     typedef void(* func_t)(PARROT_INTERP, void *, PMC *, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -576,7 +576,7 @@
     typedef void(* func_t)(void *, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -599,7 +599,7 @@
     typedef void(* func_t)(PARROT_INTERP, void *, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -623,7 +623,7 @@
     typedef void(* func_t)(void);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -642,7 +642,7 @@
     typedef void(* func_t)(PARROT_INTERP, int, int, int, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -670,7 +670,7 @@
     typedef void(* func_t)(int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -691,7 +691,7 @@
     typedef void(* func_t)(int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -714,7 +714,7 @@
     typedef void(* func_t)(int, long, long, long, long, long, long, long, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -751,7 +751,7 @@
     typedef void(* func_t)(long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -772,7 +772,7 @@
     typedef void(* func_t)(void *, void *, int, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -799,7 +799,7 @@
     typedef void(* func_t)(void *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -822,7 +822,7 @@
     typedef void(* func_t)(void *, int, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -851,7 +851,7 @@
     typedef void(* func_t)(void *, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -874,7 +874,7 @@
     typedef void(* func_t)(void *, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -897,7 +897,7 @@
     typedef int(* func_t)(PARROT_INTERP, PMC *, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -921,7 +921,7 @@
     typedef PMC *(* func_t)(PARROT_INTERP, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     PMC * return_data;
@@ -943,7 +943,7 @@
     typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     PMC * return_data;
@@ -967,7 +967,7 @@
     typedef PMC *(* func_t)(PARROT_INTERP, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     PMC * return_data;
@@ -989,7 +989,7 @@
     typedef STRING *(* func_t)(PARROT_INTERP, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     STRING * return_data;
@@ -1011,7 +1011,7 @@
     typedef int(* func_t)(PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -1032,7 +1032,7 @@
     typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     PMC * return_data;
@@ -1058,7 +1058,7 @@
     typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     PMC * return_data;
@@ -1086,7 +1086,7 @@
     typedef void(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -1112,7 +1112,7 @@
     typedef void(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -1140,7 +1140,7 @@
     typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *, PMC *, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     PMC * return_data;
@@ -1170,7 +1170,7 @@
     typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *, PMC *, PMC *, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     PMC * return_data;
@@ -1202,7 +1202,7 @@
     typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, STRING *, INTVAL);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -1228,7 +1228,7 @@
     typedef PMC *(* func_t)(PARROT_INTERP, PMC *, STRING *, INTVAL, INTVAL);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     PMC * return_data;
@@ -1256,7 +1256,7 @@
     typedef char *(* func_t)(void *, int *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -1281,7 +1281,7 @@
     typedef int(* func_t)(void *, void *, int *, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -1308,7 +1308,7 @@
     typedef int(* func_t)(void *, void *, int *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -1333,7 +1333,7 @@
     typedef int(* func_t)(void *, void *, double);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -1358,7 +1358,7 @@
     typedef int(* func_t)(void *, char *, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -1385,7 +1385,7 @@
     typedef int(* func_t)(void *, int, void *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -1412,7 +1412,7 @@
     typedef char *(* func_t)(void *, char *, char *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -1441,7 +1441,7 @@
     typedef char *(* func_t)(void *, char *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -1468,7 +1468,7 @@
     typedef char *(* func_t)(void *, char *, char *, char *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -1499,7 +1499,7 @@
     typedef void *(* func_t)(PARROT_INTERP, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -1526,7 +1526,7 @@
     typedef void *(* func_t)(PARROT_INTERP, int, void *, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -1557,7 +1557,7 @@
     typedef void *(* func_t)(PARROT_INTERP, void *, int, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -1588,7 +1588,7 @@
     typedef void(* func_t)(PARROT_INTERP, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -1610,7 +1610,7 @@
     typedef void(* func_t)(PARROT_INTERP, STRING *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -1632,7 +1632,7 @@
     typedef char *(* func_t)(char *, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -1657,7 +1657,7 @@
     typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -1681,7 +1681,7 @@
     typedef void(* func_t)(PARROT_INTERP, PMC *, STRING *, INTVAL);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -1707,7 +1707,7 @@
     typedef STRING *(* func_t)(PARROT_INTERP, PMC *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     STRING * return_data;
@@ -1731,7 +1731,7 @@
     typedef void(* func_t)(PARROT_INTERP, PMC *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -1755,7 +1755,7 @@
     typedef INTVAL(* func_t)(PARROT_INTERP, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -1777,7 +1777,7 @@
     typedef FLOATVAL(* func_t)(PARROT_INTERP, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     FLOATVAL return_data;
@@ -1799,7 +1799,7 @@
     typedef void(* func_t)(PARROT_INTERP, PMC *, FLOATVAL);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -1823,7 +1823,7 @@
     typedef PMC *(* func_t)(PARROT_INTERP, PMC *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     PMC * return_data;
@@ -1847,7 +1847,7 @@
     typedef void(* func_t)(PARROT_INTERP, PMC *, INTVAL);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -1871,7 +1871,7 @@
     typedef PMC *(* func_t)(PARROT_INTERP, PMC *, INTVAL);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     PMC * return_data;
@@ -1895,7 +1895,7 @@
     typedef PMC *(* func_t)(PARROT_INTERP, PMC *, INTVAL, STRING *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     PMC * return_data;
@@ -1921,7 +1921,7 @@
     typedef STRING *(* func_t)(PARROT_INTERP, PMC *, STRING *, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     STRING * return_data;
@@ -1947,7 +1947,7 @@
     typedef int(* func_t)(void);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -1966,7 +1966,7 @@
     typedef int(* func_t)(int, int *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -1991,7 +1991,7 @@
     typedef int(* func_t)(int, void *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2016,7 +2016,7 @@
     typedef long(* func_t)(long, char *, char *, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2043,7 +2043,7 @@
     typedef int(* func_t)(void *, int, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2068,7 +2068,7 @@
     typedef int(* func_t)(void *, int, STRING *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2093,7 +2093,7 @@
     typedef STRING *(* func_t)(int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     STRING * return_data;
@@ -2114,7 +2114,7 @@
     typedef long(* func_t)(void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2135,7 +2135,7 @@
     typedef char(* func_t)(void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2156,7 +2156,7 @@
     typedef void *(* func_t)(void *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -2184,7 +2184,7 @@
     typedef void *(* func_t)(void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -2210,7 +2210,7 @@
     typedef int(* func_t)(void *, char *, char *, char *, char *, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2241,7 +2241,7 @@
     typedef char(* func_t)(void *, char *, char *, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2268,7 +2268,7 @@
     typedef void *(* func_t)(void *, char *, char *, char *, char *, int, char *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -2308,7 +2308,7 @@
     typedef int(* func_t)(void *, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2331,7 +2331,7 @@
     typedef int(* func_t)(void *, char *, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2356,7 +2356,7 @@
     typedef int(* func_t)(void *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2379,7 +2379,7 @@
     typedef int(* func_t)(void *, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2402,7 +2402,7 @@
     typedef long(* func_t)(void);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2421,7 +2421,7 @@
     typedef void *(* func_t)(void *, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -2449,7 +2449,7 @@
     typedef void *(* func_t)(void *, char *, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -2479,7 +2479,7 @@
     typedef int(* func_t)(void *, int, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2504,7 +2504,7 @@
     typedef void *(* func_t)(void *, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -2532,7 +2532,7 @@
     typedef long(* func_t)(char *, char *, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2557,7 +2557,7 @@
     typedef long(* func_t)(void *, char *, char *, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2584,7 +2584,7 @@
     typedef void(* func_t)(char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -2605,7 +2605,7 @@
     typedef void *(* func_t)(void *, char *, char *, char *, char *, int, char *, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -2645,7 +2645,7 @@
     typedef void *(* func_t)(char *, int, char **, int *, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -2679,7 +2679,7 @@
     typedef void *(* func_t)(char *, int, void *, int *, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -2713,7 +2713,7 @@
     typedef int(* func_t)(void *, PMC *, char *, int, int, int, void *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2748,7 +2748,7 @@
     typedef int(* func_t)(char *, void *, int, int, void *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -2779,7 +2779,7 @@
     typedef void *(* func_t)(void *, char *, int, void *, void *, void *, void *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -2819,7 +2819,7 @@
     typedef void *(* func_t)(void *, int, int *, int *, int, void *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -2857,7 +2857,7 @@
     typedef void *(* func_t)(void *, char *, char *, int, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -2891,7 +2891,7 @@
     typedef void *(* func_t)(void *, char *, int, void *, void *, void *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -2929,7 +2929,7 @@
     typedef void *(* func_t)(void *, void *, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -2959,7 +2959,7 @@
     typedef void *(* func_t)(int, int, int, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -2991,7 +2991,7 @@
     typedef int(* func_t)(void *, void *, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3016,7 +3016,7 @@
     typedef void(* func_t)(void *, int, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -3041,7 +3041,7 @@
     typedef void *(* func_t)(void *, char *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -3071,7 +3071,7 @@
     typedef int(* func_t)(void *, void *, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3096,7 +3096,7 @@
     typedef void *(* func_t)(void *, char *, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -3128,7 +3128,7 @@
     typedef void *(* func_t)(char *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -3156,7 +3156,7 @@
     typedef void *(* func_t)(void *, char *, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -3186,7 +3186,7 @@
     typedef int(* func_t)(void *, char *, int *, int *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3213,7 +3213,7 @@
     typedef char(* func_t)(void);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3232,7 +3232,7 @@
     typedef char(* func_t)(void *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3255,7 +3255,7 @@
     typedef double(* func_t)(void);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     FLOATVAL return_data;
@@ -3274,7 +3274,7 @@
     typedef double(* func_t)(double);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     FLOATVAL return_data;
@@ -3295,7 +3295,7 @@
     typedef float(* func_t)(void);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     FLOATVAL return_data;
@@ -3314,7 +3314,7 @@
     typedef float(* func_t)(float, float);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     FLOATVAL return_data;
@@ -3337,7 +3337,7 @@
     typedef float(* func_t)(int, short);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     FLOATVAL return_data;
@@ -3360,7 +3360,7 @@
     typedef int(* func_t)(void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3381,7 +3381,7 @@
     typedef int(* func_t)(double);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3402,7 +3402,7 @@
     typedef int(* func_t)(int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3423,7 +3423,7 @@
     typedef int(* func_t)(int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3446,7 +3446,7 @@
     typedef int(* func_t)(int, int, long *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3471,7 +3471,7 @@
     typedef int(* func_t)(int, int, long *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3498,7 +3498,7 @@
     typedef int(* func_t)(int, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3525,7 +3525,7 @@
     typedef int(* func_t)(int, int, int, long, short, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3556,7 +3556,7 @@
     typedef int(* func_t)(int, int, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3581,7 +3581,7 @@
     typedef int(* func_t)(int, int, long, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3608,7 +3608,7 @@
     typedef int(* func_t)(int, int, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3633,7 +3633,7 @@
     typedef int(* func_t)(int, int, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3658,7 +3658,7 @@
     typedef int(* func_t)(int, int, char *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3685,7 +3685,7 @@
     typedef int(* func_t)(int, long, short, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3712,7 +3712,7 @@
     typedef int(* func_t)(int, char *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3737,7 +3737,7 @@
     typedef int(* func_t)(long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3758,7 +3758,7 @@
     typedef int(* func_t)(long, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3781,7 +3781,7 @@
     typedef int(* func_t)(long, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3804,7 +3804,7 @@
     typedef int(* func_t)(long, short, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3829,7 +3829,7 @@
     typedef int(* func_t)(void *, int *, int *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3854,7 +3854,7 @@
     typedef int(* func_t)(void *, int *, int *, int *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3881,7 +3881,7 @@
     typedef int(* func_t)(void *, int *, int *, int *, int *, int *, int *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3914,7 +3914,7 @@
     typedef int(* func_t)(void *, long *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3937,7 +3937,7 @@
     typedef int(* func_t)(void *, long *, short *, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3964,7 +3964,7 @@
     typedef int(* func_t)(void *, long *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -3989,7 +3989,7 @@
     typedef int(* func_t)(void *, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4012,7 +4012,7 @@
     typedef int(* func_t)(void *, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4037,7 +4037,7 @@
     typedef int(* func_t)(void *, int, int, long *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4064,7 +4064,7 @@
     typedef int(* func_t)(void *, int, int, long *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4093,7 +4093,7 @@
     typedef int(* func_t)(void *, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4120,7 +4120,7 @@
     typedef int(* func_t)(void *, int, int, int, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4153,7 +4153,7 @@
     typedef int(* func_t)(void *, int, int, int, long, short, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4186,7 +4186,7 @@
     typedef int(* func_t)(void *, int, int, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4213,7 +4213,7 @@
     typedef int(* func_t)(void *, int, int, long, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4242,7 +4242,7 @@
     typedef int(* func_t)(void *, int, int, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4269,7 +4269,7 @@
     typedef int(* func_t)(void *, int, int, char *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4298,7 +4298,7 @@
     typedef int(* func_t)(void *, int, long, short, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4327,7 +4327,7 @@
     typedef int(* func_t)(void *, long, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4352,7 +4352,7 @@
     typedef int(* func_t)(void *, long, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4377,7 +4377,7 @@
     typedef int(* func_t)(void *, long, long, long, long, long, long, long, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4414,7 +4414,7 @@
     typedef int(* func_t)(void *, long, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4439,7 +4439,7 @@
     typedef int(* func_t)(void *, long, short, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4466,7 +4466,7 @@
     typedef int(* func_t)(void *, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4489,7 +4489,7 @@
     typedef int(* func_t)(void *, void *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4514,7 +4514,7 @@
     typedef int(* func_t)(void *, void *, int, int, int, int, int, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4553,7 +4553,7 @@
     typedef int(* func_t)(void *, void *, void *, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4580,7 +4580,7 @@
     typedef int(* func_t)(void *, short, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4605,7 +4605,7 @@
     typedef int(* func_t)(void *, char *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4630,7 +4630,7 @@
     typedef int(* func_t)(void *, int, char *, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4657,7 +4657,7 @@
     typedef int(* func_t)(short);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4678,7 +4678,7 @@
     typedef int(* func_t)(short, short *, short *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4703,7 +4703,7 @@
     typedef int(* func_t)(short, short *, short *, short *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4730,7 +4730,7 @@
     typedef int(* func_t)(short, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4753,7 +4753,7 @@
     typedef int(* func_t)(short, short, short);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4778,7 +4778,7 @@
     typedef int(* func_t)(short, short, short, short);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4805,7 +4805,7 @@
     typedef int(* func_t)(char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4826,7 +4826,7 @@
     typedef int(* func_t)(char *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4849,7 +4849,7 @@
     typedef int(* func_t)(long *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4870,7 +4870,7 @@
     typedef int(* func_t)(long *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4893,7 +4893,7 @@
     typedef int(* func_t)(long *, short *, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4918,7 +4918,7 @@
     typedef long(* func_t)(int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4941,7 +4941,7 @@
     typedef long(* func_t)(long, long *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4964,7 +4964,7 @@
     typedef long(* func_t)(void *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -4987,7 +4987,7 @@
     typedef long(* func_t)(void *, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -5012,7 +5012,7 @@
     typedef long(* func_t)(void *, int *, int *, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -5039,7 +5039,7 @@
     typedef long(* func_t)(int *, int *, long);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -5064,7 +5064,7 @@
     typedef void *(* func_t)(void);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5088,7 +5088,7 @@
     typedef void *(* func_t)(char **);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5114,7 +5114,7 @@
     typedef void *(* func_t)(void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5140,7 +5140,7 @@
     typedef void *(* func_t)(PARROT_INTERP, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5167,7 +5167,7 @@
     typedef void *(* func_t)(int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5193,7 +5193,7 @@
     typedef void *(* func_t)(int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5221,7 +5221,7 @@
     typedef void *(* func_t)(int, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5253,7 +5253,7 @@
     typedef void *(* func_t)(int, int, int, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5289,7 +5289,7 @@
     typedef void *(* func_t)(int, int, int, int, int, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5329,7 +5329,7 @@
     typedef void *(* func_t)(void *, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5359,7 +5359,7 @@
     typedef void *(* func_t)(void *, int, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5393,7 +5393,7 @@
     typedef void *(* func_t)(char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5419,7 +5419,7 @@
     typedef void *(* func_t)(char *, void *, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5449,7 +5449,7 @@
     typedef void *(* func_t)(char *, char *, char *, char *, char *, char *, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5487,7 +5487,7 @@
     typedef short(* func_t)(void);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -5506,7 +5506,7 @@
     typedef char *(* func_t)(void);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -5527,7 +5527,7 @@
     typedef char *(* func_t)(int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -5550,7 +5550,7 @@
     typedef char *(* func_t)(int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -5575,7 +5575,7 @@
     typedef char *(* func_t)(void *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -5600,7 +5600,7 @@
     typedef char *(* func_t)(void *, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -5627,7 +5627,7 @@
     typedef char *(* func_t)(char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -5650,7 +5650,7 @@
     typedef char *(* func_t)(char *, long, long *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -5677,7 +5677,7 @@
     typedef char *(* func_t)(char *, long *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -5702,7 +5702,7 @@
     typedef int(* func_t)(short, char);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -5725,7 +5725,7 @@
     typedef short(* func_t)(short, char);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -5748,7 +5748,7 @@
     typedef char(* func_t)(short, char);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -5771,7 +5771,7 @@
     typedef int(* func_t)(int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -5796,7 +5796,7 @@
     typedef int(* func_t)(int, int *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -5819,7 +5819,7 @@
     typedef char *(* func_t)(void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -5842,7 +5842,7 @@
     typedef char *(* func_t)(char **);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     char * return_data;
@@ -5865,7 +5865,7 @@
     typedef void(* func_t)(PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5886,7 +5886,7 @@
     typedef void(* func_t)(void *, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5909,7 +5909,7 @@
     typedef void *(* func_t)(int, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5937,7 +5937,7 @@
     typedef int(* func_t)(int *, int *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -5960,7 +5960,7 @@
     typedef void(* func_t)(void *, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -5985,7 +5985,7 @@
     typedef void(* func_t)(PARROT_INTERP, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -6007,7 +6007,7 @@
     typedef int(* func_t)(PARROT_INTERP, PMC *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6029,7 +6029,7 @@
     typedef int(* func_t)(PARROT_INTERP, PMC *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6053,7 +6053,7 @@
     typedef int(* func_t)(PARROT_INTERP, PMC *, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6077,7 +6077,7 @@
     typedef int(* func_t)(PARROT_INTERP, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6099,7 +6099,7 @@
     typedef int(* func_t)(PARROT_INTERP, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6121,7 +6121,7 @@
     typedef void(* func_t)(void **, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -6144,7 +6144,7 @@
     typedef void *(* func_t)(void *, void *, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -6178,7 +6178,7 @@
     typedef void *(* func_t)(void *, void *, int, int, int, int, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -6220,7 +6220,7 @@
     typedef int(* func_t)(void *, void *, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6247,7 +6247,7 @@
     typedef int(* func_t)(void *, void *, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6276,7 +6276,7 @@
     typedef int(* func_t)(void *, void *, int, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6307,7 +6307,7 @@
     typedef int(* func_t)(void *, void *, int, int, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6340,7 +6340,7 @@
     typedef int(* func_t)(void *, void *, int, int, int, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6375,7 +6375,7 @@
     typedef int(* func_t)(void *, void *, char *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6400,7 +6400,7 @@
     typedef int(* func_t)(void *, void *, void *, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6427,7 +6427,7 @@
     typedef int(* func_t)(void *, void *, void *, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6456,7 +6456,7 @@
     typedef int(* func_t)(void *, void *, void *, int, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6489,7 +6489,7 @@
     typedef int(* func_t)(void *, void *, void *, void *, int, int, int, int, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6528,7 +6528,7 @@
     typedef void(* func_t)(float, float, float);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -6553,7 +6553,7 @@
     typedef void(* func_t)(void **);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -6574,7 +6574,7 @@
     typedef void(* func_t)(void **, void **, void **);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     void * return_data;
@@ -6599,7 +6599,7 @@
     typedef int(* func_t)(char *, void **);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6622,7 +6622,7 @@
     typedef int(* func_t)(void *, char *, int, void **, void *);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6651,7 +6651,7 @@
     typedef int(* func_t)(void *, int, double);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;
@@ -6676,7 +6676,7 @@
     typedef int(* func_t)(void *, int, char *, int, int);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     INTVAL return_data;

Modified: branches/dynop_mapping/src/oo.c
==============================================================================
--- branches/dynop_mapping/src/oo.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/oo.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -438,7 +438,7 @@
         ARGIN(PMC *classobj), ARGIN(STRING *name))
 {
     ASSERT_ARGS(Parrot_oo_find_vtable_override_for_class)
-    const Parrot_Class_attributes * const class_info = PARROT_CLASS(classobj);;
+    const Parrot_Class_attributes * const class_info = PARROT_CLASS(classobj);
     PARROT_ASSERT(PObj_is_class_TEST(classobj));
 
     return VTABLE_get_pmc_keyed_str(interp, class_info->vtable_overrides, name);

Modified: branches/dynop_mapping/src/ops/core.ops
==============================================================================
--- branches/dynop_mapping/src/ops/core.ops	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/ops/core.ops	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1253,7 +1253,6 @@
 }
 
 op dlfunc(out PMC, invar PMC, in STR, in STR) {
-    char * const  name      = Parrot_str_to_cstring(interp, ($3));
     void         *dl_handle = NULL;
     void         *ptr       = NULL;
     funcptr_t     p;
@@ -1264,24 +1263,22 @@
         dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data($2))->dl_handle;
     }
 
-    ptr = Parrot_dlsym(dl_handle, name);
+    ptr = Parrot_dlsym_str(interp, dl_handle, $3);
     p = D2FPTR(ptr);
 
     if (p == NULLfunc) {
         const char * err = Parrot_dlerror();
         Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
-                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+                "Symbol '%Ss' not found: %s\n", $3, err ? err : "unknown reason");
         $1 = Parrot_pmc_new(interp, enum_class_Undef);
     }
     else {
         $1 = Parrot_pmc_new(interp, enum_class_NCI);
         VTABLE_set_pointer_keyed_str(interp, $1, $4, F2DPTR(p));
     }
-    Parrot_str_free_cstring(name);
 }
 
 op dlvar(out PMC, invar PMC, in STR) {
-    char * const  name      = Parrot_str_to_cstring(interp, ($3));
     void *        dl_handle = NULL;
     void *        p         = NULL;
 
@@ -1291,12 +1288,12 @@
         dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data($2))->dl_handle;
     }
 
-    p = Parrot_dlsym(dl_handle, name);
+    p = Parrot_dlsym_str(interp, dl_handle, $3);
 
     if (p == NULL) {
         const char * const err = Parrot_dlerror();
         Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
-                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+                "Symbol '%Ss' not found: %s\n", $3, err ? err : "unknown reason");
         $1 = Parrot_pmc_new(interp, enum_class_Undef);
     }
     else {
@@ -1305,7 +1302,6 @@
         $1 = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
         VTABLE_set_pointer(interp, $1, p);
     }
-    Parrot_str_free_cstring(name);
 }
 
 inline op compreg(in STR, invar PMC) {

Modified: branches/dynop_mapping/src/ops/core_ops.c
==============================================================================
--- branches/dynop_mapping/src/ops/core_ops.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/ops/core_ops.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -16211,7 +16211,6 @@
 opcode_t *
 Parrot_dlfunc_p_p_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    char * const  name      = Parrot_str_to_cstring(interp, (SREG(3)));
     void         *dl_handle = NULL;
     void         *ptr       = NULL;
     funcptr_t     p;
@@ -16222,27 +16221,25 @@
         dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
     }
 
-    ptr = Parrot_dlsym(dl_handle, name);
+    ptr = Parrot_dlsym_str(interp, dl_handle, SREG(3));
     p = D2FPTR(ptr);
 
     if (p == NULLfunc) {
         const char * err = Parrot_dlerror();
         Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
-                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+                "Symbol '%Ss' not found: %s\n", SREG(3), err ? err : "unknown reason");
         PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
     }
     else {
         PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
         VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p));
     }
-    Parrot_str_free_cstring(name);
 
 return (opcode_t *)cur_opcode + 5;}
 
 opcode_t *
 Parrot_dlfunc_p_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    char * const  name      = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
     void         *dl_handle = NULL;
     void         *ptr       = NULL;
     funcptr_t     p;
@@ -16253,27 +16250,25 @@
         dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
     }
 
-    ptr = Parrot_dlsym(dl_handle, name);
+    ptr = Parrot_dlsym_str(interp, dl_handle, CONST(3)->u.string);
     p = D2FPTR(ptr);
 
     if (p == NULLfunc) {
         const char * err = Parrot_dlerror();
         Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
-                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+                "Symbol '%Ss' not found: %s\n", CONST(3)->u.string, err ? err : "unknown reason");
         PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
     }
     else {
         PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
         VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p));
     }
-    Parrot_str_free_cstring(name);
 
 return (opcode_t *)cur_opcode + 5;}
 
 opcode_t *
 Parrot_dlfunc_p_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    char * const  name      = Parrot_str_to_cstring(interp, (SREG(3)));
     void         *dl_handle = NULL;
     void         *ptr       = NULL;
     funcptr_t     p;
@@ -16284,27 +16279,25 @@
         dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
     }
 
-    ptr = Parrot_dlsym(dl_handle, name);
+    ptr = Parrot_dlsym_str(interp, dl_handle, SREG(3));
     p = D2FPTR(ptr);
 
     if (p == NULLfunc) {
         const char * err = Parrot_dlerror();
         Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
-                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+                "Symbol '%Ss' not found: %s\n", SREG(3), err ? err : "unknown reason");
         PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
     }
     else {
         PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
         VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4)->u.string, F2DPTR(p));
     }
-    Parrot_str_free_cstring(name);
 
 return (opcode_t *)cur_opcode + 5;}
 
 opcode_t *
 Parrot_dlfunc_p_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    char * const  name      = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
     void         *dl_handle = NULL;
     void         *ptr       = NULL;
     funcptr_t     p;
@@ -16315,27 +16308,25 @@
         dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
     }
 
-    ptr = Parrot_dlsym(dl_handle, name);
+    ptr = Parrot_dlsym_str(interp, dl_handle, CONST(3)->u.string);
     p = D2FPTR(ptr);
 
     if (p == NULLfunc) {
         const char * err = Parrot_dlerror();
         Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
-                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+                "Symbol '%Ss' not found: %s\n", CONST(3)->u.string, err ? err : "unknown reason");
         PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
     }
     else {
         PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
         VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4)->u.string, F2DPTR(p));
     }
-    Parrot_str_free_cstring(name);
 
 return (opcode_t *)cur_opcode + 5;}
 
 opcode_t *
 Parrot_dlvar_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    char * const  name      = Parrot_str_to_cstring(interp, (SREG(3)));
     void *        dl_handle = NULL;
     void *        p         = NULL;
 
@@ -16345,12 +16336,12 @@
         dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
     }
 
-    p = Parrot_dlsym(dl_handle, name);
+    p = Parrot_dlsym_str(interp, dl_handle, SREG(3));
 
     if (p == NULL) {
         const char * const err = Parrot_dlerror();
         Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
-                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+                "Symbol '%Ss' not found: %s\n", SREG(3), err ? err : "unknown reason");
         PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
     }
     else {
@@ -16359,14 +16350,12 @@
         PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
         VTABLE_set_pointer(interp, PREG(1), p);
     }
-    Parrot_str_free_cstring(name);
 
 return (opcode_t *)cur_opcode + 4;}
 
 opcode_t *
 Parrot_dlvar_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    char * const  name      = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
     void *        dl_handle = NULL;
     void *        p         = NULL;
 
@@ -16376,12 +16365,12 @@
         dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
     }
 
-    p = Parrot_dlsym(dl_handle, name);
+    p = Parrot_dlsym_str(interp, dl_handle, CONST(3)->u.string);
 
     if (p == NULL) {
         const char * const err = Parrot_dlerror();
         Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
-                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+                "Symbol '%Ss' not found: %s\n", CONST(3)->u.string, err ? err : "unknown reason");
         PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
     }
     else {
@@ -16390,7 +16379,6 @@
         PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
         VTABLE_set_pointer(interp, PREG(1), p);
     }
-    Parrot_str_free_cstring(name);
 
 return (opcode_t *)cur_opcode + 4;}
 
@@ -19003,7 +18991,7 @@
             "Divide by zero");return (opcode_t *)handler;
     }
 
-    f  = floor(IREG(1) / den);
+    f  = floor(((FLOATVAL)IREG(1)) / den);
     IREG(1) = (INTVAL)f;
 
 return (opcode_t *)cur_opcode + 3;}
@@ -19020,7 +19008,7 @@
             "Divide by zero");return (opcode_t *)handler;
     }
 
-    f  = floor(IREG(1) / den);
+    f  = floor(((FLOATVAL)IREG(1)) / den);
     IREG(1) = (INTVAL)f;
 
 return (opcode_t *)cur_opcode + 3;}
@@ -19098,7 +19086,7 @@
             "Divide by zero");return (opcode_t *)handler;
     }
 
-    f  = floor(IREG(2) / den);
+    f  = floor((FLOATVAL)IREG(2) / den);
     IREG(1) = (INTVAL)f;
 
 return (opcode_t *)cur_opcode + 4;}
@@ -19115,7 +19103,7 @@
             "Divide by zero");return (opcode_t *)handler;
     }
 
-    f  = floor(cur_opcode[2] / den);
+    f  = floor((FLOATVAL)cur_opcode[2] / den);
     IREG(1) = (INTVAL)f;
 
 return (opcode_t *)cur_opcode + 4;}
@@ -19132,7 +19120,7 @@
             "Divide by zero");return (opcode_t *)handler;
     }
 
-    f  = floor(IREG(2) / den);
+    f  = floor((FLOATVAL)IREG(2) / den);
     IREG(1) = (INTVAL)f;
 
 return (opcode_t *)cur_opcode + 4;}
@@ -26114,7 +26102,7 @@
   PARROT_FUNCTION_CORE,                       /* core_type = PARROT_XX_CORE */
   0,                                /* flags */
   2,    /* major_version */
-  5,    /* minor_version */
+  6,    /* minor_version */
   0,    /* patch_version */
   1083,             /* op_count */
   core_op_info_table,       /* op_info_table */
@@ -26234,7 +26222,7 @@
     }
 }
 op_lib_t *
-Parrot_DynOp_core_2_5_0(PARROT_INTERP, long init) {
+Parrot_DynOp_core_2_6_0(PARROT_INTERP, long init) {
     /* initialize and return op_lib ptr */
     if (init == 1) {
 
@@ -26263,7 +26251,7 @@
 
 {
     PMC *const lib = Parrot_pmc_new(interp, enum_class_ParrotLibrary);
-    ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) Parrot_DynOp_core_2_5_0;
+    ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) Parrot_DynOp_core_2_6_0;
     dynop_register(interp, lib);
     return lib;
 }

Modified: branches/dynop_mapping/src/ops/math.ops
==============================================================================
--- branches/dynop_mapping/src/ops/math.ops	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/ops/math.ops	Tue Aug  3 02:53:14 2010	(r48260)
@@ -299,7 +299,7 @@
         goto ADDRESS(handler);
     }
 
-    f  = floor($1 / den);
+    f  = floor(((FLOATVAL)$1) / den);
     $1 = (INTVAL)f;
 }
 
@@ -337,7 +337,7 @@
         goto ADDRESS(handler);
     }
 
-    f  = floor($2 / den);
+    f  = floor((FLOATVAL)$2 / den);
     $1 = (INTVAL)f;
 }
 

Modified: branches/dynop_mapping/src/packfile.c
==============================================================================
--- branches/dynop_mapping/src/packfile.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/packfile.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -736,7 +736,7 @@
     Parrot_pcc_set_constants(interp, CURRENT_CONTEXT(interp),
             interp->code->const_table->constants);
 
-    Parrot_pcc_invoke_sub_from_c_args(interp, sub_pmc, "->P", &retval);
+    Parrot_ext_call(interp, sub_pmc, "->P", &retval);
     interp->run_core = old_core;
 
     return retval;
@@ -857,18 +857,20 @@
     opcode_t i;
 
     for (i = 0; i < ct->const_count; ++i) {
-        PMC    * pmc;
-        STRING * string;
         switch (constants[i]->type) {
           case PFC_PMC:
           case PFC_KEY:
-            pmc = constants[i]->u.key;
+          {
+            PMC * const pmc = constants[i]->u.key;
             Parrot_gc_mark_PMC_alive(interp, pmc);
             break;
+          }
           case PFC_STRING:
-            string = constants[i]->u.string;
+          {
+            STRING * const string = constants[i]->u.string;
             Parrot_gc_mark_STRING_alive(interp, string);
             break;
+           }
           default:
             /* Do nothing. */
             break;
@@ -894,6 +896,9 @@
                                ARGIN_NULLOK(void *user_data))
 {
     ASSERT_ARGS(find_const_iter)
+
+    Parrot_gc_mark_STRING_alive(interp, seg->name);
+
     if (seg->type == PF_DIR_SEG)
         PackFile_map_segments(interp, (const PackFile_Directory *)seg,
                 find_const_iter, user_data);
@@ -919,18 +924,18 @@
 mark_const_subs(PARROT_INTERP)
 {
     ASSERT_ARGS(mark_const_subs)
-    PackFile_Directory *dir;
 
     PackFile * const self = interp->initial_pf;
 
     if (!self)
         return;
+    else {
+        /* locate top level dir */
+        PackFile_Directory * const dir = &self->directory;
 
-    /* locate top level dir */
-    dir = &self->directory;
-
-    /* iterate over all dir/segs */
-    PackFile_map_segments(interp, dir, find_const_iter, NULL);
+        /* iterate over all dir/segs */
+        PackFile_map_segments(interp, dir, find_const_iter, NULL);
+    }
 }
 
 

Modified: branches/dynop_mapping/src/pmc/capture.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/capture.pmc	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/pmc/capture.pmc	Tue Aug  3 02:53:14 2010	(r48260)
@@ -22,17 +22,21 @@
 /* HEADERIZER BEGIN: static */
 /* HEADERIZER END: static */
 
-#define CAPTURE_array_CREATE(i, obj) \
+#define CAPTURE_array_CREATE(i, obj, arr) \
     do { \
-        GETATTR_Capture_array((i), (obj), array); \
-        if (!array) \
-            SETATTR_Capture_array((i), (obj), Parrot_pmc_new((i), enum_class_ResizablePMCArray)); \
+        GETATTR_Capture_array((i), (obj), (arr)); \
+        if (!(arr)) { \
+            (arr) = Parrot_pmc_new((i), enum_class_ResizablePMCArray); \
+            SETATTR_Capture_array((i), (obj), (arr)); \
+        } \
     } while (0)
-#define CAPTURE_hash_CREATE(i, obj) \
+#define CAPTURE_hash_CREATE(i, obj, hsh) \
     do { \
-        GETATTR_Capture_hash((i), (obj), hash); \
-        if (!hash) \
-            SETATTR_Capture_hash((i), (obj),  Parrot_pmc_new((i), enum_class_Hash)); \
+        GETATTR_Capture_hash((i), (obj), (hsh)); \
+        if (!(hsh)) { \
+            (hsh) = Parrot_pmc_new((i), enum_class_Hash); \
+            SETATTR_Capture_hash((i), (obj), (hsh)); \
+        } \
     } while (0)
 
 pmclass Capture auto_attrs {
@@ -97,32 +101,28 @@
     VTABLE void set_number_keyed_int(INTVAL key, FLOATVAL value) {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         VTABLE_set_number_keyed_int(INTERP, array, key, value);
     }
 
     VTABLE void set_integer_keyed_int(INTVAL key, INTVAL value) {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         VTABLE_set_integer_keyed_int(INTERP, array, key, value);
     }
 
     VTABLE void set_pmc_keyed_int(INTVAL key, PMC *value) {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         VTABLE_set_pmc_keyed_int(INTERP, array, key, value);
     }
 
     VTABLE void set_string_keyed_int(INTVAL key, STRING *value) {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         VTABLE_set_string_keyed_int(INTERP, array, key, value);
     }
 
@@ -215,72 +215,56 @@
     VTABLE void push_float(FLOATVAL value) {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
-
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         VTABLE_push_float(INTERP, array, value);
     }
 
     VTABLE void push_integer(INTVAL value) {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
-
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         VTABLE_push_integer(INTERP, array, value);
     }
 
     VTABLE void push_pmc(PMC *value) {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
-
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         VTABLE_push_pmc(INTERP, array, value);
     }
 
     VTABLE void push_string(STRING *value) {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
-
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         VTABLE_push_string(INTERP, array, value);
     }
 
     VTABLE void unshift_float(FLOATVAL value) {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
-
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         VTABLE_unshift_float(INTERP, array, value);
     }
 
     VTABLE void unshift_integer(INTVAL value) {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
-
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         VTABLE_unshift_integer(INTERP, array, value);
     }
 
     VTABLE void unshift_pmc(PMC *value) {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
-
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         VTABLE_unshift_pmc(INTERP, array, value);
     }
 
     VTABLE void unshift_string(STRING *value) {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
-
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         VTABLE_unshift_string(INTERP, array, value);
     }
 
@@ -313,72 +297,56 @@
     VTABLE FLOATVAL pop_float() {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
-
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         return VTABLE_pop_float(INTERP, array);
     }
 
     VTABLE INTVAL pop_integer() {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
-
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         return VTABLE_pop_integer(INTERP, array);
     }
 
     VTABLE PMC *pop_pmc() {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
-
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         return VTABLE_pop_pmc(INTERP, array);
     }
 
     VTABLE STRING *pop_string() {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
-
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         return VTABLE_pop_string(INTERP, array);
     }
 
     VTABLE FLOATVAL shift_float() {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
-
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         return VTABLE_shift_float(INTERP, array);
     }
 
     VTABLE INTVAL shift_integer() {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
-
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         return VTABLE_shift_integer(INTERP, array);
     }
 
     VTABLE PMC *shift_pmc() {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
-
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         return VTABLE_shift_pmc(INTERP, array);
     }
 
     VTABLE STRING *shift_string() {
         PMC *array;
 
-        CAPTURE_array_CREATE(INTERP, SELF);
-        GET_ATTR_array(INTERP, SELF, array);
-
+        CAPTURE_array_CREATE(INTERP, SELF, array);
         return VTABLE_shift_string(INTERP, array);
     }
 
@@ -465,36 +433,28 @@
     VTABLE void set_number_keyed(PMC *key, FLOATVAL value) {
         PMC *hash;
 
-        CAPTURE_hash_CREATE(INTERP, SELF);
-        GET_ATTR_hash(INTERP, SELF, hash);
-
+        CAPTURE_hash_CREATE(INTERP, SELF, hash);
         VTABLE_set_number_keyed(INTERP, hash, key, value);
     }
 
     VTABLE void set_integer_keyed(PMC *key, INTVAL value) {
         PMC *hash;
 
-        CAPTURE_hash_CREATE(INTERP, SELF);
-        GET_ATTR_hash(INTERP, SELF, hash);
-
+        CAPTURE_hash_CREATE(INTERP, SELF, hash);
         VTABLE_set_integer_keyed(INTERP, hash, key, value);
     }
 
     VTABLE void set_pmc_keyed(PMC *key, PMC *value) {
         PMC *hash;
 
-        CAPTURE_hash_CREATE(INTERP, SELF);
-        GET_ATTR_hash(INTERP, SELF, hash);
-
+        CAPTURE_hash_CREATE(INTERP, SELF, hash);
         VTABLE_set_pmc_keyed(INTERP, hash, key, value);
     }
 
     VTABLE void set_string_keyed(PMC *key, STRING *value) {
         PMC *hash;
 
-        CAPTURE_hash_CREATE(INTERP, SELF);
-        GET_ATTR_hash(INTERP, SELF, hash);
-
+        CAPTURE_hash_CREATE(INTERP, SELF, hash);
         VTABLE_set_string_keyed(INTERP, hash, key, value);
     }
 
@@ -577,36 +537,28 @@
     VTABLE void set_number_keyed_str(STRING *key, FLOATVAL value) {
         PMC *hash;
 
-        CAPTURE_hash_CREATE(INTERP, SELF);
-        GET_ATTR_hash(INTERP, SELF, hash);
-
+        CAPTURE_hash_CREATE(INTERP, SELF, hash);
         VTABLE_set_number_keyed_str(INTERP, hash, key, value);
     }
 
     VTABLE void set_integer_keyed_str(STRING *key, INTVAL value) {
         PMC *hash;
 
-        CAPTURE_hash_CREATE(INTERP, SELF);
-        GET_ATTR_hash(INTERP, SELF, hash);
-
+        CAPTURE_hash_CREATE(INTERP, SELF, hash);
         VTABLE_set_integer_keyed_str(INTERP, hash, key, value);
     }
 
     VTABLE void set_pmc_keyed_str(STRING *key, PMC *value) {
         PMC *hash;
 
-        CAPTURE_hash_CREATE(INTERP, SELF);
-        GET_ATTR_hash(INTERP, SELF, hash);
-
+        CAPTURE_hash_CREATE(INTERP, SELF, hash);
         VTABLE_set_pmc_keyed_str(INTERP, hash, key, value);
     }
 
     VTABLE void set_string_keyed_str(STRING *key, STRING *value) {
         PMC *hash;
 
-        CAPTURE_hash_CREATE(INTERP, SELF);
-        GET_ATTR_hash(INTERP, SELF, hash);
-
+        CAPTURE_hash_CREATE(INTERP, SELF, hash);
         VTABLE_set_string_keyed_str(INTERP, hash, key, value);
     }
 
@@ -820,16 +772,14 @@
 */
 
     VTABLE void mark() {
-        PMC *array, *hash;
-
-        if (!PMC_data(SELF))
-            return;
-
-        GET_ATTR_array(INTERP, SELF, array);
-        GET_ATTR_hash(INTERP, SELF, hash);
+        if (PMC_data(SELF)) {
+            PMC *array, *hash;
+            GET_ATTR_array(INTERP, SELF, array);
+            GET_ATTR_hash(INTERP, SELF, hash);
 
-        Parrot_gc_mark_PMC_alive(INTERP, array);
-        Parrot_gc_mark_PMC_alive(INTERP, hash);
+            Parrot_gc_mark_PMC_alive(INTERP, array);
+            Parrot_gc_mark_PMC_alive(INTERP, hash);
+        }
     }
 
 /*
@@ -861,9 +811,7 @@
             capt              = VTABLE_get_attr_keyed(INTERP, SELF, classobj, attribute);
         }
 
-        CAPTURE_array_CREATE(INTERP, capt);
-        GET_ATTR_array(INTERP, capt, array);
-
+        CAPTURE_array_CREATE(INTERP, capt, array);
         RETURN(PMC *array);
     }
 
@@ -880,8 +828,7 @@
             capt                     = VTABLE_get_attr_keyed(INTERP, SELF, classobj, attribute);
         }
 
-        CAPTURE_hash_CREATE(INTERP, capt);
-        GET_ATTR_hash(INTERP, capt, hash);
+        CAPTURE_hash_CREATE(INTERP, capt, hash);
 
         RETURN(PMC *hash);
     }

Modified: branches/dynop_mapping/src/pmc/class.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/class.pmc	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/pmc/class.pmc	Tue Aug  3 02:53:14 2010	(r48260)
@@ -458,7 +458,7 @@
 
         if (!PMC_IS_NULL(meth)) {
             /* preserve current_object */
-            Parrot_pcc_invoke_sub_from_c_args(interp, meth, "Pi->", object);
+            Parrot_ext_call(interp, meth, "Pi->", object);
         }
     }
 }
@@ -487,8 +487,7 @@
         meth = Parrot_oo_find_vtable_override_for_class(interp, parent, name);
 
         if (!PMC_IS_NULL(meth))
-            Parrot_pcc_invoke_sub_from_c_args(interp, meth,
-                    "PiP->", object, init);
+            Parrot_ext_call(interp, meth, "PiP->", object, init);
     }
 }
 

Modified: branches/dynop_mapping/src/pmc/hash.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/hash.pmc	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/pmc/hash.pmc	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1104,7 +1104,7 @@
 */
 
     VTABLE void freeze(PMC *info) {
-        Hash     * const hash = (Hash *)SELF.get_pointer();;
+        Hash     * const hash = (Hash *)SELF.get_pointer();
 
         SUPER(info);
         VTABLE_push_integer(INTERP, info, VTABLE_elements(INTERP, SELF));

Modified: branches/dynop_mapping/src/pmc/key.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/key.pmc	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/pmc/key.pmc	Tue Aug  3 02:53:14 2010	(r48260)
@@ -388,6 +388,18 @@
     VTABLE STRING* get_repr() {
         return key_set_to_string(INTERP, SELF);
     }
+
+/*
+=item C<set_register(reg_no, type)>
+
+Set key to hold particular register.
+
+=cut
+*/
+    METHOD set_register(INTVAL reg_no, INTVAL reg_type) {
+        key_set_register(INTERP, SELF, reg_no, reg_type);
+    }
+
 }
 
 /*

Modified: branches/dynop_mapping/src/pmc/object.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/object.pmc	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/pmc/object.pmc	Tue Aug  3 02:53:14 2010	(r48260)
@@ -279,8 +279,7 @@
 
         if (!PMC_IS_NULL(method)) {
             STRING *result = NULL;
-            Parrot_pcc_invoke_sub_from_c_args(INTERP, method, "Pi->S",
-                    SELF, &result);
+            Parrot_ext_call(INTERP, method, "Pi->S", SELF, &result);
             return result;
         }
         else
@@ -329,8 +328,7 @@
 
         if (!PMC_IS_NULL(method)) {
             PMC *result = PMCNULL;
-            Parrot_pcc_invoke_sub_from_c_args(INTERP, method, "PiS->P",
-                    SELF, name, &result);
+            Parrot_ext_call(INTERP, method, "PiS->P", SELF, name, &result);
             return result;
         }
 
@@ -394,8 +392,7 @@
                 VTABLE_get_class(INTERP, SELF), vtable_meth_name);
 
         if (!PMC_IS_NULL(method)) {
-            Parrot_pcc_invoke_sub_from_c_args(INTERP, method, "PiSP->",
-                SELF, name, value);
+            Parrot_ext_call(INTERP, method, "PiSP->", SELF, name, value);
             return;
         }
 
@@ -478,8 +475,7 @@
 
                 if (!PMC_IS_NULL(method)) {
                     PMC *result = PMCNULL;
-                    Parrot_pcc_invoke_sub_from_c_args(INTERP, method,
-                            "PiS->P", SELF, name, &result);
+                    Parrot_ext_call(INTERP, method, "PiS->P", SELF, name, &result);
 
                     /* break out to the CACHE IF FOUND code */
                     method = result;
@@ -538,8 +534,7 @@
 
             if (!PMC_IS_NULL(meth)) {
                 INTVAL result;
-                Parrot_pcc_invoke_sub_from_c_args(INTERP, meth, "Pi->I",
-                     SELF, &result);
+                Parrot_ext_call(INTERP, meth, "Pi->I", SELF, &result);
                 return result;
 
             }
@@ -577,8 +572,7 @@
 
         if (!PMC_IS_NULL(method)) {
             PMC *result;
-            Parrot_pcc_invoke_sub_from_c_args(INTERP, method, "Pi->P",
-                    SELF, &result);
+            Parrot_ext_call(INTERP, method, "Pi->P", SELF, &result);
             return result;
         }
 
@@ -606,8 +600,7 @@
 
         if (!PMC_IS_NULL(method)) {
             PMC *result;
-            Parrot_pcc_invoke_sub_from_c_args(INTERP, method, "Pi->P",
-                    SELF, &result);
+            Parrot_ext_call(INTERP, method, "Pi->P", SELF, &result);
             return result;
         }
 
@@ -698,8 +691,7 @@
 
             if (!PMC_IS_NULL(method)) {
                 INTVAL result;
-                Parrot_pcc_invoke_sub_from_c_args(INTERP, method,
-                        "PiS->I", SELF, role_name, &result);
+                Parrot_ext_call(INTERP, method, "PiS->I", SELF, role_name, &result);
                 if (result)
                     return 1;
             }
@@ -826,8 +818,7 @@
 
         if (!PMC_IS_NULL(meth)) {
             PMC *result;
-            Parrot_pcc_invoke_sub_from_c_args(INTERP, meth, "Pi->P",
-                 SELF, &result);
+            Parrot_ext_call(INTERP, meth, "Pi->P", SELF, &result);
             return result;
         }
 
@@ -975,8 +966,7 @@
              Parrot_oo_find_vtable_override(INTERP, classobj, meth_name);
 
         if (!PMC_IS_NULL(method))
-            Parrot_pcc_invoke_sub_from_c_args(INTERP, method, "PiP->",
-                    SELF, type);
+            Parrot_ext_call(INTERP, method, "PiP->", SELF, type);
         else
             SUPER(type);
     }

Modified: branches/dynop_mapping/src/pmc/oplib.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/oplib.pmc	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/pmc/oplib.pmc	Tue Aug  3 02:53:14 2010	(r48260)
@@ -89,7 +89,7 @@
     }
 
     VTABLE PMC* get_pmc_keyed_int(INTVAL value) {
-        if ((UINTVAL)value > INTERP->op_lib->op_count)
+        if ((UINTVAL)value >= INTERP->op_lib->op_count)
             Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
                 "OpLib: Opcode index %d out of bounds", value);
         else {
@@ -99,10 +99,14 @@
         }
     }
 
-    VTABLE INTVAL get_integer() {
+    VTABLE INTVAL elements() {
         return INTERP->op_lib->op_count;
     }
 
+    VTABLE INTVAL get_integer() {
+        return STATICSELF.elements();
+    }
+
     METHOD op_family(STRING *shortname)
     {
         char * const sname = Parrot_str_to_cstring(INTERP, shortname);

Modified: branches/dynop_mapping/src/pmc/stringhandle.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/stringhandle.pmc	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/pmc/stringhandle.pmc	Tue Aug  3 02:53:14 2010	(r48260)
@@ -207,7 +207,8 @@
             SET_ATTR_mode(INTERP, SELF, open_mode);
         }
 
-        SELF = Parrot_io_open(INTERP, SELF, filename, open_mode);
+        flags = Parrot_io_parse_open_flags(INTERP, open_mode);
+        SET_ATTR_flags(INTERP, SELF, flags);
 
         RETURN(PMC *SELF);
     }
@@ -254,7 +255,10 @@
 */
 
     METHOD is_closed() {
-        const INTVAL status = Parrot_io_is_closed(INTERP, SELF);
+        STRING *stringhandle;
+        INTVAL status;
+        GET_ATTR_stringhandle(INTERP, SELF, stringhandle);
+        status = STRING_IS_NULL(stringhandle);
         RETURN(INTVAL status);
     }
 

Modified: branches/dynop_mapping/src/pmc/sub.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/sub.pmc	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/pmc/sub.pmc	Tue Aug  3 02:53:14 2010	(r48260)
@@ -873,7 +873,7 @@
                 ASSERT_SIG_PMC(sig);
 
                 for (i = 0; i < sig_length; ++i) {
-                    int sig_item = VTABLE_get_integer_keyed_int(INTERP, sig, i);;
+                    int sig_item = VTABLE_get_integer_keyed_int(INTERP, sig, i);
                     if (PARROT_ARG_SLURPY_ARRAY_ISSET(sig_item)){
                         if (PARROT_ARG_NAME_ISSET(sig_item))
                             sub->arg_info->named_slurpy = 1;
@@ -882,7 +882,7 @@
                     }
                     else if (PARROT_ARG_NAME_ISSET(sig_item)) {
                         ++i;
-                        sig_item = VTABLE_get_integer_keyed_int(INTERP, sig, i);;
+                        sig_item = VTABLE_get_integer_keyed_int(INTERP, sig, i);
                         if (PARROT_ARG_OPTIONAL_ISSET(sig_item))
                             ++sub->arg_info->named_optional;
                         else

Modified: branches/dynop_mapping/src/runcore/main.c
==============================================================================
--- branches/dynop_mapping/src/runcore/main.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/runcore/main.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -261,6 +261,7 @@
 
 */
 
+PARROT_EXPORT
 void
 Parrot_setup_event_func_ptrs(PARROT_INTERP)
 {

Modified: branches/dynop_mapping/src/runcore/profiling.c
==============================================================================
--- branches/dynop_mapping/src/runcore/profiling.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/runcore/profiling.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -472,7 +472,7 @@
     }
 
     Profiling_exit_check_SET(runcore);
-    runcore->runcore_finish = Parrot_hires_get_time();;
+    runcore->runcore_finish = Parrot_hires_get_time();
     return pc;
 }
 

Modified: branches/dynop_mapping/src/scheduler.c
==============================================================================
--- branches/dynop_mapping/src/scheduler.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/scheduler.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -17,6 +17,7 @@
 */
 
 #include "parrot/parrot.h"
+#include "parrot/extend.h"
 #include "parrot/scheduler_private.h"
 #include "parrot/runcore_api.h"
 
@@ -141,8 +142,7 @@
                 PMC * const handler = Parrot_cx_find_handler_for_task(interp, task);
                 if (!PMC_IS_NULL(handler)) {
                     PMC * const handler_sub = VTABLE_get_attr_str(interp, handler, CONST_STRING(interp, "code"));
-                    Parrot_pcc_invoke_sub_from_c_args(interp, handler_sub,
-                            "PP->", handler, task);
+                    Parrot_ext_call(interp, handler_sub, "PP->", handler, task);
                 }
             }
             else {
@@ -952,8 +952,7 @@
                     Parrot_floatval_time());
 #endif
     if (!PMC_IS_NULL(timer_struct->codeblock)) {
-        Parrot_pcc_invoke_sub_from_c_args(interp,
-                timer_struct->codeblock, "->");
+        Parrot_ext_call(interp, timer_struct->codeblock, "->");
     }
 }
 

Modified: branches/dynop_mapping/src/string/api.c
==============================================================================
--- branches/dynop_mapping/src/string/api.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/string/api.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -2338,17 +2338,10 @@
 
     if (s->encoding->hash)
         hashval = ENCODING_HASH(interp, s, hashval);
+    else if (s->charset->compute_hash)
+        hashval = CHARSET_COMPUTE_HASH(interp, s, hashval);
     else {
-        /* ZZZZZ workaround for something not setting up encodings right */
-        ASSERT_STRING_SANITY(s);
-
-        ENCODING_ITER_INIT(interp, s, &iter);
-
-        for (offs = 0; offs < s->strlen; ++offs) {
-            const UINTVAL c = iter.get_and_advance(interp, &iter);
-            hashval += hashval << 5;
-            hashval += c;
-        }
+        exit_fatal(1, "String subsystem not properly initialized");
     }
 
     s->hashval = hashval;

Modified: branches/dynop_mapping/src/string/charset/binary.c
==============================================================================
--- branches/dynop_mapping/src/string/charset/binary.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/string/charset/binary.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -37,16 +37,6 @@
 static STRING* compose(PARROT_INTERP, SHIM(const STRING *src))
         __attribute__nonnull__(1);
 
-static INTVAL cs_index(SHIM_INTERP,
-    SHIM(const STRING *src),
-    SHIM(const STRING *search_string),
-    SHIM(UINTVAL offset));
-
-static INTVAL cs_rindex(SHIM_INTERP,
-    SHIM(const STRING *src),
-    SHIM(const STRING *search_string),
-    SHIM(UINTVAL offset));
-
 PARROT_CANNOT_RETURN_NULL
 static STRING* decompose(PARROT_INTERP, SHIM(const STRING *src))
         __attribute__nonnull__(1);
@@ -107,8 +97,6 @@
     , PARROT_ASSERT_ARG(rhs))
 #define ASSERT_ARGS_compose __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_cs_index __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_cs_rindex __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_decompose __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_downcase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -346,46 +334,6 @@
 
 /*
 
-=item C<static INTVAL cs_index(PARROT_INTERP, const STRING *src, const STRING
-*search_string, UINTVAL offset)>
-
-Returns -1. It makes no sense to try and search for a substring in
-raw binary data.
-
-=cut
-
-*/
-
-static INTVAL
-cs_index(SHIM_INTERP, SHIM(const STRING *src),
-        SHIM(const STRING *search_string), SHIM(UINTVAL offset))
-{
-    ASSERT_ARGS(cs_index)
-    return -1;
-}
-
-/*
-
-=item C<static INTVAL cs_rindex(PARROT_INTERP, const STRING *src, const STRING
-*search_string, UINTVAL offset)>
-
-Returns -1. It makes no sense to search for the last substring match
-in raw binary data.
-
-=cut
-
-*/
-
-static INTVAL
-cs_rindex(SHIM_INTERP, SHIM(const STRING *src),
-        SHIM(const STRING *search_string), SHIM(UINTVAL offset))
-{
-    ASSERT_ARGS(cs_rindex)
-    return -1;
-}
-
-/*
-
 =item C<static UINTVAL validate(PARROT_INTERP, const STRING *src)>
 
 Returns 1. All sequential data is valid binary data.
@@ -510,8 +458,8 @@
         downcase_first,
         titlecase_first,
         compare,
-        cs_index,
-        cs_rindex,
+        ascii_cs_index,
+        ascii_cs_rindex,
         validate,
         is_cclass,
         find_cclass,

Modified: branches/dynop_mapping/src/thread.c
==============================================================================
--- branches/dynop_mapping/src/thread.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/thread.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -19,6 +19,7 @@
 */
 
 #include "parrot/parrot.h"
+#include "parrot/extend.h"
 #include "parrot/atomic.h"
 #include "parrot/runcore_api.h"
 #include "pmc/pmc_sub.h"
@@ -515,7 +516,7 @@
         Parrot_ex_add_c_handler(interp, &jump_point);
         Parrot_unblock_GC_mark(interp);
         Parrot_unblock_GC_sweep(interp);
-        Parrot_pcc_invoke_sub_from_c_args(interp, sub_pmc, "Pf->P", sub_arg, &ret_val);
+        Parrot_ext_call(interp, sub_pmc, "Pf->P", sub_arg, &ret_val);
     }
 
     /* thread is finito */

Modified: branches/dynop_mapping/src/utils.c
==============================================================================
--- branches/dynop_mapping/src/utils.c	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/utils.c	Tue Aug  3 02:53:14 2010	(r48260)
@@ -21,6 +21,7 @@
 */
 
 #include "parrot/parrot.h"
+#include "parrot/extend.h"
 #include "pmc/pmc_nci.h"
 
 typedef unsigned short _rand_buf[3];
@@ -930,7 +931,7 @@
         return f(interp, a, b);
     }
 
-    Parrot_pcc_invoke_sub_from_c_args(interp, cmp, "PP->I", a, b, &result);
+    Parrot_ext_call(interp, cmp, "PP->I", a, b, &result);
     return result;
 }
 

Modified: branches/dynop_mapping/src/vtable.tbl
==============================================================================
--- branches/dynop_mapping/src/vtable.tbl	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/src/vtable.tbl	Tue Aug  3 02:53:14 2010	(r48260)
@@ -274,9 +274,9 @@
 PMC* inspect_str(STRING* what)
 
 void freeze(PMC* info)
-void thaw  (PMC* info) :write
-void thawfinish (PMC* info) :write
-void visit (PMC* info)
+void thaw(PMC* info) :write
+void thawfinish(PMC* info) :write
+void visit(PMC* info)
 
 void share()
 

Modified: branches/dynop_mapping/t/compilers/pct/complete_workflow.t
==============================================================================
--- branches/dynop_mapping/t/compilers/pct/complete_workflow.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/compilers/pct/complete_workflow.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -306,6 +306,7 @@
     # Do not assume that . is in $PATH
     # places to look for things
     my $BUILD_DIR     = $PConfig{build_dir};
+    my $BD_CHARSET    = $BUILD_DIR =~ /[^[:ascii:]]/ ? "binary:" : q{};
     my $TEST_DIR      = "$BUILD_DIR/t/compilers/pct";
     my $PARROT        = "$BUILD_DIR/parrot$PConfig{exe}";
     my $PGE_LIBRARY   = "$BUILD_DIR/runtime/parrot/library/PGE";
@@ -334,7 +335,7 @@
     .local pmc args
     args = new 'ResizableStringArray'
     push args, "test_program"
-    push args, "$TEST_DIR/complete_workflow_sample_input.txt"
+    push args, $BD_CHARSET"$TEST_DIR/complete_workflow_sample_input.txt"
 
     \$P0 = new ['PCT'; 'HLLCompiler']
     \$P0.'language'('TestGrammar')

Modified: branches/dynop_mapping/t/configure/017-revision_from_cache.t
==============================================================================
--- branches/dynop_mapping/t/configure/017-revision_from_cache.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/configure/017-revision_from_cache.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -7,10 +7,13 @@
 use warnings;
 
 use Test::More;
-plan( skip_all =>
-    "\nRelevant only when working in checkout from repository and during configuration" )
-    unless (-e 'DEVELOPING' and ! -e 'Makefile');
-plan( tests =>  7 );
+if (-e 'DEVELOPING' and ! -e 'Makefile') {
+    plan tests =>  7;
+}
+else {
+    plan skip_all =>
+        q{Relevant only when working in checkout from repository and prior to configuration};
+}
 use Carp;
 use Cwd;
 use File::Copy;

Modified: branches/dynop_mapping/t/configure/018-revision_to_cache.t
==============================================================================
--- branches/dynop_mapping/t/configure/018-revision_to_cache.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/configure/018-revision_to_cache.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -7,10 +7,13 @@
 use warnings;
 
 use Test::More;
-plan( skip_all =>
-    "\nRelevant only when working in checkout from repository and during configuration" )
-    unless (-e 'DEVELOPING' and ! -e 'Makefile');
-plan( tests =>  8 );
+if (-e 'DEVELOPING' and ! -e 'Makefile') {
+    plan tests =>  8;
+}
+else {
+    plan skip_all =>
+        q{Relevant only when working in checkout from repository and prior to configuration};
+}
 use Carp;
 use Cwd;
 use File::Copy;

Modified: branches/dynop_mapping/t/configure/061-revision_from_cache.t
==============================================================================
--- branches/dynop_mapping/t/configure/061-revision_from_cache.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/configure/061-revision_from_cache.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -7,10 +7,17 @@
 use warnings;
 
 use Test::More;
-plan( skip_all =>
-    "\nRelevant only when working in checkout from repository and during configuration" )
-    unless (-e 'DEVELOPING' and ! -e 'Makefile');
-plan( tests => 25 );
+#plan( skip_all =>
+#    "\nRelevant only when working in checkout from repository and during configuration" )
+#    unless (-e 'DEVELOPING' and ! -e 'Makefile');
+#plan( tests => 25 );
+if (-e 'DEVELOPING' and ! -e 'Makefile') {
+    plan tests => 25;
+}
+else {
+    plan skip_all =>
+        q{Relevant only when working in checkout from repository and prior to configuration};
+}
 use Carp;
 use Cwd;
 use File::Copy;

Modified: branches/dynop_mapping/t/library/p6object.t
==============================================================================
--- branches/dynop_mapping/t/library/p6object.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/library/p6object.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -26,7 +26,7 @@
     test_namespace.'export_to'(curr_namespace, exports)
 
     ##  set our plan
-    plan(295)
+    plan(303)
 
     ##  make sure we can load the P6object library
     push_eh load_fail
@@ -79,6 +79,20 @@
     $I0 = can abcobj, 'new'
     nok($I0, '! <can ABC_obj, "new" >')
 
+    ## verify .ACCEPTS method
+    $P0 = hashproto.'ACCEPTS'(hashobj)
+    ok($P0, 'Hash.ACCEPTS(Hash_obj)')
+    isa_ok($P0, 'Boolean', 'Boolean')
+    $P0 = hashproto.'ACCEPTS'(abcobj)
+    nok($P0, 'Hash.ACCEPTS(Abc_obj)')
+    isa_ok($P0, 'Boolean', 'Boolean')
+    $P0 = abcproto.'ACCEPTS'(hashobj)
+    nok($P0, 'ABC.ACCEPTS(Hash_obj)')
+    isa_ok($P0, 'Boolean', 'Boolean')
+    $P0 = abcproto.'ACCEPTS'(abcobj)
+    ok($P0, 'ABCh.ACCEPTS(Abc_obj)')
+    isa_ok($P0, 'Boolean', 'Boolean')
+
     ##  create new class by namespace
     .local pmc ghins, ghiproto, ghiobj
     ghins = get_hll_namespace ['GHI']

Modified: branches/dynop_mapping/t/library/pcre.t
==============================================================================
--- branches/dynop_mapping/t/library/pcre.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/library/pcre.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1,5 +1,5 @@
 #!perl
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 use strict;
@@ -101,7 +101,9 @@
 OUT
 
 ## 2
-    pir_output_is( <<"CODE", <<'OUT', 'soup to nuts' );
+    my @todo;
+    @todo = ( todo => '3..5 fail on Win32' ) if $^O =~ /MSWin32/;
+    pir_output_is( <<"CODE", <<'OUT', 'soup to nuts', @todo );
 
 .include 'iglobals.pasm'
 .include 'libpaths.pasm'

Modified: branches/dynop_mapping/t/op/64bit.t
==============================================================================
--- branches/dynop_mapping/t/op/64bit.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/op/64bit.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -36,7 +36,18 @@
     goto end
 
   is_64_bit:
-    bitops64()
+
+    # setup TODO for platform 'MSWin32'
+    .local string osname
+    osname = config['osname']
+    .local int todo_1
+    todo_1 = 0
+    unless  osname == "MSWin32" goto do_test
+    todo_1 = 1
+
+  do_test:
+
+    bitops64(todo_1)
 
   end:
 .end
@@ -44,10 +55,22 @@
 
 .sub bitops64
         # check bitops for 8-byte ints
+        .param int todo_1
 
         set $I0, 0xffffffffffffffff
+
+        if todo_1 goto do_todo
         is( $I0, -1, 'bitops64' )
+        goto test_2
+
+      do_todo:
+        if $I0 == -1 goto todo_pass
+        todo ( 0, 'bitops64', 'not working on MSWin32, amd64' )
+        goto test_2
+      todo_pass:
+        todo ( 1, 'bitops64', 'not working on MSWin32, amd64' )
 
+      test_2:
         set $I1, 0x00000000ffffffff
         is( $I1, 4294967295, 'bitops64' )
 

Modified: branches/dynop_mapping/t/op/integer.t
==============================================================================
--- branches/dynop_mapping/t/op/integer.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/op/integer.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -16,7 +16,7 @@
 
 =cut
 
-.const int TESTS = 150
+.const int TESTS = 152
 
 .sub 'test' :main
     .include 'test_more.pir'
@@ -30,6 +30,7 @@
     test_sub()
     test_mul()
     test_div()
+    test_fdiv()
     test_mod()
     mod_negative_zero_rest()
     test_eq()
@@ -276,6 +277,18 @@
     is($I1, 10, 'div_i_ic_ic')
 .end
 
+.sub 'test_fdiv'
+    $I0 = 9
+    $I1 = -4
+    fdiv $I0, $I1
+    is($I0, -3, 'fdiv_i_i with negative divisor')
+
+    $I0 = 9
+    $I1 = -4
+    $I2 = fdiv $I0, $I1
+    is($I2, -3, 'fdiv_i_i_i with negative divisor')
+.end
+
 .sub 'test_mod'
     $I0 = 5
     $I1 = 0

Modified: branches/dynop_mapping/t/op/string.t
==============================================================================
--- branches/dynop_mapping/t/op/string.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/op/string.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -989,7 +989,7 @@
     set $S0, binary:"Parrot"
     set $S1, binary:"rot"
     index $I1, $S0, $S1
-    is( $I1, "-1", 'binary - binary' )
+    is( $I1, 3, 'binary - binary' )
 .end
 
 .sub negative_index_bug_35959

Modified: branches/dynop_mapping/t/pmc/capture.t
==============================================================================
--- branches/dynop_mapping/t/pmc/capture.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/pmc/capture.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -17,7 +17,7 @@
 
 =cut
 
-.const int TESTS = 47
+.const int TESTS = 51
 
 .sub 'test' :main
     .include 'test_more.pir'
@@ -46,6 +46,15 @@
 
     capt = new ['Capture']
 
+    $I0 = elements capt
+    is($I0, 0, 'elements on empty Capture')
+    $N0 = capt[0]
+    is($N0, 0, 'get_number_keyed_int on empty Capture')
+    $I0 = capt[0]
+    is($I0, 0, 'get_integer_keyed_int on empty Capture')
+    $S0 = capt[0]
+    is($S0, '', 'get_string_keyed_int on empty Capture')
+
     capt[0] = 0
     capt[1] = 1.5
     capt[2] = 'two'

Modified: branches/dynop_mapping/t/pmc/exceptionhandler.t
==============================================================================
--- branches/dynop_mapping/t/pmc/exceptionhandler.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/pmc/exceptionhandler.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1,5 +1,5 @@
 #!./parrot
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -23,9 +23,9 @@
     .include 'test_more.pir'
 
     # If test exited with "bad plan" MyHandlerCan.can_handle wasn't invoked.
-    plan(11)
+    plan(15)
 
-    .local pmc eh
+    .local pmc eh, eh2
     eh = new ['ExceptionHandler']
     ok(1, 'Instantiated ExceptionHandler')
 
@@ -34,11 +34,21 @@
     eh.'max_severity'(.EXCEPT_WARNING)
     push_eh eh
 
-    eh = new ['ExceptionHandler']
-    set_addr eh, error_handler_one
-    eh.'min_severity'(.EXCEPT_ERROR)
-    eh.'max_severity'(.EXCEPT_FATAL)
-    push_eh eh
+    eh2 = new ['ExceptionHandler']
+    set_addr eh2, error_handler_one
+    eh2.'min_severity'(.EXCEPT_ERROR)
+    eh2.'max_severity'(.EXCEPT_FATAL)
+    push_eh eh2
+
+    .local int i
+    i = eh.'min_severity'()
+    is(i, .EXCEPT_NORMAL, 'get min_severity - 1')
+    i = eh.'max_severity'()
+    is(i, .EXCEPT_WARNING, 'get max_severity - 1')
+    i = eh2.'min_severity'()
+    is(i, .EXCEPT_ERROR, 'get min_severity - 2')
+    i = eh2.'max_severity'()
+    is(i, .EXCEPT_FATAL, 'get max_severity - 2')
 
     $P0 = new ['Exception']
     $P0['severity'] = .EXCEPT_NORMAL

Modified: branches/dynop_mapping/t/pmc/opcode.t
==============================================================================
--- branches/dynop_mapping/t/pmc/opcode.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/pmc/opcode.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -12,6 +12,8 @@
 
 =cut
 
+.include 'except_types.pasm'
+
 .sub main :main
     .include 'test_more.pir'
     plan(1)
@@ -19,12 +21,18 @@
 .end
 
 .sub cannot_create_directly
-    push_eh cannot_create
+    .local pmc eh, ex
+    eh = new ['ExceptionHandler']
+    eh.'handle_types'(.EXCEPTION_INVALID_OPERATION)
+    set_label eh, cannot_create
+    push_eh eh
     $P0 = new ['Opcode']
     ok(0, "shouldn't be able to create new opcode")
     goto create_end
   cannot_create:
-    ok(1)
+    .get_results(ex)
+    $S0 = ex['message']
+    ok(1,  $S0)
   create_end:
 .end
 

Modified: branches/dynop_mapping/t/pmc/oplib.t
==============================================================================
--- branches/dynop_mapping/t/pmc/oplib.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/pmc/oplib.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -12,12 +12,16 @@
 
 =cut
 
+.include 'except_types.pasm'
+
 .sub main :main
     .include 'test_more.pir'
-    plan(5)
+    plan(11)
     new_oplib()
-    get_end()
-    get_no_opcode()
+    check_elements()
+    getint_end()
+    getint_no_opcode()
+    getop_end()
     family_end()
     family_no_opcode()
 .end
@@ -28,7 +32,30 @@
     nok($I0, "new OpLib")
 .end
 
-.sub get_end
+.sub check_elements
+    .local pmc oplib, op, eh
+    .local int n, i
+    oplib = new ['OpLib']
+    n = elements oplib
+    i = n - 1
+    op = oplib[i]
+    i = isnull op
+    is(i, 0, 'last opcode exists')
+    eh = new ['ExceptionHandler']
+    eh.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+    set_addr eh, catch
+    push_eh eh
+    op = oplib[n]
+    nok(1, 'out of bounds opcode number should throw')
+    goto end
+  catch:
+    finalize eh
+    pop_eh
+    ok(1, 'out of bounds opcode number throws')
+  end:
+.end
+
+.sub getint_end
     $P0 = new ['OpLib']
     # Assumption: we'll always have an end opcode.
     $I1 = $P0['end']
@@ -36,13 +63,38 @@
     ok($I0, "got end opcode")
 .end
 
-.sub get_no_opcode
+.sub getint_no_opcode
     $P0 = new ['OpLib']
     $I1 = $P0['hopeweneverhaveopcodesnamedlikethis']
     $I0 = iseq $I1, -1
     ok($I0, "get non existent opcode fails")
 .end
 
+.sub getop_end
+    .local pmc oplib, op, op2, name
+    oplib = new ['OpLib']
+    # Assumption: we'll always have an end opcode.
+
+    # Using a string constant
+    op = oplib['end']
+    $I0 = isnull op
+    is($I0, 0, "got end opcode data")
+
+    # Using a String PMC
+    name = new ['String']
+    name = 'end'
+    op2 = oplib[name]
+    $I0 = isnull op2
+    is($I0, 0, "got end opcode data keyed pmc")
+
+    $I0 = issame op, op2
+    ok($I0, "got same result from both ways")
+
+    $I1 = op
+    $I0 = oplib['end']
+    is($I0, $I1, 'opcode number from Opcode and from OpLib is the same')
+.end
+
 .sub family_end
     $P0 = new ['OpLib']
     # Assumption: we'll always have an end opcode.

Modified: branches/dynop_mapping/t/postconfigure/05-trace.t
==============================================================================
--- branches/dynop_mapping/t/postconfigure/05-trace.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/postconfigure/05-trace.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -14,7 +14,8 @@
     plan tests => 40;
 }
 else {
-    plan skip_all => q{Tests irrelevant unless configuration completed with tracing requested};
+    plan skip_all =>
+        q{Tests irrelevant unless configuration completed with tracing requested};
 }
 use lib qw( lib );
 use Parrot::Config;

Modified: branches/dynop_mapping/t/steps/auto/format-01.t
==============================================================================
--- branches/dynop_mapping/t/steps/auto/format-01.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/steps/auto/format-01.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -99,7 +99,7 @@
 }
 {
     my $p5format = '%.15' . $conf->data->get('sPRIgldbl_provisional');
-    $p5format =~ s/"//g;; # Perl 5's Config value has embedded double quotes
+    $p5format =~ s/"//g; # Perl 5's Config value has embedded double quotes
     $conf->data->set( nv => 'long double' );
     eval {
     auto::format::_set_floatvalfmt_nvsize($conf);

Modified: branches/dynop_mapping/t/steps/auto/inline-01.t
==============================================================================
--- branches/dynop_mapping/t/steps/auto/inline-01.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/steps/auto/inline-01.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -68,7 +68,7 @@
     "_evaluate_inline() returned true value");
 is($step->result, q{yes}, "Got expected result");
 is($conf->data->get( 'inline' ), 1,
-    "'inline' attribute has expected value");;
+    "'inline' attribute has expected value");
 
 $conf->replenish($serialized);
 
@@ -85,7 +85,7 @@
     "_evaluate_inline() returned true value");
 is($step->result, q{no}, "Got expected result");
 is($conf->data->get( 'inline' ), q{},
-    "'inline' attribute has expected value");;
+    "'inline' attribute has expected value");
 
 $conf->replenish($serialized);
 
@@ -105,7 +105,7 @@
         \$stdout
     );
     ok($ret, "_evaluate_inline() returned true value");
-    is($step->result, q{yes}, "Got expected result");;
+    is($step->result, q{yes}, "Got expected result");
     is($conf->data->get( 'inline' ), 1,
         "'inline' attribute has expected value");
 }

Modified: branches/dynop_mapping/t/steps/init/hints-01.t
==============================================================================
--- branches/dynop_mapping/t/steps/init/hints-01.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/steps/init/hints-01.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -156,7 +156,7 @@
         sub { $ret = $step->runstep($conf); },
         \$stdout,
         \$stderr,
-    );;
+    );
     like(
         $stdout,
         qr/No \Q$hints_file\E found/s,

Modified: branches/dynop_mapping/t/tools/pbc_dump.t
==============================================================================
--- branches/dynop_mapping/t/tools/pbc_dump.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/tools/pbc_dump.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -45,7 +45,7 @@
         plan skip_all => "pbc_dump hasn't been built. Run make parrot_utils";
         exit(0);
     }
-    plan tests => 6;
+    plan tests => 8;
 }
 
 dump_output_like( <<PIR, "pir", [qr/FIXUP_t/, qr/CONSTANT_t/, qr/BYTECODE_t/], 'pbc_dump basic sanity');
@@ -72,6 +72,53 @@
 .end
 PIR
 
+my $longcode = ".sub main :main\n";
+for (0 ... 10000) {
+    $longcode .= "\$I0 = \$I0 + 1234\n";
+}
+$longcode .= ".end";
+
+dump_output_like( $longcode, "pir",  qr/BYTECODE.*_DB.*=>/,
+    "large pir program doesn't mess up pbc_dump");
+
+open my $INC1, '>', "inc_a.pir";
+print $INC1 <<'EOF';
+.sub does :vtable
+    .param string provides
+.end
+EOF
+close $INC1;
+
+open my $INC2, '>', "inc_b.pir";
+print $INC2 <<'EOF';
+.namespace [ 'TclConst' ]
+.sub class_init :anon :load
+    $P0 = get_class 'String'
+.end
+EOF
+close $INC2;
+
+open my $INC3, '>', "inc_c.pir";
+print $INC3 <<'EOF';
+.namespace [ 'TclDict' ]
+.sub class_init :anon :load
+    say "wut"
+.end
+EOF
+close $INC3;
+
+#test known-good hard-coded values.  These values come from looking at
+#pbc_dump's #output and sanity checking with the locations of the various subs.
+dump_output_like( <<PIR, "pir", qr/BYTECODE.*_DB.*OFFSET => 0,.*OFFSET => 7.*OFFSET => 13/ms, 'debug segments contain accurate offsets');
+.include 'inc_a.pir'
+.include 'inc_b.pir'
+.include 'inc_c.pir'
+PIR
+
+unlink('inc_a.pir');
+unlink('inc_b.pir');
+unlink('inc_c.pir');
+
 =head1 HELPER SUBROUTINES
 
 =head2 dump_output_like

Modified: branches/dynop_mapping/t/tools/pmc2cutils/05-gen_c.t
==============================================================================
--- branches/dynop_mapping/t/tools/pmc2cutils/05-gen_c.t	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/t/tools/pmc2cutils/05-gen_c.t	Tue Aug  3 02:53:14 2010	(r48260)
@@ -177,7 +177,7 @@
         capture(
             sub { eval { $rv = $self->gen_c(); } },
             \$stdout
-        );;
+        );
         like(
             $@,
             qr<^cannot find file '.*/src/pmc/default.dump' in path>,

Modified: branches/dynop_mapping/tools/util/release.json
==============================================================================
--- branches/dynop_mapping/tools/util/release.json	Tue Aug  3 02:36:42 2010	(r48259)
+++ branches/dynop_mapping/tools/util/release.json	Tue Aug  3 02:53:14 2010	(r48260)
@@ -1,9 +1,9 @@
 {
-    "release.version"  : "2.5.0",
-    "release.name"     : "Cheops",
+    "release.version"  : "2.6.0",
+    "release.name"     : "Red-rumped",
     "release.day"      : "Tuesday",
-    "release.date"     : "15 June 2010",
-    "release.nextdate" : "20 July 2010",
+    "release.date"     : "20 July 2010",
+    "release.nextdate" : "17 August 2010",
 
     "web.root"         : "http://parrot.org/",
     "web.source"       : "download",
@@ -11,12 +11,11 @@
     "web.repository"   : "https://svn.parrot.org/parrot/trunk/",
 
     "bugday.day"       : "Saturday",
-    "bugday.date"      : "17 July 2010",
+    "bugday.date"      : "14 August 2010",
 
     "wiki.root"        : "https://trac.parrot.org/parrot/wiki/",
-    "wiki.bugday"      : "bug_day_2010_07_17",
+    "wiki.bugday"      : "bug_day_2010_08_14",
 
-    "ftp.path"         : "ftp://ftp.parrot.org/pub/parrot/releases/devel/2.5.0/",
-    "subversion.root"  : "http://subversion.apache.org/",
-    "svk.root"         : "http://svk.bestpractical.com/"
+    "ftp.path"         : "ftp://ftp.parrot.org/pub/parrot/releases/supported/2.6.0/",
+    "subversion.root"  : "http://subversion.apache.org/"
 }


More information about the parrot-commits mailing list