my $xmlish = <<'END'; Chapter 1 Chapter 2 Chapter 3 END my $prev = '/'; $xmlish =~ s{(?=<\s*(/?)\s*book-part\b)}{ ( ! $prev && ! $1 ? '' : '', $prev= $1, )[0] }ge; print $xmlish; __END__ Chapter 1 Chapter 2 Chapter 3