const RE_REGEXP_CHAR = /[\\^$.*+?()[\]{}|]/gu ; const RE_HAS_REGEXP_CHAR = new RegExp ( RE_REGEXP_CHAR . source ) ; const RE_REGEXP_STR = /^\/(.+)\/(.*)$/u ; param str returns export function escape ( str ) { return str && RE_HAS_REGEXP_CHAR . test ( str ) ? str . replace ( RE_REGEXP_CHAR , '\\$&' ) : str ; } param str returns export function toRegExp ( str ) { const parts = RE_REGEXP_STR . exec ( str ) ; if ( parts ?. [ 1 ] ) { return new RegExp ( parts [ 1 ] , parts [ 2 ] ) ; } return new RegExp ( `^${ escape ( str ) }$` ) ; } param str returns export function isRegExp ( str ) { return Boolean ( RE_REGEXP_STR . exec ( str ) ) ; }