Regex Java: lookahead negativo

Estou tentando criar duas expressões regulares que combinem com URIs. Esses URIs são do formato:/foo/someVariableData e/foo/someVariableData/bar/someOtherVariableData

Eu preciso de dois regexes. Cada um precisa combinar um, mas não o outro.

As regexes que eu originalmente criei são:/foo/.+ e/foo/.+/bar/.+ respectivamente.

Eu acho que o segundo regex está bem. Ele corresponderá apenas à segunda string. O primeiro regex, no entanto, corresponde a ambos. Então, comecei a brincar (pela primeira vez) com lookahead negativo. Eu projetei o regex/foo/.+(?!bar) e configure o seguinte código para testá-lo

public static void main(String[] args) {
    String shouldWork = "/foo/abc123doremi";
    String shouldntWork = "/foo/abc123doremi/bar/def456fasola";
    String regex = "/foo/.+(?!bar)";
    System.out.println("ShouldWork: " + shouldWork.matches(regex));
    System.out.println("ShouldntWork: " + shouldntWork.matches(regex));
}

E, claro, ambos resolvemtrue.

Alguém sabe o que estou fazendo errado? Eu não preciso necessariamente usar o Lookahead Negativo, eu só preciso resolver o problema, e acho que o lookahead negativo pode ser uma maneira de fazer isso.

Obrigado,

questionAnswers(1)

yourAnswerToTheQuestion