Ваше регулярное выражение прервется, если строка $id_base
содержит /
, поскольку вы используете /
в качестве разделителя регулярных выражений.
Чтобы исправить это, используйте preg_quote
на $id_base
как:
if (preg_match('/'. preg_quote($id_base,'/').'-([0-9]+)$/', .....) {