str_split_by_char_set_nonstatic_c

	sub_strings.i1p.r = str_split_by_char_set_nonstatic_c(source_string.i1a.r,
							      source_length.i4.v,
							      delimiters.i1a.r,
							      options.u8.v,
							      num_substrings.i4.r
							      [,actual_delims.i1p.r]
							      [,max_splits.i4.v])

	This routine returns the array of substrings making up a larger
	string.  The delimiters between adjacent substrings is determined
	by a passed string.  This routine allocates the memory for the
	array of substrings, and it must be freed by the caller,
	preferably by a call to str_free_array_of_strings_c.  This
	routine is similar to str_split_by_char_set_c, but in that
	routine the caller does not have to free the substrings.

	source_string	string to be split
	source_length	length of string to be split  (If this argument
			has a value of zero, the routine will determine
			the length of the string.)
	delimiters	null terminated list of delimiter characters
	options		use options
			(STR_OPT_NONE -> no options selected,
			 STR_OPT_NO_TRIM -> don't trim spaces from substrings,
			 STR_OPT_HANDLE_QUOTES -> handle substrings which
						  are quoted strings,
			 STR_OPT_HANDLE_EMBEDDED_QUOTES -> handle substrings
							   which have quoted
							   strings embedded
							   in them,
			 STR_OPT_PRESERVE_QUOTES -> preserve the quote
						    characters in quoted
						    strings,
			 STR_OPT_HANDLE_BRACES -> handle substrings which
						  are bracketed strings,
			 STR_OPT_HANDLE_EMBEDDED_BRACES -> handle substrings
							   which have bracketed
							   strings embedded
							   in them,
			 STR_OPT_HANDLE_PARENTHESES -> handle substrings which
						       are parenthetical
						       strings,
			 STR_OPT_HANDLE_EMBEDDED_PARENTHESES -> handle substrings
								which have
								parenthetical
								strings embedded
								in them)
	num_substrings	returned number of substrings found
			(A value of NULL can be passed for this argument
			 if this information is not needed.)
	[actual_delims]	returned actual delimiters found
			(The memory for this argument is allocated by
			 this routine and should be freed by the caller.)
			(default is NULL)
	[max_splits]	maximum number of split characters to look for
			(default is 0 which results in searching for all splits)

	This function returns values as follows:

	NULL			memory allocation failed
	otherwise		array of pointers to substrings

	This function requires the following include files:

	cbslib_h, acnet_errors_h

	Related functions:

	str_split_by_char_set_c, str_split_c, str_free_array_of_strings_c,
	str_find_string_c, str_find_last_string_c, strstr, strstr_nocase,
	str_compare_n_nocase_c, str_compare_nocase, strncmp, strcmp,
	strncmx, str_concatenate_c

	C/C++ usage:

	static const char	source_string[] = "string1\\string2";
	static const char	delimiters[] = "\\";
	char	*actual_delims;
	char	**sub_strings;
	int	source_length = 0;
	int	num_substrings;
	int	max_splits = 0;
	unsigned long long	options = STR_OPT_NONE;

	sub_strings = str_split_by_char_set_nonstatic_c(source_string,
							source_length,
							delimiters,
							options,
							&num_substrings,
							&actual_delims);
			.
			.
			.
	str_free_array_of_strings_c(substrings,num_substrings);
	free(actual_delims);