What if there are two links in the string being examined?
The only difference between . and .+ is that the latter requires at least one character to be matched. In other words, the difference is that . allows <a href=""> and .+ doesn't.
I'd've used '<A HREF="(["]+)">' as my regexp string - this doesn't allow empty links either, and also works if there is more than one link in the string. It does require href attribute values to be enclosed in double quotes, however.