<food>the literal text <food> (case sensitive) Non-Capturing Group(?:(?!\s*<food>).*\n)+ +repeats the group contents below at least once:
Negative Lookahead(?!\s*<food>) \s*any whitespace character, repeated any number of times
<food>the literal text <food> (case sensitive) .*any character (except for line terminators), repeated any number of times
\na line-feed (newline) character (ASCII 10)
<the literal < (6010 / 748 / 3C16)
\/the literal / (4710 / 578 / 2F16)
food>the literal text food> (case sensitive) \s+any whitespace character, repeated at least once
<the literal < (6010 / 748 / 3C16)
\/the literal / (4710 / 578 / 2F16)
menu>the literal text menu> (case sensitive) \Zend of string, or before its final line terminator
g modifier: global. Finds all matches instead of stopping after the first
m modifier: multiline. Causes ^ and $ to match the start and end of each line, not only the start and end of the string