PCRE - Perl-compatible regular expressions
#include <pcre.h>
int pcre32_utf32_to_host_byte_order(PCRE_UCHAR32 *output,
PCRE_SPTR32 input, int length, int *host_byte_order,
int keep_boms);
This function, which exists only in the 32-bit library, converts a UTF-32 string to the correct order for the current host, taking account of any byte order marks (BOMs) within the string. Its arguments are:
output pointer to output buffer, may be the same as input input pointer to input buffer length number of 32-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 32-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.