Start by simplifying your regex and see what you get - remove the second and third classes:
(<H1\s+\w+>)
If you run that, you will see that you get three groups:
<H1 Category1>
<H1 Food1>
<H1 Wine1>
And that explains why your regex doesn't work: the first phrase captures the outer "Category1" phrase - so when you add the second and third, it assumes a single "L" phrase followed by an "H1" phrase, which it doesn't get.
Add regex to detect and ignore the outer phrase and you'll get there.