I think dealing with pos will result in ugly code: maybe code with cycle over string length or time consuming code.
So you mean perl regexps are always greedy: they match as much as possible and there's no way to configure them beside your approach with (?= ) ?