Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java	(revision 14797)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java	(revision 14801)
@@ -316,4 +316,13 @@
         }
 
+        /**
+         * Determines if this condition requires an exact key match.
+         * @return {@code true} if this condition requires an exact key match.
+         * @since 14801
+         */
+        public boolean requiresExactKeyMatch() {
+            return !Op.NEGATED_OPS.contains(op);
+        }
+
         @Override
         public boolean applies(Environment env) {
@@ -388,4 +397,9 @@
             super(k, v, op, false);
             this.keyPattern = Pattern.compile(k);
+        }
+
+        @Override
+        public boolean requiresExactKeyMatch() {
+            return false;
         }
 
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java	(revision 14797)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java	(revision 14801)
@@ -53,5 +53,4 @@
 import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.KeyMatchType;
 import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.KeyValueCondition;
-import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.Op;
 import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.PseudoClassCondition;
 import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.SimpleKeyValueCondition;
@@ -333,5 +332,5 @@
                 } else if (c instanceof KeyValueCondition) {
                     KeyValueCondition keyValueCondition = (KeyValueCondition) c;
-                    if (!Op.NEGATED_OPS.contains(keyValueCondition.op)) {
+                    if (keyValueCondition.requiresExactKeyMatch()) {
                         key = keyValueCondition.k;
                     }
