These are great and pretty similar to what I would have supplied myself if I had thought the description of the problem wasn't self-explanatory. The actual data is possibly sensitive, so I can't just copy and paste it here. The one set of cases that you didn't have was where a number was missing from the input set ( '-2-3-4' ) - but I think I will actually look for and prevent that in the SQL statement looking for the data coming from the database.
If the positive lookbehind doesn't work then I think I'll have to blame some other unknown causing the actual issue with the outputs being unexpected. I have a meeting later to determine if there is some other unknown cause here, hopefully I can talk it through with those individuals then and arrive at a conclusion.