Esta bien, solo uno que otro error, la prueba lo hice con google=buscador;phperos=foro;.
Todavía no se te puede declarar ganador porque alguien puede mejorar los pormenores o hacerlo mas pequeño, así que a esperar.
No me pareció eso de las mayúsculas y minúsculas, se me hizo innecesario, pero lo de la expresión regular esta bastante bien y te digo que no se me había ocurrido.
http://img30.imageshack.us/img30/5295/16711509.png
No conté con eso, supongo que bastaría con usar esto:
[php]
<form action="" method="post">
Introduce las variables y sus valores en formato nombre1=valor1;nombre2=valor2;...:
<br />
La primera letra de cada variable no puede ser mayuscula, se reconvertirá a minuscula
<br />
<input name="var" />
<br />
<input type="submit" value="Enviar" />
</form>
<?php // lo de arriba era un simple formulario
if($_POST['var']) { // si existe la variable que contiene el texto del input var, el formulario se envió asi que...
echo '<br /><br />';
if(!preg_match('/^([a-z0-1_]+=.*(;|$))+/i', $_POST['var'])) { die('Formato incorrecto'); } // comprobamos que los valores se hayan introducido correctamente
$ex = explode(';', $_POST['var']); // separamos cada variable de manera que cada elemento en $ex contenga nombre=valor
foreach($ex as $v) { // recorremos el array
if(empty($v)){continue;} // si el valor está en blanco, saltamos al siguiente
$e = explode('=', $v); // separamos cada elemento para obtener el nombre ($e[0]) y valor ($e[1])
$n = strtolower(substr($e[0], 0, 1)).substr($e[0], 1); // almacenamos el nombre en otra variable, pasando a minuscula la primera letra con strtolower() para poder hacer lo de abajo
$$n = $e[1]; // creamos la variable
echo '<br />El valor de la variable <b>'.$n.'</b> es <b>'.$e[1].'</b>'; // mostramos el texto
}// cerramos foreach
}// cerramos if
?>