code: def _init_groups(self, string):
          
  
          taf_group_pattern = """
              (?:FM|(?:PROB(?:\d{1,2})\s*(?:TEMPO)?)|TEMPO|BECMG|[\S\s])[A-Z0-9\+\-/\s$]+?(?=FM|PROB|TEMPO|BECMG|$)
          """
  
          group_list = []
  
          groups = re.findall(taf_group_pattern, string, re.VERBOSE)
          if not groups:
              raise MalformedTAF("No valid groups found")
  
          for group in groups:
              group_list.append(group)
  
          return(group_list)
docs: Extracts weather groups (FM, PROB etc.) and populates group list
  
          Args:
              TAF report string
  
          Raises:
              MalformedTAF: Group decoding error