print $RE{delimited}{-delim => 'ab'};
gives
(?:(?|(?:a)(?:[^\\a]*(?:\\.[^\\a]*)*)(?:a)|(?:b)(?:[^\\b]*(?:\\.[^\\b]
+*)*)(?:b)))
If one uses a character class then the square brackets are treated as delimiters.
print $RE{delimited}{-delim => '[\\\/]'};
gives
(?:(?|(?:\[)(?:[^\\\[]*(?:\\.[^\\\[]*)*)(?:\[)|(?:\\)(?:[^\\]*(?:(?:\\
+\\)[^\\]*)*)(?:\\)|(?:\\)(?:[^\\]*(?:(?:\\\\)[^\\]*)*)(?:\\)|(?:\/)(?
+:[^\\\/]*(?:\\.[^\\\/]*)*)(?:\/)|(?:\])(?:[^\\\]]*(?:\\.[^\\\]]*)*)(?
+:\])))
...and a RegExp object appears to be stringified and then treated as a sequence of characters.
print qr'a';
print "\n\n";
print $RE{delimited}{-delim => qr'a'};
print "\n";
gives
(?^:a)
(?:(?|(?:\()(?:[^\\\(]*(?:\\.[^\\\(]*)*)(?:\()|(?:\?)(?:[^\\\?]*(?:\\.
+[^\\\?]*)*)(?:\?)|(?:\^)(?:[^\\\^]*(?:\\.[^\\\^]*)*)(?:\^)|(?:\:)(?:[
+^\\\:]*(?:\\.[^\\\:]*)*)(?:\:)|(?:a)(?:[^\\a]*(?:\\.[^\\a]*)*)(?:a)|(
+?:\))(?:[^\\\)]*(?:\\.[^\\\)]*)*)(?:\))))
|