codice:
// $myFileReaded sara' il contenuto del file 

// elimino i commenti
$myFile = preg_replace( "/(?i)\\\\([^\a]+?)\[/i", " [", $myFileReaded );

// riorganizzo il nome tra quadre
$myFile = preg_replace( "/(?i)([[:space:]]+)(\[)([a-z]+)(\])/", "@NAME=\\3", $myFile );

// elimino gli 'a capo' superflui
$myFile = preg_replace( "/(?i)([\r|\n]+)/", "|", $myFile );

// esplodo l' array per gruppi con la @
$myArray = explode( "@", $myFile );

$queryArray = Array(); // array ordinato per chiavi
$nodeName = ""; // nome per ogni gruppo

for( $a = 0, $b = count( $myArray ); $a < $b; $a++ ) {
	if( ( $myArray[$a] = trim($myArray[$a]) ) != "" ) {
		$myArray[$a] = explode( "|", $myArray[$a] );
		for( $c = 0, $d = count( $myArray[$a] ); $c < $d; $c++ ) {
			if( ( $myArray[$a][$c] = trim($myArray[$a][$c]) ) != "" ) {
			        $myArray[$a][$c] = explode( "=", $myArray[$a][$c] );
				if( $myArray[$a][$c][0] == "NAME" ) {
					$queryArray[$myArray[$a][$c][1]] = Array();
					$nodeName = $myArray[$a][$c][1];
				}
				else {
					$queryArray[$nodeName][$myArray[$a][$c][0]] = $myArray[$a][$c][1];
				}
			}
		}
	}
}

echo "<pre>";
var_dump( $queryArray );
echo "</pre>";

// il var_dump dara' come risultato quanto segue:
array(4) {
  ["Firestorm"]=>
  array(12) {
    ["PLEVEL"]=>
    string(2) "GM"
    ["PRIV"]=>
    string(5) "0104a"
    ["PASSWORD"]=>
    string(3) "123"
    ["TOTALCONNECTTIME"]=>
    string(2) "23"
    ["LASTCONNECTTIME"]=>
    string(1) "4"
    ["LASTCHARUID"]=>
    string(5) "04543"
    ["CHARUID"]=>
    string(5) "04543"
    ["FIRSTCONNECTDATE"]=>
    string(19) "2004/01/10 16:24:14"
    ["FIRSTIP"]=>
    string(14) "80.183.127.235"
    ["LASTCONNECTDATE"]=>
    string(19) "2004/01/10 16:46:19"
    ["LASTIP"]=>
    string(14) "80.183.127.235"
    ["LANG"]=>
    string(3) "ITA"
  }
  ["Himeko"]=>
  array(12) {
    ["PLEVEL"]=>
    string(5) "Admin"
    ["PRIV"]=>
    string(5) "0104a"
    ["PASSWORD"]=>
    string(4) "ciao"
    ["TOTALCONNECTTIME"]=>
    string(3) "532"
    ["LASTCONNECTTIME"]=>
    string(2) "87"
    ["LASTCHARUID"]=>
    string(5) "06260"
    ["CHARUID"]=>
    string(5) "06260"
    ["FIRSTCONNECTDATE"]=>
    string(19) "2003/07/05 19:27:25"
    ["FIRSTIP"]=>
    string(9) "127.0.0.1"
    ["LASTCONNECTDATE"]=>
    string(19) "2004/03/08 16:34:16"
    ["LASTIP"]=>
    string(9) "127.0.0.1"
    ["LANG"]=>
    string(3) "ITA"
  }
  ["Lod"]=>
  array(3) {
    ["PLEVEL"]=>
    string(2) "GM"
    ["PRIV"]=>
    string(5) "0104a"
    ["PASSWORD"]=>
    string(3) "bao"
  }
  ["Michelangelo"]=>
  array(12) {
    ["PLEVEL"]=>
    string(2) "GM"
    ["PRIV"]=>
    string(5) "0104a"
    ["PASSWORD"]=>
    string(4) "miao"
    ["TOTALCONNECTTIME"]=>
    string(2) "73"
    ["LASTCONNECTTIME"]=>
    string(2) "27"
    ["LASTCHARUID"]=>
    string(5) "04576"
    ["CHARUID"]=>
    string(5) "04576"
    ["FIRSTCONNECTDATE"]=>
    string(19) "2003/07/14 18:05:29"
    ["FIRSTIP"]=>
    string(14) "80.116.236.118"
    ["LASTCONNECTDATE"]=>
    string(19) "2003/07/14 18:58:55"
    ["LASTIP"]=>
    string(14) "80.116.236.118"
    ["LANG"]=>
    string(3) "ita"
  }
}
quindi il risultato sara' un array ordinato con una chiave per ogni "nome-gruppo" e i relativi valori chiave per ogni sotto-gruppo

Ora non devi far altro che orgenizzarti un ciclo per strutturare la query