PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.3
Independent Analytics – WordPress Analytics Plugin v2.15.3
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / matomo / device-detector / regexes / oss.yml
independent-analytics / vendor / matomo / device-detector / regexes Last commit date
client 1 month ago device 1 month ago bots.yml 1 month ago oss.yml 1 month ago vendorfragments.yml 2 years ago
oss.yml
2163 lines
1 ###############
2 # Device Detector - The Universal Device Detection library for parsing User Agents
3 #
4 # @link https://matomo.org
5 # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
6 ###############
7
8 ##########
9 # NuttX (https://nuttx.apache.org/)
10 ##########
11 - regex: 'NuttX(?:/(\d+[.\d]+))?'
12 name: 'NuttX'
13 version: '$1'
14
15 ##########
16 # Contiki (https://www.contiki-os.org/ | https://github.com/contiki-os/contiki)
17 ##########
18 - regex: 'Contiki/(\d+[.\d]+)'
19 name: 'Contiki'
20 version: '$1'
21
22 ##########
23 # MINIX (https://www.minix3.org/)
24 ##########
25 - regex: 'Minix (\d+[.\d]+)'
26 name: 'MINIX'
27 version: '$1'
28
29 ##########
30 # Plan 9 (https://9p.io/plan9/)
31 ##########
32 - regex: 'Plan 9 (\d+[.\d]+)'
33 name: 'Plan 9'
34 version: '$1'
35
36 ##########
37 # Linpus (https://www.linpus.com/)
38 ##########
39 - regex: 'Linpus/(\d+[.\d]+)'
40 name: 'Linpus'
41 version: '$1'
42
43 ##########
44 # ArcaOS (https://www.arcanoae.com/)
45 ##########
46 - regex: 'ArcaOS(?: (\d+[.\d]+))?'
47 name: 'ArcaOS'
48 version: '$1'
49
50 ##########
51 # GhostBSD (https://www.ghostbsd.org/)
52 ##########
53 - regex: 'GhostBSD/(\d+[.\d]+)'
54 name: 'GhostBSD'
55 version: '$1'
56
57 ##########
58 # elementary OS (https://elementary.io/)
59 ##########
60 - regex: 'elementary OS/(\d+[.\d]+)'
61 name: 'elementary OS'
62 version: '$1'
63
64 ##########
65 # Mocor OS
66 ##########
67 - regex: 'SpreadTrum'
68 name: 'Mocor OS'
69 version: ''
70
71 ##########
72 # Titan OS (https://www.titanos.tv/)
73 ##########
74 - regex: 'TitanOS/(\d+[.\d]+)'
75 name: 'Titan OS'
76 version: '$1'
77
78 ##########
79 # KolibriOS (https://www.kolibrios.org/en/)
80 ##########
81 - regex: 'KolibriOS'
82 name: 'KolibriOS'
83 version: ''
84
85 ##########
86 # Coolita OS (http://www.coolitaos.com/)
87 ##########
88 - regex: 'Coolita OS QJY/.+LiteOS(\d+[.\d]+)'
89 name: 'Coolita OS'
90 version: '$1'
91 - regex: 'Coolita OS QJY/(\d+[.\d]+)'
92 name: 'Coolita OS'
93 version: '$1'
94
95 ##########
96 # RTOS & Next
97 ##########
98 - regex: '^NEXT '
99 name: 'RTOS & Next'
100 version: ''
101
102 ##########
103 # Meta Horizon (https://developers.meta.com/horizon)
104 ##########
105 - regex: '(?:Pacific|(?<!like )Quest).+OculusBrowser|Standalone HMD|PortalGo'
106 name: 'Meta Horizon'
107 version: ''
108
109 ##########
110 # LeafOS (https://www.leafos.org/)
111 ##########
112 - regex: 'LeafOS'
113 name: 'LeafOS'
114 version: ''
115
116 ##########
117 # Puffin OS (https://www.puffin.com/os/help/faq/)
118 ##########
119 - regex: 'Cloud Phone'
120 name: 'Puffin OS'
121 version: ''
122
123 ##########
124 # risingOS (https://github.com/RisingTechOSS/android)
125 ##########
126 - regex: 'RisingOS'
127 name: 'risingOS'
128 version: ''
129
130 ##########
131 # Azure Linux (https://github.com/microsoft/azurelinux)
132 ##########
133 - regex: '.+.cm(\d).x86_64'
134 name: 'Azure Linux'
135 version: '$1'
136
137 - regex: 'Linux[/-].+-(azure|Microsoft)'
138 name: 'Azure Linux'
139 version: ''
140
141 # ViziOS
142 ##########
143 - regex: 'ViziOS/(\d+[.\d]+)'
144 name: 'ViziOS'
145 version: '$1'
146 - regex: 'VIZIO(?: SmartCast|-DTV)'
147 name: 'ViziOS'
148 version: ''
149
150 ##########
151 # blackPanther OS (https://blackpantheros.eu/)
152 ##########
153 - regex: 'blackPanther OS'
154 name: 'blackPanther OS'
155 version: ''
156
157 ##########
158 # WoPhone
159 ##########
160 - regex: 'WoPhone(?:/(\d+[.\d]+))?'
161 name: 'WoPhone'
162 version: '$1'
163
164 ##########
165 # KIN OS (https://en.wikipedia.org/wiki/Microsoft_Kin)
166 ##########
167 - regex: 'KIN\.(?:One|Two) (\d+[.\d]+)'
168 name: 'KIN OS'
169 version: '$1'
170
171 ##########
172 # Star-Blade OS
173 ##########
174 - regex: 'Star-Blade OS'
175 name: 'Star-Blade OS'
176 version: ''
177
178 ##########
179 # Qtopia (https://en.wikipedia.org/wiki/Qt_Extended)
180 ##########
181 - regex: 'Qtopia/(\d+[.\d]+)'
182 name: 'Qtopia'
183 version: '$1'
184
185 ##########
186 # OpenVMS (https://vmssoftware.com/)
187 ##########
188 - regex: 'OpenVMS(?: V(\d+[.\d]+))?'
189 name: 'OpenVMS'
190 version: '$1'
191
192 ##########
193 # AROS (https://aros.sourceforge.io/)
194 ##########
195 - regex: 'AROS'
196 name: 'AROS'
197 version: ''
198
199 ##########
200 # NeXTSTEP
201 ##########
202 - regex: '\(NEXT\)'
203 name: 'NeXTSTEP'
204 version: ''
205
206 ##########
207 # NEWS-OS (https://en.wikipedia.org/wiki/Sony_NEWS)
208 ##########
209 - regex: 'NEWS-OS (\d+[.\d]+)'
210 name: 'NEWS-OS'
211 version: '$1'
212
213 ##########
214 # ULTRIX (https://en.wikipedia.org/wiki/Ultrix)
215 ##########
216 - regex: 'ULTRIX (\d+[.\d]+)'
217 name: 'ULTRIX'
218 version: '$1'
219
220 ##########
221 # Turbolinux (http://www.turbolinux.com/)
222 ##########
223 - regex: 'Turbolinux/(\d+[.\d]+)'
224 name: 'Turbolinux'
225 version: '$1'
226
227 ##########
228 # Joli OS (https://www.jolicloud.com/products/)
229 ##########
230 - regex: 'Joli OS/(\d+[.\d]+)'
231 name: 'Joli OS'
232 version: '$1'
233
234 ##########
235 # GENIX
236 ##########
237 - regex: 'GENIX (\d+[.\d]+)'
238 name: 'GENIX'
239 version: '$1'
240
241 ##########
242 # gNewSense (http://www.gnewsense.org)
243 ##########
244 - regex: 'gNewSense/.*\((\d+[.\d]+)'
245 name: 'gNewSense'
246 version: '$1'
247
248 ##########
249 # GEOS
250 ##########
251 - regex: 'Geos (\d+[.\d]+)'
252 name: 'GEOS'
253 version: '$1'
254
255 ##########
256 # Motorola EZX
257 ##########
258 - regex: 'MOT-.*LinuxOS/'
259 name: 'Motorola EZX'
260 version: ''
261
262 ##########
263 # Baidu Yi (https://en.wikipedia.org/wiki/Baidu_Yi)
264 ##########
265 - regex: 'Baidu Yi'
266 name: 'Baidu Yi'
267 version: ''
268
269 ##########
270 # Red Star (https://en.wikipedia.org/wiki/Red_Star_OS)
271 ##########
272 - regex: '붉은별|Fedora/(?:\d+\.[\d.-]+)\.rs(\d+(?:[_.]\d+)*)'
273 name: 'Red Star'
274 version: '$1'
275
276 ##########
277 # Proxmox VE (https://pve.proxmox.com/wiki/Main_Page)
278 ##########
279 - regex: 'Linux/(?:\d+\.[\d.-]+)-(?:pve|v(\d)\+)'
280 name: 'Proxmox VE'
281 version: '$1'
282
283 ##########
284 # OpenVZ (https://openvz.org/)
285 ##########
286 - regex: 'Linux/(?:\d+\.[\d.-]+)-(?:\d+[.\d]+)stab(?:\d+[.\d]+)'
287 name: 'OpenVZ'
288 version: ''
289
290 # Rocky Linux (https://rockylinux.org/)
291 ##########
292 - regex: 'rocky/(\d+[.\d]+)'
293 name: 'Rocky Linux'
294 version: '$1'
295
296 ##########
297 # Clear Linux OS (https://www.clearlinux.org/)
298 ##########
299 - regex: 'clear-linux-os/(\d+[.\d]+)'
300 name: 'Clear Linux OS'
301 version: '$1'
302
303 ##########
304 # Alpine Linux (https://www.alpinelinux.org/)
305 ##########
306 - regex: 'alpine/(\d+[.\d]+)'
307 name: 'Alpine Linux'
308 version: '$1'
309
310 ##########
311 # Scientific Linux (https://scientificlinux.org/)
312 ##########
313 - regex: 'scientific/(\d+[.\d]+)'
314 name: 'Scientific Linux'
315 version: '$1'
316
317 ##########
318 # EulerOS (https://developer.huaweicloud.com/intl/en-us/euleros/index.html)
319 ##########
320 - regex: 'eulerosv(\d)r(\d+)'
321 name: 'EulerOS'
322 version: '$1.$2'
323
324 ##########
325 # Loongnix (https://www.loongson.cn/EN/system/loongnix)
326 ##########
327 - regex: 'loongnix-server/(\d+[.\d]+)'
328 name: 'Loongnix'
329 version: '$1'
330
331 - regex: 'Linux/(?:\d+\.[\d.-]+)\.lns(\d+(?:[_.]\d+)*)\.loongarch64'
332 name: 'Loongnix'
333 version: '$1'
334
335 ##########
336 # AOSC OS (https://aosc.io/)
337 ##########
338 - regex: 'AOSC OS'
339 name: 'AOSC OS'
340 version: ''
341
342 ##########
343 # SerenityOS (https://github.com/SerenityOS/serenity)
344 ##########
345 - regex: 'SerenityOS|Ladybird/'
346 name: 'SerenityOS'
347 version: ''
348
349 ##########
350 # HELIX OS (https://www.pegasusintelligence.com/communication-security/)
351 ##########
352 - regex: 'Helix Phone'
353 name: 'HELIX OS'
354 version: ''
355
356 ##########
357 # Armadillo OS (https://github.com/pacificresearchalliance/kernel_google_crosshatch)
358 ##########
359 - regex: 'Armadillo'
360 name: 'Armadillo OS'
361 version: ''
362
363 # Webian (https://www.webian.org/)
364 ##########
365 - regex: 'Webian'
366 name: 'Webian'
367 version: ''
368
369 ##########
370 # Liri OS (https://liri.io/ | https://github.com/lirios)
371 ##########
372 - regex: 'Linux.*Liri/'
373 name: 'Liri OS'
374 version: ''
375
376 ##########
377 # FRITZ!OS (https://en.avm.de/products/fritzos/)
378 ##########
379 - regex: 'FRITZ!OS(?:/0(\d+[.\d]+))?'
380 name: 'FRITZ!OS'
381 version: '$1'
382
383 ##########
384 # UOS (https://www.chinauos.com/)
385 ##########
386 - regex: 'UOS$'
387 name: 'UOS'
388 version: ''
389
390 ##########
391 # Raspbian (https://www.raspbian.org/)
392 ##########
393 - regex: 'Raspbian/(\d+[.\d]+)'
394 name: 'Raspbian'
395 version: '$1'
396
397 ##########
398 # Raspberry Pi OS (https://www.raspberrypi.com/software/)
399 ##########
400 - regex: 'Raspbian'
401 name: 'Raspberry Pi OS'
402 version: ''
403
404 ##########
405 # BrightSignOS (https://www.brightsign.biz/ecosystem/brightsign-os/)
406 ##########
407 - regex: 'BrightSign/(?:[A-Z0-9]+)/(\d+[.\d]+)'
408 name: 'BrightSignOS'
409 version: '$1'
410 - regex: 'BrightSign/(\d+[.\d]+)'
411 name: 'BrightSignOS'
412 version: '$1'
413
414 ##########
415 # LuneOS (https://www.webos-ports.org/)
416 ##########
417 - regex: 'LuneOS'
418 name: 'LuneOS'
419 version: ''
420
421 ##########
422 # Oracle Linux (https://www.oracle.com/linux/)
423 ##########
424 - regex: 'Linux/(?:\d+\.[\d.-]+)\.el(\d+(?:[_.]\d+)*)uek'
425 name: 'Oracle Linux'
426 version: '$1'
427
428 ##########
429 # Kali (https://www.kali.org/)
430 ##########
431 - regex: '.+kali(\d)'
432 name: 'Kali'
433 version: '$1'
434
435 # TiVo OS (https://business.tivo.com/products-solutions/tivo-os)
436 ##########
437 - regex: 'TiVoOS/(\d+[.\d]+)'
438 name: 'TiVo OS'
439 version: '$1'
440
441 ##########
442 # VIDAA (https://www.vidaa.com/vidaa-os/)
443 ##########
444 - regex: 'VIDAA/(\d+[.\d]+)'
445 name: 'VIDAA'
446 version: '$1'
447
448 ##########
449 # PICO OS (https://www.picoxr.com/global/software/pico-os)
450 ##########
451 - regex: 'PICO.+OS(\d+[.\d]*)'
452 name: 'PICO OS'
453 version: '$1'
454
455 ##########
456 # RedOS (https://redos.red-soft.ru/)
457 ##########
458 - regex: 'RED OS; Linux'
459 name: 'RedOS'
460 version: ''
461
462 ##########
463 # RouterOS (https://help.mikrotik.com/docs/display/ROS/RouterOS)
464 ##########
465 - regex: 'Mikrotik/(\d)\.x'
466 name: 'RouterOS'
467 version: '$1'
468 - regex: 'RouterOS (\d+[.\d]+)'
469 name: 'RouterOS'
470 version: '$1'
471
472 ##########
473 # Sirin OS (https://sirinlabs.com/sirin-os/)
474 ##########
475 - regex: 'FINNEY U1'
476 name: 'Sirin OS'
477 version: ''
478
479 ##########
480 # Nova (https://www.nova.cu/)
481 ##########
482 - regex: 'Nova; Linux'
483 name: 'Nova'
484 version: ''
485
486 ##########
487 # Bliss OS (https://blissos.org/)
488 ##########
489 - regex: 'Android 10.+bliss_maple'
490 name: 'Bliss OS'
491 version: '12'
492
493 ##########
494 # TencentOS (https://github.com/Tencent/TencentOS-kernel)
495 ##########
496 - regex: '.+tlinux(\d)'
497 name: 'TencentOS'
498 version: '$1'
499
500 ##########
501 # Amazon Linux (https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html)
502 ##########
503 - regex: '.+.amzn(\d)(?:int)?.x86_64|Linux/.+aws'
504 name: 'Amazon Linux'
505 version: '$1'
506
507 - regex: 'Linux/.+-c9$'
508 name: 'Amazon Linux'
509 version: '2023' # https://aws.amazon.com/about-aws/whats-new/2023/12/aws-cloud9-amazon-linux-2023/
510
511 ##########
512 # COS (China Operating System - https://web.archive.org/web/20170825001023/http://www.china-cos.com/)
513 ##########
514 - regex: ' COS like Android'
515 name: 'China OS'
516 version: ''
517
518 ##########
519 # ClearOS Mobile (https://www.clearos.com/products/clearos-editions/clearos-mobile)
520 ##########
521 - regex: 'Android (\d+[.\d]*); ClearPHONE'
522 name: 'ClearOS Mobile'
523 version: '$1'
524
525 ##########
526 # Plasma Mobile (https://plasma-mobile.org/)
527 ##########
528 - regex: 'Plasma Mobile'
529 name: 'Plasma Mobile'
530 version: ''
531
532 ##########
533 # KreaTV
534 ##########
535 - regex: 'KreaTV/0\.0\.0\.0'
536 name: 'KreaTV'
537 version: ''
538
539 - regex: 'KreaTV/(\d+[.\d]+)'
540 name: 'KreaTV'
541 version: '$1'
542
543 ##########
544 # Opera TV (https://blogs.opera.com/news/2016/01/ces-2016-meet-opera-tv/)
545 ##########
546 - regex: 'Linux (?:[^;]+); Opera TV(?: Store)?/|^Opera/\d+\.\d+ \(Linux mips'
547 name: 'Opera TV'
548 version: ''
549 - regex: 'OPR/.+TV Store/(\d+[.\d]+)'
550 name: 'Opera TV'
551 version: '$1'
552
553 ##########
554 # GridOS (https://web.archive.org/web/20111123141630/http://fusiongarage.com/grid-os/about)
555 ##########
556 - regex: 'Grid OS (\d+[.\d]+)'
557 name: 'GridOS'
558 version: '$1'
559
560 ##########
561 # Caixa Mágica (https://caixamagica.pt/)
562 ##########
563 - regex: 'CaixaMagica'
564 name: 'Caixa Mágica'
565 version: ''
566
567 ##########
568 # Mageia (https://www.mageia.org/en/)
569 ##########
570 - regex: 'Mageia; Linux'
571 name: 'Mageia'
572 version: ''
573
574 ##########
575 # Whale OS (https://www.zeasn.com/)
576 ##########
577 - regex: '(?:WH|WhaleTV)/?(\d+[.\d]+)'
578 name: 'Whale OS'
579 version: '$1'
580
581 - regex: 'Zeasn/.*TBrowser/2\.0' # https://partner.zeasn.com/partnerportal/WhaleVersion1/index.jhtml
582 name: 'Whale OS'
583 version: '1'
584
585 - regex: 'Zeasn/'
586 name: 'Whale OS'
587 version: ''
588
589 ##########
590 # Orsay (https://news.samsung.com/global/interview-transition-to-tizen-how-a-talented-team-of-developers-laid-the-foundation-for-ai-tv)
591 ##########
592 - regex: 'SmartHub; ?SMART-TV|HbbTV/.+Maple|Samsung;SmartTV201[2-5]'
593 name: 'Orsay'
594 version: ''
595
596 ##########
597 # Tizen (https://www.tizen.org/)
598 ##########
599 - regex: 'Tizen[ /]?(\d+[.\d]+)?'
600 name: 'Tizen'
601 version: '$1'
602
603 - regex: 'HbbTV/.+Samsung'
604 name: 'Tizen'
605 version: ''
606
607 ##########
608 # YunOS (Android based)
609 ##########
610 - regex: 'Android (\d+[.\d]+)-RT'
611 name: 'YunOS'
612 version: '$1'
613
614 - regex: '(?:Ali)?YunOS[ /]?(\d+[.\d]+)?'
615 name: 'YunOS'
616 version: '$1'
617
618 ##########
619 # Windows Mobile
620 ##########
621 - regex: 'Windows Phone;FBSV/(\d+[.\d]+)'
622 name: 'Windows Phone'
623 version: '$1'
624
625 - regex: '(?:Windows Phone (?:OS)?|wds)[ /]?(\d+[.\d]+)'
626 name: 'Windows Phone'
627 version: '$1'
628
629 - regex: 'XBLWP7|Windows Phone'
630 name: 'Windows Phone'
631 version: ''
632
633 - regex: 'Windows CE(?: (\d+[.\d]+))?'
634 name: 'Windows CE'
635 version: '$1'
636
637 - regex: '(?:IEMobile|Windows ?Mobile)(?: (\d+[.\d]+))?'
638 name: 'Windows Mobile'
639 version: '$1'
640
641 - regex: 'Windows NT 6\.2; ARM;'
642 name: 'Windows RT'
643 version: ''
644
645 - regex: 'Windows NT 6\.3; ARM;'
646 name: 'Windows RT'
647 version: '8.1'
648
649 ##########
650 # Windows IoT
651 ##########
652 - regex: 'Windows IoT 10\.0'
653 name: 'Windows IoT'
654 version: '10'
655
656 ##########
657 # KaiOS (https://www.kaiostech.com/)
658 ##########
659 - regex: 'KAIOS(?:/(\d+[.\d]+))?'
660 name: 'KaiOS'
661 version: '$1'
662
663 ##########
664 # Custom Android Roms
665 ##########
666 - regex: '(?:HarmonyOS|hmos.+OpenHarmony)[-/ ]([56][.\d]+)'
667 name: 'HarmonyOS NEXT'
668 version: '$1'
669
670 - regex: 'OpenHarmony(?:[-/ ](\d+[.\d]+))?'
671 name: 'OpenHarmony'
672 version: '$1'
673
674 - regex: 'HarmonyOS(?:[-/ ](\d+[.\d]+))?'
675 name: 'HarmonyOS'
676 version: '$1'
677 - regex: 'Hmos/1'
678 name: 'HarmonyOS'
679 version: '1.0.0'
680
681 - regex: 'RazoDroiD(?: v(\d+[.\d]*))?'
682 name: 'RazoDroiD'
683 version: '$1'
684
685 - regex: 'MildWild(?: CM-(\d+[.\d]*))?'
686 name: 'MildWild'
687 version: '$1'
688
689 - regex: 'CyanogenMod(?:[\-/](?:CM)?(\d+[.\d]*))?'
690 name: 'CyanogenMod'
691 version: '$1'
692
693 - regex: '(?:.*_)?MocorDroid(?:(\d+[.\d]*))?'
694 name: 'MocorDroid'
695 version: '$1'
696
697 - regex: 'FydeOS'
698 name: 'FydeOS'
699 version: ''
700
701 ##########
702 # Smartisan OS (https://www.smartisan.com/os/)
703 ##########
704 - regex: 'Smartisan[_ ]|(SM(?:70[15]|801|919)|YQ60[1357]|DT2002C|DE106|DT190[12]A|O[CE]106|OC105)[ /;\)]'
705 name: 'Smartisan OS'
706 versions:
707 - regex: 'SM70[15]'
708 version: '1.5'
709 - regex: 'SM801'
710 version: '2.5'
711 - regex: 'SM919'
712 version: '3.0'
713 - regex: 'YQ60[1357]'
714 version: '2.0'
715 - regex: 'DE106[ /;\)]'
716 version: '6.0'
717 - regex: 'OE106[ /;\)]'
718 version: '6.0'
719 - regex: 'OC10[56][ /;\)]'
720 version: '6.0'
721 - regex: 'DT2002C[ /;\)]'
722 version: '6.0'
723 - regex: 'DT190[12]A[ /;\)]'
724 version: '6.0'
725 - regex: 'Smartisan U3 Pro'
726 version: '3.0'
727
728 ##########
729 # Fire OS (https://developer.amazon.com/docs/fire-tv/fire-os-overview.html)
730 ##########
731 - regex: 'Fire OS(?:[ /](\d+[.\d]*))?'
732 name: 'Fire OS'
733 version: '$1'
734
735 - regex: '(?:Andr[o0]id (\d([\d.])*);? |Amazon;|smarttv_)AFT|AEO[ACBHKT]| KF[ADFGJKMORSTQ]|.+FIRETVSTICK2018'
736 name: 'Fire OS'
737 versions:
738 - regex: 'Andr[o0]id 1[234]'
739 version: '14'
740 - regex: 'Andr[o0]id 1[01]'
741 version: '8'
742 - regex: 'Andr[o0]id 9|AFTSO001'
743 version: '7'
744 - regex: 'Andr[o0]id 7|.+FIRETVSTICK2018'
745 version: '6'
746 - regex: 'Andr[o0]id 5\.1'
747 version: '5'
748 - regex: 'Andr[o0]id 4\.4\.3'
749 version: '4.5.1'
750 - regex: 'Andr[o0]id 4\.4\.2'
751 version: '4'
752 - regex: 'Andr[o0]id 4\.2\.2'
753 version: '3'
754 - regex: 'Andr[o0]id 4\.0\.[34]'
755 version: '3'
756 - regex: 'Andr[o0]id 4\.0'
757 version: '2'
758 - regex: 'Andr[o0]id 2\.3\.3'
759 version: '1'
760
761 - regex: 'cordova-amazon-fireos'
762 name: 'Fire OS'
763 version: ''
764
765 ##########
766 # Revenge OS
767 ##########
768 - regex: 'revengeos_x2'
769 name: 'Revenge OS'
770 version: '2'
771
772 ##########
773 # Lineage OS
774 ##########
775 - regex: 'Lineage_(\d+[.\d]*)'
776 name: 'Lineage OS'
777 version: '$1'
778
779 - regex: '(?:Android (\d([\d.])*);? )?IAWPSCOPED\lineage_\w+'
780 name: 'Lineage OS'
781 versions:
782 - regex: 'Android 16'
783 version: '23'
784 - regex: 'Android 15'
785 version: '22'
786 - regex: 'Android 14'
787 version: '21'
788 - regex: 'Android 13'
789 version: '20.0'
790 - regex: 'Android 12\.1'
791 version: '19.1'
792 - regex: 'Android 12'
793 version: '19.0'
794 - regex: 'Android 11'
795 version: '18.0'
796 - regex: 'Android 10'
797 version: '17.0'
798 - regex: 'Android 9'
799 version: '16.0'
800 - regex: 'Android 8\.1'
801 version: '15.1'
802 - regex: 'Android 8'
803 version: '15.0'
804 - regex: 'Android 7\.1'
805 version: '14.1'
806 - regex: 'Android 7'
807 version: '14.0'
808 - regex: 'Android 6'
809 version: '13.0'
810 - regex: 'Android 5\.1'
811 version: '12.1'
812 - regex: 'Android 5'
813 version: '12.0'
814 - regex: 'Android 4\.4'
815 version: '11.0'
816 - regex: 'Android 4\.3'
817 version: '10.2'
818 - regex: 'Android 4\.2'
819 version: '10.1'
820 - regex: 'Android 4'
821 version: '9.1.0'
822
823 #########
824 # Resurrection Remix OS (https://resurrectionremix.com/)
825 ##########
826 - regex: 'Android 8(?:[\d.]*);(?: [\w-]+;)? rr_fortuna3g'
827 name: 'Resurrection Remix OS'
828 version: '6'
829
830 ##########
831 # Remix OS
832 ##########
833 - regex: 'RemixOS|Remix (?:Pro|Mini)'
834 name: 'Remix OS'
835 versions:
836 - regex: 'RemixOS 5'
837 version: '1'
838 - regex: 'RemixOS 6|Remix Mini'
839 version: '2'
840 - regex: 'Remix Pro'
841 version: '3'
842
843 ##########
844 # FreeBSD
845 ##########
846 - regex: 'FreeBSD.+Android'
847 name: 'FreeBSD'
848 version: ''
849
850 ##########
851 # Wear OS (https://wearos.google.com/)
852 ##########
853 - regex: 'Chrome/(\d+\.[.\d]+) Odd/|SM-R(?:8[6-9]|9)|LEM14'
854 name: 'Wear OS'
855 version: ''
856
857 ##########
858 # SeewoOS
859 ##########
860 - regex: 'SeewoOS x86_64 (\d+[.\d]+)'
861 name: 'SeewoOS'
862 version: '$1'
863
864 ##########
865 # ChromeOS
866 ##########
867 - regex: '(?:CrOS [a-z0-9_]+ |.*Build/IAWPSCOPED\R\d+-)(\d+[.\d]+)|Chromebook'
868 name: 'Chrome OS'
869 version: '$1'
870
871 # https://chromiumdash.appspot.com/serving-builds?deviceCategory=ChromeOS
872 - regex: '(?:Android (?:9|1[0-7])[.\d]*|Linux x86_64); (?:asurada|atlas|brask|brox|brya|cherry|coral|corsola|dedede|drallion|elm|eve|fizz|geralt|grunt|guybrush|hana|hatch|jacuzzi|jedi|kalista|kukui|nami|nautilus|nirva|nissa|nocturne|octopus|ovis|puff|pyro|rammus|rauru|reef|rex|sand|sarien|skyrim|skywalker|snappy|soraka|staryu|strongbad|trogdor|volteer|zork)\)'
873 name: 'Chrome OS'
874 version: ''
875
876 ##########
877 # Android TV (https://android.com/tv/)
878 ##########
879 - regex: 'Linux; Andr0id[; ](\d+[.\d]*)'
880 name: 'Android TV'
881 version: '$1'
882
883 - regex: 'Android[; ](\d+[.\d]*).+(?:(?:Android(?: UHD)?|AT&T|Google|Smart)[ _]?TV|AOSP on r33a0|BRAVIA|wv-atv)'
884 name: 'Android TV'
885 version: '$1'
886
887 - regex: 'Windows.+Andr0id TV|.+(?:K_?Android_?TV_|AndroidTV|GoogleTV_)'
888 name: 'Android TV'
889 version: ''
890
891 ##########
892 # Android SDK Level Api
893 ##########
894 - regex: '(?:Android API \d+|\d+/tclwebkit(?:\d+[.\d]*)|(?:(?<!\d) Android/\d{2}|Android (?!1[0-7])\d{2})(?![^; ]))'
895 name: 'Android'
896 versions:
897 - regex: 'Android API 37|37/tclwebkit|Android[ /]37'
898 version: '17'
899 - regex: 'Android API 36|36/tclwebkit|Android[ /]36'
900 version: '16'
901 - regex: 'Android API 35|35/tclwebkit|Android[ /]35'
902 version: '15'
903 - regex: 'Android API 34|34/tclwebkit|Android[ /]34'
904 version: '14'
905 - regex: 'Android API 33|33/tclwebkit|Android[ /]33'
906 version: '13'
907 - regex: 'Android API 32|32/tclwebkit|Android[ /]32'
908 version: '12.1'
909 - regex: 'Android API 31|31/tclwebkit|Android[ /]31'
910 version: '12'
911 - regex: 'Android API 30|30/tclwebkit|Android[ /]30'
912 version: '11'
913 - regex: 'Android API 29|29/tclwebkit|Android[ /]29'
914 version: '10'
915 - regex: 'Android API 28|28/tclwebkit|Android[ /]28'
916 version: '9'
917 - regex: 'Android API 27|27/tclwebkit|Android[ /]27'
918 version: '8.1'
919 - regex: 'Android API 26|26/tclwebkit|Android[ /]26'
920 version: '8'
921 - regex: 'Android API 25|25/tclwebkit|Android[ /]25'
922 version: '7.1'
923 - regex: 'Android API 24|24/tclwebkit|Android[ /]24'
924 version: '7'
925 - regex: 'Android API 23|23/tclwebkit|Android[ /]23'
926 version: '6'
927 - regex: 'Android API 22|22/tclwebkit|Android[ /]22'
928 version: '5.1'
929 - regex: 'Android API 21|21/tclwebkit|Android[ /]21'
930 version: '5'
931 - regex: 'Android API (?:20|19)|(?:20|19)/tclwebkit|Android[ /](?:20|19)'
932 version: '4.4'
933 - regex: 'Android API 18|18/tclwebkit|Android[ /]18'
934 version: '4.3'
935 - regex: 'Android API 17|17/tclwebkit|Android[ /]17'
936 version: '4.2'
937 - regex: 'Android API 16|16/tclwebkit|Android[ /]16'
938 version: '4.1'
939 - regex: 'Android API 15|15/tclwebkit|Android[ /]15'
940 version: '4.0.3'
941 - regex: 'Android API 14|14/tclwebkit|Android[ /]14'
942 version: '4.0.1'
943
944 ##########
945 # Android
946 ##########
947 - regex: 'Android Marshmallow'
948 name: 'Android'
949 version: '6'
950
951 - regex: '(?:Podbean|Podimo)(?:.*)/Android|Rutube(?:TV)?BlackAndroid'
952 name: 'Android'
953 version: ''
954
955 - regex: '(?:Android OS|OMDroid|sdk_gphone64_arm64-userdebug|StarOS)[ /](\d+[.\d]*)'
956 name: 'Android'
957 version: '$1'
958
959 - regex: 'Pinterest for Android(?: Tablet)?/.*; (\d(?:[\d.]*))\)$'
960 name: 'Android'
961 version: '$1'
962
963 - regex: 'Android; (\d+[.\d]*); Mobile;'
964 name: 'Android'
965 version: '$1'
966
967 - regex: 'Android;(\d+[.\d]*);API'
968 name: 'Android'
969 version: '$1'
970
971 - regex: 'Android \(\d{2}/(\d+[.\d]*);'
972 name: 'Android'
973 version: '$1'
974
975 - regex: '[ ]([\d.]+)\) AppleWebKit.*ROBLOX Android App'
976 name: 'Android'
977 version: '$1'
978
979 - regex: '(?:(?:Orca-)?(?<!like |/|RadioPublic |Anghami |Callpod Keeper for |com\.linkedin\.)Android|Adr|AOSP)[ /]?(?:[a-z]+ )?(\d+[.\d]*)'
980 name: 'Android'
981 version: '$1'
982
983 - regex: '(?:Allview_TX1_Quasar|Cosmote_My_mini_Tab) (\d+[.\d]*)'
984 name: 'Android'
985 version: '$1'
986
987 - regex: 'Android ?(?:jelly bean|Kit Kat|S\.O\. Ginger Bread|The FireCyano|:) (\d+[.\d]*)'
988 name: 'Android'
989 version: '$1'
990
991 - regex: '(?:Orca-Android|FB4A).*FBSV/(\d+[.\d]*);'
992 name: 'Android'
993 version: '$1'
994
995 - regex: '(?:TwitterAndroid).*[ /](?:[a-z]+ )?(\d+[.\d]*)'
996 name: 'Android'
997 version: '$1'
998
999 - regex: '\(Android:.*\); API (\d+[.\d]*)'
1000 name: 'Android'
1001 version: '$1'
1002
1003 - regex: 'Android-(\d+[.\d]*);'
1004 name: 'Android'
1005 version: '$1'
1006
1007 - regex: ' Adr |.*(?<!like |/ )Android|Silk-Accelerated=[a-z]{4,5}'
1008 name: 'Android'
1009 version: ''
1010
1011 - regex: 'BeyondPod|AntennaPod|Podkicker|DoggCatcher|okhttp|Podcatcher Deluxe|Sonos/.+\(ACR_|.*WhatsApp/.*A$'
1012 name: 'Android'
1013 version: ''
1014
1015 # Inverted Android
1016 - regex: 'Linux; diordnA[; ](\d+[.\d]*)'
1017 name: 'Android'
1018 version: '$1'
1019
1020 - regex: '^A/(\d+[.\d]*)/'
1021 name: 'Android'
1022 version: '$1'
1023
1024 ##########
1025 ## Sailfish OS
1026 ###########
1027 - regex: 'Sailfish|Jolla'
1028 name: 'Sailfish OS'
1029 version: ''
1030
1031 ##########
1032 # AmigaOS
1033 ##########
1034 - regex: 'AmigaOS[ ]?(\d+[.\d]+)'
1035 name: 'AmigaOS'
1036 version: '$1'
1037
1038 - regex: 'AmigaOS|AmigaVoyager|Amiga-AWeb'
1039 name: 'AmigaOS'
1040 version: ''
1041
1042 ##########
1043 # ThreadX
1044 ##########
1045 - regex: 'ThreadX(?:_OS)?(?:/(\d+[.\d]*))?'
1046 name: 'ThreadX'
1047 version: '$1'
1048
1049 ##########
1050 # MTK / Nucleus
1051 ##########
1052 - regex: 'Nucleus(?:(?: |/v?)(\d+[.\d]*))?'
1053 name: 'MTK / Nucleus'
1054 version: '$1'
1055 - regex: 'MTK(?:(?: |/v?)(\d+[.\d]*))?'
1056 name: 'MTK / Nucleus'
1057 version: '$1'
1058
1059 ##########
1060 # MRE / MAUI Runtime Environment
1061 ##########
1062 - regex: 'MRE/(\d+)\.(\d+).*;MAUI'
1063 name: 'MRE'
1064 version: '$1.$2'
1065 - regex: 'MRE\\\\(\d+[.\d]+)'
1066 name: 'MRE'
1067 version: '$1'
1068 - regex: '.+MRE|MAUI Runtime'
1069 name: 'MRE'
1070 version: ''
1071
1072 ##########
1073 # Linux
1074 ##########
1075 # Linspire (https://www.linspirelinux.com/)
1076 - regex: 'Linspire'
1077 name: 'Linspire'
1078 version: ''
1079
1080 # LindowsOS (https://web.archive.org/web/20040304161245/http://www.lindows.com/)
1081 - regex: 'LindowsOS'
1082 name: 'LindowsOS'
1083 version: ''
1084
1085 # Zenwalk (http://www.zenwalk.org/)
1086 - regex: 'Zenwalk GNU Linux'
1087 name: 'Zenwalk'
1088 version: ''
1089
1090 # Kanotix (http://www.kanotix.com/)
1091 - regex: 'Linux.+kanotix'
1092 name: 'Kanotix'
1093 version: ''
1094
1095 # moonOS (https://www.moonos.org/)
1096 - regex: 'moonOS/(\d+[.\d]+)'
1097 name: 'moonOS'
1098 version: '$1'
1099
1100 # Foresight Linux (https://www.foresightlinux.org/)
1101 - regex: 'Foresight Linux'
1102 name: 'Foresight Linux'
1103 version: ''
1104
1105 # Pardus (https://www.pardus.org.tr/)
1106 - regex: 'Pardus/(\d+[.\d]+)'
1107 name: 'Pardus'
1108 version: '$1'
1109
1110 # Pure OS (https://pureos.net/)
1111 - regex: 'Librem 5'
1112 name: 'PureOS'
1113 version: ''
1114
1115 # OpenWrt (https://openwrt.org/)
1116 - regex: 'uclient-fetch'
1117 name: 'OpenWrt'
1118 version: ''
1119
1120 # Roku OS (https://www.roku.com/how-it-works/roku-os)
1121 - regex: 'RokuOS/.+RokuOS (\d+[.\d]+)'
1122 name: 'Roku OS'
1123 version: '$1'
1124
1125 - regex: 'Roku(?:OS|4640X)?/(?:DVP|Pluto)?-?(\d+[.\d]+)?'
1126 name: 'Roku OS'
1127 version: '$1'
1128
1129 - regex: 'Roku; (?:AP|UI); (\d+[.\d]+)'
1130 name: 'Roku OS'
1131 version: '$1'
1132
1133 - regex: 'RokuBrowser/.+\(TV-([a-z0-9]+)-(\d+[.\d]+)\)'
1134 name: 'Roku OS'
1135 version: '$2'
1136
1137 # DVKBuntu (https://www.dvkbuntu.org/)
1138 - regex: 'dvkbuntu'
1139 name: 'DVKBuntu'
1140 version: ''
1141
1142 # Lumin OS (https://developer.magicleap.com/en-us/learn/guides/lumin-os-release-notes-summary)
1143 - regex: 'Helio/(\d+[.\d]+)'
1144 name: 'Lumin OS'
1145 version: '$1'
1146
1147 # HasCodingOS (https://forum.hascoding.com/HasCodingOS)
1148 - regex: 'HasCodingOs (\d+[.\d]+)'
1149 name: 'HasCodingOS'
1150 version: '$1'
1151
1152 # PCLinuxOS (https://www.pclinuxos.com/)
1153 - regex: 'PCLinuxOS/(\d+[.\d]+)'
1154 name: 'PCLinuxOS'
1155 version: '$1'
1156
1157 - regex: '(Ordissimo|webissimo3)'
1158 name: 'Ordissimo'
1159 version: ''
1160
1161 # Fenix (https://fenixlinux.com/)
1162 - regex: '(?:Win|Sistema )Fenix'
1163 name: 'Fenix'
1164 version: ''
1165
1166 - regex: 'TOS; Linux'
1167 name: 'TmaxOS'
1168 version: ''
1169
1170 - regex: 'Maemo'
1171 name: 'Maemo'
1172 version: ''
1173
1174 - regex: 'Arch ?Linux(?:[ /\-](\d+[.\d]+))?'
1175 name: 'Arch Linux'
1176 version: '$1'
1177
1178 - regex: 'VectorLinux(?: package)?(?:[ /\-](\d+[.\d]+))?'
1179 name: 'VectorLinux'
1180 version: '$1'
1181
1182 - regex: 'sles/(\d+[.\d]+)'
1183 name: 'SUSE'
1184 version: '$1'
1185
1186 - regex: '(?:rhel|Red ?Hat(?: Enterprise)? Linux(?: Server)?)[ /](\d+[.\d]+)'
1187 name: 'Red Hat'
1188 version: '$1'
1189
1190 - regex: '.+redhat-linux-gnu|rhel|Red Hat Enterprise Linux Server'
1191 name: 'Red Hat'
1192 version: ''
1193
1194 - regex: 'CentOS Stream (\d)'
1195 name: 'CentOS Stream'
1196 version: '$1'
1197
1198 - regex: 'centos(?: Linux)?/(\d+[.\d]+) '
1199 name: 'CentOS'
1200 version: '$1'
1201
1202 - regex: '.+.el(\d+(?:[_.]\d+)*).(?:centos|x86_64)'
1203 name: 'CentOS'
1204 version: '$1'
1205
1206 - regex: 'CentOS Linux (\d)'
1207 name: 'CentOS'
1208 version: '$1'
1209
1210 - regex: 'Fedora/.+.fc(\d+)'
1211 name: 'Fedora'
1212 version: '$1'
1213
1214 - regex: 'Mandriva(?: Linux)?/.+mdv(\d+[.\d]+)'
1215 name: 'Mandriva'
1216 version: '$1'
1217
1218 - regex: 'Linux Mint/(\d)'
1219 name: 'Mint'
1220 version: '$1'
1221
1222 - regex: 'Zorin OS (\d+)'
1223 name: 'ZorinOS'
1224 version: '$1'
1225
1226 - regex: 'Ubuntu[-/]hardy'
1227 name: 'Ubuntu'
1228 version: '8.04'
1229
1230 - regex: 'debian/stretch'
1231 name: 'Debian'
1232 version: '9.13'
1233
1234 - regex: 'Ubuntu[-/]feisty'
1235 name: 'Ubuntu'
1236 version: '7.04'
1237
1238 - regex: 'Ubuntu[-/]edgy'
1239 name: 'Ubuntu'
1240 version: '6.10'
1241
1242 - regex: 'Ubuntu[-/]dapper'
1243 name: 'Ubuntu'
1244 version: '6.06'
1245
1246 - regex: 'Ubuntu[-/]breezy'
1247 name: 'Ubuntu'
1248 version: '5.10'
1249
1250 - regex: 'Ubuntu[ /](\d+[.\d]+)'
1251 name: 'Ubuntu'
1252 version: '$1'
1253
1254 - regex: 'Linux; .*((?:Debian|Knoppix|Mint|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|SUSE|CentOS|BackTrack))[ /](\d+[.\d]+)'
1255 name: '$1'
1256 version: '$2'
1257
1258 - regex: 'Deepin[ /](\d+[.\d]+)'
1259 name: 'Deepin'
1260 version: '$1'
1261
1262 - regex: '(Debian|Knoppix|Mint(?! Browser)|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|openSUSE|SUSE|CentOS|BackTrack|Freebox|ASPLinux)(?:(?: Enterprise)? Linux)?(?:[ /\-](\d+[.\d]+))?'
1263 name: '$1'
1264 version: '$2'
1265
1266 - regex: 'OS ROSA; Linux'
1267 name: 'Rosa'
1268 version: ''
1269
1270 - regex: '.+gentoo'
1271 name: 'Gentoo'
1272 version: ''
1273
1274 ##########
1275 # webOS
1276 ##########
1277 - regex: '(?:Web0S; .*WEBOS|webOS|web0S|Palm webOS|hpwOS)(?:[/]?(\d+[.\d]+))?'
1278 name: 'webOS'
1279 version: '$1'
1280 versions:
1281 - regex: 'WEBOS(\d+[.\d]+)'
1282 version: '$1'
1283 - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/120'
1284 version: '25'
1285 - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/108'
1286 version: '24'
1287 - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/94'
1288 version: '23'
1289 - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/87'
1290 version: '22'
1291 - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/79'
1292 version: '6'
1293 - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/68'
1294 version: '5'
1295 - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/53'
1296 version: '4'
1297 - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/38'
1298 version: '3'
1299 - regex: 'WEBOS1'
1300 version: '1'
1301 - regex: 'Web0S; Linux/SmartTV.+Safari/538'
1302 version: '2'
1303 - regex: 'Web0S; Linux/SmartTV.+Safari/537'
1304 version: '1'
1305
1306 - regex: '(?:PalmOS|Palm OS)(?:[/ ](\d+[.\d]+))?|Palm'
1307 name: 'palmOS'
1308 version: '$1'
1309
1310 - regex: 'Xiino(?:.*v\. (\d+[.\d]+))?' # palmOS only browser
1311 name: 'palmOS'
1312 version: '$1'
1313
1314 - regex: 'MorphOS(?:[ /](\d+[.\d]+))?'
1315 name: 'MorphOS'
1316 version: '$1'
1317
1318 ##########
1319 # Windows
1320 ##########
1321 - regex: 'FBW.+FBSV/(\d+[.\d]*);'
1322 name: 'Windows'
1323 version: '$1'
1324
1325 - regex: 'Windows.+OS: (\d+[.\d]*)'
1326 name: 'Windows'
1327 version: '$1'
1328
1329 - regex: 'Windows; ?(\d+[.\d]*);'
1330 name: 'Windows'
1331 version: '$1'
1332
1333 - regex: 'mingw32|winhttp|WhatsApp/.*W$'
1334 name: 'Windows'
1335 version: ''
1336
1337 - regex: '(?:Windows(?:-Update-Agent)?|Microsoft-(?:CryptoAPI|Delivery-Optimization|WebDAV-MiniRedir|WNS)|WINDOWS_64)/(\d+\.\d+)'
1338 name: 'Windows'
1339 version: '$1'
1340
1341 - regex: 'Windows-(1[01])-'
1342 name: 'Windows'
1343 version: '$1'
1344
1345 - regex: 'CYGWIN_NT-10\.0|Win(?:dows )?NT 10\.0|Windows[ /]10'
1346 name: 'Windows'
1347 version: '10'
1348
1349 - regex: 'CYGWIN_NT-6\.4|Windows NT 6\.4|Windows 10|win10'
1350 name: 'Windows'
1351 version: '10'
1352
1353 - regex: 'Windows[/-](2016|2019|2022|2025)Server'
1354 name: 'Windows'
1355 version: 'Server $1'
1356
1357 - regex: 'Windows/2012ServerR2'
1358 name: 'Windows'
1359 version: 'Server 2012 R2'
1360
1361 - regex: 'CYGWIN_NT-6\.3|Windows NT 6\.3|Windows[ /]8\.1'
1362 name: 'Windows'
1363 version: '8.1'
1364
1365 - regex: 'Windows/2012Server'
1366 name: 'Windows'
1367 version: 'Server 2012'
1368
1369 - regex: 'CYGWIN_NT-6\.2|Windows NT 6\.2|Windows 8|post2008Server'
1370 name: 'Windows'
1371 version: '8'
1372
1373 - regex: 'Windows/2008ServerR2'
1374 name: 'Windows'
1375 version: 'Server 2008 R2'
1376
1377 - regex: 'CYGWIN_NT-6\.1|Windows NT 6\.1|Windows[ /]7|win7|Windows \(6\.1'
1378 name: 'Windows'
1379 version: '7'
1380
1381 - regex: 'CYGWIN_NT-6\.0|Windows NT 6\.0|Windows Vista'
1382 name: 'Windows'
1383 version: 'Vista'
1384
1385 - regex: 'CYGWIN_NT-5\.2|Windows NT 5\.2|Windows Server 2003 / XP x64|Windows/2003Server'
1386 name: 'Windows'
1387 version: 'Server 2003'
1388
1389 - regex: 'CYGWIN_NT-5\.1|Windows NT 5\.1|(?:Microsoft-)?Windows[ -]XP'
1390 name: 'Windows'
1391 version: 'XP'
1392
1393 - regex: 'CYGWIN_NT-5\.0|Windows NT 5\.0|Windows 2000'
1394 name: 'Windows'
1395 version: '2000'
1396
1397 - regex: 'CYGWIN_NT-4\.0|Windows NT 4\.0|WinNT(?! 10)|Windows NT'
1398 name: 'Windows'
1399 version: 'NT'
1400
1401 - regex: 'CYGWIN_ME-4\.90|Win 9x 4\.90|Windows ME'
1402 name: 'Windows'
1403 version: 'ME'
1404
1405 - regex: 'CYGWIN_98-4\.10|Win98|Windows 98'
1406 name: 'Windows'
1407 version: '98'
1408
1409 - regex: 'CYGWIN_95-4\.0|Win32|Win95|Windows 95|Windows_95'
1410 name: 'Windows'
1411 version: '95'
1412
1413 - regex: 'Windows 3\.1'
1414 name: 'Windows'
1415 version: '3.1'
1416
1417 - regex: 'Windows|.+win32|Win64|MSDW|HandBrake Win Upd|Microsoft BITS|ms-office; MSOffice'
1418 name: 'Windows'
1419 version: ''
1420
1421 - regex: 'OS/Microsoft_Windows_NT_(\d+\.\d+)'
1422 name: 'Windows'
1423 version: '$1'
1424
1425 ##########
1426 # Haiku OS
1427 ##########
1428 - regex: 'Haiku'
1429 name: 'Haiku OS'
1430 version: ''
1431
1432 ##########
1433 # tvOS (https://developer.apple.com/tvos/)
1434 ##########
1435 - regex: 'Apple ?TV.*CPU (?:iPhone )?OS ((?:9|1[0-9]|26)[_.]\d+(?:[_.]\d+)*)'
1436 name: 'tvOS'
1437 version: '$1'
1438
1439 - regex: 'Apple TV; iOS ((?:9|1[0-9]|26)[_.]\d+(?:[_.]\d+)*)'
1440 name: 'tvOS'
1441 version: '$1'
1442
1443 - regex: 'iOS(?:; |/)((?:9|1[0-9]|26)\.\d+(?:[_.]\d+)*) (?:model/)?AppleTV'
1444 name: 'tvOS'
1445 version: '$1'
1446
1447 - regex: 'tvOS[ /]?((?:9|1[0-9]|26)\.\d+(?:[_.]\d+)*);?'
1448 name: 'tvOS'
1449 version: '$1'
1450
1451 - regex: 'AppleTV(?:/?(\d+[.\d]+))?'
1452 name: 'tvOS'
1453 version: '$1'
1454
1455 ##########
1456 # watchOS (https://developer.apple.com/watchos/)
1457 ##########
1458 - regex: '(?:Watch1,[12]/|Watch OS,|watchOS[ /]?)(\d+[.\d]*)?'
1459 name: 'watchOS'
1460 version: '$1'
1461 - regex: 'Apple Watch(?!;)'
1462 name: 'watchOS'
1463 version: ''
1464
1465 ##########
1466 # iPadOS (https://www.apple.com/ipados/)
1467 ##########
1468 - regex: 'FBMD/iPad;.*FBSV/ ?(1[3-9]|26).(\d+[.\d]*);'
1469 name: 'iPadOS'
1470 version: '$1.$2'
1471
1472 - regex: 'iPad(?:OS)?[ /](1[3-9]|26)\.(\d+[.\d]*)'
1473 name: 'iPadOS'
1474 version: '$1.$2'
1475
1476 - regex: '^iPad(?:\d+[\,\d]*)/(1[3-9]|26)\.(\d+[.\d]*)'
1477 name: 'iPadOS'
1478 version: '$1.$2'
1479
1480 - regex: 'iPad; CPU OS 18_7.+Version/(\d+[.\d]+)'
1481 name: 'iPadOS'
1482 version: '$1'
1483
1484 - regex: 'iPad(?:; (?:iOS|iPadOS|iPhone OS)|.+CPU (?:iPad ?|iPhone )?OS) ((1[3-9]|26)+(?:[_.]\d+)*)'
1485 name: 'iPadOS'
1486 version: '$1'
1487
1488 - regex: 'iOS[ /](1[3-9]|26)\.(\d+[.\d]*).+iPad'
1489 name: 'iPadOS'
1490 version: '$1.$2'
1491
1492 - regex: 'iPhone OS,(1[3-9]|26)\.(\d+[.\d]*).+iPad'
1493 name: 'iPadOS'
1494 version: '$1.$2'
1495
1496 - regex: 'iphoneos(1[3-9]|26)\.(\d+[.\d]*); iPad'
1497 name: 'iPadOS'
1498 version: '$1.$2'
1499
1500 - regex: 'Pinterest for iOS/.*iPad.*; (\d(?:[\d.]*))[)]$'
1501 name: 'iPadOS'
1502 version: '$1'
1503
1504 ##########
1505 # iOS
1506 ##########
1507 - regex: 'iPad/([89]|1[012])\.(\d+[.\d]*)'
1508 name: 'iOS'
1509 version: '$1.$2'
1510
1511 - regex: '^(?:iPad|iPhone)(?:\d+[\,\d]*)[/_](\d+[.\d]+)'
1512 name: 'iOS'
1513 version: '$1'
1514
1515 - regex: 'iphoneos(1[3-9]|26)\.(\d+[.\d]*); iPhone'
1516 name: 'iOS'
1517 version: '$1.$2'
1518
1519 - regex: 'Pinterest for iOS/.*iPhone.*; (\d(?:[\d.]*))[)]$'
1520 name: 'iOS'
1521 version: '$1'
1522
1523 - regex: 'iOS (\d+[.\d]+)\)'
1524 name: 'iOS'
1525 version: '$1'
1526
1527 - regex: 'iPhone OS ([0-9]{1})([0-9]{1})([0-9]{1})'
1528 name: 'iOS'
1529 version: '$1.$2.$3'
1530
1531 - regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iPhone.+ OS|PodMN.+iPhone|iOS)[ _/]19(?:[_.])?(\d+(?:[._]\d+)*)'
1532 name: 'iOS'
1533 version: '26.$1'
1534
1535 - regex: 'iPhone OS 18_7.+Version/(\d+[.\d]+)'
1536 name: 'iOS'
1537 version: '$1'
1538
1539 - regex: 'iOS/(\d+[.\d]+)$'
1540 name: 'iOS'
1541 version: '$1'
1542
1543 - regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iPhone.+ OS|PodMN.+iPhone|iOS)[ _/](\d+(?:[_.]\d+)*)'
1544 name: 'iOS'
1545 version: '$1'
1546
1547 - regex: '(?:iPhone ?OS|iOS(?: Version)?)(?:/|; |,)(\d+[.\d]+)'
1548 name: 'iOS'
1549 version: '$1'
1550
1551 - regex: '^(?!com\.apple\.Safari\.SearchHelper|Safari|com\.apple\.WebKit\.Networking|NetworkingExtension).*(?:CFNetwork|Mana)/.+ Darwin/(\d+[.\d]+)(?!.*(?:x86_64|i386|PowerMac|Power%20Macintosh))'
1552 name: 'iOS'
1553 versions:
1554 - regex: 'Darwin/25\.([0-5])\.0'
1555 version: '26.$1'
1556 - regex: 'Darwin/24\.([0-6])\.0'
1557 version: '18.$1'
1558 - regex: 'Darwin/23\.([0-6])\.0'
1559 version: '17.$1'
1560 - regex: 'Darwin/22\.([0-6])\.0'
1561 version: '16.$1'
1562 - regex: 'Darwin/21\.([0-6])\.0'
1563 version: '15.$1'
1564 - regex: 'Darwin/20\.6\.0'
1565 version: '14.7'
1566 - regex: 'Darwin/20\.5\.0'
1567 version: '14.6'
1568 - regex: 'Darwin/20\.4\.0'
1569 version: '14.5'
1570 - regex: 'Darwin/20\.3\.0'
1571 version: '14.4'
1572 - regex: 'Darwin/20\.2\.0'
1573 version: '14.3'
1574 - regex: 'Darwin/20\.1\.0'
1575 version: '14.2'
1576 - regex: 'Darwin/20\.0\.0'
1577 version: '14.0'
1578 - regex: 'Darwin/19\.([456])\.0'
1579 version: '13.$1'
1580 - regex: 'Darwin/19\.3\.0'
1581 version: '13.3.1'
1582 - regex: 'Darwin/19\.2\.0'
1583 version: '13.3'
1584 - regex: 'Darwin/19\.0\.0'
1585 version: '13.0'
1586 - regex: 'Darwin/18\.7\.0'
1587 version: '12.4'
1588 - regex: 'Darwin/18\.6\.0'
1589 version: '12.3'
1590 - regex: 'Darwin/18\.5\.0'
1591 version: '12.2'
1592 - regex: 'Darwin/18\.2\.0'
1593 version: '12.1'
1594 - regex: 'Darwin/18\.0\.0'
1595 version: '12.0'
1596 - regex: 'Darwin/17\.7\.0'
1597 version: '11.4.1'
1598 - regex: 'Darwin/17\.6\.0'
1599 version: '11.4'
1600 - regex: 'Darwin/17\.5\.0'
1601 version: '11.3'
1602 - regex: 'Darwin/17\.4\.0'
1603 version: '11.2.6'
1604 - regex: 'Darwin/17\.3\.0'
1605 version: '11.2'
1606 - regex: 'CFNetwork/889'
1607 version: '11.1'
1608 - regex: 'CFNetwork/887'
1609 version: '11.0'
1610 - regex: 'CFNetwork/811'
1611 version: '10.3'
1612 - regex: 'CFNetwork/808\.3'
1613 version: '10.3'
1614 - regex: 'CFNetwork/808\.2'
1615 version: '10.2'
1616 - regex: 'CFNetwork/808\.1'
1617 version: '10.1'
1618 - regex: 'CFNetwork/808\.0'
1619 version: '10.0'
1620 - regex: 'CFNetwork/808'
1621 version: '10'
1622 - regex: 'CFNetwork/758\.5\.3'
1623 version: '9.3.5'
1624 - regex: 'CFNetwork/758\.4\.3'
1625 version: '9.3.2'
1626 - regex: 'CFNetwork/758\.3\.15'
1627 version: '9.3'
1628 - regex: 'CFNetwork/758\.2\.[78]'
1629 version: '9.2'
1630 - regex: 'CFNetwork/758\.1\.6'
1631 version: '9.1'
1632 - regex: 'CFNetwork/758\.0\.2'
1633 version: '9.0'
1634 - regex: 'CFNetwork/711\.5\.6'
1635 version: '8.4.1'
1636 - regex: 'CFNetwork/711\.4\.6'
1637 version: '8.4'
1638 - regex: 'CFNetwork/711\.3\.18'
1639 version: '8.3'
1640 - regex: 'CFNetwork/711\.2\.23'
1641 version: '8.2'
1642 - regex: 'CFNetwork/711\.1\.1[26]'
1643 version: '8.1'
1644 - regex: 'CFNetwork/711\.0\.6'
1645 version: '8.0'
1646 - regex: 'CFNetwork/672\.1'
1647 version: '7.1'
1648 - regex: 'CFNetwork/672\.0'
1649 version: '7.0'
1650 - regex: 'CFNetwork/609\.1'
1651 version: '6.1'
1652 - regex: 'CFNetwork/60[29]'
1653 version: '6.0'
1654 - regex: 'CFNetwork/548\.1'
1655 version: '5.1'
1656 - regex: 'CFNetwork/548\.0'
1657 version: '5.0'
1658 - regex: 'CFNetwork/485\.13'
1659 version: '4.3'
1660 - regex: 'CFNetwork/485\.12'
1661 version: '4.2'
1662 - regex: 'CFNetwork/485\.10'
1663 version: '4.1'
1664 - regex: 'CFNetwork/485\.2'
1665 version: '4.0'
1666 - regex: 'CFNetwork/467\.12'
1667 version: '3.2'
1668 - regex: 'CFNetwork/459'
1669 version: '3.1'
1670
1671 - regex: '(?:iPhone|iPod_touch)/(\d+[.\d]*)(?: hw)?/'
1672 name: 'iOS'
1673 version: '$1'
1674
1675 - regex: 'iOS(\d+\.\d+\.\d+)'
1676 name: 'iOS'
1677 version: '$1'
1678
1679 - regex: 'iOS(\d+)\.(\d+)0'
1680 name: 'iOS'
1681 version: '$1.$2'
1682
1683 - regex: 'FBMD/iPhone;.*FBSV/ ?(\d+[.\d]+);'
1684 name: 'iOS'
1685 version: '$1'
1686
1687 - regex: '(?:FBIOS|Messenger(?:Lite)?ForiOS).*FBSV/ ?(\d+[.\d]*);'
1688 name: 'iOS'
1689 version: '$1'
1690
1691 - regex: 'iPhone OS,([\d.]+).+(?:iPhone|iPod)'
1692 name: 'iOS'
1693 version: '$1'
1694
1695 - regex: 'iPad.+; (\d+[.\d]+);'
1696 name: 'iOS'
1697 version: '$1'
1698
1699 - regex: 'iPhone.+; Version (\d+[.\d]+)'
1700 name: 'iOS'
1701 version: '$1'
1702
1703 - regex: 'OS=iOS;OSVer=(\d+[.\d]+);'
1704 name: 'iOS'
1705 version: '$1'
1706
1707 - regex: 'os=Apple-iOS.+osversion=(\d+[.\d]+)/'
1708 name: 'iOS'
1709 version: '$1'
1710
1711 - regex: '(?:Apple-)?(?<!like )(?:iPhone|iPad|iPod)(?:.*Mac OS X.*Version/(\d+\.\d+)|; Opera)?'
1712 name: 'iOS'
1713 version: '$1'
1714
1715 - regex: 'dv\(iPh.+ov\((\d+(?:[_.]\d+)*)\);'
1716 name: 'iOS'
1717 version: '$1'
1718
1719 - regex: '(?:Podcasts/(?:[\d.]+)|Instacast(?:HD)?/(?:\d\.[\d\.abc]+)|Pocket Casts, iOS|\(iOS\)|iOS; Opera|Overcast|Castro|Podcat|iCatcher|RSSRadio/|MobileSafari/|WhatsApp/.*i$)(?!.*x86_64)'
1720 name: 'iOS'
1721 version: ''
1722
1723 - regex: 'iTunes-(AppleTV|iPod|iPad|iPhone)/(?:[\d.]+)'
1724 name: 'iOS'
1725 version: ''
1726
1727 - regex: 'iOS[ /]Version ([\d.]+)'
1728 name: 'iOS'
1729 version: '$1'
1730
1731 - regex: 'Sonos/.+\(ICRU_'
1732 name: 'iOS'
1733 version: ''
1734
1735 - regex: 'CaptiveNetworkSupport|AirPlay|.*[ \.\-/]iOS(?!@)'
1736 name: 'iOS'
1737 version: ''
1738
1739 ##########
1740 # Mac
1741 ##########
1742 - regex: '(?:macOS(?:\(Catalyst\))?[ /,]|Mac(?:os)?-)(\d+[.\d]+)'
1743 name: 'Mac'
1744 version: '$1'
1745
1746 - regex: '(?:CFNetwork|Mana|StudioDisplay)/.+Darwin(?:/|; )(?:[\d.]+).+(?:x86_64|i386|Power%20Macintosh)|(?:x86_64-apple-)?darwin(?:[\d.]+)|C?Python.*Darwin|PowerMac|com\.apple\.Safari\.SearchHelper|^(?:com\.apple\.WebKit\.Networking|NetworkingExtension|Safari)'
1747 name: 'Mac'
1748 versions:
1749 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?25\.([0-5])\.0'
1750 version: '26.$1'
1751 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?24\.([0-6])\.0'
1752 version: '15.$1'
1753 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?23\.([0-6])\.0'
1754 version: '14.$1'
1755 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.6\.0'
1756 version: '13.5'
1757 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.5\.0'
1758 version: '13.4'
1759 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.4\.0'
1760 version: '13.3'
1761 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.3\.0'
1762 version: '13.2'
1763 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.2\.0'
1764 version: '13.1'
1765 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.1\.0'
1766 version: '13.0.1'
1767 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.0\.0'
1768 version: '13.0'
1769 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.6\.0'
1770 version: '12.5'
1771 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.5\.0'
1772 version: '12.4'
1773 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.4\.0'
1774 version: '12.3'
1775 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.3\.0'
1776 version: '12.2'
1777 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.2\.0'
1778 version: '12.1'
1779 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.1\.0'
1780 version: '12.0.1'
1781 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.0\.0'
1782 version: '12.0'
1783 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.6\.0'
1784 version: '11.5'
1785 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.5\.0'
1786 version: '11.4'
1787 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.4\.0'
1788 version: '11.3'
1789 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.3\.0'
1790 version: '11.2'
1791 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.2\.0.*'
1792 version: '11.1'
1793 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.[01]\.0'
1794 version: '11.0'
1795 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19\.([2-6])\.0'
1796 version: '10.15.$1'
1797 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19\.0\.0'
1798 version: '10.15'
1799 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18\.7\.0'
1800 version: '10.14'
1801 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18\.6\.0'
1802 version: '10.14.5'
1803 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18\.5\.0'
1804 version: '10.14.4'
1805 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18\.2\.0'
1806 version: '10.14.1'
1807 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18\.0\.0'
1808 version: '10.14'
1809 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.7\.0'
1810 version: '10.13.6'
1811 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.6\.0'
1812 version: '10.13.5'
1813 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.5\.0'
1814 version: '10.13.4'
1815 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.4\.0'
1816 version: '10.13.3'
1817 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.3\.0'
1818 version: '10.13.2'
1819 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.2\.0'
1820 version: '10.13.1'
1821 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.0\.0'
1822 version: '10.13'
1823 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.7\.0'
1824 version: '10.12.6'
1825 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.6\.0'
1826 version: '10.12.5'
1827 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.5\.0'
1828 version: '10.12.4'
1829 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.4\.0'
1830 version: '10.12.3'
1831 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.3\.0'
1832 version: '10.12.2'
1833 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.2\.0'
1834 version: '10.12.2'
1835 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.1\.0'
1836 version: '10.12.1'
1837 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.0\.0'
1838 version: '10.12'
1839 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?15\.([2-6])\.0'
1840 version: '10.11.$1'
1841 - regex: 'CFNetwork/760'
1842 version: '10.11'
1843 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14\.([3-5])\.0'
1844 version: '10.10.$1'
1845 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14\.1\.0'
1846 version: '10.10.2'
1847 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14\.0\.0'
1848 version: '10.10'
1849 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13\.4\.0'
1850 version: '10.9.5'
1851 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13\.3\.0'
1852 version: '10.9.4'
1853 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13\.2\.0'
1854 version: '10.9.3'
1855 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13\.1\.0'
1856 version: '10.9.2'
1857 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13\.0\.0'
1858 version: '10.9.0'
1859 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.6\.0'
1860 version: '10.8.5'
1861 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.5\.0'
1862 version: '10.8.5'
1863 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.4\.0'
1864 version: '10.8.4'
1865 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.3\.0'
1866 version: '10.8.3'
1867 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.2\.0'
1868 version: '10.8.2'
1869 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.1\.0'
1870 version: '10.8.1'
1871 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.5\.0'
1872 version: '10.7.5'
1873 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.4\.2'
1874 version: '10.7.5'
1875 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.4\.0'
1876 version: '10.7.4'
1877 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.3\.0'
1878 version: '10.7.3'
1879 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.2\.0'
1880 version: '10.7.2'
1881 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.1\.0'
1882 version: '10.7.1'
1883 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?10\.8\.0'
1884 version: '10.6.8'
1885 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?10\.7\.[34]'
1886 version: '10.6.7'
1887 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?10\.3\.0'
1888 version: '10.6.3'
1889 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?10\.0\.0'
1890 version: '10.6'
1891 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?9\.8\.0'
1892 version: '10.5.8'
1893 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?9\.7\.1'
1894 version: '10.5.7'
1895 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?9\.6\.2'
1896 version: '10.5.6'
1897 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?9\.5\.[05]'
1898 version: '10.5.5'
1899
1900 - regex: 'Macintosh;Mac OS X \((\d+[.\d]+)\);'
1901 name: 'Mac'
1902 version: '$1'
1903
1904 - regex: 'Mac[ +]OS[ +]?X(?:[ /,](?:Version )?(\d+(?:[_.]\d+)+))?'
1905 name: 'Mac'
1906 version: '$1'
1907
1908 - regex: 'Mac (?:OS/)?(\d+(?:[_.]\d+)+)'
1909 name: 'Mac'
1910 version: '$1'
1911
1912 - regex: 'Macintosh; OS X (\d+[.\d]+)'
1913 name: 'Mac'
1914 version: '$1'
1915
1916 - regex: 'OSX/(\d+[.\d]+)'
1917 name: 'Mac'
1918 version: '$1'
1919
1920 - regex: 'Darwin|Macintosh|Mac[ _]PowerPC|PPC|iMac|MacBook|.*macOS|AppleExchangeWebServices|com\.apple\.trustd|Sonos/.+\(MDCR_|WhatsApp/.*N$|nook browser'
1921 name: 'Mac'
1922 version: ''
1923
1924 ##########
1925 # Fuchsia
1926 ##########
1927 - regex: 'Fuchsia'
1928 name: 'Fuchsia'
1929 version: ''
1930
1931 ##########
1932 # BlackBerry
1933 ##########
1934 - regex: '(?:BB10;.+Version|Black[Bb]erry[0-9a-z]+|Black[Bb]erry.+Version)/(\d+[.\d]+)'
1935 name: 'BlackBerry OS'
1936 version: '$1'
1937
1938 - regex: 'RIM Tablet OS (\d+[.\d]+)'
1939 name: 'BlackBerry Tablet OS'
1940 version: '$1'
1941
1942 - regex: 'RIM Tablet OS|QNX|Play[Bb]ook'
1943 name: 'BlackBerry Tablet OS'
1944 version: ''
1945
1946 - regex: 'BlackBerry'
1947 name: 'BlackBerry OS'
1948 version: ''
1949
1950 - regex: 'bPod'
1951 name: 'BlackBerry OS'
1952 version: ''
1953
1954 ##########
1955 # BeOS
1956 ##########
1957 - regex: 'BeOS[ +]?(\d[.\d]*)?'
1958 name: 'BeOS'
1959 version: '$1'
1960
1961 ##########
1962 # Symbian
1963 ##########
1964 - regex: 'Symbian/3.+NokiaBrowser/7\.3'
1965 name: 'Symbian^3'
1966 version: 'Anna'
1967
1968 - regex: 'Symbian/3.+NokiaBrowser/7\.4'
1969 name: 'Symbian^3'
1970 version: 'Belle'
1971
1972 - regex: 'Symbian/3'
1973 name: 'Symbian^3'
1974 version: ''
1975
1976 - regex: '(?:Series ?60|SymbOS|S60)(?:[ /]?(\d+[.\d]+|IAWPSCOPED\V\d+))?'
1977 name: 'Symbian OS Series 60'
1978 version: '$1'
1979
1980 - regex: 'Series40'
1981 name: 'Symbian OS Series 40'
1982 version: ''
1983
1984 - regex: 'SymbianOS/(\d+[.\d]+)'
1985 name: 'Symbian OS'
1986 version: '$1'
1987
1988 - regex: 'MeeGo|WeTab'
1989 name: 'MeeGo'
1990 version: ''
1991
1992 - regex: 'Symbian(?: OS)?|SymbOS'
1993 name: 'Symbian OS'
1994 version: ''
1995
1996 - regex: 'Nokia'
1997 name: 'Symbian'
1998 version: ''
1999
2000 ##########
2001 # Firefox OS
2002 ##########
2003 - regex: '(?:Mobile|Tablet);.+Firefox/\d+\.\d+'
2004 name: 'Firefox OS'
2005 version: ''
2006
2007 ##########
2008 # RISC OS
2009 ##########
2010 - regex: 'RISC OS(?:-NC)?(?:[ /](\d+[.\d]+))?'
2011 name: 'RISC OS'
2012 version: '$1'
2013
2014 ##########
2015 # Inferno
2016 ##########
2017 - regex: 'Inferno(?:[ /](\d+[.\d]+))?'
2018 name: 'Inferno'
2019 version: '$1'
2020
2021 ##########
2022 # Bada
2023 ##########
2024 - regex: 'bada(?:[ /](\d+[.\d]+))?'
2025 name: 'Bada'
2026 version: '$1'
2027
2028 ##########
2029 # REX
2030 ##########
2031 - regex: 'REX; U;'
2032 name: 'REX'
2033 version: ''
2034
2035 ##########
2036 # Brew
2037 ##########
2038 - regex: '(?:Brew(?!-Applet)(?: MP)?|BMP)(?:[ /](\d+[.\d]+))?'
2039 name: 'Brew'
2040 version: '$1'
2041
2042 ##########
2043 # Web TV
2044 ##########
2045 - regex: 'GoogleTV(?:[ /](\d+[.\d]+))?'
2046 name: 'Google TV'
2047 version: '$1'
2048
2049 - regex: 'WebTV/(\d+[.\d]+)'
2050 name: 'WebTV'
2051 version: '$1'
2052
2053 ##########
2054 # Unix
2055 ##########
2056 - regex: '(?:SunOS|Solaris)(?:[/ ](\d+[.\d]+))?'
2057 name: 'Solaris'
2058 version: '$1'
2059
2060 - regex: 'AIX(?:[/ ]?(\d+[.\d]+))?'
2061 name: 'AIX'
2062 version: '$1'
2063
2064 - regex: 'HP-UX(?:[/ ]?(\d+[.\d]+))?'
2065 name: 'HP-UX'
2066 version: '$1'
2067
2068 - regex: 'BSD Four'
2069 name: 'BSD'
2070 version: '4'
2071
2072 # ElectroBSD (https://www.fabiankeil.de/gehacktes/electrobsd/)
2073 - regex: 'ElectroBSD(?:[/ ]?(\d+[.\d]+))?'
2074 name: 'ElectroBSD'
2075 version: '$1'
2076
2077 - regex: 'FreeBSD(?:[/ ]?(\d+[.\d]+))?'
2078 name: 'FreeBSD'
2079 version: '$1'
2080
2081 - regex: 'NetBSD(?:[/ ]?(\d+[.\d]+))?'
2082 name: 'NetBSD'
2083 version: '$1'
2084
2085 - regex: 'OpenBSD(?:[/ ]?(\d+[.\d]+))?'
2086 name: 'OpenBSD'
2087 version: '$1'
2088
2089 - regex: 'DragonFly(?:[/ ]?(\d+[.\d]+))?'
2090 name: 'DragonFly'
2091 version: '$1'
2092
2093 - regex: 'Syllable(?:[/ ]?(\d+[.\d]+))?'
2094 name: 'Syllable'
2095 version: '$1'
2096
2097 - regex: 'IRIX(?:;?64)?(?:[/ ]?(\d+[.\d]+))?'
2098 name: 'IRIX'
2099 version: '$1'
2100
2101 - regex: 'OSF1(?:[/ ]?v?(\d+[.\d]+))?'
2102 name: 'OSF1'
2103 version: '$1'
2104
2105 ##########
2106 # Gaming Console
2107 ##########
2108 - regex: 'Nintendo (Wii|Switch)'
2109 name: 'Nintendo'
2110 version: '$1'
2111
2112 - regex: 'PlayStation.+; Linux (\d+[.\d]+)'
2113 name: 'PlayStation'
2114 version: '$1'
2115
2116 - regex: 'PlayStation ?(\d)(?:[/ ](?:Pro )?(\d+[.\d]+))?'
2117 name: 'PlayStation'
2118 version: '$1.$2'
2119
2120 - regex: 'Xbox|KIN\.(?:One|Two)'
2121 name: 'Xbox'
2122 version: '360'
2123
2124 ##########
2125 # Mobile Gaming Console
2126 ##########
2127 - regex: 'Nitro|Nintendo ([3]?DS[i]?)'
2128 name: 'Nintendo Mobile'
2129 version: '$1'
2130
2131 - regex: 'PlayStation ((?:Portable|Vita))'
2132 name: 'PlayStation Portable'
2133 version: '$1'
2134
2135 ##########
2136 # IBM
2137 ##########
2138 - regex: 'OS/2; Warp (\d+[.\d]+)'
2139 name: 'OS/2'
2140 version: '$1'
2141
2142 - regex: 'OS/2'
2143 name: 'OS/2'
2144 version: ''
2145
2146 ###########
2147 # Linux (Generic)
2148 ###########
2149 - regex: 'Linux/(\d+[.\d]+)'
2150 name: 'GNU/Linux'
2151 version: '$1'
2152
2153 - regex: 'Linux[^a-z]|Cinnamon/(?:\d+[.\d]+)|.+(?:pc|unknown)-linux-gnu|X11'
2154 name: 'GNU/Linux'
2155 version: ''
2156
2157 ##########
2158 # Java ME (Java Platform, Micro Edition)
2159 ##########
2160 - regex: 'Java ME|J2ME|Profile/MIDP|CLDC|Java; U; MIDP|MMP/\d\.\d'
2161 name: 'Java ME'
2162 version: ''
2163