text:
namespace Email.Tests

open Expecto
open FsRegEx

module ModerateEmail =

    [<Literal>]
    /// C# regex from http://emailregex.com/
//    let ModerateEmailRegex = """[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"""
    let ModerateEmailRegex = """^(?(")(".+?(?<!\\)"@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9][\-a-z0-9]{0,22}[a-z0-9]))$"""
    let moderateEmailRegex = new FsRegEx(ModerateEmailRegex)

    [<Tests>]
    let testModerateEmail =
        testList "ModerateEmail" [
            RFC822.test1 moderateEmailRegex.IsMatch
            RFC822.test2 moderateEmailRegex.IsMatch
            RFC822.test3 moderateEmailRegex.IsMatch
            RFC822.test4 moderateEmailRegex.IsMatch
            RFC822.test5 moderateEmailRegex.IsMatch
            RFC822.test6 moderateEmailRegex.IsMatch
            RFC822.test7 moderateEmailRegex.IsMatch
            RFC822.test8 moderateEmailRegex.IsMatch
            RFC822.test9 moderateEmailRegex.IsMatch
            RFC822.test10 moderateEmailRegex.IsMatch
            RFC822.test11 moderateEmailRegex.IsMatch
            RFC822.test12 moderateEmailRegex.IsMatch
            RFC822.test13 moderateEmailRegex.IsMatch
            RFC822.test14 moderateEmailRegex.IsMatch
            RFC822.test15 moderateEmailRegex.IsMatch
            RFC822.test16 moderateEmailRegex.IsMatch
            RFC822.test17 moderateEmailRegex.IsMatch
            RFC822.test18 moderateEmailRegex.IsMatch
            RFC822.test19 moderateEmailRegex.IsMatch
            RFC822.test20 moderateEmailRegex.IsMatch
            RFC822.test21 moderateEmailRegex.IsMatch
            RFC822.test22 moderateEmailRegex.IsMatch
            RFC822.test23 moderateEmailRegex.IsMatch
            RFC822.test24 moderateEmailRegex.IsMatch
            RFC822.test25 moderateEmailRegex.IsMatch
            RFC822.test26 moderateEmailRegex.IsMatch
            RFC822.test27 moderateEmailRegex.IsMatch
            RFC822.test28 moderateEmailRegex.IsMatch
            RFC822.test29 moderateEmailRegex.IsMatch
            RFC822.test30 moderateEmailRegex.IsMatch
            RFC822.test31 moderateEmailRegex.IsMatch
            RFC822.test32 moderateEmailRegex.IsMatch
            RFC822.test33 moderateEmailRegex.IsMatch
            RFC822.test34 moderateEmailRegex.IsMatch
            RFC822.test35 moderateEmailRegex.IsMatch
            RFC822.test36 moderateEmailRegex.IsMatch
            RFC822.test37 moderateEmailRegex.IsMatch
            RFC822.test38 moderateEmailRegex.IsMatch
            RFC822.test39 moderateEmailRegex.IsMatch
            RFC822.test40 moderateEmailRegex.IsMatch
            RFC822.test41 moderateEmailRegex.IsMatch
            RFC822.test42 moderateEmailRegex.IsMatch
            RFC822.test43 moderateEmailRegex.IsMatch
            RFC822.test44 moderateEmailRegex.IsMatch
            RFC822.test45 moderateEmailRegex.IsMatch
            RFC822.test46 moderateEmailRegex.IsMatch
            RFC822.test47 moderateEmailRegex.IsMatch
            RFC822.test48 moderateEmailRegex.IsMatch
            RFC822.test49 moderateEmailRegex.IsMatch
            RFC822.test50 moderateEmailRegex.IsMatch
            RFC822.test51 moderateEmailRegex.IsMatch
            RFC822.test52 moderateEmailRegex.IsMatch
            RFC822.test53 moderateEmailRegex.IsMatch
            RFC822.test54 moderateEmailRegex.IsMatch
            RFC822.test55 moderateEmailRegex.IsMatch
            RFC822.test56 moderateEmailRegex.IsMatch
            RFC822.test57 moderateEmailRegex.IsMatch
            RFC822.test58 moderateEmailRegex.IsMatch
            RFC822.test59 moderateEmailRegex.IsMatch
            RFC822.test60 moderateEmailRegex.IsMatch
            RFC822.test61 moderateEmailRegex.IsMatch
            RFC822.test62 moderateEmailRegex.IsMatch
            RFC822.test63 moderateEmailRegex.IsMatch
            RFC822.test64 moderateEmailRegex.IsMatch
            RFC822.test65 moderateEmailRegex.IsMatch
            RFC822.test66 moderateEmailRegex.IsMatch
            RFC822.test67 moderateEmailRegex.IsMatch
            RFC822.test68 moderateEmailRegex.IsMatch
            RFC822.test69 moderateEmailRegex.IsMatch
            RFC822.test70 moderateEmailRegex.IsMatch
            RFC822.test71 moderateEmailRegex.IsMatch
            RFC822.test72 moderateEmailRegex.IsMatch
            RFC822.test73 moderateEmailRegex.IsMatch
            RFC822.test74 moderateEmailRegex.IsMatch
            RFC822.test75 moderateEmailRegex.IsMatch
            RFC822.test76 moderateEmailRegex.IsMatch
            RFC822.test77 moderateEmailRegex.IsMatch
            RFC822.test78 moderateEmailRegex.IsMatch
            RFC822.test79 moderateEmailRegex.IsMatch
            RFC822.test80 moderateEmailRegex.IsMatch
            RFC822.test81 moderateEmailRegex.IsMatch
            RFC822.test82 moderateEmailRegex.IsMatch
            RFC822.test83 moderateEmailRegex.IsMatch
            RFC822.test84 moderateEmailRegex.IsMatch
            RFC822.test85 moderateEmailRegex.IsMatch
            RFC822.test86 moderateEmailRegex.IsMatch
            RFC822.test87 moderateEmailRegex.IsMatch
            RFC822.test88 moderateEmailRegex.IsMatch
            RFC822.test89 moderateEmailRegex.IsMatch
            RFC822.test90 moderateEmailRegex.IsMatch
            RFC822.test91 moderateEmailRegex.IsMatch
            RFC822.test92 moderateEmailRegex.IsMatch
            RFC822.test93 moderateEmailRegex.IsMatch
            RFC822.test94 moderateEmailRegex.IsMatch
            RFC822.test95 moderateEmailRegex.IsMatch
            RFC822.test96 moderateEmailRegex.IsMatch
            RFC822.test97 moderateEmailRegex.IsMatch
            RFC822.test98 moderateEmailRegex.IsMatch
            RFC822.test99 moderateEmailRegex.IsMatch
            RFC822.test100 moderateEmailRegex.IsMatch
            RFC822.test101 moderateEmailRegex.IsMatch
            RFC822.test102 moderateEmailRegex.IsMatch
            RFC822.test103 moderateEmailRegex.IsMatch
            RFC822.test104 moderateEmailRegex.IsMatch
            RFC822.test105 moderateEmailRegex.IsMatch
            RFC822.test106 moderateEmailRegex.IsMatch
            RFC822.test107 moderateEmailRegex.IsMatch
            RFC822.test108 moderateEmailRegex.IsMatch
            RFC822.test109 moderateEmailRegex.IsMatch
            RFC822.test110 moderateEmailRegex.IsMatch
            RFC822.test111 moderateEmailRegex.IsMatch
            RFC822.test112 moderateEmailRegex.IsMatch
            RFC822.test113 moderateEmailRegex.IsMatch
            RFC822.test114 moderateEmailRegex.IsMatch
            RFC822.test115 moderateEmailRegex.IsMatch
            RFC822.test116 moderateEmailRegex.IsMatch
            RFC822.test117 moderateEmailRegex.IsMatch
            RFC822.test118 moderateEmailRegex.IsMatch
            RFC822.test119 moderateEmailRegex.IsMatch
            RFC822.test120 moderateEmailRegex.IsMatch
            RFC822.test121 moderateEmailRegex.IsMatch
            RFC822.test122 moderateEmailRegex.IsMatch
            RFC822.test123 moderateEmailRegex.IsMatch
            RFC822.test124 moderateEmailRegex.IsMatch
            RFC822.test125 moderateEmailRegex.IsMatch
            RFC822.test126 moderateEmailRegex.IsMatch
            RFC822.test127 moderateEmailRegex.IsMatch
            RFC822.test128 moderateEmailRegex.IsMatch
            RFC822.test129 moderateEmailRegex.IsMatch
            RFC822.test130 moderateEmailRegex.IsMatch
            RFC822.test131 moderateEmailRegex.IsMatch
            RFC822.test132 moderateEmailRegex.IsMatch
            RFC822.test133 moderateEmailRegex.IsMatch
            RFC822.test134 moderateEmailRegex.IsMatch
            RFC822.test135 moderateEmailRegex.IsMatch
            RFC822.test136 moderateEmailRegex.IsMatch
            RFC822.test137 moderateEmailRegex.IsMatch
            RFC822.test138 moderateEmailRegex.IsMatch
            RFC822.test139 moderateEmailRegex.IsMatch
            RFC822.test140 moderateEmailRegex.IsMatch
            RFC822.test141 moderateEmailRegex.IsMatch
            RFC822.test142 moderateEmailRegex.IsMatch
            RFC822.test143 moderateEmailRegex.IsMatch
            RFC822.test144 moderateEmailRegex.IsMatch
            RFC822.test145 moderateEmailRegex.IsMatch
            RFC822.test146 moderateEmailRegex.IsMatch
            RFC822.test147 moderateEmailRegex.IsMatch
            RFC822.test148 moderateEmailRegex.IsMatch
            RFC822.test149 moderateEmailRegex.IsMatch
            RFC822.test150 moderateEmailRegex.IsMatch
            RFC822.test151 moderateEmailRegex.IsMatch
            RFC822.test152 moderateEmailRegex.IsMatch
            RFC822.test153 moderateEmailRegex.IsMatch
            RFC822.test154 moderateEmailRegex.IsMatch
            RFC822.test155 moderateEmailRegex.IsMatch
            RFC822.test156 moderateEmailRegex.IsMatch
            RFC822.test157 moderateEmailRegex.IsMatch
            RFC822.test158 moderateEmailRegex.IsMatch
            RFC822.test159 moderateEmailRegex.IsMatch
            RFC822.test160 moderateEmailRegex.IsMatch
            RFC822.test161 moderateEmailRegex.IsMatch
            RFC822.test162 moderateEmailRegex.IsMatch
            RFC822.test163 moderateEmailRegex.IsMatch
            RFC822.test164 moderateEmailRegex.IsMatch
            RFC822.test165 moderateEmailRegex.IsMatch
            RFC822.test166 moderateEmailRegex.IsMatch
            RFC822.test167 moderateEmailRegex.IsMatch
            RFC822.test168 moderateEmailRegex.IsMatch
            RFC822.test169 moderateEmailRegex.IsMatch
            RFC822.test170 moderateEmailRegex.IsMatch
            RFC822.test171 moderateEmailRegex.IsMatch
            RFC822.test172 moderateEmailRegex.IsMatch
            RFC822.test173 moderateEmailRegex.IsMatch
            RFC822.test174 moderateEmailRegex.IsMatch
            RFC822.test175 moderateEmailRegex.IsMatch
            RFC822.test176 moderateEmailRegex.IsMatch
            RFC822.test177 moderateEmailRegex.IsMatch
            RFC822.test178 moderateEmailRegex.IsMatch
            RFC822.test179 moderateEmailRegex.IsMatch
            RFC822.test180 moderateEmailRegex.IsMatch
            RFC822.test181 moderateEmailRegex.IsMatch
            RFC822.test182 moderateEmailRegex.IsMatch
            RFC822.test183 moderateEmailRegex.IsMatch
            RFC822.test184 moderateEmailRegex.IsMatch
            RFC822.test185 moderateEmailRegex.IsMatch
            RFC822.test186 moderateEmailRegex.IsMatch
            RFC822.test187 moderateEmailRegex.IsMatch
            RFC822.test188 moderateEmailRegex.IsMatch
            RFC822.test189 moderateEmailRegex.IsMatch
            RFC822.test190 moderateEmailRegex.IsMatch
            RFC822.test191 moderateEmailRegex.IsMatch
            RFC822.test192 moderateEmailRegex.IsMatch
            RFC822.test193 moderateEmailRegex.IsMatch
            RFC822.test194 moderateEmailRegex.IsMatch
            RFC822.test195 moderateEmailRegex.IsMatch
            RFC822.test196 moderateEmailRegex.IsMatch
            RFC822.test197 moderateEmailRegex.IsMatch
            RFC822.test198 moderateEmailRegex.IsMatch
            RFC822.test199 moderateEmailRegex.IsMatch
            RFC822.test200 moderateEmailRegex.IsMatch
            RFC822.test201 moderateEmailRegex.IsMatch
            RFC822.test202 moderateEmailRegex.IsMatch
            RFC822.test203 moderateEmailRegex.IsMatch
            RFC822.test204 moderateEmailRegex.IsMatch
            RFC822.test205 moderateEmailRegex.IsMatch
            RFC822.test206 moderateEmailRegex.IsMatch
            RFC822.test207 moderateEmailRegex.IsMatch
            RFC822.test208 moderateEmailRegex.IsMatch
            RFC822.test209 moderateEmailRegex.IsMatch
            RFC822.test210 moderateEmailRegex.IsMatch
            RFC822.test211 moderateEmailRegex.IsMatch
            RFC822.test212 moderateEmailRegex.IsMatch
            RFC822.test213 moderateEmailRegex.IsMatch
            RFC822.test214 moderateEmailRegex.IsMatch
            RFC822.test215 moderateEmailRegex.IsMatch
            RFC822.test216 moderateEmailRegex.IsMatch
            RFC822.test217 moderateEmailRegex.IsMatch
            RFC822.test218 moderateEmailRegex.IsMatch
            RFC822.test219 moderateEmailRegex.IsMatch
            RFC822.test220 moderateEmailRegex.IsMatch
            RFC822.test221 moderateEmailRegex.IsMatch
            RFC822.test222 moderateEmailRegex.IsMatch
            RFC822.test223 moderateEmailRegex.IsMatch
            RFC822.test224 moderateEmailRegex.IsMatch
            RFC822.test225 moderateEmailRegex.IsMatch
            RFC822.test226 moderateEmailRegex.IsMatch
            RFC822.test227 moderateEmailRegex.IsMatch
            RFC822.test228 moderateEmailRegex.IsMatch
            RFC822.test229 moderateEmailRegex.IsMatch
            RFC822.test230 moderateEmailRegex.IsMatch
            RFC822.test231 moderateEmailRegex.IsMatch
            RFC822.test232 moderateEmailRegex.IsMatch
            RFC822.test233 moderateEmailRegex.IsMatch
            RFC822.test234 moderateEmailRegex.IsMatch
            RFC822.test235 moderateEmailRegex.IsMatch
            RFC822.test236 moderateEmailRegex.IsMatch
            RFC822.test237 moderateEmailRegex.IsMatch
            RFC822.test238 moderateEmailRegex.IsMatch
            RFC822.test239 moderateEmailRegex.IsMatch
            RFC822.test240 moderateEmailRegex.IsMatch
            RFC822.test241 moderateEmailRegex.IsMatch
            RFC822.test242 moderateEmailRegex.IsMatch
            RFC822.test243 moderateEmailRegex.IsMatch
            RFC822.test244 moderateEmailRegex.IsMatch
            RFC822.test245 moderateEmailRegex.IsMatch
            RFC822.test246 moderateEmailRegex.IsMatch
            RFC822.test247 moderateEmailRegex.IsMatch
            RFC822.test248 moderateEmailRegex.IsMatch
            RFC822.test249 moderateEmailRegex.IsMatch
            RFC822.test250 moderateEmailRegex.IsMatch
            RFC822.test251 moderateEmailRegex.IsMatch
            RFC822.test252 moderateEmailRegex.IsMatch
            RFC822.test253 moderateEmailRegex.IsMatch
            RFC822.test254 moderateEmailRegex.IsMatch
            RFC822.test255 moderateEmailRegex.IsMatch
            RFC822.test256 moderateEmailRegex.IsMatch
            RFC822.test257 moderateEmailRegex.IsMatch
            RFC822.test258 moderateEmailRegex.IsMatch
            RFC822.test259 moderateEmailRegex.IsMatch
            RFC822.test260 moderateEmailRegex.IsMatch
            RFC822.test261 moderateEmailRegex.IsMatch
            RFC822.test262 moderateEmailRegex.IsMatch
            RFC822.test263 moderateEmailRegex.IsMatch
            RFC822.test264 moderateEmailRegex.IsMatch
            RFC822.test265 moderateEmailRegex.IsMatch
            RFC822.test266 moderateEmailRegex.IsMatch
            RFC822.test267 moderateEmailRegex.IsMatch
            RFC822.test268 moderateEmailRegex.IsMatch
            RFC822.test269 moderateEmailRegex.IsMatch
            RFC822.test270 moderateEmailRegex.IsMatch
            RFC822.test271 moderateEmailRegex.IsMatch
            RFC822.test272 moderateEmailRegex.IsMatch
            RFC822.test273 moderateEmailRegex.IsMatch
            RFC822.test274 moderateEmailRegex.IsMatch
            RFC822.test275 moderateEmailRegex.IsMatch
            RFC822.test276 moderateEmailRegex.IsMatch
            RFC822.test277 moderateEmailRegex.IsMatch
            RFC822.test278 moderateEmailRegex.IsMatch
            RFC822.test279 moderateEmailRegex.IsMatch
            RFC822.test280 moderateEmailRegex.IsMatch
            ]


