diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py
index 83d92bd5020d76244f50d4ee5e8f589bade5cb91..cbcb2199f64125dc14e7a56a67587e04561d56c7 100644
--- a/lib/spack/spack/spec.py
+++ b/lib/spack/spack/spec.py
@@ -2209,6 +2209,9 @@ def format(self, format_string='$_$@$%@+$+$=', **kwargs):
                              ${SPACK_PREFIX}/opt
             ${PREFIX}        The package prefix
 
+        Note these are case-insensitive: for example you can specify either
+        ``${PACKAGE}`` or ``${package}``.
+
         Optionally you can provide a width, e.g. ``$20_`` for a 20-wide name.
         Like printf, you can provide '-' for left justification, e.g.
         ``$-20_`` for a left-justified name.
@@ -2299,6 +2302,7 @@ def write(s, c):
                                          "'%s'" % format_string)
                     named_str += c
                     continue
+                named_str = named_str.upper()
                 if named_str == 'PACKAGE':
                     name = self.name if self.name else ''
                     write(fmt % self.name, '@')