И не будет. т.к. Вы видимо синтаксис регулярных выражений в php не прочитали.
А выделяет он последнюю, т.к. оператор "*" имеет "жадность" и он будет хватать все до последнего, пока условие "</a>" возможно. Как только оно не возможно, все схваченное и попадает под ".*"
для php:
preg_match("/.*<\/a>(.*)/",$str,$m); echo $a[1];
незабываем что "</A>" сюда не пройдет, для этого надо вконце вставить флаг "i":
для JS:
/.*<\/a>(.*)/i.exec(...);
для PHP:
preg_match("/.*<\/a>(.*)/i", ... )