Tach!
RewriteRule ^(.*(gif|jpg|GIF|JPG|png|PNG))$ http://localhost/test.php?pic=$1 [L]
Achja, für den ursprünglichen Request muss man ja gar nicht die Servervariablen auswerten, denn den kennt ja auch die RewriteRule. Das kann man übrigens noch geringfügig vereinfachen/verbessern. Der gesamte vom Muster abgedeckte Teil des Requests ist in der Backreference $0 enthalten, also kann man die äußeren Klammern (Gruppierung für $1) weglassen. Und wenn der Anfang beliebig ist, muss man den Anfang (^) auch nicht weiter in die Regel aufnehmen, denn .* greift wegen der Greediness (Gierigkeit) regulärer Ausdrücke sowieso alles, was es zu fassen bekommt. Nicht vergessen sollte man aber den . vor der Endung, sonst findet die Regel auch foogif.
RewriteRule .*.(gif|jpg|GIF|JPG|png|PNG)$ http://localhost/test.php?pic=$0 [L]
dedlfix.