code: def _partialParseTimeStd(self, s, sourceTime):
          
          parseStr = None
          chunk1 = chunk2 = ''
  
          # HH:MM(:SS) time strings
          m = self.ptc.CRE_TIMEHMS.search(s)
          if m is not None:
  
              if m.group('seconds') is not None:
                  parseStr = '%s:%s:%s' % (m.group('hours'),
                                           m.group('minutes'),
                                           m.group('seconds'))
                  chunk1 = s[:m.start('hours')]
                  chunk2 = s[m.end('seconds'):]
              else:
                  parseStr = '%s:%s' % (m.group('hours'),
                                        m.group('minutes'))
                  chunk1 = s[:m.start('hours')]
                  chunk2 = s[m.end('minutes'):]
  
              s = '%s %s' % (chunk1, chunk2)
  
          if parseStr:
              debug and log.debug(
                  'found (hms) [%s][%s][%s]', parseStr, chunk1, chunk2)
              sourceTime = self._evalTimeStd(parseStr, sourceTime)
  
          return s, sourceTime, bool(parseStr)
docs: test if giving C{s} matched CRE_TIMEHMS, used by L{parse()}
  
          @type  s:          string
          @param s:          date/time text to evaluate
          @type  sourceTime: struct_time
          @param sourceTime: C{struct_time} value to use as the base
  
          @rtype:  tuple
          @return: tuple of remained date/time text, datetime object and
                   an boolean value to describ if matched or not