Java regex with a positive look behind of a negative look ahead

java, regex, regex-lookarounds

Solution

It seems that I have solved my problem alone, removing the capturing group around the negative look ahead. It gives the following regex: `(?<=,(?!.*\Q(.*)\E)).*`.

It is linked with the behavior of capturing groups in look arounds as explained here: http://www.regular-expressions.info/lookaround.html in the part Lookaround Is Atomic.

Problem

I am trying to extract from this kind of string `ou=persons,ou=(.*),dc=company,dc=org` the last string immediately preceded by a coma not followed by (.*). In the last case, this should give `dc=company,dc=org`. Looking on regex, this seems to be a positive look behind (preceded by) of a negative look ahead. So I have achieve this regex: `(?<=(,(?!.*\Q(.*)\E))).*`, but it returns `,dc=company,dc=org` with the coma. I want the same thing without the coma. What I am doing wrong?

Original source