Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp	(revision 26400)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp	(revision 26401)
@@ -42,5 +42,4 @@
 {
     { QRegExp("DOS", Qt::CaseInsensitive), "DOS" },
-    { QRegExp("L4", Qt::CaseInsensitive), "L4" },
 
     /* Windows */
@@ -49,17 +48,25 @@
     { QRegExp("Wi.*95", Qt::CaseInsensitive), "Windows95" },
     { QRegExp("Wi.*Me", Qt::CaseInsensitive), "WindowsMe" },
-    { QRegExp("Wi.*NT", Qt::CaseInsensitive), "WindowsNT4" },
-    { QRegExp("Wi.*X.*64", Qt::CaseInsensitive), "WindowsXP_64" },
-    { QRegExp("Wi.*X", Qt::CaseInsensitive), "WindowsXP" },
-    { QRegExp("Wi.*2003.*64", Qt::CaseInsensitive), "Windows2003_64" },
-    { QRegExp("Wi.*2003", Qt::CaseInsensitive), "Windows2003" },
-    { QRegExp("Wi.*V.*64", Qt::CaseInsensitive), "WindowsVista_64" },
-    { QRegExp("Wi.*V", Qt::CaseInsensitive), "WindowsVista" },
-    { QRegExp("Wi.*2008.*64", Qt::CaseInsensitive), "Windows2008_64" },
-    { QRegExp("Wi.*2008", Qt::CaseInsensitive), "Windows2008" },
-    { QRegExp("Wi.*2", Qt::CaseInsensitive), "Windows2000" },
+    { QRegExp("(Wi.*NT)|(NT)", Qt::CaseInsensitive), "WindowsNT4" },
+    { QRegExp("((Wi.*X)|(XP)).*64", Qt::CaseInsensitive), "WindowsXP_64" },
+    { QRegExp("(Wi.*X)|(XP)", Qt::CaseInsensitive), "WindowsXP" },
+    { QRegExp("((Wi.*2003)|(W2K3).*64", Qt::CaseInsensitive), "Windows2003_64" },
+    { QRegExp("(Wi.*2003)|(W2K3)", Qt::CaseInsensitive), "Windows2003" },
+    { QRegExp("((Wi.*V)|(Vista)).*64", Qt::CaseInsensitive), "WindowsVista_64" },
+    { QRegExp("(Wi.*V)|(Vista)", Qt::CaseInsensitive), "WindowsVista" },
+    { QRegExp("((Wi.*2008)|(W2K8)).*64", Qt::CaseInsensitive), "Windows2008_64" },
+    { QRegExp("(Wi.*2008)|(W2K8)", Qt::CaseInsensitive), "Windows2008" },
+    { QRegExp("(Wi.*2)|(W2K)", Qt::CaseInsensitive), "Windows2000" },
     { QRegExp("Wi.*7.*64", Qt::CaseInsensitive), "Windows7_64" },
     { QRegExp("Wi.*7", Qt::CaseInsensitive), "Windows7" },
-    { QRegExp("(Wi)|(XP)", Qt::CaseInsensitive), "WindowsXP" },
+    { QRegExp("Wi", Qt::CaseInsensitive), "WindowsXP" },
+
+    /* Solaris */
+    { QRegExp("((Op.*So)|(os20[01][0-9])).*64", Qt::CaseInsensitive), "OpenSolaris_64" },
+    { QRegExp("(Op.*So)|(os20[01][0-9])", Qt::CaseInsensitive), "OpenSolaris" },
+    { QRegExp("So.*64", Qt::CaseInsensitive), "Solaris_64" },
+    { QRegExp("So", Qt::CaseInsensitive), "Solaris" },
+
+    /* OS/2 */
     { QRegExp("OS[/|!-]{,1}2.*W.*4.?5", Qt::CaseInsensitive), "OS2Warp45" },
     { QRegExp("OS[/|!-]{,1}2.*W.*4", Qt::CaseInsensitive), "OS2Warp4" },
@@ -89,6 +96,6 @@
     { QRegExp("Man.*64", Qt::CaseInsensitive), "Mandriva_64" },
     { QRegExp("Man", Qt::CaseInsensitive), "Mandriva" },
-    { QRegExp("Red.*64", Qt::CaseInsensitive), "RedHat_64" },
-    { QRegExp("Red", Qt::CaseInsensitive), "RedHat" },
+    { QRegExp("((Red)|(rhel)).*64", Qt::CaseInsensitive), "RedHat_64" },
+    { QRegExp("(Red)|(rhel)", Qt::CaseInsensitive), "RedHat" },
     { QRegExp("Tur", Qt::CaseInsensitive), "Turbolinux" },
     { QRegExp("Ub.*64", Qt::CaseInsensitive), "Ubuntu_64" },
@@ -98,22 +105,20 @@
     { QRegExp("Or.*64", Qt::CaseInsensitive), "Oracle_64" },
     { QRegExp("Or", Qt::CaseInsensitive), "Oracle" },
-    { QRegExp("Li.*2.?2", Qt::CaseInsensitive), "Linux22" },
-    { QRegExp("Li.*2.?4.*64", Qt::CaseInsensitive), "Linux24_64" },
-    { QRegExp("Li.*2.?4", Qt::CaseInsensitive), "Linux24" },
-    { QRegExp("((Li.*2.?6)|(LFS)).*64", Qt::CaseInsensitive), "Linux26_64" },
-    { QRegExp("(Li.*2.?6)|(LFS)", Qt::CaseInsensitive), "Linux26" },
-    { QRegExp("Li", Qt::CaseInsensitive), "Linux26" },
+    { QRegExp("((Li)|(lnx)).*2.?2", Qt::CaseInsensitive), "Linux22" },
+    { QRegExp("((Li)|(lnx)).*2.?4.*64", Qt::CaseInsensitive), "Linux24_64" },
+    { QRegExp("((Li)|(lnx)).*2.?4", Qt::CaseInsensitive), "Linux24" },
+    { QRegExp("((((Li)|(lnx)).*2.?6)|(LFS)).*64", Qt::CaseInsensitive), "Linux26_64" },
+    { QRegExp("(((Li)|(lnx)).*2.?6)|(LFS)", Qt::CaseInsensitive), "Linux26" },
+    { QRegExp("((Li)|(lnx)).*64", Qt::CaseInsensitive), "Linux26_64" },
+    { QRegExp("(Li)|(lnx)", Qt::CaseInsensitive), "Linux26" },
 
     /* Other */
-    { QRegExp("Fr.*B.*64", Qt::CaseInsensitive), "FreeBSD_64" },
-    { QRegExp("Fr.*B", Qt::CaseInsensitive), "FreeBSD" },
+    { QRegExp("L4", Qt::CaseInsensitive), "L4" },
+    { QRegExp("((Fr.*B)|(fbsd)).*64", Qt::CaseInsensitive), "FreeBSD_64" },
+    { QRegExp("(Fr.*B)|(fbsd)", Qt::CaseInsensitive), "FreeBSD" },
     { QRegExp("Op.*B.*64", Qt::CaseInsensitive), "OpenBSD_64" },
     { QRegExp("Op.*B", Qt::CaseInsensitive), "OpenBSD" },
     { QRegExp("Ne.*B.*64", Qt::CaseInsensitive), "NetBSD_64" },
     { QRegExp("Ne.*B", Qt::CaseInsensitive), "NetBSD" },
-    { QRegExp("Op.*So.*64", Qt::CaseInsensitive), "OpenSolaris_64" },
-    { QRegExp("Op.*So", Qt::CaseInsensitive), "OpenSolaris" },
-    { QRegExp("So.*64", Qt::CaseInsensitive), "Solaris_64" },
-    { QRegExp("So", Qt::CaseInsensitive), "Solaris" },
     { QRegExp("QN", Qt::CaseInsensitive), "QNX" },
     { QRegExp("Mac.*64", Qt::CaseInsensitive), "MacOS_64" },
