diff --git a/bin/create-json-schema.js b/bin/create-json-schema.js
index eabb8cce7ec07b279670b0f9c9bd0ad0bcddf716..4fd9ea8c81b173276f5e1fd623d9b06a6ac6f7b5 100644
--- a/bin/create-json-schema.js
+++ b/bin/create-json-schema.js
@@ -30,8 +30,11 @@ function createSingleConfig(option) {
     temp.items = {
       type: types[option.subType],
     };
+    if (option.format) {
+      temp.items.format = option.format;
+    }
   }
-  if (option.format) {
+  if (option.format && temp.type !== 'array') {
     temp.format = option.format;
   }
   if (option.description) {
diff --git a/lib/config/definitions.js b/lib/config/definitions.js
index df12ac92064860015fea6ddda18d11c0fa800edc..4f8044f475dee344808bd69536325a750a906bcc 100644
--- a/lib/config/definitions.js
+++ b/lib/config/definitions.js
@@ -508,6 +508,7 @@ const options = [
       'Package name patterns to match. Valid only within `packageRules` object.',
     type: 'list',
     subType: 'string',
+    format: 'regex',
     allowString: true,
     stage: 'package',
     parent: 'packageRules',
@@ -521,6 +522,7 @@ const options = [
       'Package name patterns to exclude. Valid only within `packageRules` object.',
     type: 'list',
     subType: 'string',
+    format: 'regex',
     allowString: true,
     stage: 'package',
     parent: 'packageRules',
diff --git a/renovate-schema.json b/renovate-schema.json
index 1fed7aac3389a78223da879f8bdaf04288fdc589..9d0323a1f488634d5919c59feb8172282efc2186 100644
--- a/renovate-schema.json
+++ b/renovate-schema.json
@@ -323,14 +323,16 @@
               "packagePatterns": {
                 "type": "array",
                 "items": {
-                  "type": "string"
+                  "type": "string",
+                  "format": "regex"
                 },
                 "description": "Package name patterns to match. Valid only within `packageRules` object."
               },
               "excludePackagePatterns": {
                 "type": "array",
                 "items": {
-                  "type": "string"
+                  "type": "string",
+                  "format": "regex"
                 },
                 "description": "Package name patterns to exclude. Valid only within `packageRules` object."
               },
@@ -692,9 +694,9 @@
     "fileMatch": {
       "type": "array",
       "items": {
-        "type": "string"
+        "type": "string",
+        "format": "regex"
       },
-      "format": "regex",
       "description": "JS RegExp pattern for matching manager files"
     },
     "js": {