def _partialParseTimeStr(self, s, sourceTime):
        """
        test if giving C{s} matched CRE_TIME, 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

        """
        parseStr = None
        chunk1 = chunk2 = ''

        # Natural language time strings
        m = self.ptc.CRE_TIME.search(s)
        if m is not None or s in self.ptc.re_values['now']:

            if (m and m.group() != s):
                # capture remaining string
                parseStr = m.group()
                chunk1 = s[:m.start()]
                chunk2 = s[m.end():]
                s = '%s %s' % (chunk1, chunk2)
            else:
                parseStr = s
                s = ''

        if parseStr:
            debug and log.debug(
                'found (time) [%s][%s][%s]', parseStr, chunk1, chunk2)
            sourceTime = self._evalTimeStr(parseStr, sourceTime)

        return s, sourceTime, bool(parseStr)
test if giving C{s} matched CRE_TIME, 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