I have doubts if the pcre_extra and pcre_callout_block structures should
be identical for both 8-bit and 16-bit versions of PCRE.
Both hold pointers to string data which is different between 8-bit and
16-bit, for example "mark" in pcre_extra and "subject" and "mark" in
pcre_callout_block.
If the current SVN trunk is compiled for 16-bit, these members must by
type-casted to their 16-bit values before being used. I noticed that you
have changed pcre_callout_block.mark to const void* which now requires
casts for both 8-bit an 16-bit.
Adding pcre16_extra and pcre16_callout_block with properly typed string
members would solve this dilemma.