Ich habs!
Cool.. war ja einfacher wie ich dachte!!
<?
$rabatt = 10;
function preg_callback($result){
global $rabatt;
return $result[1]/100*$rabatt;
}
$zeichenkette = 'Dat is n %spezial__456% Test Dat is n %spezial__789% Test';
$suchmuster = '/%spezial__(.+?)%/i';
echo preg_replace_callback($suchmuster, 'preg_callback', $zeichenkette);
?>