http://www.perlmonks.org?node_id=995748


in reply to extract a specific string from input

.* will get you the longest sequence of characters.

.*? will get you the shortest sequence.

Replies are listed 'Best First'.
Re^2: extract a specific string from input
by moritz (Cardinal) on Sep 26, 2012 at 11:57 UTC
    .*? will get you the shortest sequence.

    Usually that's correct, but not if there is overlap between the stand and the end delimiter. ATTAA is the shortest sequence that begins wtih ATT and ends with TAA, but ATT.*?TAA doesn't match it.

    If overlapping matches need to be allowed, you can use for example

    /((?=ATT).*?TAA)/