internal Object exec(String input){
Match match = null;
if (!this.globalInt)
match = this.regex.Match(input);
else{
int lastIndex = (int)Runtime.DoubleToInt64(Convert.ToInteger(this.lastIndexInt));
if (lastIndex <= 0)
match = this.regex.Match(input);
else if (lastIndex <= input.Length)
match = this.regex.Match(input, lastIndex);
}
if (match == null || !match.Success){
this.lastIndexInt = 0;
return DBNull.Value;
}
this.lastIndexInt = this.regExpConst.UpdateConstructor(this.regex, match, input);
return new RegExpMatch(this.regExpConst.arrayPrototype, this.regex, match, input);
}