@internationalizeDocstring
    def search(self, irc, msg, args, user, optlist, globs):
        if not optlist and not globs:
            raise callbacks.ArgumentError
        criteria = []
        for (option, arg) in optlist:
            if option == 'regexp':
                criteria.append(lambda s:
                                regexp_wrapper(s, reobj=arg, timeout=0.1,
                                               plugin_name=self.name(),
                                               fcn_name='search'))
        for glob in globs:
            glob = utils.python.glob2re(glob)
            criteria.append(re.compile(glob).search)
        try:
            tasks = self.db.select(user.id, criteria)
            L = [format('#%i: %s', t.id, self._shrink(t.task)) for t in tasks]
            irc.reply(format('%L', L))
        except dbi.NoRecordError:
            irc.reply(_('No tasks matched that query.'))
[--{regexp} <value>] [<glob> <glob> ...]
dataset/ETHPy150Open ProgVal/Limnoria/plugins/Todo/plugin.py/Todo.search