Obviously, in the most simple cases like
Test
you might get along with a regex. But even then, a perfectly valid HTML tag could come in so many different varieties:
< A > Test // match
< a href="test"> Test // match
< A TEST="test"/> // no match
< a href="test<">Test // invalid input - catch that with a regex!
that the regex to catch them reliably gets HUGE. A DOM based parser will parse it, give you a proper error message if it fails, and provide stable results.