text:
FSharp.Core

Expecto
Expecto.BenchmarkDotNet
Expecto.FsCheck
Expecto.VisualStudio.TestAdapter

repo_name: jackfoxy/FsRegEx

repo_language: F#

mime_type: text/plain


text:
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net47</TargetFramework>
    <RootNamespace>Email.Tests</RootNamespace>
    <AssemblyName>Email.Tests</AssemblyName>
    <Name>Email.Tests</Name>
    <OutputType>Exe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="AssemblyInfo.fs" />
    <Compile Include="RFC822.fs" />
    <Compile Include="SimpleEmail.fs" />
    <Compile Include="ModerateEmail.fs" />
    <Compile Include="ComplexEmail.fs" />
    <Compile Include="OneAtSign.fs" />
    <Compile Include="Ultimate.fs" />
    <Compile Include="RunTests.fs" />
    <None Include="paket.references" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\src\FsRegEx\FsRegEx.fsproj"></ProjectReference>
  </ItemGroup>
  <Import Project="..\..\.paket\Paket.Restore.targets" />
</Project>


text:
namespace Email.Tests

open Expecto
open FsRegEx

module Ultimate =

    [<Literal>]
    /// http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html
    let UltimateRegex = """(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*))*)?;\s*)"""
    let ultimateRegex = new FsRegEx(UltimateRegex)

    [<Tests>]
    let testUltimate =
        testList "Ultimate" [
            RFC822.test1 ultimateRegex.IsMatch
            RFC822.test2 ultimateRegex.IsMatch
            RFC822.test3 ultimateRegex.IsMatch
            RFC822.test4 ultimateRegex.IsMatch
            RFC822.test5 ultimateRegex.IsMatch
            RFC822.test6 ultimateRegex.IsMatch
            RFC822.test7 ultimateRegex.IsMatch
            RFC822.test8 ultimateRegex.IsMatch
            RFC822.test9 ultimateRegex.IsMatch
            RFC822.test10 ultimateRegex.IsMatch
            RFC822.test11 ultimateRegex.IsMatch
            RFC822.test12 ultimateRegex.IsMatch
            RFC822.test13 ultimateRegex.IsMatch
            RFC822.test14 ultimateRegex.IsMatch
            RFC822.test15 ultimateRegex.IsMatch
            RFC822.test16 ultimateRegex.IsMatch
            RFC822.test17 ultimateRegex.IsMatch
            RFC822.test18 ultimateRegex.IsMatch
            RFC822.test19 ultimateRegex.IsMatch
            RFC822.test20 ultimateRegex.IsMatch
            RFC822.test21 ultimateRegex.IsMatch
            RFC822.test22 ultimateRegex.IsMatch
            RFC822.test23 ultimateRegex.IsMatch
            RFC822.test24 ultimateRegex.IsMatch
            RFC822.test25 ultimateRegex.IsMatch
            RFC822.test26 ultimateRegex.IsMatch
            RFC822.test27 ultimateRegex.IsMatch
            RFC822.test28 ultimateRegex.IsMatch
            RFC822.test29 ultimateRegex.IsMatch
            RFC822.test30 ultimateRegex.IsMatch
            RFC822.test31 ultimateRegex.IsMatch
            RFC822.test32 ultimateRegex.IsMatch
            RFC822.test33 ultimateRegex.IsMatch
            RFC822.test34 ultimateRegex.IsMatch
            RFC822.test35 ultimateRegex.IsMatch
            RFC822.test36 ultimateRegex.IsMatch
            RFC822.test37 ultimateRegex.IsMatch
            RFC822.test38 ultimateRegex.IsMatch
            RFC822.test39 ultimateRegex.IsMatch
            RFC822.test40 ultimateRegex.IsMatch
            RFC822.test41 ultimateRegex.IsMatch
            RFC822.test42 ultimateRegex.IsMatch
            RFC822.test43 ultimateRegex.IsMatch
            RFC822.test44 ultimateRegex.IsMatch
            RFC822.test45 ultimateRegex.IsMatch
            RFC822.test46 ultimateRegex.IsMatch
            RFC822.test47 ultimateRegex.IsMatch
            RFC822.test48 ultimateRegex.IsMatch
            RFC822.test49 ultimateRegex.IsMatch
            RFC822.test50 ultimateRegex.IsMatch
            RFC822.test51 ultimateRegex.IsMatch
            RFC822.test52 ultimateRegex.IsMatch
            RFC822.test53 ultimateRegex.IsMatch
            RFC822.test54 ultimateRegex.IsMatch
            RFC822.test55 ultimateRegex.IsMatch
            RFC822.test56 ultimateRegex.IsMatch
            RFC822.test57 ultimateRegex.IsMatch
            RFC822.test58 ultimateRegex.IsMatch
            RFC822.test59 ultimateRegex.IsMatch
            RFC822.test60 ultimateRegex.IsMatch
            RFC822.test61 ultimateRegex.IsMatch
            RFC822.test62 ultimateRegex.IsMatch
            RFC822.test63 ultimateRegex.IsMatch
            RFC822.test64 ultimateRegex.IsMatch
            RFC822.test65 ultimateRegex.IsMatch
            RFC822.test66 ultimateRegex.IsMatch
            RFC822.test67 ultimateRegex.IsMatch
            RFC822.test68 ultimateRegex.IsMatch
            RFC822.test69 ultimateRegex.IsMatch
            RFC822.test70 ultimateRegex.IsMatch
            RFC822.test71 ultimateRegex.IsMatch
            RFC822.test72 ultimateRegex.IsMatch
            RFC822.test73 ultimateRegex.IsMatch
            RFC822.test74 ultimateRegex.IsMatch
            RFC822.test75 ultimateRegex.IsMatch
            RFC822.test76 ultimateRegex.IsMatch
            RFC822.test77 ultimateRegex.IsMatch
            RFC822.test78 ultimateRegex.IsMatch
            RFC822.test79 ultimateRegex.IsMatch
            RFC822.test80 ultimateRegex.IsMatch
            RFC822.test81 ultimateRegex.IsMatch
            RFC822.test82 ultimateRegex.IsMatch
            RFC822.test83 ultimateRegex.IsMatch
            RFC822.test84 ultimateRegex.IsMatch
            RFC822.test85 ultimateRegex.IsMatch
            RFC822.test86 ultimateRegex.IsMatch
            RFC822.test87 ultimateRegex.IsMatch
            RFC822.test88 ultimateRegex.IsMatch
            RFC822.test89 ultimateRegex.IsMatch
            RFC822.test90 ultimateRegex.IsMatch
            RFC822.test91 ultimateRegex.IsMatch
            RFC822.test92 ultimateRegex.IsMatch
            RFC822.test93 ultimateRegex.IsMatch
            RFC822.test94 ultimateRegex.IsMatch
            RFC822.test95 ultimateRegex.IsMatch
            RFC822.test96 ultimateRegex.IsMatch
            RFC822.test97 ultimateRegex.IsMatch
            RFC822.test98 ultimateRegex.IsMatch
            RFC822.test99 ultimateRegex.IsMatch
            RFC822.test100 ultimateRegex.IsMatch
            RFC822.test101 ultimateRegex.IsMatch
            RFC822.test102 ultimateRegex.IsMatch
            RFC822.test103 ultimateRegex.IsMatch
            RFC822.test104 ultimateRegex.IsMatch
            RFC822.test105 ultimateRegex.IsMatch
            RFC822.test106 ultimateRegex.IsMatch
            RFC822.test107 ultimateRegex.IsMatch
            RFC822.test108 ultimateRegex.IsMatch
            RFC822.test109 ultimateRegex.IsMatch
            RFC822.test110 ultimateRegex.IsMatch
            RFC822.test111 ultimateRegex.IsMatch
            RFC822.test112 ultimateRegex.IsMatch
            RFC822.test113 ultimateRegex.IsMatch
            RFC822.test114 ultimateRegex.IsMatch
            RFC822.test115 ultimateRegex.IsMatch
            RFC822.test116 ultimateRegex.IsMatch
            RFC822.test117 ultimateRegex.IsMatch
            RFC822.test118 ultimateRegex.IsMatch
            RFC822.test119 ultimateRegex.IsMatch
            RFC822.test120 ultimateRegex.IsMatch
            RFC822.test121 ultimateRegex.IsMatch
            RFC822.test122 ultimateRegex.IsMatch
            RFC822.test123 ultimateRegex.IsMatch
            RFC822.test124 ultimateRegex.IsMatch
            RFC822.test125 ultimateRegex.IsMatch
            RFC822.test126 ultimateRegex.IsMatch
            RFC822.test127 ultimateRegex.IsMatch
            RFC822.test128 ultimateRegex.IsMatch
            RFC822.test129 ultimateRegex.IsMatch
            RFC822.test130 ultimateRegex.IsMatch
            RFC822.test131 ultimateRegex.IsMatch
            RFC822.test132 ultimateRegex.IsMatch
            RFC822.test133 ultimateRegex.IsMatch
            RFC822.test134 ultimateRegex.IsMatch
            RFC822.test135 ultimateRegex.IsMatch
            RFC822.test136 ultimateRegex.IsMatch
            RFC822.test137 ultimateRegex.IsMatch
            RFC822.test138 ultimateRegex.IsMatch
            RFC822.test139 ultimateRegex.IsMatch
            RFC822.test140 ultimateRegex.IsMatch
            RFC822.test141 ultimateRegex.IsMatch
            RFC822.test142 ultimateRegex.IsMatch
            RFC822.test143 ultimateRegex.IsMatch
            RFC822.test144 ultimateRegex.IsMatch
            RFC822.test145 ultimateRegex.IsMatch
            RFC822.test146 ultimateRegex.IsMatch
            RFC822.test147 ultimateRegex.IsMatch
            RFC822.test148 ultimateRegex.IsMatch
            RFC822.test149 ultimateRegex.IsMatch
            RFC822.test150 ultimateRegex.IsMatch
            RFC822.test151 ultimateRegex.IsMatch
            RFC822.test152 ultimateRegex.IsMatch
            RFC822.test153 ultimateRegex.IsMatch
            RFC822.test154 ultimateRegex.IsMatch
            RFC822.test155 ultimateRegex.IsMatch
            RFC822.test156 ultimateRegex.IsMatch
            RFC822.test157 ultimateRegex.IsMatch
            RFC822.test158 ultimateRegex.IsMatch
            RFC822.test159 ultimateRegex.IsMatch
            RFC822.test160 ultimateRegex.IsMatch
            RFC822.test161 ultimateRegex.IsMatch
            RFC822.test162 ultimateRegex.IsMatch
            RFC822.test163 ultimateRegex.IsMatch
            RFC822.test164 ultimateRegex.IsMatch
            RFC822.test165 ultimateRegex.IsMatch
            RFC822.test166 ultimateRegex.IsMatch
            RFC822.test167 ultimateRegex.IsMatch
            RFC822.test168 ultimateRegex.IsMatch
            RFC822.test169 ultimateRegex.IsMatch
            RFC822.test170 ultimateRegex.IsMatch
            RFC822.test171 ultimateRegex.IsMatch
            RFC822.test172 ultimateRegex.IsMatch
            RFC822.test173 ultimateRegex.IsMatch
            RFC822.test174 ultimateRegex.IsMatch
            RFC822.test175 ultimateRegex.IsMatch
            RFC822.test176 ultimateRegex.IsMatch
            RFC822.test177 ultimateRegex.IsMatch
            RFC822.test178 ultimateRegex.IsMatch
            RFC822.test179 ultimateRegex.IsMatch
            RFC822.test180 ultimateRegex.IsMatch
            RFC822.test181 ultimateRegex.IsMatch
            RFC822.test182 ultimateRegex.IsMatch
            RFC822.test183 ultimateRegex.IsMatch
            RFC822.test184 ultimateRegex.IsMatch
            RFC822.test185 ultimateRegex.IsMatch
            RFC822.test186 ultimateRegex.IsMatch
            RFC822.test187 ultimateRegex.IsMatch
            RFC822.test188 ultimateRegex.IsMatch
            RFC822.test189 ultimateRegex.IsMatch
            RFC822.test190 ultimateRegex.IsMatch
            RFC822.test191 ultimateRegex.IsMatch
            RFC822.test192 ultimateRegex.IsMatch
            RFC822.test193 ultimateRegex.IsMatch
            RFC822.test194 ultimateRegex.IsMatch
            RFC822.test195 ultimateRegex.IsMatch
            RFC822.test196 ultimateRegex.IsMatch
            RFC822.test197 ultimateRegex.IsMatch
            RFC822.test198 ultimateRegex.IsMatch
            RFC822.test199 ultimateRegex.IsMatch
            RFC822.test200 ultimateRegex.IsMatch
            RFC822.test201 ultimateRegex.IsMatch
            RFC822.test202 ultimateRegex.IsMatch
            RFC822.test203 ultimateRegex.IsMatch
            RFC822.test204 ultimateRegex.IsMatch
            RFC822.test205 ultimateRegex.IsMatch
            RFC822.test206 ultimateRegex.IsMatch
            RFC822.test207 ultimateRegex.IsMatch
            RFC822.test208 ultimateRegex.IsMatch
            RFC822.test209 ultimateRegex.IsMatch
            RFC822.test210 ultimateRegex.IsMatch
            RFC822.test211 ultimateRegex.IsMatch
            RFC822.test212 ultimateRegex.IsMatch
            RFC822.test213 ultimateRegex.IsMatch
            RFC822.test214 ultimateRegex.IsMatch
            RFC822.test215 ultimateRegex.IsMatch
            RFC822.test216 ultimateRegex.IsMatch
            RFC822.test217 ultimateRegex.IsMatch
            RFC822.test218 ultimateRegex.IsMatch
            RFC822.test219 ultimateRegex.IsMatch
            RFC822.test220 ultimateRegex.IsMatch
            RFC822.test221 ultimateRegex.IsMatch
            RFC822.test222 ultimateRegex.IsMatch
            RFC822.test223 ultimateRegex.IsMatch
            RFC822.test224 ultimateRegex.IsMatch
            RFC822.test225 ultimateRegex.IsMatch
            RFC822.test226 ultimateRegex.IsMatch
            RFC822.test227 ultimateRegex.IsMatch
            RFC822.test228 ultimateRegex.IsMatch
            RFC822.test229 ultimateRegex.IsMatch
            RFC822.test230 ultimateRegex.IsMatch
            RFC822.test231 ultimateRegex.IsMatch
            RFC822.test232 ultimateRegex.IsMatch
            RFC822.test233 ultimateRegex.IsMatch
            RFC822.test234 ultimateRegex.IsMatch
            RFC822.test235 ultimateRegex.IsMatch
            RFC822.test236 ultimateRegex.IsMatch
            RFC822.test237 ultimateRegex.IsMatch
            RFC822.test238 ultimateRegex.IsMatch
            RFC822.test239 ultimateRegex.IsMatch
            RFC822.test240 ultimateRegex.IsMatch
            RFC822.test241 ultimateRegex.IsMatch
            RFC822.test242 ultimateRegex.IsMatch
            RFC822.test243 ultimateRegex.IsMatch
            RFC822.test244 ultimateRegex.IsMatch
            RFC822.test245 ultimateRegex.IsMatch
            RFC822.test246 ultimateRegex.IsMatch
            RFC822.test247 ultimateRegex.IsMatch
            RFC822.test248 ultimateRegex.IsMatch
            RFC822.test249 ultimateRegex.IsMatch
            RFC822.test250 ultimateRegex.IsMatch
            RFC822.test251 ultimateRegex.IsMatch
            RFC822.test252 ultimateRegex.IsMatch
            RFC822.test253 ultimateRegex.IsMatch
            RFC822.test254 ultimateRegex.IsMatch
            RFC822.test255 ultimateRegex.IsMatch
            RFC822.test256 ultimateRegex.IsMatch
            RFC822.test257 ultimateRegex.IsMatch
            RFC822.test258 ultimateRegex.IsMatch
            RFC822.test259 ultimateRegex.IsMatch
            RFC822.test260 ultimateRegex.IsMatch
            RFC822.test261 ultimateRegex.IsMatch
            RFC822.test262 ultimateRegex.IsMatch
            RFC822.test263 ultimateRegex.IsMatch
            RFC822.test264 ultimateRegex.IsMatch
            RFC822.test265 ultimateRegex.IsMatch
            RFC822.test266 ultimateRegex.IsMatch
            RFC822.test267 ultimateRegex.IsMatch
            RFC822.test268 ultimateRegex.IsMatch
            RFC822.test269 ultimateRegex.IsMatch
            RFC822.test270 ultimateRegex.IsMatch
            RFC822.test271 ultimateRegex.IsMatch
            RFC822.test272 ultimateRegex.IsMatch
            RFC822.test273 ultimateRegex.IsMatch
            RFC822.test274 ultimateRegex.IsMatch
            RFC822.test275 ultimateRegex.IsMatch
            RFC822.test276 ultimateRegex.IsMatch
            RFC822.test277 ultimateRegex.IsMatch
            RFC822.test278 ultimateRegex.IsMatch
            RFC822.test279 ultimateRegex.IsMatch
            RFC822.test280 ultimateRegex.IsMatch
            ]


