code: def search(signal='', action='', signals=SIGNALS):
      
      sig_re = re.compile(signal, re.IGNORECASE)
      act_re = re.compile(action, re.IGNORECASE)
      res = []
      for code in signals:
          sig, act, _ = signals[code]
          if sig_re.match(sig) and act_re.match(act):
              res.append(explain(code, signals=signals))
      return res
docs: Search the signals DB for signal named *signal*,
      and which action matches *action* in a case
      insensitive way.
  
      :param signal: Regex for signal name.
      :param action: Regex for default action.
      :param signals: Database of signals.