#!perl -w use strict; while( ) { chomp; my ( $data ) = m/TAG:\"([^\"]+)\"/ ? $1 : m/TAG:([^\"\s]+)/ ? $1 : 'not_def'; print "$_ => $data\n"; } __DATA__ TAG:"test of data" TAG:test_of_data TAG:test of data TAG: test TAG:test of data" TAG:"test of data TAG:test-2_3.we