В общем вопрос такой: php, имеется выражение, срабатывает всегда, только если совпадение не будет в конце строки.
preg_match_all('|--\d+|uis', $string, $matches)
Срабатывает только если указать явно символ конца строки, так я сейчас и костыляю парой лишних строк:
preg_match_all('|--\d+$|uis', $string, $matches)
Но разве это не частный случай первого выражения?