/(.*?)<\/a>/
should work. The ? makes it lazy, so it grabs as little as possible before matching the part. but using . will mean that it matches everything until it finds . If you want to be able to match across lines, you can use the following if with preg_match
/(.*?)<\/a>/s
The "s" at the end puts the regular expression in "single line" mode, which means the . character matches all characters including new lines. See other useful modifiers