a me in questo modo funzia:
codice:
dim testo, repl
testo = "rif. 107.jpg;no apr.jpg;rif. 038.jpg;rif. 008.jpg;_0012.jpg;rif. 091.jpg;"
repl = array("rif. 107.jpg","rif. 008.jpg","rif. 091.jpg")
function elimina(stringa, daEliminare)
if IsArray(daEliminare) then
dim i
for i=0 to UBound(daEliminare)
stringa = replace(stringa, trim(daEliminare(i) & "") & ";", "",1, -1, 1)
next 'i
end if
elimina = stringa
end function
Response.Write ("
" & elimina(testo, repl))

edit:
una soluzione più carina potrebbe essere:
codice:
<%
dim testo, repl
testo = "rif. 107.jpg;no apr.jpg;rif. 038.jpg;rif. 008.jpg;_0012.jpg;rif. 091.jpg;"
repl = array("rif. 107.jpg","rif. 008.jpg","rif. 091.jpg")
function elimina2(stringa, mioPattern)
dim RegEx
Set RegEx = New RegExp
RegEx.Global = True
RegEx.IgnoreCase = True
RegEx.Pattern = mioPattern
stringa = RegEx.Replace(stringa,"")
Set RegEx = Nothing
elimina2=stringa
End function
dim i, tmpPattern
tmpPattern=""
if IsArray(repl) then
for i=0 to UBound(repl)
if i>0 then tmpPattern=tmpPattern & "|"
tmpPattern = tmpPattern & Trim(repl(i) & "") & ";"
next 'i
end if
Response.Write ("
" & elimina2(testo, tmpPattern))
%>
questa può tornarti più comoda se per caso recuperi i nomi delle foto da eliminare con una request.form da una serie di checkbox. per creare il tmpPattern a quel punto ti basta fare una replace sul risultato della request.form della virgola con la pipeline evitando il ciclo. (ma questa è solo una supposizione)