sub re_p2js { local @_ = @_; for( @_ ) { 1 while s[^\(\?(\w*)-?\w*:(.*)\)$][/$2/$1] } @_ } print for re_p2js qr/abcde/, qr/(1|2)z$/, qr/^abcd*/ims #### /abcde/ /(1|2)z$/ /^abcd*/msi