in all the operations = { part you have to write exactly the value you want to be written in the config file, so remove the ^ and $.
in the check ={ part it's a regex (^ mean the start, and $ mean the end of the string).
i would try this :
return {
{
name = "dhcp",
default = true,
description = "DHCP routed mode",
view = "internet-dhcp-routed.lp",
card = "003_internet_dhcp_routed.lp",
check = {
{ "uci.network.interface.@wan.proto", "^dhcp$"},
},
operations = {
{ "uci.network.interface.@wan.proto", "dhcp"},
{ "uci.wansensing.global.enable", "1"},
},
},
{
name = "pppoe",
default = false,
description = "PPPoE routed mode",
view = "internet-pppoe-routed.lp",
card = "003_internet_pppoe_routed.lp",
check = {
{ "uci.network.interface.@wan.proto", "^pppoe$"},
},
operations = {
{ "uci.network.interface.@wan.proto", "pppoe"},
{ "uci.wansensing.global.enable", "1"},
},
},
{
name = "pppoa",
default = false,
description = "PPPoA routed mode",
view = "internet-pppoa-routed.lp",
card = "003_internet_pppoe_routed.lp",
check = {
{ "uci.network.interface.@wan.proto", "^pppoa$"},
},
operations = {
{ "uci.network.interface.@wan.proto", "pppoa"},
{ "uci.wansensing.global.enable", "1"},
},
},
{
name = "static",
default = false,
description = "Fixed IP mode",
view = "internet-static-routed.lp",
card = "003_internet_static_routed.lp",
check = {
{ "uci.network.interface.@wan.proto", "^static$"},
},
operations = {
{ "uci.network.interface.@wan.proto", "static"},
{ "uci.wansensing.global.enable", "1"},
},
},
{
name = "bridge",
default = false,
description = "Bridge mode",
view = "internet-bridged.lp",
card = "003_internet_bridged.lp",
check = {
{ "uci.network.interface.@wan.proto", "^bridge$"},
},
operations = {
{ "uci.network.interface.@wan.proto", "bridge"},
{ "uci.wansensing.global.enable", "0"},
},
},
}