code: def _prepare_patterns(self, pattern_dict):
          
          dict_compiled = {}
          dict_text = {}
          dict_dscr = {}
          for platform, patterns in pattern_dict.items():
              dict_text[platform] = {}
              dict_compiled[platform] = {}
              dict_dscr[platform] = {}
  
              for key, pattern in patterns.items():
                  try:
                      text_pattern = None
                      compiled_pattern = None
                      description_pattern = None
  
                      if isinstance(pattern, str):
                          text_pattern = pattern
                          compiled_pattern = re.compile(text_pattern, re.MULTILINE)
                          description_pattern = key
  
                      elif isinstance(pattern, dict):
                          text_pattern = pattern['pattern']
                          compiled_pattern = re.compile(text_pattern, re.MULTILINE)
                          description_pattern = pattern['description']
  
                      elif isinstance(pattern, list):
                          text_pattern = self._concatenate_patterns(key, pattern)
                          compiled_pattern = re.compile(text_pattern, re.MULTILINE)
                          description_pattern = key
  
                      dict_text[platform][key] = text_pattern
                      dict_compiled[platform][key] = compiled_pattern
                      dict_dscr[platform][key] = description_pattern
  
                  except re.error as e:
                      raise RuntimeError("Pattern compile error: {} ({}:{})".format(e.message, platform, key))
  
          return dict_compiled, dict_text, dict_dscr
docs: Return two dictionaries: compiled and text prompts.