The failing tests on JVM behave correctly, when executed on the command line:
$ perl6-j -e 'my $data = "f fo foo fooo foooo fooooo foooooo"; $data ~~ m:nth(-1)/fo+/; say "alive"' Attempt to retrieve before :1st match -- :nth(-1) in block <unit> at -e:1 The same code in the test file (using 'throws-like') does not die. So, maybe the problem is somewhere else.