regexp: + non-greedy; fixed grouping bugs