data/regexes.yaml
regexes:
####################################################################################################################
# Windows Phone
# Edge Mobile
- '/(?P<osname>Windows Phone) ?(?P<osversion>[\d\.]*\d+); Android [\d.]+; (?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?;?[ _\-]*(?P<devicecode>[^;\)]+)(?:[^\)]+)?\) AppleWebKit\/[\d\.]+\d+ \(KHTML, like Gecko\) Chrome\/(?P<chromeversion>[\d.+]+) (?P<devicetype>Mobile|TV)? ?Safari\/[\d.+]+/i'
# IE Mobile 11
- '/(?P<devicetype>Mobile)?;? ?(?P<osname>Windows Phone(?: OS)?) ?(?P<osversion>[\d\.]*\d+); .*(?P<enginename>Trident)\/(?P<engineversion>[\d\.\+ab]+\d+); Touch; rv:([\d\.]+\d+); (.*)?(?P<browsername>IEMobile)\/(?P<browserversion>[\d\.\+ab]+\d+);? ?(?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?;?[ _\-]*(?P<devicecode>[^;\)]+)?/i'
# IE Mobile 11 (Desktop Mode)
- '/(?P<devicetype>WPDesktop);? ?(?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?;?[ _\-]*(?P<devicecode>[^;\)]+)?/i'
# IE Mobile 6-10
- '/(?P<osname>Windows Phone(?: OS)?) ?(?P<osversion>[\d\.]*\d+); (?P<enginename>Trident)?\/?(?P<engineversion>[\d\.\+ab]+\d+)?; (?P<browsername>IEMobile)\/(?P<browserversion>[\d\.\+ab]+\d+)(?:; ARM)?(; Touch)?;? ?(?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?;?[ _\-]*(?P<devicecode>[^;\)]+)?/i'
# IE Mobile 6-10 (Desktop Mode)
- '/(?P<devicetype>WPDesktop|XBLWP7);? ?(?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?;?[ _\-]*(?P<devicecode>[^;\)]+)?/i'
# Opera Mini (old)
- '/(?P<devicecode>Opera\/9\.[58]0) ?\((?P<osname>Windows Mobile|Windows Phone) ?(?P<osversion>[\d\.]*\d+)?; ? ?(?P<browsername>Opera Mini)\/(?P<browserversion>[\d\.\+ab]+\d+).*\) (?P<enginename>Presto)\/(?P<engineversion>[\d\.\+ab]+\d+)/i'
####################################################################################################################
# Android OS
- '/Linux; ?(?P<osname>Android)[ -\/]?(?P<osversion>[\d\.]*\d+);? ?(?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?[ _\-]*(?P<devicecode>[a-zA-Z0-9\-\(\)\/\.\+_# ]+) Build\//i'
- '/Linux; ?(?P<osname>Android)[ -\/]?(?P<osversion>[\d\.]*\d+);? ?(?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?[ _\-]*(?P<devicecode>[a-zA-Z0-9\-\(\)\.\+_#]+)\//i'
# Desktop Mode
- '/(?P<osname>Linux); ?(?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?[ _\-]*(?P<devicecode>[a-zA-Z0-9\-\(\)\/\.\+_# ]+) Build\//i'
- '/(?P<osname>Linux); ?(?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?[ _\-]*(?P<devicecode>[a-zA-Z0-9\-\(\)\.\+_#]+)\//i'
- '/^(?P<browsername>Dalvik)\/(?P<browserversion>[\d\.\+ab]+\d+) ?\(Linux; ?(?P<osname>Android)[ -]?(?P<osversion>[\d\.]*\d+);? ?(?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?[ _\-]*(?P<devicecode>[a-zA-Z0-9\-\(\)\/\.\+_# ]+)/i'
- '/^Dalvik\/[\d.+ab]+ ?\(Linux; ?(?P<devicecode>Android)/i'
# Opera
- '/^Opera\/[\d\.]+\d+ ?\((?P<devicecode>Android)/i'
# UCBrowser
- '/^UCWEB\/[\d\.]+\d+ ?\((?P<osname>Linux); Opera Mini\/[^;]+;? ?(?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?[ _\-]*(?P<devicecode>[a-zA-Z0-9\-\(\)\/\.\+_# ]+) Build\/(?:[^\)]+)?\) (?P<enginename>U2)\/(?P<engineversion>[\d\.\+ab]+\d+) (?P<browsername>UCBrowser)\/(?P<browserversion>[\d\.\+ab]+\d+) Mobile/i'
- '/^JUC ?\(Linux; ?(?P<osname>Android)[ -]?(?P<osversion>[\d\.]*\d+)?;?;?(?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?[ _\-]*(?P<devicecode>[a-zA-Z0-9\-\(\)\/\.\+_# ]+)(?:[^\)]+)?\) ?(?P<browsername>UCWEB)(?P<browserversion>[\d\.\+ab]+\d+)/i'
- '/^JUC ?\(Linux; ?(?P<osversion>[\d\.]*\d+)?;?;?(?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?[ _\-]*(?P<devicecode>[a-zA-Z0-9\-\(\)\/\.\+_# ]+)(?:[^\)]+)?\) ?(?P<browsername>UCWEB)(?P<browserversion>[\d\.\+ab]+\d+)/i'
- '/^UCWEB\/[\d\.]+\d+ ?\((?:Linux|MIDP\-2\.0); (?P<osname>Adr) ?(?P<osversion>[\d\.]*\d+)?; (?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?[ _\-]*(?P<devicecode>[a-zA-Z0-9\-\(\)\/\.\+_# ]+)(?:[^\)]+)?\) (?P<enginename>U2)\/(?P<engineversion>[\d\.\+ab]+\d+) (?P<browsername>UCBrowser)\/(?P<browserversion>[\d\.\+ab]+\d+) U2\/[\d.+]+ (?P<devicetype>Mobile)/i'
# MQQBrowser (Safari based)
- '/^(?P<browsername>MQQBrowser)\/(?P<browserversion>[\d\.\+ab]+\d+)\/Mozilla\/[\d\.]+\d+ ?\(Linux; ?(?P<osname>Android)[ -]?(?P<osversion>[\d\.]*\d+);? ?(?P<devicecode>[a-zA-Z0-9\-\(\)\/\.\+_# ]+) Build\/(?:[^\)]+)?\) ?(?P<enginename>AppleWebKit)\/?(?P<engineversion>[\d\.\+ab]+\d+) ?\(KHTML, like Gecko\) *Version\/([\d\.]+\d+) (?P<devicetype>Mobile|TV)? ?(.*)(Safari)\/([\d\.]+\d+)/i'
- '/(?P<osname>Linux).*(?P<browsername>Puffin)\/(?P<browserversion>[\d\.\+ab]+\d+)(?P<devicecode>A[PT])/i'
# Opera Mini (old)
- '/(?P<devicecode>Opera\/9\.[58]0) ?\((?P<osname>MAUI Runtime|SpreadTrum|VRE) ?(?P<osversion>[\d\.]*\d+)?; ? ?(?P<browsername>Opera Mini)\/(?P<browserversion>[\d\.\+ab]+\d+).*\) (?P<enginename>Presto)\/(?P<engineversion>[\d\.\+ab]+\d+)/i'
# Firefox + Gecko-based
- '/(?P<devicecode>Android)[ -\/]?(?P<osversion>[\d\.]*\d+)?;?(?: (?P<devicetype>Mobile|Tablet)?;)? rv:(?P<engineversion>[\d\.\+ab]+\d+)\)/i'
# without device code
- '/(?P<devicecode>Android)[ -\/]?(?P<osversion>[\d\.]*\d+)?\).*(?P<devicetype>Mobile|TV) ?Safari/i'
- '/Linux; ?(?P<devicecode>Android)[ -\/]?(?P<osversion>[\d\.]*\d+)?;?(?: ?Build\/?|(?:\w{2}-\w{2};)?\))/i'
- '/(?P<devicecode>Android)[ -\/]?(?P<osversion>[\d\.]*\d+)?;? ?Linux;?/i'
- '/(?P<devicecode>Android)[ -\/]?(?P<osversion>[\d\.]*\d+)\)/i'
####################################################################################################################
# iOS
# Chrome
- '/(?P<devicecode>iPhone|iPad|iPod( Touch)?); (?P<osname>CPU iPhone OS|CPU OS) ?(?P<osversion>[\d._]+) like Mac OS X(?:[^\)]+)?\) (?P<enginename>AppleWebKit)\/(?P<engineversion>[\d\.\+ab]+\d+) \(KHTML, like Gecko\)/i'
- '/(?P<osname>Linux).*(?P<browsername>Puffin)\/(?P<browserversion>[\d\.\+ab]+\d+)(?P<devicecode>I[PT])/i'
####################################################################################################################
# Windows
- '/(?P<devicecode>Windows)?;? ?(?P<osname>Windows NT(?: [\d\.]+\d+)?(?:; ARM)?)(?:; (WOW64|Win64; x64))?(?:[^\)]+)?/i'
# IE 6-10
- '/(?P<osname>Windows NT(?: [\d\.]+\d+)?(?:; ARM)?)(?:; (WOW64|Win64; x64))?([^\);]+)?; (?P<enginename>Trident)?\/?(?P<engineversion>[\d\.\+ab]+\d+)?(?:[^\)]+)?\)?/i'
# Thunderbird
- '/(?P<devicecode>Windows)?(X11)?;? ?(?P<osname>Windows NT(?: [\d\.]+\d+)?(?:; ARM)?)(?:; (WOW64|Win64; x64))?(?:[^\)]+)?;? rv:(?P<engineversion>[\d\.\+ab]+\d+)(?:[^\)]+)?\) ?(?P<enginename>Gecko)(\/[\d\.]+\d+)? (?P<browsername>Thunderbird)\/(?P<browserversion>[\d\.\+ab]+\d+)/i'
# Songbird
- '/(?P<devicecode>Windows)?(X11)?;? ?(?P<osname>Windows NT(?: [\d\.]+\d+)?(?:; ARM)?)(?:; (WOW64|Win64; x64))?(?:[^\)]+)?;? rv:(?P<engineversion>[\d\.\+ab]+\d+)(?:[^\)]+)?\) ?(?P<enginename>Gecko)(\/[\d\.]+\d+)? (?P<browsername>Songbird)\/(?P<browserversion>[\d\.\+ab]+\d+)/i'
# Opera (old)
- '/^(?P<browsername>Opera)\/[\d\.]+\d+ ?\((?P<osname>Windows NT(?: [\d\.]+\d+)?(?:; ARM)?)(?:; (WOW64|Win64; x64))?(?:[^\)]+)?(?:[^\)]+)?\) (?P<enginename>Presto)\/(?P<engineversion>[\d\.\+ab]+\d+) Version\/(?P<browserversion>[\d\.\+ab]+\d+)/i'
# Outlook-Express
- '/^(?P<browsername>Outlook\-Express)\/(?P<browserversion>[\d\.]+\d+) ?\((?:MSIE [\d\.]+\d+)?;? ?(?P<osname>Windows NT(?: [\d\.]+\d+)?(?:; ARM)?)(?:; (WOW64|Win64; x64))?(?:[^\)]+)?(?:[^\)]+)?\) (?P<enginename>Trident)?\/?(?P<engineversion>[\d\.\+ab]+\d+)?/i'
- '/^(?P<browsername>Outlook\-Express)\/(?P<browserversion>[\d\.]+\d+) ?\((?:MSIE [\d\.]+\d+)?;? ?(?P<osname>Windows NT(?: [\d\.]+\d+)?(?:; ARM)?)(?:; (WOW64|Win64; x64))?;? ?(?P<enginename>Trident)?\/?(?P<engineversion>[\d\.\+ab]+\d+)?/i'
####################################################################################################################
# macOS
- '/(?P<devicecode>Macintosh); ?(PPC|Intel) (?P<osname>Mac OS X) ?(?P<osversion>[\d._]+)?/i'
####################################################################################################################
# Darwin
- '/CFNetwork\/(?P<engineversion>[\d\.\+ab]+\d+) (?P<osname>Darwin)\/(?P<osversion>[\d._]+)( \((?P<osbits>x86_64|i386|i686 on x86_64)\))?( \((?P<devicecode>[^\)]+)\))?/i'
- '/(?P<devicecode>CFNetwork)\/(?P<engineversion>[\d\.\+ab]+\d+) (?P<osname>Darwin)\/(?P<osversion>[\d._]+)( \((?P<osbits>x86_64|i386|i686 on x86_64)\))/i'
####################################################################################################################
# Chrome OS
- '/(?P<devicecode>CrOS) ?(?:i386|i686|i686 on x86_64|x86_64|sparc64)?(?:[^\)]+)?\)/i'
####################################################################################################################
# Linux
- '/(?P<devicecode>philipstv)/i'
- '/(?P<devicecode>linux arm)/i'
- '/(?P<devicecode>linux)/i'
####################################################################################################################
# Tizen
# Samsung Browser (Safari based)
- '/Linux; (?P<osname>Tizen) (?P<osversion>[\d._]+)(;(?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?[ _\-]*(?P<devicecode>[a-zA-Z0-9\-\(\)\/\.\+_# ]+))?\) ?(?P<enginename>AppleWebKit)\/?(?P<engineversion>[\d\.\+ab]+\d+) ?\(KHTML, like Gecko\) *(?P<browsername>SamsungBrowser)\/(?P<browserversion>[\d\.\+ab]+\d+) (?P<devicetype>Mobile|TV)? ?(Safari)\/([\d\.]+\d+)/i'
- '/(?P<osname>Tizen) (?P<osversion>[\d._]+)(;(?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?[ _\-]*(?P<devicecode>[a-zA-Z0-9\-\(\)\/\.\+_# ]+))/i'
# Opera Mini (old)
- '/(?P<devicecode>Opera\/9\.[58]0) ?\((?P<osname>Tizen) ?(?P<osversion>[\d\.]*\d+)?; ? ?(?P<browsername>Opera Mini)\/(?P<browserversion>[\d\.\+ab]+\d+).*\) (?P<enginename>Presto)\/(?P<engineversion>[\d\.\+ab]+\d+)/i'
####################################################################################################################
# FreeBSD
# Kazehakase
- '/(?P<osname>FreeBSD) ?(?:i386|i686|i686 on x86_64|x86_64|sparc64)?;? rv:(?P<engineversion>[\d\.\+ab]+\d+)\) ?(?P<enginename>Gecko)(\/[\d\.]+\d+)? (Firefox)\/([\d\.]+\d+) (?P<browsername>Kazehakase)\/(?P<browserversion>[\d\.\+ab]+\d+)/i'
- '/(?P<osname>FreeBSD) ?(?:i386|i686|i686 on x86_64|x86_64|sparc64)?;? rv:(?P<engineversion>[\d\.\+ab]+\d+)\) ?(?P<enginename>Gecko)(\/[\d\.]+\d+)? (?P<browsername>Kazehakase)\/(?P<browserversion>[\d\.\+ab]+\d+)/i'
# Firefox
- '/(?P<osname>FreeBSD) ?(?:i386|i686|i686 on x86_64|x86_64|sparc64)?;? rv:(?P<engineversion>[\d\.\+ab]+\d+)\) ?(?P<enginename>Gecko)(\/[\d\.]+\d+)? (?P<browsername>Firefox)\/(?P<browserversion>[\d\.\+ab]+\d+)/i'
####################################################################################################################
# Blackberry
- '/(?P<osname>BB10); (?P<devicecode>Kbd|Touch)\) ?(?P<enginename>AppleWebKit)\/?(?P<engineversion>[\d\.\+ab]+\d+) ?\(KHTML, like Gecko\)/i'
- '/(?P<osname>BlackBerry); (?P<devicecode>[^\)]+)\) ?(?P<enginename>AppleWebKit)\/?(?P<engineversion>[\d\.\+ab]+\d+) ?\(KHTML, like Gecko\) Version\/(?P<browserversion>[\d\.\+ab]+\d+) (?P<devicetype>Mobile|TV)? ?(?P<browsername>Safari)\/([\d\.]+\d+)/i'
- '/^(?P<manufacturercode>BlackBerry)(?P<devicecode>[^\/]+)\/(?P<osversion>[\d.+]+)/i'
# Opera Mini (old)
- '/(?P<devicecode>Opera\/9\.[58]0) ?\((?P<osname>BlackBerry);? ?(?P<browsername>Opera Mini)\/(?P<browserversion>[\d\.\+ab]+\d+).*\) (?P<enginename>Presto)\/(?P<engineversion>[\d\.\+ab]+\d+)/i'
####################################################################################################################
# Nokia (old)
- '/^(?P<manufacturercode>Nokia)(?P<devicecode>[^\/]+)\/.* Mozilla\/[\d\.]+\d+ ?(?P<enginename>AppleWebKit)\/?(?P<engineversion>[\d\.\+ab]+\d+) ?\(KHTML, like Gecko\) (?P<browsername>Safari)\/(?P<browserversion>[\d\.\+ab]+\d+)/i'
# BrowserNG
- '/(?P<osname>Symbian(OS)?)\/(?P<osversion>[\d.+]+); Series60\/[\d.+]+ (?P<manufacturercode>Nokia)(?P<devicecode>[^\/]+)\/[^\)]+\) ?(?P<enginename>AppleWebKit)\/?(?P<engineversion>[\d\.\+ab]+\d+) ?\(KHTML, like Gecko\) Version\/[\d.+]+ (?P<browsername>BrowserNG)\/(?P<browserversion>[\d\.\+ab]+\d+)/i'
# NokiaBrowser
- '/(?P<osname>Symbian(OS)?)\/(?P<osversion>[\d.+]+); Series60\/[\d.+]+ (?P<manufacturercode>Nokia)(?P<devicecode>[^\/]+)\/[^\)]+\) ?(?P<enginename>AppleWebKit)\/?(?P<engineversion>[\d\.\+ab]+\d+) ?\(KHTML, like Gecko\) (?P<browsername>NokiaBrowser)\/(?P<browserversion>[\d\.\+ab]+\d+)/i'
# UCBrowser
- '/^UCWEB\/[\d\.]+\d+ ?\((?P<osname>Java); MIDP\-2\.0; (?P<manufacturercode>Nokia)(?P<devicecode>[^\/\)]+)\) (?P<enginename>U2)\/(?P<engineversion>[\d\.\+ab]+\d+) (?P<browsername>UCBrowser)\/(?P<browserversion>[\d\.\+ab]+\d+) U2\/[\d.+]+ (?P<devicetype>Mobile)/i'
- '/^UCWEB\/[\d\.]+\d+ ?\((?P<osname>Symbian(OS)?); .* (?P<manufacturercode>Nokia)(?P<devicecode>[^\/\)]+)\) (?P<enginename>U2)\/(?P<engineversion>[\d\.\+ab]+\d+) (?P<browsername>UCBrowser)\/(?P<browserversion>[\d\.\+ab]+\d+) U2\/[\d.+]+ (?P<devicetype>Mobile)/i'
- '/^(?P<manufacturercode>Nokia)(?P<devicecode>[^\/]+)\/.* UCWEB\/.* (?P<enginename>U2)\/(?P<engineversion>[\d\.\+ab]+\d+) (?P<browsername>UCBrowser)\/(?P<browserversion>[\d\.\+ab]+\d+) U2\/[\d.+]+ (?P<devicetype>Mobile)/i'
# Safari
- '/(?P<osname>Symbian(OS)?)\/(?P<osversion>[\d.+]+); Series60\/[\d.+]+ (?P<manufacturercode>Nokia)(?P<devicecode>[^\/]+)\/[^\)]+\) ?(?P<enginename>AppleWebKit)\/?(?P<engineversion>[\d\.\+ab]+\d+) ?\(KHTML, like Gecko\) (?P<browsername>Safari)\/(?P<browserversion>[\d\.\+ab]+\d+)/i'
####################################################################################################################
# Playstation
- '/(?P<devicecode>PLAYSTATION (3|4)); [\d.]+\)/i'
####################################################################################################################
# Java based
# Opera Mini (old)
- '/(?P<devicecode>Opera\/9\.[58]0) ?\((?P<osname>J2ME\/MIDP);? ?(?P<browsername>Opera Mini)\/(?P<browserversion>[\d.+ab]+\d+).*\) (?P<enginename>Presto)\/(?P<engineversion>[\d\.\+ab]+\d+)/i'
# UCBrowser
- '/^UCWEB\/[\d\.]+\d+ ?\((?P<osname>Java); MIDP-2.0;? ?(?P<manufacturercode>htc|nokia|microsoft|samsung|zte|lg|blu|dell|huawei|archos|allview|xbox|lenovo|micromax|gfive|coolpad|odys|phicomm|itel|oysters|kiano|keneksi|pantech|modecom|starway|philips|texet|kazam|cosmote|digma|arnova|asus|hp|thl|sony(?:ericsson)?|panasonic|tecno|intex|infinix|gionee|haier|hisense|hosin|hasee|spv|infocus|fnac|vivo|qmobile|quadro|ngm|kyocera|wileyfox|iberry|inew|inq|i\-mobile|i\-joy|intki|iocean|karbonn|koobee|komu|kingsun|kopo|koridy|k\-?touch|lingwin|meeg|mofut|mlled|meu|noain|motorola|opsson|orange|qilive|senseit|sunvan|tcl|t\-mobile|nuclear|uniscope|voto|ytone|boway|doov|datang|desay)?[ _\-]*(?P<devicecode>[^\)]+)\) (?P<enginename>U2)\/(?P<engineversion>[\d\.\+ab]+\d+) (?P<browsername>UCBrowser)\/(?P<browserversion>[\d\.\+ab]+\d+)( U2\/[\d\.\+ab]+\d+)? Mobile/i'
####################################################################################################################
# Symbian
# Opera Mini (old)
- '/(?P<devicecode>Opera\/9\.[58]0) ?\((?P<osname>Series 60) ?(?P<osversion>[\d\.]*\d+)?; ? ?(?P<browsername>Opera Mini)\/(?P<browserversion>[\d\.\+ab]+\d+).*\) (?P<enginename>Presto)\/(?P<engineversion>[\d\.\+ab]+\d+)/i'