# rescape > Escape a [regular expression][mdn-regexp] string or pattern.
## Usage ```javascript var rescape = require( '@stdlib/utils/escape-regexp-string' ); ``` #### rescape( str ) Escapes a [regular expression][mdn-regexp] `string` or pattern. ```javascript var str = rescape( '/[A-Z]*/' ); // returns '/\\[A\\-Z\\]\\*/' str = rescape( '[A-Z]*' ); // returns '\\[A\\-Z\\]\\*' ``` If provided a value which is not a primitive `string`, the function **throws** a `TypeError`. ```javascript try { rescape( null ); // throws an error... } catch ( err ) { console.error( err ); } ```
- The following characters have special meaning inside of regular expressions and need to be escaped in case the characters should be treated literally: | description | value | | ------------- | -------- | | Backslash | `\` | | Braces | `{ }` | | Brackets | `[ ]` | | Caret | `^` | | Dollar Sign | `$` | | Forward Slash | `/` | | Asterisk | `*` | | Parentheses | `( )` | | Period | `.` | | Plus Sign | `+` | | Vertical Bar | `|` | | Question Mark | `?` |
## Examples ```javascript var rescape = require( '@stdlib/utils/escape-regexp-string' ); var out = rescape( '/beep/' ); // returns '/beep/' out = rescape( 'beep' ); // returns 'beep' out = rescape( '/[A-Z]*/' ); // returns '/\\[A\\-Z\\]\\*/' out = rescape( '[A-Z]*' ); // returns '\\[A\\-Z\\]\\*' out = rescape( '/\\\//ig' ); // returns '/\\\\\\\//ig' out = rescape( '\\\/' ); // returns '\\\\\\\/' out = rescape( '/[A-Z]{0,}/' ); // returns '/\\[A\\-Z\\]\\{0,\\}/' out = rescape( '[A-Z]{0,}' ); // returns '\\[A\\-Z\\]\\{0,\\}' out = rescape( '/^boop$/' ); // returns '/\\^boop\\$/' out = rescape( '^boop$' ); // returns '\\^boop\\$' out = rescape( '/(?:.*)/' ); // returns '/\\(\\?:\\.\\*\\)/' out = rescape( '(?:.*)' ); // returns '\\(\\?:\\.\\*\\)' out = rescape( '/(?:beep|boop)/' ); // returns '/\\(\\?:beep\\|boop\\)/' out = rescape( '(?:beep|boop)' ); // returns '\\(\\?:beep\\|boop\\)' ```