code: function _fnFilterCreateSearch( sSearch, bRegex, bSmart, bCaseInsensitive )
  	{
  		var asSearch,
  			sRegExpString = bRegex ? sSearch : _fnEscapeRegex( sSearch );
  	
  		if ( bSmart )
  		{
  			/* Generate the regular expression to use. Something along the lines of:
  			 * ^(?=.*?\bone\b)(?=.*?\btwo\b)(?=.*?\bthree\b).*$
  			 */
  			asSearch = sRegExpString.split( ' ' );
  			sRegExpString = '^(?=.*?'+asSearch.join( ')(?=.*?' )+').*$';
  		}
  	
  		return new RegExp( sRegExpString, bCaseInsensitive ? "i" : "" );
  	}
docs: Build a regular expression object suitable for searching a table
  @param {string} sSearch string to search for
  @param {bool} bRegex treat as a regular expression or not
  @param {bool} bSmart perform smart filtering or not
  @param {bool} bCaseInsensitive Do case insensitive matching or not
  @returns {RegExp} constructed object
  @memberof DataTable#oApi