if ($string =~ / ^\s* # am anfang optionaler whitespace (\d+ # eine oder mehrere ziffern (?:\.\d+)* # punkt und ziffern, 0 oder mehrmals vorkommend ) \s+ (.+?) # der gesammte rest \s+ (\d+) # mehrere ziffern \s*$ # optional: whitespace am ende /x) { my ($chapter, $headline, $page) = ($1, $2, $3); # ... } # if