3D
Pattern
(?<=\b[12]\d{3}\b).*\b((Blu[-]?ray|BD)?3D|((H(alf)?|F(ull)?).?)?(O(ver)?.?U(nder)?|S(ide)?[\W_]?B(y)?.?S(ide)?))\bDescription
Matches 3D stereoscopic format tags in two branches.
1. 3D tag - matches 3D optionally prefixed with Bluray or BD.
2. Stereoscopic packing format - matches Over-Under and Side-by-Side tags with an optional size prefix.
The prefix group
(H(alf)?|F(ull)?)recognises Half/H and Full/F as size indicators. The entire prefix is optional, so bare formats likeSBSorOUmatch without one. Each optional suffix (alf,ull,ver,nder,ide,y) allows both short and long forms to match from a single pattern, e.g.O(ver)?.?U(nder)?matchesOU,Over.Under, and mixed forms likeOver.UorO.Under.Word boundaries
\bat the start and end of the pattern prevent matches against substrings within larger words. For example,HOURScontainsOUbut has no word boundary betweenOand the precedingHor betweenUand the followingR, so it does not match. SimilarlyHOUSEcontainsHOUbut the trailingSEprevents a word boundary afterU.Separators between components use
.?(any single optional character) except betweenS(ide)andB(y)in the Side-by-Side pattern, which uses[\W_]?(non-word character or underscore). This is because.?would allow an alphabetic character in that position, causing false matches where a letter between S and B forms an unintended word. For example,SOBSwould match asS[O]B[]Swith.?consuming the O. Using[\W_]?restricts that position to only non-alphanumeric separators like dots, hyphens, spaces and underscores.Note that because the prefix is fully optional, double separators like
H..OUorHalf..SBSwill still match. The prefixed path fails because.?only allows one separator character, but the engine falls back to matching bareOUorSBSat the end of the string where valid word boundaries exist.A year lookbehind
(?<=\b[12]\d{3}\b)ensures the pattern only matches after a four-digit year in the filename. This is needed because3Dappears in actual movie titles (e.g. "Step Up 3D", "Jaws 3D", "Amityville 3D") and should not be matched as a format tag when it comes before the year. The lookbehind applies to the entire pattern rather than just the 3D branch to keep the regex simpler. In practice this has no effect on stereoscopic tags like SBS or OU since they do not appear in movie titles.
References
| Tags | |
|---|---|
| 3D | Banned Enhancement |
History
- Pattern changed
(?<=\b[12]\d{3}\b).*\b((Blu[-]?ray|BD)?3D|((H(alf)?|F(ull)?).?)?(O(ver)?.?U(nder)?|S(ide)?[\W_]?B(y)?.?S(ide)?))\b
Also changed in this commit
- Description changed
Matches 3D stereoscopic format tags in two branches.
1. 3D tag - matches
3Doptionally prefixed withBlurayorBD.2. Stereoscopic packing format - matches Over-Under and Side-by-Side tags with an optional size prefix.
- The prefix group
(H(alf)?|F(ull)?)recognises Half/H and Full/F as size indicators. The entire prefix is optional, so bare formats likeSBSorOUmatch without one. Each optional suffix (alf,ull,ver,nder,ide,y) allows both short and long forms to match from a single pattern, e.g.O(ver)?.?U(nder)?matchesOU,Over.Under, and mixed forms likeOver.UorO.Under.
- Word boundaries
\bat the start and end of the pattern prevent matches against substrings within larger words. For example,HOURScontainsOUbut has no word boundary betweenOand the precedingHor betweenUand the followingR, so it does not match. SimilarlyHOUSEcontainsHOUbut the trailingSEprevents a word boundary afterU.
- Separators between components use
.?(any single optional character) except betweenS(ide)andB(y)in the Side-by-Side pattern, which uses[\W_]?(non-word character or underscore). This is because.?would allow an alphabetic character in that position, causing false matches where a letter between S and B forms an unintended word. For example,SOBSwould match asS[O]B[]Swith.?consuming the O. Using[\W_]?restricts that position to only non-alphanumeric separators like dots, hyphens, spaces and underscores.
- Note that because the prefix is fully optional, double separators like
H..OUorHalf..SBSwill still match. The prefixed path fails because.?only allows one separator character, but the engine falls back to matching bareOUorSBSat the end of the string where valid word boundaries exist.
- A year lookbehind
(?<=\b[12]\d{3}\b)ensures the pattern only matches after a four-digit year in the filename. This is needed because3Dappears in actual movie titles (e.g. "Step Up 3D", "Jaws 3D", "Amityville 3D") and should not be matched as a format tag when it comes before the year. The lookbehind applies to the entire pattern rather than just the 3D branch to keep the regex simpler. In practice this has no effect on stereoscopic tags like SBS or OU since they do not appear in movie titles.
- The prefix group
- Pattern changed
(?<=\b[12]\d{3}\b).*\b((Bluray|BD)?3D|((H(alf)?|F(ull)?).?)?(O(ver)?.?U(nder)?|S(ide)?[\W_]?B(y)?.?S(ide)?))\b
- regex101 link updated to i0Ngyx/2
- Description changed
Before
Matches terms related to 3D video formats:
bluray3dorbd3d(optionalblurayorbdfollowed by3d).sbs(side-by-side).half ouorhalf sbswith space (), dot (.), or hyphen (-) as separators.
After
Matches 3D stereoscopic format tags in two branches.
1. 3D tag - matches
3Doptionally prefixed withBlurayorBD.2. Stereoscopic packing format - matches Over-Under and Side-by-Side tags with an optional size prefix.
The prefix group
(H(alf)?|F(ull)?)recognises Half/H and Full/F as size indicators. The entire prefix is optional, so bare formats likeSBSorOUmatch without one. Each optional suffix (alf,ull,ver,nder,ide,y) allows both short and long forms to match from a single pattern, e.g.O(ver)?.?U(nder)?matchesOU,Over.Under, and mixed forms likeOver.UorO.Under.Word boundaries
\bat the start and end of the pattern prevent matches against substrings within larger words. For example,HOURScontainsOUbut has no word boundary betweenOand the precedingHor betweenUand the followingR, so it does not match. SimilarlyHOUSEcontainsHOUbut the trailingSEprevents a word boundary afterU.Separators between components use
.?(any single optional character) except betweenS(ide)andB(y)in the Side-by-Side pattern, which uses[\W_]?(non-word character or underscore). This is because.?would allow an alphabetic character in that position, causing false matches where a letter between S and B forms an unintended word. For example,SOBSwould match asS[O]B[]Swith.?consuming the O. Using[\W_]?restricts that position to only non-alphanumeric separators like dots, hyphens, spaces and underscores.Note that because the prefix is fully optional, double separators like
H..OUorHalf..SBSwill still match. The prefixed path fails because.?only allows one separator character, but the engine falls back to matching bareOUorSBSat the end of the string where valid word boundaries exist.
- Pattern changed
Before
(?<=\b[12]\d{3}\b).*\b((Bluray|BD)?3D|SBS|H[- .]?OU|H[- .]?SBS|Half[ .-]?OU|Half[ .-]?SBS)\bAfter
\b((Bluray|BD)?3D|((H(alf)?|F(ull)?).?)?(O(ver)?.?U(nder)?|S(ide)?[\W_]?B(y)?.?S(ide)?))\b
- regex101 link added i0Ngyx/1
- Tags Edition Enhancement
- Pattern changed
Before
(?<=\b[12]\d{3}\b).*\b((bluray|bd)?3d|sbs|half[ .-]ou|half[ .-]sbs)\bAfter
(?<=\b[12]\d{3}\b).*\b((Bluray|BD)?3D|SBS|H[- .]?OU|H[- .]?SBS|Half[ .-]?OU|Half[ .-]?SBS)\b