Skip to main content

Switching to multi-line mode using Textmate Regex

So you have a pattern you want to match across multiple lines, and you have a regular expression that matches it.
You will probably be used to doing this in perl like this:
/some.+?stuff/s
or using regex in ruby like this:
/some.+?stuff/m
However you have just started to get used to Textmate as an editor and you see it supports regex matching. Why though does it not use /s or /m for multi-line dot matching? The reason is that Textmate uses the Oniguruma regular expression library. Oniguruma requires switching to multi-line mode by using an extended group (?m:) so the dot matches the new line as well. So our pattern would be:
(?m:some.+?stuff)
Essentially doing this turns multi-line on for the sub-expression, being some.+?stuff
Make sense? I thought not. Read on about Textmate Regex for more information.