use strict;
my $str = '-> addField(\'id\' , [\'type\' => new IntType , \'description\' => __(\'id\')])
-> addField(\'type_mandaat\' , [\'type\' => new StringType , \'description\' => __(\'type mandaat\')])
-> addField(\'bedrag\' , [\'type\' => new BedragType , \'description\' => __(\'bedrag\')])
-> addField(\'datum_expertise_plaatsgevonden\' , [\'type\' => new DateType , \'description\' => __(\'datum van expertise\')])
-> addField(\'datum_ontvangst_rapport\' , [\'type\' => new DateType , \'description\' => __(\'datum van ontvangst rapport\')])
-> addField(\'omschrijving\' , [\'type\' => new StringType , \'description\' => __(\'omschrijving\')])
-> addField(\'wrakwaarde\' , [\'type\' => new BedragType , \'description\' => __(\'wrakwaarde\')])
-> addField(\'forfait\' , [\'type\' => new BooleanType , \'description\' => __(\'forfait\')])
-> addField(\'total_loss\' , [\'type\' => new BooleanType , \'description\' => __(\'total loss\')])
-> addField(\'kosten_expertise\' , [\'type\' => new FloatType , \'description\' => __(\'kosten expertise\')])
-> addField(\'experts\' , [\'type\' => new ListType(new ExpertInput), \'description\' => __(\'experts\')]);';
my $regex = qr/.*-> addField\(('\S*').*?, \['type' => new (\S*?)Type.*/p;
my $subst = '\\1 => [\'type\' => \'\\2\'],';
my $result = $str =~ s/$regex/$subst/rg;
print "The result of the substitution is' $result\n";
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html