1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# Edition detection patterns.
= "edition"
# Case-sensitive: SE is Special Edition abbreviation (uppercase only).
[]
= "Special"
# Single-token exact matches.
[]
= "Director's Definitive Cut"
= "Director's Cut"
= "Extended"
= "Unrated"
= "Theatrical"
= "Collector"
= "Collector"
= "Ultimate"
= "Deluxe"
= "Criterion"
= "Criterion"
= "IMAX"
= "Alternative Cut"
= "Alternative Cut"
= "Limited"
= "Remastered"
= "Remastered"
= "Restored"
= "Restored"
= "Uncensored"
= "Uncut"
= "Festival"
= "Anniversary Edition"
# Multi-token patterns (matched against 2-3 token windows).
[[]]
# Director's Cut / Directors Cut / Director.Cut
= '(?i)^director.?s?[- .]?(?:definitive[- .]?)?cut$'
= "Director's Cut"
[[]]
# Extended Cut / Extended Edition
= '(?i)^extended[- .]?(?:cut|edition)$'
= "Extended"
[[]]
# Unrated Cut / Unrated Edition
= '(?i)^unrated[- .]?(?:cut|edition)$'
= "Unrated"
[[]]
# Theatrical Cut / Theatrical Edition
= '(?i)^theatrical[- .]?(?:cut|edition)$'
= "Theatrical"
[[]]
# Edition Collector / Edition Collectorx (French reversed form)
= '(?i)^edition[- ._]?collect(?:or|eur)s?$'
= "Collector"
[[]]
# Collector's Edition
= '(?i)^collector.?s?[- .]?edition$'
= "Collector"
[[]]
# Special Edition (2 tokens)
= '(?i)^special[- .]?edition$'
= "Special"
[[]]
# Edition Special (reversed order)
= '(?i)^edition[- .]?special$'
= "Special"
[[]]
# Ultimate Edition
= '(?i)^ultimate[- .]?edition$'
= "Ultimate"
[[]]
# Deluxe Edition
= '(?i)^deluxe[- .]?edition$'
= "Deluxe"
[[]]
# Anniversary Edition
= '(?i)^anniversary[- .]?edition$'
= "Anniversary Edition"
[[]]
# Criterion Collection / Criterion Edition
= '(?i)^criterion[- .]?(?:collection|edition)$'
= "Criterion"
[[]]
# IMAX Edition
= '(?i)^imax[- .]?edition$'
= "IMAX"
[[]]
# Alternative Cut / Alternate Cut
= '(?i)^(?:alternate|alternative)[- .]?cut$'
= "Alternative Cut"
[[]]
# Fan Edit / Fan Edition / Fan Collection
= '(?i)^fan[- .]?(?:edit|edition|collection)$'
= "Fan"
[[]]
# Limited Edition
= '(?i)^limited[- .]?edition$'
= "Limited"
[[]]
# 4K Remastered
= '(?i)^4k[- .]?remaster(?:ed)?$'
= "Remastered"
[[]]
# 4K Restored
= '(?i)^4k[- .]?restor(?:ed?)?$'
= "Restored"
[[]]
# Uncut Cut / Uncut Edition
= '(?i)^uncut[- .]?(?:cut|edition)$'
= "Uncut"
[[]]
# Festival Cut / Festival Edition
= '(?i)^festival[- .]?(?:cut|edition)$'
= "Festival"