- last patch broke parse_template; fixed by changing some
  tests in sre_patch back to previous version

- fixed return value from findall

- renamed a bunch of functions inside _sre (way too
  many leading underscores...)

</F>
diff --git a/Lib/sre_parse.py b/Lib/sre_parse.py
index dfe7c31..9f5386e 100644
--- a/Lib/sre_parse.py
+++ b/Lib/sre_parse.py
@@ -23,10 +23,10 @@
 SPECIAL_CHARS = ".\\[{()*+?^$|"
 REPEAT_CHARS  = "*+?{"
 
-DIGITS = string.digits
+DIGITS = tuple(string.digits)
 
-OCTDIGITS = "01234567"
-HEXDIGITS = "0123456789abcdefABCDEF"
+OCTDIGITS = tuple("01234567")
+HEXDIGITS = tuple("0123456789abcdefABCDEF")
 
 WHITESPACE = string.whitespace
 
@@ -188,13 +188,13 @@
 	return code
     try:
 	if escape[1:2] == "x":
-	    while source.next and source.next in HEXDIGITS:
+	    while source.next in HEXDIGITS:
 		escape = escape + source.get()
 	    escape = escape[2:]
 	    # FIXME: support unicode characters!
 	    return LITERAL, chr(int(escape[-4:], 16) & 0xff)
 	elif str(escape[1:2]) in OCTDIGITS:
-	    while source.next and source.next in OCTDIGITS:
+	    while source.next in OCTDIGITS:
 		escape = escape + source.get()
 	    escape = escape[1:]
 	    # FIXME: support unicode characters!
@@ -215,12 +215,12 @@
 	return code
     try:
 	if escape[1:2] == "x":
-	    while source.next and source.next in HEXDIGITS:
+	    while source.next in HEXDIGITS:
 		escape = escape + source.get()
 	    escape = escape[2:]
 	    # FIXME: support unicode characters!
 	    return LITERAL, chr(int(escape[-4:], 16) & 0xff)
-	elif str(escape[1:2]) in DIGITS:
+	elif escape[1:2] in DIGITS:
 	    while 1:
 		group = _group(escape, state)
 		if group:
@@ -228,7 +228,7 @@
 			not _group(escape + source.next, state)):
 		        return GROUP, group
 		    escape = escape + source.get()
-		elif source.next and source.next in OCTDIGITS:
+		elif source.next in OCTDIGITS:
 		    escape = escape + source.get()
 		else:
 		    break
@@ -372,10 +372,10 @@
 	    elif this == "{":
 		min, max = 0, MAXREPEAT
 		lo = hi = ""
-		while source.next and source.next in DIGITS:
+		while source.next in DIGITS:
 		    lo = lo + source.get()
 		if source.match(","):
-		    while source.next and source.next in DIGITS:
+		    while source.next in DIGITS:
 			hi = hi + source.get()
 		else:
 		    hi = lo