Comment: series. can be a lot prettier if we used perl regex...
Comment: make sure this is not just a number in the title followed by our separator.
Comment: like, iron man 3 2013 or my.fictional.24.series
Negative Lookahead(?! \d+ \2 ) \d+a Unicode decimal digit, repeated at least once
\2the text saved by group 2
Comment: now try to match the season number
Non-Capturing Group(?: s (?: eason \2? )? )? ?repeats the group contents below at most once:
s the literal text s (case insensitive) Non-Capturing Group(?: eason \2? )? ?repeats the group contents below at most once:
eason the literal text eason (case insensitive) \2?optionally matches the text saved by group 2
Group season(?P<season> \d\d? ) \da Unicode decimal digit
\d?optionally matches a Unicode decimal digit
Comment: needed to validate the last token is a dot, or whatever.
Non-Capturing Group(?: e\d\d? (?:-e?\d\d?)? | x\d\d? )? ?repeats the group contents below at most once:
1st Alternative e\d\d? (?:-e?\d\d?)? ethe literal text e (case insensitive) \da Unicode decimal digit
\d?optionally matches a Unicode decimal digit
Non-Capturing Group(?:-e?\d\d?)? ?repeats the group contents below at most once:
-the literal - (4510 / 558 / 2D16)
e?optionally matches the literal e (10110 / 1458 / 6516) (case insensitive)
\da Unicode decimal digit
\d?optionally matches a Unicode decimal digit
xthe literal text x (case insensitive) \da Unicode decimal digit
\d?optionally matches a Unicode decimal digit