code: def search(cls, args):
          
          safe_shell_pat = re.escape(args['<pattern>']).replace(r'\*', '.*')
          pat_str = '.*{}.*'.format(safe_shell_pat)
          pattern = re.compile(pat_str, re.IGNORECASE)
          remote_json = NAppsManager.search(pattern)
          remote = set()
          for napp in remote_json:
              # WARNING: This will be changed in future versions, when 'author'
              # will be removed.
              username = napp.get('username', napp.get('author'))
              remote.add(((username, napp.get('name')), napp.get('description')))
  
          cls._print_napps(remote)
docs: Search for NApps in NApps server matching a pattern.