I'm not sure why you have added the '(.*)' to the end of Sergei's suggested pattern, nor included (what I assume is) the replacement string of "$1" as these have the potential to change the operation of the regex completely.
You have not told us the options that you are using that may affect what is happening, nor the way you are using the regex pattern. For example, if the "Singleline" option is set, then the '.*' will grab all characters after the first "|" to the end of the entire string - and the '$1" will simply put them all back again. However if you have asked for the regex to go a global replace, then it will start the end match at the end of the first one - but that is now the end of the string and so no more matches can be made.
On the other hand, if you have not got the "singleline" option set, which of the various "Replace" methods are you using - some specify an upper limit on the number of times the replacement will be made.
I would suggest a slight change to Sergei's pattern to get the correct behaviour for the first of the 4 lines you have given as your sample text:
again with the null replacement string. Your first line has the value "-1" as the "number" but this will not be matched by the '\d'. With the '-?' at the start you will also remove any leading negative character from the "number". (By the way, as with Sergei's suggestion, this one does not depend on the setting of any options).
Finally I don't understand what you mean by "...apply to lines 2,3,4 and potentially 5?" I can only see 4 lines in your sample text.