Non-Capturing Group(?:<StudentName>\sjoe[^< ]*) <StudentName>the literal text <StudentName> (case insensitive) \sany whitespace character
joethe literal text joe (case insensitive) Negated Character Class[^< ]* *matches any number of characters outside the set below:
<the literal < (6010 / 748 / 3C16)
the literal (3210 / 408 / 2016)
.*?any character (except for line terminators), repeated any number of times
\na line-feed (newline) character (ASCII 10)
.*?any character (except for line terminators), repeated any number of times
<StudentFamily>the literal text <StudentFamily> (case insensitive) Negated Character Class[^<]* *matches any number of characters outside the set below:
<the literal < (6010 / 748 / 3C16)
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
i modifier: insensitive. Matches without distinguishing uppercase and lowercase letters