func (e Match) FindLongestString(r string) (matches [3]string, pos int, ok bool) {
	var bt [3]stateMatch  
	matches, pos, ok = e.doString(r, modeLongestMatch, bt[:0])
	return
}
FindLongestString returns the leftmost-longest match.
package mail_crawler
import "regexp/syntax"
import "unicode/utf8"
import "strings"
import "reflect"
import "unsafe"
import "runtime"
import "github.com/CAFxX/bytespool"
const MatchRegexp = "(?i)\\b([a-z0-9._%+-]+)@([a-z0-9.-]+\\.[a-z]{2,})\\b"
var (
	_ = syntax.IsWordChar
	_ = strings.Index
)
type modeTypeMatch uint8
const (
	modeMatchMatch modeTypeMatch = iota
	modeFirstMatch
	modeLongestMatch
)
type Match struct{}
type stateMatch struct {
	c   [6]int
	i   int
	pc  int
	cnt int
}
func (e Match) FindString(r string) (matches [3]string, pos int, ok bool) {
	var bt [3]stateMatch  
	matches, pos, ok = e.doString(r, modeFirstMatch, bt[:0])
	return
}