diff --git a/core/lib/Drupal/Component/Uuid/Uuid.php b/core/lib/Drupal/Component/Uuid/Uuid.php
index d52ebeb..f9615b1 100644
--- a/core/lib/Drupal/Component/Uuid/Uuid.php
+++ b/core/lib/Drupal/Component/Uuid/Uuid.php
@@ -14,8 +14,12 @@ class Uuid {
 
   /**
    * The pattern used to validate a UUID string.
+   *
+   * As per RFC 4122, UUIDs are case-insensitive on input.
+   *
+   * @see https://www.ietf.org/rfc/rfc4122.txt
    */
-  const VALID_PATTERN = '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}';
+  const VALID_PATTERN = '[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}';
 
   /**
    * Checks that a string appears to be in the format of a UUID.
diff --git a/core/tests/Drupal/Tests/Component/Uuid/UuidTest.php b/core/tests/Drupal/Tests/Component/Uuid/UuidTest.php
index 353c352..7068d6a 100644
--- a/core/tests/Drupal/Tests/Component/Uuid/UuidTest.php
+++ b/core/tests/Drupal/Tests/Component/Uuid/UuidTest.php
@@ -93,6 +93,7 @@ public function providerTestValidation() {
       array('6ba7b810-9dad-11d1-80b4-00c04fd430c8', TRUE, 'Basic FQDN UUID did not validate'),
       array('00000000-0000-0000-0000-000000000000', TRUE, 'Minimum UUID did not validate'),
       array('ffffffff-ffff-ffff-ffff-ffffffffffff', TRUE, 'Maximum UUID did not validate'),
+      array('72F03E8C-3E06-4C07-A6D2-AE4FD728F9AF', TRUE, 'UUID with upper case characters did not validate'),
       // These are invalid UUIDs.
       array('0ab26e6b-f074-4e44-9da-601205fa0e976', FALSE, 'Invalid format was validated'),
       array('0ab26e6b-f074-4e44-9daf-1205fa0e9761f', FALSE, 'Invalid length was validated'),
