Koenig, лучше будет спарсить 2+2 на предмет
preg_match('#^([\d\.]+)(\+|\-|\%|\/|\*)([\d\.])$#', $string, result)$result[0], $result[1], $result[2]
и задачка посложнее, и исполнение аккуратнее, и проверка на валидность задания
как то так, мне кажется