Ich versuchs auch mal so schön zu erklären :
/http.*?\.(mp3|wav)/
http
Suche die Zeichenkette "http"
.*
dannach beliebig viele beliebige Zeichen...
?
... aber nur soviele bis der nächste Suchausdruck auch gefunden wird! Und zwar
\.(mp3|wav)
.wav ODER .mp3! Der Backslash vor dem . maskiert den Punkt, d.h. er sollen den Punkt als Zeichen behandeln nicht als regulären Ausdruck.