code: function changeCaseOfFirstChar(str, func, thisFuncsName) {
          var search, char, right, left;
  
          // If typeof `str` is not of type "String" then bail
          throwTypeErrorIfNotOfType(thisFuncsName, 'str', str, _String);
  
          // Search for first alpha char
          search = str.search(/[a-z]/i);
  
          // If alpha char
          if (isNumber(search) && search > -1) {
  
              // Make it lower case
              char = str.substr(search, 1)[func]();
  
              // Get string from `char`'s index
              right = str.substr(search + 1, str.length - 1);
  
              // Get string upto `char`'s index
              left = search !== 0 ? str.substr(0, search) : '';
  
              // Concatenate original string with lower case char in it
              str = left + char + right;
          }
  
          return str;
      }
docs: Used when composing a function that needs to operate on the first character found and needs to
  return the original string with the modified character within it.
  @see sjl.lcaseFirst or sjl.ucaseFirst (search within this file)
  @param str {String} - string to search for first alpha char on
  @param func {String} - function to run on first alpha char found; i.e., found[func]()
  @param thisFuncsName {String} - the function name that is using this function (in order
  to present a prettier error message on `TypeError`)
  @throws {TypeError} - If str is not of type "String"
  @returns {String} - composed string