Index: pagegenerators.py
===================================================================
--- pagegenerators.py	(Revision 8620)
+++ pagegenerators.py	(Arbeitskopie)
@@ -1160,25 +1160,36 @@
             seenPages[_page] = True
             yield page
 
-def RegexFilterPageGenerator(generator, regex, inverse=False):
+def RegexFilterPageGenerator(generator, regex, inverse=False, ignore_namespace=True):
     """
     Wraps around another generator. Yields only those pages, the titles of
     which are positively matched to any regex in list. If invert is False,
     yields all pages matched by any regex, if True, yields all pages matched
-    none of the regex.
+    none of the regex. If ignore_namespace is False, the whole page title
+    is compared.
 
     """
     # test for backwards compatibility
     if isinstance(regex, basestring):
         regex = [regex]
-    reg = [ re.compile(r, re.I) for r in regex ]
+    # test if regex is already compiled
+    if isinstance(regex[0], basestring):
+        reg = [ re.compile(r, re.I) for r in regex ]
+    else:
+        reg = regex
 
     for page in generator:
+        # get the page title
+        if ignore_namespace:
+            title = page.titleWithoutNamespace()
+        else:
+            title = page.title()
+
         if inverse:
             # yield page if NOT matched by all regex
             skip = False
             for r in reg:
-                if r.match(page.titleWithoutNamespace()):
+                if r.match(title):
                     skip = True
                     break
             if not skip:
@@ -1186,7 +1197,7 @@
         else:
             # yield page if matched by any regex
             for r in reg:
-                if r.match(page.titleWithoutNamespace()):
+                if r.match(title):
                     yield page
                     break
 
