use std::ops::Deref;
use lazy_regex::regex;
use once_cell::sync::Lazy;
use regex::Regex;
use crate::{detect, FileType, FileTypeResolver};
pub(crate) struct Pattern {
pub(crate) resolver: FileTypeResolver,
pub(crate) priority: Option<isize>,
}
impl Pattern {
fn new(resolver: FileTypeResolver, priority: Option<isize>) -> Self {
Self { resolver, priority }
}
fn starsetf(resolver: FileTypeResolver, priority: Option<isize>) -> Self {
Self {
resolver,
priority: priority.or(Some(isize::MIN)),
}
}
}
#[rustfmt::skip]
pub(crate) static PATTERN: Lazy<Vec<(bool, &'static Regex, Pattern)>> = Lazy::new(|| {
let mut vec = vec![
(true, regex!(r"^.*debian/tests/control$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Autopkgtest), None)),
(true, regex!(r"^.*debian/changelog$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DebChangelog), None)),
(true, regex!(r"^.*debian/control$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DebControl), None)),
(true, regex!(r"^.*debian/copyright$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DebCopyright), None)),
(true, regex!(r"^.*debian/patches/").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::dep3patch), None)),
(true, regex!(r"^.*etc/a2ps/.*\.cfg$").deref(), Pattern::new(FileTypeResolver::Static(FileType::A2ps), None)),
(true, regex!(r"^.*etc/a2ps\.cfg$").deref(), Pattern::new(FileTypeResolver::Static(FileType::A2ps), None)),
(true, regex!(r"^.*etc/asound\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::AlsaConf), None)),
(true, regex!(r"^.*etc/apache2/sites.*/.*\.com$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Apache), None)),
(true, regex!(r"^.*etc/httpd/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Apache), None)),
(true, regex!(r"^.*etc/proftpd/.*\.conf").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::ApacheStyle), None)),
(true, regex!(r"^.*etc/proftpd/conf\..*/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::ApacheStyle), None)),
(true, regex!(r"^.*etc/cdrdao\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::CdrdaoConf), None)),
(true, regex!(r"^.*etc/default/cdrdao$").deref(), Pattern::new(FileTypeResolver::Static(FileType::CdrdaoConf), None)),
(true, regex!(r"^.*etc/defaults/cdrdao$").deref(), Pattern::new(FileTypeResolver::Static(FileType::CdrdaoConf), None)),
(true, regex!(r"^.*etc/translateshell$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Clojure), None)),
(true, regex!(r"^.*etc/hostname\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Config), None)),
(true, regex!(r"^.*etc/cron\.d/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Crontab), None)),
(true, regex!(r"^.*etc/apt/sources\.list\.d/.*\.sources$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DebSources), None)),
(true, regex!(r"^.*etc/apt/sources\.list\.d/.*\.list$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DebSources), None)),
(true, regex!(r"^.*etc/apt/sources\.list$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DebSources), None)),
(true, regex!(r"^.*etc/DIR_COLORS$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DirColors), None)),
(true, regex!(r"^.*etc/dnsmasq\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DnsMasq), None)),
(true, regex!(r"^.*etc/dnsmasq\.d/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::DnsMasq), None)),
(true, regex!(r"^.*etc/yum\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DosIni), None)),
(true, regex!(r"^.*etc/yum\.repos\.d/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::DosIni), None)),
(true, regex!(r"^.*etc/gitconfig\.d/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::GitConfig), None)),
(true, regex!(r"^.*etc/gitconfig$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitConfig), None)),
(true, regex!(r"^.*etc/gitattributes$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitAttributes), None)),
(true, regex!(r"^.*etc/group$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Group), None)),
(true, regex!(r"^.*etc/group$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Group), None)),
(true, regex!(r"^.*etc/group\.edit$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Group), None)),
(true, regex!(r"^.*etc/gshadow$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Group), None)),
(true, regex!(r"^.*etc/gshadow\.edit$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Group), None)),
(true, regex!(r"^.*etc/gshadow$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Group), None)),
(true, regex!(r"^.*etc/grub\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Grub), None)),
(true, regex!(r"^.*etc/host\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::HostConf), None)),
(true, regex!(r"^.*etc/hosts\.allow$").deref(), Pattern::new(FileTypeResolver::Static(FileType::HostsAccess), None)),
(true, regex!(r"^.*etc/hosts\.deny$").deref(), Pattern::new(FileTypeResolver::Static(FileType::HostsAccess), None)),
(true, regex!(r"^.*etc/initng/.*/.*\.i$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Initng), None)),
(true, regex!(r"^.*etc/libao\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Libao), None)),
(true, regex!(r"^.*etc/.*limits\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Limits), None)),
(true, regex!(r"^.*etc/.*limits\.d/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Limits), None)),
(true, regex!(r"^.*etc/limits$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Limits), None)),
(true, regex!(r"^.*etc/logcheck/.*\.d.*/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::LogCheck), None)),
(true, regex!(r"^.*etc/login\.access$").deref(), Pattern::new(FileTypeResolver::Static(FileType::LoginAccess), None)),
(true, regex!(r"^.*etc/login\.defs$").deref(), Pattern::new(FileTypeResolver::Static(FileType::LoginDefs), None)),
(true, regex!(r"^.*etc/aliases$").deref(), Pattern::new(FileTypeResolver::Static(FileType::MailAliases), None)),
(true, regex!(r"^.*etc/mail/aliases$").deref(), Pattern::new(FileTypeResolver::Static(FileType::MailAliases), None)),
(true, regex!(r"^.*etc/man\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::ManConf), None)),
(true, regex!(r"^.*etc/conf\.modules$").deref(), Pattern::new(FileTypeResolver::Static(FileType::ModConf), None)),
(true, regex!(r"^.*etc/modprobe\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::ModConf), None)),
(true, regex!(r"^.*etc/modules\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::ModConf), None)),
(true, regex!(r"^.*etc/modules$").deref(), Pattern::new(FileTypeResolver::Static(FileType::ModConf), None)),
(true, regex!(r"^.*etc/Muttrc\.d/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Muttrc), None)),
(true, regex!(r"^.*etc/nanorc$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Nanorc), None)),
(true, regex!(r"^.*etc/nginx/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Nginx), None)),
(true, regex!(r"^.*etc/pam\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::PamConf), None)),
(true, regex!(r"^.*etc/pam\.d/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::PamConf), None)),
(true, regex!(r"^.*etc/passwd$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Passwd), None)),
(true, regex!(r"^.*etc/shadow$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Passwd), None)),
(true, regex!(r"^.*etc/shadow\.edit$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Passwd), None)),
(true, regex!(r"^.*etc/passwd$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Passwd), None)),
(true, regex!(r"^.*etc/passwd\.edit$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Passwd), None)),
(true, regex!(r"^.*etc/shadow$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Passwd), None)),
(true, regex!(r"^.*etc/pinforc$").deref(), Pattern::new(FileTypeResolver::Static(FileType::PInfo), None)),
(true, regex!(r"^.*etc/protocols$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Protocols), None)),
(true, regex!(r"^.*etc/sensors\.d/[^.]").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Sensors), None)),
(true, regex!(r"^.*etc/sensors\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Sensors), None)),
(true, regex!(r"^.*etc/sensors3\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Sensors), None)),
(true, regex!(r"^.*etc/services$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Services), None)),
(true, regex!(r"^.*etc/serial\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::SetSerial), None)),
(true, regex!(r"^.*etc/udev/cdsymlinks\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Sh), None)),
(true, regex!(r"^.*etc/slp\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::SlpConf), None)),
(true, regex!(r"^.*etc/slp\.reg$").deref(), Pattern::new(FileTypeResolver::Static(FileType::SlpReg), None)),
(true, regex!(r"^.*etc/slp\.spi$").deref(), Pattern::new(FileTypeResolver::Static(FileType::SlpSpi), None)),
(true, regex!(r"^.*etc/sudoers\.d/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Sudoers), None)),
(true, regex!(r"^.*etc/ssh/ssh_config\.d/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::SshConfig), None)),
(true, regex!(r"^.*etc/ssh/sshd_config\.d/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::SshdConfig), None)),
(true, regex!(r"^.*etc/sudoers$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Sudoers), None)),
(true, regex!(r"^.*etc/sysctl\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Sysctl), None)),
(true, regex!(r"^.*etc/sysctl\.d/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Sysctl), None)),
(true, regex!(r"^.*etc/systemd/.*\.conf\.d/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/systemd/system/.*\.d/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/systemd/system/.*\.d/\.#").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/systemd/system/\.#").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*/.*\.artifact$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*/.*\.build$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*/.*\.container$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*/.*\.image$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*/.*\.kube$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*/.*\.network$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*/.*\.pod$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*/.*\.volume$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*\.artifact$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*\.build$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*\.container$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*\.image$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*\.kube$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*\.network$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*\.pod$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*\.volume$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*/.*\.d/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/containers/systemd/users/.*\.d/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/udev/udev\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::UdevConf), None)),
(true, regex!(r"^.*etc/udev/permissions\.d/.*\.permissions$").deref(), Pattern::new(FileTypeResolver::Static(FileType::UdevPerm), None)),
(true, regex!(r"^.*etc/updatedb\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::UpdateDb), None)),
(true, regex!(r"^.*etc/init/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Upstart), None)),
(true, regex!(r"^.*etc/init/.*\.override$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Upstart), None)),
(true, regex!(r"^.*etc/xinetd\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Xinetd), None)),
(true, regex!(r"^.*etc/xinetd\.d/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Xinetd), None)),
(true, regex!(r"^.*etc/blkid\.tab\.old$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Xml), None)),
(true, regex!(r"^.*etc/blkid\.tab$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Xml), None)),
(true, regex!(r"^.*etc/xdg/menus/.*\.menu$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Xml), None)),
(true, regex!(r"^.*etc/zprofile$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Zsh), None)),
(true, regex!(r"^.*log/auth\.crit$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.err$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.info$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.log$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.notice$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.warn$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.crit$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.err$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.info$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.log$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.notice$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.warn$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.crit$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.err$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.info$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.log$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.notice$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.warn$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.crit$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.err$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.info$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.log$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.notice$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.warn$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.crit$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.err$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.info$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.log$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.notice$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.warn$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.crit$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.err$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.info$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.log$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.notice$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.warn$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.crit$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.err$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.info$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.log$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.notice$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.warn$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.crit$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.err$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.info$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.log$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.notice$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.warn$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.crit$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.err$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.info$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.log$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.notice$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.warn$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.crit$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.err$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.info$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.log$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.notice$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.warn$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.crit$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.err$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.info$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.log$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.notice$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.warn$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.crit\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.err\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.info\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.log\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.notice\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.warn\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.crit\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.err\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.info\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.log\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.notice\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.warn\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.crit\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.err\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.info\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.log\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.notice\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.warn\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.crit\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.err\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.info\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.log\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.notice\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.warn\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.crit\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.err\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.info\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.log\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.notice\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.warn\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.crit\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.err\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.info\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.log\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.notice\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.warn\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.crit\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.err\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.info\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.log\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.notice\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.warn\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.crit\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.err\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.info\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.log\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.notice\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.warn\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.crit\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.err\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.info\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.log\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.notice\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.warn\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.crit\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.err\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.info\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.log\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.notice\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.warn\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.crit\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.err\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.info\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.log\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.notice\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.warn\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.crit[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.err[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.info[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.log[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.notice[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth\.warn[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/auth[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.crit[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.err[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.info[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.log[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.notice[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron\.warn[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/cron[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.crit[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.err[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.info[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.log[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.notice[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon\.warn[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/daemon[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.crit[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.err[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.info[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.log[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.notice[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug\.warn[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/debug[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.crit[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.err[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.info[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.log[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.notice[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern\.warn[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/kern[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.crit[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.err[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.info[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.log[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.notice[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr\.warn[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/lpr[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.crit[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.err[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.info[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.log[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.notice[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail\.warn[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/mail[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.crit[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.err[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.info[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.log[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.notice[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages\.warn[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/messages[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.crit[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.err[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.info[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.log[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.notice[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news\.warn[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/news/news[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.crit[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.err[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.info[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.log[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.notice[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog\.warn[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/syslog[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.crit[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.err[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.info[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.log[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.notice[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user\.warn[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*log/user[0-9]\*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Messages), None)),
(true, regex!(r"^.*\.config/systemd/user/\.#").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*\.config/systemd/user/.*\.d/\.#").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*\.config/systemd/user/.*\.d/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*containers/systemd/.*\.artifact$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*containers/systemd/.*\.build$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*containers/systemd/.*\.container$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*containers/systemd/.*\.image$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*containers/systemd/.*\.kube$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*containers/systemd/.*\.network$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*containers/systemd/.*\.pod$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*containers/systemd/.*\.volume$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*systemd/.*\.automount$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*systemd/.*\.dnssd$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*systemd/.*\.link$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*systemd/.*\.mount$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*systemd/.*\.netdev$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*systemd/.*\.network$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*systemd/.*\.nspawn$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*systemd/.*\.path$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*systemd/.*\.service$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*systemd/.*\.slice$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*systemd/.*\.socket$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*systemd/.*\.swap$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*systemd/.*\.target$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*systemd/.*\.timer$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*usr/share/alsa/alsa\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::AlsaConf), None)),
(true, regex!(r"^.*usr/.*/gnupg/options\.skel$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Gpg), None)),
(true, regex!(r"^.*usr/share/upstart/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Upstart), None)),
(true, regex!(r"^.*usr/share/upstart/.*\.override$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Upstart), None)),
(true, regex!(r"^.*var/backups/group\.bak$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Group), None)),
(true, regex!(r"^.*var/backups/gshadow\.bak$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Group), None)),
(true, regex!(r"^.*var/backups/passwd\.bak$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Passwd), None)),
(true, regex!(r"^.*var/backups/shadow\.bak$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Passwd), None)),
(true, regex!(r"^.*\.aptitude/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::AptConf), None)),
(true, regex!(r"^.*build/conf/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Bitbake), None)),
(true, regex!(r"^.*meta.*/conf/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Bitbake), None)),
(true, regex!(r"^.*meta/conf/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Bitbake), None)),
(true, regex!(r"^.*projectspec/configs/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Bitbake), None)),
(true, regex!(r"^.*\.cabal/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::CabalConfig), None)),
(true, regex!(r"^.*cabal/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::CabalConfig), None)),
(true, regex!(r"^.*\.aws/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::ConfIni), None)),
(true, regex!(r"^.*bpython/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DosIni), None)),
(true, regex!(r"^.*flatpak/repo/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DosIni), None)),
(true, regex!(r"^.*mypy/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DosIni), None)),
(true, regex!(r"^$\{HOME\}/\.config/notmuch/.*/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DosIni), None)),
(true, regex!(r"^$\{XDG_CONFIG_HOME\}/notmuch/.*/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DosIni), None)),
(true, regex!(r"^$\{XDG_CONFIG_HOME\}/git/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitConfig), None)),
(true, regex!(r"^.*\.git/config\.worktree$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitConfig), None)),
(true, regex!(r"^.*\.git/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitConfig), None)),
(true, regex!(r"^.*\.git/modules/.*/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitConfig), None)),
(true, regex!(r"^.*\.git/modules/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitConfig), None)),
(true, regex!(r"^.*\.git/worktrees/.*/config\.worktree$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitConfig), None)),
(true, regex!(r"^.*\.config/git/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitConfig), None)),
(true, regex!(r"^.*gitoliteadmin/conf/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::GitOlite), None)),
(true, regex!(r"^.*\.i3/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::I3Config), None)),
(true, regex!(r"^.*i3/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::I3Config), None)),
(true, regex!(r"^.*waybar/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::JsonC), None)),
(true, regex!(r"^.*\.mplayer/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::MPlayerConf), None)),
(true, regex!(r"^.*supertux2/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Scheme), None)),
(true, regex!(r"^.*neofetch/config\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Sh), None)),
(true, regex!(r"^.*\.ssh/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::SshConfig), None)),
(true, regex!(r"^.*\.sway/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::SwayConfig), None)),
(true, regex!(r"^.*sway/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::SwayConfig), None)),
(true, regex!(r"^.*sway/config\.d/").deref(), Pattern::new(FileTypeResolver::Static(FileType::SwayConfig), None)),
(true, regex!(r"^.*\.cargo/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Toml), None)),
(true, regex!(r"^.*\.bundle/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Yaml), None)),
(true, regex!(r"^.*\.kube/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Yaml), None)),
(true, regex!(r"^.*\.aws/credentials$").deref(), Pattern::new(FileTypeResolver::Static(FileType::ConfIni), None)),
(true, regex!(r"^.*\.aws/cli/alias$").deref(), Pattern::new(FileTypeResolver::Static(FileType::ConfIni), None)),
(true, regex!(r"^.*\.gitconfig\.d/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::GitConfig), None)),
(true, regex!(r"^.*\.gnupg/gpg\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Gpg), None)),
(true, regex!(r"^.*\.gnupg/options$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Gpg), None)),
(true, regex!(r"^.*\.icewm/menu$").deref(), Pattern::new(FileTypeResolver::Static(FileType::IceMenu), None)),
(true, regex!(r"^.*\.libao$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Libao), None)),
(true, regex!(r"^.*\.pinforc$").deref(), Pattern::new(FileTypeResolver::Static(FileType::PInfo), None)),
(true, regex!(r"^.*\.cargo/credentials$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Toml), None)),
(true, regex!(r"^.*\.init/.*\.override$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Upstart), None)),
(true, regex!(r"^.*\.kube/kuberc$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Yaml), None)),
(true, regex!(r"^.*\.calendar/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Calendar), None)),
(true, regex!(r"^.*share/calendar/.*/calendar\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Calendar), None)),
(true, regex!(r"^.*share/calendar/calendar\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Calendar), None)),
(true, regex!(r"^.*\.\?cmus/.*\.theme$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Cmusrc), None)),
(true, regex!(r"^.*\.\?cmus/rc$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Cmusrc), None)),
(true, regex!(r"^.*\.cmus/autosave$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Cmusrc), None)),
(true, regex!(r"^.*\.cmus/commandhistory$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Cmusrc), None)),
(true, regex!(r"^$\{XDG_CONFIG_HOME\}/git/attributes$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitAttributes), None)),
(true, regex!(r"^.*\.git/info/attributes$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitAttributes), None)),
(true, regex!(r"^.*\.config/git/attributes$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitAttributes), None)),
(true, regex!(r"^$\{XDG_CONFIG_HOME\}/git/ignore$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitIgnore), None)),
(true, regex!(r"^.*\.git/info/exclude$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitIgnore), None)),
(true, regex!(r"^.*\.config/git/ignore$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitIgnore), None)),
(true, regex!(r"^.*enlightenment/.*\.cfg$").deref(), Pattern::new(FileTypeResolver::Static(FileType::C), None)),
(true, regex!(r"^.*Eterm/.*\.cfg$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Eterm), None)),
(true, regex!(r"^.*baseq[2-3]/.*\.cfg$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Quake), None)),
(true, regex!(r"^.*id1/.*\.cfg$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Quake), None)),
(true, regex!(r"^.*quake[1-3]/.*\.cfg$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Quake), None)),
(true, regex!(r"^.*tex/latex/.*\.cfg$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Tex), None)),
(false, regex!(r"^proftpd\.conf").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::ApacheStyle), None)),
(true, regex!(r"^.*asterisk/.*\.conf").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Asterisk), None)),
(true, regex!(r"^.*asterisk.*/.*voicemail\.conf").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::AsteriskVoiceMail), None)),
(false, regex!(r"^dictd.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DictdConf), None)),
(true, regex!(r"^.*\.\?gnuradio/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::ConfIni), None)),
(true, regex!(r"^.*gnuradio/conf\.d/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::ConfIni), None)),
(true, regex!(r"^.*lxqt/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DosIni), None)),
(true, regex!(r"^.*screengrab/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DosIni), None)),
(true, regex!(r"^.*\.config/fd/ignore$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitIgnore), None)),
(true, regex!(r"^$\{GNUPGHOME\}/gpg\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Gpg), None)),
(true, regex!(r"^.*boot/grub/grub\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Grub), None)),
(true, regex!(r"^.*hypr/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Hyprlang), None)),
(true, regex!(r"^.*kitty/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Kitty), None)),
(false, regex!(r"^lilo\.conf").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Lilo), None)),
(false, regex!(r"^named.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Named), None)),
(false, regex!(r"^rndc.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Named), None)),
(true, regex!(r"^.*openvpn/.*/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::OpenVpn), None)),
(true, regex!(r"^.*pipewire/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Spajson), None)),
(true, regex!(r"^.*wireplumber/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Spajson), None)),
(true, regex!(r"^.*\.ssh/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::SshConfig), None)),
(true, regex!(r"^.*containers/systemd/.*\.d/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(false, regex!(r"^\.\?tmux.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Tmux), None)),
(false, regex!(r"^\.\?tmux.*\.conf").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Tmux), None)),
(true, regex!(r"^.*containers/containers\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Toml), None)),
(true, regex!(r"^.*containers/containers\.conf\.d/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Toml), None)),
(true, regex!(r"^.*containers/containers\.conf\.modules/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Toml), None)),
(true, regex!(r"^.*containers/registries\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Toml), None)),
(true, regex!(r"^.*containers/registries\.conf\.d/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Toml), None)),
(true, regex!(r"^.*containers/storage\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Toml), None)),
(true, regex!(r"^.*\.config/upstart/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Upstart), None)),
(true, regex!(r"^.*\.config/upstart/.*\.override$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Upstart), None)),
(true, regex!(r"^.*\.init/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Upstart), None)),
(true, regex!(r"^.*xorg\.conf\.d/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::xfree86), None)),
(false, regex!(r"^.*\.sst\.meta$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Sisu), None)),
(false, regex!(r"^.*\._sst\.meta$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Sisu), None)),
(false, regex!(r"^.*\.sst\.meta$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Sisu), None)),
(false, regex!(r"^Containerfile\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Dockerfile), None)),
(false, regex!(r"^Dockerfile\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Dockerfile), None)),
(false, regex!(r"^.*[mM]akefile$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::make), None)),
(false, regex!(r"^[mM]akefile").deref(), Pattern::starsetf(FileTypeResolver::Dynamic(detect::make), None)),
(false, regex!(r"^[rR]akefile").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Ruby), None)),
(true, regex!(r"^.*\.fvwm/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Fvwm), None)),
(false, regex!(r"^.*fvwmrc").deref(), Pattern::starsetf(FileTypeResolver::Dynamic(detect::fvwm), None)),
(false, regex!(r"^.*fvwm95.*\.hook$").deref(), Pattern::starsetf(FileTypeResolver::Dynamic(detect::fvwm), None)),
(false, regex!(r"^.*fvwm2rc").deref(), Pattern::starsetf(FileTypeResolver::Dynamic(detect::fvwm), None)),
(true, regex!(r"^.*nginx/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Nginx), None)),
(true, regex!(r"^.*usr/local/nginx/conf/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Nginx), None)),
(false, regex!(r"^.*nginx\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Nginx), None)),
(false, regex!(r"^nginx.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Nginx), None)),
(false, regex!(r"^.*requirements\.txt$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Requirements), None)),
(false, regex!(r"^requirements.*\.txt$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Requirements), None)),
(true, regex!(r"^requirements/.*\.txt$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Requirements), None)),
(true, regex!(r"^requires/.*\.txt$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Requirements), None)),
(true, regex!(r"^.*s6.*/down$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Execline), None)),
(true, regex!(r"^.*s6.*/finish$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Execline), None)),
(true, regex!(r"^.*s6.*/run$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Execline), None)),
(true, regex!(r"^.*s6.*/up$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Execline), None)),
(false, regex!(r"^s6").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Execline), None)),
(false, regex!(r"^mutt.*[0-9a-zA-Z_]\+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^muttng.*[0-9a-zA-Z_]\+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^neomutt.*[0-9a-zA-Z_]\+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^.*\.neomuttdebug").deref(), Pattern::new(FileTypeResolver::Static(FileType::Neomuttlog), None)),
(true, regex!(r"^.*m17n/.*\.ali$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17n/.*\.cs$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17n/.*\.dir$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17n/.*\.flt$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17n/.*\.fst$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17n/.*\.lnm$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17n/.*\.mic$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17n/.*\.mim$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17n/.*\.tbl$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*\.m17n\.d/.*\.ali$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*\.m17n\.d/.*\.cs$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*\.m17n\.d/.*\.dir$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*\.m17n\.d/.*\.flt$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*\.m17n\.d/.*\.fst$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*\.m17n\.d/.*\.lnm$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*\.m17n\.d/.*\.mic$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*\.m17n\.d/.*\.mim$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*\.m17n\.d/.*\.tbl$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17ndb/.*\.ali$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17ndb/.*\.cs$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17ndb/.*\.dir$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17ndb/.*\.flt$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17ndb/.*\.fst$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17ndb/.*\.lnm$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17ndb/.*\.mic$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17ndb/.*\.mim$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(true, regex!(r"^.*m17ndb/.*\.tbl$").deref(), Pattern::new(FileTypeResolver::Static(FileType::M17ndb), None)),
(false, regex!(r"^\.cshrc").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::csh), None)),
(false, regex!(r"^\.login").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::csh), None)),
(false, regex!(r"^\.notmuchconfig\.").deref(), Pattern::new(FileTypeResolver::Static(FileType::DosIni), None)),
(false, regex!(r"^\.gitsendemail\.msg\.......$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitSendEmail), None)),
(false, regex!(r"^\.article\.[0-9]\+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^\.letter\.[0-9]\+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^\.reminders").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Remind), None)),
(false, regex!(r"^\.zcompdump").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Zsh), None)),
(false, regex!(r"^.*\.csproj\.user$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Xml), None)),
(false, regex!(r"^.*\.fsproj\.user$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Xml), None)),
(false, regex!(r"^.*\.vbproj\.user$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Xml), None)),
(true, regex!(r"^.*bind/db\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Bindzone), None)),
(true, regex!(r"^.*named/db\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Bindzone), None)),
(false, regex!(r"^.*\.blade\.php$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Blade), None)),
(false, regex!(r"^bzr_log\.").deref(), Pattern::new(FileTypeResolver::Static(FileType::Bzr), None)),
(false, regex!(r"^cabal\.project\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::CabalProject), None)),
(false, regex!(r"^sgml\.catalog").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Catalog), None)),
(false, regex!(r"^.*hgrc$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Cfg), None)),
(false, regex!(r"^[cC]hange[lL]og").deref(), Pattern::starsetf(FileTypeResolver::Dynamic(detect::changelog), None)),
(false, regex!(r"^.*\.\.ch$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Chill), None)),
(false, regex!(r"^.*\.cmake\.in$").deref(), Pattern::new(FileTypeResolver::Static(FileType::CMake), None)),
(false, regex!(r"^crontab\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Crontab), None)),
(false, regex!(r"^cvs[0-9]\+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Cvs), None)),
(true, regex!(r"^.*DEBIAN/control$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DebControl), None)),
(false, regex!(r"^php\.ini").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::DosIni), None)),
(false, regex!(r"^phpfpm\.conf").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::DosIni), None)),
(false, regex!(r"^www\.conf").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::DosIni), None)),
(false, regex!(r"^drac\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Dracula), None)),
(true, regex!(r"^.*dtrace/.*\.d$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DTrace), None)),
(false, regex!(r"^.*\.app\.src$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Erlang), None)),
(false, regex!(r"^.*esmtprc$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Esmtprc), None)),
(true, regex!(r"^.*0\.orig/").deref(), Pattern::starsetf(FileTypeResolver::Dynamic(detect::foam), None)),
(true, regex!(r"^.*0/").deref(), Pattern::starsetf(FileTypeResolver::Dynamic(detect::foam), None)),
(true, regex!(r"^.*constant/g$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::foam), None)),
(false, regex!(r"^.*Transport\.").deref(), Pattern::starsetf(FileTypeResolver::Dynamic(detect::foam), None)),
(false, regex!(r"^[a-zA-Z0-9].*Dict\.").deref(), Pattern::starsetf(FileTypeResolver::Dynamic(detect::foam), None)),
(false, regex!(r"^[a-zA-Z0-9].*Dict$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::foam), None)),
(false, regex!(r"^[a-zA-Z].*Properties\.").deref(), Pattern::starsetf(FileTypeResolver::Dynamic(detect::foam), None)),
(false, regex!(r"^[a-zA-Z].*Properties$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::foam), None)),
(true, regex!(r"^.*tmp/lltmp").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Gedcom), None)),
(false, regex!(r"^gkrellmrc_.$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Gkrellmrc), None)),
(true, regex!(r"^$\{GNUPGHOME\}/options$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Gpg), None)),
(true, regex!(r"^.*boot/grub/menu\.lst$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Grub), None)),
(false, regex!(r"^\.\?gtkrc").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Gtkrc), None)),
(false, regex!(r"^hgeditor.*\.txt$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Hgcommit), None)),
(false, regex!(r"^JAM.*\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Jam), None)),
(false, regex!(r"^Prl.*\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Jam), None)),
(true, regex!(r"^$\{HOME\}/.*/Code/User/.*\.json$").deref(), Pattern::new(FileTypeResolver::Static(FileType::JsonC), None)),
(true, regex!(r"^$\{HOME\}/.*/VSCodium/User/.*\.json$").deref(), Pattern::new(FileTypeResolver::Static(FileType::JsonC), None)),
(false, regex!(r"^.*\.properties_..$").deref(), Pattern::new(FileTypeResolver::Static(FileType::JProperties), None)),
(false, regex!(r"^.*\.properties_.._..$").deref(), Pattern::new(FileTypeResolver::Static(FileType::JProperties), None)),
(false, regex!(r"^.*\.properties_.._.._").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::JProperties), None)),
(false, regex!(r"^org\.eclipse\..*\.prefs$").deref(), Pattern::new(FileTypeResolver::Static(FileType::JProperties), None)),
(false, regex!(r"^[jt]sconfig.*\.json$").deref(), Pattern::new(FileTypeResolver::Static(FileType::JsonC), None)),
(false, regex!(r"^Config\.in\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::KConfig), None)),
(false, regex!(r"^Kconfig\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::KConfig), None)),
(true, regex!(r"^.*ldscripts/").deref(), Pattern::new(FileTypeResolver::Static(FileType::Ld), None)),
(true, regex!(r"^.*lftp/rc$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Lftp), None)),
(true, regex!(r"^.*LiteStep/.*/.*\.rc$").deref(), Pattern::new(FileTypeResolver::Static(FileType::LiteStep), None)),
(true, regex!(r"^/tmp/SLRN[0-9A-Z.]\+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^ae[0-9]\+\.txt$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^pico\.[0-9]\+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^reportbug").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^snd\.[0-9]\+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^rndc.*\.key$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Named), None)),
(false, regex!(r"^tmac\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Nroff), None)),
(false, regex!(r"^.*\.ml\.cppo$").deref(), Pattern::new(FileTypeResolver::Static(FileType::OCaml), None)),
(false, regex!(r"^.*\.mli\.cppo$").deref(), Pattern::new(FileTypeResolver::Static(FileType::OCaml), None)),
(true, regex!(r"^.*octave/history$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Octave), None)),
(false, regex!(r"^.*\.opam\.locked$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Opam), None)),
(false, regex!(r"^.*\.opam\.template$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Opam), None)),
(true, regex!(r"^pkllsp://").deref(), Pattern::new(FileTypeResolver::Static(FileType::Pkl), None)),
(true, regex!(r"^.*queries/.*\.scm$").deref(), Pattern::new(FileTypeResolver::Static(FileType::TreeSitterQuery), None)),
(false, regex!(r"^.*,v$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Rcs), None)),
(false, regex!(r"^svncommit.*\.tmp$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Svn), None)),
(false, regex!(r"^.*\.swift\.gyb$").deref(), Pattern::new(FileTypeResolver::Static(FileType::SwiftGyb), None)),
(false, regex!(r"^vivado.*\.jou$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Tcl), None)),
(false, regex!(r"^vivado.*\.log$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Tcl), None)),
(false, regex!(r"^Tiltfile\.").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Tiltfile), None)),
(false, regex!(r"^.*\.t\.html$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Tilde), None)),
(false, regex!(r"^.*\.vhdl_[0-9]").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Vhdl), None)),
(false, regex!(r"^.*vimrc").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Vim), None)),
(true, regex!(r"^.*Xresources/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::XDefaults), None)),
(true, regex!(r"^.*appdefaults/").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::XDefaults), None)),
(false, regex!(r"^Xresources").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::XDefaults), None)),
(false, regex!(r"^XF86Config").deref(), Pattern::starsetf(FileTypeResolver::Dynamic(detect::xfree86), None)),
(false, regex!(r"^.*Xmodmap$").deref(), Pattern::new(FileTypeResolver::Static(FileType::XModMap), None)),
(false, regex!(r"^.*xmodmap").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::XModMap), None)),
(false, regex!(r"^\.\?zlog").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Zsh), None)),
(false, regex!(r"^\.\?zsh").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Zsh), None)),
(true, regex!(r"^.*\.git/.*$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::git), Some(-1))),
(true, regex!(r"^.*\.[Ll][Oo][Gg]$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::log), None)),
(false, regex!(r"^.+~$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::tmp), None)),
(true, regex!(r"^.*systemd/[^/]*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*systemd/.*/[^/]*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(false, regex!(r"^(access|apache2?|httpd|srm)\.conf.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Apache), None)),
(true, regex!(r"^.*0(\.orig)?/.*$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::foam), None)),
(false, regex!(r"^.*Transport\..*$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::foam), None)),
(true, regex!(r"^.*Xresources/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::XDefaults), None)),
(false, regex!(r"^.*\.-sst\.meta$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Sisu), None)),
(true, regex!(r"^.*\.?cmus/.*\.theme$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Cmusrc), None)),
(true, regex!(r"^.*\.?cmus/rc$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Cmusrc), None)),
(false, regex!(r"^.*\.NS[ACGLMNPS]$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Natural), None)),
(false, regex!(r"^.*\.[1-9]$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::nroff), None)),
(false, regex!(r"^.*\.[Cc][Ff][Gg]$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::cfg), Some(-1))),
(false, regex!(r"^.*\.[Dd][Aa][Tt]$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::dat), None)),
(false, regex!(r"^.*\.[Mm][Oo][Dd]$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::mod_), None)),
(false, regex!(r"^.*\.[Oo][Pp][Ll]$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Opl), None)),
(false, regex!(r"^.*\.[Pp][Rr][Gg]$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::prg), None)),
(false, regex!(r"^.*\.[Ss][Rr][Cc]$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::src), None)),
(false, regex!(r"^.*\.[Ss][Uu][Bb]$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Krl), None)),
(false, regex!(r"^.*\.[Ss][Yy][Ss]$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::sys), None)),
(false, regex!(r"^.*\.[aAsS]$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::asm), None)),
(false, regex!(r"^.*\.[mi][3g]$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Modula3), None)),
(true, regex!(r"^.*\.calendar/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Calendar), None)),
(true, regex!(r"^.*\.cmus/command-history$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Cmusrc), None)),
(true, regex!(r"^.*\.config/cabal/config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::CabalConfig), None)),
(true, regex!(r"^.*\.config/systemd/user/.*\.d/\.#.*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*\.config/systemd/user/\.#.*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(false, regex!(r"^.*\.desktop$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Desktop), None)),
(false, regex!(r"^.*\.directory$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Desktop), None)),
(true, regex!(r"^.*\.fvwm/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Fvwm), None)),
(true, regex!(r"^.*\.gitconfig\.d/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::GitConfig), None)),
(false, regex!(r"^.*\.html\.m4$").deref(), Pattern::new(FileTypeResolver::Static(FileType::HtmlM4), None)),
(true, regex!(r"^.*\.local/share/gnupg/gpg\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Gpg), None)),
(true, regex!(r"^.*\.local/share/gnupg/options$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Gpg), None)),
(true, regex!(r"^.*\.mutt/muttrc.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Muttrc), None)),
(true, regex!(r"^.*\.muttng/muttngrc.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Muttrc), None)),
(true, regex!(r"^.*\.muttng/muttrc.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Muttrc), None)),
(true, regex!(r"^.*\.neomutt/neomuttrc.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Neomuttrc), None)),
(false, regex!(r"^.*\.php\d$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Php), None)),
(false, regex!(r"^.*\.properties_.._.._.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::JProperties), None)),
(false, regex!(r"^.*\.vhdl_[0-9].*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Vhdl), None)),
(false, regex!(r"^.*\.ws[fc]$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Wsh), None)),
(true, regex!(r"^.*app-defaults/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::XDefaults), None)),
(true, regex!(r"^.*asterisk.*/.*voicemail\.conf.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::AsteriskVoiceMail), None)),
(true, regex!(r"^.*asterisk/.*\.conf.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Asterisk), None)),
(true, regex!(r"^.*bind/db\..*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Bindzone), None)),
(true, regex!(r"^.*boot/grub/(grub\.conf|menu\.lst)$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Grub), None)),
(true, regex!(r"^.*cabal\.config$").deref(), Pattern::new(FileTypeResolver::Static(FileType::CabalConfig), None)),
(true, regex!(r"^.*debian/patches/.*$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::dep3patch), None)),
(true, regex!(r"^.*etc/(group|gshadow)(\.edit|-)?$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Group), None)),
(true, regex!(r"^.*etc/Muttrc\.d/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Muttrc), None)),
(true, regex!(r"^.*etc/a2ps(/.*)?\.cfg$").deref(), Pattern::new(FileTypeResolver::Static(FileType::A2ps), None)),
(true, regex!(r"^.*etc/apache2/(conf\.|mods-|sites-).*/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Apache), None)),
(true, regex!(r"^.*etc/apache2/.*\.conf.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Apache), None)),
(true, regex!(r"^.*etc/apache2/sites-.*/.*\.com$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Apache), None)),
(true, regex!(r"^.*etc/cron\.d/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Crontab), None)),
(true, regex!(r"^.*etc/defaults?/cdrdao$").deref(), Pattern::new(FileTypeResolver::Static(FileType::CdrdaoConf), None)),
(true, regex!(r"^.*etc/dnsmasq\.d/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::DnsMasq), None)),
(true, regex!(r"^.*etc/gitconfig\.d/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::GitConfig), None)),
(true, regex!(r"^.*etc/hostname\..*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Config), None)),
(true, regex!(r"^.*etc/httpd/(mods-|sites-).*/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Apache), None)),
(true, regex!(r"^.*etc/httpd/conf\..*/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Apache), None)),
(true, regex!(r"^.*etc/httpd/conf\.d/.*\.conf.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Apache), None)),
(true, regex!(r"^.*etc/logcheck/.*\.d.*/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::LogCheck), None)),
(true, regex!(r"^.*etc/modprobe\..*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::ModConf), None)),
(true, regex!(r"^.*etc/modutils/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::ModConf), None)),
(true, regex!(r"^.*etc/nginx/.*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Nginx), None)),
(true, regex!(r"^.*etc/pacman\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::ConfIni), None)),
(true, regex!(r"^.*etc/pam\.d/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::PamConf), None)),
(true, regex!(r"^.*etc/passwd-$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Passwd), None)),
(true, regex!(r"^.*etc/profile$").deref(), Pattern::new(FileTypeResolver::Dynamic(|_, content| detect::sh(content, None)), None)),
(true, regex!(r"^.*etc/proftpd/.*\.conf.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::ApacheStyle), None)),
(true, regex!(r"^.*etc/proftpd/conf\..*/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::ApacheStyle), None)),
(true, regex!(r"^.*etc/sensors\.d/[^.].*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Sensors), None)),
(true, regex!(r"^.*etc/shadow-$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Passwd), None)),
(true, regex!(r"^.*etc/sudoers\.d/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Sudoers), None)),
(true, regex!(r"^.*etc/systemd/system/.*\.d/\.#.*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/systemd/system/\.#.*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Systemd), None)),
(true, regex!(r"^.*etc/xinetd\.d/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Xinetd), None)),
(true, regex!(r"^.*etc/yum\.repos\.d/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::DosIni), None)),
(false, regex!(r"^.*fvwm2rc.*$").deref(), Pattern::starsetf(FileTypeResolver::Dynamic(detect::fvwm), None)),
(false, regex!(r"^.*fvwmrc.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Fvwm1), None)),
(true, regex!(r"^.*gitolite-admin/conf/.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::GitOlite), None)),
(false, regex!(r"^.*lpe$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Dracula), None)),
(false, regex!(r"^.*lvs$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Dracula), None)),
(true, regex!(r"^.*meta-.*/conf/.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Bitbake), None)),
(true, regex!(r"^.*named/db\..*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Bindzone), None)),
(false, regex!(r"^.*printcap.*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::PtcapPrint), None)),
(true, regex!(r"^.*share/calendar/(.*/)?calendar\..*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Calendar), None)),
(true, regex!(r"^.*share/n?vim/doc/.*\.txt$").deref(), Pattern::new(FileTypeResolver::Static(FileType::VimHelp), None)),
(false, regex!(r"^.*termcap.*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::PtcapTerm), None)),
(true, regex!(r"^.*tmp/lltmp.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Gedcom), None)),
(true, regex!(r"^.*usr/local/nginx/conf/.*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Nginx), None)),
(true, regex!(r"^.*var/backups/(group|gshadow)\.bak$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Group), None)),
(false, regex!(r"^.*vimrc.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Vim), None)),
(false, regex!(r"^.*xmodmap.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::XModMap), None)),
(true, regex!(r"^/tmp/SLRN[0-9A-Z.]+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^Containerfile\..*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Dockerfile), None)),
(false, regex!(r"^Dockerfile\..*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Dockerfile), None)),
(false, regex!(r"^JAM.*\..*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Jam), None)),
(false, regex!(r"^Kconfig\..*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::KConfig), None)),
(false, regex!(r"^Muttngrc$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Muttrc), None)),
(false, regex!(r"^Muttngrc.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Muttrc), None)),
(false, regex!(r"^Muttrc$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Muttrc), None)),
(false, regex!(r"^Muttrc.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Muttrc), None)),
(false, regex!(r"^Neomuttrc.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Neomuttrc), None)),
(false, regex!(r"^Prl.*\..*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Jam), None)),
(false, regex!(r"^XF86Config-4.*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::XF86Conf4), None)),
(false, regex!(r"^XF86Config.*$").deref(), Pattern::starsetf(FileTypeResolver::Dynamic(detect::xfree86), None)),
(false, regex!(r"^Xresources.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::XDefaults), None)),
(false, regex!(r"^[a-zA-Z0-9].*Dict\..*$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::foam), None)),
(false, regex!(r"^[a-zA-Z].*Properties\..*$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::foam), None)),
(false, regex!(r"^[cC]hange[lL]og.*$").deref(), Pattern::starsetf(FileTypeResolver::Dynamic(detect::changelog), None)),
(false, regex!(r"^[mM]akefile.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Make), None)),
(false, regex!(r"^[mM]akefile\.am$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Automake), None)),
(false, regex!(r"^[rR]akefile$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Ruby), None)),
(false, regex!(r"^[rR]akefile.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Ruby), None)),
(false, regex!(r"^[rR]antfile$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Ruby), None)),
(false, regex!(r"^\.?gitolite\.rc$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Perl), None)),
(false, regex!(r"^\.?gtkrc.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Gtkrc), None)),
(false, regex!(r"^\.?muttngrc.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Muttrc), None)),
(false, regex!(r"^\.?muttrc.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Muttrc), None)),
(false, regex!(r"^\.?neomuttrc.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Neomuttrc), None)),
(false, regex!(r"^\.?tmux.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Tmux), None)),
(false, regex!(r"^\.?tmux.*\.conf.*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Tmux), Some(-1))),
(false, regex!(r"^\.?zlog.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Zsh), None)),
(false, regex!(r"^\.?zsh.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Zsh), None)),
(false, regex!(r"^\.article\.\d+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^\.bash[_-]aliases$").deref(), Pattern::new(FileTypeResolver::Dynamic(|_, content| detect::sh(content, Some(FileType::Bash))), None)),
(false, regex!(r"^\.bash[_-]logout$").deref(), Pattern::new(FileTypeResolver::Dynamic(|_, content| detect::sh(content, Some(FileType::Bash))), None)),
(false, regex!(r"^\.bash[_-]profile$").deref(), Pattern::new(FileTypeResolver::Dynamic(|_, content| detect::sh(content, Some(FileType::Bash))), None)),
(false, regex!(r"^\.cshrc.*$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::csh), None)),
(false, regex!(r"^\.gitsendemail\.msg\..{6}$").deref(), Pattern::new(FileTypeResolver::Static(FileType::GitSendEmail), None)),
(false, regex!(r"^\.kshrc.*$").deref(), Pattern::new(FileTypeResolver::Dynamic(|_, content| detect::sh(content, Some(FileType::Ksh))), None)),
(false, regex!(r"^\.letter\.\d+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^\.login.*$").deref(), Pattern::new(FileTypeResolver::Dynamic(detect::csh), None)),
(false, regex!(r"^\.profile.*$").deref(), Pattern::new(FileTypeResolver::Dynamic(|_, content| detect::sh(content, None)), None)),
(false, regex!(r"^\.reminders.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Remind), None)),
(false, regex!(r"^\.tcshrc.*$").deref(), Pattern::new(FileTypeResolver::Dynamic(|_, content| detect::sh(content, Some(FileType::Tcsh))), None)),
(false, regex!(r"^\.zcompdump.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Zsh), None)),
(false, regex!(r"^ae\d+\.txt$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^bash-fc[-\.].*$").deref(), Pattern::new(FileTypeResolver::Dynamic(|_, content| detect::sh(content, Some(FileType::Bash))), None)),
(false, regex!(r"^bzr_log\..*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Bzr), None)),
(false, regex!(r"^cabal\.project\..*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::CabalProject), None)),
(false, regex!(r"^crontab\..*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Crontab), None)),
(false, regex!(r"^cvs\d+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Cvs), None)),
(false, regex!(r"^drac\..*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Dracula), None)),
(false, regex!(r"^example\.gitolite\.rc$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Perl), None)),
(false, regex!(r"^hg-editor-.*\.txt$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Hgcommit), None)),
(false, regex!(r"^lilo\.conf.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Lilo), None)),
(false, regex!(r"^mutt-.*-[a-zA-Z0-9]+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^mutt[\w_-]{6}$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^muttng-.*-[a-zA-Z0-9]+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^neomutt-.*-[a-zA-Z0-9]+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^neomutt[\w_-]{6}$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^php\.ini-.*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::DosIni), None)),
(false, regex!(r"^pico\.\d+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^proftpd\.conf.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::ApacheStyle), None)),
(false, regex!(r"^reportbug-.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^sgml\.catalog.*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Catalog), None)),
(false, regex!(r"^snd\.\d+$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Mail), None)),
(false, regex!(r"^svn-commit.*\.tmp$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Svn), None)),
(false, regex!(r"^tmac\..*$").deref(), Pattern::starsetf(FileTypeResolver::Static(FileType::Nroff), None)),
(true, regex!(r"^.*bash-completion/completions/[^/]*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Bash), None)),
(true, regex!(r"^.*bash_completion\.d/[^/]*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Bash), None)),
(true, regex!(r"^.*conf/[^/]*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Bitbake), None)),
(true, regex!(r"^.*conf/[^/]*/[^/]*\.(?:inc|conf)$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Bitbake), None)),
(true, regex!(r"^.*recipe-[^/]*/[^/]*/[^/]*\.inc$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Bitbake), None)),
(false, regex!(r"^dockerfile\..*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Dockerfile), None)),
(false, regex!(r"^containerfile\..*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Dockerfile), None)),
(true, regex!(r"^.*(?:app|addon)/(?:components|templates)/[^/]*\.hbs$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Handlebars), None)),
(false, regex!(r"^Jenkinsfile\..*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Groovy), None)),
(true, regex!(r"^.*templates/[^/]*\.yaml$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Helm), None)),
(true, regex!(r"^.*templates/[^/]*\.yml$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Helm), None)),
(true, regex!(r"^.*templates/_[^/]*\.tpl$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Helm), None)),
(true, regex!(r"^.*.*/src/[^/]*/resources/.*/[^/]*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Hocon), None)),
(false, regex!(r"^.*scalafmt.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Hocon), None)),
(false, regex!(r"^.*scalafix.*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Hocon), None)),
(true, regex!(r"^.*hypr/[^/]*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Hyprlang), None)),
(true, regex!(r"^.*\.pytest_cache/v/cache/[^/]*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Json), None)),
(false, regex!(r"^(?:t|j)sconfig\.json$").deref(), Pattern::new(FileTypeResolver::Static(FileType::JsonC), None)),
(true, regex!(r"^.*\.vscode/[^/]*\.json$").deref(), Pattern::new(FileTypeResolver::Static(FileType::JsonC), None)),
(false, regex!(r"^kconfig\..*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::KConfig), None)),
(true, regex!(r"^.*sites-available/[^/]*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Nginx), None)),
(true, regex!(r"^.*sites-enabled/[^/]*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Nginx), None)),
(true, regex!(r"^.*conf\.d/[^/]*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Nginx), None)),
(false, regex!(r"^.*SConstruct$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Python), None)),
(false, regex!(r"^.*SConscript$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Python), None)),
(false, regex!(r"^.*sconstruct$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Python), None)),
(false, regex!(r"^BUILD\..*$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Bzl), None)),
(false, regex!(r"^.*\.todo\.txt$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Todotxt), None)),
(true, regex!(r"^.*containers\.conf\.d/[^/]*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Toml), None)),
(true, regex!(r"^.*containers\.conf\.modules/[^/]*\.conf$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Toml), None)),
(false, regex!(r"^.*\.tm\[Ll\]anguage$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Xml), None)),
(false, regex!(r"^.*\.tm\[Pp\]references$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Xml), None)),
(false, regex!(r"^.*\.tm\[Tt\]heme$").deref(), Pattern::new(FileTypeResolver::Static(FileType::Xml), None)),
];
vec.sort_unstable_by(|(_, _, pat1), (_, _, pat2)| pat2.priority.unwrap_or(0).cmp(&pat1.priority.unwrap_or(0)));
vec
});