.q&non-portable (GHC QuasiQuotes)unstablemjm2002@gmail.com  L ghci> maybe [] tail $ [$rx|^([+-])?([0-9]+)\.([0-9]+)|] (show $ negate pi)  ["-","3","141592653589793"] Transform a string rep  of a regex to an ExpQ. The  resulting ExpQ, when spliced,  results in a function of type  String -> Maybe [String],  where the input is the String  to match on. The result is  Nothing on error, and Just  a list of results on success.  Note: I' m packing/ unpacking/...  the ByteString unnecessarily  for convenience in testing  out the first go at this.  This will be dealt with in  the future.  Transform a string (presumably)  containing a regex to a PatQ.  NOTE: Given a regex, a pattern ! is constructed which matches  a literal string containing  the verbatim regex. It does  this because I couldn't think ! of anything better for it to  do off the cuff. This needs  thought. $Regex compilation. Temporarily uses  hardcoded options extended and   multiline. Regex matching.  Adjust these to your tastes. An # interface to options seems to be # the next logical (and practical)  step.  Adjust these to your tastes. An # interface to options seems to be # the next logical (and practical)  step.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                    ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k lm ln o p q r s t u v w x y z { | } ~                                 l l l l l                                                                     ! " # $ % & ' ( ) * + , - . / 0   1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _  ` a b c d e f g h i j k l m n o p p q r s t u v w x y z { | } ~                regexqq-0.2Text.Regex.PCRE.QQrx regexToExpQ regexToPatQregexmatchpcreOpts pcreExecOptspackunpacktemplate-haskellLanguage.Haskell.TH.SyntaxreturnQbindQ sequenceQliftnewNamemkName mkNameG_v mkNameG_d mkNameG_tcmkNameLLanguage.Haskell.TH.LibcharLstringLintegerLintPrimL wordPrimL floatPrimL doublePrimL rationalLlitPvarPtupPconPtildePasPwildPrecPlistPsigPfieldPatclausevarEconElitEappEinfixEinfixAppsectionLsectionRlamEtupEcondEletEcaseEdoEcompEfromE fromThenEfromToE fromThenToElistEsigErecConErecUpdEfieldExpguardedBnormalBbindSletSnoBindSparSfunDvalDdataDnewtypeDtySynDclassD instanceDsigDcxtisStrict notStrictnormalCrecCinfixC strictType varStrictTypeforallCforallTvarTconTappTtupleTarrowTlistTforImpDcCallstdCallunsafesafe threadsafenormalGEpatGEinfixPfunDepLanguage.Haskell.TH.QuotequoteExpquotePat familyNoKindD dataInstD newtypeInstD tySynInstDtypeFamdataFamclassPequalPpragInlD pragSpecDinlineSpecNoPhaseinlineSpecPhase pragSpecInlD familyKindDplainTVkindedTVstarKarrowKsigTbangPExpMatchClauseQExpQDecQPatMatchQClauseQStmtQConQTypeQTypeDecVarStrictTypeQ StrictTypeQFieldExpFieldPatNamePatQ FieldPatQ FieldExpQFunDepPredPredQ TyVarBndrLanguage.Haskell.TH.Ppr showtextl where_clausepprCxtpprArrowArgKindsplit pprFunArgTypepprTyApp pprParendType pprStrictTypepprVarStrictTypeppr_activation ppr_tySyn ppr_newtypeppr_datappr_decpprPatpprLitpprBody pprMaybeExp pprFieldspprExp pprInfixExp pprFixityppr_sigpprintparensIfnoPrecopPrecappPrec nestDepth Precedenceppr_listpprPpr dataToPatQ dataToExpQdataToQa QuasiQuoter simpleMatchappsEalphagenpatrenamecombinestringE arithSeqElam1EglobaldynpatGnormalG fromThenToRfromToR fromThenRfromRInfoQCxtQBodyQGuardQRangeQ InlineSpecQ defaultFixity maxPrecedence tupleTypeName tupleDataName showName'showNamemkNameU nameModulenameBase occString mkOccName pkgString mkPkgName modString mkModName liftStringrunIOlocationreifyrecoverreportrunQqRunIO qLocationqReifyqRecoverqReportqNewNameQuasiLiftNameSNameQNameUNameLNameG NameFlavourVarNameDataName TcClsName NameSpaceUniqAloneAppliedInfixNameIsloc_end loc_start loc_module loc_package loc_filenameLocCharPosClassIClassOpITyConI PrimTyConIDataConIVarITyVarIInfoFixityInfixLInfixRInfixNFixityDirectionCharLStringLIntegerL RationalLIntPrimL WordPrimL FloatPrimL DoublePrimLLitLitPVarPTupPConPInfixPTildePBangPAsPWildPRecPListPSigPVarEConELitEAppEInfixELamETupECondELetECaseEDoECompE ArithSeqEListESigERecConERecUpdEGuardedBNormalBBodyNormalGPatGGuardBindSLetSNoBindSParSStmtFromR FromThenRFromToR FromThenToRRangeFunDValDDataDNewtypeDTySynDClassD InstanceDSigDForeignDPragmaDFamilyD DataInstD NewtypeInstD TySynInstDTypeFamDataFam FamFlavourImportFExportFForeignCCallStdCallCallconvUnsafeSafe ThreadsafeSafetyInlineP SpecialisePPragma InlineSpecCxtClassPEqualPIsStrict NotStrictStrictNormalCRecCInfixCForallCCon StrictType VarStrictTypeForallTVarTConTTupleTArrowTListTAppTSigTPlainTVKindedTVStarKArrowKKind$Language.Haskell.TH.Syntax.InternalsModNamePkgNameOccName