diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
index 8aa7c1f99..a6e4bddb6 100644
--- a/lib/bb/data_smart.py
+++ b/lib/bb/data_smart.py
@@ -31,7 +31,7 @@ from bb.COW  import COWDictBase
 logger = logging.getLogger("BitBake.Data")
 
 __setvar_keyword__ = [":append", ":prepend", ":remove"]
-__setvar_regexp__ = re.compile(r'(?P<base>.*?)(?P<keyword>:append|:prepend|:remove)(:(?P<add>[^A-Z]*))?$')
+__setvar_regexp__ = re.compile(r'(?P<base>.*?)(?P<keyword>:append|:prepend|:remove)(:(?P<add>[^A-Z$]*))?$')
 __expand_var_regexp__ = re.compile(r"\${[a-zA-Z0-9\-_+./~:]+}")
 __expand_python_regexp__ = re.compile(r"\${@(?:{.*?}|.)+?}")
 __whitespace_split__ = re.compile(r'(\s)')
diff --git a/lib/bb/tests/data.py b/lib/bb/tests/data.py
index 31a1ec323..fb455be98 100644
--- a/lib/bb/tests/data.py
+++ b/lib/bb/tests/data.py
@@ -417,7 +417,6 @@ class TestOverrides(unittest.TestCase):
         self.assertEqual(self.d.getVar("TEST"), "base appended")
 
     # Test an :append whose override name is lowercase
-    @unittest.expectedFailure
     def test_append_in_expanded_lowercase_override(self):
         self.d.setVar("machine", "qemux86")
         self.d.setVar("PN", "gizmo")