text:
namespace Email.Tests.AssemblyInfo

open System.Reflection
open System.Runtime.CompilerServices
open System.Runtime.InteropServices

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[<assembly: AssemblyTitle("Email.Tests")>]
[<assembly: AssemblyDescription("")>]
[<assembly: AssemblyConfiguration("")>]
[<assembly: AssemblyCompany("")>]
[<assembly: AssemblyProduct("Email.Tests")>]
[<assembly: AssemblyCopyright("Copyright ©  2017")>]
[<assembly: AssemblyTrademark("")>]
[<assembly: AssemblyCulture("")>]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[<assembly: ComVisible(false)>]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[<assembly: Guid("0d1be493-6880-4ee4-96f7-f9d8665310f0")>]

// Version information for an assembly consists of the following four values:
//
//       Major Version
//       Minor Version
//       Build Number
//       Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [<assembly: AssemblyVersion("1.0.*")>]
[<assembly: AssemblyVersion("1.0.0.0")>]
[<assembly: AssemblyFileVersion("1.0.0.0")>]

do
    ()


text:
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Expecto.VisualStudio.TestAdapter" version="5.0.1" />
</packages>


text:
namespace Email.Tests

open Expecto
open FsRegEx

module ComplexEmail =

    [<Literal>]
    /// RFC 5322 Official Standard regex from http://emailregex.com/
    let ComplexEmailRegex = """(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])"""
    let complexEmailRegex = new FsRegEx(ComplexEmailRegex)

    [<Tests>]
    let testComplexEmail =
        testList "ComplexEmail" [
            RFC822.test1 complexEmailRegex.IsMatch
            RFC822.test2 complexEmailRegex.IsMatch
            RFC822.test3 complexEmailRegex.IsMatch
            RFC822.test4 complexEmailRegex.IsMatch
            RFC822.test5 complexEmailRegex.IsMatch
            RFC822.test6 complexEmailRegex.IsMatch
            RFC822.test7 complexEmailRegex.IsMatch
            RFC822.test8 complexEmailRegex.IsMatch
            RFC822.test9 complexEmailRegex.IsMatch
            RFC822.test10 complexEmailRegex.IsMatch
            RFC822.test11 complexEmailRegex.IsMatch
            RFC822.test12 complexEmailRegex.IsMatch
            RFC822.test13 complexEmailRegex.IsMatch
            RFC822.test14 complexEmailRegex.IsMatch
            RFC822.test15 complexEmailRegex.IsMatch
            RFC822.test16 complexEmailRegex.IsMatch
            RFC822.test17 complexEmailRegex.IsMatch
            RFC822.test18 complexEmailRegex.IsMatch
            RFC822.test19 complexEmailRegex.IsMatch
            RFC822.test20 complexEmailRegex.IsMatch
            RFC822.test21 complexEmailRegex.IsMatch
            RFC822.test22 complexEmailRegex.IsMatch
            RFC822.test23 complexEmailRegex.IsMatch
            RFC822.test24 complexEmailRegex.IsMatch
            RFC822.test25 complexEmailRegex.IsMatch
            RFC822.test26 complexEmailRegex.IsMatch
            RFC822.test27 complexEmailRegex.IsMatch
            RFC822.test28 complexEmailRegex.IsMatch
            RFC822.test29 complexEmailRegex.IsMatch
            RFC822.test30 complexEmailRegex.IsMatch
            RFC822.test31 complexEmailRegex.IsMatch
            RFC822.test32 complexEmailRegex.IsMatch
            RFC822.test33 complexEmailRegex.IsMatch
            RFC822.test34 complexEmailRegex.IsMatch
            RFC822.test35 complexEmailRegex.IsMatch
            RFC822.test36 complexEmailRegex.IsMatch
            RFC822.test37 complexEmailRegex.IsMatch
            RFC822.test38 complexEmailRegex.IsMatch
            RFC822.test39 complexEmailRegex.IsMatch
            RFC822.test40 complexEmailRegex.IsMatch
            RFC822.test41 complexEmailRegex.IsMatch
            RFC822.test42 complexEmailRegex.IsMatch
            RFC822.test43 complexEmailRegex.IsMatch
            RFC822.test44 complexEmailRegex.IsMatch
            RFC822.test45 complexEmailRegex.IsMatch
            RFC822.test46 complexEmailRegex.IsMatch
            RFC822.test47 complexEmailRegex.IsMatch
            RFC822.test48 complexEmailRegex.IsMatch
            RFC822.test49 complexEmailRegex.IsMatch
            RFC822.test50 complexEmailRegex.IsMatch
            RFC822.test51 complexEmailRegex.IsMatch
            RFC822.test52 complexEmailRegex.IsMatch
            RFC822.test53 complexEmailRegex.IsMatch
            RFC822.test54 complexEmailRegex.IsMatch
            RFC822.test55 complexEmailRegex.IsMatch
            RFC822.test56 complexEmailRegex.IsMatch
            RFC822.test57 complexEmailRegex.IsMatch
            RFC822.test58 complexEmailRegex.IsMatch
            RFC822.test59 complexEmailRegex.IsMatch
            RFC822.test60 complexEmailRegex.IsMatch
            RFC822.test61 complexEmailRegex.IsMatch
            RFC822.test62 complexEmailRegex.IsMatch
            RFC822.test63 complexEmailRegex.IsMatch
            RFC822.test64 complexEmailRegex.IsMatch
            RFC822.test65 complexEmailRegex.IsMatch
            RFC822.test66 complexEmailRegex.IsMatch
            RFC822.test67 complexEmailRegex.IsMatch
            RFC822.test68 complexEmailRegex.IsMatch
            RFC822.test69 complexEmailRegex.IsMatch
            RFC822.test70 complexEmailRegex.IsMatch
            RFC822.test71 complexEmailRegex.IsMatch
            RFC822.test72 complexEmailRegex.IsMatch
            RFC822.test73 complexEmailRegex.IsMatch
            RFC822.test74 complexEmailRegex.IsMatch
            RFC822.test75 complexEmailRegex.IsMatch
            RFC822.test76 complexEmailRegex.IsMatch
            RFC822.test77 complexEmailRegex.IsMatch
            RFC822.test78 complexEmailRegex.IsMatch
            RFC822.test79 complexEmailRegex.IsMatch
            RFC822.test80 complexEmailRegex.IsMatch
            RFC822.test81 complexEmailRegex.IsMatch
            RFC822.test82 complexEmailRegex.IsMatch
            RFC822.test83 complexEmailRegex.IsMatch
            RFC822.test84 complexEmailRegex.IsMatch
            RFC822.test85 complexEmailRegex.IsMatch
            RFC822.test86 complexEmailRegex.IsMatch
            RFC822.test87 complexEmailRegex.IsMatch
            RFC822.test88 complexEmailRegex.IsMatch
            RFC822.test89 complexEmailRegex.IsMatch
            RFC822.test90 complexEmailRegex.IsMatch
            RFC822.test91 complexEmailRegex.IsMatch
            RFC822.test92 complexEmailRegex.IsMatch
            RFC822.test93 complexEmailRegex.IsMatch
            RFC822.test94 complexEmailRegex.IsMatch
            RFC822.test95 complexEmailRegex.IsMatch
            RFC822.test96 complexEmailRegex.IsMatch
            RFC822.test97 complexEmailRegex.IsMatch
            RFC822.test98 complexEmailRegex.IsMatch
            RFC822.test99 complexEmailRegex.IsMatch
            RFC822.test100 complexEmailRegex.IsMatch
            RFC822.test101 complexEmailRegex.IsMatch
            RFC822.test102 complexEmailRegex.IsMatch
            RFC822.test103 complexEmailRegex.IsMatch
            RFC822.test104 complexEmailRegex.IsMatch
            RFC822.test105 complexEmailRegex.IsMatch
            RFC822.test106 complexEmailRegex.IsMatch
            RFC822.test107 complexEmailRegex.IsMatch
            RFC822.test108 complexEmailRegex.IsMatch
            RFC822.test109 complexEmailRegex.IsMatch
            RFC822.test110 complexEmailRegex.IsMatch
            RFC822.test111 complexEmailRegex.IsMatch
            RFC822.test112 complexEmailRegex.IsMatch
            RFC822.test113 complexEmailRegex.IsMatch
            RFC822.test114 complexEmailRegex.IsMatch
            RFC822.test115 complexEmailRegex.IsMatch
            RFC822.test116 complexEmailRegex.IsMatch
            RFC822.test117 complexEmailRegex.IsMatch
            RFC822.test118 complexEmailRegex.IsMatch
            RFC822.test119 complexEmailRegex.IsMatch
            RFC822.test120 complexEmailRegex.IsMatch
            RFC822.test121 complexEmailRegex.IsMatch
            RFC822.test122 complexEmailRegex.IsMatch
            RFC822.test123 complexEmailRegex.IsMatch
            RFC822.test124 complexEmailRegex.IsMatch
            RFC822.test125 complexEmailRegex.IsMatch
            RFC822.test126 complexEmailRegex.IsMatch
            RFC822.test127 complexEmailRegex.IsMatch
            RFC822.test128 complexEmailRegex.IsMatch
            RFC822.test129 complexEmailRegex.IsMatch
            RFC822.test130 complexEmailRegex.IsMatch
            RFC822.test131 complexEmailRegex.IsMatch
            RFC822.test132 complexEmailRegex.IsMatch
            RFC822.test133 complexEmailRegex.IsMatch
            RFC822.test134 complexEmailRegex.IsMatch
            RFC822.test135 complexEmailRegex.IsMatch
            RFC822.test136 complexEmailRegex.IsMatch
            RFC822.test137 complexEmailRegex.IsMatch
            RFC822.test138 complexEmailRegex.IsMatch
            RFC822.test139 complexEmailRegex.IsMatch
            RFC822.test140 complexEmailRegex.IsMatch
            RFC822.test141 complexEmailRegex.IsMatch
            RFC822.test142 complexEmailRegex.IsMatch
            RFC822.test143 complexEmailRegex.IsMatch
            RFC822.test144 complexEmailRegex.IsMatch
            RFC822.test145 complexEmailRegex.IsMatch
            RFC822.test146 complexEmailRegex.IsMatch
            RFC822.test147 complexEmailRegex.IsMatch
            RFC822.test148 complexEmailRegex.IsMatch
            RFC822.test149 complexEmailRegex.IsMatch
            RFC822.test150 complexEmailRegex.IsMatch
            RFC822.test151 complexEmailRegex.IsMatch
            RFC822.test152 complexEmailRegex.IsMatch
            RFC822.test153 complexEmailRegex.IsMatch
            RFC822.test154 complexEmailRegex.IsMatch
            RFC822.test155 complexEmailRegex.IsMatch
            RFC822.test156 complexEmailRegex.IsMatch
            RFC822.test157 complexEmailRegex.IsMatch
            RFC822.test158 complexEmailRegex.IsMatch
            RFC822.test159 complexEmailRegex.IsMatch
            RFC822.test160 complexEmailRegex.IsMatch
            RFC822.test161 complexEmailRegex.IsMatch
            RFC822.test162 complexEmailRegex.IsMatch
            RFC822.test163 complexEmailRegex.IsMatch
            RFC822.test164 complexEmailRegex.IsMatch
            RFC822.test165 complexEmailRegex.IsMatch
            RFC822.test166 complexEmailRegex.IsMatch
            RFC822.test167 complexEmailRegex.IsMatch
            RFC822.test168 complexEmailRegex.IsMatch
            RFC822.test169 complexEmailRegex.IsMatch
            RFC822.test170 complexEmailRegex.IsMatch
            RFC822.test171 complexEmailRegex.IsMatch
            RFC822.test172 complexEmailRegex.IsMatch
            RFC822.test173 complexEmailRegex.IsMatch
            RFC822.test174 complexEmailRegex.IsMatch
            RFC822.test175 complexEmailRegex.IsMatch
            RFC822.test176 complexEmailRegex.IsMatch
            RFC822.test177 complexEmailRegex.IsMatch
            RFC822.test178 complexEmailRegex.IsMatch
            RFC822.test179 complexEmailRegex.IsMatch
            RFC822.test180 complexEmailRegex.IsMatch
            RFC822.test181 complexEmailRegex.IsMatch
            RFC822.test182 complexEmailRegex.IsMatch
            RFC822.test183 complexEmailRegex.IsMatch
            RFC822.test184 complexEmailRegex.IsMatch
            RFC822.test185 complexEmailRegex.IsMatch
            RFC822.test186 complexEmailRegex.IsMatch
            RFC822.test187 complexEmailRegex.IsMatch
            RFC822.test188 complexEmailRegex.IsMatch
            RFC822.test189 complexEmailRegex.IsMatch
            RFC822.test190 complexEmailRegex.IsMatch
            RFC822.test191 complexEmailRegex.IsMatch
            RFC822.test192 complexEmailRegex.IsMatch
            RFC822.test193 complexEmailRegex.IsMatch
            RFC822.test194 complexEmailRegex.IsMatch
            RFC822.test195 complexEmailRegex.IsMatch
            RFC822.test196 complexEmailRegex.IsMatch
            RFC822.test197 complexEmailRegex.IsMatch
            RFC822.test198 complexEmailRegex.IsMatch
            RFC822.test199 complexEmailRegex.IsMatch
            RFC822.test200 complexEmailRegex.IsMatch
            RFC822.test201 complexEmailRegex.IsMatch
            RFC822.test202 complexEmailRegex.IsMatch
            RFC822.test203 complexEmailRegex.IsMatch
            RFC822.test204 complexEmailRegex.IsMatch
            RFC822.test205 complexEmailRegex.IsMatch
            RFC822.test206 complexEmailRegex.IsMatch
            RFC822.test207 complexEmailRegex.IsMatch
            RFC822.test208 complexEmailRegex.IsMatch
            RFC822.test209 complexEmailRegex.IsMatch
            RFC822.test210 complexEmailRegex.IsMatch
            RFC822.test211 complexEmailRegex.IsMatch
            RFC822.test212 complexEmailRegex.IsMatch
            RFC822.test213 complexEmailRegex.IsMatch
            RFC822.test214 complexEmailRegex.IsMatch
            RFC822.test215 complexEmailRegex.IsMatch
            RFC822.test216 complexEmailRegex.IsMatch
            RFC822.test217 complexEmailRegex.IsMatch
            RFC822.test218 complexEmailRegex.IsMatch
            RFC822.test219 complexEmailRegex.IsMatch
            RFC822.test220 complexEmailRegex.IsMatch
            RFC822.test221 complexEmailRegex.IsMatch
            RFC822.test222 complexEmailRegex.IsMatch
            RFC822.test223 complexEmailRegex.IsMatch
            RFC822.test224 complexEmailRegex.IsMatch
            RFC822.test225 complexEmailRegex.IsMatch
            RFC822.test226 complexEmailRegex.IsMatch
            RFC822.test227 complexEmailRegex.IsMatch
            RFC822.test228 complexEmailRegex.IsMatch
            RFC822.test229 complexEmailRegex.IsMatch
            RFC822.test230 complexEmailRegex.IsMatch
            RFC822.test231 complexEmailRegex.IsMatch
            RFC822.test232 complexEmailRegex.IsMatch
            RFC822.test233 complexEmailRegex.IsMatch
            RFC822.test234 complexEmailRegex.IsMatch
            RFC822.test235 complexEmailRegex.IsMatch
            RFC822.test236 complexEmailRegex.IsMatch
            RFC822.test237 complexEmailRegex.IsMatch
            RFC822.test238 complexEmailRegex.IsMatch
            RFC822.test239 complexEmailRegex.IsMatch
            RFC822.test240 complexEmailRegex.IsMatch
            RFC822.test241 complexEmailRegex.IsMatch
            RFC822.test242 complexEmailRegex.IsMatch
            RFC822.test243 complexEmailRegex.IsMatch
            RFC822.test244 complexEmailRegex.IsMatch
            RFC822.test245 complexEmailRegex.IsMatch
            RFC822.test246 complexEmailRegex.IsMatch
            RFC822.test247 complexEmailRegex.IsMatch
            RFC822.test248 complexEmailRegex.IsMatch
            RFC822.test249 complexEmailRegex.IsMatch
            RFC822.test250 complexEmailRegex.IsMatch
            RFC822.test251 complexEmailRegex.IsMatch
            RFC822.test252 complexEmailRegex.IsMatch
            RFC822.test253 complexEmailRegex.IsMatch
            RFC822.test254 complexEmailRegex.IsMatch
            RFC822.test255 complexEmailRegex.IsMatch
            RFC822.test256 complexEmailRegex.IsMatch
            RFC822.test257 complexEmailRegex.IsMatch
            RFC822.test258 complexEmailRegex.IsMatch
            RFC822.test259 complexEmailRegex.IsMatch
            RFC822.test260 complexEmailRegex.IsMatch
            RFC822.test261 complexEmailRegex.IsMatch
            RFC822.test262 complexEmailRegex.IsMatch
            RFC822.test263 complexEmailRegex.IsMatch
            RFC822.test264 complexEmailRegex.IsMatch
            RFC822.test265 complexEmailRegex.IsMatch
            RFC822.test266 complexEmailRegex.IsMatch
            RFC822.test267 complexEmailRegex.IsMatch
            RFC822.test268 complexEmailRegex.IsMatch
            RFC822.test269 complexEmailRegex.IsMatch
            RFC822.test270 complexEmailRegex.IsMatch
            RFC822.test271 complexEmailRegex.IsMatch
            RFC822.test272 complexEmailRegex.IsMatch
            RFC822.test273 complexEmailRegex.IsMatch
            RFC822.test274 complexEmailRegex.IsMatch
            RFC822.test275 complexEmailRegex.IsMatch
            RFC822.test276 complexEmailRegex.IsMatch
            RFC822.test277 complexEmailRegex.IsMatch
            RFC822.test278 complexEmailRegex.IsMatch
            RFC822.test279 complexEmailRegex.IsMatch
            RFC822.test280 complexEmailRegex.IsMatch
            ]