серьезные пацаны используют DOM парсер для такого
начинающие пацаны быстро осваивают конструкцию
<имя тега[^>]+>
т.е. для твоего случая
<div[^>]+><а[^>]+>
быстро смекают, что обратный случай:
>[^<]+<
чтобы извлечь - берут в скобки
>([^<]+)<
ну и получают в итоге
<div[^>]+><a[^>]+>([^<]+)<[^>]+><[^>]+>
P.S.
продвинутые пацаны помнят, что между тегами могут всунуть пробелы и прочие шняги
<div[^>]+>\t\n?<a[^>]+>
- тут с \t\n и ? разьерись, лень проверять, нужно отметить когда может быть, а может и не быть
но освоить Xpath выражение гораздо продуктивнее