^start of line
Group author(?<author>[A-Z](?:(?!$)[A-Za-z\s&.,'’])+) A-Zone character from A (6510) to Z (9010) (case sensitive)
Non-Capturing Group(?:(?!$)[A-Za-z\s&.,'’])+ +repeats the group contents below at least once:
Character Class[A-Za-z\s&.,'’] A-Zone character from A (6510) to Z (9010) (case sensitive)
a-zone character from a (9710) to z (12210) (case sensitive)
\sany whitespace character
&the literal & (3810 / 468 / 2616)
.the literal . (4610 / 568 / 2E16)
,the literal , (4410 / 548 / 2C16)
'the literal ' (3910 / 478 / 2716)
’the literal ’ (821710 / 200318 / 201916)
\.the literal . (4610 / 568 / 2E16)
\sany whitespace character
"the literal " (3410 / 428 / 2216)
“the literal “ (822010 / 200348 / 201C16)
Group title(?<title>[A-Z](?:(?!$)[A-Za-z\s&.,'’])+) A-Zone character from A (6510) to Z (9010) (case sensitive)
Non-Capturing Group(?:(?!$)[A-Za-z\s&.,'’])+ +repeats the group contents below at least once:
Character Class[A-Za-z\s&.,'’] A-Zone character from A (6510) to Z (9010) (case sensitive)
a-zone character from a (9710) to z (12210) (case sensitive)
\sany whitespace character
&the literal & (3810 / 468 / 2616)
.the literal . (4610 / 568 / 2E16)
,the literal , (4410 / 548 / 2C16)
'the literal ' (3910 / 478 / 2716)
’the literal ’ (821710 / 200318 / 201916)
\.the literal . (4610 / 568 / 2E16)
"the literal " (3410 / 428 / 2216)
”the literal ” (822110 / 200358 / 201D16)
\sany whitespace character
Group container(?<container>[A-Z](?:(?!$)[A-Za-z\s&.,'’])+) A-Zone character from A (6510) to Z (9010) (case sensitive)
Non-Capturing Group(?:(?!$)[A-Za-z\s&.,'’])+ +repeats the group contents below at least once:
Character Class[A-Za-z\s&.,'’] A-Zone character from A (6510) to Z (9010) (case sensitive)
a-zone character from a (9710) to z (12210) (case sensitive)
\sany whitespace character
&the literal & (3810 / 468 / 2616)
.the literal . (4610 / 568 / 2E16)
,the literal , (4410 / 548 / 2C16)
'the literal ' (3910 / 478 / 2716)
’the literal ’ (821710 / 200318 / 201916)
,the literal , (4410 / 548 / 2C16)
\sany whitespace character
volthe literal text vol (case sensitive) \.the literal . (4610 / 568 / 2E16)
\sany whitespace character
Group volume(?<volume>\d+) \d+a digit, repeated at least once
,the literal , (4410 / 548 / 2C16)
\sany whitespace character
nothe literal text no (case sensitive) \.the literal . (4610 / 568 / 2E16)
\sany whitespace character
\d+a digit, repeated at least once
,the literal , (4410 / 548 / 2C16)
\sany whitespace character
Group year(?<year>[0-9]{4,4}) Character Class[0-9]{4,4} {4,4}matches exactly 4 characters from the set below:
0-9one character from 0 (4810) to 9 (5710)
,the literal , (4410 / 548 / 2C16)
\sany whitespace character
ppthe literal text pp (case sensitive) \.the literal . (4610 / 568 / 2E16)
\sany whitespace character
Group pages(?<pages>\d{1,4}[-–]\d{1,4}) \d{1,4}a digit, repeated between 1 and 4 times
-the literal - (4510 / 558 / 2D16)
–the literal – (821110 / 200238 / 201316)
\d{1,4}a digit, repeated between 1 and 4 times
\.the literal . (4610 / 568 / 2E16)
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