r"
^
# get the title of this movie or series
(?P<title>
[-\w'\"]+
# match separator to later replace into correct title
(?P<separator> [ .] )
# note this *must* be lazy for the engine to work ltr not rtl
(?: [-\w'\"]+\2 )*?
)
# start of movie vs serie check
(?:
# if this is an episode, lets match the season
# number one way or another. if not, the year
# of the movie
(?:
# series. can be a lot prettier if we used perl regex...
# make sure this is not just a number in the title followed by our separator.
# like, iron man 3 2013 or my.fictional.24.series
(?! \d+ \2 )
# now try to match the season number
(?: s (?: eason \2? )? )?