Nicy: Regex] Match URL exclude stings

Ich möchte jeden Link matchen außer er enthällt die endung : jpe?g|gif|png .

https?://[\d\w-./+%()~_]+/(?!jpe?g|gif|png)[^\s]+

leider scheitert meine lösung an dem außschließen von diesen strings http|jpe?g|gif|png

andere lösung matcht jede URL:
\b(?:https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]

hat jemand einen lösungsvorschlag in einem einzigen regex wie ich urls ausschließen kann welche diese wörter png, gif usw enthalten?

beispiel:

Nicht Matchen:
PHP-Code:

http://example.com/example.jpg  
http://example.com/example231/example.gif

Matchen:
PHP-Code:

http://example.com/example.html  
http://example.com/example/?id=4331  
http://example.com/example/example/ex_ample/ex-ample/?id=4331