raise SamError, "Bad cigar with internal H: #{cigar}"
end
+ # Check cigar soft clipping only at ends or H.
+ if cigar.gsub(/^[0-9]+H|[0-9]+H$/, "").gsub(/^[0-9]+S|[0-9]+S$/, "").match('S')
+ raise SamError, "Bad cigar with internal S: #{cigar}"
+ end
+
# Check cigar length matches sequence length.
unless cigar == '*' or seq == '*'
cigar_len = 0