Ich benutze
TRegExpr und Lazarus unter Linux.
Irgendwie funktionieren die beiden Codes auch nicht. Ich habe allerdings das Projekt mal testweise mit einem anderen Ausdruck getestet: Es funktioniert! Ich benutze folgende Funktion:
h:=ReplaceRegExpr('\<nr:([0-7]{3})\>', h, '', false);
h ist ein String, der den zu bearbeitenden Text enthält. Allerding ist das Ergebnis dieser Funktion immer gleich dem Eingangswert.