^start of line
Studentthe literal text Student (case sensitive) \ the literal (3210 / 408 / 2016)
number,the literal text number, (case sensitive) \ the literal (3210 / 408 / 2016)
Namethe literal text Name (case sensitive) \na line-feed (newline) character (ASCII 10)
\ra carriage return (ASCII 13)
Group student_names(?P<student_names>(?:^\d+.+[\n\r])+) Non-Capturing Group(?:^\d+.+[\n\r])+ +repeats the group contents below at least once:
^start of line
\d+a Unicode decimal digit, repeated at least once
.+any Unicode character (except for line terminators), repeated at least once
\na line-feed (newline) character (ASCII 10)
\ra carriage return (ASCII 13)
\s*a Unicode whitespace character, repeated any number of times
^start of line
Studentthe literal text Student (case sensitive) \ the literal (3210 / 408 / 2016)
number,the literal text number, (case sensitive) \ the literal (3210 / 408 / 2016)
Scorethe literal text Score (case sensitive) \na line-feed (newline) character (ASCII 10)
\ra carriage return (ASCII 13)
Group student_scores(?P<student_scores>(?:^\d+.+[\n\r])+) Non-Capturing Group(?:^\d+.+[\n\r])+ +repeats the group contents below at least once:
^start of line
\d+a Unicode decimal digit, repeated at least once
.+any Unicode character (except for line terminators), repeated at least once
\na line-feed (newline) character (ASCII 10)
\ra carriage return (ASCII 13)
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
x modifier: extended. Ignores unescaped whitespace and comments outside character classes