Try this, exactly as I wrote it (including spaces everywhere), except for the 5 (interval in seconds), which you can change to whatever you want.
on !*:join:#yourchannel: .timer 1 [color:red]5[/color] if ($me isop # && $nick isreg # ) mode # +v $nick
However, keep in mind that using /if statements directly inside a /timer is not simple and can lead to results that you won't expect, unless you really know what you're doing. The simplest way around this is to make an alias that does everything you want (checks etc) and use that in /timer e.g.
on !*:join:#yourchannel: .timer 1 5 myvoice # $nick
alias myvoice {
if $me isop $1 && $2 isreg $1 { mode # +v $2 }
}