blabla;index|i:898989;blabla;
Надо в ней число 898989 заменить на 555.
$pattern = '/(index.*)(\d+)(;)/';
$replacement = '${1}555$3';
echo preg_replace($pattern, $replacement, $string);
Выдает результат
blabla;index|i:89898555;blabla;
То есть заменяет только одну цифру числа. Что надо добавить, чтобы заменялось число полностью? Число может быть от 0 до шестизначного и меняться может от 0 до шестизначного.