input: Write a python function to parse multiline text generated by `ffprobe` or `avprobe` and return a structured dictionary.
  assert probe("[TAG]\ndata_x=1\ndata_y=2\nINFO:data_z=3\n[/TAG]") == {'tag': [{'data_x': '1', 'data_y': '2', 'info': {'data_z': '3'}}]}
  assert probe("[STREAM]\ncodec_name=h264\nheight=1080\nwidth=1920\n[/STREAM]") == {'streams': [{'codec_name': 'h264', 'height': '1080', 'width': '1920'}]}
  assert probe("[FORMAT]\nfilename=test.mp4\nnb_streams=1\n[/FORMAT]") == {'format': {'filename': 'test.mp4', 'nb_streams': '1'}}
output: def probe(data):
      lines = data.strip().split('\n')
      result = {}
      current_section = None
      current_dict = {}
      for line in lines:
          if line.startswith('[') and line.endswith(']'):
              section = line[1:-1].lower()
              if section.startswith('/'):
                  section = section[1:]
                  if section not in result:
                      result[section] = []
                  result[section].append(current_dict)
                  current_dict = {}
              else:
                  current_section = section
          else:
              if '=' in line:
                  key, value = line.split('=', 1)
                  if ':' in key:
                      prefix, actual_key = key.split(':', 1)
                      if prefix not in current_dict:
                          current_dict[prefix] = {}
                      current_dict[prefix][actual_key] = value
                  else:
                      current_dict[key] = value
      return result