Handle regexs that are applied to repeating parameters. Reviewed in http://codereview.appspot.com/5413050/
diff --git a/apiclient/discovery.py b/apiclient/discovery.py
index 7cb4852..bcfdd69 100644
--- a/apiclient/discovery.py
+++ b/apiclient/discovery.py
@@ -393,10 +393,15 @@
 
       for name, regex in pattern_params.iteritems():
         if name in kwargs:
-          if re.match(regex, kwargs[name]) is None:
-            raise TypeError(
-                'Parameter "%s" value "%s" does not match the pattern "%s"' %
-                (name, kwargs[name], regex))
+          if isinstance(kwargs[name], basestring):
+            pvalues = [kwargs[name]]
+          else:
+            pvalues = kwargs[name]
+          for pvalue in pvalues:
+            if re.match(regex, pvalue) is None:
+              raise TypeError(
+                  'Parameter "%s" value "%s" does not match the pattern "%s"' %
+                  (name, pvalue, regex))
 
       for name, enums in enum_params.iteritems():
         if name in kwargs:
diff --git a/tests/data/zoo.json b/tests/data/zoo.json
index d4ae969..6e42da2 100644
--- a/tests/data/zoo.json
+++ b/tests/data/zoo.json
@@ -166,6 +166,13 @@
        "foo",
        "bar"
      ]
+    },
+    "rr": {
+     "type": "string",
+     "location": "query",
+     "required": false,
+     "repeated": true,
+     "pattern": "[a-z]+"
     }
    }
   }
diff --git a/tests/test_discovery.py b/tests/test_discovery.py
index 3b544b0..606796e 100644
--- a/tests/test_discovery.py
+++ b/tests/test_discovery.py
@@ -168,6 +168,10 @@
 
     request = zoo.query(
         q="foo", i="1", n="1", b="", a=[1,2,3], o={'a':1}, e='bar')
+
+    request = zoo.query(
+        q="foo", i="1", n="1", b="", a=[1,2,3], o={'a':1}, e='bar', rr=['foo',
+                                                                        'bar'])
     self._check_query_types(request)
 
   def test_optional_stack_query_parameters(self):