ls -l ... str split using /\s+(?![Prop|Dashboard|\(])/ ## changing to /\s+(?!(Prop|Dashboard|\())/ fucking fixed it!!! ... array 0 => array 0 => string '-rw-r--r--' (length=10) 1 => string '1' (length=1) 2 => string '3000' (length=4) 3 => string '3000' (length=4) 4 => string '588346' (length=6) 5 => string 'Jan' (length=3) 6 => string '21' (length=2) 7 => string '12:09 hourly_pv_trend (1).xls' (length=29) 1 => array 0 => string '-rw-r--r--' (length=10) 1 => string '1' (length=1) 2 => string '3000' (length=4) 3 => string '3000' (length=4) 4 => string '588346' (length=6) 5 => string 'Jan' (length=3) 6 => string '21' (length=2) 7 => string '21:09 hourly_pv_trend (10).xls' (length=30) 2 => array 0 => string '-rw-r--r--' (length=10) 1 => string '1' (length=1) 2 => string '3000' (length=4) 3 => string '3000' (length=4) 4 => string '588346' (length=6) 5 => string 'Jan' (length=3) 6 => string '25' (length=2) 7 => string '04:20 hourly_pv_trend (100).xls' (length=31) 3 => array 0 => string '-rw-r--r--' (length=10) 1 => string '1' (length=1) 2 => string '3000' (length=4) 3 => string '3000' (length=4) 4 => string '588346' (length=6) 5 => string 'Jan' (length=3) 6 => string '25' (length=2) 7 => string '05:09 hourly_pv_trend (101).xls' (length=31) ...