List the Cases of Two Finnish Nouns
Perl, 105 + 54 = 159

Program f (try me):

#!perl -p
s/vi /vka /;s/ve/va/g;s/en/an/;s/vi/voi/;s/ov/1&amp;34960&gt;&gt;$.?jalk:jal/eg;s/ii/ihi/;s/loia/lkoje/;s/oia/oja/


Program g (try me):

#!perl -p
s/jalk?o?/ov/g;s/va /vi /;s/va/ve/g;s/an/en/;y/jh/i/d


An alternative version of f, only 2 bytes longer (this method can be also applied to g but it would be too long):

#!perl -p0
ka1a1a1koj1a1a1ka1koj1a1o0a1o0kaa2koih1a1o0a1o0a1o0ka1ko0a1o0o0a1o0ko=~s!\D+!"s/ov".'.'x$'."/jal$&amp;/"!gree


Technically this still uses a regexp (to decode the substitution string and then to apply them) so I cannot claim the bonus here.