Hey Murillo,

As for the 1st thing, Match() method only returns true if the whole string is matching regular expression. In your case, it is not so, as there are multiple > in between.

Groups are in the regular expression defined with ( ), and are not meant for iterations in the way you expect. For example below, I am trying to extract every <ABC> DEF </ABC>

Set tRegEx = "<([^>]*)>([^<]*?)</([^>]*)>"
Set htmlSnippet = "<h1>Hello1</h1><h1>Hello2</h1>"
Set regex=##class(%Regex.Matcher).%New(tRegEx,htmlSnippet)

while regex.Locate() {  
    for i=1:1:regex.GroupCount { 
        WRITE i_" - "_regex.Group(i) 

Hey Eduard,

The code I sent you, which communicates with OPC UA Server is example for binary protocol (opc.tcp://Server). However, as a new version of old OPC, focus was to make old OPC more available to new trends. Therefore, by standard, each OPC UA server should be able to communicate also as a web service (http://Server). However, I could not find much of the OPC UA servers that offer Web Service capability. Maybe some commercial implementations.

OPC UA is organized similarly to Service Oriented Architecture (SOA) Standard,
with a secure channel.

OPC UA Java Library that I use in my PoC implementation has whole stack implemented. It connects to the OPC UA Server, downloads certificates required for communication, and creates the secure channel to communicate with the server.
There are two main messages: Browse Request und Read Service Request.
The data on OPC UA server are organized in form of a tree, where every node has different types; metadata, attribute, variable, etc. Read Service Request is very sensitive about node types.

I used https://github.com/OPCFoundation/UA-Java-Legacy repository as a basis to build Java Business Host, but this repo is not maintained, so if there are some newer versions of the standard, this repository might not be up to date anymore.