# Type like a young black metal enthusiast
# Pad the start and end of the line temporarily to work around GNU sed(1) not
# respecting POSIX word boundaries, leaving us with no compatible options
s/^/~/
s/$/~/
# Lowercase to capitals
y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/
# All numbers become 666
s,[0-9][0-9]*,666,g
# Various words for KVLT
s,\([^A-Z]\)ASSOCIATION\([^A-Z]\),\1KVLT\2,g
s,\([^A-Z]\)BUSINESS\([^A-Z]\),\1KVLT\2,g
s,\([^A-Z]\)CHURCH\([^A-Z]\),\1KVLT\2,g
s,\([^A-Z]\)CLUB\([^A-Z]\),\1KVLT\2,g
s,\([^A-Z]\)COMPANY\([^A-Z]\),\1KVLT\2,g
s,\([^A-Z]\)FOUNDATION\([^A-Z]\),\1KVLT\2,g
s,\([^A-Z]\)GROUP\([^A-Z]\),\1KVLT\2,g
s,\([^A-Z]\)INSTITUTE\([^A-Z]\),\1KVLT\2,g
s,\([^A-Z]\)INSTITUTION\([^A-Z]\),\1KVLT\2,g
s,\([^A-Z]\)ORGANIZATION\([^A-Z]\),\1KVLT\2,g
s,\([^A-Z]\)PARTY\([^A-Z]\),\1KVLT\2,g
s,\([^A-Z]\)RELIGION\([^A-Z]\),\1KVLT\2,g
# Various words for TRUE
s,\([^A-Z]\)AWESOME\([^A-Z]\),\1TRUE\2,g
s,\([^A-Z]\)BEST\([^A-Z]\),\1TRUEST\2,g
s,\([^A-Z]\)EXCELLENT\([^A-Z]\),\1TRUE\2,g
s,\([^A-Z]\)GOOD\([^A-Z]\),\1TRUE\2,g
s,\([^A-Z]\)GREAT\([^A-Z]\),\1TRUE\2,g
s,\([^A-Z]\)NICE\([^A-Z]\),\1TRUE\2,g
# WAR/COOL -> KRIEG
s,\([^A-Z]\)WAR\([^A-Z]\),\1KRIEG\2,g
s,\([^A-Z]\)COOL\([^A-Z]\),\1KRIEG\2,g
# Double-letters are easy
s,CC,KK,g
s,SS,ZZ,g
# CHR -> KHR
s,CHR,KHR,g
# -C[EIY] -> -Z (naïve attempt at finding soft Cs)
s,C\([EIY]\),Z\1,g
# -C[^H] -> -K (so "change" doesn't become "KHANGE")
s,C\([^H]\),K\1,g
# -S[^H] -> Z (so "sharp" doesn't become "ZHARP")
s,S\([^H]\),Z\1,g
# consant-I-consonant -> -Y-
s,\([B-DF-HJ-NP-TV-XZ]\)I\([B-DF-HJ-NP-TV-XZ]\),\1Y\2,g
# consant-U-consonant -> -V-
s,\([B-DF-HJ-NP-TV-XZ]\)U\([B-DF-HJ-NP-TV-XZ]\),\1V\2,g
# THE -> DER
s,\([^A-Z]\)THE\([^A-Z]\),\1DER\2,g
# OF -> OV
s,\([^A-Z]\)OF\([^A-Z]\),\1OV\2,g
# AND -> VND
s,\([^A-Z]\)AND\([^A-Z]\),\1VND\2,g
# TRUE -> TRV
s,\([^A-Z]\)TRUE\([^A-Z]\),\1TRV\2,g
# O->0
y/O/0/
# Remove the padding established above
s/^~//
s/~$//