// $Id: RegexPattern.h 1376 2026-05-14 21:03:43Z ge $
// Copyright 2024 Gerald Weber
/// \file RegexPattern.h
/// \brief Centralizes all important regular expressions 
///
/// $Revision: 1376 $
/// \author Gerald Weber <gweberbh@gmail.com>
#ifndef GBC_REGEXPATTERN_H
#define GBC_REGEXPATTERN_H "$Id: RegexPattern.h 1376 2026-05-14 21:03:43Z ge $"

//Nucleotide.h
#define NUCLEOTIDE_STRING_INTERPRETATION_PATTERN "([a-z]?)([a-zA-Z_])"
//BasePair 
#define BASEPAIR_STRING_INTERPRETATION_PATTERN "([a-z]?[a-zA-Z_])([a-z]?[a-zA-Z_])\\^?(.*)"
//BasePairNeighbours
#define BASEPAIRNEIGHBOURS_BPN2BP1_PATTERN "(.*)_(.*)"
#define BASEPAIRNEIGHBOURS_BPN2BP2_PATTERN "(.*)_(.*)"
//Duplex 
#define DUPLEX_SET_DUPLEX_PATTERN "([^/]+)/(.+)"
//NucleotideSequence 
#define NUCLEOTIDESEQUENCE_ASSIGN_PATTERN "([35]?)([a-z_]?)\\((.+)\\)"
#define NUCLEOTIDESEQUENCE_SPLIT_PATTERN "(\\<[a-z][A-Z_]\\>|[a-zA-Z_])"
#define NUCLEOTIDESEQUENCE_SUGAR_PATTERN "([a-z_])([A-Z_])"
//StrandPair.h 
#define STRANDPAIR_ASSIGN_PATTERN "(.)([<>])(.)"
//SequenceDataset.h
//Example(1) +Ao^* AA_/oo_,_AA/_oo,GA_/lo_,_AC/_om,_AG/_ol,_AU/_ok
//matches the base pair Example(1): Ao^*
#define SEQUENCEDATASET_BP_MATCH_PATTERN "^\\+([^ ]+?)\\s"
#define SEQUENCEDATASET_EQUIV_MATCH_PATTERN "^\\+[^ ]+?\\s+(.*)$"

#endif
