function snakecase( str ) {
	str = replace( str, RE_SPECIAL, ' ' );
	str = replace( str, RE_CAMEL, '$1 $2' );
	str = trim( str );
	str = replace( str, RE_WHITESPACE, '_' );
	return lowercase( str );
}
Converts a string to snake case.

@param {string} str - string to convert
@returns {string} snake-cased string

@example
var str = snakecase( 'Hello World!' );
// returns 'hello_world'

@example
var str = snakecase( 'foo bar' );
// returns 'foo_bar'

@example
var str = snakecase( 'I am a tiny little teapot' );
// returns 'i_am_a_tiny_little_teapot'

@example
var str = snakecase( 'BEEP boop' );
// returns 'beep_boop'

@example
var str = snakecase( 'isMobile' );
// returns 'is_mobile'