ponieważ wyrażenie regularne Oracle przesuwa pasującą pozycję do przodu po dopasowaniu, niestety musisz zrobić wyrażenie regularne dwukrotnie
regexp_replace(regexp_replace(col1,'(^|,)(SL)(\W|$)','\1\3',1,0,'imn') ,'(^|,)(SL)(\W|$)','\1\3',1,0,'imn')