Only recognize the expected output as an exception if it *starts* with
a traceback message.  I.e., examples that raise exceptions may no
longer generate pre-exception output.  This restores the behavior of
doctest in python 2.3.  The ability to check pre-exception output is
being removed because it makes the documentation simpler; and because
there are very few use cases for it.
diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py
index d5e9ef5..5d0cf90 100644
--- a/Lib/test/test_doctest.py
+++ b/Lib/test/test_doctest.py
@@ -623,8 +623,10 @@
     >>> doctest.DocTestRunner(verbose=False).run(test)
     (0, 2)
 
-An example may generate output before it raises an exception; if it
-does, then the output must match the expected output:
+An example may not generate output before it raises an exception; if
+it does, then the traceback message will not be recognized as
+signaling an expected exception, so the example will be reported as an
+unexpected exception:
 
     >>> def f(x):
     ...     '''
@@ -636,7 +638,15 @@
     ...     '''
     >>> test = doctest.DocTestFinder().find(f)[0]
     >>> doctest.DocTestRunner(verbose=False).run(test)
-    (0, 2)
+    ... # doctest: +ELLIPSIS
+    **********************************************************************
+    Line 3, in f
+    Failed example:
+        print 'pre-exception output', x/0
+    Exception raised:
+        ...
+        ZeroDivisionError: integer division or modulo by zero
+    (1, 2)
 
 Exception messages may contain newlines: