Demo: http://dbfiddle.uk/?rdbms=postgres_9.6&fiddle= 3c3a3f870eb4d002c5b4200042b256 69
The rows that I should be getting are:5 /testfile/client/10/
attachment/1000/master/ 10 7 /testfile/client/10/
attachment/unassigned/file/ 1001/master 10 8 /testfile/client/10/
attachment/unassigned/file/ 1002/master 10 What am I doing wrong?
Without you explaining why 6 and 9 are invalid it's impossible to say how you should modify your regex to exclude them. You may find positive and negative look-ahead useful though.
David J.