As far as I can tell this newMatch is passed to _getDateStrptime only and it only uses the group method on it.

The only change i see here is the value=None matches don't appear in the newMatch.group(key). Is this important? If this is the case can a class can wrap the dateMatch so we don't need to run another regex.
<pre>
class MatchObjectNotNone:

   def __init__(self, dm):
       self._dm = dm

   def group(self, x=None):
       if x=None:
          return self._dm.group()
       else:
          v = self._dm.group(x)
          if v:
             return v
          else:
              raise KeyErrror     (? not sure what here)
</pre>