regex
The regex.yml file controls how filenames are parsed using regex rules.
Syntax:
[name]: # Name of the group
pattern: [pattern] # Regex matching pattern
type: ["str", "list", "bool"] # OPTIONAL. How to parse this match. If "list", a list of possible values needs
to be defined in the config defaults. If "str", will pull out the string of
the regex match. If bool, if the pattern is found within the filename will be
set True, else False. Defaults to "bool"
flags: ["I", "NOFLAG"] # OPTIONAL. Flags to pass to regex. "I" indicates ignorecase, "NOFLAG" means no
flags. Defaults to "I"
group: [group] # OPTIONAL. Regex patterns can be grouped together into a single overarching group.
If not set, will not group
search_tags: [True, False] # OPTIONAL. If False, will search the whole string instead of tags within the file.
Defaults to True
Full file
regions:
pattern: "\\((([regions])(,\\s?)?)*\\)"
type: "list"
flags: "NOFLAG"
languages:
pattern: "\\((([languages])((,|\\+)\\s?)?)*\\)"
type: "list"
flags: "NOFLAG"
multi_disc:
pattern: "\\((Dis[ck]|Seite)[-\\s][0-9A-Z]\\)"
include_in_short_name: true
date:
pattern: "\\s?\\((?:\\d{8}|\\d{4}-\\d{2}-\\d{2}|\\d{2}-\\d{2}-\\d{4}|\\d{2}-\\d{2}-\\d{2}|\\d{4}-\\d{2}-\\d{2}T\\d{6}|~?\\d{4}-(?:\\d{2}|xx)-xx|(?:January|February|March|April|May|June|July|August|September|October|November|December),\\s?\\d{4})\\)"
type: "str"
alt:
pattern: "\\(Alt.*?\\)"
group: "alternate"
# APPLICATIONS
bracket_program:
pattern: "\\((?:Test )?Program\\)"
group: "applications"
include_in_short_name: true
non_bracket_program:
pattern: "(Check|Sample) Program"
search_tags: false
group: "applications"
include_in_short_name: true
# BAD DUMP
bad_dump:
pattern: "\\[b\\]"
search_tags: false
group: "bad_dumps"
# CONSOLE
bios:
pattern: "\\[BIOS\\]\\s?"
search_tags: false
group: "console"
include_in_short_name: true
enhancement_chip:
pattern: "\\(Enhancement Chip\\)"
group: "console"
include_in_short_name: true
# DEMOS
barai:
pattern: "\\(@barai\\)"
group: "demos"
include_in_short_name: true
demo:
pattern: "\\((?:\\w[-.]?\\s*)*Demo(?:(?:,?\\s|-)[\\w0-9\\.]*)*\\)"
group: "demos"
include_in_short_name: true
kiosk:
pattern: "\\((?:\\w-?\\s*)*?Kiosk,?(?:\\s\\w*?)*\\)|Kiosk Demo Disc|(PSP System|PS2) Kiosk"
group: "demos"
search_tags: false
include_in_short_name: true
preview:
pattern: "\\(Preview\\)"
group: "demos"
include_in_short_name: true
sample:
pattern: "\\(Sample(?:\\s[0-9]*|\\s\\d{4}-\\d{2}-\\d{2})?\\)"
group: "demos"
include_in_short_name: true
taikenban_brackets:
pattern: "\\((.*?)Taikenban(.*?)\\)"
search_tags: false
group: "demos"
include_in_short_name: true
taikenban:
pattern: "Taikenban"
search_tags: false
group: "demos"
include_in_short_name: true
trial:
pattern: "\\(Trial (Disc|Edition|Version|ver\\.)\\)"
group: "demos"
include_in_short_name: true
trial_non_bracket:
pattern: "Trial (Disc|Edition|Version|ver\\.)"
search_tags: false
group: "demos"
include_in_short_name: true
# PRE-PRODUCTION
alpha:
pattern: "\\((?:\\w*?\\s)*Alpha(?:\\s\\d+)?\\)"
group: "preproduction"
beta:
pattern: "\\((?:\\w*?\\s)*Beta(?:\\s\\d+)?\\)"
group: "preproduction"
debug:
pattern: "\\(Debug\\)"
group: "preproduction"
dev:
pattern: "\\(Dev\\)"
group: "preproduction"
prepro:
pattern: "\\((?:Pre-production|Prerelease)\\)"
group: "preproduction"
proto:
pattern: "\\((?:\\w*?\\s)*Proto(?:type)?(?:\\s\\d+)?\\)"
group: "preproduction"
# PROMOTIONAL
promo:
pattern: "EPK|Press Kit|\\(Promo\\)"
group: "promotional"
search_tags: false
include_in_short_name: true
# VERSIONS AND REVISIONS
version_no:
pattern: "\\(v[\\.0-9].*?\\)"
type: "str"
group: "version"
long_version:
pattern: "(?!Version Vol\\.|Version \\(|Version$|Version -|Version \\d-)(?: - )?\\(?(?:\\((?:\\w[\\.\\-]?\\s*)*|)[Vv]ers(?:ion|ao)\\s?(?:[\\d\\.\\-]+)+[A-Za-z]?(?: (?:\\d-?)+)?.*?(?:(?:\\w[\\.\\-]?\\s*)*\\))?"
type: "str"
transform_pattern: ".*([\\d\\.\\-]+)"
transform_repl: "v\\1"
group: "version"
revision:
pattern: "\\(R[eE][vV](?:[ -][0-9A-Z].*?)?\\)"
type: "str"
transform_pattern: "R[eE][vV][ -]([0-9A-Z].*?)?"
transform_repl: "v\\1"
# UNLICENSED
aftermarket:
pattern: "\\(Aftermarket\\)"
group: "unlicensed"
homebrew:
pattern: "\\(Homebrew\\)"
group: "unlicensed"
include_in_short_name: true
pirate:
pattern: "\\(Pirate\\)"
group: "pirate"
unl:
pattern: "\\(Unl\\)"
group: "unlicensed"
# IMPROVED VERSIONS
c_and_e:
pattern: "\\(C&E\\)"
group: "improved_version"
cart_present:
pattern: "\\(Cart Present\\)"
group: "improved_version"
cgb_sgb_enhanced:
pattern: "\\(CGB\\+SGB Enhanced\\)"
group: "improved_version"
controller_set:
pattern: "\\(Controller Set\\)"
group: "improved_version"
culture_publishers:
pattern: "\\(Culture Publishers\\)"
dsi:
pattern: "\\(DSI\\)"
group: "improved_version"
dx_pack:
pattern: "\\(DX Pack\\)"
group: "improved_version"
ebkore_plus:
pattern: "\\(ebKore Plus\\)"
group: "improved_version"
edc:
pattern: "\\(EDC\\)"
group: "improved_version"
enhanced:
pattern: "\\(Enhanced\\)"
group: "improved_version"
gb_compatible:
pattern: "\\(GB Compatible\\)"
group: "improved_version"
gba_enhanced:
pattern: "\\(GBA Enhanced\\)"
group: "improved_version"
gentei:
pattern: "\\((?:(?!\\(|Gentei.*?)[\\s\\S])*Gentei.*?\\)"
group: "improved_version"
gps_receiver_doukonban:
pattern: "\\(GPS Receiver Doukonban\\)"
group: "improved_version"
ideatek:
pattern: "\\(Idea-Tek\\)"
group: "improved_version"
ie_institute:
pattern: "\\(IE Institute\\)"
group: "improved_version"
imagineer:
pattern: "\\(Imagineer\\)"
group: "improved_version"
infinity_plus:
pattern: "\\(Infinity Plus\\)"
group: "improved_version"
later:
pattern: "\\(Later\\)"
group: "improved_version"
mega_soft:
pattern: "\\(Mega Soft\\)"
group: "improved_version"
microphone_doukoban:
pattern: "\\(Microphone Doukonban\\)"
group: "improved_version"
nina_03:
pattern: "\\(NINA-03\\)"
group: "improved_version"
nina_06:
pattern: "\\(NINA-06\\)"
group: "improved_version"
np:
pattern: "\\(NP\\)"
group: "improved_version"
premium_pack:
pattern: "\\(Premium Pack\\)"
group: "improved_version"
psone_books:
pattern: "\\(PSone Books\\)"
group: "improved_version"
renkaban:
pattern: "\\(Renkaban\\)"
group: "improved_version"
rumble_verion:
pattern: "\\(Rumble Version\\)"
group: "improved_version"
sachen:
pattern: "\\(Sachen\\)"
group: "improved_version"
sgb_enhanced:
pattern: "\\(SGB Enhanced\\)"
group: "improved_version"
sgb_enhanced_gb_compatible:
pattern: "\\(SGB Enhanced, GB Compatible\\)"
group: "improved_version"
subor_keyboard:
pattern: "\\(Subor Keyboard\\)"
group: "improved_version"
super_mega:
pattern: "\\(Super Mega\\)"
group: "improved_version"
super_value_set:
pattern: "\\(Super Value Set\\)"
group: "improved_version"
tatacon_doukon_set:
pattern: "\\(Tatacon Doukon Set\\)"
group: "improved_version"
tokubetsu:
pattern: "\\((?:(?!\\(|Tokubetsu-ban.*?)[\\s\\S])*Tokubetsu-ban.*?\\)"
group: "improved_version"
txc:
pattern: "\\(TXC\\)"
group: "improved_version"
usb_mic_doukonban:
pattern: "\\(USB Mic Doukonban\\)"
group: "improved_version"
vivendi:
pattern: "\\(Vivendi\\)"
group: "improved_version"
# BUDGET EDITIONS
artdink:
pattern: "\\(Artdink Best Choice\\)"
group: "budget_edition"
best_collection:
pattern: "\\(Best Collection\\)"
group: "budget_edition"
best_of_the_best:
pattern: "\\(Best of the Best\\)"
group: "budget_edition"
best_hit_selection:
pattern: "\\(Best Hit Selection\\)"
group: "budget_edition"
best_wing:
pattern: "\\(Best Wing 2800\\)"
group: "budget_edition"
bps_the_choice:
pattern: "\\(BPS the Choice\\)"
group: "budget_edition"
cyclone_best:
pattern: "\\(Cyclone's Best\\)"
group: "budget_edition"
digicube:
pattern: "\\(DigiCube Best Selection\\)"
group: "budget_edition"
ea_best_hits:
pattern: "\\(EA Best Hits\\)"
group: "budget_edition"
fukyuuban:
pattern: "\\(Fukyuuban\\)"
group: "budget_edition"
fukyuuban_1500:
pattern: "\\(Fukyuuban 1500\\)"
group: "budget_edition"
greatest_hits:
pattern: "\\(Greatest Hits\\)"
group: "budget_edition"
gust_best_price:
pattern: "\\(Gust Best Price\\)"
group: "budget_edition"
honkakuha:
pattern: "\\(Honkakuha de 1300\\)"
group: "budget_edition"
koei_the_best:
pattern: "\\(Koei the Best\\)"
group: "budget_edition"
major_wave:
pattern: "\\(Major Wave\\)"
group: "budget_edition"
mega_hits:
pattern: "\\(Mega Hits!\\)"
playstation_the_best:
pattern: "\\(PlayStation the Best\\)"
group: "budget_edition"
playstation_the_best_for_family:
pattern: "\\(PlayStation the Best for Family\\)"
group: "budget_edition"
playstation_2_the_best:
pattern: "\\(PlayStation 2 the Best\\)"
group: "budget_edition"
psp_the_best:
pattern: "\\(PSP The Best\\)"
group: "budget_edition"
rockstar_classics:
pattern: "\\(Rockstar Classics\\)"
group: "budget_edition"
spike_library:
pattern: "\\(Spike Library\\)"
group: "budget_edition"
spike_the_best:
pattern: "\\(Spike the Best\\)"
group: "budget_edition"
super_value_2800:
pattern: "\\(Super Value 2800\\)"
group: "budget_edition"
ultimate_hits:
pattern: "\\(Ultimate Hits\\)"
group: "budget_edition"
value_1500:
pattern: "\\(Value 1500\\)"
group: "budget_edition"
# MODERN VERSIONS
3ds_virtual_console:
pattern: "\\((?:\\w*?,?\\s)*3DS Virtual Console(?:,?\\s\\w*?)*\\)"
group: "modern_version"
battle_net:
pattern: "\\(Battle\\.net\\)"
group: "modern_version"
castlevania_anniversary:
pattern: "\\(Castlevania Anniversary Collection\\)"
group: "modern_version"
castlevania_advance:
pattern: "\\(Castlevania Advance Collection\\)"
group: "modern_version"
capcom_classics_mini_mix:
pattern: "\\(Capcom Classics Mini Mix\\)"
group: "modern_version"
capcom_town:
pattern: "\\(Capcom Town\\)"
group: "modern_version"
collection_of_mana:
pattern: "\\(Collection of Mana\\)"
group: "modern_version"
collection_of_saga:
pattern: "\\(Collection of SaGa\\)"
group: "modern_version"
columbus_circle:
pattern: "\\(Columbus Circle\\)"
group: "modern_version"
contra_anniversary:
pattern: "\\(Contra Anniversary Collection\\)"
group: "modern_version"
cowabunga_collection:
pattern: "\\(The Cowabunga Collection\\)"
group: "modern_version"
cowabunga_collection_the:
pattern: "\\(Cowabunga Collection, The\\)"
group: "modern_version"
cozmic_collection:
pattern: "\\(Darius Cozmic Collection\\)"
group: "modern_version"
disney_afternoon_collection:
pattern: "\\(The Disney Afternoon Collection\\)"
group: "modern_version"
disney_classic_games:
pattern: "\\(Disney Classic Games\\)"
group: "modern_version"
e_reader_edition:
pattern: "\\(e-Reader Edition\\)"
group: "modern_version"
gamecube:
pattern: "\\(Game[Cc]ube.*?\\)"
group: "modern_version"
iam8bit:
pattern: "\\(iam8bit\\)"
group: "modern_version"
konami_collector_series:
pattern: "\\(Konami Collector's Series\\)"
group: "modern_version"
mega_man_battle_network_legacy_collection:
pattern: "\\(Mega Man Battle Network Legacy Collection\\)"
group: "modern_version"
mega_man_legacy_collection:
pattern: "\\(Mega Man Legacy Collection\\)"
group: "modern_version"
mega_man_x_legacy:
pattern: "\\(Mega Man X Legacy Collection\\)"
group: "modern_version"
namco_anthology_1:
pattern: "\\(Namco Anthology 1.*?\\)"
group: "modern_version"
namco_anthology_2:
pattern: "\\(Namco Anthology 2.*?\\)"
group: "modern_version"
namcot_collection:
pattern: "\\s?\\(Namcot Collection.*?\\)"
group: "modern_version"
namco_museum_archives:
pattern: "\\(Namco Museum Archives Vol [0-9]\\)"
group: "modern_version"
ninja_jajamaru_retro:
pattern: "\\(Ninja JaJaMaru Retro Collection\\)"
group: "modern_version"
pokemon_box:
pattern: "\\(Pokemon Box\\)"
group: "modern_version"
qubyte_classic:
pattern: "\\(QUByte Classics\\)"
group: "modern_version"
retro_bit:
pattern: "\\(Retro-Bit\\)"
group: "modern_version"
retro_bit_generations:
pattern: "\\(Retro-Bit Generations\\)"
group: "modern_version"
rockman_123:
pattern: "\\(Rockman 123\\)"
group: "modern_version"
seiken_denetsu_collection:
pattern: "\\(Seiken Densetsu Collection\\)"
group: "modern_version"
snk_40th_anniversary:
pattern: "\\(SNK 40th Anniversary Collection\\)"
group: "modern_version"
steam:
pattern: "\\(Steam\\)"
group: "modern_version"
switch:
pattern: "\\(Switch\\)"
group: "modern_version"
switch_version:
pattern: "\\s?\\((?:\\w*?,?\\s)*Switch Version(?:,?\\s\\w*?)*\\)"
group: "modern_version"
switch_release:
pattern: "\\s?\\((?:\\w*?,?\\s)*Switch Release(?:,?\\s\\w*?)*\\)"
group: "modern_version"
switch_online:
pattern: "\\s?\\((?:\\w*?,?\\s)*Switch Online(?:,?\\s\\w*?)*\\)"
group: "modern_version"
virtual_console:
pattern: "\\(Virtual Console\\)"
group: "modern_version"
wii:
pattern: "\\(Wii\\)"
group: "modern_version"
wii_virtual_console:
pattern: "\\((?:\\w*?,?\\s)*Wii Virtual Console(?:,?\\s\\w*?)*\\)"
group: "modern_version"
wiiu_virtual_console:
pattern: "\\((?:\\w*?,?\\s)*Wii\\s?U Virtual Console(?:,?\\s\\w*?)*\\)"
group: "modern_version"
wii_and_wiiu_virtual_console:
pattern: "\\((?:\\w*?,?\\s)*Wii Virtual Console, Wii\\s?U Virtual Console(?:,?\\s\\w*?)*\\)"
group: "modern_version"
# DEMOTED VERSIONS
arcade:
pattern: "\\(Arcade\\)"
group: "demoted_version"
asder:
pattern: "\\(Asder\\)"
group: "demoted_version"
caltron:
pattern: "\\(Caltron\\)"
group: "demoted_version"
competition_cart:
pattern: "\\(Competition Cart.*?\\)"
group: "demoted_version"
coolboy:
pattern: "\\(Coolboy\\)"
group: "demoted_version"
debug_version:
pattern: "\\(Debug Version\\)"
group: "demoted_version"
digital:
pattern: "\\(Digital\\)"
group: "demoted_version"
earlier:
pattern: "\\(Earlier\\)"
group: "demoted_version"
early:
pattern: "\\(Early\\)"
group: "demoted_version"
evercade:
pattern: "\\(Evercade\\)"
group: "demoted_version"
famicombox:
pattern: "\\(FamicomBox\\)"
group: "demoted_version"
fs005:
pattern: "\\(FS005\\)"
group: "demoted_version"
hwang_shinwei:
pattern: "\\(Hwang Shinwei\\)"
group: "demoted_version"
jncota:
pattern: "\\(Jncota\\)"
group: "demoted_version"
jy_company:
pattern: "\\(J\\.Y\\. Company\\)"
group: "demoted_version"
kaiser:
pattern: "\\(Kaiser\\)"
group: "demoted_version"
ka_sheng:
pattern: "\\(Ka Sheng\\)"
group: "demoted_version"
kickstarter:
pattern: "\\(Kickstarter\\)"
group: "demoted_version"
kickstarter_evercade:
pattern: "\\(Kickstarter\\, Evercade\\)"
group: "demoted_version"
kickstarter_version:
pattern: "\\(Kickstarter Version\\)"
group: "demoted_version"
limited_run:
pattern: "\\(Limited Run Games\\)"
group: "demoted_version"
mb91:
pattern: "\\(MB-91\\)"
group: "demoted_version"
mbc3:
pattern: "\\(MBC3\\)"
group: "demoted_version"
mbc5:
pattern: "\\(MBC5\\)"
group: "demoted_version"
micro_genius:
pattern: "\\(Micro Genius\\)"
group: "demoted_version"
nintendoage:
pattern: "\\(NintendoAge\\)"
group: "demoted_version"
no_cart_present:
pattern: "\\(No Cart Present\\)"
group: "demoted_version"
not_for_resale:
pattern: "\\(Not for Resale\\)"
group: "demoted_version"
piko_interactive:
pattern: "\\(Piko Interactive\\)"
group: "demote_version"
pixel_heart:
pattern: "\\(Pixel Heart\\)"
group: "demoted_version"
rerelease:
pattern: "\\(Rerelease\\)"
group: "demoted_version"
reprint:
pattern: "\\(Reprint\\)"
group: "demoted_version"
retrozone:
pattern: "\\(RetroZone\\)"
group: "demoted_version"
shokai_seisanban:
pattern: "\\(Shokai Seisanban\\)"
group: "demoted_version"
whirlwind_manu:
pattern: "\\(Whirlwind Manu\\)"
group: "demoted_version"
# GENERALLY IGNORE
l_tags:
pattern: "\\s?\\(L[ABCDEFGH]\\d{2,2}\\)"
knv_st_tags:
pattern: "\\s?\\([KNV][ST]-\\d{3,4}[A-Z]?\\)"
jy_tags:
pattern: "\\s?\\(JY-?\\d{3,3}\\)"
60_pin_cart:
pattern: "\\(60 pin cart\\)"
72_pin_cart:
pattern: "\\(72 pin cart\\)"
strictly_limited:
pattern: "\\(Strictly Limited Games\\)"
multi_tap_doukoban:
pattern: "\\(Multi Tap.*?Doukonban\\)"
ntdec:
pattern: "\\(NTDEC\\)"
ntsc:
pattern: "([?:-][\\s])?[(]?NTSC\\)?"
flags: "NOFLAG"
pal:
pattern: "([?:-][\\s])?[(]?PAL(?: [a-zA-Z]+| 50[Hh]z)?(?:\\)?| (?=\\())"
flags: "NOFLAG"
supervision:
pattern: "\\(SuperVision\\)"
43_406_pcb:
pattern: "\\(43-406 PCB\\)"
fw:
pattern: "\\(FW[0-9].*?\\)"
u_numbers:
pattern: "\\(U[CLT][EJUS][BST]-\\d{5}\\)"
p_s_numbers:
pattern: "\\s?\\([PS][BCL][EKPU][ADHMNSX]-\\d{5}\\)"
product_ids:
pattern: "\\((?:A[BDEFNPS]|B[58DFJNPT]|CX|FT|JE|K[AFIKMRZ]|PN|QA|RC|S[KN]|T[ABCJQ]|V[BEJKLMW]|Y[XW])[ABCDEFGHIKJMLNPQSTUVWYZ0-9][DEJPVXYZ]\\)"