in reply to If I'm matching a pattern wy does a + sign make things crazy?

I doubt it has anything to do with a + character, more likely it's to do with the fact that .* is greedy and you've got two links on the same line, as Corion said.

Yes, I realize that Perl regex is not the way to go to find links.

Correct! Sorry, but in regards to "my method works": it's not really working, though. And even if you fix this one issue with this one input, the next problem will certainly pop up - see this node for how complex parsing HTML gets*. In this case, there's a very well established module for that, HTML::LinkExtor. Mojo::DOM also works:

use Mojo::DOM; my $dom = Mojo::DOM->new(<<'END_HTML'); <a href="https://www.example.com/foodbanks/a">a</a> <a href="https://w +ww.example.com/foodbanks/b">b</a> <a href="https://www.example.com/foodbanks/c">c</a> END_HTML $dom->find('a[href]')->each(sub { print "$_ / ",$_->{href}," / ",$_->all_text,"\n"; });

Edited second paragraph.

* Update: Why a regex *really* isn't good enough for HTML and XML, even for "simple" tasks