Index: django/newforms/fields.py
===================================================================
--- django/newforms/fields.py	(revision 4085)
+++ django/newforms/fields.py	(working copy)
@@ -163,8 +163,9 @@
         Field.clean(self, value)
         if value in EMPTY_VALUES: value = u''
         value = smart_unicode(value)
-        if not self.regex.search(value):
-            raise ValidationError(self.error_message)
+        if self.required or value:
+            if not self.regex.search(value):
+                raise ValidationError(self.error_message)
         return value
 
 email_re = re.compile(
