code: function Tokenizer( regex, token ) {
  
  	var matches = [],
  		index = 0;
  
  	/**
  	 * Add a match.
  	 *
  	 * @private
  	 * @param {string} match Matched string
  	 * @return {string} Token to leave in the matched string's place
  	 */
  	function tokenizeCallback( match ) {
  		matches.push( match );
  		return token;
  	}
  
  	/**
  	 * Get a match.
  	 *
  	 * @private
  	 * @return {string} Original matched string to restore
  	 */
  	function detokenizeCallback() {
  		return matches[ index++ ];
  	}
  
  	return {
  		/**
  		 * Replace matching strings with tokens.
  		 *
  		 * @param {string} str String to tokenize
  		 * @return {string} Tokenized string
  		 */
  		tokenize: function ( str ) {
  			return str.replace( regex, tokenizeCallback );
  		},
  
  		/**
  		 * Restores tokens to their original values.
  		 *
  		 * @param {string} str String previously run through tokenize()
  		 * @return {string} Original string
  		 */
  		detokenize: function ( str ) {
  			return str.replace( new RegExp( '(' + token + ')', 'g' ), detokenizeCallback );
  		}
  	};
  }
docs: Create a tokenizer object.
  
  This utility class is used by CSSJanus to protect strings by replacing them temporarily with
  tokens and later transforming them back.
  
  @author Trevor Parscal
  @author Roan Kattouw
  
  @class
  @constructor
  @param {RegExp} regex Regular expression whose matches to replace by a token
  @param {string} token Placeholder text