貪欲でない正規表現

基本的に正規表現は貪欲(greedy)でマッチしうる最大の文字列にマッチする。
たとえば、"I like an apple."という文字列に対して、/l.* /という正規表現は"like an "という文字列にマッチする。
逆に最小の文字列にマッチする方法を知らなくて、"like "にマッチさせたいときは/l(^ )* /とやっていた。
実は/l.*? /とやればいいことがわかった!

繰り返し記号(*, ?, {n,m})の次に?を書くと最小マッチになるようだ。

参考:Perl の正規表現のFAQやTIPS等