str_replace_bracketed_c

	status.i4.v = str_replace_bracketed_c(source_string.i1a.r,
					      source_length.i4.v,
					      left_bracket.i1a.r,
					      left_length.i4.v,
					      right_bracket.i1a.r,
					      right_length.i4.v,
					      case_sensitive.i4.v,
					      wildcard.i1.v,
					      ignore_spaces.i4.v,
					      replace_string.i1a.r,
					      replace_length.i4.v,
					      next_string.i1p.r
					      [,replace_func.f.v]
					      [,options.u4.v])

	This routine replaces a substring which is bracketed between two
	other specified substrings.

	source_string	string to be searched and possibly modified
	source_length	length of string to be searched  (If this argument
			has a value of zero, the routine will determine
			the length of the string.)
	left_bracket	left bracket string
	left_length	length of the left bracket string  (If this
			argument has a value of zero, the routine will
			determine the length of the string.)
	right_bracket	right bracket string  (Note:  If a value of NULL
			is passed for this argument, the left bracket
			string will be used.)
	right_length	length of the right bracket string  (If this
			argument has a value of zero, the routine will
			determine the length of the string.)
	case_sensitive	case sensitivity flag for the bracket strings
			(TRUE -> case sensitive search,
			 FALSE -> case insensitive search)
	wildcard	wildcard character which will match any
			single character with the bracket strings
			(STR_NO_WILDCARD -> don't use any wildcards,
			 otherwise -> desired wildcard character)
	ignore_spaces	bracket white space handling flag
			(TRUE -> ignore embedded white spaces,
			 FALSE -> treat white spaces like any other character)
	replace_string	replacement string  (This argument is not used if
			a replacement function is specified.)
	replace_length	length of replacement string  (If this argument
			has a value of zero, the routine will determine
			the length of the string.)  (This argument is not
			used if a replacement function is specified.)
	next_string	address of the next character in the source string
			following the replacement string
			(If a value of NULL is passed for this argument,
			no address will be returned.)
	[replace_func]  optional replacement string function
			(called as follows:
			 replace_it.i4.v = replace_func(found_string.i1a.r,
							replace_string.i1a.r))
			(A return value of TRUE indicates that the bracketed
			 string should be replaced by "replace_string", but
			 a return value of FALSE indicates that the bracketed
			 string should remain as it is.  A negative return
			 value indicates an error, and that value will be
			 returned as the overall status.)
			(If this option is not desired, pass a value of NULL
			 for this argument.)
	[options]	use options
			(STR_OPT_NONE -> no options selected,
			 STR_OPT_REPLACE_BRACKETS -> replace brackets as
						     well as the string
						     within them)

	This function returns values as follows:

	CLIB_INVARG		invalid argument passed
	FALSE			string not found
	CLIB_NO_CHANGE		a replacment function was specified and it
				opted not to replaced the bracketed string
	negative_number		returned error from the caller supplied
				replacement string function
	positive number		index of start of replacement string
				(starts at 1)

	This function requires the following include files:

	cbslib_h, acnet_errors_h

	Related functions:

	str_replace_string_c, str_replace_char_c, str_replace_char_set_c,
	str_remove_char_set_c, str_get_bracketed_c, str_find_string_c,
	str_find_last_string_c, str_split_c, strstr, strstr_nocase,
	str_compare_n_nocase_c, str_compare_nocase, strncmp, strcmp, strncmx,
	str_get_tagged_value_c, str_get_tagged_value_alloc_c, str_get_value_c

	C/C++ usage:

	static char	source_string[128] = " (replace this) ";
	static const char	left_bracket[] = "(";
	static const char	right_bracket[] = ")";
	static const char	replace_string[] = "replacement string";
	char	*next_string;
	char	wildcard = STR_NO_WILDCARD;
	int	status;
	int	source_length = 0;
	int	left_length = 0;
	int	right_length = 0;
	int	case_sensitive = FALSE;
	int	ignore_spaces = TRUE;
	int	replace_length = 0;
	unsigned int	options = STR_OPT_NONE;
	int	replace_func(char *bracketed_string, char *replace_string);

	status = str_replace_bracketed_c(source_string,source_length,
					 left_bracket,left_length,
					 right_bracket,right_length,
					 case_sensitive,wildcard,ignore_spaces,
					 replace_string,replace_length,
					 &next_string,replace_func,options);