I think it's older than that. Well, parts of it are.
Though I adore the addition of the fade to chaos in the 2009 Stack Overflow post, I recall seeing the exact early text from that answer linked and re-pasted on older CS forums as early as 2000. It needed posted a lot, shortly after XHTML became popular.
Part of the contextual humor of the 2009 SO answer, is it takes the trend of the previous answers - getting longer and less coherent each time it needed posted - and extended it to it's logical conclusion.
I do think the Stack Overflow post is the definitive version.
I wish I could find the original, or something closer, because we could compare and measure our collective loss of sanity.
I use regex in SQL to parse HTML stored in a database. It can't universally parse and validate every HTML document, but it can still be used to find specific data like pulling out every link.
I guess it depends on your definition of "parse", but let me tell you it's still very painful to deal with things like attributes appearing in any order inside of a tag so I definitely am not advocating to use regex to "read" (or whatever you want to call it) HTML.
That’s perfectly valid HTML, but you wouldn’t want to pull that link out, and POSIX regex can’t really avoid it. At least not with just a single regex. Imagine a link nested within like 3 template tags.
Yes, I said in my original comment that it can't universally parse and validate every HTML document. If they're older pages that don't do lots of crazy formatting then it's not too hard to use regex as a first pass then take a second pass through the results to weed out the odd stuff.
It's a personal variant of Foundational script, with uncial and a modernized textura when it starts to derail into zalgo-ness, written with a Lamy Joy 1.9mm nib.