PCRE's partial match[0] API allows it to be used on non-contiguous data structures. We use this feature in Atom[1] to allow for fast regex search in a background thread.
[0] http://www.pcre.org/original/doc/html/pcrepartial.html#SEC2
[1] https://github.com/atom/superstring/blob/ed57b08a74220dd33e4...