PCRE - Perl-compatible regular expressions
PCRE_SPTR16 input, int length, int *host_byte_order,
This function, which exists only in the 16-bit library, converts a UTF-16 string to the correct order for the current host, taking account of any byte order marks (BOMs) within the string. Its arguments are:
pointer to output buffer, may be the same as input
input pointer to input buffer
length number of 16-bit units in the input, or negative for
a zero-terminated string
host_byte_order a NULL value or a non-zero value pointed to means
start in host byte order
keep_boms if non-zero, BOMs are copied to the output string
The result of the function is the number of 16-bit units placed into the output buffer, including the zero terminator if the string was zero-terminated.
If host_byte_order is not NULL, it is set to indicate the byte order that is current at the end of the string.
There is a complete description of the PCRE native API in the pcreapi page and a description of the POSIX API in the pcreposix page.