Here's a simple version that does what you wanted. It's not very robust however, so you may need to tweak it.
#!/usr/bin/env perl
use 5.010;
use strict; use warnings;
my $in_toc = 1; # we start off in the Table of Contents
my $in_ch2 = 0;
while (<>) {
$in_toc = 0 if /^\s*=+\s*$/;
next if $in_toc;
$in_ch2 = 0 if /^Chapter 3/;
say if $in_ch2;
$in_ch2 = 1 if /^Chapter 2/;
}
You'd run it like so: programname textfile
The above doesn't use your "rules", but if you wanted to, you could use a hash to keep track of the chapters from the table of contents and look for those exact chapter titles in the text and/or use length to check the length of the string.