<?php
$result = preg_replace_callback('/(<[^>]+>)(\d+)(<[^>]+>)/', function($matches) { return $matches[1] . ($matches[2] - 120) . $matches[3]; } , '<*x>828<*/x> <*x>120<*/x> <*x>5<*/x>');
var_dump($result);
string(37) "<*x>708<*/x> <*x>0<*/x> <*x>-115<*/x>"