in reply to Forcing a regex to fail

It works for me if you change $+ (last bracket) to $& (entire matched string). I assume $+ doesn't work because of the ?: clustering? My (simplified--on windows at the moment w/o Regex::Common) code/output is below.
use Data::Dumper; use strict; use warnings; use constant SUCCEED => qr{(?=)}; use constant FAIL => qr{(?!)}; my $QUOTED = qr/".+?"/; my $NUM = qr/\d*\.\d*/; my $VALUE = do { use re 'eval'; qr/(?:$QUOTED|$NUM)(??{'.' eq $& ? FAIL : SUCCEED})/; }; my $text = 'name => "foo", fav.num => 3.123'; my @text = split /($VALUE)/ => $text; print Dumper \@text; __END__ C:\temp>perl re.pl $VAR1 = [ 'name => ', '"foo"', ', fav.num => ', '3.123' ];