diff --git a/webform_validation.validators.inc b/webform_validation.validators.inc
index c0dacb1..a904a0e 100644
--- a/webform_validation.validators.inc
+++ b/webform_validation.validators.inc
@@ -887,7 +887,10 @@ function webform_validation_webform_validation_validate($validator_name, $items,
     case 'pattern':
       $pattern = preg_quote($rule['data'], '/');
       $pattern = str_replace('@', '[a-zA-Z]', $pattern);
-      $pattern = str_replace('#', '[0-9]', $pattern);
+      // PHP 7.3 started quoting the "#" character in preg_quote(), above.
+      $pattern = version_compare(PHP_VERSION, '7.3.0', '>=') ?
+        str_replace('\#', '[0-9]', $pattern) :
+        str_replace('#', '[0-9]', $pattern);
       $pattern = '(' . $pattern . ')';
       // Un-escape "|" operator.
       $pattern = preg_replace('/(\\s*)(\\\\)(\\|)(\\s*)/', ')|(', $pattern);
