Если ваш код выдает предупреждение «Уведомление PHP: неопределенное смещение: 0 in ...», это происходит потому, что в некоторых случаях $ match равен array()
(пустой массив), а индекс 0 не существует.
Полагаю, единственное, что вам может понадобиться - это изменить
$proc[] = $matches[0];
до
if (count($matches)) $proc[] = $matches[0];
и аналогичным образом изменить
$param[] = $matches[0];
до
if (count($matches)) $param[] = $matches[0];
Эти изменения не только избавят вас от предупреждений о смещении, но и предотвратят заполнение $proc
и $param
пустыми элементами, когда строка не совпадает.