in reply to Negative Look Ahead issue

(?!(?:\n\n).) matches the empty string, and doing that many times (*) doesn't make sense.

You probably want (?:(?!\n\n).)* instead.

But it's hard to tell without seeing the expected result.

my $s = do {local $/, <DATA>};

That's pretty useless since you haven't defined any __DATA__ section.