lookahead(positive&negative) and optional