re = /^([^.]+)\_([^.]+)\_([^.]+)\_([^.]+)\_([^.]+)\.fastq$/m
str = 'A10_S65_L001_R1_001.fastq
A8_S49_L001_R2_001.fastq
B7_S42_L001_R1_001.fastq
C5_S27_L001_R2_001.fastq
F4_S22_L001_R1_001.fastq
G2_S7_L001_R2_001.fastq
H1_S165_L001_R1_001.fastq
A10_S65_L001_R2_001.fastq
A9_S57_L001_R1_001.fastq
B7_S42_L001_R2_001.fastq
C6_S35_L001_R1_001.fastq
F4_S22_L001_R2_001.fastq
G3_S15_L001_R1_001.fastq
H1_S165_L001_R2_001.fastq'
subst = '$1_$4.fastq'
result = str.gsub(re, subst)
# Print the result of the substitution
puts result
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 Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html