| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | 
							- 'use strict';
 
- var chars = {}, unesc, temp;
 
- function reverse(object, prepender) {
 
-   return Object.keys(object).reduce(function(reversed, key) {
 
-     var newKey = prepender ? prepender + key : key; // Optionally prepend a string to key.
 
-     reversed[object[key]] = newKey; // Swap key and value.
 
-     return reversed; // Return the result.
 
-   }, {});
 
- }
 
- /**
 
-  * Regex for common characters
 
-  */
 
- chars.escapeRegex = {
 
-   '?': /\?/g,
 
-   '@': /\@/g,
 
-   '!': /\!/g,
 
-   '+': /\+/g,
 
-   '*': /\*/g,
 
-   '(': /\(/g,
 
-   ')': /\)/g,
 
-   '[': /\[/g,
 
-   ']': /\]/g
 
- };
 
- /**
 
-  * Escape characters
 
-  */
 
- chars.ESC = {
 
-   '?': '__UNESC_QMRK__',
 
-   '@': '__UNESC_AMPE__',
 
-   '!': '__UNESC_EXCL__',
 
-   '+': '__UNESC_PLUS__',
 
-   '*': '__UNESC_STAR__',
 
-   ',': '__UNESC_COMMA__',
 
-   '(': '__UNESC_LTPAREN__',
 
-   ')': '__UNESC_RTPAREN__',
 
-   '[': '__UNESC_LTBRACK__',
 
-   ']': '__UNESC_RTBRACK__'
 
- };
 
- /**
 
-  * Unescape characters
 
-  */
 
- chars.UNESC = unesc || (unesc = reverse(chars.ESC, '\\'));
 
- chars.ESC_TEMP = {
 
-   '?': '__TEMP_QMRK__',
 
-   '@': '__TEMP_AMPE__',
 
-   '!': '__TEMP_EXCL__',
 
-   '*': '__TEMP_STAR__',
 
-   '+': '__TEMP_PLUS__',
 
-   ',': '__TEMP_COMMA__',
 
-   '(': '__TEMP_LTPAREN__',
 
-   ')': '__TEMP_RTPAREN__',
 
-   '[': '__TEMP_LTBRACK__',
 
-   ']': '__TEMP_RTBRACK__'
 
- };
 
- chars.TEMP = temp || (temp = reverse(chars.ESC_TEMP));
 
- module.exports = chars;
 
 
  |