For example, (? =(? !foo)bar)baz matches an occurrence of "baz "that is preceded by "bar" which in turn is not preceded by "foo", while (? =\d{3}(?!999).. .)foo is another pattern which matches "foo "preceded by three digits and any three characters that are not "999".
De plus, les assertions peuvent être imbriquées: (? =(? !foo)bar)baz recherche les occurrences de "baz" qui sont précédées par "bar", qui, à son tour, n'est pas précédé par "foo".