#!/usr/bin/perl use strict; use warnings; use Regexp::Common; $_ = <<'--'; [xyz]level 1.1[/xyz] [xyz]level 1.2[/xyz] [xyz]level 1.1 [xyz]level 2.1[/xyz] rest of 1.1 [/xyz] [xyz] error [xyz] level 1.1 [xyz] level 2.1 [/xyz] [/xyz] [xyz] level 1.2 [/xyz] -- 1 while s!$RE{balanced}{-begin => "[xyz]"}{-end => "[/xyz]"}{-keep}! "
| " . substr ($1, 5, -6) . " |
| level 1.1 |
| level 1.2 |
level 1.1
|
level 1.1
|
| level 1.2 |