use strict;
my $str = '## assemble/assemble-boilerplate-markdown starts
## assemble/assemble-boilerplate-markdown ends
## assemble/assemble-boilerplate-markdown starts
/assemble-boilerplate-markdown/src/content/TOC
/assemble-boilerplate-markdown/src/content/markdown/auto-links
/assemble-boilerplate-markdown/src/content/markdown/autolink-lines
/assemble-boilerplate-markdown/src/content/markdown/backslash-escapes
/assemble-boilerplate-markdown/src/content/markdown/blockquote-list-item
/assemble-boilerplate-markdown/src/content/markdown/blockquotes-with-code-blocks
/assemble-boilerplate-markdown/src/content/markdown/case-insensitive-refs
/assemble-boilerplate-markdown/src/content/markdown/code-blocks
/assemble-boilerplate-markdown/src/content/markdown/code-spans
/assemble-boilerplate-markdown/src/content/markdown/def-blocks
/assemble-boilerplate-markdown/src/content/markdown/double-link
/assemble-boilerplate-markdown/src/content/markdown/escaped-angles
/assemble-boilerplate-markdown/src/content/markdown/gfm-break
/assemble-boilerplate-markdown/src/content/markdown/gfm-code-hr-list
/assemble-boilerplate-markdown/src/content/markdown/gfm-code
/assemble-boilerplate-markdown/src/content/markdown/gfm-del
/assemble-boilerplate-markdown/src/content/markdown/gfm-em
/assemble-boilerplate-markdown/src/content/markdown/gfm-links
/assemble-boilerplate-markdown/src/content/markdown/gfm-tables
/assemble-boilerplate-markdown/src/content/markdown/hard-wrapped-paragraphs-with-list-like-lines
/assemble-boilerplate-markdown/src/content/markdown/horizontal-rules
/assemble-boilerplate-markdown/src/content/markdown/hr-list-break
/assemble-boilerplate-markdown/src/content/markdown/inline-html-advanced
/assemble-boilerplate-markdown/src/content/markdown/inline-html-comments
/assemble-boilerplate-markdown/src/content/markdown/inline-html-simple
/assemble-boilerplate-markdown/src/content/markdown/lazy-blockquotes
/assemble-boilerplate-markdown/src/content/markdown/links-inline-style
/assemble-boilerplate-markdown/src/content/markdown/links-reference-style
/assemble-boilerplate-markdown/src/content/markdown/links-shortcut-references
/assemble-boilerplate-markdown/src/content/markdown/list-item-text
/assemble-boilerplate-markdown/src/content/markdown/literal-quotes-in-titles
/assemble-boilerplate-markdown/src/content/markdown/loose-lists
/assemble-boilerplate-markdown/src/content/markdown/main
/assemble-boilerplate-markdown/src/content/markdown/markdown-documentation-basics
/assemble-boilerplate-markdown/src/content/markdown/markdown-documentation-syntax
/assemble-boilerplate-markdown/src/content/markdown/nested-blockquotes
/assemble-boilerplate-markdown/src/content/markdown/nested-code
/assemble-boilerplate-markdown/src/content/markdown/nested-em
/assemble-boilerplate-markdown/src/content/markdown/nested-square-link
/assemble-boilerplate-markdown/src/content/markdown/not-a-link
/assemble-boilerplate-markdown/src/content/markdown/ordered-and-unordered-lists
/assemble-boilerplate-markdown/src/content/markdown/same-bullet
/assemble-boilerplate-markdown/src/content/markdown/strong-and-em-together
/assemble-boilerplate-markdown/src/content/wiki/data-context
/assemble-boilerplate-markdown/src/content/wiki/data-types
/assemble-boilerplate-markdown/src/content/wiki/data-yaml-front-matter
/assemble-boilerplate-markdown/src/content/wiki/data-yaml
/assemble-boilerplate-markdown/src/content/wiki/data
/assemble-boilerplate-markdown/src/content/wiki/options-assets
/assemble-boilerplate-markdown/src/content/wiki/options-collections
/assemble-boilerplate-markdown/src/content/wiki/options-data
/assemble-boilerplate-markdown/src/content/wiki/options-engine
/assemble-boilerplate-markdown/src/content/wiki/options-ext
/assemble-boilerplate-markdown/src/content/wiki/options-helpers
/assemble-boilerplate-markdown/src/content/wiki/options-layout
/assemble-boilerplate-markdown/src/content/wiki/options-layoutdir
/assemble-boilerplate-markdown/src/content/wiki/options-partials
/assemble-boilerplate-markdown/src/content/wiki/options
/assemble-boilerplate-markdown/src/content/wiki/templates-helpers
/assemble-boilerplate-markdown/src/content/wiki/templates-layouts
/assemble-boilerplate-markdown/src/content/wiki/templates-partials
## assemble/assemble-boilerplate-markdown ends';
my $regex = qr/(^## assemble\/assemble-boilerplate-markdown starts)([\s\S]*?)(^## assemble\/assemble-boilerplate-markdown ends)/mip;
my $subst = 'xxx';
my $result = $str =~ s/$regex/$subst/rg;
print "The result of the substitution is' $result\n";
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html