denn z.b hier müßte der String At vero eos et auch die Zahl 10 enthalten, weil sie zum String gehört.
Das macht es sogar einfacher:
<?php
$pattern = '/^.*AB[A-Z0-9][0-9]+ (.*) ([0-9]+) (.*) ([0-9.,]*)$/';
$rows = file( '/tmp/data.txt' );
foreach ( $rows as $row ) {
$row = trim( $row );
preg_match( $pattern, $row, $arr );
if ( $arr ) {
print_r( $arr );
} else {
echo "Nicht passend: $row" . PHP_EOL;
}
}