use Data::Dump; dd "---\nFoo\n---\nBar\n" =~ /(.{0,0})\K(---\s*)(.{0,200})/gisx; __END__ ("", "---\n", "Foo\n---\nBar\n")