push @o, { T => 'heredoc', Q => $q, Delim => $d,
E => $&, P => "<<$q$d$q" };
s{^
- ( .* \n )
- ( (?: (?! $d) .* \n )* )
- $d \n
+ ( .* \n )
+ ( (?: (?! $d \n ) .* \n )*? )
+ $d \n
}{ $1 }xe or die "missing end of here doc $d\n";
$o[$#o]{V} = $2;
} elsif (s{^ (["'])( (?: [^\\'"]