"
^
# get the title of this movie or series
(?<title>
[-\w'\"]+
# match separator to later replace into correct title
(?<separator> [\s.] )
# note this must be lazy for the engine to work ltr not rtl
(?: [-\w'\"]+\2 )*?
)(?:
# if this is an episode, lets match the season
# number one way or another. if not, the year of the movie
# 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 (?: \2? )? )?
(?<season> \d\d? )
(?: e|x (?:\2? )? )
(?<episode> \d\d? )
# needed to validate the last token is a dot, or whatever.
(?: e\d\d? (?:-e?\d\d?)? | x\d\d? )?
|
# this is likely a movie, match the year
[(\[]?(?<year>\d{4})[)\]]?
)
|
# optional release name
(?:(?<release> PROPER | REPACK | LIMITED | EXTENDED | INTERNAL | NEW(?:\ SOURCE)? | NUKED | UNRATED | .*?\ EDITION | HC))
|
# optional resolution group
(?<resolution> \d{3,4}\ ?p)
|
# optional quality group
(?<quality> HDTV | WEB[-.]?DL | HDDVD | DVDRip | DVD | B[DR]Rip | Blu[-.\ ]?Ray | HDRip | WEBRIP )
|
# optional codec group
(?<codec> XviD | X26[45] | h26[45] | hevc )
|
# optional audio group
(?<audio> AC3 | AAC | DTS | DD5\.1)
|
# optional team group with hyphen prefix
(?:-(?<team>.*?))?
# optional extension group with . prefix
(?:\.(?<extension>mkv|avi|mp4|srt))?
$
"
gmix